Boost Python for Python 3.11
I started to look at the package python-mapnik. I believe that Boost >= 1.8.x is required for Python 3.11. I tested including boost 1.8.4 in the repo build path - build gets past the following error (there are other issues not linked to Boost). I wanted to check what is the correct way to proceed for Python 3.11 and Boost Python linked packages. Here is an example of the build failure for python-mapnik: (tested for both Boost 1.66 and 1.75) /usr/include/boost/python/class.hpp:204:9: required from ‘boost::python::class_<T, X1, X2, X3>::class_(const char*, const boost::python::init_base<DerivedT>&) [with DerivedT = boost::python::init<int, int, int, int>; W = mapnik::color; X1 = boost::python::detail::not_specified; X2 = boost::python::detail::not_specified; X3 = boost::python::detail::not_specified]’ src/mapnik_color.cpp:55:9: required from here /usr/include/boost/python/object/make_instance.hpp:50:31: error: lvalue required as left operand of assignment Py_SIZE(instance) = offsetof(instance_t, storage); ^
Am 18.12.23 um 15:17 schrieb Christopher HORLER:
I started to look at the package python-mapnik.
I believe that Boost >= 1.8.x is required for Python 3.11.
I tested including boost 1.8.4 in the repo build path - build gets past the following error (there are other issues not linked to Boost). I wanted to check what is the correct way to proceed for Python 3.11 and Boost Python linked packages.
Here is an example of the build failure for python-mapnik: (tested for both Boost 1.66 and 1.75)
/usr/include/boost/python/class.hpp:204:9: required from ‘boost::python::class_<T, X1, X2, X3>::class_(const char*, const boost::python::init_base<DerivedT>&) [with DerivedT = boost::python::init<int, int, int, int>; W = mapnik::color; X1 = boost::python::detail::not_specified; X2 = boost::python::detail::not_specified; X3 = boost::python::detail::not_specified]’ src/mapnik_color.cpp:55:9: required from here /usr/include/boost/python/object/make_instance.hpp:50:31: error: lvalue required as left operand of assignment Py_SIZE(instance) = offsetof(instance_t, storage); ^
Leap or Tumbleweed? The codebase for mapnik and python-mapnik is years old. It might very well be that a boost compatible with python 3.11 is too new for mapnik. See also https://build.opensuse.org/package/show/Application:Geo/mapnik#comment-18091.... I suspect that is the reason why it is not in Factory. - Ben
Leap I hadn't seen that bug report (linked to in your link comment) - it says it's a regression and also gives a workaround (applicable for 1.8.1). I'll try building with Boost 1.8.4 both mapnik and python-mapnik and report back. Maybe my question is not mapnik specific though - shouldn't there be a Boost version in Leap compatible with Python 3.11?
working builds (mapnik, python311-mapnik) https://build.opensuse.org/project/show/home:chorler:branches:Application:Ge... Boost 1.84 was a necessary dependency as expected. When will Boost 1.8.x be available in Leap?
Am 23.12.23 um 18:40 schrieb Christopher HORLER:
working builds (mapnik, python311-mapnik)
https://build.opensuse.org/project/show/home:chorler:branches:Application:Ge...
Boost 1.84 was a necessary dependency as expected.
When will Boost 1.8.x be available in Leap?
Probably never. That's however not a question for the python mailinglist. Good luck asking the factory list or another appropriate place. - Ben
okay, I guess I'll just keep my own repo for my own use - relying upon devel:libraries:c_c++
participants (2)
-
Ben Greiner
-
Christopher HORLER