Bug#962664: python3-distro: Please mark as Multi-Arch: foreign

2020-06-15 Thread Guillem Jover
Control: reassign -1 python3-distro
Control: retitle -1 python3-distro: Please mark as Multi-Arch: foreign

On Thu, 2020-06-11 at 15:14:20 +0100, Mike wrote:
> Package: dpkg
> Version: 1.19.7
> Severity: important

> I am trying to cross-grade at least some of my system from i386 to amd64.
> In particular I'm trying to swtich dpkg so that the default arch for
> anything new is amd64.
> 
> I followed the instructions here:
> https://wiki.debian.org/CrossGrading
> but after installing tar, dpkg and apt amd64 versions there are a lot
> of broken packages, and apt isn't able to resolve it, so
> I switched them back and did some more investigation.
> 
> There are several packages that cannot be installed, but they all seem
> to be the same root cause.  The simplest example is yelp:am64
> 
>  apt install yelp:amd64
> Reading package lists... Done
> Building dependency tree
> Reading state information... Done
> Some packages could not be installed. This may mean that you have
> requested an impossible situation or if you are using the unstable
> distribution that some required packages have not yet been created
> or been moved out of Incoming.
> The following information may help to resolve the situation:
> 
> The following packages have unmet dependencies:
>  yelp:amd64 : Depends: python3-distro:amd64 but it is not installable
> E: Unable to correct problems, you have held broken packages.
> 
>  dpkg -l python3-distro
> Desired=Unknown/Install/Remove/Purge/Hold
> | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
> |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
> ||/ Name   Version  Architecture Description
> +++-==---=
> ii  python3-distro 1.3.0-1  all  Linux OS platform information API
> 
> 
> There is no way to install yelp:amd64.
> 
> Installing via dpkg -i gives the same dependency error.
> 
> It depends on python3-distro:amd64, but python3-distro is architecture
> independent, and already installed.

An arch:all package by default is considered to be of the same
architecture as the native one. So yelp:amd64 depending on python3-distro
implies it wants python3-distro:amd64 which is not satisfied as it is
only evaluated as python3-distro:i386.

To tell the packaging system that this dependency is safe and truly
architecture independent, it needs to be marked as Multi-Arch: foreign.

Thanks,
Guillem



Bug#962664: python3-distro: Please mark as Multi-Arch: foreign

2020-06-16 Thread Mike Ricketts

On Tue, 16 Jun 2020, Guillem Jover wrote:


An arch:all package by default is considered to be of the same
architecture as the native one. So yelp:amd64 depending on python3-distro
implies it wants python3-distro:amd64 which is not satisfied as it is
only evaluated as python3-distro:i386.

To tell the packaging system that this dependency is safe and truly
architecture independent, it needs to be marked as Multi-Arch: foreign.

OK I understand - thanks for explaining, and having read 
https://wiki.ubuntu.com/MultiarchSpec#Dependencies_involving_Architecture:_all_packages

I can see the logic behind it (although it does feel counter intuitive).

Unfortunately python3-distro is by no means the only arch:all package that 
this affects - for example debconf also seems to be affected.


Is there any way to determine what the MultiArch: setting on an existing 
package is?


--
Mike Ricketts 

Q:  Why was Stonehenge abandoned?
A:  It wasn't IBM compatible.