openwhispr-cuda

LOW
maintainer graysky 0 votes scanned 2026-09-12 17:12:25.717441
View on AUR
Why flagged

Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.

Triggered rules

Low Few votes, recently uploaded zero_votes_recent

Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.

PKGBUILD

1# Maintainer: graysky <therealgraysky AT proton DOT me>
2# CUDA device architectures. 120a-real is Blackwell (RTX 50-series); add more
3# entries, e.g. "86-real;89-real;120a-real", to cover other cards. Leave empty
4# and ggml picks "native", which needs an NVIDIA card visible to nvcc while
5# building. CUDA 13 dropped Maxwell/Pascal/Volta, so sm_50/60/61/70 are gone.
6_cuda_arch=
7
8pkgname=openwhispr-cuda
9pkgver=1.10.0
10pkgrel=1
11pkgdesc="Voice-to-text dictation app with local Whisper/Parakeet and cloud models (NVIDIA CUDA GPU acceleration)"
12arch=('x86_64')
13url="https://github.com/OpenWhispr/openwhispr"
14license=('MIT')
15provides=('openwhispr')
16conflicts=('openwhispr' 'openwhispr-bin' 'openwhispr-appimage' 'openwhispr-vulkan')
17depends=(
18 'alsa-lib'
19 'at-spi2-core'
20 'cuda'
21 'gcc-libs'
22 'gtk3'
23 'libnotify'
24 'libsecret'
25 'libx11'
26 'libxss'
27 'libxtst'
28 'nss'
29 'nvidia-utils'
30 'xdg-utils'
31)
32makedepends=(
33 'cmake'
34 'cuda'
35)
36optdepends=(
37 'wl-clipboard: Clipboard support on Wayland'
38 'wtype: Clipboard auto-paste on wlroots Wayland'
39 'xdotool: Clipboard auto-paste on X11'
40 'ydotool: Clipboard auto-paste on Wayland'
41)
42options=('!strip' '!debug' '!lto')
43
44# Whisper.cpp fork version used by OpenWhispr
45_whisper_cpp_ver=0.0.10
46
47source=(
48 "https://github.com/OpenWhispr/openwhispr/releases/download/v${pkgver}/OpenWhispr-${pkgver}-linux-x64.tar.gz"
49 "whisper.cpp-${_whisper_cpp_ver}.tar.gz::https://github.com/OpenWhispr/whisper.cpp/archive/refs/tags/${_whisper_cpp_ver}.tar.gz"
50)
51sha256sums=('5bb5106da480bde6d867c671209ba47d3df94e97bc43115b8bdb4592e42a2a4b'
52 '9e57833a53fe706c6dca2c43417c786851f8a1af6dbe298224b2f84856b80c92')
53
54build() {
55 cd "${srcdir}/whisper.cpp-${_whisper_cpp_ver}"
56
57 local arch_opt=()
58 [[ -n ${_cuda_arch} ]] && arch_opt=(-DCMAKE_CUDA_ARCHITECTURES="${_cuda_arch}")
59
60 [[ -z ${NVCC_CCBIN} ]] && source /etc/profile
61 local host_opt=()
62 [[ -n ${NVCC_CCBIN} ]] && host_opt=(-DCMAKE_CUDA_HOST_COMPILER="${NVCC_CCBIN}")
63
64 cmake -B build \
65 -DCMAKE_BUILD_TYPE=Release \
66 -DCMAKE_INSTALL_PREFIX=/usr \
67 "${host_opt[@]}" \
68 -DGGML_CUDA=ON \
69 "${arch_opt[@]}" \
70 -DBUILD_SHARED_LIBS=OFF \
71 -DWHISPER_BUILD_EXAMPLES=ON \
72 -DWHISPER_BUILD_SERVER=ON \
73 -DWHISPER_BUILD_TESTS=OFF
74
75 cmake --build build --target whisper-server -j"$(nproc)"
76}
77
78package() {
79 local src="${srcdir}/OpenWhispr-${pkgver}-linux-x64"
80 local dst="${pkgdir}/opt/openwhispr"
81 local license_dir="${pkgdir}/usr/share/licenses/${pkgname}"
82
83 # Install official app to /opt/openwhispr
84 install -dm755 "${dst}"
85 cp -r "${src}"/* "${dst}/"
86
87 # chrome-sandbox is kept but left non-setuid: Chromium sandboxes itself via
88 # user namespaces here. If you ever restrict those, chmod 4755 it and the
89 # launcher picks it up instead of degrading to --no-sandbox.
90
91 # Set permissions
92 chmod +x "${dst}/open-whispr" "${dst}/chrome_crashpad_handler"
93 find "${dst}/resources/bin" -type f -name '*-linux-x64' -exec chmod +x {} \;
94
95 # Replace CPU whisper-server with CUDA build
96 local cuda_bin="${srcdir}/whisper.cpp-${_whisper_cpp_ver}/build/bin/whisper-server"
97 local target="${dst}/resources/bin/whisper-server-linux-x64"
98 if [ -f "${cuda_bin}" ]; then
99 install -Dm755 "${cuda_bin}" "${target}"
100 echo " -> Replaced whisper-server with CUDA GPU build"
101 else
102 echo " -> ERROR: CUDA whisper-server not found, aborting package build" >&2
103 exit 1
104 fi
105
106 # /usr/bin launcher
107 install -Dm755 /dev/stdin "${pkgdir}/usr/bin/openwhispr" <<'LAUNCHER'
108#!/bin/bash
109# The CUDA pack the app offers to download is built against CUDA 12, so on
110# Arch (CUDA 13) it dies on libcudart.so.12 and drags transcription back to
111# CPU. It also outranks the bundled binary, which is already a CUDA build, so
112# drop it on every launch; re-downloading it from the GPU card only undoes
113# this until the next start.
114_pack="${XDG_CONFIG_HOME:-$HOME/.config}/open-whispr/bin/whisper-cuda"
115[ -d "$_pack" ] && rm -rf -- "$_pack"
116# No --no-sandbox: /opt/openwhispr/open-whispr already picks a sandbox mode,
117# and Arch's unprivileged user namespaces let Chromium sandbox itself.
118exec /opt/openwhispr/open-whispr "$@"
119LAUNCHER
120
121 # .desktop file
122 install -Dm644 /dev/stdin "${pkgdir}/usr/share/applications/openwhispr.desktop" <<EOF
123[Desktop Entry]
124Name=OpenWhispr
125Comment=Voice-to-text dictation with local and cloud AI models (CUDA GPU)
126Exec=/usr/bin/openwhispr %U
127Icon=openwhispr
128Type=Application
129Categories=Utility;AudioVideo;
130StartupWMClass=open-whispr
131MimeType=x-scheme-handler/openwhispr;
132EOF
133
134 # Icon
135 install -Dm644 "${src}/resources/src/assets/icon.png" "${pkgdir}/usr/share/pixmaps/openwhispr.png"
136
137 # License
138 install -dm755 "${license_dir}"
139 cp -r "${src}"/LICENSE* "${src}"/LICENSES* "${license_dir}/" 2>/dev/null || true
140}
141

Scan history

Scanned at (UTC)SeverityRules
2026-09-12 17:12:25 Low 1

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion