Skip to content

feat(portable): add Debian 12 Classic build baseline - #46

Merged
zoeyrose merged 7 commits into
mainfrom
fix/issue-45-portable-baseline
Sep 9, 2026
Merged

feat(portable): add Debian 12 Classic build baseline#46
zoeyrose merged 7 commits into
mainfrom
fix/issue-45-portable-baseline

Conversation

@zoeyrose

@zoeyrose zoeyrose commented Sep 9, 2026

Copy link
Copy Markdown
Member

Summary

Add a separate Debian 12 / glibc 2.36 Linux/amd64 image for portable Classic builds.

Implementation / behavior

Build modern pinned Classic dependencies against the baseline, expose machine-readable input and ABI metadata, and validate the real Classic client and its application-library closure. Add a dedicated automatic nonpublishing PR CI path and reviewed publication wiring.

Validation

The delivery-owned review section records exact-head checks and independent review before readiness.

Limitations / follow-up

Publishing the reviewed image requires a separately authorized merge and release. Distribution relocation, hardware gameplay, and audible playback remain parent integration acceptance.

Closes #45

Delivery review

The separate Linux/amd64 target builds modern pinned Classic dependencies on Debian 12 / glibc 2.36. The canonical coordinator and existing Classic/Windows targets retain their contracts.

Implementation details

  • OpenSSL 3.5.5, SDL3 3.4.2, SDL3_image 3.4.0, SDL3_ttf 3.2.2 and the existing pinned SDL3_mixer 3.2.4 codec cohort.
  • Canonical shader tools generate a verified data cohort in a separate pinned Ubuntu stage; only verified shader data, corresponding sources and notices cross into Debian.
  • Actual ELF dependencies, numeric version-index/provider bindings, CPU properties, FDO dynamic loaders and consumer/image closure agreement are checked. Required runtime sources, notices and metadata are readable by arbitrary non-root UIDs.
  • Dedicated automatic nonpublishing PR validation and required aggregation cover the new target. Publication wiring validates immutable candidates before aliases move.

Validation

Final head c85e833ea8e3f0681c88f65a3dbb76ec4e455910 passes all seven selected validation jobs, including the existing Linux, Classic, Windows cross-build and native Windows tests, plus the required aggregate. All 13 PR checks pass, including CodeQL and the Conventional PR title check.

The real non-root Classic 8b920dffa0f5c161e9310b334df1cf48fbf15a36 client built on Debian 12: 66 tests passed, 16 GPU tests skipped, zero failed, including a passing QUIC test. All 272 compiler commands use baseline CPU flags; the final 87-object ELF/provider closure agrees with the image closure. The CPU-only job does not establish native GPU acceptance.

The portable consumer evidence artifact has SHA-256 fee90775494b0c1b2d5c69258fbe7af248ad22ebe4076fac4102bbb9f5ac626f. It retains the exact Classic revision, compiler commands, installed tool/input contract, test log and consumer ABI report.

Local validation includes 11 ABI regressions, 21 existing owner tests, required-check aggregation, ShellCheck, actionlint and syntax/diff checks. Independent fresh complete-diff and actual-artifact review found no remaining actionable findings at the final head; both runtime/source closure and arbitrary non-root readability findings are validated resolved.

Boundaries

X11/Vulkan is the supported display backend. Native Wayland is absent; a Wayland desktop requires an XWayland route qualified by the parent integration. Steam user-storage integration is unsupported. Host graphics drivers remain external.

Merge, release and registry publication require separate authorization. Published digest consumption, distribution relocation, connectivity, actual hardware gameplay and audible playback remain with the parent integration. No image was published by this delivery.

@zoeyrose zoeyrose moved this to Review in Atrinik work Sep 9, 2026
@zoeyrose
zoeyrose marked this pull request as ready for review September 9, 2026 11:44
@zoeyrose
zoeyrose merged commit ee829e7 into main Sep 9, 2026
14 checks passed
@zoeyrose
zoeyrose deleted the fix/issue-45-portable-baseline branch September 9, 2026 16:29
@github-project-automation github-project-automation Bot moved this from Review to Done in Atrinik work Sep 9, 2026
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

🎉 This PR is included in version 1.11.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Add a Debian 12 baseline for portable Linux Classic builds

1 participant