diff --git a/.github/workflows/rolling-release.yml b/.github/workflows/rolling-release.yml index 100a74ed2..0c3ee594b 100644 --- a/.github/workflows/rolling-release.yml +++ b/.github/workflows/rolling-release.yml @@ -267,7 +267,7 @@ jobs: cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DCMAKE_PREFIX_PATH=$HOME/deps -DCMAKE_TOOLCHAIN_FILE=../scripts/clang-toolchain.cmake .. cmake --build . --parallel cd .. - scripts/make-appimage.sh $(realpath .) $(realpath ./build) $HOME/deps DuckStation-x64 + scripts/appimage/make-appimage.sh $(realpath .) $(realpath ./build) $HOME/deps DuckStation-x64 - name: Upload Qt AppImage uses: actions/upload-artifact@v1 diff --git a/scripts/appimage/apprun-hooks/default-to-x11.sh b/scripts/appimage/apprun-hooks/default-to-x11.sh new file mode 100644 index 000000000..fa0dafe90 --- /dev/null +++ b/scripts/appimage/apprun-hooks/default-to-x11.sh @@ -0,0 +1,9 @@ +if [[ -z "$I_WANT_A_BROKEN_WAYLAND_UI" ]]; then + echo "Forcing X11 instead of Wayland, due to various protocol limitations" + echo "and Qt issues. If you want to use Wayland, launch DuckStation with" + echo "I_WANT_A_BROKEN_WAYLAND_UI=YES set." + export QT_QPA_PLATFORM=xcb +else + echo "Wayland is not being disabled. Do not complain when things break." +fi + diff --git a/scripts/make-appimage.sh b/scripts/appimage/make-appimage.sh similarity index 93% rename from scripts/make-appimage.sh rename to scripts/appimage/make-appimage.sh index 23ff6bcca..c0cde7429 100755 --- a/scripts/make-appimage.sh +++ b/scripts/appimage/make-appimage.sh @@ -88,7 +88,6 @@ if [ ! -f "$APPIMAGETOOL" ]; then fi OUTDIR=$(realpath "./$APPDIRNAME") -SCRIPTDIR=$(dirname "${BASH_SOURCE[0]}") rm -fr "$OUTDIR" # Why the nastyness? linuxdeploy strips our main binary, and there's no option to turn it off. @@ -159,7 +158,16 @@ cp -a "$BUILDDIR/bin/translations" "$OUTDIR/usr/bin" # Generate AppStream meta-info. echo "Generating AppStream metainfo..." mkdir -p "$OUTDIR/usr/share/metainfo" -"$SCRIPTDIR/generate-metainfo.sh" "$OUTDIR/usr/share/metainfo" +"$SCRIPTDIR/../generate-metainfo.sh" "$OUTDIR/usr/share/metainfo" + +# Copy in AppRun hooks. +echo "Copying AppRun hooks..." +mkdir -p "$OUTDIR/apprun-hooks" +for hookpath in "$SCRIPTDIR/apprun-hooks"/*; do + hookname=$(basename "$hookpath") + cp -v "$hookpath" "$OUTDIR/apprun-hooks/$hookname" + sed -i -e 's/exec /source "$this_dir"\/apprun-hooks\/"'"$hookname"'"\nexec /' "$OUTDIR/AppRun" +done echo "Generating AppImage..." rm -f "$NAME.AppImage"