Five distro recipes in packaging/, all following the same recipe: unpack the Gitea release archive (which extracts to fastwc/), run autoreconf -fi (the generated configure/Makefile.in are not committed), configure, make, make install - the binary needs only glibc. Each recipe notes the release prerequisite: the archive URL requires a v0.1.0 tag on the remote, and Arch/Nix/Void carry an integrity placeholder to fill in once the tag exists. The PKGBUILD was validated with makepkg --printsrcinfo, and the full build recipe was run end-to-end from a Gitea-layout tarball (autoreconf, configure, make, make install DESTDIR) producing a working /usr/bin/fastwc.
Packaging
Build recipes for the distributions that matter. Each one follows the
same recipe: unpack the release archive, regenerate the autotools
files (autoreconf -fi — the generated configure/Makefile.in are
not committed), configure, make, make install. The binary is a
single static-ish ELF that only needs glibc.
| Distro | File | Tooling |
|---|---|---|
| Arch | arch/PKGBUILD |
makepkg |
| Gentoo | gentoo/app-misc/fastwc/fastwc-0.1.0.ebuild |
ebuild / emerge (drop into a local repo or app-portage/eselect-repository) |
| NixOS | nix/default.nix |
nix build -f default.nix (or a callPackage from a nixpkgs overlay) |
| Void | void/template |
xbps-src pkg fastwc (in a void-packages checkout: cp -r ../fastwc/packaging/void srcpkgs/fastwc) |
| Fedora | fedora/fastwc.spec |
rpmbuild -ba fastwc.spec (or fedpkg/mock) |
Before the first build
Each recipe points at the Gitea release archive
https://git.spectoria.dev/huntedbytheirs/fastwc/archive/v0.1.0.tar.gz,
which does not exist until a v0.1.0 tag is pushed:
git tag -a v0.1.0 -m "fastwc 0.1.0"
git push origin v0.1.0
Then fill in the integrity placeholders each distro demands:
- Arch: replace
sha256sums=('SKIP')with the hashmakepkgreports on the first attempt. - NixOS:
lib.fakeHashmakes the first build fail with the real hash — paste it in. - Void: replace
checksum=SKIPwith the sha256xbps-srcwants (it will refuse to build until then). - Gentoo / Fedora: hashes live outside the recipe (the
Manifestfile / source RPM metadata), so nothing to fill in here.
Notes
- Gitea archive layout: these archives extract to a top-level
directory named after the repo (
fastwc/, no version suffix), which is why the recipescd fastwc, setS="${WORKDIR}/fastwc", or use%autosetup -n fastwc. If a future host renames the layout, adjust those three spots. - Architecture: the SIMD kernels dispatch AVX-512/AVX-2/SSE2 at
runtime with a scalar fallback, so the code builds anywhere — the
recipes currently declare
x86_64because that is what the benchmark contract is validated on. Loosen if you build elsewhere. -pthreadis inAM_CFLAGS; glibc >= 2.34 provides pthreads in libc, so there is no separate runtime dependency.- The
fastwcbinary installs to$(bindir)/fastwcand does not shadowwc— nothing conflicts with coreutils.