Subject: Re: pyotherside: ftbfs with GCC-15

From: Felix Zielcke <[email-masked]>
Date: Thu, 13 Mar 2025 18:37:23 +0100

Control: tag -1 unreproducible

Am Montag, dem 17.02.2025 um 17:46 +0000 schrieb Matthias Klose:
> Package: src:pyotherside
> Version: 1.6.1-1
> Severity: important
> Tags: sid forky
> User: [email-masked]
> Usertags: ftbfs-gcc-15
> 
[...]
> 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/pyotherside_1.6.1-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++ 
> 
> [...]
> g++ -Wl,-z,relro -Wl,-z,now -Wl,-rpath-link,/usr/lib/x86_64-linux-gnu
> -shared -o libpyothersideplugin.so pyotherside_plugin.o
> qpython_imageprovider.o pyglarea.o pyglrenderer.o pyfbo.o
> pythonlib_loader.o qpython.o qpython_worker.o qpython_priv.o
> global_libpython_loader.o pyobject_ref.o qobject_ref.o
> qrc_qrc_importer.o moc_pyotherside_plugin.o moc_pyglarea.o
> moc_pyfbo.o moc_qpython.o moc_qpython_worker.o moc_qpython_priv.o
> moc_qobject_ref.o  /usr/lib/x86_64-linux-gnu/libQt6Quick.so
> /usr/lib/x86_64-linux-gnu/libQt6OpenGL.so /usr/lib/x86_64-linux-
> gnu/libQt6Svg.so /usr/lib/x86_64-linux-gnu/libQt6Gui.so
> /usr/lib/x86_64-linux-gnu/libGLX.so /usr/lib/x86_64-linux-
> gnu/libOpenGL.so /usr/lib/x86_64-linux-gnu/libQt6QmlModels.so
> /usr/lib/x86_64-linux-gnu/libQt6Qml.so /usr/lib/x86_64-linux-
> gnu/libQt6QmlBuiltins.a /usr/lib/x86_64-linux-gnu/libQt6Network.so
> /usr/lib/x86_64-linux-gnu/libQt6Core.so -lpthread -lGLX -lOpenGL  -
> L/usr/lib/python3.13/config-3.13-x86_64-linux-gnu -L/usr/lib/x86_64-
> linux-gnu -lpython3.13 -ldl -lm  
> /usr/bin/ld: qpython_imageprovider.o:(.rodata+0x0): multiple
> definition of `QtPrivate::IsFloatType_v<_Float16>';
> pyotherside_plugin.o:(.rodata+0x0): first defined here
> /usr/bin/ld: pyglarea.o:(.rodata+0x0): multiple definition of
> `QtPrivate::IsFloatType_v<_Float16>';
> pyotherside_plugin.o:(.rodata+0x0): first defined here
> /usr/bin/ld: pyglrenderer.o:(.rodata+0x0): multiple definition of
> `QtPrivate::IsFloatType_v<_Float16>';
> pyotherside_plugin.o:(.rodata+0x0): first defined here
> /usr/bin/ld: pyfbo.o:(.rodata+0x0): multiple definition of
> `QtPrivate::IsFloatType_v<_Float16>';
> pyotherside_plugin.o:(.rodata+0x0): first defined here
> /usr/bin/ld: pythonlib_loader.o:(.rodata+0x0): multiple definition of
> `QtPrivate::IsFloatType_v<_Float16>';
> pyotherside_plugin.o:(.rodata+0x0): first defined here
> /usr/bin/ld: qpython.o:(.rodata+0x0): multiple definition of
> `QtPrivate::IsFloatType_v<_Float16>';
> pyotherside_plugin.o:(.rodata+0x0): first defined here
> /usr/bin/ld: qpython_worker.o:(.rodata+0x0): multiple definition of
> `QtPrivate::IsFloatType_v<_Float16>';
> pyotherside_plugin.o:(.rodata+0x0): first defined here
> /usr/bin/ld: qpython_priv.o:(.rodata+0x0): multiple definition of
> `QtPrivate::IsFloatType_v<_Float16>';
> pyotherside_plugin.o:(.rodata+0x0): first defined here
> /usr/bin/ld: pyobject_ref.o:(.rodata+0x0): multiple definition of
> `QtPrivate::IsFloatType_v<_Float16>';
> pyotherside_plugin.o:(.rodata+0x0): first defined here
> /usr/bin/ld: qobject_ref.o:(.rodata+0x0): multiple definition of
> `QtPrivate::IsFloatType_v<_Float16>';
> pyotherside_plugin.o:(.rodata+0x0): first defined here
> /usr/bin/ld: moc_pyotherside_plugin.o:(.rodata+0x64): multiple
> definition of `QtPrivate::IsFloatType_v<_Float16>';
> pyotherside_plugin.o:(.rodata+0x0): first defined here
> /usr/bin/ld: moc_pyglarea.o:(.rodata+0x1f4): multiple definition of
> `QtPrivate::IsFloatType_v<_Float16>';
> pyotherside_plugin.o:(.rodata+0x0): first defined here
> /usr/bin/ld: moc_pyfbo.o:(.rodata+0x80): multiple definition of
> `QtPrivate::IsFloatType_v<_Float16>';
> pyotherside_plugin.o:(.rodata+0x0): first defined here
> /usr/bin/ld: moc_qpython.o:(.rodata+0x974): multiple definition of
> `QtPrivate::IsFloatType_v<_Float16>';
> pyotherside_plugin.o:(.rodata+0x0): first defined here
> /usr/bin/ld: moc_qpython_worker.o:(.rodata+0x238): multiple
> definition of `QtPrivate::IsFloatType_v<_Float16>';
> pyotherside_plugin.o:(.rodata+0x0): first defined here
> /usr/bin/ld: moc_qpython_priv.o:(.rodata+0x9c): multiple definition
> of `QtPrivate::IsFloatType_v<_Float16>';
> pyotherside_plugin.o:(.rodata+0x0): first defined here
> /usr/bin/ld: moc_qobject_ref.o:(.rodata+0xa0): multiple definition of
> `QtPrivate::IsFloatType_v<_Float16>';
> pyotherside_plugin.o:(.rodata+0x0): first defined here
> collect2: error: ld returned 1 exit status
> make[3]: *** [Makefile:240: libpyothersideplugin.so] Error 1
> make[3]: Leaving directory '/build/reproducible-path/pyotherside-
> 1.6.1/build6/src'
> make[2]: *** [Makefile:49: sub-src-make_first] Error 2
> make[2]: Leaving directory '/build/reproducible-path/pyotherside-
> 1.6.1/build6'
> dh_auto_build: error: cd build6 && make -j8 returned exit code 2
> make[1]: *** [debian/rules:15: override_dh_auto_build] Error 25
> make[1]: Leaving directory '/build/reproducible-path/pyotherside-
> 1.6.1'
> make: *** [debian/rules:8: binary] Error 2
> dpkg-buildpackage: error: debian/rules binary subprocess returned
> exit status 2
> 

Hi Matthias,

I fail to reproduce this. I tried both with pyotherside 1.6.1-1 (which
you reported this against) and 1.6.2-1 currently in unstable.

Building was done with:

sbuild -d unstable --extra-repository='deb http://deb.debian.org/debian
experimental main' --build-dep-resolver=aptitude --add-depends='g++ (>=
4:15.0.0-2)' --add-conflicts=gcc-14

And the log shows that gcc/g++ 4.15 gets installed and 14 gets removed:

 g++ (= 4:15.0.0-2),
 g++-15 (= 15-20250220-1),
 g++-15-x86-64-linux-gnu (= 15-20250220-1),
 g++-x86-64-linux-gnu (= 4:15.0.0-2),
 gcc (= 4:15.0.0-2),
 gcc-15 (= 15-20250220-1),
 gcc-15-base (= 15-20250220-1),
 gcc-15-x86-64-linux-gnu (= 15-20250220-1),
 gcc-x86-64-linux-gnu (= 4:15.0.0-2),
[...]
Removing g++-14 (14.2.0-18) ...
Removing g++-14-x86-64-linux-gnu (14.2.0-18) ...
Removing gcc-14 (14.2.0-18) ...
Removing gcc-14-x86-64-linux-gnu (14.2.0-18) ...
Removing libstdc++-14-dev:amd64 (14.2.0-18) ...
Removing libgcc-14-dev:amd64 (14.2.0-18) ...

So is this now still a problem or has it been somehow fixed?

Regards
Felix