[FIX] systemd without BPF, pacman without asciidoc

Two more documentation-and-toolchain cuts, both using the project's own switch.

systemd asked for libbpf, which this port does not package -- and packaging it
means clang and llvm, an entire second compiler toolchain for unit features
nothing here uses yet. pacman asked for asciidoc, the same Python documentation
stack already declined for doxygen, asciidoctor and a2x.

pacman is worth naming out loud: it is the package manager, so its man pages are
the ones a user reaches for first. This is the most visible of the documentation
cuts and the strongest single argument for restoring them at stage 3.

--- FR ---

Deux coupes de plus, documentation et chaîne d'outils, chacune par l'interrupteur
prévu par le projet lui-même.

systemd réclamait libbpf, que ce portage ne paquette pas — et le paqueter suppose
clang et llvm, soit une seconde chaîne de compilation entière pour des fonctions
d'unité dont rien ici ne se sert encore. pacman réclamait asciidoc, la même pile
Python déjà écartée pour doxygen, asciidoctor et a2x.

pacman mérite d'être nommé : c'est le gestionnaire de paquets, donc ses pages de
manuel sont les premières qu'un utilisateur cherche. C'est la plus visible de ces
coupes, et le meilleur argument pour les restaurer à l'étage 3.

Assisted-by: Claude Opus 5
This commit is contained in:
Mathieu Benoit 2026-08-21 21:25:20 -04:00
parent d1ac7a94f9
commit 07486af2fa
2 changed files with 52 additions and 0 deletions

View file

@ -53,3 +53,29 @@ PY
[ "$(grep -c -- '--libdir=lib' PKGBUILD)" = 1 ] || { [ "$(grep -c -- '--libdir=lib' PKGBUILD)" = 1 ] || {
echo "pacman: libdir not forced to lib exactly once" >&2; exit 1; } echo "pacman: libdir not forced to lib exactly once" >&2; exit 1; }
echo "pacman: libdir forced to /usr/lib (Debian host defaults it to multiarch)" echo "pacman: libdir forced to /usr/lib (Debian host defaults it to multiarch)"
# --- no asciidoc documentation ------------------------------------------------
#
# ERROR: Program 'asciidoc' not found or not executable
#
# pacman's man pages come from asciidoc, a Python toolchain this port declined
# along with doxygen, asciidoctor and a2x -- each of them a language runtime
# whose only job is rendering documentation. -Ddoc=disabled is meson's own
# switch.
#
# Worth noting where this one lands: pacman IS the package manager, so its man
# pages are the ones a user reaches for first. This is the most visible of the
# documentation cuts and the strongest argument for restoring them at stage 3,
# where the tools can be built against a self-hosted toolchain.
set -euo pipefail
python3 - <<'ZZPY'
import io
s = io.open("PKGBUILD", encoding="utf-8").read()
old = "-Ddoc=enabled"
assert s.count(old) == 1, "pacman: expected one doc option, got %d" % s.count(old)
s = s.replace(old, "-Ddoc=disabled", 1)
io.open("PKGBUILD", "w", encoding="utf-8").write(s)
ZZPY
grep -q -- "-Ddoc=disabled" PKGBUILD || {
echo "pacman: doc was not disabled" >&2; exit 1; }
echo "pacman: man pages disabled (no asciidoc)"

View file

@ -237,3 +237,29 @@ if left:
print("systemd: pkgname -> %s" % " ".join(names)) print("systemd: pkgname -> %s" % " ".join(names))
PYGUARD PYGUARD
echo "systemd: ukify disabled (guess_efi_arch raises on s390x), tests dropped" echo "systemd: ukify disabled (guess_efi_arch raises on s390x), tests dropped"
# --- no BPF framework ---------------------------------------------------------
#
# meson.build:1052:9: ERROR: Dependency "libbpf" not found (tried pkgconfig)
#
# libbpf is not in this port's package list, and adding it is not a small step:
# systemd's BPF programs are compiled with clang and llvm, so the dependency is
# an entire second compiler toolchain for a feature that only matters to
# systemd's own resource-control and socket-binding units.
#
# -Dbpf-framework=disabled is systemd's own switch for building without it,
# which is what every distribution that does not ship BPF-based unit features
# uses. Revisit if something on the target actually needs IPAddressAllow= or
# RestrictNetworkInterfaces=.
set -euo pipefail
python3 - <<'ZZPY'
import io
s = io.open("PKGBUILD", encoding="utf-8").read()
old = "-Dbpf-framework=enabled"
assert s.count(old) == 1, "systemd: expected one bpf-framework option, got %d" % s.count(old)
s = s.replace(old, "-Dbpf-framework=disabled", 1)
io.open("PKGBUILD", "w", encoding="utf-8").write(s)
ZZPY
grep -q -- "-Dbpf-framework=disabled" PKGBUILD || {
echo "systemd: bpf-framework was not disabled" >&2; exit 1; }
echo "systemd: BPF framework disabled (no libbpf, no clang)"