set_pkgbuild_array ended its skip over the old array at the first line holding a ")", comments included. voxtype-bin annotates its arrays with "# Quickshell OSD launcher + audio-bridge sidecar (new in v0.7.5)", so the rewrite stopped there and left the rest of the old array behind a stray ")". Every scheduled sync since voxtype 1.1.0 failed with "Rewritten PKGBUILD is not valid shell". Strip comments before looking for the closing paren, add a self-test fixture that fails on the old awk, and take the update it was blocking: voxtype-bin 1.0.1 -> 1.1.0.
349 lines
23 KiB
Bash
349 lines
23 KiB
Bash
# Maintainer: Peter Jackson <pete@peteonrails.com>
|
|
pkgname=voxtype-bin
|
|
pkgver=1.1.0
|
|
pkgrel=1
|
|
pkgdesc="Push-to-talk voice-to-text for Linux (pre-built binaries)"
|
|
arch=('x86_64' 'aarch64')
|
|
url="https://voxtype.io"
|
|
license=('MIT')
|
|
depends=(
|
|
'alsa-lib'
|
|
'curl'
|
|
'gcc-libs'
|
|
'glibc'
|
|
)
|
|
optdepends=(
|
|
'wtype: keyboard simulation for Wayland (recommended, best CJK support)'
|
|
'dotool: keyboard simulation with layout support (KDE/GNOME compatible)'
|
|
'ydotool: keyboard simulation fallback (X11/TTY support)'
|
|
'wl-clipboard: clipboard support'
|
|
'libnotify: desktop notifications'
|
|
'pipewire: audio server (recommended)'
|
|
'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 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: ROCm runtime (required by migraphx)'
|
|
'migraphx: AMD GPU graph optimization for the MIGraphX execution provider — required for AMD GPU acceleration on ONNX engines'
|
|
'ollama: local AI summarization for meeting mode'
|
|
'gtk4-layer-shell: runtime for the GTK4 on-screen mic visualizer (voxtype-osd-gtk4)'
|
|
'quickshell: Quickshell-based OSD frontend (opt in via [osd] frontend = "quickshell")'
|
|
)
|
|
provides=('voxtype')
|
|
conflicts=('voxtype')
|
|
backup=('etc/voxtype/config.toml')
|
|
install=voxtype-bin.install
|
|
validpgpkeys=(
|
|
# Peter Jackson's offline maintainer primary. Signed binary .asc files
|
|
# through v0.7.4 (and was used to cross-sign the CI signing primary
|
|
# below). Existing voxtype-bin users have this key in their local
|
|
# keyring from v0.6.x installs — keep listed so old assets verify.
|
|
'E79F5BAF8CD51A806AA27DBB7DA2709247D75BC6'
|
|
# Voxtype CI release signing primary (cross-signed by E79F5BAF...).
|
|
# Lives in CI secrets; signs .deb / .rpm / source-archive .asc starting
|
|
# in v0.7.5. Auto-fetchable by fingerprint from public keyservers, so
|
|
# makepkg verifies cleanly on first install without manual gpg --recv-keys.
|
|
'9CCF7915B750CAE8B095ED1AA3FC9F33FD209279'
|
|
)
|
|
_github="https://github.com/peteonrails/voxtype/releases/download/v$pkgver"
|
|
source_x86_64=(
|
|
# Whisper binaries
|
|
"voxtype-$pkgver-avx2::$_github/voxtype-$pkgver-linux-x86_64-avx2"
|
|
"voxtype-$pkgver-avx2.asc::$_github/voxtype-$pkgver-linux-x86_64-avx2.asc"
|
|
"voxtype-$pkgver-avx512::$_github/voxtype-$pkgver-linux-x86_64-avx512"
|
|
"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 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"
|
|
# 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"
|
|
# Quickshell OSD frontend launcher + audio-bridge sidecar (new in v0.7.5).
|
|
# voxtype-osd-quickshell resolves /proc/self/exe and probes its parent dir
|
|
# plus /usr/share/voxtype/quickshell/ for shell.qml, so the QML files
|
|
# shipped further below sit on the lookup path without PATH gymnastics.
|
|
# voxtype-audio-bridge is the NDJSON sidecar that streams audio levels
|
|
# to the Quickshell frontend over a UNIX socket.
|
|
"voxtype-$pkgver-osd-quickshell::$_github/voxtype-$pkgver-linux-x86_64-osd-quickshell"
|
|
"voxtype-$pkgver-osd-quickshell.asc::$_github/voxtype-$pkgver-linux-x86_64-osd-quickshell.asc"
|
|
"voxtype-$pkgver-audio-bridge::$_github/voxtype-$pkgver-linux-x86_64-audio-bridge"
|
|
"voxtype-$pkgver-audio-bridge.asc::$_github/voxtype-$pkgver-linux-x86_64-audio-bridge.asc"
|
|
)
|
|
source_aarch64=(
|
|
"voxtype-$pkgver-cpu::$_github/voxtype-$pkgver-linux-aarch64-cpu"
|
|
"voxtype-$pkgver-cpu.asc::$_github/voxtype-$pkgver-linux-aarch64-cpu.asc"
|
|
"voxtype-$pkgver-onnx::$_github/voxtype-$pkgver-linux-aarch64-onnx"
|
|
"voxtype-$pkgver-onnx.asc::$_github/voxtype-$pkgver-linux-aarch64-onnx.asc"
|
|
"voxtype-$pkgver-osd::$_github/voxtype-$pkgver-linux-aarch64-osd"
|
|
"voxtype-$pkgver-osd.asc::$_github/voxtype-$pkgver-linux-aarch64-osd.asc"
|
|
"voxtype-$pkgver-osd-gtk4::$_github/voxtype-$pkgver-linux-aarch64-osd-gtk4"
|
|
"voxtype-$pkgver-osd-gtk4.asc::$_github/voxtype-$pkgver-linux-aarch64-osd-gtk4.asc"
|
|
"voxtype-$pkgver-osd-quickshell::$_github/voxtype-$pkgver-linux-aarch64-osd-quickshell"
|
|
"voxtype-$pkgver-osd-quickshell.asc::$_github/voxtype-$pkgver-linux-aarch64-osd-quickshell.asc"
|
|
"voxtype-$pkgver-audio-bridge::$_github/voxtype-$pkgver-linux-aarch64-audio-bridge"
|
|
"voxtype-$pkgver-audio-bridge.asc::$_github/voxtype-$pkgver-linux-aarch64-audio-bridge.asc"
|
|
)
|
|
source=(
|
|
# Architecture-independent 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"
|
|
"voxtype-$pkgver.bash::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/packaging/completions/voxtype.bash"
|
|
"voxtype-$pkgver.zsh::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/packaging/completions/voxtype.zsh"
|
|
"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"
|
|
# Quickshell QML tree (new in v0.7.5). voxtype-osd-quickshell probes
|
|
# /usr/share/voxtype/quickshell/ for shell.qml after the user/runtime
|
|
# paths, so shipping these files lets users opt in via
|
|
# [osd] frontend = "quickshell" with no manual file copies. The
|
|
# voxtype-shared/ subdirectory contains a QML module (Theme, StateReader,
|
|
# AudioBridge) registered via qmldir — keep the layout intact.
|
|
"quickshell-shell-$pkgver.qml::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/quickshell/shell.qml"
|
|
"quickshell-OsdSurface-$pkgver.qml::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/quickshell/OsdSurface.qml"
|
|
"quickshell-EnginePicker-$pkgver.qml::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/quickshell/EnginePicker.qml"
|
|
"quickshell-MeetingControls-$pkgver.qml::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/quickshell/MeetingControls.qml"
|
|
"quickshell-voxtype-shared-Theme-$pkgver.qml::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/quickshell/voxtype-shared/Theme.qml"
|
|
"quickshell-voxtype-shared-StateReader-$pkgver.qml::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/quickshell/voxtype-shared/StateReader.qml"
|
|
"quickshell-voxtype-shared-AudioBridge-$pkgver.qml::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/quickshell/voxtype-shared/AudioBridge.qml"
|
|
"quickshell-voxtype-shared-StyleLoader-$pkgver.qml::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/quickshell/voxtype-shared/StyleLoader.qml"
|
|
"quickshell-voxtype-shared-RecipeRenderer-$pkgver.qml::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/quickshell/voxtype-shared/RecipeRenderer.qml"
|
|
"quickshell-voxtype-shared-qmldir-$pkgver::https://raw.githubusercontent.com/peteonrails/voxtype/v$pkgver/quickshell/voxtype-shared/qmldir"
|
|
)
|
|
sha256sums_x86_64=(
|
|
'e7d5de68cc8fc610c3c961c47f879451db9bee4a2df152e9a66f1078072e7f28'
|
|
'fdf2c35826ea7590a703993c5bdf69804672a5a0c76312e66bc4f14399d8f2ce'
|
|
'bb2da45c7676bc128da998da928cb239ab6eef9fe53c31c9b4a77e819e521715'
|
|
'd6158e18ac2446a2ae79b2ae23ed9744c6579eeabfa567b5c3db0a2575f95ac9'
|
|
'db2c7938392ff08ec8b50b8afb90f8bd3d0111eccf5943df2f51c40a0368fec2'
|
|
'2b6b6afbaecd0c8adff536db4c5e0ea50b8781ad6f2643344e96c8cba2ea672a'
|
|
'07ee9863f1d611ee3fc638f9ba766f3bd38783b9a97b276d7eceb9b995a7167b'
|
|
'b5e15277f49f52ffd99bb0cc3ef91548841d83ed3787a3ff7809d4fba596327e'
|
|
'b3fabe0fa67452aaa76ccf3f84cd71a3c23d27354c840128c396690cb3a1c9a6'
|
|
'b2da321a562d7de459881be305626a1f68942786939c534360757efe686802e7'
|
|
'171869a953b0d85cb36b54c5cb0c64013051317bff2a1afe09297caf67967d01'
|
|
'24df2a2e1f1505c5ea3118ad354770f4ff1106a82b63e63fb62f3bf5e07fb448'
|
|
'a8584727d51ba646ac63fc991c2f36ad6cd5b8cc8b1141896e46938700b888d0'
|
|
'1b028afc079628d76a28d7eb09700a4baead4a27f9634ba82c35398486134114'
|
|
'06e74651565ed63ab20e8eedd7380ceb658558125d97dfde2bb5eafeeac82c7d'
|
|
'050438373390c779967a23ec4acbcd701cf3ac7e6ae9746c4eb06d999a44f810'
|
|
'b6cb7744d0efd2faced5c83ead374c13e7f2630b5a249ffaf393cdb1e092c92b'
|
|
'c6a12593396095f5670160e284c35d1700b7708cf3037b7042e2a5200ccae772'
|
|
'1aacefdf0b4afa145d410b2381bbc3db3d978c485fb182c42a2b0b09f91f5310'
|
|
'4085f24c336ffb0862f9d1022f9d5acafcc4278a5bcd3fd45e6d89692f71d301'
|
|
'3c8d3eb1ad6db8881c59b3d25a317ea4bbadedab4388811b085920c21321d654'
|
|
'ddd67e6193ade819ee21f1706d1b03b9151f1d2d2843701e2d19d8b183631707'
|
|
'17f7cf47ad0d7b5ac895ae588fd62c7f85a13842588161b6a24c7d480f062be4'
|
|
'0c9ac447bc236728f355d25b7c500afd464186a4591ccc18f482fcc98b16a928'
|
|
'5844758469bd89b56c864e4934b783870cf0118b3b06d0fc9af9f3f348f85af6'
|
|
'19535f63c69748408199f3fbfe2bb2f786f5bf4faa54d5390895eecae4603dc7'
|
|
'3757b039b9a09c53b54c81e518222a1e44b4e50ba100084c6ab088aea31f7070'
|
|
'b9dc8eca049f21e2507511700108d57ce5704350e5828418753ef9989f86eb08'
|
|
'57e6e3c8de2307d17c1c45b498e2c92eec77cdefa818ab28aa0abfcd476e15fc'
|
|
'36333a15e27d13d9988045179582f0daecadc630e3ec01bb0996ab798cb77487'
|
|
'cf48b19667ea235460d9e7391a04e57b2bc2b9e361eef380196a2c51693fde81'
|
|
)
|
|
sha256sums_aarch64=(
|
|
'2fcf0945d424a116c1947ea738da1afa9f83abbae66cebb53f06189111a6f392'
|
|
'13c78d392751957631645c45668dca5b798b648e6cefb5dbb33e25ba80e713bf'
|
|
'49ecde9a394492c9a34e764911d98258c495ed2f0ced386e6974bccf3f9f164f'
|
|
'0b5f1e64e16086a68f9ac4f5be06e9c0937bd328eab6f257a2894bbb616a2081'
|
|
'34d83a7edb73ae2e15dabc0638d39f2c30ddb3af8f2565400ff043ef6558dc2b'
|
|
'9c86d7e11e60e143e68a398b8b3f25ebeaf3225478e3ceb15f84970df5dd76b4'
|
|
'4d730a6677342158c1861bfb73f1cb86da05afeb74fdf737134df5c8ad9a1eb1'
|
|
'00a3bd82bd457b6b43bf832c2342a4ee99bed3eb38c70e8e156052a9a46bc7c6'
|
|
'365c1b5223329604001fe591398d3c308120048567c7f3171d2602005661d594'
|
|
'2d0a8b55ba20efbb9c273b03ec042d434d6336fdc8bc822363e8b0f128dfa425'
|
|
'39c4a186ac8a95f7236cfdd46255207f143f76363a5f758eb127509b163d5172'
|
|
'f2348ab4b25e19a75f5442355c2ae7e250779814a524f09a41a59237aa495430'
|
|
)
|
|
sha256sums=(
|
|
'f4b2bccd56b31a6a50e1c0a8b6b72383dc1e636f9ccb8cb070442d58b7314579'
|
|
'531c3658e229619e56bb01659fb81f401767b85e1d6e2acd1ac67ee3414a168c'
|
|
'65c95805d9b03ccc2fadb9d63a03ab79974b00091df8457ee8ef290ec6bd5b12'
|
|
'e5e63b3c7f48238cf719e4f2ef90c1f9c5c7e8cd25eaebc9f78bdd34b24b6605'
|
|
'f720ddd24ee97c105b448323899c36bca7c63d00c2d42c4a3da70c3d157dccbb'
|
|
'31123c45b4ff9cb5fd9e01083350fea6ccaf14969013fd48e4c95fdf89e6eb4b'
|
|
'b06ee68e1305174a4f66876750f62d4048d0ebee48e15ee525961a54115ff80d'
|
|
'32144a4a5210092b0aa909f6de7a43ebe8bbf82fa3dfb1f3519787512fdf8e4b'
|
|
'044b1f7b52cc610ce57ba624111d882029b0ce4bc3e2c2c360f96d07f69e0e85'
|
|
'd3d0b0b24a3fc3e252623a6fad898c7d1d147fb8c2e49de90fbf452e95de63ab'
|
|
'70a611fd4eabde43189aee0619899827de21e36695191648dc36470d4c333de6'
|
|
'4d6eef505ec161080ca92ae6a355ca00dcc7bb05d5b190534a1851fcbb726e55'
|
|
'54271a8f0e4b52f40505f32801f4c78399ac356ed1e80906ca8a068ecb7ee734'
|
|
'aaa011682b92d8e25863a9ea34a469b897bac15ad939292d8144b012fa05b209'
|
|
'74345f9d8b77de3f1d6d08a759e52506c606e8af3d04a97a5bfe7954d0f64604'
|
|
'2ad530f92f13fc7f1100e6f6c9910878c35d911e91dc60feb902c2542b619230'
|
|
'45180488129f16a0568c217c743ce7e45831acb0cb287346d6da5b2fc097717b'
|
|
'd5e9a86946dc8dc2afabdcd00d79d973181e51b2e5e8aea2772960aaf1ff2283'
|
|
'41b894baa1487e47db5f9ec4baeea9c02b6a76d3c8198b4700a88e2cb7ec0b62'
|
|
)
|
|
|
|
package() {
|
|
if [[ "$CARCH" == aarch64 ]]; then
|
|
install -Dm755 "$srcdir/voxtype-$pkgver-cpu" "$pkgdir/usr/lib/voxtype/voxtype-cpu"
|
|
install -Dm755 "$srcdir/voxtype-$pkgver-onnx" "$pkgdir/usr/lib/voxtype/voxtype-onnx"
|
|
else
|
|
# Install Whisper CPU binaries to /usr/lib/voxtype/
|
|
install -Dm755 "$srcdir/voxtype-$pkgver-avx2" "$pkgdir/usr/lib/voxtype/voxtype-avx2"
|
|
install -Dm755 "$srcdir/voxtype-$pkgver-avx512" "$pkgdir/usr/lib/voxtype/voxtype-avx512"
|
|
|
|
# Install Whisper Vulkan GPU binary
|
|
install -Dm755 "$srcdir/voxtype-$pkgver-vulkan" "$pkgdir/usr/lib/voxtype/voxtype-vulkan"
|
|
|
|
# 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"
|
|
|
|
# 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"
|
|
fi
|
|
|
|
# /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
|
|
# and voxtype-osd-quickshell without needing them 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 -Dm755 "$srcdir/voxtype-$pkgver-osd-quickshell" "$pkgdir/usr/lib/voxtype/voxtype-osd-quickshell"
|
|
install -d "$pkgdir/usr/bin"
|
|
ln -sf /usr/lib/voxtype/voxtype-osd "$pkgdir/usr/bin/voxtype-osd"
|
|
|
|
# voxtype-audio-bridge: NDJSON sidecar that streams audio levels over a
|
|
# UNIX socket to the Quickshell OSD. Lives in /usr/bin because the
|
|
# quickshell launcher exec's it directly by basename.
|
|
install -Dm755 "$srcdir/voxtype-$pkgver-audio-bridge" "$pkgdir/usr/bin/voxtype-audio-bridge"
|
|
|
|
# Quickshell QML tree. The frontend looks for shell.qml under
|
|
# /usr/share/voxtype/quickshell/ after user/runtime paths. The
|
|
# voxtype-shared/ subdirectory holds a QML module (Theme, StateReader,
|
|
# AudioBridge) registered via qmldir — keep the layout intact or
|
|
# `import voxtype-shared 1.0` fails to resolve.
|
|
install -Dm644 "$srcdir/quickshell-shell-$pkgver.qml" \
|
|
"$pkgdir/usr/share/voxtype/quickshell/shell.qml"
|
|
install -Dm644 "$srcdir/quickshell-OsdSurface-$pkgver.qml" \
|
|
"$pkgdir/usr/share/voxtype/quickshell/OsdSurface.qml"
|
|
install -Dm644 "$srcdir/quickshell-EnginePicker-$pkgver.qml" \
|
|
"$pkgdir/usr/share/voxtype/quickshell/EnginePicker.qml"
|
|
install -Dm644 "$srcdir/quickshell-MeetingControls-$pkgver.qml" \
|
|
"$pkgdir/usr/share/voxtype/quickshell/MeetingControls.qml"
|
|
install -Dm644 "$srcdir/quickshell-voxtype-shared-Theme-$pkgver.qml" \
|
|
"$pkgdir/usr/share/voxtype/quickshell/voxtype-shared/Theme.qml"
|
|
install -Dm644 "$srcdir/quickshell-voxtype-shared-StateReader-$pkgver.qml" \
|
|
"$pkgdir/usr/share/voxtype/quickshell/voxtype-shared/StateReader.qml"
|
|
install -Dm644 "$srcdir/quickshell-voxtype-shared-AudioBridge-$pkgver.qml" \
|
|
"$pkgdir/usr/share/voxtype/quickshell/voxtype-shared/AudioBridge.qml"
|
|
install -Dm644 "$srcdir/quickshell-voxtype-shared-StyleLoader-$pkgver.qml" \
|
|
"$pkgdir/usr/share/voxtype/quickshell/voxtype-shared/StyleLoader.qml"
|
|
install -Dm644 "$srcdir/quickshell-voxtype-shared-RecipeRenderer-$pkgver.qml" \
|
|
"$pkgdir/usr/share/voxtype/quickshell/voxtype-shared/RecipeRenderer.qml"
|
|
install -Dm644 "$srcdir/quickshell-voxtype-shared-qmldir-$pkgver" \
|
|
"$pkgdir/usr/share/voxtype/quickshell/voxtype-shared/qmldir"
|
|
|
|
# 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"
|
|
|
|
# Install systemd user service
|
|
install -Dm644 "$srcdir/voxtype-$pkgver.service" "$pkgdir/usr/lib/systemd/user/voxtype.service"
|
|
|
|
# Install documentation
|
|
install -Dm644 "$srcdir/README-$pkgver.md" "$pkgdir/usr/share/doc/$pkgname/README.md"
|
|
|
|
# Install license
|
|
install -Dm644 "$srcdir/LICENSE-$pkgver" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
|
|
|
|
# Install shell completions
|
|
install -Dm644 "$srcdir/voxtype-$pkgver.bash" "$pkgdir/usr/share/bash-completion/completions/voxtype"
|
|
install -Dm644 "$srcdir/voxtype-$pkgver.zsh" "$pkgdir/usr/share/zsh/site-functions/_voxtype"
|
|
install -Dm644 "$srcdir/voxtype-$pkgver.fish" "$pkgdir/usr/share/fish/vendor_completions.d/voxtype.fish"
|
|
}
|