Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e0464e7407 |
@@ -344,31 +344,10 @@ jobs:
|
|||||||
apt-get update
|
apt-get update
|
||||||
apt-get install -y --no-install-recommends meson ninja-build glslc git || true
|
apt-get install -y --no-install-recommends meson ninja-build glslc git || true
|
||||||
apt-get build-dep -y gamescope || true
|
apt-get build-dep -y gamescope || true
|
||||||
# NOT best-effort. `build-dep gamescope` resolves the distro's much older packaged
|
|
||||||
# gamescope — where noble has one at all — so it misses what the master tree needs, and
|
|
||||||
# wayland-protocols is the gap that actually stops the build: meson dies in
|
|
||||||
# protocol/meson.build with "Neither a subproject directory nor a wayland-protocols.wrap
|
|
||||||
# file was found", because the tree has no wrap fallback for it. That is what happened on
|
|
||||||
# the v0.26.0 tag: the step warned and skipped, the job stayed green, and the release
|
|
||||||
# shipped with no gamescope .deb while the notes said it had one.
|
|
||||||
apt-get install -y --no-install-recommends wayland-protocols
|
|
||||||
# The remaining Arch makedepends the older packaged gamescope does not necessarily pull.
|
|
||||||
# Best-effort: meson falls back or does without, and a name that moves between Ubuntu
|
|
||||||
# releases should not fail the job. (No libstdc++ static package is needed here — g++
|
|
||||||
# ships libstdc++.a, which is why only Fedora tripped the sanity check.)
|
|
||||||
apt-get install -y --no-install-recommends libglm-dev cmake libxcursor-dev || true
|
|
||||||
if bash packaging/gamescope/build-punktfunk-gamescope.sh \
|
if bash packaging/gamescope/build-punktfunk-gamescope.sh \
|
||||||
--destdir "$PWD/gs-stage" --prefix /usr --jobs "$(nproc)"; then
|
--destdir "$PWD/gs-stage" --prefix /usr --jobs "$(nproc)"; then
|
||||||
install -Dm0755 gs-stage/usr/bin/punktfunk-gamescope gs-cache/punktfunk-gamescope
|
install -Dm0755 gs-stage/usr/bin/punktfunk-gamescope gs-cache/punktfunk-gamescope
|
||||||
else
|
else
|
||||||
# Best-effort on canary, HARD on a stable tag — same reasoning as rpm.yml. A warning
|
|
||||||
# here is what let v0.26.0 promise an apt-installable gamescope that was never built.
|
|
||||||
case "$GITHUB_REF" in
|
|
||||||
refs/tags/v*)
|
|
||||||
echo "::error::punktfunk-gamescope failed to build on noble — a stable tag must not ship without it (the release notes and docs-site say it is installable)"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
echo "::warning::punktfunk-gamescope failed to build on noble — no .deb this run (gamescope sessions stay SDR)"
|
echo "::warning::punktfunk-gamescope failed to build on noble — no .deb this run (gamescope sessions stay SDR)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -378,13 +357,6 @@ jobs:
|
|||||||
if [ -x gs-cache/punktfunk-gamescope ] && gs-cache/punktfunk-gamescope --version >/dev/null 2>&1; then
|
if [ -x gs-cache/punktfunk-gamescope ] && gs-cache/punktfunk-gamescope --version >/dev/null 2>&1; then
|
||||||
bash packaging/debian/build-gamescope-deb.sh --binary gs-cache/punktfunk-gamescope
|
bash packaging/debian/build-gamescope-deb.sh --binary gs-cache/punktfunk-gamescope
|
||||||
else
|
else
|
||||||
# Authoritative, and covers the cache path the build step skips — same as rpm.yml.
|
|
||||||
case "$GITHUB_REF" in
|
|
||||||
refs/tags/v*)
|
|
||||||
echo "::error::no usable punktfunk-gamescope — a stable tag must not ship without its .deb"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
echo "::warning::no usable punktfunk-gamescope — skipping its .deb"
|
echo "::warning::no usable punktfunk-gamescope — skipping its .deb"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -206,33 +206,10 @@ jobs:
|
|||||||
dnf -y install dnf-plugins-core meson ninja-build glslc || true
|
dnf -y install dnf-plugins-core meson ninja-build glslc || true
|
||||||
dnf builddep -y gamescope || true
|
dnf builddep -y gamescope || true
|
||||||
dnf -y install xorg-x11-server-Xwayland-devel || true
|
dnf -y install xorg-x11-server-Xwayland-devel || true
|
||||||
# NOT best-effort: build-punktfunk-gamescope.sh appends `-static-libstdc++` to LDFLAGS
|
|
||||||
# (so the binary still starts on SteamOS's older libstdc++ — see its comment), and
|
|
||||||
# without the static library meson's very FIRST sanity check dies with
|
|
||||||
# "cannot find -lstdc++ / have you installed the static version", so nothing builds at
|
|
||||||
# all. That is what happened on the v0.26.0 tag: both Fedora bases warned and skipped,
|
|
||||||
# the job stayed green, and the release shipped with no gamescope RPM while the notes
|
|
||||||
# said it had one. A rename here must be LOUD, hence no `|| true`.
|
|
||||||
dnf -y install libstdc++-static
|
|
||||||
# The rest of the Arch package's makedepends that Fedora's older packaged gamescope does
|
|
||||||
# not necessarily pull. Best-effort: unlike the static runtime, meson finds fallbacks or
|
|
||||||
# does without, and a name that moves between Fedora releases should not fail the job.
|
|
||||||
dnf -y install wayland-protocols-devel glm-devel cmake libXcursor-devel || true
|
|
||||||
if bash packaging/gamescope/build-punktfunk-gamescope.sh \
|
if bash packaging/gamescope/build-punktfunk-gamescope.sh \
|
||||||
--destdir "$PWD/gs-stage" --prefix /usr --jobs "$(nproc)"; then
|
--destdir "$PWD/gs-stage" --prefix /usr --jobs "$(nproc)"; then
|
||||||
install -Dm0755 gs-stage/usr/bin/punktfunk-gamescope gs-cache/punktfunk-gamescope
|
install -Dm0755 gs-stage/usr/bin/punktfunk-gamescope gs-cache/punktfunk-gamescope
|
||||||
else
|
else
|
||||||
# Best-effort on canary, HARD on a stable tag. A `::warning::` here is what let
|
|
||||||
# v0.26.0 publish release notes promising a Fedora gamescope package that did not
|
|
||||||
# exist: the step "succeeded", the job was green, and the only evidence was a warning
|
|
||||||
# nobody reads. A release must not be able to make a claim its own CI silently
|
|
||||||
# dropped, so on `refs/tags/v*` this is an error.
|
|
||||||
case "$GITHUB_REF" in
|
|
||||||
refs/tags/v*)
|
|
||||||
echo "::error::punktfunk-gamescope failed to build for f${{ matrix.fedver }} — a stable tag must not ship without it (the release notes and docs-site say it is installable)"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
echo "::warning::punktfunk-gamescope failed to build for f${{ matrix.fedver }} — the sysext ships without it (gamescope sessions stay SDR)"
|
echo "::warning::punktfunk-gamescope failed to build for f${{ matrix.fedver }} — the sysext ships without it (gamescope sessions stay SDR)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -250,15 +227,6 @@ jobs:
|
|||||||
--binary gs-cache/punktfunk-gamescope \
|
--binary gs-cache/punktfunk-gamescope \
|
||||||
--release "$PF_RELEASE"
|
--release "$PF_RELEASE"
|
||||||
else
|
else
|
||||||
# The authoritative "does this package exist" decision, and the one that also covers
|
|
||||||
# the cache path — the build step above is skipped entirely on a cache hit, so a stale
|
|
||||||
# or empty cache would otherwise reach here and skip in silence on a release.
|
|
||||||
case "$GITHUB_REF" in
|
|
||||||
refs/tags/v*)
|
|
||||||
echo "::error::no usable punktfunk-gamescope for f${{ matrix.fedver }} — a stable tag must not ship without its RPM"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
echo "::warning::no usable punktfunk-gamescope for f${{ matrix.fedver }} — skipping its RPM"
|
echo "::warning::no usable punktfunk-gamescope for f${{ matrix.fedver }} — skipping its RPM"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user