Subject: xwaylandvideobridge: ftbfs with GCC-15

From: Matthias Klose <[email-masked]>
Date: Mon, 17 Feb 2025 18:02:57 +0000

Package: src:xwaylandvideobridge
Version: 0.4.0-2
Severity: important
Tags: sid forky
User: [email-masked]
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/xwaylandvideobridge_0.4.0-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

[...]
[ 28%] Generating xdp_dbus_screencast_interface.cpp, xdp_dbus_screencast_interface.h
cd /build/reproducible-path/xwaylandvideobridge-0.4.0/obj-x86_64-linux-gnu/src && /usr/lib/qt6/bin/qdbusxml2cpp -m -p xdp_dbus_screencast_interface /build/reproducible-path/xwaylandvideobridge-0.4.0/src/org.freedesktop.portal.ScreenCast.xml
[ 35%] Generating moc_xdp_dbus_screencast_interface.cpp
cd /build/reproducible-path/xwaylandvideobridge-0.4.0/obj-x86_64-linux-gnu/src && /usr/lib/qt6/libexec/moc @/build/reproducible-path/xwaylandvideobridge-0.4.0/obj-x86_64-linux-gnu/src/moc_xdp_dbus_screencast_interface.cpp_parameters
Dependencies file "src/xwaylandvideobridge_autogen/deps" is newer than depends file "/build/reproducible-path/xwaylandvideobridge-0.4.0/obj-x86_64-linux-gnu/src/CMakeFiles/xwaylandvideobridge.dir/compiler_depend.internal".
Consolidate compiler generated dependencies of target xwaylandvideobridge
make[3]: Leaving directory '/build/reproducible-path/xwaylandvideobridge-0.4.0/obj-x86_64-linux-gnu'
make  -f src/CMakeFiles/xwaylandvideobridge.dir/build.make src/CMakeFiles/xwaylandvideobridge.dir/build
make[3]: Entering directory '/build/reproducible-path/xwaylandvideobridge-0.4.0/obj-x86_64-linux-gnu'
[ 42%] Building CXX object src/CMakeFiles/xwaylandvideobridge.dir/x11recordingnotifier.cpp.o
[ 50%] Building CXX object src/CMakeFiles/xwaylandvideobridge.dir/xwaylandvideobridge.cpp.o
[ 57%] Building CXX object src/CMakeFiles/xwaylandvideobridge.dir/xdp_dbus_screencast_interface.cpp.o
[ 64%] Building CXX object src/CMakeFiles/xwaylandvideobridge.dir/xwaylandvideobridge_autogen/mocs_compilation.cpp.o
[ 78%] Building CXX object src/CMakeFiles/xwaylandvideobridge.dir/main.cpp.o
[ 78%] Building CXX object src/CMakeFiles/xwaylandvideobridge.dir/contentswindow.cpp.o
[ 85%] Building CXX object src/CMakeFiles/xwaylandvideobridge.dir/xwaylandvideobridge_debug.cpp.o
/build/reproducible-path/xwaylandvideobridge-0.4.0/src/main.cpp: In function ‘int main(int, char**)’:
/build/reproducible-path/xwaylandvideobridge-0.4.0/src/main.cpp:30:26: warning: ‘Qt::AA_UseHighDpiPixmaps’ is deprecated: High-DPI pixmaps are always enabled. This attribute no longer has any effect. [-Wdeprecated-declarations]
   30 |     app.setAttribute(Qt::AA_UseHighDpiPixmaps);
      |                          ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs.h:12,
                 from /usr/include/x86_64-linux-gnu/qt6/QtCore/qobject.h:10,
                 from /usr/include/x86_64-linux-gnu/qt6/QtCore/QObject:1,
                 from /build/reproducible-path/xwaylandvideobridge-0.4.0/src/xwaylandvideobridge.h:10,
                 from /build/reproducible-path/xwaylandvideobridge-0.4.0/src/main.cpp:9:
/usr/include/x86_64-linux-gnu/qt6/QtCore/qnamespace.h:438:9: note: declared here
  438 |         AA_UseHighDpiPixmaps Q_DECL_ENUMERATOR_DEPRECATED_X(
      |         ^~~~~~~~~~~~~~~~~~~~
At global scope:
cc1plus: note: unrecognized command-line option ‘-Wno-c99-extensions’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-gnu-statement-expression-from-macro-expansion’ may have been intended to silence earlier diagnostics
/build/reproducible-path/xwaylandvideobridge-0.4.0/src/xwaylandvideobridge.cpp: In constructor ‘XwaylandVideoBridge::XwaylandVideoBridge(QObject*)’:
/build/reproducible-path/xwaylandvideobridge-0.4.0/src/xwaylandvideobridge.cpp:103:21: warning: ‘void KStatusNotifierItem::addAction(const QString&, QAction*)’ is deprecated: Since 6.6. Add actions to contextMenu() [-Wdeprecated-declarations]
  103 |     m_sni->addAction("quitAction", quitAction);
      |     ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/KF6/KStatusNotifierItem/KStatusNotifierItem:1,
                 from /build/reproducible-path/xwaylandvideobridge-0.4.0/src/xwaylandvideobridge.cpp:18:
/usr/include/KF6/KStatusNotifierItem/kstatusnotifieritem.h:403:10: note: declared here
  403 |     void addAction(const QString &name, QAction *action);
      |          ^~~~~~~~~
At global scope:
cc1plus: note: unrecognized command-line option ‘-Wno-c99-extensions’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-gnu-statement-expression-from-macro-expansion’ may have been intended to silence earlier diagnostics
[ 92%] Linking CXX executable ../bin/xwaylandvideobridge
cd /build/reproducible-path/xwaylandvideobridge-0.4.0/obj-x86_64-linux-gnu/src && /usr/bin/cmake -E cmake_link_script CMakeFiles/xwaylandvideobridge.dir/link.txt --verbose=1
/usr/bin/ld: CMakeFiles/xwaylandvideobridge.dir/main.cpp.o:(.rodata+0x0): multiple definition of `QtPrivate::IsFloatType_v<_Float16>'; CMakeFiles/xwaylandvideobridge.dir/xwaylandvideobridge_autogen/mocs_compilation.cpp.o:(.rodata+0x2b8): first defined here
/usr/bin/ld: CMakeFiles/xwaylandvideobridge.dir/xwaylandvideobridge.cpp.o:(.rodata+0x0): multiple definition of `QtPrivate::IsFloatType_v<_Float16>'; CMakeFiles/xwaylandvideobridge.dir/xwaylandvideobridge_autogen/mocs_compilation.cpp.o:(.rodata+0x2b8): first defined here
/usr/bin/ld: CMakeFiles/xwaylandvideobridge.dir/contentswindow.cpp.o:(.rodata+0x0): multiple definition of `QtPrivate::IsFloatType_v<_Float16>'; CMakeFiles/xwaylandvideobridge.dir/xwaylandvideobridge_autogen/mocs_compilation.cpp.o:(.rodata+0x2b8): first defined here
/usr/bin/ld: CMakeFiles/xwaylandvideobridge.dir/x11recordingnotifier.cpp.o:(.rodata+0x0): multiple definition of `QtPrivate::IsFloatType_v<_Float16>'; CMakeFiles/xwaylandvideobridge.dir/xwaylandvideobridge_autogen/mocs_compilation.cpp.o:(.rodata+0x2b8): first defined here
/usr/bin/ld: CMakeFiles/xwaylandvideobridge.dir/xdp_dbus_screencast_interface.cpp.o:(.rodata+0x30c): multiple definition of `QtPrivate::IsFloatType_v<_Float16>'; CMakeFiles/xwaylandvideobridge.dir/xwaylandvideobridge_autogen/mocs_compilation.cpp.o:(.rodata+0x2b8): first defined here
/usr/bin/ld: CMakeFiles/xwaylandvideobridge.dir/xwaylandvideobridge_debug.cpp.o:(.rodata+0x0): multiple definition of `QtPrivate::IsFloatType_v<_Float16>'; CMakeFiles/xwaylandvideobridge.dir/xwaylandvideobridge_autogen/mocs_compilation.cpp.o:(.rodata+0x2b8): first defined here
collect2: error: ld returned 1 exit status
make[3]: *** [src/CMakeFiles/xwaylandvideobridge.dir/build.make:230: bin/xwaylandvideobridge] Error 1
make[3]: Leaving directory '/build/reproducible-path/xwaylandvideobridge-0.4.0/obj-x86_64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:469: src/CMakeFiles/xwaylandvideobridge.dir/all] Error 2
make[2]: Leaving directory '/build/reproducible-path/xwaylandvideobridge-0.4.0/obj-x86_64-linux-gnu'
make[1]: *** [Makefile:149: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/xwaylandvideobridge-0.4.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:8: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2