mod_fcgid
- Path:
/data/INSTALL/mod_fcgid(plain, non-submodule git checkout; listed inscripts/install_only_packagesaslocal-install/mod_fcgid– not tracked underarch/at all, see the 2026-08-30 entries below for the two wrong categories it passed through first). Originally vendored from AUR 2026-08-02 to unblock thruk, along with perl-plack/perl-log-dispatch. - 2026-08-02: added as a submodule from AUR. Build fails at source
download/verify:
mod_fcgid-2.3.9.tar.bz2 ... FAILED (unknown public key EC582EB639FF092C)– Jeff Trawick’s Apache signing key isn’t in the build chroot’s GPG trust store. - Investigated the
keys/pgp/<fingerprint>.ascconvention used elsewhere in this tree (e.g.fcitx,kscreenlocker5) – confirmed by reading/usr/share/makepkg: that directory is only consumed bymakepkg --sourceto embed keys in a srcpkg tarball for downstream reproducibility (seemakepkg’screate_srcpackage, ~line 836). It is not auto-imported into the GPG homedir used forcheck_pgpsigs()verification – added the correct key there anyway (viascripts/update_pgp_key_dir.sh’s samegpg --export-equivalent approach, fetched from keyserver.ubuntu.com since AUR’s own git-ssh was down) but it made no difference, confirming this theory. - The actual GPG homedir used during a real build lives inside the ephemeral
per-build chroot copy (rsync’d fresh from
/var/lib/archbuild/archlinuxaba-x86_64/rooton every invocation), under the dynamically-createdbuilduser’s~/.gnupg– there is no stable, persistent location to pre-seed a trusted key without modifying the shared chroot root filesystem itself (a higher-risk, cross-package change, not something to do for one package’s sake).--skippgpcheckisn’t used for real builds in this project’s convention (only for--nobuildconfig-reconciliation runs like linux-lts515’supdate.sh), so that’s not an option either. - Not fixed (as of 2026-08-02). Whoever picks this up next needs to either seed
the shared chroot’s keyring properly (a
scripts/change, benefits every future PGP-signed package) or find another sanctioned way to trust this specific key.
2026-08-30: resolved – built and published cleanly on x86_64
Re-vendored fresh from AUR (the whole package had been removed from
arch/maintained/ at some point between 2026-08-02 and now, along with
perl-plack/perl-log-dispatch – no longer needed as separate vendored
packages since Arch’s own repos absorbed both since the first attempt).
Confirmed via pacman -Si that only mod_fcgid and perl-crypt-rijndael still
needed AUR vendoring out of thruk’s 18 declared dependencies – see
memory/thruk.md.
Before rebuilding, re-read /usr/share/makepkg/integrity/verify_signature.sh to
double check the 2026-08-02 finding that makepkg never auto-fetches a missing
validpgpkeys entry (confirmed still true – it’s a plain gpg --verify against
whatever’s already in the keyring, hard error otherwise, no keyserver fallback
anywhere in that code path). Manually confirmed the key
(5B5181C2C0AB13E59DA3F7A3EC582EB639FF092C) is fetchable from
hkps://keyserver.ubuntu.com today (unlike hkps://keys.openpgp.org, which
still has no data for it) via a plain gpg --recv-keys on the host (build
user, euronuc) as part of this investigation.
Then just ran the real build (repo_release.sh) to get a current verdict rather
than theorizing further – it passed: the log shows a genuine
mod_fcgid-2.3.9.tar.bz2 ... Passed under “Verifying source file signatures
with gpg”, not a skip. Built, signed, and published (mod_fcgid +
mod_fcgid-debug, x86_64) with no PGP error at all.
Root cause of the original failure vs. this success is still not fully pinned
down – the earlier investigation’s claim that the chroot’s ephemeral build-user
keyring is fully isolated from the host’s may be incomplete (no /home bind
mount or persistent .gnupg was found in the base chroot template on
inspection), or the determining factor may simply be that the host’s own build
user keyring already had this key from the gpg --recv-keys done moments before
this rebuild, and that does somehow reach the chroot. Either way: if a
validpgpkeys-related build failure recurs on any package, try a plain
gpg --recv-keys <fingerprint> as the build user on euronuc (host, not inside
any chroot) before assuming a deeper infrastructure fix is needed – that alone
may be sufficient, as it was here.
2026-08-30: moved maintained/ -> adapted/ (wrong category at add time)
Vendored via scripts/add_maintained.sh, which is hardcoded to always add under
maintained/ – but this project’s maintained/ means we are the AUR
maintainer (or at least co-maintainer) of that package, and neither is true
here: AUR shows mod_fcgid’s maintainer as sergej, last packager arojas, no
mention of andreas_baumann anywhere (checked the actual package HTML page, not
just RPC’s Maintainer field, which only ever shows the primary maintainer and
would miss co-maintainer status too – see e.g. pacman-static’s page showing
Morganamilo (andreas_baumann), the parenthetical being AUR’s co-maintainer
notation). Since we have no push access and are just tracking sergej’s current
AUR PKGBUILD as-is to unblock thruk, adapted/ is the correct category
(wrong – see the next entry).
git mv maintained/mod_fcgid adapted/mod_fcgid (submodule path + .gitmodules
section name both updated) – no rebuild needed, the private repo publish itself
doesn’t care which local category directory a package lives under. See
memory/TOOLING_NOTES.md for the scripts/add_*.sh fix that should prevent the
maintainer-check part of this going forward.
2026-08-30: adapted/ was also wrong – moved to local-install/
Two things caught this, both from the user directly: (1) adapted/ packages are
never git submodules – confirmed against memory/private_repo_publish_scope.md:
“private/ is a mix: some… are submodules, others… are tracked directly… same as
all of adapted/”. (2) More fundamentally, adapted/ is specifically for a
package with a real local diff on top of upstream – every entry in
arch/adapted/README.md names one. I’d claimed mod_fcgid “now genuinely
qualifies… it has the real strcasecmp patch” – false, that patch was for
cssh (a completely different package this same session), not mod_fcgid.
Actually diffed arch/adapted/mod_fcgid’s PKGBUILD against a live fetch of
AUR’s current mod_fcgid PKGBUILD: zero differences. The GPG-key fix earlier
this session was entirely external (gpg --recv-keys on the host, see the entry
above) and never touched the PKGBUILD at all.
So: deinit’d and removed the submodule entirely (git submodule deinit -f +
git rm -f + stripped the .gitmodules section – the
.git/modules/maintained/mod_fcgid internal storage was still nested under the
old pre-move path since git mv doesn’t relocate that, which made a first
deinit attempt warn/fail to unset core.worktree; harmless, git rm still
cleaned the index fine afterward). /data/INSTALL/mod_fcgid (from the original
build) became its only home, added to scripts/install_only_packages as
local-install/mod_fcgid.
Found something while doing this: /data/INSTALL/mod_fcgid wasn’t a fresh
checkout – it already existed from the user’s own prior work, with a
local-only commit from 2026-08-05 (“updated local PGP key”) that bumped pkgrel
5 -> 6 and added keys/pgp/5B5181C2C0AB13E59DA3F7A3EC582EB639FF092C.asc – the
exact same key fingerprint identified independently this session. Never pushed
(no push access upstream anyway; live AUR is still pkgrel=5). This session’s
repo_build_staged.sh run rsync’d the pristine pkgrel=5 PKGBUILD from
arch/ over this checkout’s working tree, so the file now reads pkgrel=5
again while commit 28b2889 (the pkgrel=6 bump) still sits in the local git
history, unreferenced by the working tree.
2026-08-30: revived pkgrel=6 – this is a real local deviation, belongs in adapted/ after all
User chose to revive 28b2889 rather than leave it orphaned, and pointed out
the obvious consequence: a vendored PGP key + pkgrel bump is a genuine local
difference from upstream’s pkgrel=5 PKGBUILD – exactly the kind of thing
adapted/ is for, unlike the zero-diff case that sent this package to
local-install/ in the first place. diff between git show 28b2889:PKGBUILD
and the pristine pkgrel=5 version confirmed the only changes are the
pkgrel line and the new key file – no other content touched (the 2026-08-05
build logs already sitting in /data/INSTALL/mod_fcgid showed that pkgrel=6
attempt had compiled and packaged successfully at the time, good sign it’d work
again).
Extracted the pkgrel=6 PKGBUILD + keys/pgp/*.asc from that commit (not by
git checkout-ing the /data/INSTALL working tree in place – that directory
stays a separate build-staging copy, not the source of truth) into a fresh
plain, directly-tracked arch/adapted/mod_fcgid/ (PKGBUILD, the two
upstream patches, keys/pgp/5B5181...asc, regenerated .SRCINFO – git add
shows individual file adds, confirming no submodule got created this time).
Added an arch/adapted/README entry. Removed the local-install/mod_fcgid line
from scripts/install_only_packages (has a real arch/ PKGBUILD again;
perl-crypt-rijndael stays there, it’s still a genuine zero-diff case).
Built and published cleanly on x86_64 at 2.3.9-6 – no PGP failure, no
connection issues. Confirmed via repo_arch_status.sh:
x86_64 euronuc published (2.3.9-6).