Bug#1097212: libkexiv2: ftbfs with GCC-15
Package: src:libkexiv2
Version: 24.12.0-1
Severity: important
Tags: sid forky
User: debian-gcc@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/libkexiv2_24.12.0-1_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
[...]
| ~~~~~~~~~~~~^~~~~~~~~~~
/build/reproducible-path/libkexiv2-24.12.0/src/kexiv2exif.cpp:763:41: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
763 | if (it->count() <= component)
| ~~~~~~~~~~~~^~~~~~~~~~~~
/build/reproducible-path/libkexiv2-24.12.0/src/kexiv2exif.cpp:778:41: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
778 | if (it->count() <= component)
| ~~~~~~~~~~~~^~~~~~~~~~~~
[ 21%] Building CXX object src/CMakeFiles/KExiv2.dir/kexiv2xmp.cpp.o
cd /build/reproducible-path/libkexiv2-24.12.0/obj-x86_64-linux-gnu/src && /usr/bin/c++ -DKEXIV2_DEPRECATED_WARNINGS_SINCE=0x50100 -DKEXIV2_DISABLE_DEPRECATED_BEFORE_AND_AT=0x50100 -DKExiv2_EXPORTS -DQT_CORE_LIB -DQT_DEPRECATED_WARNINGS_SINCE=0x70000 -DQT_DISABLE_DEPRECATED_BEFORE=0x60500 -DQT_GUI_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_FOREACH -DQT_NO_KEYWORDS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/build/reproducible-path/libkexiv2-24.12.0/obj-x86_64-linux-gnu/src -I/build/reproducible-path/libkexiv2-24.12.0/src -I/build/reproducible-path/libkexiv2-24.12.0/obj-x86_64-linux-gnu/src/KExiv2_autogen/include -isystem /usr/include/x86_64-linux-gnu/qt6/QtGui -isystem /usr/include/x86_64-linux-gnu/qt6 -isystem /usr/include/x86_64-linux-gnu/qt6/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++ -g -O2 -ffil
e-prefix-map=/build/reproducible-path/libkexiv2-24.12.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -fno-operator-names -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Werror=init-self -Wvla -Wdate-time -Wsuggest-override -Wlogical-op -pedantic -Wzero-as-null-pointer-constant -Wmissing-include-dirs -fexceptions -std=gnu++17 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -MD -MT src/CMakeFiles/KExiv2.dir/kexiv2xmp.cpp.o -MF CMakeFiles/KExiv2.dir/kexiv2xmp.cpp.o.d -o CMakeFiles/KExiv2.dir/kexiv2xmp.cpp.o -c /build/reproducible-path/libkexiv2-24.12.0/src/kexiv2xmp.cpp
[ 23%] Building CXX object src/CMakeFiles/KExiv2.dir/kexiv2previews.cpp.o
cd /build/reproducible-path/libkexiv2-24.12.0/obj-x86_64-linux-gnu/src && /usr/bin/c++ -DKEXIV2_DEPRECATED_WARNINGS_SINCE=0x50100 -DKEXIV2_DISABLE_DEPRECATED_BEFORE_AND_AT=0x50100 -DKExiv2_EXPORTS -DQT_CORE_LIB -DQT_DEPRECATED_WARNINGS_SINCE=0x70000 -DQT_DISABLE_DEPRECATED_BEFORE=0x60500 -DQT_GUI_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_FOREACH -DQT_NO_KEYWORDS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/build/reproducible-path/libkexiv2-24.12.0/obj-x86_64-linux-gnu/src -I/build/reproducible-path/libkexiv2-24.12.0/src -I/build/reproducible-path/libkexiv2-24.12.0/obj-x86_64-linux-gnu/src/KExiv2_autogen/include -isystem /usr/include/x86_64-linux-gnu/qt6/QtGui -isystem /usr/include/x86_64-linux-gnu/qt6 -isystem /usr/include/x86_64-linux-gnu/qt6/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++ -g -O2 -ffil
e-prefix-map=/build/reproducible-path/libkexiv2-24.12.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -fno-operator-names -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Werror=init-self -Wvla -Wdate-time -Wsuggest-override -Wlogical-op -pedantic -Wzero-as-null-pointer-constant -Wmissing-include-dirs -fexceptions -std=gnu++17 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -MD -MT src/CMakeFiles/KExiv2.dir/kexiv2previews.cpp.o -MF CMakeFiles/KExiv2.dir/kexiv2previews.cpp.o.d -o CMakeFiles/KExiv2.dir/kexiv2previews.cpp.o -c /build/reproducible-path/libkexiv2-24.12.0/src/kexiv2previews.cpp
[ 25%] Building CXX object src/CMakeFiles/KExiv2.dir/rotationmatrix.cpp.o
cd /build/reproducible-path/libkexiv2-24.12.0/obj-x86_64-linux-gnu/src && /usr/bin/c++ -DKEXIV2_DEPRECATED_WARNINGS_SINCE=0x50100 -DKEXIV2_DISABLE_DEPRECATED_BEFORE_AND_AT=0x50100 -DKExiv2_EXPORTS -DQT_CORE_LIB -DQT_DEPRECATED_WARNINGS_SINCE=0x70000 -DQT_DISABLE_DEPRECATED_BEFORE=0x60500 -DQT_GUI_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_FOREACH -DQT_NO_KEYWORDS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/build/reproducible-path/libkexiv2-24.12.0/obj-x86_64-linux-gnu/src -I/build/reproducible-path/libkexiv2-24.12.0/src -I/build/reproducible-path/libkexiv2-24.12.0/obj-x86_64-linux-gnu/src/KExiv2_autogen/include -isystem /usr/include/x86_64-linux-gnu/qt6/QtGui -isystem /usr/include/x86_64-linux-gnu/qt6 -isystem /usr/include/x86_64-linux-gnu/qt6/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++ -g -O2 -ffil
e-prefix-map=/build/reproducible-path/libkexiv2-24.12.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -fno-operator-names -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Werror=init-self -Wvla -Wdate-time -Wsuggest-override -Wlogical-op -pedantic -Wzero-as-null-pointer-constant -Wmissing-include-dirs -fexceptions -std=gnu++17 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -MD -MT src/CMakeFiles/KExiv2.dir/rotationmatrix.cpp.o -MF CMakeFiles/KExiv2.dir/rotationmatrix.cpp.o.d -o CMakeFiles/KExiv2.dir/rotationmatrix.cpp.o -c /build/reproducible-path/libkexiv2-24.12.0/src/rotationmatrix.cpp
[ 27%] Building CXX object src/CMakeFiles/KExiv2.dir/libkexiv2_debug.cpp.o
cd /build/reproducible-path/libkexiv2-24.12.0/obj-x86_64-linux-gnu/src && /usr/bin/c++ -DKEXIV2_DEPRECATED_WARNINGS_SINCE=0x50100 -DKEXIV2_DISABLE_DEPRECATED_BEFORE_AND_AT=0x50100 -DKExiv2_EXPORTS -DQT_CORE_LIB -DQT_DEPRECATED_WARNINGS_SINCE=0x70000 -DQT_DISABLE_DEPRECATED_BEFORE=0x60500 -DQT_GUI_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_FOREACH -DQT_NO_KEYWORDS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_QSTRINGBUILDER -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/build/reproducible-path/libkexiv2-24.12.0/obj-x86_64-linux-gnu/src -I/build/reproducible-path/libkexiv2-24.12.0/src -I/build/reproducible-path/libkexiv2-24.12.0/obj-x86_64-linux-gnu/src/KExiv2_autogen/include -isystem /usr/include/x86_64-linux-gnu/qt6/QtGui -isystem /usr/include/x86_64-linux-gnu/qt6 -isystem /usr/include/x86_64-linux-gnu/qt6/QtCore -isystem /usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++ -g -O2 -ffil
e-prefix-map=/build/reproducible-path/libkexiv2-24.12.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -fno-operator-names -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Werror=init-self -Wvla -Wdate-time -Wsuggest-override -Wlogical-op -pedantic -Wzero-as-null-pointer-constant -Wmissing-include-dirs -fexceptions -std=gnu++17 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -MD -MT src/CMakeFiles/KExiv2.dir/libkexiv2_debug.cpp.o -MF CMakeFiles/KExiv2.dir/libkexiv2_debug.cpp.o.d -o CMakeFiles/KExiv2.dir/libkexiv2_debug.cpp.o -c /build/reproducible-path/libkexiv2-24.12.0/obj-x86_64-linux-gnu/src/libkexiv2_debug.cpp
/build/reproducible-path/libkexiv2-24.12.0/src/kexiv2xmp.cpp: In member function ‘QString KExiv2Iface::KExiv2::getXmpTagStringLangAlt(const char*, const QString&, bool) const’:
/build/reproducible-path/libkexiv2-24.12.0/src/kexiv2xmp.cpp:585:35: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
585 | for (int i = 0; i < it->count(); i++)
| ~~^~~~~~~~~~~~~
/build/reproducible-path/libkexiv2-24.12.0/src/kexiv2xmp.cpp: In member function ‘QStringList KExiv2Iface::KExiv2::getXmpTagStringSeq(const char*, bool) const’:
/build/reproducible-path/libkexiv2-24.12.0/src/kexiv2xmp.cpp:707:35: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
707 | for (int i = 0; i < it->count(); i++)
| ~~^~~~~~~~~~~~~
/build/reproducible-path/libkexiv2-24.12.0/src/kexiv2xmp.cpp: In member function ‘QStringList KExiv2Iface::KExiv2::getXmpTagStringBag(const char*, bool) const’:
/build/reproducible-path/libkexiv2-24.12.0/src/kexiv2xmp.cpp:812:35: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
812 | for (int i = 0; i < it->count(); i++)
| ~~^~~~~~~~~~~~~
/build/reproducible-path/libkexiv2-24.12.0/src/kexiv2xmp.cpp: In member function ‘QVariant KExiv2Iface::KExiv2::getXmpTagVariant(const char*, bool, bool) const’:
/build/reproducible-path/libkexiv2-24.12.0/src/kexiv2xmp.cpp:1027:37: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
1027 | for (int i=0; i < it->count(); i++)
| ~~^~~~~~~~~~~~~
/build/reproducible-path/libkexiv2-24.12.0/src/rotationmatrix.cpp: In member function ‘KExiv2Iface::RotationMatrix& KExiv2Iface::RotationMatrix::operator*=(QList<TransformationAction>)’:
/build/reproducible-path/libkexiv2-24.12.0/src/rotationmatrix.cpp:175:55: warning: ‘constexpr typename std::add_const<_Tp>::type& qAsConst(T&) [with T = QList<KExiv2Iface::RotationMatrix::TransformationAction>; typename std::add_const<_Tp>::type = const QList<KExiv2Iface::RotationMatrix::TransformationAction>]’ is deprecated: Use std::as_const() instead. [-Wdeprecated-declarations]
175 | for (const TransformationAction& action : qAsConst(actions))
| ~~~~~~~~^~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/qt6/QtCore/qforeach.h:11,
from /usr/include/x86_64-linux-gnu/qt6/QtCore/qglobal.h:57,
from /usr/include/x86_64-linux-gnu/qt6/QtCore/qnamespace.h:12,
from /usr/include/x86_64-linux-gnu/qt6/QtCore/qbytearray.h:9,
from /usr/include/x86_64-linux-gnu/qt6/QtCore/QByteArray:1,
from /build/reproducible-path/libkexiv2-24.12.0/src/kexiv2.h:17,
from /build/reproducible-path/libkexiv2-24.12.0/src/rotationmatrix.h:14,
from /build/reproducible-path/libkexiv2-24.12.0/src/rotationmatrix.cpp:10:
/usr/include/x86_64-linux-gnu/qt6/QtCore/qttypetraits.h:33:45: note: declared here
33 | constexpr typename std::add_const<T>::type &qAsConst(T &t) noexcept { return t; }
| ^~~~~~~~
[ 29%] Linking CXX shared library ../bin/libKExiv2Qt6.so
cd /build/reproducible-path/libkexiv2-24.12.0/obj-x86_64-linux-gnu/src && /usr/bin/cmake -E cmake_link_script CMakeFiles/KExiv2.dir/link.txt --verbose=1
/usr/bin/ld: CMakeFiles/KExiv2.dir/kexiv2_p.cpp.o:(.rodata+0x100): multiple definition of `QtPrivate::IsFloatType_v<_Float16>'; CMakeFiles/KExiv2.dir/kexiv2.cpp.o:(.rodata+0x0): first defined here
/usr/bin/ld: CMakeFiles/KExiv2.dir/kexiv2data.cpp.o:(.rodata+0x0): multiple definition of `QtPrivate::IsFloatType_v<_Float16>'; CMakeFiles/KExiv2.dir/kexiv2.cpp.o:(.rodata+0x0): first defined here
/usr/bin/ld: CMakeFiles/KExiv2.dir/kexiv2image.cpp.o:(.rodata+0x0): multiple definition of `QtPrivate::IsFloatType_v<_Float16>'; CMakeFiles/KExiv2.dir/kexiv2.cpp.o:(.rodata+0x0): first defined here
/usr/bin/ld: CMakeFiles/KExiv2.dir/kexiv2comments.cpp.o:(.rodata+0x0): multiple definition of `QtPrivate::IsFloatType_v<_Float16>'; CMakeFiles/KExiv2.dir/kexiv2.cpp.o:(.rodata+0x0): first defined here
/usr/bin/ld: CMakeFiles/KExiv2.dir/kexiv2exif.cpp.o:(.rodata+0x88): multiple definition of `QtPrivate::IsFloatType_v<_Float16>'; CMakeFiles/KExiv2.dir/kexiv2.cpp.o:(.rodata+0x0): first defined here
/usr/bin/ld: CMakeFiles/KExiv2.dir/kexiv2iptc.cpp.o:(.rodata+0x0): multiple definition of `QtPrivate::IsFloatType_v<_Float16>'; CMakeFiles/KExiv2.dir/kexiv2.cpp.o:(.rodata+0x0): first defined here
/usr/bin/ld: CMakeFiles/KExiv2.dir/kexiv2gps.cpp.o:(.rodata+0x0): multiple definition of `QtPrivate::IsFloatType_v<_Float16>'; CMakeFiles/KExiv2.dir/kexiv2.cpp.o:(.rodata+0x0): first defined here
/usr/bin/ld: CMakeFiles/KExiv2.dir/kexiv2xmp.cpp.o:(.rodata+0x28): multiple definition of `QtPrivate::IsFloatType_v<_Float16>'; CMakeFiles/KExiv2.dir/kexiv2.cpp.o:(.rodata+0x0): first defined here
/usr/bin/ld: CMakeFiles/KExiv2.dir/kexiv2previews.cpp.o:(.rodata+0x0): multiple definition of `QtPrivate::IsFloatType_v<_Float16>'; CMakeFiles/KExiv2.dir/kexiv2.cpp.o:(.rodata+0x0): first defined here
/usr/bin/ld: CMakeFiles/KExiv2.dir/rotationmatrix.cpp.o:(.rodata+0xc8): multiple definition of `QtPrivate::IsFloatType_v<_Float16>'; CMakeFiles/KExiv2.dir/kexiv2.cpp.o:(.rodata+0x0): first defined here
/usr/bin/ld: CMakeFiles/KExiv2.dir/libkexiv2_debug.cpp.o:(.rodata+0x0): multiple definition of `QtPrivate::IsFloatType_v<_Float16>'; CMakeFiles/KExiv2.dir/kexiv2.cpp.o:(.rodata+0x0): first defined here
collect2: error: ld returned 1 exit status
/usr/bin/c++ -fPIC -g -O2 -ffile-prefix-map=/build/reproducible-path/libkexiv2-24.12.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -fno-operator-names -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Werror=init-self -Wvla -Wdate-time -Wsuggest-override -Wlogical-op -pedantic -Wzero-as-null-pointer-constant -Wmissing-include-dirs -fexceptions -Wl,--no-undefined -Wl,--fatal-warnings -Wl,--enable-new-dtags -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libKExiv2Qt6.so.0 -o ../bin/libKExiv2Qt6.so.5.1.0 CMakeFiles/KExiv2.dir/KExiv2_autogen/mocs_compilation.cpp.o CMakeFiles/KExiv2.dir/kexiv2.cpp.o CMakeFiles/KExiv2.dir/kexiv2_p.cpp.o CMakeFiles/KExiv2.dir/kexiv2data.cpp.o CMakeFiles/KExiv2.dir/kexiv2image.cpp.o CMakeFiles/KExiv2.dir/kexiv2comments.cpp.o CMakeFiles/KExiv2.dir/kexiv2exif.cpp.o
CMakeFiles/KExiv2.dir/kexiv2iptc.cpp.o CMakeFiles/KExiv2.dir/kexiv2gps.cpp.o CMakeFiles/KExiv2.dir/kexiv2xmp.cpp.o CMakeFiles/KExiv2.dir/kexiv2previews.cpp.o CMakeFiles/KExiv2.dir/rotationmatrix.cpp.o CMakeFiles/KExiv2.dir/libkexiv2_debug.cpp.o /usr/lib/x86_64-linux-gnu/libexiv2.so /usr/lib/x86_64-linux-gnu/libQt6Gui.so.6.7.2 /usr/lib/x86_64-linux-gnu/libGLX.so /usr/lib/x86_64-linux-gnu/libOpenGL.so /usr/lib/x86_64-linux-gnu/libQt6Core.so.6.7.2
make[3]: *** [src/CMakeFiles/KExiv2.dir/build.make:304: bin/libKExiv2Qt6.so.5.1.0] Error 1
make[3]: Leaving directory '/build/reproducible-path/libkexiv2-24.12.0/obj-x86_64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:233: src/CMakeFiles/KExiv2.dir/all] Error 2
make[2]: Leaving directory '/build/reproducible-path/libkexiv2-24.12.0/obj-x86_64-linux-gnu'
make[1]: *** [Makefile:149: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/libkexiv2-24.12.0/obj-x86_64-linux-gnu'
dh_auto_build: error: cd obj-x86_64-linux-gnu && make -j8 "INSTALL=install --strip-program=true" VERBOSE=1 returned exit code 2
make: *** [debian/rules:6: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
Reply to: