Add Debian, RPM, and AUR packaging recipes, fix const-correctness, avoid conflicts - #78
Merged
jserv merged 4 commits intoAug 5, 2026
Merged
Conversation
Each recipe installs the compat libraries and headers into the private prefix /usr/lib/libx11-compat via make install, avoiding file conflicts with the real X11 dev packages. Also fix the pre-2.20 SDL2_ttf wrapper thunks for TTF_GlyphIsProvided and TTF_GlyphIsProvided32: SDL2_ttf < 2.20 declares them with a non-const TTF_Font *, so the const-qualified thunks failed to compile against those headers (e.g. Ubuntu 22.04's SDL2_ttf 2.0.18). Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
- Use a real maintainer email in debian/control, debian/changelog, the RPM changelog, and the PKGBUILD maintainer line. - debian/rules: drop the dh_auto_build override and delegate install to dh_auto_install so DEB_BUILD_OPTIONS=parallel is honored. - Drop the Debian revision from the version (0.1.0) to match the 3.0 (native) source format. - RPM: pin Source0 to a fixed commit with a snapshot Release, move the compat_prefix/commit %globals to the top of the spec, and keep the upstream-headers note out of %description text. - PKGBUILD: stage the network-fetched upstream Xorg headers in prepare() via make upstream-sync instead of mid-build(). - Ignore debhelper build output under debian/. Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
devin-ai-integration
Bot
force-pushed
the
devin/1785865912-packaging-recipes
branch
from
August 5, 2026 03:28
9512e10 to
857c451
Compare
jserv
reviewed
Aug 5, 2026
Per review, the previous "pre-populate the cache" advice did not hold: dpkg-buildpackage's clean wipes the in-tree cache, mock/koji chroots are fresh with no network, and a prepare()-time fetch bypasses makepkg checksums. Teach scripts/sync-upstream-headers.py to seed the pinned upstream tarballs from LIBX11_COMPAT_TARBALL_DIR (sha256-verified against the pins) before falling back to the network. Declare the tarballs as real sources: Source1..Source6 in the RPM spec with the variable pointed at %_sourcedir, and source=() entries (checksummed by makepkg, noextract) in the PKGBUILD with the variable pointed at $srcdir. Document the Debian flow (seed directory outside the source tree) in debian/rules and packaging/README.md, and drop the now-unneeded PKGBUILD prepare(). Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
An env var exported in the caller's shell does not reach the inner make under sbuild's clean chroot; note that the tarballs and LIBX11_COMPAT_TARBALL_DIR must be injected into the chroot explicitly. Co-Authored-By: Erkin Alp Güney <erkinalp9035@gmail.com>
Contributor
|
Thank @erkinalp for contributing! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Each recipe installs the compat libraries and headers into the private prefix /usr/lib/libx11-compat via make install, avoiding file conflicts with the real X11 dev packages.
Also fix the pre-2.20 SDL2_ttf wrapper thunks for TTF_GlyphIsProvided and TTF_GlyphIsProvided32: SDL2_ttf < 2.20 declares them with a non-const TTF_Font *, so the const-qualified thunks failed to compile against those headers (e.g. Ubuntu 22.04's SDL2_ttf 2.0.18).
Summary by cubic
Adds Debian, RPM, and AUR packaging that installs into a private prefix to avoid X11 dev conflicts, and supports fully offline, reproducible builds via pinned Xorg tarballs. Also fixes
SDL2_ttfwrapper const-correctness for older headers.New Features
debian/), RPM (packaging/rpm/libx11-compat.spec), and AUR (packaging/aur/PKGBUILD) recipes installing viamake installinto/usr/lib/libx11-compat(or%{_libdir}/libx11-compat); Debian usesdh_auto_installand honorsDEB_BUILD_OPTIONS=parallel; RPM pinsSource0to a fixed commit; maintainer email set.scripts/sync-upstream-headers.pyacceptsLIBX11_COMPAT_TARBALL_DIRto seed sha256‑pinned Xorg tarballs; RPM/PKGBUILD declare them as sources and point the var at%{_sourcedir}/$srcdir; Debian docs now note injecting both the tarballs and the env var into sbuild’s clean chroot.Bug Fixes
TTF_GlyphIsProvidedandTTF_GlyphIsProvided32to useTTF_Font *with olderSDL2_ttfheaders, restoring builds on distros like Ubuntu 22.04.Written for commit d3f4ac8. Summary will update on new commits.