openwhispr-cuda
LOW
maintainer graysky
0 votes
scanned 2026-09-12 17:12:25.717441
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
8
pkgname=openwhispr-cuda
9
pkgver=1.10.0
10
pkgrel=1
11
pkgdesc="Voice-to-text dictation app with local Whisper/Parakeet and cloud models (NVIDIA CUDA GPU acceleration)"
12
arch=('x86_64')
13
url="https://github.com/OpenWhispr/openwhispr"
14
license=('MIT')
15
provides=('openwhispr')
16
conflicts=('openwhispr' 'openwhispr-bin' 'openwhispr-appimage' 'openwhispr-vulkan')
17
depends=(
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
)
32
makedepends=(
33
'cmake'
34
'cuda'
35
)
36
optdepends=(
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
)
42
options=('!strip' '!debug' '!lto')
43
44
# Whisper.cpp fork version used by OpenWhispr
45
_whisper_cpp_ver=0.0.10
46
47
source=(
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
)
51
sha256sums=('5bb5106da480bde6d867c671209ba47d3df94e97bc43115b8bdb4592e42a2a4b'
52
'9e57833a53fe706c6dca2c43417c786851f8a1af6dbe298224b2f84856b80c92')
53
54
build() {
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
78
package() {
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.
118
exec /opt/openwhispr/open-whispr "$@"
119
LAUNCHER
120
121
# .desktop file
122
install -Dm644 /dev/stdin "${pkgdir}/usr/share/applications/openwhispr.desktop" <<EOF
123
[Desktop Entry]
124
Name=OpenWhispr
125
Comment=Voice-to-text dictation with local and cloud AI models (CUDA GPU)
126
Exec=/usr/bin/openwhispr %U
127
Icon=openwhispr
128
Type=Application
129
Categories=Utility;AudioVideo;
130
StartupWMClass=open-whispr
131
MimeType=x-scheme-handler/openwhispr;
132
EOF
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) | Severity | Rules |
|---|---|---|
| 2026-09-12 17:12:25 | Low | 1 |