cppcms
Build times (auto-updated)
- x86_64: 3m8s (2026-09-24 08:34 UTC, MAKEFLAGS=-j6)
- i486: 4m7s (2026-09-24 08:23 UTC, MAKEFLAGS=-j6)
- i686: 3m30s (2026-09-24 08:27 UTC, MAKEFLAGS=-j6)
- pentium4: 3m33s (2026-09-24 08:31 UTC, MAKEFLAGS=-j6)
2026-09-24: split into two packages, per user decision after an AUR comment thread (2025-08-21) where the user said they’d consider a beta package but not retarget this one to a beta. Upstream has since shipped a real 2.0.1 stable release (GitHub, 2024-11-02) – “C++17 compatible - stable release” – no longer a beta, so instead of a separate
cppcms-betapackage: this package (cppcms) now tracks the 2.x line (bumped straight to 2.0.1), and the old 1.2.1 build was forked off to a new package,memory/cppcms1.md, via a localgit fetch <path> <branch>+git reset --hard FETCH_HEADin the emptycppcms1AUR repo – grafts full history without an actual push from this tree.cppcms1conflicts/provides mirror this package so only one of the two can be installed at a time (upstream doesn’t version its own binary/header names between 1.x/2.x –/usr/include/cppcms,cppcms_tmpl_cc,cppcms_runare identical paths in both, so true side-by-side install isn’t possible without patching upstream’s install rules, not attempted).Source moved from SourceForge (last real release there: 1.2.1) to the GitHub tag tarball (
artyom-beilis/cppcms, tagv2.0.1) – SourceForge only ever got as far as2.0.0-beta2(2020).2.0.1 no longer needs
python2:find_program(PYTHON NAMES python python2 python3)in CMakeLists.txt accepts plainpython(Arch’s python3). Dropped the wholesed-based python2-forcing hack frombuild()thatcppcms1/oldcppcmsneeded.The
booster/smart_ptr/sp_counted_impl.htwo-argallocate()call that forced the old-DCMAKE_CXX_STANDARD=17workaround (seecppcms1’s history below) is gone from 2.0.1’s booster – genuinely fixed upstream, not just standard-pinned around. Kept theCMAKE_CXX_STANDARD=17pin anyway though: upstream’s own CXXFLAGS still hardcode-std=c++11, but system ICU headers (auto-linked sinceicu-devis present in this build environment; booster’sDISABLE_ICU_LOCALEcmake option auto-detects it) require C++17 – same conflict as before, just from the ICU side now rather than the allocator side.namcap(run viarepo_build.sh’s own checkpkg step) flagged two real missing runtimedependsthat the original PKGBUILD never had, worth checking for on similar packages:icu(booster links it whenevericu-devis present at build time, per above – not conditional at runtime) andpython(the installed/usr/bin/cppcms_tmpl_ccscript has apythonshebang and is a genuine runtime dependency for anyone using it to build a cppcms project, not just a build-time tool). Both moved from makedepends-only todepends=.Also added
license=('LGPL' 'MIT')correctly requires an installed license file for the “uncommon” MIT identifier (namcap: “Found 0/1 required license files”) – upstream shipsCOPYING.TXT/MIT.TXTat the source root but installs neither; added explicitinstall -Dm644lines inpackage().2026-09-24 08:49: user replied on the AUR comment thread themselves (comment 1086314), closing the loop on their own 2025-08-21 question above: “2.0.1 is out of beta. So I split the package into a cppcms1 which track 1.2.x and upgraded cppcms here to 2.0.1.” Self-answered, no reply needed from this tooling.
2026-09-24 build/release (with the icu/python/license fixes above): all four arches – i486, i686, pentium4, x86_64 – built, signed and published cleanly. Unlike
python2(x86_64-only inarchlinuxaba, seecppcms1.md), plainpythonis available for all archs there, so no per-arch gap this time.AUR history:
bb73fe3(“using C++17 now”, the old 1.2.1-era HEAD) was not amendable – AUR’s server-side git hooks reject any non-fast-forward push (“denying non-fast-forward … hook declined”) even with--force-with-lease, so a localcommit --amend+ force-push attempt had to be recovered viagit reset --soft bb73fe3and redone as a plain new commit on top instead. History rewriting is simply not possible against AUR; always commit forward.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
cmakeandpython2, but onlypython2actually fails resolution (error: target not found: python2);cmakeis genuinely still in officialextra(currently 4.3.4-1) and would resolve fine on its own.python2itself 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
python2toarchlinuxabadirectly (same ad-hoc-outside-this-tree pattern asexomizer/gconf/gtk-sharp-2/etc., seeTOOLING_NOTES.md). i486/ i686/pentium4 still fail withtarget not found: python2– expected, same chroot-scope limitation asdbmodel-qt4’s i686 leg (only the x86_64 build usesarchlinuxaba-x86_64-build, which has the private repo layered in; plainextra-<arch>-builddoesn’t seearchlinuxabaat 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-argumentstd::allocator::allocate(n, hint)overload inbooster/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 asTOOLING_NOTES.md’s “old C/C++ sources trip modern compiler/library changes” entries (modest,newsboat-og), but a removed stdlib API rather than a-Werrorwarning. - First attempt pinned
-DCMAKE_CXX_STANDARD=14to 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,autotemplate 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) inbuild()’scmakeinvocation – C++17 still has the deprecated-but-present two-argallocate()and satisfies ICU’s C++17 requirements.pkgrel3 ->
- 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.”
- x86_64 got past dependency resolution but hit a real compile
failure, unrelated to python2: bundled