The packaged artefact gets the same treatment as the project's other distribution formats: a repeatable gate, following the existing distro-gate conventions and using podman, that builds all three Void templates in the pinned Void glibc container, installs the resulting packages into a clean Void environment, and proves the installed app starts — the renamed binary reporting its version and the core desktop and speech imports loading. Template lint is part of the gate. The gate is wired so release work can call it the same way other packaging gates are called, and so CI can adopt it without restructuring.
Acceptance criteria
One documented command runs the whole gate from a clean checkout using podman and the pinned container, with no host Void install required.
The gate fails if any template fails lint, any package fails to build, installation into the clean environment fails, the version report fails, or any smoke import fails.
The gate passes on the current templates and its output identifies which stage failed when broken deliberately in a scratch copy.
Offline policy coverage asserts the gate stays wired to the three templates, so a renamed or added template cannot silently drop out of the smoke.
## Parent
[Spec: Voculinux — Void Linux (glibc) Wayland/niri port of Vocalinux](https://git.bongbetic.com/xavierk/voculinux/issues/16)
## What to build
The packaged artefact gets the same treatment as the project's other distribution formats: a repeatable gate, following the existing distro-gate conventions and using podman, that builds all three Void templates in the pinned Void glibc container, installs the resulting packages into a clean Void environment, and proves the installed app starts — the renamed binary reporting its version and the core desktop and speech imports loading. Template lint is part of the gate. The gate is wired so release work can call it the same way other packaging gates are called, and so CI can adopt it without restructuring.
## Acceptance criteria
- [ ] One documented command runs the whole gate from a clean checkout using podman and the pinned container, with no host Void install required.
- [ ] The gate fails if any template fails lint, any package fails to build, installation into the clean environment fails, the version report fails, or any smoke import fails.
- [ ] The gate passes on the current templates and its output identifies which stage failed when broken deliberately in a scratch copy.
- [ ] Offline policy coverage asserts the gate stays wired to the three templates, so a renamed or added template cannot silently drop out of the smoke.
## Blocked by
- [Void app template for voculinux](https://git.bongbetic.com/xavierk/voculinux/issues/27)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Parent
Spec: Voculinux — Void Linux (glibc) Wayland/niri port of Vocalinux
What to build
The packaged artefact gets the same treatment as the project's other distribution formats: a repeatable gate, following the existing distro-gate conventions and using podman, that builds all three Void templates in the pinned Void glibc container, installs the resulting packages into a clean Void environment, and proves the installed app starts — the renamed binary reporting its version and the core desktop and speech imports loading. Template lint is part of the gate. The gate is wired so release work can call it the same way other packaging gates are called, and so CI can adopt it without restructuring.
Acceptance criteria
Blocked by
Merged in integration/spec16
1dd3986383pushed to fork/integration/spec16 (https://github.com/soubarnak/vocalinux/tree/integration/spec16), review PASS, gates flake8 E9,F63,F7,F82 + black --check + isort --check + mypy src/ clean, pytest 37 passed, npm jest 11 suites/92 tests + lint 0 errors + tsc clean + build OK