mirror of
https://github.com/jkdansereau/goldeneye-pc-port.git
synced 2026-10-24 00:02:45 +02:00
CI: Linux bundle built in the Steam Runtime sniper container (glibc floor 2.38 -> 2.31), SDL2 2.30.0 from source (D572)
This commit is contained in:
1 parent
1d75c4c849
commit
9f1cfe909e
5 files changed
+65
-18
No files matched your search
@@ -127,7 +127,8 @@ and controller-only sessions.
|
||||
Each contains the engine executable, a README, license texts, and the
|
||||
one-time asset tool. **No ROM, no game assets.** The Windows bundle carries
|
||||
its runtime DLLs and the Linux bundle carries SDL2, so nothing needs to be
|
||||
installed first.
|
||||
installed first. The Linux bundle runs on glibc 2.31 or newer (Ubuntu 20.04+,
|
||||
Debian 11+, SteamOS).
|
||||
|
||||
### Running it
|
||||
|
||||
@@ -157,7 +158,6 @@ Full steps, controls and troubleshooting are in the bundled `README.md`.
|
||||
| Issue | Impact | Workaround |
|
||||
|---|---|---|
|
||||
| PAL and JP ROMs aren't supported in release packages | NTSC-U only | Use an NTSC-U ROM. Both regions convert, build and boot from source; packaging is still open |
|
||||
| The Linux tarball needs glibc 2.38 or newer | Won't start on older distros (Ubuntu 22.04, Debian 12, Fedora 38 and earlier) | Use a newer distro, or build from source |
|
||||
| Changing aspect ratio inside a level can briefly glitch the gun/hand model, rarely | Cosmetic, one-off | Change the ratio from the front-end PC Options, or accept it |
|
||||
| No macOS or ARM builds | Platform | — |
|
||||
| Saves from v0.4.0 and earlier can hold fake unlocks from `All unlocked` | Save data | Not repaired automatically. Since v0.5.0 the option never writes the save; keep a backup of `data/ge007.eep` from before you used it |
|
||||
|
||||
+40
-14
@@ -171,21 +171,32 @@ jobs:
|
||||
# here is a "does it compile + link" signal only, not a runtime claim.
|
||||
# Not a required check yet; flip it to required once it is reliably green.
|
||||
#
|
||||
# Toolchain: ubuntu-24.04 + gcc-14. The port is developed on MinGW GCC 16;
|
||||
# pinning a recent GCC here keeps the first bring-up focused on real
|
||||
# portability gaps rather than a decade of accumulated old-GCC pedantry.
|
||||
# (A "does it build on the GCC a typical distro ships" pass can come later.)
|
||||
# Toolchain: Steam Runtime 3 "sniper" SDK container (Debian 11 base,
|
||||
# glibc 2.31) + its gcc-14. Building against the old glibc is what sets the
|
||||
# tarball's floor: the ubuntu-24.04 build needed glibc 2.38 (C23
|
||||
# __isoc23_* symbols), so it refused to start on Ubuntu 22.04 / Debian 12.
|
||||
# The image is pinned by version AND digest.
|
||||
# SDL2 is built from source (2.30.0, the version the 24.04 build bundled
|
||||
# and every Linux/Deck test used): the SDK's own libSDL2 is sdl2-compat,
|
||||
# which needs SDL3 at runtime. pip is bootstrapped from a hash-pinned
|
||||
# get-pip.py: Debian 11's security archive no longer serves python3-pip.
|
||||
linux-build:
|
||||
runs-on: ubuntu-24.04
|
||||
container:
|
||||
image: registry.gitlab.steamos.cloud/steamrt/sniper/sdk:3.0.20260805.254768@sha256:1c33c507bc75d012e77df5727f93b0d5b8c3f7c8d4142ba5f7a16882cc92e014
|
||||
env:
|
||||
CC: gcc-14
|
||||
CXX: g++-14
|
||||
# CMakeLists.txt opt-in enables CMAKE_{C,CXX}_COMPILER_LAUNCHER=ccache
|
||||
# when ccache is on PATH (b4de1c68, speed-ups plan Step 5). Game
|
||||
# sources are frozen (1:1 with the decomp), so after the first run only
|
||||
# touched port/ files miss cache -- near-total hit rate.
|
||||
CCACHE_DIR: ${{ github.workspace }}/.ccache
|
||||
# touched port/ files miss cache -- near-total hit rate. CCACHE_DIR is
|
||||
# set in a step: in a container job ${{ github.workspace }} is the
|
||||
# host path, not the container's.
|
||||
CCACHE_MAXSIZE: 500M
|
||||
SDL2_VERSION: 2.30.0
|
||||
SDL2_SHA256: 36e2e41557e0fa4a1519315c0f5958a87ccb27e25c51776beb6f1239526447b0
|
||||
GET_PIP_SHA256: 95c0ae79ccf9ac1e47e4187f49081d6ae1f45997afd4549e14f37337cbcfd766
|
||||
steps:
|
||||
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
with:
|
||||
@@ -193,18 +204,33 @@ jobs:
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y build-essential gcc-14 g++-14 cmake python3 \
|
||||
python3-pip libsdl2-dev zlib1g-dev libgl1-mesa-dev ccache patchelf
|
||||
echo "CCACHE_DIR=$GITHUB_WORKSPACE/.ccache" >> "$GITHUB_ENV"
|
||||
apt-get update
|
||||
apt-get install -y patchelf
|
||||
curl -fsSL -o /tmp/get-pip.py https://bootstrap.pypa.io/pip/3.9/get-pip.py
|
||||
echo "$GET_PIP_SHA256 /tmp/get-pip.py" | sha256sum -c
|
||||
python3 /tmp/get-pip.py --quiet
|
||||
|
||||
- name: Build SDL2 ${{ env.SDL2_VERSION }} from source
|
||||
run: |
|
||||
curl -fsSL -o /tmp/sdl2.tar.gz \
|
||||
"https://github.com/libsdl-org/SDL/releases/download/release-$SDL2_VERSION/SDL2-$SDL2_VERSION.tar.gz"
|
||||
echo "$SDL2_SHA256 /tmp/sdl2.tar.gz" | sha256sum -c
|
||||
tar xzf /tmp/sdl2.tar.gz -C /tmp
|
||||
cmake -S "/tmp/SDL2-$SDL2_VERSION" -B /tmp/sdl-build -DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr/local -DSDL_STATIC=OFF -DSDL_TEST=OFF
|
||||
cmake --build /tmp/sdl-build -j"$(nproc)"
|
||||
cmake --install /tmp/sdl-build
|
||||
ldconfig
|
||||
|
||||
- name: Restore ccache
|
||||
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
||||
with:
|
||||
path: ${{ env.CCACHE_DIR }}
|
||||
key: ccache-linux-${{ hashFiles('CMakeLists.txt') }}-${{ github.sha }}
|
||||
path: .ccache
|
||||
key: ccache-linux-sniper-${{ hashFiles('CMakeLists.txt') }}-${{ github.sha }}
|
||||
restore-keys: |
|
||||
ccache-linux-${{ hashFiles('CMakeLists.txt') }}-
|
||||
ccache-linux-
|
||||
ccache-linux-sniper-${{ hashFiles('CMakeLists.txt') }}-
|
||||
ccache-linux-sniper-
|
||||
|
||||
- name: Regenerate ROM-asset symbol file (US)
|
||||
run: python3 scripts/gen_romassets.py u
|
||||
@@ -217,7 +243,7 @@ jobs:
|
||||
- name: Freeze asset converter (PyInstaller)
|
||||
run: |
|
||||
python3 -c "import PyInstaller, sys; sys.exit(PyInstaller.__version__ != '6.22.3')" 2>/dev/null \
|
||||
|| python3 -m pip install --quiet --break-system-packages pyinstaller==6.22.3
|
||||
|| python3 -m pip install --quiet pyinstaller==6.22.3
|
||||
python3 -m PyInstaller --onefile --noconfirm --clean \
|
||||
--name ge007-convert \
|
||||
--distpath tools_pc/dist/prepare-assets \
|
||||
|
||||
Reference in new issue
Block a user