Skip to content

feat: add iriunwebcam 2.9.3 (Anylinux AppImage, CI-built) - #986

Open
sharno wants to merge 4 commits into
pkgforge:mainfrom
sharno:add-iriunwebcam
Open

feat: add iriunwebcam 2.9.3 (Anylinux AppImage, CI-built)#986
sharno wants to merge 4 commits into
pkgforge:mainfrom
sharno:add-iriunwebcam

Conversation

@sharno

@sharno sharno commented Aug 21, 2026

Copy link
Copy Markdown

Adds iriunwebcam (Iriun Webcam 2.9.3, proprietary) as an AppImage package, like discord / slack.

AppImage source

The artifact is built by CI in sharno/IriunWebcam-AppImage using the Anylinux-AppImages template (commit 7ab4309):

  • builds in the ghcr.io/pkgforge-dev/archlinux container via anylinux-setup-action → result does not depend on the packager's machine
  • make-appimage.sh detects the version from https://iriun.gitlab.io, pulls the upstream deb, deploys with quick-sharun (Qt6 + plugins and all transitive libs auto-deployed; iriunaudio SPA plugin and pipewire.conf.d shipped as data)
  • released via make-stable-appimage-release; rebuilds on a 21-day cron, so bumps don't require manual packaging
  • result: IriunWebcam-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)

version = "2.9.3"
date    = "2026-08-29T04:14:41Z"

[url]
x86_64-linux = "https://github.com/sharno/IriunWebcam-AppImage/releases/download/2.9.3%402026-08-29_1787976881/IriunWebcam-2.9.3-anylinux-x86_64.AppImage"

[blake3]
x86_64-linux = "7e5dfe5b5c80a6f58ac3472f690ef47c9c8d072e219e75e2d10583f2f0e8e930"

[sha256]
x86_64-linux = "27de32352d782cada92adccddb5f54861d074eff4de1e34336becad9a0b37ed7"

[size]
x86_64-linux = 34687557

pkg.toml uses tag-suffix = "strip" for the VERSION@DATE tag format, same as discord.

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 as discord)
  • CI artifact verified: extracted with APPIMAGE_EXTRACT_AND_RUN=1, binary runs (offscreen), bundled Qt plugins load, spa-0.2/iriunaudio/libspa-iriunaudio.so has no missing deps, share/pipewire/pipewire.conf.d/iriunaudio.conf present

Host requirements

portable = true — the v4l2loopback kernel module (v4l2loopback-dkms, cannot be bundled) and a running PipeWire user service are host deps.

sharno added 2 commits August 20, 2026 23:15
- 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
@sharno sharno changed the title feat: add iriunwebcam 2.9.3 feat: add iriunwebcam 2.9.3 (AppImage like discord) Aug 21, 2026
- 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
@sharno sharno changed the title feat: add iriunwebcam 2.9.3 (AppImage like discord) feat: add iriunwebcam 2.9.3 (AppImage like discord, Qt6 bundled) Aug 21, 2026

@QaidVoid QaidVoid left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
@sharno

sharno commented Aug 29, 2026

Copy link
Copy Markdown
Author

Addressed all points in the review:

1. Builds in CI nowsharno/IriunWebcam-AppImage was rebuilt on the Anylinux-AppImages template (commit):

  • .github/workflows/appimage.yml builds in the ghcr.io/pkgforge-dev/archlinux container via anylinux-setup-action, on a 21-day cron + workflow_dispatch
  • make-appimage.sh fetches the version from https://iriun.gitlab.io at build time, pulls the upstream deb, and deploys with quick-sharun (Qt6 plugins + all transitive libs auto-deployed; the iriunaudio SPA plugin and pipewire.conf.d shipped via ADD_DIR) — no onelf, no manual appimagetool invocation, nothing machine-dependent
  • released with make-stable-appimage-release → tag 2.9.3@2026-08-29_1787976881, artifact IriunWebcam-2.9.3-anylinux-x86_64.AppImage (34.7 MiB, DWARFS, sharun + uruntime — works on musl/non-FHS hosts, no host Qt)
  • first CI run green end-to-end, and the scheduled rebuild handles future bumps

2. Re-pinnediriunwebcam-2.9.3.toml now pins the CI-built artifact (blake3 7e5dfe5b…, sha256 27de3235…, 34687557 bytes), and pkg.toml uses tag-suffix = "strip" for the VERSION@DATE tag format like discord.

3. Committed AppImage dropped — the 40 MiB IriunWebcam-2.9.3-x86_64.AppImage is removed from the appimage repo; the artifact only exists as a CI release now.

Verification of the CI artifact: extracted it (APPIMAGE_EXTRACT_AND_RUN=1) and confirmed the wrapped binary stays alive offscreen, Qt plugins + libQt6* bundled, spa-0.2/iriunaudio/libspa-iriunaudio.so present with all deps resolvable, and share/pipewire/pipewire.conf.d/iriunaudio.conf included.

@sharno sharno changed the title feat: add iriunwebcam 2.9.3 (AppImage like discord, Qt6 bundled) feat: add iriunwebcam 2.9.3 (Anylinux AppImage, CI-built) Aug 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants