[Python-modules-team] Bug#918804: python3-yaml: Please mark as "Multi-Arch: allowed"

Simon McVittie smcv at debian.org
Wed Jan 9 18:14:16 GMT 2019


Control: tags -1 + moreinfo

On Wed, 09 Jan 2019 at 14:09:11 +0000, Rottmann Andreas wrote:
> In a multi-arch setup, the "python3-yaml" package should be able to
> satisfy dependencies from other packages, as the Python interpreter in
> combination with python3-yaml can be used regardless of the
> architecture of the depending packet.
> 
> For instance, when installing an i386 package which depends on
> "python3-yaml" on amd64, the package manager should allow an already
> installed python3-yaml (along with the python3:amd64) to satisfy the
> dependency.

The subject line of this bug report might be correct, but this description
seems wrong for an Architecture: any package (I think it's been copied
from a similar bug report asking for an Architecture: all package to
be made Multi-Arch: foreign). Inaccurate requests are likely to confuse
maintainers into either doing the wrong thing or ignoring the request,
so I'd recommend discussing this phrasing with dpkg and Multi-Arch
experts before filing more bugs like this.

Let's say the depending i386 package is quake4, which *is* an i386 package
that uses Python, although not the YAML module specifically.

If quake4 uses python3-yaml by executing a Python script that contains
"import yaml", but does not contain a Python extension itself, then
python3-yaml needs to be the same architecture as python3, but does not
need to be the same architecture as quake4. python3-yaml could have
Multi-Arch: allowed and quake4 could have Depends: python3-yaml:any
(I think).

However, if the depending package also contains Python code that needs to
get loaded into the same process, then that wouldn't be valid: there is
no Python interpreter that can load both the i386 dependingpackage.so
from the depending package, and the amd64 yaml.so from python3-yaml.

Multi-Arch: foreign would work for the first use-case but fail for
the second.

I *think* Multi-Arch: allowed works for this, because python3-yaml's
Depends on python3 (without the :any qualifier) would ensure that a
dependency on python3:any and python3-yaml:any gives you a python3-yaml
whose architecture matches your python3, which is what's needed; but
I'd really prefer a Multi-Arch expert to confirm that before making any
changes.

If you're doing a mass-bug-filing, it would also be very valuable to
use BTS usertags to categorize the bugs, and to discuss the mass bug
filing on debian-devel before opening the bugs, as discussed in the
Debian Developers' Reference:
https://www.debian.org/doc/manuals/developers-reference/ch07.en.html#submit-many-bugs

    smcv



More information about the Python-modules-team mailing list