Release 1.1.3 with game window and Gamescope lifecycle fixes
This commit is contained in:
63
native/gamescope/build.sh
Executable file
63
native/gamescope/build.sh
Executable file
@@ -0,0 +1,63 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
PROVENANCE_ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd -- "${PROVENANCE_ROOT}/../.." && pwd)"
|
||||
SOURCE_ARCHIVE_DIRECTORY="${1:-${PROJECT_ROOT}/.artifacts/native/gamescope/sources}"
|
||||
OUTPUT_DIRECTORY="${2:-${PROJECT_ROOT}/.artifacts/native/gamescope}"
|
||||
ARTIFACT_NAME="gamescope-3.16.20-ubuntu26.04-amd64"
|
||||
SHIPPED_ARTIFACT="${PROJECT_ROOT}/src/ptlinux/native/${ARTIFACT_NAME}"
|
||||
|
||||
if [[ ! -d "$SOURCE_ARCHIVE_DIRECTORY" ]]
|
||||
then
|
||||
printf 'Gamescope source-archive directory does not exist: %s\n' \
|
||||
"$SOURCE_ARCHIVE_DIRECTORY" >&2
|
||||
exit 2
|
||||
fi
|
||||
mkdir -p -- "$OUTPUT_DIRECTORY"
|
||||
SOURCE_ARCHIVE_DIRECTORY="$(cd -- "$SOURCE_ARCHIVE_DIRECTORY" && pwd)"
|
||||
OUTPUT_DIRECTORY="$(cd -- "$OUTPUT_DIRECTORY" && pwd)"
|
||||
if [[ "${OUTPUT_DIRECTORY}/${ARTIFACT_NAME}" == "$SHIPPED_ARTIFACT" ]]
|
||||
then
|
||||
printf '%s\n' "Refusing to overwrite the shipped Gamescope executable." >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
(
|
||||
cd "$SOURCE_ARCHIVE_DIRECTORY"
|
||||
sha256sum --check "${PROVENANCE_ROOT}/source.sha256"
|
||||
)
|
||||
|
||||
if [[ -n "${CONTAINER_ENGINE:-}" ]]
|
||||
then
|
||||
ENGINE="$CONTAINER_ENGINE"
|
||||
elif command -v podman >/dev/null 2>&1
|
||||
then
|
||||
ENGINE="podman"
|
||||
elif command -v docker >/dev/null 2>&1
|
||||
then
|
||||
ENGINE="docker"
|
||||
else
|
||||
printf '%s\n' "Docker or Podman is required to rebuild Gamescope." >&2
|
||||
exit 1
|
||||
fi
|
||||
if ! command -v "$ENGINE" >/dev/null 2>&1
|
||||
then
|
||||
printf 'Container engine was not found: %s\n' "$ENGINE" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -f -- "${OUTPUT_DIRECTORY}/${ARTIFACT_NAME}"
|
||||
"$ENGINE" run --rm --platform linux/amd64 \
|
||||
--env "HOST_UID=$(id -u)" \
|
||||
--env "HOST_GID=$(id -g)" \
|
||||
--volume "${PROJECT_ROOT}:/workspace:ro" \
|
||||
--volume "${SOURCE_ARCHIVE_DIRECTORY}:/sources:ro" \
|
||||
--volume "${OUTPUT_DIRECTORY}:/output" \
|
||||
ubuntu:26.04 \
|
||||
bash /workspace/native/gamescope/build-in-container.sh
|
||||
(
|
||||
cd "$OUTPUT_DIRECTORY"
|
||||
sha256sum --check "${PROVENANCE_ROOT}/binary.sha256"
|
||||
)
|
||||
Reference in New Issue
Block a user