The library and skit executable already compile on Linux (Subprocess is conditional on .linux, OutputCache has an XDG/~/.cache/syntaxkit branch, String+DylibFilename returns .so). Once the OutputCacheTests ProcessInfo-subclass fix lands (PR #156 follow-up), CI should go green — but we don't yet produce a runnable release bundle on Linux.
Scope
Out of scope
- Windows support (tracked separately).
- A Linux Homebrew-equivalent distribution channel.
Risks
- `swift-subprocess`'s Linux backend exercise — needs a sanity smoke test beyond what current CI does.
- `patchelf` is the standard but not always pre-installed on minimal images; document or auto-install.
The library and
skitexecutable already compile on Linux (Subprocess is conditional on.linux,OutputCachehas an XDG/~/.cache/syntaxkitbranch,String+DylibFilenamereturns.so). Once the OutputCacheTests ProcessInfo-subclass fix lands (PR #156 follow-up), CI should go green — but we don't yet produce a runnable release bundle on Linux.Scope
Scripts/build-skit.sh(or a dedicatedbuild-skit-linux.sh):.build/<linux-triple>/{debug,release}instead of.build/*-apple-macosx*/{debug,release}.libSyntaxKit.soinstead of.dylib.install_name_tool -id "@rpath/libSyntaxKit.dylib"withpatchelf --set-rpath '\$ORIGIN'on the binary (or--force-rpath/ RUNPATH equivalents). VerifylddresolveslibSyntaxKit.soto the bundledlib/.strip -x(Mach-O specific) — usestrip --strip-unneededfor the release equivalent.RunCommandError.toolchainMismatchMessageand the help text inSkit+Run.swiftto reference the right script path per platform (or a single platform-agnostic path that the script dispatches internally).Out of scope
Risks