Files
voculinux/packaging/aur/voculinux-bin/PKGBUILD
T
soubarnak ea7be5f111 feat(identity): rename user-visible identity to voculinux with one-time legacy import
The fork takes its own name everywhere a user can see it: binaries
(voculinux, voculinux-gui), desktop entry, autostart, tray, D-Bus
namespace (com.voculinux.Voculinux, no alias for the old name),
config/data/cache dirs, single-instance lock, IBus engine identity,
tray icons, resource prefixes, VOCULINUX_* environment names, and the
update-checker user agent. The internal Python module stays vocalinux
and the distribution metadata keeps the upstream URLs as provenance.

On first run a previous Vocalinux install's config.json, custom
dictionary, and portal restore token are copied once into the new
locations (new config always wins, no merge, no write-back); models
re-resolve through the pinned-checksum download path. An offline
naming-sweep test proves no old-name strings remain on user-visible
surfaces outside the allowlist.

Refs #18
2026-11-06 01:29:39 +05:30

62 lines
2.6 KiB
Bash

# Maintainer: Jatin K Malik <jatinkrmalik@gmail.com>
# Updated by .github/workflows/release.yml on v* tags. Setup: docs/AUR.md
pkgname=voculinux-bin
# AUR pkgver cannot contain hyphens (v0.14.0-beta -> 0.14.0beta).
pkgver=0.17.0
_tag=0.17.0
pkgrel=1
pkgdesc="Free, offline voice dictation for Linux (prebuilt AppImage)"
arch=('x86_64' 'aarch64')
url="https://github.com/VocaHQ/vocalinux"
license=('AGPL-3.0-only')
# fuse2: the type-2 AppImage runtime mounts its squashfs through FUSE.
# Everything else it needs (CPython, GTK, the whisper.cpp Vulkan build) is
# inside the bundle — that is the point of shipping the AppImage.
depends=(
'fuse2'
'hicolor-icon-theme'
# The bundled app spawns these host tools for keystroke injection; on X11
# without active IBus it requires xdotool and on Wayland a host tool.
'xdotool'
'wtype'
)
optdepends=(
'vulkan-icd-loader: GPU-accelerated whisper.cpp transcription'
'ibus: IBus text injection (preferred on some layouts and compositors)'
'xclip: X11 clipboard tools (copy/paste injection fallbacks)'
'wl-clipboard: Wayland clipboard (wl-copy/wl-paste) injection fallbacks'
'ydotool: uinput keystroke injection fallback'
)
provides=('voculinux')
conflicts=('voculinux' 'voculinux-git')
# Stripping would rewrite the runtime header of a self-mounting ELF.
options=('!strip')
source=(
'voculinux.desktop'
'voculinux.svg'
'LICENSE'
)
source_x86_64=("Voculinux-${_tag}-x86_64.AppImage::https://github.com/VocaHQ/vocalinux/releases/download/v${_tag}/Voculinux-${_tag}-x86_64.AppImage")
source_aarch64=("Voculinux-${_tag}-aarch64.AppImage::https://github.com/VocaHQ/vocalinux/releases/download/v${_tag}/Voculinux-${_tag}-aarch64.AppImage")
sha256sums=('837006a9c689146308eae8c57cba1cdcc06673a108e72f39231837c6f63ae487'
'128b8939ffc00314a55d0600ab29c6a92dfb116138e088c59579a086616ec8ec'
'8486a10c4393cee1c25392769ddd3b2d6c242d6ec7928e1414efff7dfb2f07ef')
sha256sums_x86_64=('1a87408bf5bd8f9176c395a4da9ce28c68a1a7585bd67f125ff6037c4328909c')
sha256sums_aarch64=('b256fe8577e2733a4da3ae4f9c2b9717f10017ad8328b832070ce04edc996a7d')
package() {
install -Dm755 "Voculinux-${_tag}-${CARCH}.AppImage" \
"${pkgdir}/opt/${pkgname}/Voculinux-${_tag}-${CARCH}.AppImage"
install -Dm644 voculinux.desktop \
"${pkgdir}/usr/share/applications/voculinux.desktop"
install -Dm644 voculinux.svg \
"${pkgdir}/usr/share/icons/hicolor/scalable/apps/voculinux.svg"
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
install -dm755 "${pkgdir}/usr/bin"
ln -s "/opt/${pkgname}/Voculinux-${_tag}-${CARCH}.AppImage" \
"${pkgdir}/usr/bin/voculinux"
}