On Mon, 30 Mar 2020 at 15:30:01 +0200, Johannes Schauer wrote: > does this mean that build-depending on python3-dev is wrong in general and > should instead be replaced by build-depending on python3-all-dev?
It is only wrong for packages that build Python 3 extensions (binary modules) that are intended to be loadable by all supported Python 3 versions (roughly: `find /usr/lib/python3/dist-packages -name '*.so'`). For packages that embed Python 3, like the versions of vim that have Python scripting support, or packages that use a Python 3 extension as an internal implementation detail of some tool, like gobject-introspection, my understanding is that build-depending on python3-dev continues to be appropriate. These extensions would ideally be installed in a private directory, like gobject-introspection's /usr/lib/x86_64-linux-gnu/gobject-introspection/giscanner/_giscanner.cpython-38-x86_64-linux-gnu.so - but I know some upstreams and some downstream maintainers (arguably incorrectly) package private extensions as though they were public extensions, because the mechanics of doing so are much simpler. > For example the package src:ros-geometry2 has a super simple > dh-style rules file, basically just doing: > > %: > dh $@ --buildsystem=cmake --with python3 > > What would I have to change to successfully fix this problem? The general answer is that you would have to build it repeatedly in a loop, with each supported version of Python 3 in turn. I am not aware of a way to do this in a similarly simple rules file. smcv