chore: sync AUR packages
This commit is contained in:
1 parent
60cb8f2dac
commit
499ab38afa
43 files changed
+483
-144
No files matched your search
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"source": "aur",
|
||||
"release_ring": "fast",
|
||||
"upstream_commit": "c14a448b526a37d72f9d4ccadaa681bff0b587c5"
|
||||
"upstream_commit": "37ffeff68d8f60efb06b5dcaefac3c0cfbd3b72f"
|
||||
}
|
||||
+147
-36
@@ -1,7 +1,7 @@
|
||||
# Maintainer: Peter Jackson <pete@peteonrails.com>
|
||||
pkgname=voxtype-bin
|
||||
pkgver=0.6.6
|
||||
pkgrel=2
|
||||
pkgver=0.7.3
|
||||
pkgrel=1
|
||||
pkgdesc="Push-to-talk voice-to-text for Linux (pre-built binaries)"
|
||||
arch=('x86_64')
|
||||
url="https://voxtype.io"
|
||||
@@ -22,9 +22,11 @@ optdepends=(
|
||||
'pipewire-alsa: ALSA compatibility for PipeWire (required if using PipeWire)'
|
||||
'pulseaudio: audio server (alternative to PipeWire)'
|
||||
'vulkan-icd-loader: GPU acceleration via Vulkan for Whisper (enable with: voxtype setup gpu --enable)'
|
||||
'cuda: GPU acceleration via CUDA for ONNX engines (NVIDIA GPUs)'
|
||||
'rocm-hip-runtime: GPU acceleration via ROCm for ONNX engines (AMD GPUs)'
|
||||
'cuda: GPU acceleration via CUDA 13 for ONNX engines (NVIDIA GPUs, requires driver 580+)'
|
||||
'cuda12.6: GPU acceleration via CUDA 12 for ONNX engines (older NVIDIA setups)'
|
||||
'rocm-hip-runtime: GPU acceleration via MIGraphX for ONNX engines (AMD GPUs)'
|
||||
'ollama: local AI summarization for meeting mode'
|
||||
'gtk4-layer-shell: runtime for the GTK4 on-screen mic visualizer (voxtype-osd-gtk4)'
|
||||
)
|
||||
provides=('voxtype')
|
||||
conflicts=('voxtype')
|
||||
@@ -40,15 +42,38 @@ source=(
|
||||
"voxtype-$pkgver-avx512.asc::$_github/voxtype-$pkgver-linux-x86_64-avx512.asc"
|
||||
"voxtype-$pkgver-vulkan::$_github/voxtype-$pkgver-linux-x86_64-vulkan"
|
||||
"voxtype-$pkgver-vulkan.asc::$_github/voxtype-$pkgver-linux-x86_64-vulkan.asc"
|
||||
# ONNX binaries (all ONNX engines: Parakeet, Moonshine, SenseVoice, Paraformer, Dolphin, Omnilingual)
|
||||
# ONNX CPU binaries (all ONNX engines: Parakeet, Moonshine, SenseVoice, Paraformer, Dolphin, Omnilingual)
|
||||
"voxtype-$pkgver-onnx-avx2::$_github/voxtype-$pkgver-linux-x86_64-onnx-avx2"
|
||||
"voxtype-$pkgver-onnx-avx2.asc::$_github/voxtype-$pkgver-linux-x86_64-onnx-avx2.asc"
|
||||
"voxtype-$pkgver-onnx-avx512::$_github/voxtype-$pkgver-linux-x86_64-onnx-avx512"
|
||||
"voxtype-$pkgver-onnx-avx512.asc::$_github/voxtype-$pkgver-linux-x86_64-onnx-avx512.asc"
|
||||
"voxtype-$pkgver-onnx-cuda::$_github/voxtype-$pkgver-linux-x86_64-onnx-cuda"
|
||||
"voxtype-$pkgver-onnx-cuda.asc::$_github/voxtype-$pkgver-linux-x86_64-onnx-cuda.asc"
|
||||
"voxtype-$pkgver-onnx-rocm::$_github/voxtype-$pkgver-linux-x86_64-onnx-rocm"
|
||||
"voxtype-$pkgver-onnx-rocm.asc::$_github/voxtype-$pkgver-linux-x86_64-onnx-rocm.asc"
|
||||
# ONNX CUDA 12 binary + companion shared libs (CUDA 12.x hosts: Ubuntu LTS, Debian, older Fedora)
|
||||
"voxtype-$pkgver-onnx-cuda-12::$_github/voxtype-$pkgver-linux-x86_64-onnx-cuda-12"
|
||||
"voxtype-$pkgver-onnx-cuda-12.asc::$_github/voxtype-$pkgver-linux-x86_64-onnx-cuda-12.asc"
|
||||
"voxtype-$pkgver-onnx-cuda-12.libonnxruntime_providers_cuda.so::$_github/voxtype-$pkgver-linux-x86_64-onnx-cuda-12.libonnxruntime_providers_cuda.so"
|
||||
"voxtype-$pkgver-onnx-cuda-12.libonnxruntime_providers_shared.so::$_github/voxtype-$pkgver-linux-x86_64-onnx-cuda-12.libonnxruntime_providers_shared.so"
|
||||
# ONNX CUDA 13 binary + companion shared libs (CUDA 13.x hosts: Arch, rolling distros, requires driver 580+)
|
||||
# v0.7.3+: cu13 dlopens ORT at runtime (ort/load-dynamic) because Microsoft's
|
||||
# prebuilt is the only ORT 1.24.4 build with Blackwell sm_120 coverage and
|
||||
# is distributed as .so only. The runtime ships alongside the binary; the
|
||||
# install step below symlinks libonnxruntime.so to this versioned name.
|
||||
"voxtype-$pkgver-onnx-cuda-13::$_github/voxtype-$pkgver-linux-x86_64-onnx-cuda-13"
|
||||
"voxtype-$pkgver-onnx-cuda-13.asc::$_github/voxtype-$pkgver-linux-x86_64-onnx-cuda-13.asc"
|
||||
"voxtype-$pkgver-onnx-cuda-13.libonnxruntime_providers_cuda.so::$_github/voxtype-$pkgver-linux-x86_64-onnx-cuda-13.libonnxruntime_providers_cuda.so"
|
||||
"voxtype-$pkgver-onnx-cuda-13.libonnxruntime_providers_shared.so::$_github/voxtype-$pkgver-linux-x86_64-onnx-cuda-13.libonnxruntime_providers_shared.so"
|
||||
"voxtype-$pkgver-onnx-cuda-13.libonnxruntime.so.1.24.4::$_github/voxtype-$pkgver-linux-x86_64-onnx-cuda-13.libonnxruntime.so.1.24.4"
|
||||
# ONNX MIGraphX binary + companion shared libs (AMD GPU EP, replaces ROCm in v0.7.0)
|
||||
"voxtype-$pkgver-onnx-migraphx::$_github/voxtype-$pkgver-linux-x86_64-onnx-migraphx"
|
||||
"voxtype-$pkgver-onnx-migraphx.asc::$_github/voxtype-$pkgver-linux-x86_64-onnx-migraphx.asc"
|
||||
"voxtype-$pkgver-onnx-migraphx.libonnxruntime_providers_migraphx.so::$_github/voxtype-$pkgver-linux-x86_64-onnx-migraphx.libonnxruntime_providers_migraphx.so"
|
||||
"voxtype-$pkgver-onnx-migraphx.libonnxruntime_providers_shared.so::$_github/voxtype-$pkgver-linux-x86_64-onnx-migraphx.libonnxruntime_providers_shared.so"
|
||||
# OSD launcher + GTK4 frontend (engine-agnostic, built once in Dockerfile.onnx).
|
||||
# The launcher resolves /proc/self/exe, follows the /usr/bin symlink, and
|
||||
# probes its parent dir for voxtype-osd-gtk4 / voxtype-osd-native.
|
||||
"voxtype-$pkgver-osd::$_github/voxtype-$pkgver-linux-x86_64-osd"
|
||||
"voxtype-$pkgver-osd.asc::$_github/voxtype-$pkgver-linux-x86_64-osd.asc"
|
||||
"voxtype-$pkgver-osd-gtk4::$_github/voxtype-$pkgver-linux-x86_64-osd-gtk4"
|
||||
"voxtype-$pkgver-osd-gtk4.asc::$_github/voxtype-$pkgver-linux-x86_64-osd-gtk4.asc"
|
||||
# Config and support files
|
||||
"config-$pkgver.toml::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/config/default.toml"
|
||||
"voxtype-$pkgver.service::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/packaging/systemd/voxtype.service"
|
||||
@@ -57,32 +82,54 @@ source=(
|
||||
"voxtype-$pkgver.fish::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/packaging/completions/voxtype.fish"
|
||||
"LICENSE-$pkgver::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/LICENSE"
|
||||
"README-$pkgver.md::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/README.md"
|
||||
# Desktop entry + terminal launcher for `voxtype configure` (TUI surfaced in walker/rofi/etc.)
|
||||
"voxtype-configure-$pkgver.desktop::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/packaging/voxtype-configure.desktop"
|
||||
"voxtype-configure-launcher-$pkgver::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/packaging/scripts/voxtype-configure-launcher"
|
||||
)
|
||||
sha256sums=(
|
||||
# Whisper binaries
|
||||
'505933791bb9389ef851813c404eefe63b186eba3aa842b2b321a164ecb8a6db' # voxtype-avx2
|
||||
'SKIP' # voxtype-avx2.asc
|
||||
'ad9631c1fa810cab0749d66b73a549b6634047bbe36f004ad52d24acf969a467' # voxtype-avx512
|
||||
'SKIP' # voxtype-avx512.asc
|
||||
'2f7cf1bb199c2d25cae6566c2df0bbe62d39e712f9abea329cb2d563a3b548fe' # voxtype-vulkan
|
||||
'SKIP' # voxtype-vulkan.asc
|
||||
# ONNX binaries
|
||||
'300d040d682e39fdb3a5beca4814cdd1bc127d61efaea917ea43031193aba92f' # voxtype-onnx-avx2
|
||||
'SKIP' # voxtype-onnx-avx2.asc
|
||||
'3799fb9a6d5d59e132286b8c5f7166d849a746dcd255d2b24b77c87a3bd9fbb6' # voxtype-onnx-avx512
|
||||
'SKIP' # voxtype-onnx-avx512.asc
|
||||
'ce130d9190274b84c61c974dbeeb3d92c308285f40d4d0befaa135be49af1a09' # voxtype-onnx-cuda
|
||||
'SKIP' # voxtype-onnx-cuda.asc
|
||||
'456026cc5b0122b3f99a52691c82579bda16d1c36bd739a378b7b1ea24f1294f' # voxtype-onnx-rocm
|
||||
'SKIP' # voxtype-onnx-rocm.asc
|
||||
'095191715ee18d320f319332d47ed98841a09e1927e2d2276634ba7a2d16e4e5' # voxtype-avx2
|
||||
'SKIP' # voxtype-avx2.asc
|
||||
'ae72d9105f1e521dfcf2ddf6742a96b8af56b655023d51952b274e11faa2c5d8' # voxtype-avx512
|
||||
'SKIP' # voxtype-avx512.asc
|
||||
'3b59c0621de48109c1a63cf5af92ed085bba9d9f7d0a623082d792a2d6c15f6f' # voxtype-vulkan
|
||||
'SKIP' # voxtype-vulkan.asc
|
||||
# ONNX CPU binaries
|
||||
'792da58000d692bef61b5255740a098b152ad226366682be7a6e139388a68c12' # voxtype-onnx-avx2
|
||||
'SKIP' # voxtype-onnx-avx2.asc
|
||||
'1c55d0ff24d8eb45bff4e88d94f30900ff97fbc908c2a677befb5f5ab46a6c63' # voxtype-onnx-avx512
|
||||
'SKIP' # voxtype-onnx-avx512.asc
|
||||
# ONNX CUDA 12
|
||||
'72c3b291760c6ccf3a46793da440dda36cd4de8210101196163d492f0c58becf' # voxtype-onnx-cuda-12
|
||||
'SKIP' # voxtype-onnx-cuda-12.asc
|
||||
'a8584727d51ba646ac63fc991c2f36ad6cd5b8cc8b1141896e46938700b888d0' # voxtype-onnx-cuda-12.libonnxruntime_providers_cuda.so
|
||||
'1b028afc079628d76a28d7eb09700a4baead4a27f9634ba82c35398486134114' # voxtype-onnx-cuda-12.libonnxruntime_providers_shared.so
|
||||
# ONNX CUDA 13
|
||||
'4e765462ab4a985acbf6e73385af1d9e40aea1873d407239ae6f495588315a36' # voxtype-onnx-cuda-13
|
||||
'SKIP' # voxtype-onnx-cuda-13.asc
|
||||
'b6cb7744d0efd2faced5c83ead374c13e7f2630b5a249ffaf393cdb1e092c92b' # voxtype-onnx-cuda-13.libonnxruntime_providers_cuda.so
|
||||
'c6a12593396095f5670160e284c35d1700b7708cf3037b7042e2a5200ccae772' # voxtype-onnx-cuda-13.libonnxruntime_providers_shared.so
|
||||
'1aacefdf0b4afa145d410b2381bbc3db3d978c485fb182c42a2b0b09f91f5310' # voxtype-onnx-cuda-13.libonnxruntime.so.1.24.4
|
||||
# ONNX MIGraphX
|
||||
'87b966bc1303048ab019a559839f829031005da96938a81c0f232602e923573a' # voxtype-onnx-migraphx
|
||||
'SKIP' # voxtype-onnx-migraphx.asc
|
||||
'ddd67e6193ade819ee21f1706d1b03b9151f1d2d2843701e2d19d8b183631707' # voxtype-onnx-migraphx.libonnxruntime_providers_migraphx.so
|
||||
'17f7cf47ad0d7b5ac895ae588fd62c7f85a13842588161b6a24c7d480f062be4' # voxtype-onnx-migraphx.libonnxruntime_providers_shared.so
|
||||
# OSD launcher + GTK4 frontend
|
||||
'3bdbcc84a5fb1853da75377dd199aad2e151f5e7bf59bfdb9a3e20632d3b96d8' # voxtype-osd
|
||||
'SKIP' # voxtype-osd.asc
|
||||
'7d8eda8e4511577cf4bebb5ef56d1a09f7eea9419a5af1da97870289e180ad60' # voxtype-osd-gtk4
|
||||
'SKIP' # voxtype-osd-gtk4.asc
|
||||
# Config and support files
|
||||
'SKIP' # config.toml
|
||||
'SKIP' # voxtype.service
|
||||
'SKIP' # voxtype.bash
|
||||
'SKIP' # voxtype.zsh
|
||||
'SKIP' # voxtype.fish
|
||||
'SKIP' # LICENSE
|
||||
'SKIP' # README.md
|
||||
'aaa36cb5f382e66b2d385c657450629209c5875e29c82370cc190202616a8cbe' # config.toml
|
||||
'531c3658e229619e56bb01659fb81f401767b85e1d6e2acd1ac67ee3414a168c' # voxtype.service
|
||||
'65c95805d9b03ccc2fadb9d63a03ab79974b00091df8457ee8ef290ec6bd5b12' # voxtype.bash
|
||||
'e5e63b3c7f48238cf719e4f2ef90c1f9c5c7e8cd25eaebc9f78bdd34b24b6605' # voxtype.zsh
|
||||
'f720ddd24ee97c105b448323899c36bca7c63d00c2d42c4a3da70c3d157dccbb' # voxtype.fish
|
||||
'31123c45b4ff9cb5fd9e01083350fea6ccaf14969013fd48e4c95fdf89e6eb4b' # LICENSE
|
||||
'744134f77ac3d2134682fef0bf2734aee9a36c6bbbac3c5b633ac500fa06273e' # README.md
|
||||
'32144a4a5210092b0aa909f6de7a43ebe8bbf82fa3dfb1f3519787512fdf8e4b' # voxtype-configure.desktop
|
||||
'2001788ae3c087ff2589ff69c9598160da1c783025cc52ca3382736694a97090' # voxtype-configure-launcher
|
||||
)
|
||||
|
||||
package() {
|
||||
@@ -93,14 +140,78 @@ package() {
|
||||
# Install Whisper Vulkan GPU binary
|
||||
install -Dm755 "$srcdir/voxtype-$pkgver-vulkan" "$pkgdir/usr/lib/voxtype/voxtype-vulkan"
|
||||
|
||||
# Install ONNX binaries (all ONNX engines)
|
||||
# Install ONNX CPU binaries (no GPU EP, no companion .so files)
|
||||
install -Dm755 "$srcdir/voxtype-$pkgver-onnx-avx2" "$pkgdir/usr/lib/voxtype/voxtype-onnx-avx2"
|
||||
install -Dm755 "$srcdir/voxtype-$pkgver-onnx-avx512" "$pkgdir/usr/lib/voxtype/voxtype-onnx-avx512"
|
||||
install -Dm755 "$srcdir/voxtype-$pkgver-onnx-cuda" "$pkgdir/usr/lib/voxtype/voxtype-onnx-cuda"
|
||||
install -Dm755 "$srcdir/voxtype-$pkgver-onnx-rocm" "$pkgdir/usr/lib/voxtype/voxtype-onnx-rocm"
|
||||
|
||||
# /usr/bin/voxtype symlink is managed by the .install script
|
||||
# to preserve user-configured backends across upgrades
|
||||
# GPU-using ONNX binaries each live in their own subdirectory alongside
|
||||
# the EP companion shared libs they dlopen at runtime. ort 2.0.0-rc.12's
|
||||
# CUDA/MIGraphX EPs resolve their .so files via /proc/self/exe; if they
|
||||
# aren't co-located, EP registration fails and ort silently falls back
|
||||
# to CPU. /proc/self/exe follows symlinks, so the user-facing names at
|
||||
# /usr/lib/voxtype/voxtype-onnx-* are symlinks into these subdirs.
|
||||
|
||||
# ONNX CUDA 12 (locked to libcudart.so.12 ABI)
|
||||
install -Dm755 "$srcdir/voxtype-$pkgver-onnx-cuda-12" \
|
||||
"$pkgdir/usr/lib/voxtype/cuda-12/voxtype-onnx-cuda-12"
|
||||
install -Dm644 "$srcdir/voxtype-$pkgver-onnx-cuda-12.libonnxruntime_providers_cuda.so" \
|
||||
"$pkgdir/usr/lib/voxtype/cuda-12/libonnxruntime_providers_cuda.so"
|
||||
install -Dm644 "$srcdir/voxtype-$pkgver-onnx-cuda-12.libonnxruntime_providers_shared.so" \
|
||||
"$pkgdir/usr/lib/voxtype/cuda-12/libonnxruntime_providers_shared.so"
|
||||
ln -sf "cuda-12/voxtype-onnx-cuda-12" \
|
||||
"$pkgdir/usr/lib/voxtype/voxtype-onnx-cuda-12"
|
||||
|
||||
# ONNX CUDA 13 (locked to libcudart.so.13 ABI, requires driver 580+).
|
||||
# v0.7.3+: dlopens ORT at runtime. Install Microsoft's libonnxruntime
|
||||
# under its SONAME plus a libonnxruntime.so symlink that ort/load-dynamic
|
||||
# expects (resolved relative to /proc/self/exe, see ort src/lib.rs:96-109).
|
||||
install -Dm755 "$srcdir/voxtype-$pkgver-onnx-cuda-13" \
|
||||
"$pkgdir/usr/lib/voxtype/cuda-13/voxtype-onnx-cuda-13"
|
||||
install -Dm644 "$srcdir/voxtype-$pkgver-onnx-cuda-13.libonnxruntime_providers_cuda.so" \
|
||||
"$pkgdir/usr/lib/voxtype/cuda-13/libonnxruntime_providers_cuda.so"
|
||||
install -Dm644 "$srcdir/voxtype-$pkgver-onnx-cuda-13.libonnxruntime_providers_shared.so" \
|
||||
"$pkgdir/usr/lib/voxtype/cuda-13/libonnxruntime_providers_shared.so"
|
||||
install -Dm644 "$srcdir/voxtype-$pkgver-onnx-cuda-13.libonnxruntime.so.1.24.4" \
|
||||
"$pkgdir/usr/lib/voxtype/cuda-13/libonnxruntime.so.1.24.4"
|
||||
ln -sf "libonnxruntime.so.1.24.4" \
|
||||
"$pkgdir/usr/lib/voxtype/cuda-13/libonnxruntime.so"
|
||||
ln -sf "cuda-13/voxtype-onnx-cuda-13" \
|
||||
"$pkgdir/usr/lib/voxtype/voxtype-onnx-cuda-13"
|
||||
|
||||
# ONNX MIGraphX (AMD GPU EP, replaces ROCm in v0.7.0)
|
||||
install -Dm755 "$srcdir/voxtype-$pkgver-onnx-migraphx" \
|
||||
"$pkgdir/usr/lib/voxtype/migraphx/voxtype-onnx-migraphx"
|
||||
install -Dm644 "$srcdir/voxtype-$pkgver-onnx-migraphx.libonnxruntime_providers_migraphx.so" \
|
||||
"$pkgdir/usr/lib/voxtype/migraphx/libonnxruntime_providers_migraphx.so"
|
||||
install -Dm644 "$srcdir/voxtype-$pkgver-onnx-migraphx.libonnxruntime_providers_shared.so" \
|
||||
"$pkgdir/usr/lib/voxtype/migraphx/libonnxruntime_providers_shared.so"
|
||||
ln -sf "migraphx/voxtype-onnx-migraphx" \
|
||||
"$pkgdir/usr/lib/voxtype/voxtype-onnx-migraphx"
|
||||
|
||||
# Compatibility symlink for users with scripts referencing the old
|
||||
# voxtype-onnx-rocm name. The AMD GPU EP changed from ROCm to MIGraphX
|
||||
# in v0.7.0; ship one release with both names to soften the transition.
|
||||
# Drop in v0.8.0.
|
||||
ln -sf "voxtype-onnx-migraphx" "$pkgdir/usr/lib/voxtype/voxtype-onnx-rocm"
|
||||
|
||||
# /usr/bin/voxtype symlink and the unversioned voxtype-onnx-cuda symlink
|
||||
# are created by the .install script's post_install/post_upgrade hooks
|
||||
# so they can pick the right CUDA variant for the host.
|
||||
|
||||
# OSD launcher + GTK4 frontend. The launcher resolves /proc/self/exe and
|
||||
# probes its parent directory, so it finds /usr/lib/voxtype/voxtype-osd-gtk4
|
||||
# without needing it on PATH. Only the launcher gets a /usr/bin symlink.
|
||||
install -Dm755 "$srcdir/voxtype-$pkgver-osd" "$pkgdir/usr/lib/voxtype/voxtype-osd"
|
||||
install -Dm755 "$srcdir/voxtype-$pkgver-osd-gtk4" "$pkgdir/usr/lib/voxtype/voxtype-osd-gtk4"
|
||||
install -d "$pkgdir/usr/bin"
|
||||
ln -sf /usr/lib/voxtype/voxtype-osd "$pkgdir/usr/bin/voxtype-osd"
|
||||
|
||||
# Desktop entry for the TUI configure command, surfaced in walker/rofi/fuzzel/etc.
|
||||
# The launcher discovers a terminal emulator and runs `voxtype configure` inside it.
|
||||
install -Dm755 "$srcdir/voxtype-configure-launcher-$pkgver" \
|
||||
"$pkgdir/usr/bin/voxtype-configure-launcher"
|
||||
install -Dm644 "$srcdir/voxtype-configure-$pkgver.desktop" \
|
||||
"$pkgdir/usr/share/applications/voxtype-configure.desktop"
|
||||
|
||||
# Install default configuration
|
||||
install -Dm644 "$srcdir/config-$pkgver.toml" "$pkgdir/etc/voxtype/config.toml"
|
||||
|
||||
@@ -1,10 +1,64 @@
|
||||
# Resolve the canonical real binary that /usr/bin/voxtype dispatches to,
|
||||
# regardless of whether /usr/bin/voxtype is a symlink (CPU variant) or a
|
||||
# wrapper script (GPU/ONNX variant whose binary lives next to companion
|
||||
# .so files). Echoes the real path or empty string if not present.
|
||||
_resolve_active_binary() {
|
||||
if [ -L /usr/bin/voxtype ]; then
|
||||
readlink -f /usr/bin/voxtype
|
||||
elif [ -f /usr/bin/voxtype ]; then
|
||||
# Wrapper script — extract the `exec /path` line.
|
||||
sed -n 's/^exec \([^ ]*\).*/\1/p' /usr/bin/voxtype | head -1
|
||||
fi
|
||||
}
|
||||
|
||||
# Install /usr/bin/voxtype dispatching to $1 (a path under /usr/lib/voxtype/).
|
||||
# Uses a thin shell wrapper when $1 lives in a GPU subdirectory next to its
|
||||
# companion ONNX Runtime provider .so files (cuda-12/, cuda-13/, migraphx/).
|
||||
# Without the wrapper, ORT's argv[0]-based provider lookup hits /usr/bin/
|
||||
# which doesn't have the .so files and silently falls back to CPU. The
|
||||
# wrapper `exec`s the real path so argv[0] becomes the canonical location
|
||||
# and ORT finds the .so files alongside.
|
||||
_install_active_binary() {
|
||||
local target="$1"
|
||||
rm -f /usr/bin/voxtype
|
||||
local target_dir
|
||||
target_dir=$(dirname "$target")
|
||||
local subdir="${target_dir##*/}"
|
||||
case "$subdir" in
|
||||
cuda-12|cuda-13|migraphx)
|
||||
local migraphx_env=""
|
||||
if [ "$subdir" = "migraphx" ]; then
|
||||
# MIGraphX needs a writeable model-cache directory or its
|
||||
# runtime fails to save compiled graphs and inference
|
||||
# errors out. Default to $XDG_CACHE_HOME/voxtype/migraphx,
|
||||
# honoring user override.
|
||||
migraphx_env=': "${ORT_MIGRAPHX_MODEL_CACHE_PATH:=${XDG_CACHE_HOME:-$HOME/.cache}/voxtype/migraphx}"\nmkdir -p "$ORT_MIGRAPHX_MODEL_CACHE_PATH"\nexport ORT_MIGRAPHX_MODEL_CACHE_PATH\n'
|
||||
fi
|
||||
{
|
||||
printf '#!/bin/sh\n'
|
||||
printf '# voxtype dispatch wrapper.\n'
|
||||
printf '# Execs the GPU/ONNX binary by canonical path so ORT'\''s argv[0]\n'
|
||||
printf '# based provider .so lookup resolves to the right subdirectory.\n'
|
||||
printf '# Managed by `voxtype setup onnx --enable` and the AUR package'\''s\n'
|
||||
printf '# post_install / post_upgrade hooks; do not edit by hand.\n'
|
||||
printf '%b' "$migraphx_env"
|
||||
printf 'exec %s "$@"\n' "$target"
|
||||
} > /usr/bin/voxtype
|
||||
chmod 755 /usr/bin/voxtype
|
||||
;;
|
||||
*)
|
||||
ln -sf "$target" /usr/bin/voxtype
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
_set_default_backend() {
|
||||
# Set the default CPU backend based on CPU capabilities
|
||||
if grep -q avx512f /proc/cpuinfo 2>/dev/null; then
|
||||
ln -sf /usr/lib/voxtype/voxtype-avx512 /usr/bin/voxtype
|
||||
_install_active_binary /usr/lib/voxtype/voxtype-avx512
|
||||
echo "avx512"
|
||||
else
|
||||
ln -sf /usr/lib/voxtype/voxtype-avx2 /usr/bin/voxtype
|
||||
_install_active_binary /usr/lib/voxtype/voxtype-avx2
|
||||
echo "avx2"
|
||||
fi
|
||||
}
|
||||
@@ -15,9 +69,35 @@ _preserve_or_set_backend() {
|
||||
if [ -f "$saved" ]; then
|
||||
target=$(cat "$saved")
|
||||
rm -f "$saved"
|
||||
|
||||
# Compatibility map for 0.6.x → 0.7.x binary renames. Users who
|
||||
# had an ONNX engine selected on 0.6.x would otherwise fall back
|
||||
# to CPU Whisper after upgrade because the old binary names no
|
||||
# longer exist; the map preserves engine intent across the rename.
|
||||
case "$target" in
|
||||
*/voxtype-parakeet-avx2)
|
||||
target="/usr/lib/voxtype/voxtype-onnx-avx2" ;;
|
||||
*/voxtype-parakeet-avx512)
|
||||
target="/usr/lib/voxtype/voxtype-onnx-avx512" ;;
|
||||
*/voxtype-onnx-rocm)
|
||||
target="/usr/lib/voxtype/migraphx/voxtype-onnx-migraphx" ;;
|
||||
*/voxtype-onnx-cuda)
|
||||
# 0.7.0 split CUDA into 12/13. Pick the variant matching
|
||||
# the host's libcudart soname; fall back to cuda-13 if
|
||||
# neither is detected (modern default).
|
||||
local cuda_major
|
||||
cuda_major=$(_detect_cuda_major 2>/dev/null)
|
||||
if [ -z "$cuda_major" ]; then
|
||||
cuda_major=13
|
||||
fi
|
||||
target="/usr/lib/voxtype/cuda-${cuda_major}/voxtype-onnx-cuda-${cuda_major}" ;;
|
||||
esac
|
||||
|
||||
if [ -f "$target" ]; then
|
||||
ln -sf "$target" /usr/bin/voxtype
|
||||
echo "${target##*/voxtype-}"
|
||||
_install_active_binary "$target"
|
||||
# Strip the /usr/lib/voxtype/[<subdir>/]voxtype- prefix for the echo
|
||||
local short=${target##*/voxtype-}
|
||||
echo "${short%/*}"
|
||||
return
|
||||
fi
|
||||
fi
|
||||
@@ -26,6 +106,60 @@ _preserve_or_set_backend() {
|
||||
_set_default_backend
|
||||
}
|
||||
|
||||
# Detect the host's CUDA runtime major version by inspecting libcudart's SONAME.
|
||||
# Echoes 12, 13, or empty string if no CUDA runtime found. Used to point the
|
||||
# unversioned voxtype-onnx-cuda symlink at the matching variant — cu12 binary
|
||||
# needs libcudart.so.12, cu13 needs libcudart.so.13. Mismatched pairings
|
||||
# register the EP, then fail at first dlopen and silently fall back to CPU.
|
||||
_detect_cuda_major() {
|
||||
local lib
|
||||
for lib in libcudart.so.13 libcudart.so.12; do
|
||||
if /sbin/ldconfig -p 2>/dev/null | grep -q "\b$lib\b"; then
|
||||
echo "${lib##*.so.}"
|
||||
return
|
||||
fi
|
||||
done
|
||||
# Fallback: probe well-known paths
|
||||
if [ -e /usr/lib/libcudart.so.13 ] || [ -e /opt/cuda/lib64/libcudart.so.13 ]; then
|
||||
echo "13"
|
||||
elif [ -e /usr/lib/libcudart.so.12 ] || [ -e /opt/cuda/lib64/libcudart.so.12 ]; then
|
||||
echo "12"
|
||||
fi
|
||||
}
|
||||
|
||||
_set_onnx_cuda_symlink() {
|
||||
# Point /usr/lib/voxtype/voxtype-onnx-cuda at the variant matching the
|
||||
# host's CUDA runtime. If no CUDA is installed, leave the unversioned
|
||||
# symlink dangling — users running `voxtype setup gpu --enable` later
|
||||
# will set it up after installing CUDA.
|
||||
local cuda_major target
|
||||
cuda_major=$(_detect_cuda_major)
|
||||
case "$cuda_major" in
|
||||
13)
|
||||
target="cuda-13/voxtype-onnx-cuda-13"
|
||||
;;
|
||||
12)
|
||||
target="cuda-12/voxtype-onnx-cuda-12"
|
||||
;;
|
||||
*)
|
||||
# No CUDA detected. Prefer cu13 if both binaries are present
|
||||
# (rolling-distro default); fall back to cu12 if only that exists.
|
||||
if [ -f /usr/lib/voxtype/cuda-13/voxtype-onnx-cuda-13 ]; then
|
||||
target="cuda-13/voxtype-onnx-cuda-13"
|
||||
elif [ -f /usr/lib/voxtype/cuda-12/voxtype-onnx-cuda-12 ]; then
|
||||
target="cuda-12/voxtype-onnx-cuda-12"
|
||||
else
|
||||
return
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -f "/usr/lib/voxtype/$target" ]; then
|
||||
ln -sf "$target" /usr/lib/voxtype/voxtype-onnx-cuda
|
||||
echo "$cuda_major"
|
||||
fi
|
||||
}
|
||||
|
||||
_detect_gpu() {
|
||||
# Detect GPU for acceleration recommendation
|
||||
GPU_DETECTED=""
|
||||
@@ -57,11 +191,19 @@ _detect_gpu() {
|
||||
echo " sudo voxtype setup gpu --enable"
|
||||
echo ""
|
||||
if [ "$GPU_VENDOR" = "nvidia" ]; then
|
||||
echo " Whisper: requires vulkan-icd-loader"
|
||||
echo " ONNX engines: requires cuda package"
|
||||
local cuda_major
|
||||
cuda_major=$(_detect_cuda_major)
|
||||
if [ "$cuda_major" = "13" ]; then
|
||||
echo " CUDA 13 runtime detected — voxtype-onnx-cuda points to cuda-13 binary"
|
||||
elif [ "$cuda_major" = "12" ]; then
|
||||
echo " CUDA 12 runtime detected — voxtype-onnx-cuda points to cuda-12 binary"
|
||||
else
|
||||
echo " Whisper: requires vulkan-icd-loader"
|
||||
echo " ONNX engines: requires cuda (CUDA 13) or cuda12.6 (CUDA 12) package"
|
||||
fi
|
||||
elif [ "$GPU_VENDOR" = "amd" ]; then
|
||||
echo " Whisper: requires vulkan-icd-loader"
|
||||
echo " ONNX engines: requires rocm-hip-runtime"
|
||||
echo " ONNX engines: requires rocm-hip-runtime (AMD GPU EP is MIGraphX as of v0.7.0)"
|
||||
else
|
||||
echo " Requires: vulkan-icd-loader package"
|
||||
fi
|
||||
@@ -76,6 +218,11 @@ post_install() {
|
||||
CPU_VARIANT=$(_set_default_backend)
|
||||
echo " CPU backend: $CPU_VARIANT (using voxtype-$CPU_VARIANT)"
|
||||
|
||||
CUDA_PICK=$(_set_onnx_cuda_symlink)
|
||||
if [ -n "$CUDA_PICK" ]; then
|
||||
echo " CUDA runtime: $CUDA_PICK detected, voxtype-onnx-cuda → cuda-$CUDA_PICK variant"
|
||||
fi
|
||||
|
||||
_detect_gpu
|
||||
|
||||
echo ""
|
||||
@@ -96,33 +243,55 @@ post_install() {
|
||||
}
|
||||
|
||||
pre_upgrade() {
|
||||
# Save the current backend so post_upgrade can restore it
|
||||
if [ -L /usr/bin/voxtype ]; then
|
||||
readlink /usr/bin/voxtype > /tmp/.voxtype-backend-upgrade
|
||||
# Save the current backend's canonical real path so post_upgrade can
|
||||
# re-install /usr/bin/voxtype pointing at the same binary. Handles
|
||||
# both the legacy symlink form (CPU variants, pre-0.7) and the
|
||||
# wrapper-script form (GPU/ONNX variants from 0.7+ that need argv[0]
|
||||
# to canonicalize for ORT's provider .so lookup).
|
||||
local target
|
||||
target=$(_resolve_active_binary)
|
||||
if [ -n "$target" ]; then
|
||||
echo "$target" > /tmp/.voxtype-backend-upgrade
|
||||
fi
|
||||
}
|
||||
|
||||
post_upgrade() {
|
||||
echo ""
|
||||
echo "==> Voxtype upgraded to 0.6.6"
|
||||
echo "==> Voxtype upgraded to 0.7.3"
|
||||
echo ""
|
||||
|
||||
BACKEND=$(_preserve_or_set_backend)
|
||||
echo " Backend: $BACKEND (using voxtype-$BACKEND)"
|
||||
|
||||
# Re-pick the CUDA variant on every upgrade in case the host's CUDA
|
||||
# runtime changed (e.g., user upgraded from CUDA 12 to CUDA 13).
|
||||
CUDA_PICK=$(_set_onnx_cuda_symlink)
|
||||
if [ -n "$CUDA_PICK" ]; then
|
||||
echo " CUDA runtime: $CUDA_PICK detected, voxtype-onnx-cuda → cuda-$CUDA_PICK variant"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo " v0.6.6: Media pause, audio feedback, KDE Plasma support, 7 bug fixes."
|
||||
echo " New: pause_media = true pauses music during recording (MPRIS/playerctl)."
|
||||
echo " New: audio feedback plays when transcription completes."
|
||||
echo " KDE Plasma keybinding docs added to README and user manual."
|
||||
echo " Fixes: ydotool on Fedora, eitype paste mode, duplicate notifications,"
|
||||
echo " xclip on X11, text replacement ordering, remote initial_prompt."
|
||||
echo " What's new in v0.7.3 (two-issue hotfix):"
|
||||
echo " * Vulkan binary boots on Kaby Lake and older Intel CPUs (#393)."
|
||||
echo " The 0.7.2 build leaked an SSE4a instruction from the AMD Zen 3"
|
||||
echo " CI runner; Intel CPUs without SSE4a would SIGILL on daemon"
|
||||
echo " start. The CI ISA-floor gate is now widened to catch SSE4a,"
|
||||
echo " GFNI, and AVX-VNNI leakage on top of AVX-512."
|
||||
echo " * NVIDIA Blackwell (RTX 5090) works on voxtype-onnx-cuda-13 (#386)."
|
||||
echo " The CUDA 13 binary now ships Microsoft's ORT 1.24.4 prebuilt"
|
||||
echo " which includes sm_120 kernels, dlopened at runtime via"
|
||||
echo " ort/load-dynamic. cu13 install layout gains libonnxruntime.so"
|
||||
echo " alongside the existing libonnxruntime_providers_*.so files."
|
||||
echo ""
|
||||
echo " Restart the daemon to apply updates:"
|
||||
echo " systemctl --user restart voxtype"
|
||||
echo ""
|
||||
echo " Full release notes:"
|
||||
echo " https://github.com/peteonrails/voxtype/releases/tag/v0.7.3"
|
||||
echo ""
|
||||
}
|
||||
|
||||
post_remove() {
|
||||
rm -f /usr/bin/voxtype
|
||||
rm -f /usr/lib/voxtype/voxtype-onnx-cuda
|
||||
}
|
||||
Reference in new issue
Block a user