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).