diff --git a/utils/scripts/docker/package_appimages.bash b/utils/scripts/docker/package_appimages.bash index bbc0c99607799bf7be4e7b520862085515a73ac8..5d8de78b6ca5ea862951c02642275c75ca759c5c 100755 --- a/utils/scripts/docker/package_appimages.bash +++ b/utils/scripts/docker/package_appimages.bash @@ -24,16 +24,17 @@ function join_by() { function get_additional_libs() { case $* in *qt*) - for LIB in /usr/lib/x86_64-linux-gnu/libQt6OpenGLWidgets.so \ - /usr/lib/x86_64-linux-gnu/libQt6OpenGL.so \ - /usr/lib/x86_64-linux-gnu/libQt6MultimediaWidgets.so \ - /usr/lib/x86_64-linux-gnu/libQt6Multimedia.so \ - /usr/lib/x86_64-linux-gnu/libQt6Concurrent.so \ - /usr/lib/x86_64-linux-gnu/libQt6WaylandClient.so \ - /usr/lib/x86_64-linux-gnu/libQt6XcbQpa.so \ - /usr/lib/x86_64-linux-gnu/libQt6EglFSDeviceIntegration.so \ - /usr/lib/x86_64-linux-gnu/libQt6EglFsKmsGbmSupport.so \ - /usr/lib/x86_64-linux-gnu/libQt6EglFsKmsSupport.so ; + for LIB in /usr/lib/x86_64-linux-gnu/libQt6OpenGLWidgets.so \ + /usr/lib/x86_64-linux-gnu/libQt6OpenGL.so \ + /usr/lib/x86_64-linux-gnu/libQt6MultimediaWidgets.so \ + /usr/lib/x86_64-linux-gnu/libQt6Multimedia.so \ + /usr/lib/x86_64-linux-gnu/libQt6Concurrent.so \ + /usr/lib/x86_64-linux-gnu/libQt6WaylandClient.so \ + /usr/lib/x86_64-linux-gnu/libQt6XcbQpa.so \ + /usr/lib/x86_64-linux-gnu/libQt6WlShellIntegration.so.6 \ + /usr/lib/x86_64-linux-gnu/libQt6EglFSDeviceIntegration.so \ + /usr/lib/x86_64-linux-gnu/libQt6EglFsKmsGbmSupport.so \ + /usr/lib/x86_64-linux-gnu/libQt6EglFsKmsSupport.so ; do for FILE in ${LIB}*; do echo -n " -l${FILE} " @@ -53,7 +54,7 @@ function deploy() { local EXTRA_PLATFORM_PLUGINS="libqxcb.so;libqwayland-egl.so;libqwayland-generic.so;" export EXTRA_PLATFORM_PLUGINS - local EXCLUDE_LIBS="libgdk_pixbuf libpango libcairo libgio libglib libgmodule libgobject libgthread" + local EXCLUDE_LIBS="libgdk_pixbuf libpango libcairo libgio libglib libgmodule libgobject libgthread libX11-xcb libxcb-" local EXCLUDE_LIBS="-name *$(join_by "* -or -name *" $EXCLUDE_LIBS)*" # Will do most of the work @@ -67,6 +68,15 @@ function deploy() { find ${EXEC^}/usr/lib/ -type f -and \( ${EXCLUDE_LIBS} \) -delete cp LICENSE CHANGELOG.md CONTRIBUTING.md ${EXEC^}/ install -Dm644 ${EXEC}/${EXEC}.appdata.xml ${EXEC^}/usr/share/metainfo/${EXEC}.appdata.xml + case ${*:2} in + *qt*) + cp -rf /usr/lib/x86_64-linux-gnu/qt6/plugins/wayland-shell-integration ${EXEC^}/usr/plugins/wayland-shell-integration + for SHELL in ${EXEC^}/usr/plugins/wayland-shell-integration/*; do + patchelf --force-rpath --set-rpath \$ORIGIN/../../lib:\$ORIGIN ${SHELL} + done + ;; + *);; + esac # Custom AppRun script! unlink ${EXEC^}/AppRun \ diff --git a/utils/scripts/docker/setup_base.bash b/utils/scripts/docker/setup_base.bash index 57a496a4e60461735241ecbea899fc8888a55883..031e4094b3f6905842f182b5b03c5bb69175ff44 100755 --- a/utils/scripts/docker/setup_base.bash +++ b/utils/scripts/docker/setup_base.bash @@ -2,7 +2,7 @@ set -e ARCH=$(arch) -PKG_BASE="make libmpv-dev cmake clang clang-format manpages man-db" +PKG_BASE="make libmpv-dev cmake clang clang-format manpages man-db chrpath patchelf" PKG_BACKPORT="" PKG_BACKPORT+=" qt6-base-dev qt6-declarative-dev qt6-multimedia-dev qt6-tools-private-dev"