Bug#1133524: Bug#1133513: libe-book: ftbfs with GCC-16

2026-04-13 Thread Rene Engelhard

Hi,

Am 13.04.26 um 19:39 schrieb Rene Engelhard:




checking how to run the C++ preprocessor... g++ -std=gnu++11 -E
checking for ld used by g++ -std=gnu++11... /usr/bin/x86_64-linux-gnu-ld -m 
elf_x86_64
checking if the linker (/usr/bin/x86_64-linux-gnu-ld -m elf_x86_64) is GNU 
ld... yes
checking whether the g++ -std=gnu++11 linker (/usr/bin/x86_64-linux-gnu-ld -m 
elf_x86_64) supports shared libraries... yes
checking for g++ -std=gnu++11 option to produce PIC... -fPIC -DPIC
checking if g++ -std=gnu++11 PIC flag -fPIC -DPIC works... yes
checking if g++ -std=gnu++11 static flag -static works... yes
checking if g++ -std=gnu++11 supports -c -o file.o... yes
checking if g++ -std=gnu++11 supports -c -o file.o... (cached) yes
checking whether the g++ -std=gnu++11 linker (/usr/bin/x86_64-linux-gnu-ld -m 
elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether g++ -std=gnu++11 supports C++11 features by default... yes

Looks like it.

That of course breaks. Now the question is why autoconf unhelpfully adds that 
with gcc 16...
CC'ing the autoconf maintainer. I see 2.72-6 removing 
debian/patches/fix-cxx-stdcxx-test.diff but according to the debdiff it was not 
applied before anyway...


Aha.

https://savannah.gnu.org/support/index.php?110879

(thanks to #libreoffice-dev)


Now filed https://bugs.debian.org/1133694

Regards,
  
Rene
 



Bug#1133524: Bug#1133513: libe-book: ftbfs with GCC-16

2026-04-13 Thread Rene Engelhard





checking how to run the C++ preprocessor... g++ -std=gnu++11 -E
checking for ld used by g++ -std=gnu++11... /usr/bin/x86_64-linux-gnu-ld -m 
elf_x86_64
checking if the linker (/usr/bin/x86_64-linux-gnu-ld -m elf_x86_64) is GNU 
ld... yes
checking whether the g++ -std=gnu++11 linker (/usr/bin/x86_64-linux-gnu-ld -m 
elf_x86_64) supports shared libraries... yes
checking for g++ -std=gnu++11 option to produce PIC... -fPIC -DPIC
checking if g++ -std=gnu++11 PIC flag -fPIC -DPIC works... yes
checking if g++ -std=gnu++11 static flag -static works... yes
checking if g++ -std=gnu++11 supports -c -o file.o... yes
checking if g++ -std=gnu++11 supports -c -o file.o... (cached) yes
checking whether the g++ -std=gnu++11 linker (/usr/bin/x86_64-linux-gnu-ld -m 
elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether g++ -std=gnu++11 supports C++11 features by default... yes

Looks like it.

That of course breaks. Now the question is why autoconf unhelpfully adds that 
with gcc 16...
CC'ing the autoconf maintainer. I see 2.72-6 removing 
debian/patches/fix-cxx-stdcxx-test.diff but according to the debdiff it was not 
applied before anyway...


Aha.

https://savannah.gnu.org/support/index.php?110879

(thanks to #libreoffice-dev)

Regards,
 
 
Rene




Bug#1133524: Bug#1133513: libe-book: ftbfs with GCC-16

2026-04-13 Thread Rene Engelhard

Hi,

Am 13.04.26 um 19:06 schrieb Rene Engelhard:

Hi,

Am 13.04.26 um 18:53 schrieb Rene Engelhard:


Maybe. Or this is another case of what plagued libreoffice and was worked 
around with

https://salsa.debian.org/libreoffice-team/libreoffice/libreoffice/-/blob/master/patches/gcc16.diff?ref_type=heads#L59
 ff. and


See also upstreams 
https://gerrit.libreoffice.org/c/core/+/202511/comments/b6a92d32_0c72b450 and 
following comments...

And indeed the same happens:

checking how to run the C++ preprocessor... g++ -std=gnu++11 -E
checking for ld used by g++ -std=gnu++11... /usr/bin/x86_64-linux-gnu-ld -m 
elf_x86_64
checking if the linker (/usr/bin/x86_64-linux-gnu-ld -m elf_x86_64) is GNU 
ld... yes
checking whether the g++ -std=gnu++11 linker (/usr/bin/x86_64-linux-gnu-ld -m 
elf_x86_64) supports shared libraries... yes
checking for g++ -std=gnu++11 option to produce PIC... -fPIC -DPIC
checking if g++ -std=gnu++11 PIC flag -fPIC -DPIC works... yes
checking if g++ -std=gnu++11 static flag -static works... yes
checking if g++ -std=gnu++11 supports -c -o file.o... yes
checking if g++ -std=gnu++11 supports -c -o file.o... (cached) yes
checking whether the g++ -std=gnu++11 linker (/usr/bin/x86_64-linux-gnu-ld -m 
elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether g++ -std=gnu++11 supports C++11 features by default... yes

Looks like it.

That of course breaks. Now the question is why autoconf unhelpfully adds that 
with gcc 16...
CC'ing the autoconf maintainer. I see 2.72-6 removing 
debian/patches/fix-cxx-stdcxx-test.diff but according to the debdiff it was not 
applied before anyway...

That might also be the explanation for a loads of other gcc 16 FTBFS


# work around autoconf unhelpfully adding -std=gnu++11 which breaks with gcc 16
SYSTEM_GCC_VERSION = $(shell gcc --version | sed -n '/^gcc/s/.*\(..\..\)\../\1/p' | cut 
-d" " -f1 | cut -d. -f1)
ifeq "$(shell test $(SYSTEM_GCC_VERSION) -ge 16 && echo true)" "true"
export DEB_CXXFLAGS_MAINT_APPEND += -std=gnu++17
endif

in debian/rules in libe-book works but that of course is extremely ugly...

Regards,


Rene



Bug#1133524: Bug#1133513: libe-book: ftbfs with GCC-16

2026-04-13 Thread Rene Engelhard

Hi,

Am 13.04.26 um 18:53 schrieb Rene Engelhard:


Maybe. Or this is another case of what plagued libreoffice and was worked 
around with

https://salsa.debian.org/libreoffice-team/libreoffice/libreoffice/-/blob/master/patches/gcc16.diff?ref_type=heads#L59
 ff. and


See also upstreams 
https://gerrit.libreoffice.org/c/core/+/202511/comments/b6a92d32_0c72b450 and 
following comments...

And indeed the same happens:

checking how to run the C++ preprocessor... g++ -std=gnu++11 -E
checking for ld used by g++ -std=gnu++11... /usr/bin/x86_64-linux-gnu-ld -m 
elf_x86_64
checking if the linker (/usr/bin/x86_64-linux-gnu-ld -m elf_x86_64) is GNU 
ld... yes
checking whether the g++ -std=gnu++11 linker (/usr/bin/x86_64-linux-gnu-ld -m 
elf_x86_64) supports shared libraries... yes
checking for g++ -std=gnu++11 option to produce PIC... -fPIC -DPIC
checking if g++ -std=gnu++11 PIC flag -fPIC -DPIC works... yes
checking if g++ -std=gnu++11 static flag -static works... yes
checking if g++ -std=gnu++11 supports -c -o file.o... yes
checking if g++ -std=gnu++11 supports -c -o file.o... (cached) yes
checking whether the g++ -std=gnu++11 linker (/usr/bin/x86_64-linux-gnu-ld -m 
elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether g++ -std=gnu++11 supports C++11 features by default... yes

Looks like it.

That of course breaks. Now the question is why autoconf unhelpfully adds that 
with gcc 16...
CC'ing the autoconf maintainer. I see 2.72-6 removing 
debian/patches/fix-cxx-stdcxx-test.diff but according to the debdiff it was not 
applied before anyway...

That might also be the explanation for a loads of other gcc 16 FTBFS

Regards,


Rene



Bug#1133524: Bug#1133513: libe-book: ftbfs with GCC-16

2026-04-13 Thread Rene Engelhard

Hi,

Am 13.04.26 um 18:44 schrieb László Böszörményi (GCS):

On Mon, Apr 13, 2026 at 6:16 PM Rene Engelhard  wrote:

Am 13.04.26 um 15:05 schrieb Emanuele Rocca:

/usr/include/unicode/localpointer.h:559:26: error: parameter declared 'auto'
559 | template 
|  ^~~~
/usr/include/unicode/localpointer.h:571:76: error: template argument 2 is 
invalid [-Wtemplate-body]
571 | explicit LocalOpenPointer(std::unique_ptr 
&&p)
|   
 ^

[...]

Same case with libsmpub (1133524).

  Do you have a test environment for this? See the possible solution below.

Yes, I have a experimental systemd-nspawn machine with experimentals gcc 
default installed.

Ccing Lazslo., any idea?

  s/Lazslo/Laszlo/

oops, sorry

and indeed, I have. libe-book seems to compile with
std=c++11 while the new ICU bits needs to be compiled with std=c++17


but that is only enforcd with gcc 16? Subce both libe-book and libsmpub build 
fine as-is in unstable:

https://buildd.debian.org/status/package.php?p=libe-book

https://buildd.debian.org/status/package.php?p=libmspub


so maybe configure needs to be recreated.

The build does it every time.

There's configure.ac in the
source which needs to be modernized, there are several obsolete
messages for that in the build log [1]. For example:


Yes, as all those libs they are old... We already had that fun with libzmf...

(which has an other C++ standard failure mode...)


autoreconf: running: /usr/bin/autoconf --force
configure.ac:19: warning: The macro 'AC_CONFIG_HEADER' is obsolete.
configure.ac:19: You should run autoupdate.
./lib/autoconf/status.m4:719: AC_CONFIG_HEADER is expanded from...
configure.ac:19: the top level
configure.ac:184: warning: The macro 'AC_TRY_COMPILE' is obsolete.
configure.ac:184: You should run autoupdate.
... etc.


Maybe. Or this is another case of what plagued libreoffice and was worked 
around with

https://salsa.debian.org/libreoffice-team/libreoffice/libreoffice/-/blob/master/patches/gcc16.diff?ref_type=heads#L59
 ff. and

https://salsa.debian.org/libreoffice-team/libreoffice/libreoffice/-/blob/debian-experimental-26.2/patches/gcc16-dragonbox-snapshot-check.diff

aka something in autoconf insisting to add --std=gnu++11 where nowwhere 
specified outside ..


Regards,


Rene



Bug#1133524: Bug#1133513: libe-book: ftbfs with GCC-16

2026-04-13 Thread GCS
On Mon, Apr 13, 2026 at 6:16 PM Rene Engelhard  wrote:
> Am 13.04.26 um 15:05 schrieb Emanuele Rocca:
> > /usr/include/unicode/localpointer.h:559:26: error: parameter declared 'auto'
> >559 | template 
> >|  ^~~~
> > /usr/include/unicode/localpointer.h:571:76: error: template argument 2 is 
> > invalid [-Wtemplate-body]
> >571 | explicit LocalOpenPointer(std::unique_ptr > decltype(closeFunction)> &&p)
> >|
> > ^
[...]
> Same case with libsmpub (1133524).
 Do you have a test environment for this? See the possible solution below.

> Ccing Lazslo., any idea?
 s/Lazslo/Laszlo/ and indeed, I have. libe-book seems to compile with
std=c++11 while the new ICU bits needs to be compiled with std=c++17
so maybe configure needs to be recreated. There's configure.ac in the
source which needs to be modernized, there are several obsolete
messages for that in the build log [1]. For example:
autoreconf: running: /usr/bin/autoconf --force
configure.ac:19: warning: The macro 'AC_CONFIG_HEADER' is obsolete.
configure.ac:19: You should run autoupdate.
./lib/autoconf/status.m4:719: AC_CONFIG_HEADER is expanded from...
configure.ac:19: the top level
configure.ac:184: warning: The macro 'AC_TRY_COMPILE' is obsolete.
configure.ac:184: You should run autoupdate.
... etc.

Hope this helps,
Laszlo/GCS
[1] 
https://buildd.debian.org/status/fetch.php?pkg=libe-book&arch=amd64&ver=0.1.3-4&stamp=1773502194&raw=0



Bug#1133524: Bug#1133513: libe-book: ftbfs with GCC-16

2026-04-13 Thread Rene Engelhard

Hi Emanuele,

Am 13.04.26 um 15:05 schrieb Emanuele Rocca:

Please do not reassign this bug to another package. If a fix in another package
is required, then file a bug for the other package (or clone), and mark this
bug as blocked by the bug in the other package.

You probably should look for common stuff here. Here it is:

[...]


/usr/include/unicode/localpointer.h:559:26: error: parameter declared 'auto'
   559 | template 
   |  ^~~~
/usr/include/unicode/localpointer.h:571:76: error: template argument 2 is 
invalid [-Wtemplate-body]
   571 | explicit LocalOpenPointer(std::unique_ptr 
&&p)
   |
^
/usr/include/unicode/localpointer.h:581:78: error: template argument 2 is 
invalid [-Wtemplate-body]
   581 | LocalOpenPointer &operator=(std::unique_ptr 
&&p) {
   |
  ^
/usr/include/unicode/localpointer.h:597:59: error: template argument 2 is 
invalid [-Wtemplate-body]
   597 | operator std::unique_ptr () && {
   |   ^
/usr/include/unicode/uenum.h:69:1: note: invalid template non-type parameter
69 | U_DEFINE_LOCAL_OPEN_POINTER(LocalUEnumerationPointer, UEnumeration, 
uenum_close);
   | ^~~
/usr/include/unicode/ucnv.h:597:1: note: invalid template non-type parameter
   597 | U_DEFINE_LOCAL_OPEN_POINTER(LocalUConverterPointer, UConverter, 
ucnv_close);
   | ^~~
make[5]: *** [Makefile:1258: libe_book_internal_la-PluckerParser.lo] Error 1
make[5]: *** [Makefile:1237: libe_book_internal_la-PalmDocParser.lo] Error 1
make[5]: *** [Makefile:985: libe_book_internal_la-BBeBParser.lo] Error 1

ICU header.

In file included from /usr/include/unicode/uenum.h:25,
  from /usr/include/unicode/ucnv.h:52,
  from EBOOKCharsetConverter.h:16,
  from TealDocParser.cpp:24:
/usr/include/unicode/localpointer.h:559:26: error: parameter declared 'auto'
   559 | template 
   |  ^~~~
/usr/include/unicode/localpointer.h:571:76: error: template argument 2 is 
invalid [-Wtemplate-body]
   571 | explicit LocalOpenPointer(std::unique_ptr 
&&p)
   |
^
/usr/include/unicode/localpointer.h:581:78: error: template argument 2 is 
invalid [-Wtemplate-body]
   581 | LocalOpenPointer &operator=(std::unique_ptr 
&&p) {
   |
  ^
/usr/include/unicode/localpointer.h:597:59: error: template argument 2 is 
invalid [-Wtemplate-body]
   597 | operator std::unique_ptr () && {
   |   ^
/usr/include/unicode/uenum.h:69:1: note: invalid template non-type parameter
69 | U_DEFINE_LOCAL_OPEN_POINTER(LocalUEnumerationPointer, UEnumeration, 
uenum_close);
   | ^~~
/usr/include/unicode/ucnv.h:597:1: note: invalid template non-type parameter
   597 | U_DEFINE_LOCAL_OPEN_POINTER(LocalUConverterPointer, UConverter, 
ucnv_close);
   | ^~~


Here also the complains comes from ICU


Same case with libsmpub (1133524).


Ccing Lazslo., any idea?


Regards,


Rene