Release CI: build a .deb package for Debian/Ubuntu/Mint (with declared CEF dependencies) #278
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#278
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?
Build a
.debpackage in release CI, alongside the tarball, Windows installer/zip and Arch PKGBUILD (#248), so Debian/Ubuntu/Mint/Pop!_OS users can install with their package manager.Why
.debgives a proper install: menu entry,secondlife://handler, icons, uninstall, and declared dependencies. The dependencies matter most: the CEF/media plugin needs system libraries (nss, atk, cups, gbm, xkbcommon, asound, …) that the tarball can't pull in. Missing ones are the #245 / #264 "media_plugin_cef failed" class of bug.Design
slipstream-viewer(orslipstream), archamd64./opt/slipstream/./usr/bin/slipstream→ theslipstreamscript..desktopfile andx-scheme-handler/secondlifeMIME registration in/usr/share/applications/./usr/share/icons/hicolor/(the tarball already ships them, #248)..packaged-bymarker so the wrapper skips its per-user desktop entry / URL registration / media library check, as the Arch package does.Depends:the runtime libraries the viewer + CEF need: libc6 (>= 2.38), libstdc++6, libvulkan1, libnss3, libnspr4, libatk1.0-0 / libatk-bridge2.0-0, libcups2, libgbm1, libxkbcommon0, libxcomposite1, libxdamage1, libxrandr2, libasound2 (t64 variants on 24.04+: use alternatives likelibasound2t64 | libasound2), libpango-1.0-0, libcairo2, libdbus-1-3, libpulse0, libgtk-3-0 (if CEF needs it), libxss1, etc.lddon the binaries (dpkg-shlibdepscan generate it) and verify in cleanubuntu:24.04,debian:13andlinuxmintcontainers.scripts/ci/version.sh, e.g.1.0.0~beta4for betas (~sorts before release, so the final1.0.0upgrades cleanly) and1.0.0for releases.dpkg-deb --build --root-owner-groupfrom a staging dir on the applejack builder. No full debhelper tree needed. Runlintianin CI as a warning-only check.chrome-sandboxsetuid handling. Decide whether the package sets it 4755 root (enables the CEF sandbox; ties into security audit item U-4) or leaves the no-sandbox default. Document the choice.Dependsand on the website.Distribution
Slipstream_<ver>_amd64.debto each Forgejo release, with its SHA-256 in the release notes like the other assets. Website install page: "Ubuntu / Debian / Mint: download the .deb and open it, orsudo apt install ./Slipstream_*.deb" (apt resolves the dependencies).apt.slipstreamviewer.org) so updates come throughapt upgrade. That needs a GPG signing key and a static repo (reprepro/aptly) deployed like the website. Ties into release signing (security open item) and a future updater.CI
.forgejo/workflows/release.ymlafterbuild(likearch-package),continue-on-errorso it never blocks the main assets.Test
secondlife://links work, and web/media works out of the box (nomedia_plugin_ceffailure).Done: CI builds and signs a .deb on every release, with declared dependencies (incl. CEF and GStreamer), published to the signed apt repository.