fix(void): package the fork's sources and runtime helpers, not upstream's
The app template fetched upstream's 0.18.5 archive, carried upstream's homepage and maintainer, and renamed the launchers and desktop entry in post_install. The fork's sdist already names them voculinux, so the template now sources the fork's release asset and installs the names as they are. The checksum is an explicit pending marker until the fork's v0.18.5 release exists, which fails closed in xbps-src and never falls back to the upstream digest. depends now pulls in pipewire (capture), wtype (direct typing on niri), wl-clipboard (clipboard), xdotool (X11 and XWayland) and pulseaudio-utils (pactl), and drops ibus, which cannot inject on niri. Every name is checked against the Void index. INSTALL.msg states the niri first run plainly (no permission prompt; typing goes direct), never points at the portal on niri, and drops the IBus claim. The container smoke queries the fork's distribution name. Tests assert the fork sources, the pending-or-pinned checksum, the runtime helpers, the absence of ibus, and the niri wording.
This commit is contained in:
@@ -6,16 +6,23 @@ 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.
|
||||
download on first run into ~/.local/share/voculinux
|
||||
and are checked against pinned checksums.
|
||||
|
||||
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.
|
||||
|
||||
Text injection: on niri there is no permission
|
||||
prompt, and typing goes direct through wtype. On
|
||||
GNOME and KDE the RemoteDesktop portal asks once
|
||||
for keyboard access and remembers the answer where
|
||||
the desktop supports it. If you deny it, dictation
|
||||
falls back to the next typing method you have.
|
||||
|
||||
ydotool is not packaged for Void, so the ydotool
|
||||
injection fallback rung is absent; the app uses
|
||||
IBus, the RemoteDesktop portal, wtype or xdotool.
|
||||
injection fallback rung is absent.
|
||||
|
||||
Update through your package manager instead of the
|
||||
in-app release downloads:
|
||||
|
||||
@@ -7,41 +7,32 @@ revision=1
|
||||
build_style=python3-pep517
|
||||
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"
|
||||
# Runtime helpers: pipewire (pw-record, pw-dump) for capture, wtype for
|
||||
# direct typing on niri, wl-clipboard (wl-copy, wl-paste) for clipboard
|
||||
# paths, xdotool for X11 and the XWayland fallback, pulseaudio-utils for
|
||||
# pactl source listing. ibus is not a dependency: it is excluded on niri.
|
||||
depends="python3 python3-gobject python3-cairo gtk+3 libayatana-appindicator gobject-introspection python3-numpy python3-requests python3-pysocks python3-psutil python3-evdev python3-xlib python3-tqdm python3-platformdirs python3-PyAudio python3-pynput python3-pywhispercpp pipewire wtype wl-clipboard xdotool pulseaudio-utils"
|
||||
short_desc="Free, offline voice dictation for Linux"
|
||||
maintainer="Jatin K Malik <jatinkrmalik@gmail.com>"
|
||||
maintainer="Xavier Karma <xavier@bongbetic.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.
|
||||
# xbps-src moves a single-top-dir archive to pkgname-version itself, so no
|
||||
# wrksrc override is needed (wrksrc is deprecated and xlint rejects it).
|
||||
# The first release cut after the rename ships the archive under the new
|
||||
# name; that bump points distfiles at the renamed asset with its digest.
|
||||
homepage="https://git.bongbetic.com/xavierk/voculinux"
|
||||
distfiles="https://git.bongbetic.com/xavierk/voculinux/releases/download/v${version}/voculinux-${version}.tar.gz"
|
||||
# Pending: set to the sha256 of voculinux-${version}.tar.gz once the fork's
|
||||
# v${version} release exists (see packaging/void/README.md, "Checksum").
|
||||
# Until then xbps-src fails closed on this value; it never falls back to the
|
||||
# upstream archive.
|
||||
checksum=PENDING_FORK_RELEASE_SHA256
|
||||
|
||||
post_install() {
|
||||
# The 0.18.5 sdist predates the rename: the entry and icons still
|
||||
# carry the old names. Promote them at install time — the entry lands
|
||||
# as voculinux.desktop with rewritten Name/Exec/Icon, old-prefixed
|
||||
# icons land renamed (vinstall takes the installed name, as vman
|
||||
# uses it). The first release cut after the rename ships the new
|
||||
# names; that bump drops the renames. Entry points land on PATH
|
||||
# through the wheel build; the marker is what the app reads to
|
||||
# The fork's sdist already names the desktop entry, icons and launchers
|
||||
# voculinux (pyproject entry points and the repo's voculinux.desktop), so
|
||||
# the files install as they are. The marker is what the app reads to
|
||||
# present package-manager updates (see INSTALL.msg).
|
||||
vlicense LICENSE
|
||||
sed -e 's/vocalinux/voculinux/g' -e 's/Vocalinux/Voculinux/g' \
|
||||
vocalinux.desktop > voculinux.desktop
|
||||
vinstall voculinux.desktop 644 usr/share/applications
|
||||
for icon in resources/icons/scalable/*.svg; do
|
||||
vinstall "$icon" 644 usr/share/icons/hicolor/scalable/apps \
|
||||
"$(basename "$icon" | sed 's/^vocalinux/voculinux/')"
|
||||
vinstall "$icon" 644 usr/share/icons/hicolor/scalable/apps
|
||||
done
|
||||
# The wheel's entry points still carry the old names: promote the
|
||||
# launchers (this runs before the provides hooks, so cmd:voculinux
|
||||
# is what the package provides).
|
||||
mv "${DESTDIR}/usr/bin/vocalinux" "${DESTDIR}/usr/bin/voculinux"
|
||||
mv "${DESTDIR}/usr/bin/vocalinux-gui" "${DESTDIR}/usr/bin/voculinux-gui"
|
||||
vmkdir usr/share/voculinux
|
||||
touch "${DESTDIR}/usr/share/voculinux/packaged"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user