python-sphn
LOW
maintainer Smoolak
0 votes
scanned 2026-11-01 18:01:05.785766
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: Smoolak <smoolak@gmail.com>
2
3
pkgname=python-sphn
4
pkgver=0.2.1
5
pkgrel=1
6
pkgdesc="Rust-backed Python audio decoding, resampling and Opus streaming"
7
arch=('x86_64')
8
url="https://github.com/kyutai-labs/sphn"
9
license=('MIT OR Apache-2.0')
10
_commit=760a9464a3a2b9772e75ee11f42ac51146406dc1
11
depends=('python' 'python-numpy' 'gcc-libs' 'glibc' 'opus')
12
makedepends=('python-installer' 'python-maturin' 'rust' 'cmake' 'pkgconf')
13
checkdepends=('ffmpeg')
14
options=('!lto')
15
source=("$pkgname-$pkgver.tar.gz::$url/archive/$_commit.tar.gz"
16
'Cargo.lock')
17
sha256sums=('39439dedcc3603702c390734185b6bf3e9c041a665105fa4b04d7ea27ae3365c'
18
'a39258e1700488465fea49fd43bc1695d15c9d7d1f56227b208e29c9bd65b447')
19
20
prepare() {
21
cd "sphn-$_commit"
22
cp "$srcdir/Cargo.lock" Cargo.lock
23
cargo fetch --locked --target "$CARCH-unknown-linux-gnu"
24
}
25
26
build() {
27
cd "sphn-$_commit"
28
# The system Opus library avoids the bundled version's obsolete CMake code.
29
pkg-config --exists opus
30
maturin build --release --locked --offline --strip --compatibility linux
31
}
32
33
check() {
34
cd "sphn-$_commit"
35
python -m venv --system-site-packages --without-pip "$srcdir/check-env"
36
"$srcdir/check-env/bin/python" -m installer target/wheels/*.whl
37
mkdir -p "$srcdir/check-data"
38
cd "$srcdir/check-data"
39
ffmpeg -hide_banner -loglevel error -nostdin -y \
40
-f lavfi -i 'sine=frequency=440:sample_rate=24000:duration=1' \
41
-ac 1 -codec:a libmp3lame bria.mp3
42
"$srcdir/check-env/bin/python" "$srcdir/sphn-$_commit/test/basic.py"
43
"$srcdir/check-env/bin/python" "$srcdir/sphn-$_commit/test/stream.py"
44
}
45
46
package() {
47
cd "sphn-$_commit"
48
python -m installer --destdir="$pkgdir" target/wheels/*.whl
49
50
# Keep Maturin's SBOM references reproducible and its RECORD hashes valid.
51
python - "$pkgdir" "$srcdir/sphn-$_commit" "$url/tree/$_commit" <<'PYRECORD'
52
import base64
53
import csv
54
import hashlib
55
from pathlib import Path
56
import sys
57
import sysconfig
58
59
site = Path(sys.argv[1]) / sysconfig.get_path("purelib").lstrip("/")
60
for record in site.glob("*.dist-info/RECORD"):
61
changed = {}
62
for sbom in record.parent.glob("sboms/*.json"):
63
original = sbom.read_text()
64
rewritten = original.replace("path+file://" + sys.argv[2], sys.argv[3])
65
if rewritten == original:
66
continue
67
sbom.write_text(rewritten)
68
data = sbom.read_bytes()
69
digest = base64.urlsafe_b64encode(hashlib.sha256(data).digest()).rstrip(b"=").decode()
70
changed[str(sbom.relative_to(site))] = ["sha256=" + digest, str(len(data))]
71
if changed:
72
with record.open(newline="") as stream:
73
rows = list(csv.reader(stream))
74
for row in rows:
75
if row[0] in changed:
76
row[1:] = changed[row[0]]
77
with record.open("w", newline="") as stream:
78
csv.writer(stream, lineterminator="\n").writerows(rows)
79
PYRECORD
80
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
81
}
82
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-01 18:01:05 | Low | 1 |