Release 1.1.3 with game window and Gamescope lifecycle fixes

This commit is contained in:
2026-10-25 20:47:19 +01:00
parent b6de80e758
commit 1f2aad0ee2
42 changed files with 9291 additions and 153 deletions

View File

@@ -0,0 +1,77 @@
#!/usr/bin/env bash
set -euo pipefail
export DEBIAN_FRONTEND=noninteractive
if [[ -f /etc/apt/sources.list.d/ubuntu.sources ]]
then
sed -i 's/^Types: deb$/Types: deb deb-src/' \
/etc/apt/sources.list.d/ubuntu.sources
fi
apt-get update
apt-get install --yes build-essential ca-certificates devscripts dpkg-dev patch xz-utils
apt-get build-dep --yes gamescope
BUILD_ROOT="$(mktemp -d /tmp/ptlinux-gamescope.XXXXXX)"
trap 'rm -rf -- "$BUILD_ROOT"' EXIT
tar --extract \
--file /sources/gamescope_3.16.20+ds.orig.tar.xz \
--directory "$BUILD_ROOT"
SOURCE_ROOT="$(find "$BUILD_ROOT" -mindepth 1 -maxdepth 1 -type d -print -quit)"
if [[ -z "$SOURCE_ROOT" ]]
then
printf '%s\n' "The Gamescope source archive has no top-level directory." >&2
exit 1
fi
tar --extract \
--file /sources/gamescope_3.16.20+ds-1.debian.tar.xz \
--directory "$SOURCE_ROOT"
PATCH_ROOT="/workspace/native/gamescope/patches"
PATCH_SERIES=(
gamescope-wayland-letterbox-backing.patch
gamescope-wayland-libdecor-input-scope.patch
gamescope-lazy-output-images.patch
gamescope-wayland-live-resize.patch
gamescope-keep-nested-windows-visible.patch
)
mkdir -p -- "${SOURCE_ROOT}/debian/patches"
touch "${SOURCE_ROOT}/debian/patches/series"
for patch_name in "${PATCH_SERIES[@]}"
do
install -m 0644 \
"${PATCH_ROOT}/${patch_name}" \
"${SOURCE_ROOT}/debian/patches/${patch_name}"
if ! grep -Fqx -- "$patch_name" "${SOURCE_ROOT}/debian/patches/series"
then
printf '%s\n' "$patch_name" >> "${SOURCE_ROOT}/debian/patches/series"
fi
done
(
cd "$SOURCE_ROOT"
DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage --build=binary --no-sign -jauto
)
PACKAGE="$(find "$BUILD_ROOT" -maxdepth 1 -type f \
-name 'gamescope_*_amd64.deb' -print -quit)"
if [[ -z "$PACKAGE" ]]
then
printf '%s\n' "The Gamescope build did not produce an amd64 Debian package." >&2
exit 1
fi
EXTRACT_ROOT="${BUILD_ROOT}/package"
dpkg-deb --extract "$PACKAGE" "$EXTRACT_ROOT"
if [[ -x "${EXTRACT_ROOT}/usr/games/gamescope" ]]
then
BINARY="${EXTRACT_ROOT}/usr/games/gamescope"
elif [[ -x "${EXTRACT_ROOT}/usr/bin/gamescope" ]]
then
BINARY="${EXTRACT_ROOT}/usr/bin/gamescope"
else
printf '%s\n' "The Gamescope Debian package contains no executable." >&2
exit 1
fi
install -m 0755 "$BINARY" \
/output/gamescope-3.16.20-ubuntu26.04-amd64
chown "${HOST_UID}:${HOST_GID}" \
/output/gamescope-3.16.20-ubuntu26.04-amd64