Bug 2383228 - python-mapnik: FTBFS with pybind11 3.0
Summary: python-mapnik: FTBFS with pybind11 3.0
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: python-mapnik
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Tom Hughes
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 2367888
TreeView+ depends on / blocked
 
Reported: 2025-07-24 12:42 UTC by Cristian Le
Modified: 2025-11-04 00:08 UTC (History)
1 user (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2025-11-04 00:08:59 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github mapnik python-mapnik pull 291 0 None Merged Pybind11 v3.0.0 2025-07-24 15:01:06 UTC

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.


Note You need to log in before you can comment on or make changes to this bug.