Bug#1081637: FTBFS with Python 3.13

Stefano Rivera stefanor at debian.org
Fri Sep 13 11:49:58 BST 2024


Source: nlopt
Version: 2.7.1-5
Severity: normal
Tags: upstream patch
User: debian-python at lists.debian.org
Usertags: python3.13
Forwarded: https://github.com/stevengj/nlopt/issues/565

This package failed build from source when test-built against a version of
python3-defaults that includes 3.13 as a supported version.

To reproduce this issue, build against python3-defaults (python3-all-dev etc.)
from Debian experimental.

What's new in Python 3.13:
https://docs.python.org/3.13/whatsnew/3.13.html

Log snippet:

cd /<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/src/octave && /usr/bin/c++ -DNLOPT_DLL -Dnlopt_optimize_EXPORTS -I/usr/include/octave-9.2.0 -I/usr/include/octave-9.2.0/octave -I/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/src/octave -I/<<PKGBUILDDIR>>/src/api -I/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13 -std=c++11 -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -MD -MT src/octave/CMakeFiles/nlopt_optimize.dir/nlopt_optimize-oct.cc.o -MF CMakeFiles/nlopt_optimize.dir/nlopt_optimize-oct.cc.o.d -o CMakeFiles/nlopt_optimize.dir/nlopt_optimize-oct.cc.o -c /<<PKGBUILDDIR>>/src/octave/nlopt_optimize-oct.cc
/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/src/swig/CMakeFiles/nlopt_python.dir/nloptPYTHON_wrap.cxx: In function ‘double func_python(unsigned int, const double*, double*, void*)’:
/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/src/swig/CMakeFiles/nlopt_python.dir/nloptPYTHON_wrap.cxx:5085:22: error: ‘PyEval_CallObject’ was not declared in this scope; did you mean ‘PyObject_CallObject’?
 5085 |   PyObject *result = PyEval_CallObject((PyObject *) f, arglist);
      |                      ^~~~~~~~~~~~~~~~~
      |                      PyObject_CallObject
/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/src/swig/CMakeFiles/nlopt_python.dir/nloptPYTHON_wrap.cxx: In function ‘void mfunc_python(unsigned int, double*, unsigned int, const double*, double*, void*)’:
/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/src/swig/CMakeFiles/nlopt_python.dir/nloptPYTHON_wrap.cxx:5122:19: error: ‘PyEval_CallObject’ was not declared in this scope; did you mean ‘PyObject_CallObject’?
 5122 |   PyObject *res = PyEval_CallObject((PyObject *) f, arglist);
      |                   ^~~~~~~~~~~~~~~~~
      |                   PyObject_CallObject
/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/src/swig/CMakeFiles/nlopt_python.dir/nloptPYTHON_wrap.cxx: In function ‘PyObject* _wrap_opt_optimize__SWIG_1(PyObject*, Py_ssize_t, PyObject**)’:
/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/src/swig/CMakeFiles/nlopt_python.dir/nloptPYTHON_wrap.cxx:8937:16: warning: argument 2 null where non-null expected [-Wnonnull]
 8937 |     std::memcpy(array_data(resultobj), (&result)->empty() ? NULL : &result[0],
      |     ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 8938 |       sizeof(double) * sz);
      |       ~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/features.h:510,
                 from /usr/include/assert.h:35,
                 from /usr/include/python3.13/Python.h:19,
                 from /<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/src/swig/CMakeFiles/nlopt_python.dir/nloptPYTHON_wrap.cxx:198:
/usr/include/aarch64-linux-gnu/bits/string_fortified.h:26:1: note: in a call to function ‘void* memcpy(void*, const void*, size_t)’ declared ‘nonnull’
   26 | __NTH (memcpy (void *__restrict __dest, const void *__restrict __src,
      | ^~~~~
/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/src/swig/CMakeFiles/nlopt_python.dir/nloptPYTHON_wrap.cxx: In function ‘PyObject* _wrap_opt_get_lower_bounds__SWIG_1(PyObject*, Py_ssize_t, PyObject**)’:
/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/src/swig/CMakeFiles/nlopt_python.dir/nloptPYTHON_wrap.cxx:11170:16: warning: argument 2 null where non-null expected [-Wnonnull]
11170 |     std::memcpy(array_data(resultobj), (&result)->empty() ? NULL : &result[0],
      |     ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11171 |       sizeof(double) * sz);
      |       ~~~~~~~~~~~~~~~~~~~~
/usr/include/aarch64-linux-gnu/bits/string_fortified.h:26:1: note: in a call to function ‘void* memcpy(void*, const void*, size_t)’ declared ‘nonnull’
   26 | __NTH (memcpy (void *__restrict __dest, const void *__restrict __src,
      | ^~~~~
/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/src/swig/CMakeFiles/nlopt_python.dir/nloptPYTHON_wrap.cxx: In function ‘PyObject* _wrap_opt_get_upper_bounds__SWIG_1(PyObject*, Py_ssize_t, PyObject**)’:
/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/src/swig/CMakeFiles/nlopt_python.dir/nloptPYTHON_wrap.cxx:11408:16: warning: argument 2 null where non-null expected [-Wnonnull]
11408 |     std::memcpy(array_data(resultobj), (&result)->empty() ? NULL : &result[0],
      |     ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11409 |       sizeof(double) * sz);
      |       ~~~~~~~~~~~~~~~~~~~~
/usr/include/aarch64-linux-gnu/bits/string_fortified.h:26:1: note: in a call to function ‘void* memcpy(void*, const void*, size_t)’ declared ‘nonnull’
   26 | __NTH (memcpy (void *__restrict __dest, const void *__restrict __src,
      | ^~~~~
/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/src/swig/CMakeFiles/nlopt_python.dir/nloptPYTHON_wrap.cxx: In function ‘PyObject* _wrap_opt_get_xtol_abs__SWIG_1(PyObject*, Py_ssize_t, PyObject**)’:
/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/src/swig/CMakeFiles/nlopt_python.dir/nloptPYTHON_wrap.cxx:11878:16: warning: argument 2 null where non-null expected [-Wnonnull]
11878 |     std::memcpy(array_data(resultobj), (&result)->empty() ? NULL : &result[0],
      |     ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11879 |       sizeof(double) * sz);
      |       ~~~~~~~~~~~~~~~~~~~~
/usr/include/aarch64-linux-gnu/bits/string_fortified.h:26:1: note: in a call to function ‘void* memcpy(void*, const void*, size_t)’ declared ‘nonnull’
   26 | __NTH (memcpy (void *__restrict __dest, const void *__restrict __src,
      | ^~~~~
/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/src/swig/CMakeFiles/nlopt_python.dir/nloptPYTHON_wrap.cxx: In function ‘PyObject* _wrap_opt_get_x_weights__SWIG_1(PyObject*, Py_ssize_t, PyObject**)’:
/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/src/swig/CMakeFiles/nlopt_python.dir/nloptPYTHON_wrap.cxx:12116:16: warning: argument 2 null where non-null expected [-Wnonnull]
12116 |     std::memcpy(array_data(resultobj), (&result)->empty() ? NULL : &result[0],
      |     ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12117 |       sizeof(double) * sz);
      |       ~~~~~~~~~~~~~~~~~~~~
/usr/include/aarch64-linux-gnu/bits/string_fortified.h:26:1: note: in a call to function ‘void* memcpy(void*, const void*, size_t)’ declared ‘nonnull’
   26 | __NTH (memcpy (void *__restrict __dest, const void *__restrict __src,
      | ^~~~~
/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/src/swig/CMakeFiles/nlopt_python.dir/nloptPYTHON_wrap.cxx: In function ‘PyObject* _wrap_opt_get_initial_step(PyObject*, PyObject*)’:
/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/src/swig/CMakeFiles/nlopt_python.dir/nloptPYTHON_wrap.cxx:12918:16: warning: argument 2 null where non-null expected [-Wnonnull]
12918 |     std::memcpy(array_data(resultobj), (&result)->empty() ? NULL : &result[0],
      |     ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12919 |       sizeof(double) * sz);
      |       ~~~~~~~~~~~~~~~~~~~~
/usr/include/aarch64-linux-gnu/bits/string_fortified.h:26:1: note: in a call to function ‘void* memcpy(void*, const void*, size_t)’ declared ‘nonnull’
   26 | __NTH (memcpy (void *__restrict __dest, const void *__restrict __src,
      | ^~~~~
[ 85%] Linking CXX executable t_tutorial
cd /<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/test && /usr/bin/cmake -E cmake_link_script CMakeFiles/t_tutorial.dir/link.txt --verbose=1
/usr/bin/c++ -std=c++11 -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wl,-z,now -rdynamic CMakeFiles/t_tutorial.dir/t_tutorial.cxx.o -o t_tutorial  -Wl,-rpath,/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13 ../libnlopt_cxx.so.0.11.1 -lm
make[4]: Leaving directory '/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13'
[ 85%] Built target t_tutorial
make  -f test/CMakeFiles/testopt.dir/build.make test/CMakeFiles/testopt.dir/depend
make[4]: Entering directory '/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13'
cd /<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13 && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /<<PKGBUILDDIR>> /<<PKGBUILDDIR>>/test /<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13 /<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/test /<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13/test/CMakeFiles/testopt.dir/DependInfo.cmake "--color="
make[4]: *** [src/swig/CMakeFiles/nlopt_python.dir/build.make:79: src/swig/CMakeFiles/nlopt_python.dir/CMakeFiles/nlopt_python.dir/nloptPYTHON_wrap.cxx.o] Error 1
make[4]: Leaving directory '/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13'
make[3]: *** [CMakeFiles/Makefile2:250: src/swig/CMakeFiles/nlopt_python.dir/all] Error 2
make[3]: *** Waiting for unfinished jobs....
make[4]: Leaving directory '/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu-python3.13'

If required, the full build log is available here (for the next 30 days):
https://debusine.debian.net/artifact/710263/

This bug has been filed at "normal" severity, as we haven't started the
transition to add 3.13 as a supported version, yet. This will be raised to RC
as soon as that happens, hopefully well before trixie.

Thanks,

Stefano



More information about the debian-science-maintainers mailing list