p2c
- Path:
/data/INSTALL/p2c (moved 2026-07-16, see below) — was
arch/adapted/p2c, now tracked via scripts/install_only_packages
(adapted/p2c), same pattern as hxc-floppy-emulator.
- 2026-07-16: upstream fixed the underlying
gcc14 issue in the AUR package
itself. User removed arch/adapted/p2c entirely (git commit “p2c 2.02-1 is
building again upstream, removed local adaptions”) and now
builds/signs/publishes straight from a fresh AUR checkout at
/data/INSTALL/p2c instead — no local patch/workaround needed anymore. Added
adapted/p2c to scripts/install_only_packages so OVERVIEW.md keeps
tracking it.
- Version wrinkle, now live on the repo: the fresh AUR checkout is
pkgver=2.02 pkgrel=1, but this project’s now-deleted adapted/p2c fix
(below) had already published 2.02-2. The user published 2.02-1 as-is on
2026-07-16, so the repo currently serves 2.02-1 where it previously served
2.02-2 — pacman/vercmp sees this as a downgrade for anyone who already has
2.02-2 installed. See PKGREL_VS_PKGVER.md’s “pkgrel scheme for a
locally-adapted AUR package” section for the convention agreed afterward to
avoid this next time (pkgver always stays identical to upstream; a local
patch on top of upstream pkgrel=X should have used pkgrel=X.1 instead of a
plain incremented integer).
- 2026-07-15: build failure fixed and published,
pkgrel 1 -> 2. Resolved
the “needs a decision” below by testing directly rather than vendoring a
gcc14 package: extracted the source, applied the existing patches by hand,
and compiled with the current system gcc (16.1.1). Real error: parse.c
declares a local Stmt *(*prochandler)(); – an old K&R-style unprototyped
function pointer, cast from mp->handler and then called with 2 arguments –
which compiles fine under “unspecified parameters” semantics GCC used to
default to, but is a hard error under GCC’s newer default standard (gnu23,
where an empty () means (void)). This is exactly why gcc14 (the last
version before that default changed) had been pinned – same root-cause class
as notion3’s obj.c issue.
- Fix: dropped
makedepends=('gcc14') entirely (makedepends=()) and changed
both build() invocations from CC='gcc-14' to
CC='gcc' OPT='-O2 -s -std=gnu17' – forcing the older C standard restores the
semantics the code was written for, without needing the specific old compiler
package.
- Test-built clean with
extra-x86_64-build, then built+signed+ published to
the private repo (x86_64). See UPDATES.md’s 2026-07-15 entry for full
detail.
Superseded (kept for context)
- Build failure during the 2026-07-07 “build all packages for x86_64”
private-repo release pass (see
repo_release_logs/adapted_p2c.log).
makedepends (or depends) requires gcc14.
error: target not found: gcc14 – it’s not in the official Arch repos anymore
(pacman -Si gcc currently resolves to 16.1.1+r346+..., i.e. upstream Arch
has moved past versioned gcc12/gcc13/gcc14 side-install packages), and
it isn’t a custom package tracked anywhere in this arch/ tree either
(find ... -iname gcc14 finds nothing).
- This is environment drift, not a defect introduced by this release pass: the
PKGBUILD was written when Arch still shipped a
gcc14 package, and that
package has since been retired upstream with no local replacement built here
(contrast arch/adapted/gcc47, which is a locally-maintained old-GCC
package, but there’s no equivalent gcc14 in this tree).