From faa78e8833bea4fb0fc6fe48dcd1c137b41e0826 Mon Sep 17 00:00:00 2001 From: Matthieu Gallien Date: Mon, 18 Sep 2023 22:18:04 +0200 Subject: [PATCH] let appimage build script work with Qt6 based version Signed-off-by: Matthieu Gallien --- admin/linux/build-appimage.sh | 80 ++++++++++++++++------------------- 1 file changed, 36 insertions(+), 44 deletions(-) diff --git a/admin/linux/build-appimage.sh b/admin/linux/build-appimage.sh index f31dcf0e21eb6..5f95abc4c9b62 100755 --- a/admin/linux/build-appimage.sh +++ b/admin/linux/build-appimage.sh @@ -2,17 +2,12 @@ set -xe -export APPNAME=${APPNAME:-nextcloud} +export APPNAME=${APPNAME:-Nextcloud} +export EXECUTABLE_NAME=${EXECUTABLE_NAME:-nextcloud} export BUILD_UPDATER=${BUILD_UPDATER:-OFF} export BUILDNR=${BUILDNR:-0000} export DESKTOP_CLIENT_ROOT=${DESKTOP_CLIENT_ROOT:-/home/user} -#Set Qt-5.15 -export QT_BASE_DIR=/opt/kdeqt5.15 - -export QTDIR=$QT_BASE_DIR -export PATH=$QT_BASE_DIR/bin:$PATH - # Set defaults export SUFFIX=${DRONE_PULL_REQUEST:=master} if [ $SUFFIX != "master" ]; then @@ -29,12 +24,13 @@ mkdir build-client cd build-client cmake \ -G Ninja \ - -D CMAKE_INSTALL_PREFIX=/usr \ - -D BUILD_TESTING=OFF \ - -D BUILD_UPDATER=$BUILD_UPDATER \ - -D MIRALL_VERSION_BUILD=$BUILDNR \ - -D MIRALL_VERSION_SUFFIX="$VERSION_SUFFIX" \ - -D CMAKE_UNITY_BUILD=ON \ + -DQT_MAJOR_VERSION=6 \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DBUILD_TESTING=OFF \ + -DBUILD_UPDATER=$BUILD_UPDATER \ + -DMIRALL_VERSION_BUILD=$BUILDNR \ + -DMIRALL_VERSION_SUFFIX="$VERSION_SUFFIX" \ + -DCMAKE_UNITY_BUILD=ON \ ${DESKTOP_CLIENT_ROOT} cmake --build . --target all DESTDIR=/app cmake --install . @@ -64,44 +60,40 @@ rm -rf etc # com.nextcloud.desktopclient.nextcloud.desktop DESKTOP_FILE=$(ls /app/usr/share/applications/*.desktop) -sed -i -e 's|Icon=nextcloud|Icon=Nextcloud|g' ${DESKTOP_FILE} # Bug in desktop file? -cp ./usr/share/icons/hicolor/512x512/apps/*.png . # Workaround for linuxeployqt bug, FIXME - -# Because distros need to get their shit together -cp -R /usr/lib/x86_64-linux-gnu/libssl.so* ./usr/lib/ -cp -R /usr/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/ -cp -P /usr/local/lib*/libsqlite*.so* ./usr/lib/ - -# NSS fun -cp -P -r /usr/lib/x86_64-linux-gnu/nss ./usr/lib/ - -# Use linuxdeployqt to deploy -LINUXDEPLOYQT_VERSION="continuous" -wget -O linuxdeployqt.AppImage --ca-directory=/etc/ssl/certs -c "https://github.com/probonopd/linuxdeployqt/releases/download/${LINUXDEPLOYQT_VERSION}/linuxdeployqt-continuous-x86_64.AppImage" -chmod a+x linuxdeployqt.AppImage -./linuxdeployqt.AppImage --appimage-extract -rm ./linuxdeployqt.AppImage + +# Use linuxdeploy to deploy +export APPIMAGE_NAME=linuxdeploy-x86_64.AppImage +wget -O ${APPIMAGE_NAME} --ca-directory=/etc/ssl/certs -c "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage" +chmod a+x ${APPIMAGE_NAME} +./${APPIMAGE_NAME} --appimage-extract +rm ./${APPIMAGE_NAME} cp -r ./squashfs-root ./linuxdeployqt-squashfs-root -unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH -export LD_LIBRARY_PATH=/usr/local/lib/x86_64-linux-gnu -./squashfs-root/AppRun ${DESKTOP_FILE} -bundle-non-qt-libs -qmldir=${DESKTOP_CLIENT_ROOT}/src/gui +export LD_LIBRARY_PATH=/app/usr/lib:/usr/local/lib/x86_64-linux-gnu:/usr/local/lib:/usr/local/lib64 +./squashfs-root/AppRun --desktop-file=${DESKTOP_FILE} --icon-file=usr/share/icons/hicolor/512x512/apps/${APPNAME}.png --executable=usr/bin/${EXECUTABLE_NAME} --appdir=AppDir --output appimage + +# Use linuxdeploy-plugin-qt to deploy qt dependencies +#export APPIMAGE_NAME=linuxdeploy-plugin-qt-x86_64.AppImage +#wget -O ${APPIMAGE_NAME} --ca-directory=/etc/ssl/certs -c "https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage" +#chmod a+x ${APPIMAGE_NAME} +#./${APPIMAGE_NAME} --appimage-extract +#rm ./${APPIMAGE_NAME} +#cp -r ./squashfs-root ./linuxdeployqt-squashfs-root +#./squashfs-root/AppRun --appdir AppDir # Set origin -./squashfs-root/usr/bin/patchelf --set-rpath '$ORIGIN/' /app/usr/lib/lib*sync.so.0 +#./squashfs-root/usr/bin/patchelf --set-rpath '$ORIGIN/' /app/usr/lib/lib*sync.so.0 # Build AppImage -./squashfs-root/AppRun ${DESKTOP_FILE} -appimage -updateinformation="gh-releases-zsync|nextcloud-releases|desktop|latest|Nextcloud-*-x86_64.AppImage.zsync" +#./squashfs-root/AppRun ${DESKTOP_FILE} -appimage -updateinformation="gh-releases-zsync|nextcloud-releases|desktop|latest|Nextcloud-*-x86_64.AppImage.zsync" # Workaround issue #103 -rm -rf ./squashfs-root -APPIMAGE=$(ls *.AppImage) -"./${APPIMAGE}" --appimage-extract -rm "./${APPIMAGE}" -rm ./squashfs-root/usr/lib/libglib-2.0.so.0 -rm ./squashfs-root/usr/lib/libgobject-2.0.so.0 -PATH=./linuxdeployqt-squashfs-root/usr/bin:$PATH appimagetool -n ./squashfs-root "$APPIMAGE" +#rm -rf ./squashfs-root +#APPIMAGE=$(ls *.AppImage) +#"./${APPIMAGE}" --appimage-extract +#rm "./${APPIMAGE}" +#rm ./squashfs-root/usr/lib/libglib-2.0.so.0 +#rm ./squashfs-root/usr/lib/libgobject-2.0.so.0 +#PATH=./linuxdeployqt-squashfs-root/usr/bin:$PATH appimagetool -n ./squashfs-root "$APPIMAGE" #move AppImage if [ ! -z "$DRONE_COMMIT" ]