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

Emanuele Rocca <[email protected]> Mon, 13 Apr 2026 15:05:22 +0200
Newsgroups gmane.linux.debian.devel.openoffice
Message-ID <[email protected]>
Package: src:libe-book
Version: 0.1.3-4
Severity: important
Tags: sid forky ftbfs
User: [email protected]
Usertags: ftbfs-gcc-16

Hi,

libe-book fails to build in a test rebuild on at least amd64 and arm64 with
gcc-16/g++-16, but builds properly with gcc-15/g++-15. The severity of this
report will be raised before the forky release.

The full build log can be found at:
https://people.debian.org/~ema/gcc-16-rebuilds/output-1/libe-book_arm64.build.xz

The last lines of the build log are at the end of this report.

To build with GCC 16, either set CC=gcc-16 CXX=g++-16 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.

  apt-get -t=experimental install g++ 

Common build failures include unused (but set) variables, array subscripts
partly outside array bounds, and new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-16/porting_to.html

Please only close this issue after double-checking that the package can be
built correctly with GCC 16.

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.

[...]


/usr/include/unicode/localpointer.h:559:26: error: parameter declared 'auto'
  559 | template <typename Type, auto closeFunction>
      |                          ^~~~
/usr/include/unicode/localpointer.h:571:76: error: template argument 2 is invalid [-Wtemplate-body]
  571 |     explicit LocalOpenPointer(std::unique_ptr<Type, decltype(closeFunction)> &&p)
      |                                                                            ^
/usr/include/unicode/localpointer.h:581:78: error: template argument 2 is invalid [-Wtemplate-body]
  581 |     LocalOpenPointer &operator=(std::unique_ptr<Type, decltype(closeFunction)> &&p) {
      |                                                                              ^
/usr/include/unicode/localpointer.h:597:59: error: template argument 2 is invalid [-Wtemplate-body]
  597 |     operator std::unique_ptr<Type, decltype(closeFunction)> () && {
      |                                                           ^
/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
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 <typename Type, auto closeFunction>
      |                          ^~~~
/usr/include/unicode/localpointer.h:571:76: error: template argument 2 is invalid [-Wtemplate-body]
  571 |     explicit LocalOpenPointer(std::unique_ptr<Type, decltype(closeFunction)> &&p)
      |                                                                            ^
/usr/include/unicode/localpointer.h:581:78: error: template argument 2 is invalid [-Wtemplate-body]
  581 |     LocalOpenPointer &operator=(std::unique_ptr<Type, decltype(closeFunction)> &&p) {
      |                                                                              ^
/usr/include/unicode/localpointer.h:597:59: error: template argument 2 is invalid [-Wtemplate-body]
  597 |     operator std::unique_ptr<Type, decltype(closeFunction)> () && {
      |                                                           ^
/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);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
TealDocParser.cpp: In instantiation of 'libebook::{anonymous}::TagGrammar<Iterator>::TagGrammar() [with Iterator = __gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string<char> >]':
TealDocParser.cpp:411:59:   required from here
  411 |                        TagGrammar<string::const_iterator>(), qi::space,
      |                                                           ^
TealDocParser.cpp:129:3: warning: 'libebook::{anonymous}::TagGrammar<__gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string<char> > >::tags' should be initialized in the member initialization list [-Weffc++]
  129 |   TagGrammar() : TagGrammar::base_type(tag, "tag")
      |   ^~~~~~~~~~
TealDocParser.cpp:129:3: warning: 'libebook::{anonymous}::TagGrammar<__gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string<char> > >::eattrs' should be initialized in the member initialization list [-Weffc++]
TealDocParser.cpp:129:3: warning: 'libebook::{anonymous}::TagGrammar<__gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string<char> > >::sattrs' should be initialized in the member initialization list [-Weffc++]
TealDocParser.cpp:129:3: warning: 'libebook::{anonymous}::TagGrammar<__gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string<char> > >::values' should be initialized in the member initialization list [-Weffc++]
TealDocParser.cpp:129:3: warning: 'libebook::{anonymous}::TagGrammar<__gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string<char> > >::tag' should be initialized in the member initialization list [-Weffc++]
TealDocParser.cpp:129:3: warning: 'libebook::{anonymous}::TagGrammar<__gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string<char> > >::attrib' should be initialized in the member initialization list [-Weffc++]
TealDocParser.cpp:129:3: warning: 'libebook::{anonymous}::TagGrammar<__gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string<char> > >::value' should be initialized in the member initialization list [-Weffc++]
TealDocParser.cpp:129:3: warning: 'libebook::{anonymous}::TagGrammar<__gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string<char> > >::text' should be initialized in the member initialization list [-Weffc++]
TealDocParser.cpp:129:3: warning: 'libebook::{anonymous}::TagGrammar<__gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string<char> > >::unknown' should be initialized in the member initialization list [-Weffc++]
make[5]: *** [Makefile:1335: libe_book_internal_la-TealDocParser.lo] Error 1
make[5]: Leaving directory '/build/reproducible-path/libe-book-0.1.3/src/lib'
make[4]: *** [Makefile:762: all] Error 2
make[4]: Leaving directory '/build/reproducible-path/libe-book-0.1.3/src/lib'
make[3]: *** [Makefile:409: all-recursive] Error 1
make[3]: Leaving directory '/build/reproducible-path/libe-book-0.1.3/src'
make[2]: *** [Makefile:517: all-recursive] Error 1
make[2]: Leaving directory '/build/reproducible-path/libe-book-0.1.3'
make[1]: *** [Makefile:428: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/libe-book-0.1.3'
dh_auto_build: error: make -j128 returned exit code 2
make: *** [debian/rules:9: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2