cppcms
- Path: arch/maintained/cppcms
- Build failure during the 2026-07-07 “build all packages for x86_64”
private-repo release pass (see
repo_release_logs/maintained_cppcms.log).
- Missing-dependencies transaction listed
cmake and python2, but only
python2 actually fails resolution (error: target not found: python2);
cmake is genuinely still in official extra (currently 4.3.4-1) and
would resolve fine on its own. python2 itself was retired from the
official Arch repos long ago and isn’t vendored in this tree.
- Same environment-drift class as
memory/p2c.md / memory/bless.md /
memory/bochs.md. Not fixed as part of this pass.
- 2026-07-30: unblocked – user built+published
python2 to
archlinuxaba directly (same ad-hoc-outside-this-tree pattern as
exomizer/gconf/gtk-sharp-2/etc., see TOOLING_NOTES.md). i486/
i686/pentium4 still fail with target not found: python2 – expected,
same chroot-scope limitation as dbmodel-qt4’s i686 leg (only the
x86_64 build uses archlinuxaba-x86_64-build, which has the private
repo layered in; plain extra-<arch>-build doesn’t see
archlinuxaba at all).
- x86_64 got past dependency resolution but hit a real compile
failure, unrelated to python2: bundled
booster (this project’s
vendored Boost-alike, ancient/unmaintained upstream) calls the
two-argument std::allocator::allocate(n, hint) overload in
booster/smart_ptr/sp_counted_impl.h, deprecated since C++17 and
removed in C++20 – and modern GCC (16 here) now defaults to a
C++ standard newer than that. Same general class as
TOOLING_NOTES.md’s “old C/C++ sources trip modern
compiler/library changes” entries (modest, newsboat-og), but a
removed stdlib API rather than a -Werror warning.
- First attempt pinned
-DCMAKE_CXX_STANDARD=14 to dodge the
allocator removal – compiled further but then failed differently:
system ICU’s headers (unicode/unistr.h, icu_78) require C++17
(u16string_view, std::is_same_v, auto template parameters,
etc.), so C++14 was too old for the other side of the same
translation unit. Fix that actually worked: -DCMAKE_CXX_STANDARD=17
(+ -DCMAKE_CXX_STANDARD_REQUIRED=ON) in build()’s cmake
invocation – C++17 still has the deprecated-but-present two-arg
allocate() and satisfies ICU’s C++17 requirements. pkgrel 3 ->
- Built and published cleanly on x86_64 after this.
- Worth remembering as a general pattern: when an old bundled
C++ library breaks under a newer default standard, check what its
other dependencies (system libs it also compiles against, like
ICU here) require before assuming the oldest standard that fixes
the immediate error is the right one – there can be a narrow
window (here: exactly C++17) rather than “anything old enough.”