Bug#1145848: Bug #1145858: Patch available at Salsa
Rafael Laboissière
rafael at debian.org
Sun Aug 30 13:51:09 BST 2026
Please, forget my previous message. It was sent to the wrong address.
Best,
Rafael
* Rafael Laboissière <rafael at debian.org> [2026-08-30 14:20]:
> Control: tags -1 + patch upstream
>
> Hi,
>
> The current issue is due to the removal of the Python 2 compatibility macros in version 4.5.0 of SWIG. [1] According to the SWIG authors, these macros were retained in the generated code (pyhead.swg) solely for user typemaps. All typemap using these macros are updated to call the Python 3 C API directly. .
>
> I have submitted a patch to fix the FTBFS issue as a merge request at Salsa. [2]
>
> Note that there is currently a pull request in the upstream Git repository related to the current issue (PR #2391 [3]).
>
> Best,
>
> Rafael
>
> [1] https://github.com/swig/swig/commit/79f7a2b7cb7ddc256eba09c8770133148025171d
> [2] https://salsa.debian.org/debian/openscap/-/merge_requests/2
> [3] https://github.com/OpenSCAP/openscap/pull/2391/
> Description: Build with swig 4.5.0
> Without this patch, the package FTBFS with swig 4.5.0. This is due to
> the removal of the Python 2 compatibility macros in version 4.5.0. [1]
> According to the SWIG authors, these macros were retained in the
> generated code (pyhead.swg) solely for user typemaps. All typemap
> using these macros are updated to call the Python 3 C API
> directly.
> .
> [1] https://github.com/swig/swig/commit/79f7a2b7cb7ddc256eba09c8770133148025171d
> Author: Rafael Laboissière <rafael at debian.org>
> Bug-Debian: https:/bugs.debian.org/1145848
> Forwarded: not-needed
> Last-Update: 2026-08-30
>
> --- nlopt-2.7.1.orig/src/swig/numpy.i
> +++ nlopt-2.7.1/src/swig/numpy.i
> @@ -77,8 +77,8 @@
> if (py_obj == NULL ) return "C NULL value";
> if (py_obj == Py_None ) return "Python None" ;
> if (PyCallable_Check(py_obj)) return "callable" ;
> - if (PyString_Check( py_obj)) return "string" ;
> - if (PyInt_Check( py_obj)) return "int" ;
> + if (PyBytes_Check( py_obj)) return "string" ;
> + if (PyLong_Check( py_obj)) return "int" ;
> if (PyFloat_Check( py_obj)) return "float" ;
> if (PyDict_Check( py_obj)) return "dict" ;
> if (PyList_Check( py_obj)) return "list" ;
> @@ -1942,7 +1942,7 @@
> (PyObject* array = NULL)
> {
> npy_intp dims[1];
> - if (!PyInt_Check($input))
> + if (!PyLong_Check($input))
> {
> const char* typestring = pytype_string($input);
> PyErr_Format(PyExc_TypeError,
> @@ -1950,7 +1950,7 @@
> typestring);
> SWIG_fail;
> }
> - $2 = (DIM_TYPE) PyInt_AsLong($input);
> + $2 = (DIM_TYPE) PyLong_AsLong($input);
> dims[0] = (npy_intp) $2;
> array = PyArray_SimpleNew(1, dims, DATA_TYPECODE);
> if (!array) SWIG_fail;
> @@ -1970,7 +1970,7 @@
> (PyObject* array = NULL)
> {
> npy_intp dims[1];
> - if (!PyInt_Check($input))
> + if (!PyLong_Check($input))
> {
> const char* typestring = pytype_string($input);
> PyErr_Format(PyExc_TypeError,
> @@ -1978,7 +1978,7 @@
> typestring);
> SWIG_fail;
> }
> - $1 = (DIM_TYPE) PyInt_AsLong($input);
> + $1 = (DIM_TYPE) PyLong_AsLong($input);
> dims[0] = (npy_intp) $1;
> array = PyArray_SimpleNew(1, dims, DATA_TYPECODE);
> if (!array) SWIG_fail;
More information about the debian-science-maintainers
mailing list