Stock distcc and earlier distcc-avahi releases ship /etc/conf.d/distccd
with DISTCC_ARGS=, while our distccd.service reads $DISTCC_OPTS. On
hosts that had stock distcc installed first, pacman keeps the existing
conf file (it's marked backup=) so the rename never happens — distccd
starts with empty options, falls back to --allow-private, and warns
about missing /usr/lib/distcc masquerade dir.
Add a post_install/post_upgrade .install hook that:
- detects DISTCC_ARGS= in /etc/conf.d/distccd and renames to DISTCC_OPTS=
(keeping a timestamped backup beside it)
- runs update-distcc-symlinks if /usr/lib/distcc is unpopulated
- prompts the operator to restart distccd if it's already active
Bumps pkgrel to 18.
Hit on ampere 2026-04-29 during fourier-campaign distcc enrollment;
likely lurking on every host with stock-distcc legacy state.
pkgrel 16 builds ship an upstream distcc 3.4 bug: src/compile.c sizes
the rewritten-compiler-name buffer with strlen(argv[0] + 1) — pointer
arithmetic applied before strlen — under-allocating by 2 bytes. glibc
FORTIFY_SOURCE=2 catches the resulting overflow in strcat and aborts,
so every "distcc gcc ..." invocation dies on a modern Arch.
Patch moves the +1 outside the strlen, as intended.
Closesmarfrit/marfrit-packages#3.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Fixes install conflict with filesystem pkg on merged-usr systems where
/usr/sbin is a symlink to /usr/bin.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- distcc-3.4 tarball hash + local support files hashed (no more SKIP)
- .gitea/workflows/build.yml now builds, signs, repo-adds and rsyncs
to nc via the marfrit-repo-deploy key. Triggers on push to arch/**
or manual workflow_dispatch.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>