Package: src:graphite2
Version: 1.3.14-2
Severity: important
Tags: sid forky
User: debian-...@lists.debian.org
Usertags: ftbfs-gcc-15

[This bug is NOT targeted to the upcoming trixie release]

Please keep this issue open in the bug tracker for the package it
was filed for.  If a fix in another package is required, please
file a bug for the other package (or clone), and add a block in this
package. Please keep the issue open until the package can be built in
a follow-up test rebuild.

The package fails to build in a test rebuild on at least amd64 with
gcc-15/g++-15, but succeeds to build with gcc-14/g++-14. The
severity of this report will be raised before the forky release.

The full build log can be found at:
http://qa-logs.debian.net/2025/02/16/amd64exp/graphite2_1.3.14-2_unstable_gccexp.log.gz
The last lines of the build log are at the end of this report.

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

  apt-get -t=experimental install g++ 

GCC 15 now defaults to the C23/C++23 standards, exposing many FTBFS.
Other Common build failures are new warnings resulting in build failures
with -Werror turned on, or new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-15/porting_to.html

[...]
  110 |           table = {_ttf.data() + tbl_offset, tbl_len};
      |                                                     ^
/build/reproducible-path/graphite2-1.3.14/tests/featuremap/featuremaptest.cpp:110:53:
 note: there are 4 candidates
In file included from /usr/include/c++/15/bits/stl_algobase.h:64,
                 from /usr/include/c++/15/string:53,
                 from /usr/include/c++/15/bits/locale_classes.h:42,
                 from /usr/include/c++/15/bits/ios_base.h:43,
                 from /usr/include/c++/15/ios:46,
                 from /usr/include/c++/15/istream:42,
                 from /usr/include/c++/15/fstream:42,
                 from 
/build/reproducible-path/graphite2-1.3.14/tests/featuremap/featuremaptest.cpp:24:
/usr/include/c++/15/bits/stl_pair.h:948:9: note: candidate 1: ‘template<class 
_U1, class _U2> typename std::enable_if<std::__and_<std::is_assignable<_T1&, 
const _U1&>, std::is_assignable<_T2&, const _U2&> >::value, std::pair<_T1, 
_T2>&>::type std::pair<_T1, _T2>::operator=(const std::pair<_U1, _U2>&) [with 
_U2 = _U1; _T1 = const void*; _T2 = long unsigned int]’
  948 |         operator=(const pair<_U1, _U2>& __p)
      |         ^~~~~~~~
/usr/include/c++/15/bits/stl_pair.h:948:9: note: template argument 
deduction/substitution failed:
/build/reproducible-path/graphite2-1.3.14/tests/featuremap/featuremaptest.cpp:110:53:
 note:   couldn’t deduce template parameter ‘_U1’
  110 |           table = {_ttf.data() + tbl_offset, tbl_len};
      |                                                     ^
/usr/include/c++/15/bits/stl_pair.h:959:9: note: candidate 2: ‘template<class 
_U1, class _U2> typename std::enable_if<std::__and_<std::is_assignable<_T1&, 
_U1&&>, std::is_assignable<_T2&, _U2&&> >::value, std::pair<_T1, _T2>&>::type 
std::pair<_T1, _T2>::operator=(std::pair<_U1, _U2>&&) [with _U2 = _U1; _T1 = 
const void*; _T2 = long unsigned int]’
  959 |         operator=(pair<_U1, _U2>&& __p)
      |         ^~~~~~~~
/usr/include/c++/15/bits/stl_pair.h:959:9: note: template argument 
deduction/substitution failed:
/build/reproducible-path/graphite2-1.3.14/tests/featuremap/featuremaptest.cpp:110:53:
 note:   couldn’t deduce template parameter ‘_U1’
  110 |           table = {_ttf.data() + tbl_offset, tbl_len};
      |                                                     ^
/usr/include/c++/15/bits/stl_pair.h:923:7: note: candidate 3: ‘std::pair<_T1, 
_T2>& std::pair<_T1, 
_T2>::operator=(std::__conditional_t<((bool)std::__and_<std::is_copy_assignable<_T1>,
 std::is_copy_assignable<_T2> >::value), const std::pair<_T1, _T2>&, const 
std::__nonesuch&>) [with _T1 = const void*; _T2 = long unsigned int; 
std::__conditional_t<((bool)std::__and_<std::is_copy_assignable<_T1>, 
std::is_copy_assignable<_T2> >::value), const std::pair<_T1, _T2>&, const 
std::__nonesuch&> = const std::pair<const void*, long unsigned int>&]’
  923 |       operator=(__conditional_t<__and_<is_copy_assignable<_T1>,
      |       ^~~~~~~~
/usr/include/c++/15/bits/stl_pair.h:925:65: note: no known conversion for 
argument 1 from ‘<brace-enclosed initializer list>’ to 
‘std::__conditional_t<true, const std::pair<const void*, long unsigned int>&, 
const std::__nonesuch&>’ {aka ‘const std::pair<const void*, long unsigned 
int>&’}
  923 |       operator=(__conditional_t<__and_<is_copy_assignable<_T1>,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  924 |                                        is_copy_assignable<_T2>>::value,
      |                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  925 |                                 const pair&, const __nonesuch&> __p)
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/15/bits/stl_pair.h:933:7: note: candidate 4: ‘std::pair<_T1, 
_T2>& std::pair<_T1, 
_T2>::operator=(std::__conditional_t<((bool)std::__and_<std::is_move_assignable<_Tp>,
 std::is_move_assignable<_T2> >::value), std::pair<_T1, _T2>&&, 
std::__nonesuch&&>) [with _T1 = const void*; _T2 = long unsigned int; 
std::__conditional_t<((bool)std::__and_<std::is_move_assignable<_Tp>, 
std::is_move_assignable<_T2> >::value), std::pair<_T1, _T2>&&, 
std::__nonesuch&&> = std::pair<const void*, long unsigned int>&&]’
  933 |       operator=(__conditional_t<__and_<is_move_assignable<_T1>,
      |       ^~~~~~~~
/usr/include/c++/15/bits/stl_pair.h:935:55: note: no known conversion for 
argument 1 from ‘<brace-enclosed initializer list>’ to 
‘std::__conditional_t<true, std::pair<const void*, long unsigned int>&&, 
std::__nonesuch&&>’ {aka ‘std::pair<const void*, long unsigned int>&&’}
  933 |       operator=(__conditional_t<__and_<is_move_assignable<_T1>,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  934 |                                        is_move_assignable<_T2>>::value,
      |                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  935 |                                 pair&&, __nonesuch&&> __p)
      |                                 ~~~~~~~~~~~~~~~~~~~~~~^~~
/build/reproducible-path/graphite2-1.3.14/tests/featuremap/featuremaptest.cpp: 
In function ‘void testFeatTable(const T&, const std::string&)’:
/build/reproducible-path/graphite2-1.3.14/tests/featuremap/featuremaptest.cpp:310:14:
 error: ‘uint16_t’ was not declared in this scope [-Wtemplate-body]
  310 |         for (uint16_t j = 0; j < table.m_defs[i].m_numFeatSettings; j++)
      |              ^~~~~~~~
/build/reproducible-path/graphite2-1.3.14/tests/featuremap/featuremaptest.cpp:310:14:
 note: ‘uint16_t’ is defined in header ‘<cstdint>’; this is probably fixable by 
adding ‘#include <cstdint>’
/build/reproducible-path/graphite2-1.3.14/tests/featuremap/featuremaptest.cpp:310:30:
 error: ‘j’ was not declared in this scope [-Wtemplate-body]
  310 |         for (uint16_t j = 0; j < table.m_defs[i].m_numFeatSettings; j++)
      |                              ^
make[3]: *** [tests/featuremap/CMakeFiles/featuremaptest.dir/build.make:82: 
tests/featuremap/CMakeFiles/featuremaptest.dir/featuremaptest.cpp.o] Error 1
make[3]: Leaving directory '/build/reproducible-path/graphite2-1.3.14/build'
make[2]: *** [CMakeFiles/Makefile2:741: 
tests/featuremap/CMakeFiles/featuremaptest.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs....
[ 94%] Linking CXX static library libvm-test-common.a
cd /build/reproducible-path/graphite2-1.3.14/build/tests/vm && /usr/bin/cmake 
-P CMakeFiles/vm-test-common.dir/cmake_clean_target.cmake
cd /build/reproducible-path/graphite2-1.3.14/build/tests/vm && /usr/bin/cmake 
-E cmake_link_script CMakeFiles/vm-test-common.dir/link.txt --verbose=1
/usr/bin/ar qc libvm-test-common.a 
"CMakeFiles/vm-test-common.dir/basic_test.cpp.o"
/usr/bin/ranlib libvm-test-common.a
make[3]: Leaving directory '/build/reproducible-path/graphite2-1.3.14/build'
[ 94%] Built target vm-test-common
make[2]: Leaving directory '/build/reproducible-path/graphite2-1.3.14/build'
make[1]: *** [Makefile:149: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/graphite2-1.3.14/build'
dh_auto_build: error: cd build && make -j8 "INSTALL=install 
--strip-program=true" VERBOSE=1 returned exit code 2
make: *** [debian/rules:7: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

Reply via email to