+ notes: 'PR #2166 opened (draft); pr-checks (check_commit_messages, check_patches, check_packages_yaml) and the setup job green, build_wheels still queued on the riscv64 pool after 3h05m of wait (run 35596175494, job 106321425371, timeout 720m), so the build outlives this session - same state simpleitk/PR #2146 was left in. Folded as gotcha 510 (compiled-vs-pure-detection.md). 2 Linux wheels upstream (abi: py3); no riscv64 on PyPI or pypi.riseproject.dev. Triaged for the Kaldi-scale fear first and it is NOT the chdb/tensorflow class. (1) SHAPE. Gotcha 81/398: every upstream wheel is py3-none-<platform> and holds a real 26MB libvosk.so, opened by cffi in ABI mode (vosk_builder.py does ffibuilder.set_source(..., None), __init__.py does _ffi.dlopen(.../libvosk.so)); no PyInit_*, no extension module, so one build serves every interpreter - a single job, no cp3XX matrix. Sizes diverge per platform (7.2MB x86_64 / 2.4MB aarch64 / 14MB win), which is gotcha 81''s tell for real per-platform content. (2) NO ARCHITECTURAL BLOCKER. src/Makefile''s defaults are already the CPU-only config: HAVE_OPENBLAS_CLAPACK=1, HAVE_MKL=0, HAVE_CUDA=0, HAVE_ACCELERATE=0, and the CUDA batch_recognizer/batch_model TUs are only added under HAVE_CUDA=1. Upstream already names riscv64: travis/build-wheels-dockcross.sh has a *riscv64-*) case setting VOSK_MACHINE=riscv64, and alphacep/kaldi branch vosk ships src/makefiles/linux_openblas_riscv64.mk wired into configure at two call sites (OPENBLAS and OPENBLAS_CLAPACK), selected off uname -m on a native build. OpenBLAS 0.3.20 (the version upstream pins) lists RISCV64_GENERIC in TargetList.txt - plain C kernels, no RVV, so gotchas 272/279 do not bite; C910V is the RVV-0.7.1 one and is not used. No vendored binary blob anywhere: kaldi, OpenFST (alphacep fork), CLAPACK and OpenBLAS are all built from source in-container. No x86 intrinsics either - grep for immintrin/xmmintrin/__SSE/_mm_/__x86_64__ across the 19 kaldi dirs the build touches returns nothing; the x86 Dockerfile''s only ISA line is a no-op sed ''s:-msse -msse2:-msse -msse2:''. (3) SCALE IS ORDINARY, NOT VTK-CLASS. TU census for make online2 lm rnnlm: 212 non-test .cc across base/matrix/util/feat/tree/gmm/transform/hmm/lat/lm/rnnlm/decoder/ivector/nnet3/chain/cudamatrix/fstext/online2, ~150 OpenFST library TUs (--disable-bin drops the binaries), ~2600 tiny f2c''d CLAPACK C files and OpenBLAS''s ONLY_CBLAS=1 set - so ~4000 edges of which the large majority are trivial C, against VTK''s 12192 (measured 5095 edges in 7.5h on this fleet) and chdb''s ~4900 V8-class C++. Upstream has no GitHub Actions CI to time, but their whole manylinux image + wheel is one Dockerfile they run by hand. (4) LOCAL VALIDATION. Wheel-tag path rehearsed on x86 with setuptools 84 / wheel 0.48: setup.py''s bdist_wheel_tag_name still imports and produces vosk-0.3.45-py3-none-linux_riscv64.whl (VOSK_MACHINE=riscv64), containing vosk/libvosk.so + vosk/vosk_cffi.py, and auditwheel repair of that py3-none wheel works and keeps the py3-none halves. Also confirmed upstream''s released x86_64 wheel has no .libs/ dir: everything but libstdc++ is static and libstdc++/libgcc_s are manylinux-whitelisted, so nothing is vendored and no gpl_sources job is right (the build step asserts no vosk.libs/ appears). Deviations from upstream, all one-liners: native manylinux riscv64 image instead of dockcross (no riscv64 dockcross image), TARGET=RISCV64_GENERIC, the three branch-head clones pinned to commits, -DCMAKE_POLICY_VERSION_MINIMUM=3.5 for CLAPACK''s cmake_minimum_required(VERSION 2.6) against the image''s CMake 4.4, and staging LICENSE/LICENSE.kaldi/.openfst/.openblas/.clapack into python/ so setuptools'' default glob ships them (upstream''s wheels carry no licence text at all). Test is upstream''s own example: decode python/example/test.wav with vosk-model-small-en-us-0.15 on cp312/cp313/cp314/cp314t (x86 reference transcript: "one zero zero zero one nine oh two i no zero one eight zero three", 15 timed words). Worktree .claude/worktrees/vosk, branch vosk. Next step: read job 106321425371 of run 35596175494 - the first ~20min of it (dnf, the four clones, OpenBLAS RISCV64_GENERIC) is where an arch problem would show, then Kaldi''s 212 TUs, then the wheel/auditwheel/test steps.'
0 commit comments