[Python-modules-team] Bug#915856: sphinx: Failed cross building with Build-Depends on python3-sphinx

Dmitry Shachnev mitya57 at debian.org
Fri Jan 25 08:14:23 GMT 2019

On Sun, Jan 20, 2019 at 09:48:25PM +0100, Helmut Grohne wrote:
> Upon closer inspection, I'm growing doubts. The autodoc extension is not
> in some python3-sphinxcontrib.something package but in python3-sphinx
> proper. Therefore you want a way of using a particular architecture's
> sphinx anyway. Marking it M-A:foreign is likely going to cause trouble
> later on. So if you split out this sphinx package, you'd likely have
> python3-sphinx Depends: sphinx at least initially. Without that
> dependency, lots of packages will FTBFS. Then sphinx would of course
> Depends: python3-sphinx posing a circular dependency until we fix all
> those FTBFS. Then any package that refers to the scripts and uses
> autodoc must "Build-Depends: sphinx, python3-sphinx". This is confusing
> at the very least.
> Certainly not something we want to do before buster.

I agree, that would be confusing for people who are not experts in
cross-building and multiarch stuff.

> > Is it safe to add Multi-Arch: allowed to python-sphinx and python3-sphinx
> > right now (and Multi-Arch: foreign to sphinx-common)?
> I overlooked one major issue with Multi-Arch: allowed. The value is not
> permitted on Architecture: all packages. So if you trying using it, you
> end up switching python3-sphinx to Architecture: any.
> Beyond that, the marking is certainly not doing any immediate harm.
> Until some other package uses "python3-sphinx:any" literally nothing
> changes. As soon as you get such a dependency however, reverting becomes
> difficult. Removing "Multi-Arch: allowed" will make all
> "python3-sphinx:any" dependencies immediately unsatisfiable (even
> natively).


> For Build-Depends, you can use "python3-sphinx:native" now. Until very
> recently that wasn't possible as dpkg-checkbuilddeps would reject
> :native annotations on Architecture: all packages, but dpkg has adjusted
> behaviour to what apt and dose do now. Therefore such dependencies harm
> stretch-backports. Still it might be the best thing we have at the
> moment.

Oh, that's a very good piece of news!

Does this mean that packages that are not using autodoc (like ncmpc) can
already build-depend on python3-sphinx:native to become cross-buildable?

> Well, we do have some data on which packages are affected. Carefully
> open this huge html file: https://bootstrap.debian.net/cross_all.html.
> Then search for "python3-sphinx" and you get an overview of which
> packages are affected. It currently is the #10 cross unsatisfiable cause
> with 146 affected packages. Searching again will reveal the actual
> source packages. Note that the list already excludes Build-Depends-Indep
> as well as source packages that only build architecture-independent
> binary packages. Carefully pick valuable targets here. For instance
> large documentation trees, long build time, high popcon.

Does cmake sound like a good start? It already has docs in a separate
package, just needs the B-D adjusted.

> There is a reason why I have - for a long time - not actively worked on
> cross/sphinx: There is no obvious solution. I wish I could give more
> encouraging answers.


Dmitry Shachnev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/python-modules-team/attachments/20190125/27e820fa/attachment.sig>

More information about the Python-modules-team mailing list