distcc-avahi: /etc/conf.d/distccd uses DISTCC_ARGS but systemd unit reads DISTCC_OPTS #5

Closed
opened 2026-04-29 21:43:27 +00:00 by marfrit · 0 comments
Owner

Bug

distcc-avahi 3.4-17 (in [marfrit]) ships /etc/conf.d/distccd with DISTCC_ARGS=..., but /usr/lib/systemd/system/distccd.service reads $DISTCC_OPTS. Variable name mismatch → systemd sees empty options → distccd starts with no --allow flag (warns, falls back to --allow-private) → also fails with status=110 on the masquerade check (/usr/lib/distcc not found).

Hit on

ampere (Arch Linux ARM, RK3588), 2026-04-29, freshly enrolled as distcc worker.

Apr 29 23:40:54 ampere distccd[2848]: (dcc_warn_masquerade_whitelist) CRITICAL!
  /usr/lib/distcc not found. You must see up masquerade ...

Fix on the host (manual, before package fix)

sudo update-distcc-symlinks
sudo sed -i 's/^DISTCC_ARGS=/DISTCC_OPTS=/' /etc/conf.d/distccd
sudo systemctl reset-failed distccd
sudo systemctl restart distccd

After: distccd listens on 0.0.0.0:3632, takes jobs over avahi, no further errors.

Fix on the package side

The distcc-avahi PKGBUILD installs the conf file. Either:

  • Rename DISTCC_ARGSDISTCC_OPTS in the shipped conf file (matches the systemd unit), OR
  • Rename $DISTCC_OPTS$DISTCC_ARGS in the systemd unit (matches the conf file).

Whichever upstream uses. Plus document update-distcc-symlinks as a post-install step or run it from a hook.

Impact

Moderate — every fresh distccd enrollment hits this. Two-line fix.

Context

Discovered while adding ampere to the +zeroconf-discovered worker pool during the fourier campaign builds (vulkan-panfrost + qt6-base-fourier + chromium-fourier in flight 2026-04-29 evening). Same pattern likely present on every other host with this package — only those that haven't bothered to start distccd yet would be unaffected.

## Bug `distcc-avahi 3.4-17` (in [marfrit]) ships `/etc/conf.d/distccd` with `DISTCC_ARGS=...`, but `/usr/lib/systemd/system/distccd.service` reads `$DISTCC_OPTS`. Variable name mismatch → systemd sees empty options → distccd starts with no `--allow` flag (warns, falls back to `--allow-private`) → also fails with status=110 on the masquerade check (`/usr/lib/distcc not found`). ## Hit on ampere (Arch Linux ARM, RK3588), 2026-04-29, freshly enrolled as distcc worker. ``` Apr 29 23:40:54 ampere distccd[2848]: (dcc_warn_masquerade_whitelist) CRITICAL! /usr/lib/distcc not found. You must see up masquerade ... ``` ## Fix on the host (manual, before package fix) ``` sudo update-distcc-symlinks sudo sed -i 's/^DISTCC_ARGS=/DISTCC_OPTS=/' /etc/conf.d/distccd sudo systemctl reset-failed distccd sudo systemctl restart distccd ``` After: `distccd` listens on 0.0.0.0:3632, takes jobs over avahi, no further errors. ## Fix on the package side The `distcc-avahi` PKGBUILD installs the conf file. Either: - Rename `DISTCC_ARGS` → `DISTCC_OPTS` in the shipped conf file (matches the systemd unit), OR - Rename `$DISTCC_OPTS` → `$DISTCC_ARGS` in the systemd unit (matches the conf file). Whichever upstream uses. Plus document `update-distcc-symlinks` as a post-install step or run it from a hook. ## Impact Moderate — every fresh distccd enrollment hits this. Two-line fix. ## Context Discovered while adding ampere to the +zeroconf-discovered worker pool during the fourier campaign builds (vulkan-panfrost + qt6-base-fourier + chromium-fourier in flight 2026-04-29 evening). Same pattern likely present on every other host with this package — only those that haven't bothered to start distccd yet would be unaffected.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: marfrit/marfrit-packages#5