From fd18e61dd9c5a13581b433e8557b2d96baae211b Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sun, 16 Aug 2026 03:57:46 -0400 Subject: [PATCH] [FIX] gcc: remove the explicit jit install; libpam for shadow and util-linux Disabling libgccjit took four separate cuts, and this is the fourth. Removing the second configure pass, the pkgname entry and the _pick lines still left package_gcc() calling make -C gcc DESTDIR="$pkgdir" jit.install-common jit.install-info which fails on a library that was never built: install: cannot install libgccjit.so.0.0.1 The lesson repeats: in an Arch PKGBUILD a component is referenced in several independent places -- the pkgname array, a build block, _pick lines in package(), and explicit make targets. Removing it means finding all four, and grepping for the component name after each cut is the only way to know. shadow and util-linux both stop on a missing libpam. Same family as every host makedepend before them: invisible until a build names it, because --nodeps forbids pacman from checking. --- FR --- Desactiver libgccjit aura demande quatre coupes distinctes, et voici la quatrieme. Retirer la seconde passe de configuration, l entree de pkgname et les lignes _pick laissait encore package_gcc() appeler make -C gcc DESTDIR="$pkgdir" jit.install-common jit.install-info qui echoue sur une bibliotheque jamais batie : install: cannot install libgccjit.so.0.0.1 La lecon se repete : dans un PKGBUILD d Arch, un composant est reference en plusieurs endroits independants -- le tableau pkgname, un bloc de compilation, des lignes _pick dans package(), et des cibles make explicites. Le retirer suppose de trouver les quatre, et chercher son nom apres chaque coupe est le seul moyen de le savoir. shadow et util-linux s arretent tous deux sur un libpam absent. Meme famille que tous les makedepends d hote precedents : invisibles jusqu a ce qu une compilation les nomme, puisque --nodeps interdit a pacman de verifier. Assisted-by: Claude Opus 5 --- patches/pkgbuild/gcc.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/patches/pkgbuild/gcc.sh b/patches/pkgbuild/gcc.sh index f609691..6b03f82 100755 --- a/patches/pkgbuild/gcc.sh +++ b/patches/pkgbuild/gcc.sh @@ -153,6 +153,13 @@ s = "\n".join(l for l in s.split("\n") and "mkdir -p \"$srcdir\"/libgccjit-build" not in l) io.open("PKGBUILD", "w", encoding="utf-8").write(s) PY + # package_gcc() also installs the jit artefacts explicitly: + # make -C gcc DESTDIR="$pkgdir" jit.install-common jit.install-info + # Removing the build block and the pkgname entry was not enough -- + # this line runs in the MAIN package function and fails on a library + # that was never built: + # install: cannot install libgccjit.so.0.0.1 + sed -i '/jit\.install-common/d' PKGBUILD if grep -q 'libgccjit-build' PKGBUILD; then echo "gcc: libgccjit build block remains" >&2; exit 1 fi