diff options
author | Morris Jobke <hey@morrisjobke.de> | 2017-11-15 17:01:20 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-15 17:01:20 +0300 |
commit | ab40efe1e1475efddd636c09251d8917627261da (patch) | |
tree | 70c62bf9bba8c1da4e82c67de1c3e5b57b356f2b | |
parent | e9b3656a689a642f0fee9774e7edf9cec5a0f38f (diff) | |
parent | e4b13264aa8c72177ca954e4537d182c3a89b668 (diff) |
Merge pull request #211 from nextcloud/fix-mac
Fix mac build instructions
-rw-r--r-- | README.md | 15 | ||||
-rw-r--r-- | osx/build.sh | 26 |
2 files changed, 22 insertions, 19 deletions
@@ -142,7 +142,7 @@ sudo make install 3. `wget https://github.com/sparkle-project/Sparkle/releases/download/1.14.0/Sparkle-1.14.0.tar.bz2` 4. `tar -xf Sparkle-1.14.0.tar.bz2` 5. `mv Sparkle.framework ~/Library/Frameworks/` -6. Install XCode 6.4 from http://adcdownload.apple.com/Developer_Tools/Xcode_6.4/Xcode_6.4.dmg +6. Install XCode 7.2.1 7. sudo xcode-select -s /Applications/Xcode.app/Contents/Developer 8. Generate Sparkle keys: `./bin/generate_keys`. Keep those, if you loose it you won't be able to deploy updates anymore. 9. Store the keys in `osx/`. Make sure to not make the `dsa_priv.pem` publicly available. @@ -150,16 +150,15 @@ sudo make install ### Compile Qt -Because the desktop client comes with some custom patches you have to download the Qt 5.6.2 source and then apply all of them. Make sure to adjust <client> with the login to the cloned client repository. +Download and compile Qt 5.9.2 source. Unfortunately the Qt patches don't apply anymore, +so we just ignore them for the time being. ```bash cd /tmp/ -wget http://download.qt.io/official_releases/qt/5.6/5.6.2/single/qt-everywhere-opensource-src-5.6.2.tar.gz -tar -xf qt-everywhere-opensource-src-5.6.2.tar.gz -cd /tmp/qt-everywhere-opensource-src-5.6.2/qtbase -git apply <client>/admin/qt/patches/qtbase/*.patch -cd .. -./configure -sdk macosx10.9 -openssl -openssl-linked +wget http://download.qt.io/official_releases/qt/5.9/5.9.2/single/qt-everywhere-opensource-src-5.9.2.tar.xz +tar -xjf qt-everywhere-opensource-src-5.9.2.tar.xz +cd /tmp/qt-everywhere-opensource-src-5.9.2 +./configure -sdk macosx10.11 -openssl -openssl-linked -I /usr/local/opt/openssl/include/ -L /usr/local/opt/openssl/lib/ -nomake examples make -j2 sudo make -j1 install ``` diff --git a/osx/build.sh b/osx/build.sh index 4e3c6a1..f7f2102 100644 --- a/osx/build.sh +++ b/osx/build.sh @@ -1,5 +1,5 @@ #!/bin/bash -export PATH=/usr/local/Qt-5.6.2/bin/:$PATH +export PATH=/usr/local/Qt-5.9.2/bin/:$PATH export OPENSSL_ROOT_DIR=$(brew --prefix openssl) # Cleanup @@ -9,16 +9,18 @@ sudo rm -rf client sudo rm -rf install # Clone the desktop client code -cd ~ git clone --recursive https://github.com/owncloud/client.git cd client -git checkout v2.3.2 +git checkout v2.3.3 git submodule update --recursive # Build qtkeychain -cd ~/client/src/3rdparty/qtkeychain -cmake -DCMAKE_OSX_SYSROOT="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.8 -DCMAKE_INSTALL_PREFIX=/Users/builder/install -DCMAKE_PREFIX_PATH=/Users/builder/Qt/5.6/clang_64 . -sudo make install +cd ~/client/src/3rdparty/ +git clone https://github.com/frankosterfeld/qtkeychain.git +cd qtkeychain +git checkout v0.8.0 +cmake -DCMAKE_OSX_SYSROOT="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_INSTALL_PREFIX=/Users/builder/install -DCMAKE_PREFIX_PATH=/Users/builder/Qt/5.9/clang_64 . +sudo make -j1 install # Build the client cd ~ @@ -26,11 +28,13 @@ cp client_theming/osx/dsa_pub.pem client/admin/osx/sparkle/ rm -rf build-mac mkdir build-mac cd build-mac -cmake -DCMAKE_OSX_SYSROOT="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.8 -DCMAKE_INSTALL_PREFIX=/Users/builder/install -DCMAKE_PREFIX_PATH=/Users/builder/Qt/5.6/clang_64 -D SPARKLE_INCLUDE_DIR=/Users/builder/Library/Frameworks/Sparkle.framework/ -D SPARKLE_LIBRARY=/Users/builder/Library/Frameworks/Sparkle.framework/ -D OEM_THEME_DIR=/Users/builder/client_theming/nextcloudtheme -DWITH_CRASHREPORTER=ON -DNO_SHIBBOLETH=1 -DMIRALL_VERSION_SUFFIX=beta -DMIRALL_VERSION_BUILD=1 ../client -make -sudo make install -sudo ~/client_theming/client/admin/osx/sign_app.sh ~/install/nextcloud.app 59FA8948AEBAE3F2222AE9BC020D6DA31DF821A7 -sudo ./admin/osx/create_mac.sh ../install/ . 6A588D031B2B63991A49DB9C98B4C846D6D0EAC4 +cmake -DCMAKE_OSX_SYSROOT="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_INSTALL_PREFIX=/Users/builder/install -DCMAKE_PREFIX_PATH=/Users/builder/Qt/5.9/clang_64 -D SPARKLE_INCLUDE_DIR=/Users/builder/Library/Frameworks/Sparkle.framework/ -D SPARKLE_LIBRARY=/Users/builder/Library/Frameworks/Sparkle.framework/ -D OEM_THEME_DIR=/Users/builder/client_theming/nextcloudtheme -DWITH_CRASHREPORTER=ON -DNO_SHIBBOLETH=1 -DMIRALL_VERSION_BUILD=1 ../client +make -j2 +sudo make -j1 install +# The magic string here is SHA1 hash of your Developer ID Application certificate +sudo ~/client/admin/osx/sign_app.sh ~/install/nextcloud.app 74FB2413760D6407588B69F499F13514A86AE +# The magic string here is SHA1 hash of your Developer ID Installer certificate +sudo ~/build-mac/admin/osx/create_mac.sh ../install/ . 1B8B3FD4A0ADCC5BF4385FA1A50F4547DE73C95E # Generate a sparkle signature for the tbz openssl dgst -sha1 -binary < ~/install/*.tbz | openssl dgst -dss1 -sign ~/dsa_priv.pem | openssl enc -base64 > ~/sig.txt |