* feat(ci): gate AUR PKGBUILD builds on every PR Nothing ever ran makepkg on the PKGBUILD before a tag pushed it to AUR users, and the channel broke twice that way (#736, #757) — a PKGBUILD change did not even start a CI job, because no paths filter matched packaging/aur/**. The gate (packaging/aur/build-test.sh, run in archlinux:latest — the AUR is a rolling channel, so the image stays deliberately unpinned): - swaps the tag-archive source= for a git archive of the checkout under the same filename and prefix, so build()/package() run unchanged and the gate answers "does this commit build on Arch" - installs depends/makedepends from the repos; python-pywhispercpp (virtual, provided by the AUR backends, #579) and python-pynput (AUR) are satisfied by a stub so makepkg still verifies the full depends set, and pip-installed from the hash-pinned requirements/runtime.txt for the import smoke - runs namcap on the PKGBUILD and the built package, failing on errors only (its warnings are noise around lazy imports and virtual depends) - installs the package and imports the whole UI/recognition stack, plus the vocalinux --version entry point Part of #701 (phase 6). * fix(ci): stop partial-upgrading in the AUR gate and correct the #736 attribution
2.7 KiB
AUR
Users
yay -S vocalinux # latest release tag
yay -S vocalinux-git # community package, tracks main
vocalinux and vocalinux-git conflict. Install only one.
Maintainers (one-time)
Release tags auto-push packaging/aur/vocalinux/PKGBUILD when these secrets exist:
| Secret | Value |
|---|---|
AUR_SSH_PRIVATE_KEY |
Private key whose public half is on your AUR account |
AUR_USERNAME |
AUR username (git author) |
AUR_EMAIL |
AUR account email |
# 1. AUR account + SSH pubkey: https://aur.archlinux.org/register
ssh-keygen -t ed25519 -C "vocalinux-aur" -f ./aur_ed25519 -N ""
# upload aur_ed25519.pub on AUR; put aur_ed25519 in AUR_SSH_PRIVATE_KEY
# 2. Create empty package once
git clone ssh://aur@aur.archlinux.org/vocalinux.git
# 3. Next v* tag runs Publish to AUR (skipped if secret missing)
Sources: packaging/aur/vocalinux/PKGBUILD. Community git package: https://aur.archlinux.org/packages/vocalinux-git
CI gate
Every PR that changes the Python source or packaging/aur/** builds the PKGBUILD on archlinux:latest — the Build AUR package (gate) job in unified-pipeline.yml. Run it locally with just aur-gate (needs docker).
The gate swaps the tag-archive source= for a git archive of the checkout, so it answers whether this commit builds on Arch — #757 reached users after the tag, when nothing could fail a build anymore (#736 reached Arch users too, but through install.sh; this package built fine). python-pywhispercpp (virtual, provided by the AUR backends) and python-pynput (AUR) cannot come from the repos, so the gate satisfies them with a stub for dependency resolution and pip-installs the pinned versions from requirements/runtime.txt for the import smoke. What AUR actually ships (python-pywhispercpp-cpu is still 1.4.x — see Troubleshooting) is a monitoring question, not the gate's.
Troubleshooting
ERROR Missing dependencies: setuptools<82
The AUR package builds with python -m build --wheel --no-isolation, so it uses Arch extra python-setuptools (currently 84). Vocalinux 0.16.1 drops the <82 cap in pyproject.toml. Rebuild 0.16.1 or later.
'_pywhispercpp.whisper_full_params' object has no attribute 'context_params'
AUR python-pywhispercpp-cpu / -cuda / -rocm are still 1.4.x. Those wheels accept context_params in Python and then crash in the native object. 0.16.1 skips that argument on pywhispercpp older than 1.5 and still loads the model (default GPU, no device picker). PyPI and install.sh already use 1.5.0.
There is no AUR python-pywhispercpp-vulkan package. GPU Vulkan 1.5 is the install.sh / AppImage path, not the AUR python backends.