whisrs-cuda
LOW
maintainer graysky
0 votes
base
whisrs
scanned 2026-10-08 20:09:40.002650
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 <graysky AT proton DOT me>
2
# Contributor: y0sif <https://github.com/y0sif>
3
4
# CUDA device architectures. 120a-real is Blackwell (RTX 50-series); add more
5
# entries, e.g. "86-real;89-real;120a-real", to cover other cards. Leave empty
6
# and ggml picks "native", which needs an NVIDIA card visible to nvcc while
7
# building. CUDA 13 dropped Maxwell/Pascal/Volta, so sm_50/60/61/70 are gone.
8
_cuda_arch=
9
10
pkgbase=whisrs
11
pkgname=(whisrs whisrs-cuda whisrs-vulkan)
12
pkgver=0.1.29
13
pkgrel=1
14
pkgdesc='Linux-first voice-to-text dictation tool, written in Rust'
15
arch=(x86_64)
16
url='https://github.com/y0sif/whisrs'
17
license=(MIT)
18
depends=(gcc-libs alsa-lib libxkbcommon)
19
makedepends=(cargo clang cmake cuda vulkan-headers vulkan-icd-loader shaderc)
20
options=('!lto')
21
source=("$pkgbase-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz"
22
)
23
sha256sums=('2b1dd2849f21a04e1b5e719702731a6e76049fefb68f77f2a55f947e7fea8d53')
24
25
prepare() {
26
cd $pkgbase-$pkgver
27
28
export RUSTUP_TOOLCHAIN=stable
29
cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
30
}
31
32
_cuda_env() {
33
# makepkg doesn't source profile.d, so nvcc and the host compiler cuda pins
34
# (NVCC_CCBIN) aren't visible without this.
35
# cuda.sh calls append_path, which only /etc/profile defines.
36
append_path() { [[ ":$PATH:" == *":$1:"* ]] || PATH="${PATH:+$PATH:}$1"; }
37
[[ -r /etc/profile.d/cuda.sh ]] && source /etc/profile.d/cuda.sh
38
unset -f append_path
39
export CUDA_PATH=/opt/cuda
40
export PATH="/opt/cuda/bin:$PATH"
41
# whisper-rs-sys forwards CMAKE_* env vars to cmake.
42
if [[ -n ${_cuda_arch} ]]; then
43
export CMAKE_CUDA_ARCHITECTURES="${_cuda_arch}"
44
fi
45
# makepkg's CFLAGS/CXXFLAGS never reach nvcc's host compiler, so the .cu
46
# host code needs its hardening here. This replaces whisper-rs-sys's own
47
# value, so -fPIC must stay. No commas inside a flag: -Xcompiler splits on them.
48
export CMAKE_CUDA_FLAGS="-Xcompiler=-fPIC,-fstack-protector-strong,-fstack-clash-protection,-fcf-protection,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3"
49
}
50
51
build() {
52
cd $pkgbase-$pkgver
53
export RUSTUP_TOOLCHAIN=stable
54
55
# One target dir per flavor: the GPU backend is a compile-time feature of
56
# the bundled whisper.cpp, so each needs its own build of it.
57
CARGO_TARGET_DIR=target-cpu cargo build --frozen --release
58
(_cuda_env; CARGO_TARGET_DIR=target-cuda cargo build --frozen --release --features cuda)
59
CARGO_TARGET_DIR=target-vulkan cargo build --frozen --release --features vulkan
60
}
61
62
_package() {
63
cd $pkgbase-$pkgver
64
65
install -Dm755 target-$1/release/whisrs "$pkgdir/usr/bin/whisrs"
66
install -Dm755 target-$1/release/whisrsd "$pkgdir/usr/bin/whisrsd"
67
68
install -Dm644 contrib/whisrs.1 "$pkgdir/usr/share/man/man1/whisrs.1"
69
install -Dm644 contrib/whisrsd.1 "$pkgdir/usr/share/man/man1/whisrsd.1"
70
71
install -Dm644 contrib/99-whisrs.rules "$pkgdir/usr/lib/udev/rules.d/99-whisrs.rules"
72
install -Dm644 contrib/whisrs.service "$pkgdir/usr/lib/systemd/user/whisrs.service"
73
74
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
75
}
76
77
package_whisrs() {
78
pkgdesc+=' (CPU)'
79
conflicts=('whisrs-git')
80
_package cpu
81
}
82
83
package_whisrs-cuda() {
84
pkgdesc+=' (NVIDIA CUDA)'
85
depends+=('cuda' 'nvidia-utils')
86
provides=('whisrs')
87
conflicts=('whisrs' 'whisrs-git')
88
_package cuda
89
}
90
91
package_whisrs-vulkan() {
92
pkgdesc+=' (Vulkan)'
93
depends+=('vulkan-icd-loader' 'vulkan-driver')
94
provides=('whisrs')
95
conflicts=('whisrs' 'whisrs-git')
96
_package vulkan
97
}
98
Changes since previous scan
--- PKGBUILD @ 2026-10-06 00:13+++ PKGBUILD @ 2026-10-08 20:09@@ -9,7 +9,7 @@ pkgbase=whisrs pkgname=(whisrs whisrs-cuda whisrs-vulkan)-pkgver=0.1.28+pkgver=0.1.29 pkgrel=1 pkgdesc='Linux-first voice-to-text dictation tool, written in Rust' arch=(x86_64)@@ -19,13 +19,12 @@ makedepends=(cargo clang cmake cuda vulkan-headers vulkan-icd-loader shaderc) options=('!lto') source=("$pkgbase-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz"- 0001-feat-hotkey-allow-bare-ScrollLock-Pause-and-F13-F24-.patch::https://patch-diff.githubusercontent.com/raw/y0sif/whisrs/pull/180.patch)-sha256sums=('52c0cb061148e7647c6909a8240489e8f7d9657540519c182ed66d0b6944816b'- 'f593395f79f58dd75b82a255634f7cb27bb0866bf045ffc653dfd906f2d52647')+)+sha256sums=('2b1dd2849f21a04e1b5e719702731a6e76049fefb68f77f2a55f947e7fea8d53') prepare() { cd $pkgbase-$pkgver- patch -p1 -i ../0001-feat-hotkey-allow-bare-ScrollLock-Pause-and-F13-F24-.patch+ export RUSTUP_TOOLCHAIN=stable cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')" }@@ -40,7 +39,13 @@ export CUDA_PATH=/opt/cuda export PATH="/opt/cuda/bin:$PATH" # whisper-rs-sys forwards CMAKE_* env vars to cmake.- [[ -n ${_cuda_arch} ]] && export CMAKE_CUDA_ARCHITECTURES="${_cuda_arch}"+ if [[ -n ${_cuda_arch} ]]; then+ export CMAKE_CUDA_ARCHITECTURES="${_cuda_arch}"+ fi+ # makepkg's CFLAGS/CXXFLAGS never reach nvcc's host compiler, so the .cu+ # host code needs its hardening here. This replaces whisper-rs-sys's own+ # value, so -fPIC must stay. No commas inside a flag: -Xcompiler splits on them.+ export CMAKE_CUDA_FLAGS="-Xcompiler=-fPIC,-fstack-protector-strong,-fstack-clash-protection,-fcf-protection,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3" } build() {@@ -52,12 +57,6 @@ CARGO_TARGET_DIR=target-cpu cargo build --frozen --release (_cuda_env; CARGO_TARGET_DIR=target-cuda cargo build --frozen --release --features cuda) CARGO_TARGET_DIR=target-vulkan cargo build --frozen --release --features vulkan-}--check() {- cd $pkgbase-$pkgver- export RUSTUP_TOOLCHAIN=stable- CARGO_TARGET_DIR=target-cpu cargo test --frozen --release } _package() {Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-10-08 20:09:40 | Low | 1 |
| 2026-10-06 00:13:36 | Clean | 2 |
| 2026-10-05 23:40:58 | Low | 1 |