cyrus-imapd2
- Path: arch/adapted/cyrus-imapd2
- 2026-07-15: build failure fixed and published,
pkgrel 2.0 -> 2.1.
Superseded the speculation below – root cause fully diagnosed:
build() hardcoded CC=clang, but clang was never declared in
makedepends (there was no makedepends array at all), so any clean
chroot without clang installed by coincidence fails immediately at
configure’s first compiler check. Investigated why clang was
chosen rather than just adding it as a dependency: with plain gcc,
configure succeeds but make hits a real error –
imap/mboxlist.h:208 declares mboxlist_findall’s callback
parameter as an old K&R-style unprototyped int (*proc)(), and
imap/mailbox.c calls it with the real, typed chkchildren
function. clang has always tolerated that; current GCC’s default
standard (gnu23) now rejects it as a hard
incompatible-pointer-types error. Almost certainly the actual
(undocumented) reason clang was pinned years ago – just never
declared as a build dependency, so it broke silently the moment a
chroot didn’t already happen to have clang installed.
Fix: dropped CC=clang, switched to CC=gcc with -std=gnu17 in
CFLAGS. See UPDATES.md’s 2026-07-15 entry for full detail.
- Known, not-yet-fixed issue:
depends=() (cyrus-sasl, db,
libsasl, perl) is missing jansson. namcap flags this as a
real E: (not just a W: “implicitly satisfied”) –
usr/lib/libcyrus_imap.so.0.0.0 links against libjansson.so.4,
and nothing else already in depends=() pulls jansson in
transitively, so a fresh install could end up missing
libjansson.so.4 at runtime. Found while fixing the build failure
above; left alone since it’s a separate, pre-existing gap from what
was asked at the time. Next time this package is touched, add
jansson to depends=() and bump pkgrel (packaging-only fix).
- One unrelated, pre-existing
makepkg warning also noted but not
investigated: “Package contains reference to $srcdir” – a
baked-in build-time path in some installed file. Not a build
failure, didn’t block the fix above.
Superseded (kept for context, see 2026-07-15 entry above for the real cause)
- Build failure during the 2026-07-07 “build all packages for x86_64”
private-repo release pass (see
repo_release_logs/adapted_cyrus-imapd2.log).
configure fails at the very first compiler check:
configure: error: C compiler cannot create executables (using clang,
which is what extra-x86_64-build’s clean chroot resolves gcc/cc to via
the ancient bundled configure script’s checking for gcc... clang
detection). config.log inside the chroot would have the real linker/cc
invocation error, but the chroot is torn down after the failed build, so
it wasn’t captured this run.
- Likely an old (2.5.17) autoconf-generated
configure script incompatible
with the current toolchain/clang in the build chroot (host system moved on
since this PKGBUILD was last verified) rather than anything about this
release pass itself – other very old packages built fine, so it’s
specific to this package’s build system.