- Package:
- release.debian.org
- Source:
- release.debian.org
- Submitter:
- Timo Röhling
- Date:
- 2025-08-15 15:45:02 UTC
- Severity:
- normal
Dear Release Team, I'd like to transition the nanobind package after an ABI bump, which requires a rebuild of at least fenics-dolfinx as it exposes the nanobind ABI. Ben file: title = "nanobind"; is_affected = .depends ~ /\bpython3-nanobind\b/ | .depends ~ /\bpython3-nanobind-abi[0-9]+\b/ | .provides ~ /\bpython3-nanobind-abi[0-9]+\b/; is_good = .depends ~ /\bpython3-nanobind-abi16\b/ | .provides ~ /\bpython3-nanobind-abi16\b/; is_bad = .depends ~ /bpython3-nanobind-abi15\b/ | .provides ~ /\bpython3-nanobind-abi15\b/; -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEmwPruYMA35fCsSO/zIxr3RQD9MoFAmicg+4ACgkQzIxr3RQD 9MoLeA/+Ki7BrxFkrxZQqka6PN3HQpTpB6pkHR2QINXnFAMtQh5aHxMeJp+8xfbG IVLx2+GBY1q6CGW39aWqewa/OBNQ+DT614qqo7WEmlzXbDAnOzylV/3QlYS0O/f6 Pr1fJmZmE3q0Q7WRYrP6vw5cG1pW1elqKfEcAJuiEBtDedhnwQOQuhokc2f7Ml9r ci0TOKOR6Zl5SXawFs4+wjgCEfoiJ4DHcnEkB6LKo4w08R2FiqF1r4QoiSWgXJit S4AK04Th9ILjNIdB0GBVpMLp0ALJ3YJZx/BBVKr/EUHKNZhMXOhMkl7h9QbI6jF0 Elv+QtRq6rqRzTYZc0T3FUJ/cGh0rx98GZAGZZFK49ptOd3SzZhYX9aiCFdcoyey S/vM4Ep7wQW2jAzh+Mzr61DsvDuEDgE7L4+iTiMVY69FXskZoMugWlxm28hJwOy2 LdW4TR5v7HBVbCR4Qvlxhpu84RjjyDNWKTf3M8UieRyTPWNcL1KeQ/mVbpXHByad P87TDBeSvw3D5WkQm57ETQj8pYC1bmZLfCftk35tHKJ6kd2bF7PuHF4PnhVKGlD0 BwyKclC7m/GsIyeaHV9+Xuk8sk79Y6nrGLYfxSiZV0/BXKva0ZMKe7ZSGky9Xzet t3G7WDszKbK+tOBX7AP9Qa+n0jcAOXs5exNL2dL5eannPNDb5LQ= =ENjJ -----END PGP SIGNATURE-----
Thanks for this Timo. nanobind 2.8 is also needed for scipy 1.16 support. I suspect the entire fenicsx stack will need rebuilding. This python3-nanobind-abi is not being used as a Dependency by the needing packages. Is there a way to get it declared? Dependencies on the numpy abi are generated by dh_numpy3, activated by dh-sequence-numpy3. Should we create a dh_nanobind tool (with dh-sequence-nanobind) for the client packages to use? That would help streamline these nanobind transitions. Drew
Thanks for this Timo. nanobind 2.8 is also needed for scipy 1.16 support. I suspect the entire fenicsx stack will need rebuilding. This python3-nanobind-abi is not being used as a Dependency by the needing packages. Is there a way to get it declared? Dependencies on the numpy abi are generated by dh_numpy3, activated by dh-sequence-numpy3. Should we create a dh_nanobind tool (with dh-sequence-nanobind) for the client packages to use? That would help streamline these nanobind transitions. Drew
Hi Drew, * Drew Parsons <dparsons@emerall.com> [2025-08-13 16:43]: I added a .pydist file which is installed as /usr/share/python3/dist/python3-nanobind and injects the correct dependencies; python3-cffi does it the same way. For some reason, this does not seem to get picked up by fenics-dolfinx, though. I'm not sure if this is an error on my part or if there is a bug in the (quite complex) d/rules of fenics-dolfinx. Cheers Timo
I don't know the .pydist mechanism deeply, but reading the dh_python3
man page, I see it's operating through the Python Requires-Dist
declarations, the same one that dh_python3 uses to identify normal
python package dependencies.
For python3-dolfinx-real and python3-dolfinx-complex we added the
dependency manually, handling ${nanobind:Upstream-Version} ourselves.
But we didn't (yet) do that for python3-basix, or python3-dolfinx-mpc or
python3-scifem.
I think the difference with nanobind is that these client packages only
need nanobind at build time, not a runtime. Their build uses nanobind
to generate the python extension library, but after that the symbols are
already in the library and the package doesn't need python3-nanobind
when being used.
In that sense, the .pydist is right for packages that do use nanobind at
runtime,
but doesn't directly help packages that use it only for building python
extensions.
It seems like we might want the tools to generate a "Built-Using" entry.
Drew
Dear Release Team, hi Timo, FYI a transition of nanobind will require to rebuild fenics-basix too, in addition to fenics-dolfinx. Upstream FEniCS (which is the same for both libraries) may release a new version of both towards the end of the summer, so it's good to rebuild the version we have now and get ready with the newest nanobind in preparation for the upcoming FEniCS release Thanks, Francesco
Dear Release Team, hi Timo, FYI a transition of nanobind will require to rebuild fenics-basix too, in addition to fenics-dolfinx. Upstream FEniCS (which is the same for both libraries) may release a new version of both towards the end of the summer, so it's good to rebuild the version we have now and get ready with the newest nanobind in preparation for the upcoming FEniCS release Thanks, Francesco