ros / geometry2

A set of ROS packages for keeping track of coordinate transforms.
191 stars 279 forks source link

Fails to build on Python 3.13: PyEval_CallObject removed #568

Open stefanor opened 2 months ago

stefanor commented 2 months ago

https://github.com/ros/geometry2/blob/6df9e94363061a24ba890a6ff29771a96b0d756b/tf2_py/src/tf2_py.cpp#L89

cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/tf2_ros && /usr/bin/c++ -DBOOST_ATOMIC_DYN_LINK -DBOOST_ATOMIC_NO_LIB -DBOOST_SYSTEM_DYN_LINK -DBOOST_SYSTEM_NO_LIB -DBOOST_THREAD_DYN_LINK -DBOOST_THREAD_NO_LIB -DROSCONSOLE_BACKEND_LOG4CXX -DROS_BUILD_SHARED_LIBS=1 -DROS_PACKAGE_NAME=\"tf2_ros\" -Dtf2_ros_EXPORTS -I/<<PKGBUILDDIR>>/tf2_ros/include -I/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/devel/include -I/<<PKGBUILDDIR>>/tf2/include -I/<<PKGBUILDDIR>>/tf2_msgs/include -I/usr/include/xmlrpcpp -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 tf2_ros/CMakeFiles/tf2_ros.dir/src/static_transform_broadcaster.cpp.o -MF CMakeFiles/tf2_ros.dir/src/static_transform_broadcaster.cpp.o.d -o CMakeFiles/tf2_ros.dir/src/static_transform_broadcaster.cpp.o -c /<<PKGBUILDDIR>>/tf2_ros/src/static_transform_broadcaster.cpp
/<<PKGBUILDDIR>>/tf2_py/src/tf2_py.cpp: In function ‘PyObject* transform_converter(const geometry_msgs::TransformStamped*)’:
/<<PKGBUILDDIR>>/tf2_py/src/tf2_py.cpp:89:11: error: ‘PyEval_CallObject’ was not declared in this scope; did you mean 'PyObject_CallObject’?
   89 |   pinst = PyEval_CallObject(pclass, pargs);
      |           ^~~~~~~~~~~~~~~~~
      |           PyObject_CallObject
make[3]: *** [tf2_py/CMakeFiles/tf2_py.dir/build.make:79: tf2_py/CMakeFiles/tf2_py.dir/src/tf2_py.cpp.o] Error 1

https://docs.python.org/3.13/whatsnew/3.13.html#removed-c-apis