diff --git a/services/wolf.sh b/services/wolf.sh index e06049f..00352b8 100644 --- a/services/wolf.sh +++ b/services/wolf.sh @@ -1003,32 +1003,24 @@ XMLEOF # it (copies to /opt/ti99sim/bin, symlinks into # /usr/local/bin), so use that instead of guessing the exact # build subpath. - # ti99sim's own Makefile.linux calls the old SDL 1.x `sdl-config` - # tool, which no longer exists — modern libsdl2-dev ships only - # pkg-config .pc files (and sometimes sdl2-config, itself already - # a thin wrapper over pkg-config). Confirmed live: without this, - # every sdl-config call silently returns nothing, so the compile - # gets no -I/-L flags at all and fails on "SDL.h: No such file or - # directory" — not a real incompatibility, just a stale tool - # name. A tiny shim mapping the handful of flags this build - # actually uses (--cflags/--libs/--version) onto pkg-config sdl2 - # fixes it without patching the project's own Makefiles. + # ti99sim's SDL frontend (src/sdl/main.cpp) is written against + # the real SDL 1.2 API, not SDL2 — confirmed live: compiling + # against libsdl2-dev fails outright on symbols SDL2 genuinely + # removed (SDL_keysym, SDL_WM_SetCaption, SDL_EnableUNICODE, + # SDL_JoystickOpened, the old integer-index SDL_JoystickName), + # not a tooling/config problem a shim can paper over. The actual + # fix: libsdl1.2-compat-dev, the SDL project's own official + # compatibility package (libsdl-org/sdl12-compat) — real SDL 1.2 + # headers and its own sdl-config, implemented on top of real + # SDL2 underneath, so the code compiles against the API it + # actually expects while still running on modern SDL2 at + # runtime. Packaged in Ubuntu's universe repo. if docker run --rm -u root --entrypoint /bin/bash \ -v "$GAME_STORAGE_DIR/emulators:/output" \ ghcr.io/games-on-whales/es-de:edge -c ' set -e apt-get update -qq - apt-get install -y -qq git build-essential libsdl2-dev pkgconf ca-certificates - cat > /usr/local/bin/sdl-config << "SDLCFG" -#!/bin/sh -case "$1" in - --cflags) exec pkg-config sdl2 --cflags ;; - --libs) exec pkg-config sdl2 --libs ;; - --version) exec pkg-config sdl2 --modversion ;; - *) exec pkg-config sdl2 --cflags --libs ;; -esac -SDLCFG - chmod +x /usr/local/bin/sdl-config + apt-get install -y -qq git build-essential libsdl1.2-compat-dev ca-certificates git clone -q https://github.com/billzajac/ti99sim.git /tmp/ti99sim cd /tmp/ti99sim make