Package: libpython3.12-dev
Version: 3.12.8-2
Severity: serious
Justification: makes another package (pyqt6) FTBFS

Dear Maintainer,

When building pyqt6 with the latest python3.12 from sid, I get the following
error:

  g++ -c -pipe -g -O2 -ffile-prefix-map=/pyqt6=. -fstack-protector-strong 
-fstack-clash-protection -Wformat -Werror=format-security -fcf-protection 
-Wdate-time -D_FORTIFY_SOURCE=2 -O2 -fno-exceptions -Wall -Wextra -D_REENTRANT 
-fPIC -DPy_LIMITED_API=0x03090000 -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_PLUGIN 
-DQT_CORE_LIB -I. -I/usr/include/dbus-1.0 
-I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/python3.12 
-I/usr/include/x86_64-linux-gnu/qt6 -I/usr/include/x86_64-linux-gnu/qt6/QtCore 
-I. -I/usr/lib/x86_64-linux-gnu/qt6/mkspecs/linux-g++ -o dbus.o 
../../../../dbus/dbus.cpp
  In file included from /usr/include/c++/14/utility:68,
                   from /usr/include/x86_64-linux-gnu/qt6/QtCore/qglobal.h:15,
                   from 
/usr/include/x86_64-linux-gnu/qt6/QtCore/qcoreapplication.h:7,
                   from 
/usr/include/x86_64-linux-gnu/qt6/QtCore/QCoreApplication:1,
                   from ../../../../dbus/dbus.cpp:29:
  /usr/include/c++/14/bits/stl_relops.h:86:5: error: template with C linkage
     86 |     template <class _Tp>
        |     ^~~~~~~~
  In file included from /usr/include/python3.12/Python.h:107,
                   from /usr/include/dbus-1.0/dbus/dbus-python.h:34,
                   from ../../../../dbus/dbus.cpp:27:
  /usr/include/python3.12/tracemalloc.h:4:1: note: ‘extern "C"’ linkage started 
here
      4 | extern "C" {
        | ^~~~~~~~~~

This happened because of the following upstream commit:
https://github.com/python/cpython/commit/65bca19db54eb765

It changed the structure of tracemalloc.h to the following:

  #ifndef Py_TRACEMALLOC_H
  #define Py_TRACEMALLOC_H
  #ifdef __cplusplus
  extern "C" {
  #endif

  #ifndef Py_LIMITED_API
  /* ... */

  #ifdef __cplusplus
  }
  #endif
  #endif /* !Py_LIMITED_API */
  #endif /* !Py_TRACEMALLOC_H */

Here, if Py_LIMITED_API is defined, the `extern "C"` block is opened but never
closed.

--
Dmitry Shachnev

Attachment: signature.asc
Description: PGP signature

Reply via email to