#1133610 pyqt6: ftbfs with GCC-16

Package:
src:pyqt6
Source:
src:pyqt6
Submitter:
Emanuele Rocca
Date:
2026-04-13 13:11:02 UTC
Severity:
normal
Tags:
#1133610#5
Date:
2026-04-13 13:10:00 UTC
From:
To:
Hi,

pyqt6 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/pyqt6_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.

[...]


      |                               ^~~~~
In file included from /usr/include/c++/16/unordered_map:44,
                 from /usr/include/c++/16/functional:80,
                 from /usr/include/aarch64-linux-gnu/qt6/QtCore/qcomparehelpers.h:28,
                 from /usr/include/aarch64-linux-gnu/qt6/QtCore/qcompare.h:639,
                 from /usr/include/aarch64-linux-gnu/qt6/QtCore/qnamespace.h:13,
                 from /usr/include/aarch64-linux-gnu/qt6/QtCore/qbytearray.h:10,
                 from /usr/include/aarch64-linux-gnu/qt6/QtCore/qmetatype.h:11:
/usr/include/c++/16/bits/range_access.h:325:24: note: here.  Use ‘-Wsfinae-incomplete=2’ for a diagnostic at that point
  325 |     -> decltype(__cont.data())
      |                 ~~~~~~~^~~~
In file included from /usr/include/aarch64-linux-gnu/qt6/QtCore/qcborvalue.h:13,
                 from /usr/include/aarch64-linux-gnu/qt6/QtCore/qjsonvalue.h:8,
                 from /usr/include/aarch64-linux-gnu/qt6/QtCore/QJsonValue:1,
                 from ../../../../qpy/QtCore/qpycore_api.h:25,
                 from /build/reproducible-path/pyqt6-6.10.2/sip/QtCore/qobject.sip:638:
/usr/include/aarch64-linux-gnu/qt6/QtCore/qregularexpression.h:30:21: warning: defining ‘QRegularExpression’, which previously failed to be complete in a SFINAE context [-Wsfinae-incomplete=]
   30 | class Q_CORE_EXPORT QRegularExpression
      |                     ^~~~~~~~~~~~~~~~~~
/usr/include/c++/16/bits/range_access.h:325:24: note: here.  Use ‘-Wsfinae-incomplete=2’ for a diagnostic at that point
  325 |     -> decltype(__cont.data())
      |                 ~~~~~~~^~~~
In file included from /build/reproducible-path/pyqt6-6.10.2/sip/QtCore/qbitarray.sip:26:
/usr/include/aarch64-linux-gnu/qt6/QtCore/qbitarray.h:12:21: warning: defining ‘QBitArray’, which previously failed to be complete in a SFINAE context [-Wsfinae-incomplete=]
   12 | class Q_CORE_EXPORT QBitArray
      |                     ^~~~~~~~~
/usr/include/c++/16/bits/range_access.h:325:24: note: here.  Use ‘-Wsfinae-incomplete=2’ for a diagnostic at that point
  325 |     -> decltype(__cont.data())
      |                 ~~~~~~~^~~~
/build/reproducible-path/pyqt6-6.10.2/.pybuild/cpython3_3.13/build/QtCore/sipQtCorecmodule.cpp: In function ‘PyObject* slot_QLocale_Language___ne__(PyObject*, PyObject*)’:
/build/reproducible-path/pyqt6-6.10.2/.pybuild/cpython3_3.13/build/QtCore/sipQtCorecmodule.cpp:8332:32: error: no matching function for call to ‘operator!=(QLocale::Language&, const QLocale&)’
 8332 |             sipRes = operator!=(sipCpp, *a0);
      |                      ~~~~~~~~~~^~~~~~~~~~~~~
  • there are 2 candidates
In file included from /usr/include/aarch64-linux-gnu/qt6/QtCore/qcborvalue.h:9:
    • candidate 1: ‘bool operator!=(QCborTag, QCborKnownTags)’
      /usr/include/aarch64-linux-gnu/qt6/QtCore/qcborcommon.h:61:13:
         61 | inline bool operator!=(QCborTag t, QCborKnownTags kt)   { return quint64(t) != quint64(kt); }
            |             ^~~~~~~~
      • no known conversion for argument 1 from ‘QLocale::Language’ to ‘QCborTag’
        /usr/include/aarch64-linux-gnu/qt6/QtCore/qcborcommon.h:61:33:
           61 | inline bool operator!=(QCborTag t, QCborKnownTags kt)   { return quint64(t) != quint64(kt); }
              |                        ~~~~~~~~~^
    • candidate 2: ‘bool operator!=(QCborKnownTags, QCborTag)’
      /usr/include/aarch64-linux-gnu/qt6/QtCore/qcborcommon.h:62:13:
         62 | inline bool operator!=(QCborKnownTags kt, QCborTag t)   { return quint64(t) != quint64(kt); }
            |             ^~~~~~~~
      • no known conversion for argument 1 from ‘QLocale::Language’ to ‘QCborKnownTags’
        /usr/include/aarch64-linux-gnu/qt6/QtCore/qcborcommon.h:62:39:
           62 | inline bool operator!=(QCborKnownTags kt, QCborTag t)   { return quint64(t) != quint64(kt); }
              |                        ~~~~~~~~~~~~~~~^~
/build/reproducible-path/pyqt6-6.10.2/.pybuild/cpython3_3.13/build/QtCore/sipQtCorecmodule.cpp: At global scope:
/build/reproducible-path/pyqt6-6.10.2/.pybuild/cpython3_3.13/build/QtCore/sipQtCorecmodule.cpp:9439:46: warning: ‘QtSystemMsg’ is deprecated: Use QtCriticalMsg instead. [-Wdeprecated-declarations]
 9439 |     {sipName_QtSystemMsg, static_cast<int>(::QtSystemMsg)},
      |                                              ^~~~~~~~~~~
In file included from /usr/include/aarch64-linux-gnu/qt6/QtCore/qglobal.h:47,
                 from /usr/include/aarch64-linux-gnu/qt6/QtCore/qmetatype.h:9:
/usr/include/aarch64-linux-gnu/qt6/QtCore/qlogging.h:37:5: note: declared here
   37 |     QtSystemMsg Q_DECL_ENUMERATOR_DEPRECATED_X("Use QtCriticalMsg instead.") = QtCriticalMsg
      |     ^~~~~~~~~~~
/build/reproducible-path/pyqt6-6.10.2/sip/QtCore/qabstractitemmodel.sip:340:13: warning: ‘void qpycore_gc_modelroledata(PyObject*)’ declared ‘static’ but never defined [-Wunused-function]
  340 | static void qpycore_gc_modelroledata(PyObject *mrd_obj);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [Makefile:1579: sipQtCorecmodule.o] Error 1
make[2]: Leaving directory '/build/reproducible-path/pyqt6-6.10.2/.pybuild/cpython3_3.13/build/QtCore'
make[1]: *** [Makefile:212: sub-QtCore-make_first-ordered] Error 2
make[1]: Leaving directory '/build/reproducible-path/pyqt6-6.10.2/.pybuild/cpython3_3.13/build'
E: pybuild pybuild:485: build: plugin custom failed with: exit code=2: /usr/bin/make -C /build/reproducible-path/pyqt6-6.10.2/.pybuild/cpython3_3.13/build
dh_auto_build: error: pybuild --build -i python{version} -p "3.14 3.13" --parallel=128 returned exit code 13
make: *** [debian/rules:22: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2