feat(void): add xbps templates for pynput and updated PyAudio

Ticket: #25

Two in-repo void-packages-layout templates under packaging/void/srcpkgs:
python3-pynput 1.8.2 (new; Void does not ship it) and python3-PyAudio
0.2.14 (updated local template; Void ships 0.2.12, below the project's
pyaudio>=0.2.13 floor). Versions and checksums track uv.lock and
requirements/runtime.txt; pynput post_patch strips setup_requires so the
build never fetches helpers over the network (setuptools-lint and twine
are not in void-packages). No noverifypydeps/nopyprovides anywhere.

Adds tests/test_void_small_deps.py (offline policy test): template
layout and metadata shape, lock/export/floor pins, checksum pins,
no verification-disabling options, linux dep coverage, verified-only
dependency names, and the digest-pinned base image in
packaging/void/tool_checksums.txt.

Verified: xlint clean on both templates; both packages build with
xbps-src in the pinned ghcr.io/void-linux/void-glibc-full container
(podman) and install in a fresh container with pyaudio 0.2.14
importing against PortAudio V19.6.0.
This commit is contained in:
soubarnak
2026-11-05 23:09:16 +05:30
parent 0a4d637f5f
commit c462ffb4b2
4 changed files with 338 additions and 0 deletions
@@ -0,0 +1,19 @@
# Template file for 'python3-PyAudio'
pkgname=python3-PyAudio
version=0.2.14
revision=1
build_style=python3-module
hostmakedepends="python3-setuptools"
makedepends="python3-devel portaudio-devel"
depends="python3"
short_desc="Python3 Bindings for PortAudio, a cross-platform audio IO library"
maintainer="Jatin K Malik <jatinkrmalik@gmail.com>"
license="MIT"
homepage="https://people.csail.mit.edu/hubert/pyaudio/"
distfiles="${PYPI_SITE}/P/PyAudio/PyAudio-${version}.tar.gz"
checksum=78dfff3879b4994d1f4fc6485646a57755c6ee3c19647a491f790a0895bd2f87
post_install() {
sed -n '/Copyright/,/SOFTWARE\./p'< README.md > LICENSE
vlicense LICENSE
}
@@ -0,0 +1,20 @@
# Template file for 'python3-pynput'
pkgname=python3-pynput
version=1.8.2
revision=1
build_style=python3-module
hostmakedepends="python3-setuptools"
depends="python3-evdev python3-six python3-xlib"
short_desc="Monitor and control user input devices"
maintainer="Jatin K Malik <jatinkrmalik@gmail.com>"
license="LGPL-3.0-or-later"
homepage="https://github.com/moses-palmer/pynput"
changelog="https://github.com/moses-palmer/pynput/raw/master/CHANGES.rst"
distfiles="${PYPI_SITE}/p/pynput/pynput-${version}.tar.gz"
checksum=f493c87157cd3861b4468f7f896857051762f44ed26f1b641e7cc5840a457087
post_patch() {
# setup_requires would make setuptools fetch helpers over the network;
# none of them are needed to build, and some are not in void-packages.
vsed -e "/setup_requires/d" -i setup.py
}
+16
View File
@@ -0,0 +1,16 @@
# Pinned build inputs for packaging/void (ticket #25: small Python dependency templates).
#
# Same contract as packaging/appimage/tool_checksums.txt and
# packaging/native/tool_checksums.txt: everything the template builds verify
# against is pinned here, so two builds of the same commit cannot differ.
#
# Columns: name, kind, value, source — parseable by awk.
#
# docker build inside image <value>; <source> records the tag it came from
#
# To bump the base image: replace the digest in <value> with the index digest
# from `podman manifest inspect ghcr.io/void-linux/void-glibc-full:latest`
# (use the index digest, not a per-architecture one — the same line has to
# work on x86_64 and aarch64).
base-image docker ghcr.io/void-linux/void-glibc-full@sha256:e98f8cdde9e6ca85f8542fad5cdd06032a05dca3bf2b81757949bb24d67afa37 latest