| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- #! /bin/bash
- set -xe
- mkdir /app
- mkdir /build
- #Set Qt-5.12
- export QT_BASE_DIR=/opt/qt5.12.5
- export QTDIR=$QT_BASE_DIR
- export PATH=$QT_BASE_DIR/bin:$PATH
- export LD_LIBRARY_PATH=$QT_BASE_DIR/lib/x86_64-linux-gnu:$QT_BASE_DIR/lib:$LD_LIBRARY_PATH
- export PKG_CONFIG_PATH=$QT_BASE_DIR/lib/pkgconfig:$PKG_CONFIG_PATH
- #Set APPID for .desktop file processing
- export LINUX_APPLICATION_ID=com.nextcloud.desktopclient.nextcloud
- #set defaults
- export SUFFIX=${DRONE_PULL_REQUEST:=master}
- if [ $SUFFIX != "master" ]; then
- SUFFIX="PR-$SUFFIX"
- fi
- #QtKeyChain master
- cd /build
- git clone https://github.com/frankosterfeld/qtkeychain.git
- cd qtkeychain
- git checkout master
- mkdir build
- cd build
- cmake -D CMAKE_INSTALL_PREFIX=/usr ../
- make -j4
- make DESTDIR=/app install
- #Build client
- cd /build
- mkdir build-client
- cd build-client
- cmake -D CMAKE_INSTALL_PREFIX=/usr \
- -D NO_SHIBBOLETH=1 \
- -D BUILD_UPDATER=ON \
- -D QTKEYCHAIN_LIBRARY=/app/usr/lib/x86_64-linux-gnu/libqt5keychain.so \
- -D QTKEYCHAIN_INCLUDE_DIR=/app/usr/include/qt5keychain/ \
- -DMIRALL_VERSION_SUFFIX=PR-$DRONE_PULL_REQUEST \
- -DMIRALL_VERSION_BUILD=$DRONE_BUILD_NUMBER \
- $DRONE_WORKSPACE
- make -j4
- make DESTDIR=/app install
- # Move stuff around
- cd /app
- mv ./usr/lib/x86_64-linux-gnu/nextcloud/* ./usr/lib/x86_64-linux-gnu/
- mv ./usr/lib/x86_64-linux-gnu/* ./usr/lib/
- rm -rf ./usr/lib/nextcloud
- rm -rf ./usr/lib/cmake
- rm -rf ./usr/include
- rm -rf ./usr/mkspecs
- rm -rf ./usr/lib/x86_64-linux-gnu/
- # Don't bundle nextcloudcmd as we don't run it anyway
- rm -rf ./usr/bin/nextcloudcmd
- # Don't bundle the explorer extentions as we can't do anything with them in the AppImage
- rm -rf ./usr/share/caja-python/
- rm -rf ./usr/share/nautilus-python/
- rm -rf ./usr/share/nemo-python/
- # Move sync exclude to right location
- mv ./etc/Nextcloud/sync-exclude.lst ./usr/bin/
- rm -rf ./etc
- DESKTOP_FILE=/app/usr/share/applications/${LINUX_APPLICATION_ID}.desktop
- sed -i -e 's|Icon=nextcloud|Icon=Nextcloud|g' ${DESKTOP_FILE} # Bug in desktop file?
- cp ./usr/share/icons/hicolor/512x512/apps/Nextcloud.png . # Workaround for linuxeployqt bug, FIXME
- # Because distros need to get their shit together
- cp -R /lib/x86_64-linux-gnu/libssl.so* ./usr/lib/
- cp -R /lib/x86_64-linux-gnu/libcrypto.so* ./usr/lib/
- cp -P /usr/local/lib/libssl.so* ./usr/lib/
- cp -P /usr/local/lib/libcrypto.so* ./usr/lib/
- # NSS fun
- cp -P -r /usr/lib/x86_64-linux-gnu/nss ./usr/lib/
- # Use linuxdeployqt to deploy
- cd /build
- wget -c "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage"
- chmod a+x linuxdeployqt*.AppImage
- ./linuxdeployqt-continuous-x86_64.AppImage --appimage-extract
- rm ./linuxdeployqt-continuous-x86_64.AppImage
- unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH
- export LD_LIBRARY_PATH=/app/usr/lib/
- ./squashfs-root/AppRun ${DESKTOP_FILE} -bundle-non-qt-libs -qmldir=$DRONE_WORKSPACE/src/gui
- # Set origin
- ./squashfs-root/usr/bin/patchelf --set-rpath '$ORIGIN/' /app/usr/lib/libnextcloudsync.so.0
- # Build AppImage
- ./squashfs-root/AppRun ${DESKTOP_FILE} -appimage
- mv Nextcloud*.AppImage Nextcloud-${SUFFIX}-${DRONE_COMMIT}-x86_64.AppImage
|