feat(void): add xbps template for the voculinux app

Ticket xavierk/voculinux#27, built on #18 (rename) plus the #25/#26
dependency templates. The template builds the app from the canonical
checksum-verified release sdist, depends on Void's interpreter, GTK,
desktop bindings and packaged Python libraries, and installs the
renamed desktop entry, icons and a packaged-install marker. No speech
models, no vendored wheels, no pip at build or install time.

Packaged installs keep background update checks as a signal, but every
update affordance presents the package-manager path
(src/vocalinux/utils/packaging.py). Also corrects the Void distro
inventory (Ayatana provider name; ydotool marked absent) and regens
the installer map.
This commit is contained in:
soubarnak
2026-11-06 03:03:33 +05:30
parent 27f157355d
commit d7a4b8c21e
13 changed files with 685 additions and 14 deletions
@@ -0,0 +1,22 @@
Voculinux installed system-wide from an xbps package.
Hotkeys need the input group: add your user with
sudo usermod -aG input <user>
then log out and back in, or the evdev hotkey
backend cannot open /dev/input devices.
Speech models are not in this package: they
download on first run into ~/.local/share/voculinux.
Optional engines are manual additions outside the
guaranteed set: vosk, OpenAI whisper, Parakeet
(sherpa-onnx), faster-whisper and onnxruntime (VAD)
come from your own Python environment, not xbps.
ydotool is not packaged for Void, so the ydotool
injection fallback rung is absent; the app uses
IBus, the RemoteDesktop portal, wtype or xdotool.
Update through your package manager instead of the
in-app release downloads:
sudo xbps-install -Syu voculinux
+32
View File
@@ -0,0 +1,32 @@
# Template file for 'voculinux'
pkgname=voculinux
version=0.18.5
revision=1
build_style=python3-module
hostmakedepends="python3-setuptools"
makedepends="python3-devel"
depends="python3 python3-gobject python3-cairo gtk+3 libayatana-appindicator ibus gobject-introspection python3-numpy python3-requests python3-pysocks python3-psutil python3-evdev python3-xlib python3-tqdm python3-platformdirs python3-PyAudio python3-pynput python3-pywhispercpp"
short_desc="Free, offline voice dictation for Linux"
maintainer="Jatin K Malik <jatinkrmalik@gmail.com>"
license="AGPL-3.0-only"
homepage="https://github.com/VocaHQ/vocalinux"
distfiles="https://github.com/VocaHQ/vocalinux/releases/download/v${version}/vocalinux-${version}.tar.gz"
checksum=1def4d8f0f14f2df2f2fee64ca29e6865e3d82e551f7d465c2a78ec6d4d72b1d
# The 0.18.5 release asset still carries the pre-rename archive root, so
# build under that directory. The first release cut after the rename ships
# the archive under the new name; that bump drops this override and points
# distfiles at the renamed asset with its published digest.
wrksrc="vocalinux-${version}"
post_install() {
# Entry points land on PATH through the module build; install the
# renamed desktop entry, the full icon set, and the marker the app
# reads to present package-manager updates (see INSTALL.msg).
vlicense LICENSE
vinstall voculinux.desktop 644 usr/share/applications
for icon in resources/icons/scalable/*.svg; do
vinstall "$icon" 644 usr/share/icons/hicolor/scalable/apps
done
vmkdir usr/share/voculinux
touch "${DESTDIR}/usr/share/voculinux/packaged"
}