Initial scaffold: README, distcc-avahi PKGBUILD, CI stub

- README documents repo layout, client setup (Arch+Debian),
  signing-key fingerprint, and infra TODOs.
- arch/distcc-avahi/: ALARM distcc PKGBUILD with --with-avahi,
  avahi dep, distccd.service + conf.d + tmpfiles.
- .gitea/workflows/build.yml: placeholder with wiring sketch
  for the real pipeline (runners, signing, scp publish).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-14 18:51:18 +00:00
parent ef84c7e527
commit 016688ded2
5 changed files with 141 additions and 0 deletions
+70
View File
@@ -0,0 +1,70 @@
# Maintainer: Markus Fritsche <mfritsche@reauktion.de>
# Based on Arch Linux ARM's distcc PKGBUILD, rebuilt with --with-avahi
# so Zeroconf-announced compile servers are discoverable on the LAN.
#
# Why this exists: the ALARM aarch64 distcc binary package is built
# without --with-avahi, so the distccd --zeroconf flag is a no-op.
# The Arch x86_64 package is fine. This package replaces distcc on
# ALARM hosts with an avahi-aware build.
pkgname=distcc-avahi
_pkgname=distcc
pkgver=3.4
pkgrel=15
pkgdesc="Distributed compilation service for C, C++ and Objective-C (with Avahi/Zeroconf support)"
arch=('x86_64' 'aarch64')
url="https://github.com/distcc/distcc"
license=('GPL-2.0-only')
depends=('popt' 'python' 'avahi')
makedepends=('autoconf' 'automake' 'libtool' 'pkgconf' 'python-setuptools')
optdepends=('gtk3: for distccmon')
provides=("distcc=${pkgver}")
conflicts=('distcc')
replaces=('distcc')
backup=('etc/conf.d/distccd')
source=(
"https://github.com/distcc/distcc/releases/download/v${pkgver}/distcc-${pkgver}.tar.gz"
"distccd.conf"
"distccd.service"
"distcc.tmpfiles"
)
sha256sums=(
'SKIP' # pin when first built in CI
'SKIP'
'SKIP'
'SKIP'
)
prepare() {
cd "${_pkgname}-${pkgver}"
autoreconf -fiv
}
build() {
cd "${_pkgname}-${pkgver}"
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--with-auth \
--with-avahi \
--without-libiberty \
--enable-rfc2553 \
--with-docdir="/usr/share/doc/${pkgname}"
make
make -C doc
}
check() {
cd "${_pkgname}-${pkgver}"
# Upstream test suite is flaky under makepkg; skip unless CHECK=1.
[ "${CHECK:-0}" = "1" ] && make check || true
}
package() {
cd "${_pkgname}-${pkgver}"
make DESTDIR="${pkgdir}" prefix=/usr install
install -Dm644 ../distccd.conf "${pkgdir}/etc/conf.d/distccd"
install -Dm644 ../distccd.service "${pkgdir}/usr/lib/systemd/system/distccd.service"
install -Dm644 ../distcc.tmpfiles "${pkgdir}/usr/lib/tmpfiles.d/distcc.conf"
}
+1
View File
@@ -0,0 +1 @@
d /var/log/distcc 0755 nobody nobody -
+5
View File
@@ -0,0 +1,5 @@
# Configuration for distccd.service
#
# --allow lists are whitespace-separated CIDR blocks. At minimum,
# allow our LAN and VPN:
DISTCC_OPTS="--allow 192.168.88.0/24 --allow 10.170.16.0/24 --zeroconf --jobs 16 --nice 5 --log-level info --log-stderr"
+15
View File
@@ -0,0 +1,15 @@
[Unit]
Description=distcc compile server (Zeroconf-announced)
After=network-online.target avahi-daemon.service
Wants=network-online.target avahi-daemon.service
[Service]
Type=simple
EnvironmentFile=/etc/conf.d/distccd
User=nobody
Group=nobody
ExecStart=/usr/bin/distccd --no-detach --daemon $DISTCC_OPTS
Restart=on-failure
[Install]
WantedBy=multi-user.target