Skip to content
Extraits de code Groupes Projets
Valider c9db2389 rédigé par Kubat's avatar Kubat
Parcourir les fichiers

BUILD: Ensure that the source folder is mounted in the docker and don't...

BUILD: Ensure that the source folder is mounted in the docker and don't package the base xcb libraries, let Qt depend on the system ones
parent 4e88cf15
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!197Draft: Refactor the whole code.
...@@ -4,6 +4,10 @@ set -xe ...@@ -4,6 +4,10 @@ set -xe
echo "The appimage folder is not mounted in the docker" echo "The appimage folder is not mounted in the docker"
exit 1 exit 1
} }
[ ! -f /src/.gitignore ] && {
echo "The source folder is not mounted in the docker"
exit 1
}
[ ! -d squashfs-root ] && { [ ! -d squashfs-root ] && {
echo "The appimage utilities where not deployed..." echo "The appimage utilities where not deployed..."
exit 1 exit 1
...@@ -14,6 +18,10 @@ export PATH="$PWD/squashfs-root/usr/bin:$PATH" ...@@ -14,6 +18,10 @@ export PATH="$PWD/squashfs-root/usr/bin:$PATH"
export LD_LIBRARY_PATH="$PWD/squashfs-root/usr/lib:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH="$PWD/squashfs-root/usr/lib:$LD_LIBRARY_PATH"
export QMAKE=/usr/lib/qt6/bin/qmake6 export QMAKE=/usr/lib/qt6/bin/qmake6
# NOTE: Don't package the wayland things, rely on xwayland for now... see later if the wayland thing
# is fixed upstream: https://github.com/linuxdeploy/linuxdeploy-plugin-qt/pull/25
# export EXTRA_PLATFORM_PLUGINS="libqxcb.so;libqwayland-egl.so;libqwayland-generic.so;"
function join_by() { function join_by() {
local d=${1-} f=${2-} local d=${1-} f=${2-}
if shift 2; then if shift 2; then
...@@ -21,42 +29,27 @@ function join_by() { ...@@ -21,42 +29,27 @@ function join_by() {
fi fi
} }
EXCLUDE_LIBS="libgdk_pixbuf libpango libcairo libgio libglib libgmodule libgobject libgthread libX11-xcb libxcb-"
EXCLUDE_LIBS="-name *$(join_by "* -or -name *" $EXCLUDE_LIBS)*"
function deploy() { function deploy() {
local EXEC=${1,,} local EXEC=${1,,}
local WITHQTPLUGIN="$2" local PLUGINS=()
while [ $# -gt 1 ]; do
local EXTRA_PLATFORM_PLUGINS="libqxcb.so;libqwayland-egl.so;libqwayland-generic.so;" shift 1
export EXTRA_PLATFORM_PLUGINS case $@ in
*--qt*) PLUGINS+=(--plugin qt);;
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)*" esac
done
local qtPlugin=()
if [[ "x$WITHQTPLUGIN" == "x1" ]]; then
qtPlugin+=(--plugin qt)
fi
# Will do most of the work linuxdeploy -v1 --appdir ${EXEC^} -e target/release/${EXEC} -i ${EXEC}/${EXEC}.png -d ${EXEC}/${EXEC}.desktop ${PLUGINS[@]}
linuxdeploy -v1 --appdir ${EXEC^} -e target/release/${EXEC} \
-i ${EXEC}/${EXEC}.png -d ${EXEC}/${EXEC}.desktop "${qtPlugin[@]}"
# Handle aftermath things here, we force copy the qt plugins for wayland and remove unwanted
# libs... NOTE: For now we force the xcb platform because of troubles with wayland...
mkdir -p ${EXEC^}/apprun-hooks/ mkdir -p ${EXEC^}/apprun-hooks/
find ${EXEC^}/usr/lib/ -type f -and \( ${EXCLUDE_LIBS} \) -delete find ${EXEC^}/usr/ -type f -and \( ${EXCLUDE_LIBS} \) -delete
cp LICENSE CHANGELOG.md CONTRIBUTING.md ${EXEC^}/ cp LICENSE CHANGELOG.md CONTRIBUTING.md ${EXEC^}/
install -Dm644 ${EXEC}/${EXEC}.appdata.xml ${EXEC^}/usr/share/metainfo/${EXEC}.appdata.xml 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 \ unlink ${EXEC^}/AppRun \
&& touch ${EXEC^}/AppRun \ && touch ${EXEC^}/AppRun \
&& chmod +x ${EXEC^}/AppRun && chmod +x ${EXEC^}/AppRun
...@@ -66,20 +59,15 @@ set -e ...@@ -66,20 +59,15 @@ set -e
this_dir="\$(readlink -f "\$(dirname "\$0")")" this_dir="\$(readlink -f "\$(dirname "\$0")")"
[ ! -n "\$(find "\$this_dir"/apprun-hooks/ -maxdepth 0 -type d -empty 2>/dev/null)" ] \ [ ! -n "\$(find "\$this_dir"/apprun-hooks/ -maxdepth 0 -type d -empty 2>/dev/null)" ] \
&& [ -d "\$this_dir"/apprun-hooks/ ] \ && [ -d "\$this_dir"/apprun-hooks/ ] \
&& { && { for HOOK in "\$this_dir"/apprun-hooks/*; do source "\$HOOK"; done }
for HOOK in "\$this_dir"/apprun-hooks/*; do
source "\$HOOK"
done
}
exec "\$this_dir/usr/bin/${EXEC}" \$@ exec "\$this_dir/usr/bin/${EXEC}" \$@
EOF EOF
# Pack the AppImage
appimagetool -v --comp xz ${EXEC^} appimagetool -v --comp xz ${EXEC^}
mv ${EXEC^}-$(arch).AppImage /build/ mv ${EXEC^}-$(arch).AppImage /build/
} }
deploy lkt deploy lkt
deploy amadeus deploy amadeus
deploy lektord 1 deploy lektord --qt
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
set -e set -e
ARCH=$(arch) ARCH=$(arch)
PKG_BASE="make libmpv-dev cmake clang clang-format manpages man-db chrpath patchelf" PKG_BASE="make libmpv-dev cmake clang clang-format manpages man-db patchelf"
PKG_BACKPORT="" PKG_BACKPORT=""
PKG_BACKPORT+=" qt6-base-dev qt6-declarative-dev qt6-multimedia-dev qt6-tools-private-dev" PKG_BACKPORT+=" qt6-base-dev qt6-declarative-dev qt6-multimedia-dev qt6-tools-private-dev"
...@@ -11,9 +11,7 @@ PKG_BACKPORT+=" qt6-image-formats-plugins qt6-gtk-platformtheme qt6-base-abi lib ...@@ -11,9 +11,7 @@ PKG_BACKPORT+=" qt6-image-formats-plugins qt6-gtk-platformtheme qt6-base-abi lib
PKG_BACKPORT+=" libqt6multimedia6 libqt6concurrent6 libqt6multimediawidgets6 " PKG_BACKPORT+=" libqt6multimedia6 libqt6concurrent6 libqt6multimediawidgets6 "
PKG_BACKPORT+=" libqt6opengl6 libqt6openglwidgets6 libqt6widgets6" PKG_BACKPORT+=" libqt6opengl6 libqt6openglwidgets6 libqt6widgets6"
PKG_BACKPORT+=" qt6-translations-l10n qt6-l10n-tools" PKG_BACKPORT+=" qt6-translations-l10n qt6-l10n-tools"
PKG_BACKPORT+=" qt6-wayland-dev qt6-wayland qt6-wayland-dev-tools libqt6waylandclient6 libqt6wlshellintegration6" PKG_BACKPORT+=" qt6-wayland-dev qt6-wayland qt6-wayland-dev-tools libqt6waylandclient6 libqt6wlshellintegration6"
PKG_BACKPORT+=" qt6-qpa-plugins" PKG_BACKPORT+=" qt6-qpa-plugins"
function appimage_setup() { function appimage_setup() {
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter