ci: add a macOS build + install + link job#58
Open
vejeta wants to merge 5 commits into
Open
Conversation
The shim targets macOS but all CI runs on ubuntu-24.04, where the native paths are compiled out. Build on a real macOS runner, exercise make install into a prefix, and link a downstream against -lX11 -lXft -lXext so the standard-name aliases and rpath are proven to resolve as a consumer sees them.
Building the full Xt/Xmu/Xaw alias set on a clean macOS runner needs a system <X11/Xpoll.h> that is not present there, which is a separate concern. The core X11 + Xft + Xext trio is what a native GUI app links, so cover that.
Collaborator
Author
|
CI is green on Separate finding while wiring this up: building the full |
Use the repo-wide actions/checkout@v7 (the lone @v4 was forcing the Node 20 deprecation warning), and untap the runner's pre-tapped aws/tap so Homebrew's tap-trust check does not print an unrelated notice.
Match ci.yml / differential.yml so pushing to a PR cancels the in-progress macOS run instead of stacking redundant ones; never cancels on main.
Several jobs failed in Set up job with 'Failed to resolve action download info. Error: Service Unavailable' -- a transient GitHub Actions incident, not a build issue. Empty commit to re-run all workflows.
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.
What
Adds a macOS CI job: build on
macos-14,make installinto a prefix, thenlink a tiny downstream against
-lX11 -lXft -lXextto prove the installedstandard-name aliases and rpath resolve the way a consumer sees them (e.g. a
native app built with
--with-libx11-compat=$PREFIX).Why
The shim exists to run X11 apps natively on macOS, but all current CI is
ubuntu-24.04, where the native paths are compiled out -- so nothing gives anautomated signal that a change still builds and links on macOS. As a concrete
example, this job asserts that
make install's.soaliases resolve under-lX11on macOS (they do -- verified by hand -- but no CI proves it today).Notes
(
macos-13x86_64),make check, etc. if you want.validation -- the job may need a tweak or two.
minutes here, feel free to close it, no attachment.
Summary by cubic
Adds a macOS CI job on
macos-14that builds, installs to a temp prefix, and links a tiny probe against-lX11 -lXft -lXext. Cancels superseded PR runs; scope is X11/Xft/Xext only due to missing<X11/Xpoll.h>.New Features
sdl3,sdl3_ttf,pixman,pkgconfvia Homebrew.SDL_BACKEND=sdl3, installs to$RUNNER_TEMP/prefixusingXCOMPAT_INSTALL_ALIASED="X11 Xft Xext".otool -Lthat it resolves to the shim.Refactors
actions/checkout@v7; untapsaws/tapto silence Homebrew’s trust notice.main).Written for commit 62b38e6. Summary will update on new commits.