Package: libboost-python1.74-dev
Version: 1.74.0-17+b2
Severity: serious
Tags: patch
Justification: Breaks reverse dependencies with Python 3.11
X-Debbugs-Cc: stu...@debian.org, debian-pyt...@lists.debian.org


Dear Maintainer,

Python 3.11 has changed some details around types and GC; boost's enum.cpp
needs modifying to cope. The result of this change is that trying to
load an extension compiled with Debian's boost 1.74 results in a C++
exception being thrown and, since not properly handled, the following
rather obscure error:

SystemError: initialization of $module raised unreported exception

Further details courtesy of Alastair McKinstry's debugging work are to
be found at

https://bugs.debian.org/1024911#14

So far, we've spotted this problem in:

cctbx: https://bugs.debian.org/1024859
ecflow: https://bugs.debian.org/1024911
python-pgmagick: https://bugs.debian.org/1023909

The attached patch is a (trivial) backport of the upstream change for
this:

https://github.com/boostorg/python/commit/a218babc8daee904a83f550fb66e5cb3f1cb3013

I've verified that the attached patch solves the Python 3.11 incompatibility
of python-pgmagick, allowing it to successfully build, meaning that it is
now able to load its boost-python extensions for the test suite.

regards
Stuart
Description: Tweak enum for python 3.11 compatibility
 Backport upstream patch for compatibility with python 3.11
Origin: 
https://github.com/boostorg/python/commit/a218babc8daee904a83f550fb66e5cb3f1cb3013
--- a/libs/python/src/object/enum.cpp
+++ b/libs/python/src/object/enum.cpp
@@ -119,7 +119,6 @@
 #if PY_VERSION_HEX < 0x03000000
     | Py_TPFLAGS_CHECKTYPES
 #endif
-    | Py_TPFLAGS_HAVE_GC
     | Py_TPFLAGS_BASETYPE,                  /* tp_flags */
     0,                                      /* tp_doc */
     0,                                      /* tp_traverse */

Reply via email to