feat: add iriunwebcam 2.9.3 (Anylinux AppImage, CI-built) - #986
Conversation
- html-regex from https://iriun.gitlab.io/ for version detection - static package consuming https://iriun.gitlab.io/iriunwebcam-${version}.deb - proprietary, requires v4l2loopback-dkms, libQt6 - portable due to kernel module requirement - tested with sbuild resolve + hashfill, validate passes - includes AppImage build via declarative build-from-source example
- type appimage, github-releases from sharno/IriunWebcam-AppImage
- glob *${arch}*.AppImage matching IriunWebcam-2.9.3-x86_64.AppImage
- pinned via sbuild resolve + hashfill (blake3 02c00..., sha256 018a1c..., size 2058744)
- validate: 0 errors, audit passes (appimage has no install map)
- built via appimagetool continuous from upstream deb
- note: can be moved to pkgforge-dev/IriunWebcam-AppImage on acceptance
- previous 2M AppImage required host Qt6 (ldd not found) - now bundle 87 libs via onelf (Qt6Core/Gui/Widgets/Network, icu 29M, etc) + Qt plugins (platforms/xcb) + spa-iriunaudio.so - AppRun sets LD_LIBRARY_PATH + QT_PLUGIN_PATH, QT_DEBUG_PLUGINS shows xcb loaded, offscreen test passes - sbuild resolve now pins sha256 8a8df... size 40098296, hashfill blake3 ee4247... - validate 0 errors
QaidVoid
left a comment
There was a problem hiding this comment.
The TOML is mostly fine, but the artifact it pins is the problem.
No CI on the source repo, so v2.9.3 was built on your machine and uploaded by hand. The hash then pins a binary nobody else can reproduce, and every bump depends on you rerunning the README steps. It needs to build in CI.
onelf is a package type, not a build step. "appimagetool + onelf" is not a combination. Also pkgforge-dev/appimagetool is a different tool from the AppImage/appimagetool your README uses.
Easiest path is the Anylinux-AppImage template: it builds in a container, so the result does not depend on the packager's machine, and it rebuilds on a schedule. Then re-pin, since the hash will change.
Also drop the AppImage committed into the repo once CI produces it.
- artifact now produced by scheduled CI in sharno/IriunWebcam-AppImage (arch container, sharun + uruntime), no hand-built binaries - update repo tag format (VERSION@DATE, tag-suffix = strip) - new blake3/sha256/size for IriunWebcam-2.9.3-anylinux-x86_64.AppImage
|
Addressed all points in the review: 1. Builds in CI now —
2. Re-pinned — 3. Committed AppImage dropped — the 40 MiB Verification of the CI artifact: extracted it ( |
Adds
iriunwebcam(Iriun Webcam 2.9.3, proprietary) as an AppImage package, likediscord/slack.AppImage source
The artifact is built by CI in sharno/IriunWebcam-AppImage using the Anylinux-AppImages template (commit 7ab4309):
ghcr.io/pkgforge-dev/archlinuxcontainer viaanylinux-setup-action→ result does not depend on the packager's machinemake-appimage.shdetects the version from https://iriun.gitlab.io, pulls the upstream deb, deploys withquick-sharun(Qt6 + plugins and all transitive libs auto-deployed;iriunaudioSPA plugin andpipewire.conf.dshipped as data)make-stable-appimage-release; rebuilds on a 21-day cron, so bumps don't require manual packagingIriunWebcam-2.9.3-anylinux-x86_64.AppImage(DWARFS, sharun + uruntime, no host Qt needed)The previously hand-built AppImage and the one committed to the repo were removed; the release only exists as a CI artifact.
Pinned version (
iriunwebcam-2.9.3.toml)pkg.tomlusestag-suffix = "strip"for theVERSION@DATEtag format, same asdiscord.Validation
sbuild validate→ 0 errors, 0 warnings across the tree (1309 artifacts / 534 packages)sbuild audit→ AppImages have no install map, so they are skipped (same asdiscord)APPIMAGE_EXTRACT_AND_RUN=1, binary runs (offscreen), bundled Qt plugins load,spa-0.2/iriunaudio/libspa-iriunaudio.sohas no missing deps,share/pipewire/pipewire.conf.d/iriunaudio.confpresentHost requirements
portable = true— the v4l2loopback kernel module (v4l2loopback-dkms, cannot be bundled) and a running PipeWire user service are host deps.