Bug 2383228

Summary: python-mapnik: FTBFS with pybind11 3.0
Product: [Fedora] Fedora Reporter: Cristian Le <fedora>
Component: python-mapnikAssignee: Tom Hughes <tom>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: tom
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-11-04 00:08:59 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2367888    

Description Cristian Le 2025-07-24 12:42:30 UTC
Dear package maintainer,

This is an automated bug created due to a FTBFS when rebuilding this package with pybind11 3.0.

The rebuild is being tracked in https://copr.fedorainfracloud.org/coprs/lecris/pybind11-3.0/package/python-mapnik.

If upstream supports both pybind11 3.x and 2.x with the same codebase, feel free to update the package ahead of the
pybind11 update and close this bug as desired. Otherwise please let us know about the incompatibility so that we can
coordinate a side-tag update together.

Let me know if you encounter any issues, or need any other help.

Comment 1 Tom Hughes 2025-07-24 13:28:18 UTC
Do you have any actionable information?

You say it doesn't work but you've provided no logs or other information to shows how exactly it fails.

I have no idea what upstream supports.

Comment 2 Tom Hughes 2025-07-24 13:29:11 UTC
Is there at least some documentation on differences between pybind 2 and 3 and what might need to be changed?

Comment 3 Tom Hughes 2025-07-24 13:35:27 UTC
Upstream actually bumped the pybind11 requirement to 3.0.0 last week in https://github.com/mapnik/python-mapnik/commit/fa8d069f84136716b45ceb45faef87d336b54d64 but they didn't actually change any code so they presumably think it works.

Comment 4 Cristian Le 2025-07-24 15:01:07 UTC
Yeah, opening these primary as a tracker to see what are the blockers here. I believe the compatible PR for this one is [1]. In the rebuild it reports that there are issues when running pytest
```
...
  Binary file "/builddir/build/BUILD/python-mapnik-3.0.23_20240614git248003c-build/BUILDROOT/usr/lib64/python3.14/site-packages/mapnik/_mapnik.cpython-314-aarch64-linux-gnu.so", at +0x1c238c [0xffff891c238c]
  Binary file "/lib64/libpython3.14.so.1.0", at PyModule_ExecDef+0xd4 [0xffff8b7267c4]
  Binary file "/lib64/libpython3.14.so.1.0", at +0x24fae4 [0xffff8b72fae4]
  Binary file "/lib64/libpython3.14.so.1.0", at _PyEval_EvalFrameDefault+0x6408 [0xffff8b600ce8]
  Binary file "/lib64/libpython3.14.so.1.0", at +0x15f488 [0xffff8b63f488]
  Binary file "/lib64/libpython3.14.so.1.0", at +0x14ffa8 [0xffff8b62ffa8]
  Binary file "/lib64/libpython3.14.so.1.0", at PyObject_CallMethodObjArgs+0xc8 [0xffff8b678fc8]
  Binary file "/lib64/libpython3.14.so.1.0", at PyImport_ImportModuleLevelObject+0x234 [0xffff8b677d74]
  Binary file "/lib64/libpython3.14.so.1.0", at _PyEval_ImportName+0xd0 [0xffff8b716950]
  Binary file "/lib64/libpython3.14.so.1.0", at _PyEval_EvalFrameDefault+0x8c1c [0xffff8b6034fc]
  Binary file "/lib64/libpython3.14.so.1.0", at +0x116210 [0xffff8b5f6210]
  <truncated rest of calls>
/var/tmp/rpm-tmp.LUEWos: line 58:   906 Aborted                    (core dumped) PGHOST="$PWD" LANG="C.UTF-8" CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}" PATH="/builddir/build/BUILD/python-mapnik-3.0.23_20240614git248003c-build/BUILDROOT/usr/bin:$PATH" PYTHONPATH="${PYTHONPATH:-/builddir/build/BUILD/python-mapnik-3.0.23_20240614git248003c-build/BUILDROOT/usr/lib64/python3.14/site-packages:/builddir/build/BUILD/python-mapnik-3.0.23_20240614git248003c-build/BUILDROOT/usr/lib/python3.14/site-packages}" PYTHONDONTWRITEBYTECODE=1 PYTEST_ADDOPTS="${PYTEST_ADDOPTS:-} --ignore=/builddir/build/BUILD/python-mapnik-3.0.23_20240614git248003c-build/python-mapnik-248003c9da0de1ec7996cebd007c982f9875f2a3/.pyproject-builddir" PYTEST_XDIST_AUTO_NUM_WORKERS="${PYTEST_XDIST_AUTO_NUM_WORKERS:-4}" /usr/bin/pytest test/python_tests
```

If you can open a PR cherry-picking that change, it would help a lot, otherwise, I will get to it later after I've gone through all the issues once.

[1]: https://github.com/mapnik/python-mapnik/pull/291

Comment 5 Tom Hughes 2025-07-24 17:17:03 UTC
I'll probably just update the snapshot rather than trying to cherry pick as that module doesn't really get releases, or hasn't done for ten years.

That will be easier to do once the pybind11 update is in and I have a way to test things though - it's all a bit chicken and egg but it may be easier to accept this will be broken until I can fix it.

Comment 6 Cristian Le 2025-11-03 10:56:37 UTC
@tom do you want to take over updating this or shall I make a quick PR about it? Sorry for taking so long to do this update.

Comment 7 Tom Hughes 2025-11-03 20:39:09 UTC
I'm working on updating but the upstream patch for pybind11 wants 3.0.1 and rawhide only has 3.0 at the moment.

It also wants setuptools 80.9 and rawhide only has 78.1.1 currently.

Possibly those aren't real hard requirements and I can downgrade them...

Comment 8 Tom Hughes 2025-11-04 00:08:59 UTC
Well that seems to have worked so there is now a new build in rawhide.