Linux: publish an AUR package (slipstream-bin) with dependency handling #248
Labels
No labels
amd
avatars
bug
builder
cannot-reproduce
crash
epic
feature
from-viewer
gl-removal
known-limitation
monitoring
parity
perf
platform
priority
critical
priority
high
priority
low
priority
medium
provenance
rendering
rt
status
in-progress
status
testing
status
up-next
triage
ui
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sky_line/Slipstream#248
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Publish Slipstream on the AUR, so Arch / CachyOS / EndeavourOS / Manjaro / SteamOS users install it with their AUR helper, and pacman pulls in the system libraries the viewer and CEF media need. That removes the missing-library class of bugs (#245) for Arch-based users.
Scope
slipstream-binpackage: repackages the official release tarball from Forgejo Releases.source=points at the versioned release asset, pinned withsha256sums./opt/slipstream, with a/usr/bin/slipstreamlauncher symlink to the wrapper, a.desktopfile, icons and the license files.v1.0.0-beta.2becomespkgver=1.0.0beta2or1.0.0.2(pick one scheme and keep it monotonic for pacman'svercmp). Finalv1.0.0must sort above every beta.depends=), taken fromlddof the packaged binaries rather than guessed:optdepends: vlc / gstreamer for media streams, and the Vulkan driver (vulkan-radeon / nvidia-utils / vulkan-intel) with a note.no_sandboxfrom the tarball. Decide whether the package installschrome-sandboxsetuid root (as browsers do) or keepsno_sandbox, and document the choice.lddmedia check (#245) should stay silent when installed via the package; deps are guaranteed. Consider skipping it when/opt/slipstream/.packaged-by=aurexists.~/.slipstreamviewer; the package never touches it.slipstream-gitsource package (heavy: autobuild 3p downloads, ~30 GB build) — probably not worth it. A-beta/ RC channel package, or aslipstream-binthat tracks pre-releases with a flag.Automation
.forgejo/workflows/release.yml, after the release assets upload, regeneratesPKGBUILDand.SRCINFO(makepkg --printsrcinfo) with the new version and sha256, then pushes tossh://aur@aur.archlinux.org/slipstream-bin.git.ci-*.scripts/packaging/aur/.namcapand a clean-chroot build (extra-x86_64-build) on the applejack builder before publishing.Docs
yay -S slipstream-bin/paru -S slipstream-bin.Related
#245 (CEF missing system libs), Linux portability notes (glibc pins / ISA level).
Arch packaging has landed on branch
aurpkg(not merged or pushed yet). Commits:79bd808475,de7443e514,a6d0b9ee72,5ced65d8a6.What's there
scripts/packaging/aur/PKGBUILD+.SRCINFOforslipstream-bin, pinned to v0.14.0-beta.1 (sha256 from the release notes). It installs the tarball to/opt/slipstreamand adds:/usr/bin/slipstreamexec launcher;slipstream.desktop(Exec=slipstream %u, handlesx-scheme-handler/secondlife);/usr/share/licenses/slipstream-bin/.User data stays in
~/.slipstreamviewer.pkgver:
vX.Y.Z-beta.N→X.Y.ZbetaNandvX.Y.Z→X.Y.Z.vercmpputs beta.9 < beta.10 < the final < the next version's betas.gen.sh --selftestchecks this.depends come from
readelf/lddover every ELF in the release tarball, mapped withpacman -Qo, plus the libraries the bundled SDL3/OpenAL/WebRTC load with dlopen. That covers all of CEF's #245 libraries. namcap, run in an archlinux container with those depends installed, resolves every 64-bit library. Vulkan drivers, GStreamer/libvlc and a few desktop extras areoptdepends.Sandbox:
chrome-sandboxstays 0755 and is not setuid, the same as the tarball.Wrapper: when
.packaged-bysits next to it, the wrapper skips the per-user desktop entry, the per-user protocol registration and the #245 library check. The PKGBUILD guards those lines for older wrappers too.Icons:
viewer_manifest.pynow shipsshare/icons/hicolorin the tarball, so future packages get every icon size.gen.sh TAG [sha]writes the PKGBUILD and.SRCINFOfor a tag. Without makepkg it uses a built-in writer whose output is byte-identical to makepkg's.aur_push.shdoes nothing until theAUR_SSH_KEYsecret is set.Checks run:
makepkg -fpasses on the real v0.14.0-beta.1 asset (209.6 MB.pkg.tar.zst); nothing was installed.CI: a new
arch-packagejob inrelease.ymlruns after the Linux assets publish. Every step is continue-on-error. It:.pkg.tar.zst, but only if makepkg is present on the runner;AUR_SSH_KEYis set.Follow-ups for you
Enable the prebuilt package on applejack:
apt install makepkg libarchive-tools. Until then only the PKGBUILD gets attached.One-time AUR setup:
ssh-keygen -t ed25519 -N '' -f aur_slipstream, and add the.pubfile to the AUR account;AUR_SSH_KEY;AUR_PUBLISH_BETAS=falseto push only final releases.The first push (the next tag's CI run, or
aur_push.shby hand) createsslipstream-binon the AUR.To offer the
curl -O …/PKGBUILD && makepkg -sipath today, attach the committed PKGBUILD to the v0.14.0-beta.1 release by hand.Full details are in
scripts/packaging/aur/README.md.Status check (verification sweep): the packaging is in main and shipped with v1.0.0-beta.1: the PKGBUILD/.SRCINFO generator, the release-CI arch-package job and the AUR push (
79bd808475,de7443e514,a6d0b9ee72,5ced65d8a6). But the package isn't on the AUR yet:aur.archlinux.org/rpc/v5/info?arg[]=slipstream-binreturns 0 results as of 2026-10-03. Remaining: get the first AUR push to succeed (CI credentials / account), then close.Done:
slipstream-binis published on the AUR, and CI generates the PKGBUILD / .SRCINFO per release (with the signing key and dependency fixes). A native pacman repo is tracked in #419.