Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ctemplate for openSUSE:Factory checked in at 2026-09-10 16:40:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ctemplate (Old) and /work/SRC/openSUSE:Factory/.ctemplate.new.1265 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ctemplate" Thu Sep 10 16:40:10 2026 rev:28 rq:1376911 version:2.4 Changes: -------- --- /work/SRC/openSUSE:Factory/ctemplate/ctemplate.changes 2021-03-18 22:55:16.635552662 +0100 +++ /work/SRC/openSUSE:Factory/.ctemplate.new.1265/ctemplate.changes 2026-09-10 16:40:13.512969050 +0200 @@ -1,0 +2,9 @@ +Thu Sep 10 08:08:53 UTC 2026 - Martin Pluskal <[email protected]> + +- Add ctemplate-c++20-allocator-hint.patch: fix build with GCC 15, + whose libstdc++ no longer declares std::allocator<void>::const_pointer + and which now parses uninstantiated template bodies (upstream 5aa5a00) +- Modernise spec file; run %check with -j1, the tests share a fixed + /tmp/template_unittest_dir and race in parallel + +------------------------------------------------------------------- New: ---- ctemplate-c++20-allocator-hint.patch ----------(New B)---------- New: - Add ctemplate-c++20-allocator-hint.patch: fix build with GCC 15, whose libstdc++ no longer declares std::allocator<void>::const_pointer ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ctemplate.spec ++++++ --- /var/tmp/diff_new_pack.lpVpkG/_old 2026-09-10 16:40:14.268000724 +0200 +++ /var/tmp/diff_new_pack.lpVpkG/_new 2026-09-10 16:40:14.270000808 +0200 @@ -1,7 +1,7 @@ # # spec file for package ctemplate # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -23,16 +23,16 @@ Release: 0 Summary: Library for a C++ templating language License: BSD-3-Clause -Group: Development/Libraries/C and C++ URL: https://github.com/OlafvdSpek/ctemplate Source: https://github.com/OlafvdSpek/ctemplate/archive/%{name}-%{version}.tar.gz +# PATCH-FIX-UPSTREAM ctemplate-c++20-allocator-hint.patch -- drop std::allocator<void>::const_pointer, removed in C++20 (upstream 5aa5a00, post-2.4) +Patch0: ctemplate-c++20-allocator-hint.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: gcc-c++ BuildRequires: libtool BuildRequires: pkgconfig BuildRequires: python3-base -BuildRoot: %{_tmppath}/%{name}-%{version}-build %description CTemplate is a template language for C++. It emphasizes separating @@ -41,7 +41,6 @@ %package -n %{libname} Summary: Library for a C++ template languaging -Group: Development/Libraries/C and C++ %description -n %{libname} CTemplate is a template language for C++. It emphasizes separating @@ -50,7 +49,6 @@ %package -n libctemplate-devel Summary: Development files for ctemplate, a C++ language templating library -Group: Development/Libraries/C and C++ Requires: %{libname} = %{version} %description -n libctemplate-devel @@ -59,14 +57,14 @@ in this template language. %prep -%setup -q -n %{name}-%{name}-%{version} +%autosetup -p1 -n %{name}-%{name}-%{version} %build ./autogen.sh %configure \ --disable-static \ --disable-silent-rules -make %{?_smp_mflags} +%make_build %install %make_install @@ -76,20 +74,18 @@ rm -rf %{buildroot}%{_datadir}/doc/%{name} %check -make check +# -j1: the tests share a fixed /tmp/template_unittest_dir and race in parallel +%make_build -j1 check -%post -n %{libname} -p /sbin/ldconfig -%postun -n %{libname} -p /sbin/ldconfig +%ldconfig_scriptlets -n %{libname} %files -n %{libname} -%defattr(-,root,root) %doc AUTHORS %license COPYING %{_libdir}/libctemplate.so.%{sover}* %{_libdir}/libctemplate_nothreads.so.%{sover}* %files -n libctemplate-devel -%defattr(-,root,root) %doc doc/*.html ChangeLog AUTHORS %license COPYING %{_bindir}/diff_tpl_auto_escape ++++++ ctemplate-c++20-allocator-hint.patch ++++++ >From 5aa5a00e74ea8a1ea22d6a9760b4b420687fa4e5 Mon Sep 17 00:00:00 2001 From: Conrad Poelman <[email protected]> Date: Mon, 11 May 2020 21:55:00 -0400 Subject: [PATCH] C++20 / gcc10 fix: remove hint, removed typedef Git-commit: 5aa5a00e74ea8a1ea22d6a9760b4b420687fa4e5 C++17 deprecated, and C++20 fully removed, the std::allocator<T>::const_pointer typedef (https://en.cppreference.com/w/cpp/memory/allocator). So gcc10 fails to compile this file. The selected fix was to completely remove the hint argument because (a) it was ignored anyway, and (b) std::allocator's allocate() function also chose to remove its hint argument in C++20 (https://en.cppreference.com/w/cpp/memory/allocator/allocate). --- openSUSE note: GCC 15 turns this into a hard error even though the template is never instantiated with the hint, because -Wtemplate-body now parses uninstantiated template bodies. src/base/arena-inl.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/base/arena-inl.h b/src/base/arena-inl.h index 9408e9b..99ab4d3 100755 --- a/src/base/arena-inl.h +++ b/src/base/arena-inl.h @@ -93,8 +93,7 @@ template <class T, class C> class ArenaAllocator { ArenaAllocator(C* arena) : arena_(arena) { } // NOLINT ~ArenaAllocator() { } - pointer allocate(size_type n, - std::allocator<void>::const_pointer /*hint*/ = 0) { + pointer allocate(size_type n) { assert(arena_ && "No arena to allocate from!"); return reinterpret_cast<T*>(arena_->AllocAligned(n * sizeof(T), kAlignment));
