Bug#914418: apt: Foreign packages that depend on "all" arch packages won't install

2018-11-23 Thread James McCoy
Control: forcemerge 910732 -1

On Fri, Nov 23, 2018 at 09:57:46AM +0100, Julian Andres Klode wrote:
> On Fri, Nov 23, 2018 at 07:16:43PM +1030, John Pearson wrote:
> > Attempting to install a foreign arch package that depends on an "all"
> > architecture package fails, as apt looks for a copy of the "all" arch
> > package that is explicitly built for the same arch as the package I'm 
> > installing.
> 
> That's not a bug. Architecture: all packages need to explicitly declare
> that they are usable by foreign architectures by setting Multi-Arch: foreign.
> 
> >  The following packages have unmet dependencies:
> >   vim-tiny:i386 : Depends: vim-common:i386 (= 2:8.0.0197-4+deb9u1) but it 
> > is not installable
> >  E: Unable to correct problems, you have held broken packages.
> 
> vim-common is not Multi-Arch: foreign.

Thanks for the analysis.  It's already fixed in git, but various
upstream issues are blocking an upload.

Cheers,
-- 
James
GPG Key: 4096R/91BF BF4D 6956 BD5D F7B7  2D23 DFE6 91AE 331B A3DB



Bug#914418: apt: Foreign packages that depend on "all" arch packages won't install

2018-11-23 Thread Julian Andres Klode
Control: reassign -1 vim-common
Control: severity -1 wishlist

On Fri, Nov 23, 2018 at 07:16:43PM +1030, John Pearson wrote:
> Package: apt
> Version: 1.4.8
> Severity: important
> 
> Dear Maintainer,
> 
> *** Reporter, please consider answering these questions, where appropriate ***
> 
>* What led up to the situation?
> 
> I have a number of i386 and amd64 systems, mostly running amd64 kernels
> and with support for both architectures in dpkg/apt.  When attempting to
> crossgrade an i386 systyem to amd64, I ran into a ton of trouble that seems
> to boil down to this.
> 
>* What exactly did you do (or not do) that was effective (or
>  ineffective)?
> 
> Attempting to install a foreign arch package that depends on an "all"
> architecture package fails, as apt looks for a copy of the "all" arch
> package that is explicitly built for the same arch as the package I'm 
> installing.

That's not a bug. Architecture: all packages need to explicitly declare
that they are usable by foreign architectures by setting Multi-Arch: foreign.

> 
>* What was the outcome of this action?
> 
> For instance, on an amd64 system:
> 
>  # apt-get install vim-tiny:i386
>  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:
>   vim-tiny:i386 : Depends: vim-common:i386 (= 2:8.0.0197-4+deb9u1) but it is 
> not installable
>  E: Unable to correct problems, you have held broken packages.

vim-common is not Multi-Arch: foreign.

-- 
debian developer - deb.li/jak | jak-linux.org - free software dev
ubuntu core developer  i speak de, en



Bug#914418: apt: Foreign packages that depend on "all" arch packages won't install

2018-11-23 Thread John Pearson
Package: apt
Version: 1.4.8
Severity: important

Dear Maintainer,

*** Reporter, please consider answering these questions, where appropriate ***

   * What led up to the situation?

I have a number of i386 and amd64 systems, mostly running amd64 kernels
and with support for both architectures in dpkg/apt.  When attempting to
crossgrade an i386 systyem to amd64, I ran into a ton of trouble that seems
to boil down to this.

   * What exactly did you do (or not do) that was effective (or
 ineffective)?

Attempting to install a foreign arch package that depends on an "all"
architecture package fails, as apt looks for a copy of the "all" arch
package that is explicitly built for the same arch as the package I'm 
installing.

   * What was the outcome of this action?

For instance, on an amd64 system:

 # apt-get install vim-tiny:i386
 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:
  vim-tiny:i386 : Depends: vim-common:i386 (= 2:8.0.0197-4+deb9u1) but it is 
not installable
 E: Unable to correct problems, you have held broken packages.

Simlarly, trying to install vim-tiny:amd64 onm an i386 system fails
because apt can't find "vim-common:amd64".  In both cases, "vim-common:all" 
is already installed.
  
   * What outcome did you expect instead?

apt should recognize that "vim-common:all" satisfies the dependency.


-- Package-specific info:

-- apt-config dump --

APT "";
APT::Architecture "amd64";
APT::Build-Essential "";
APT::Build-Essential:: "build-essential";
APT::Install-Recommends "1";
APT::Install-Suggests "0";
APT::Sandbox "";
APT::Sandbox::User "_apt";
APT::Authentication "";
APT::Authentication::TrustCDROM "true";
APT::NeverAutoRemove "";
APT::NeverAutoRemove:: "^firmware-linux.*";
APT::NeverAutoRemove:: "^linux-firmware$";
APT::NeverAutoRemove:: "^linux-image-4\.9\.0-5-amd64$";
APT::NeverAutoRemove:: "^linux-image-4\.9\.0-7-amd64$";
APT::NeverAutoRemove:: "^linux-headers-4\.9\.0-5-amd64$";
APT::NeverAutoRemove:: "^linux-headers-4\.9\.0-7-amd64$";
APT::NeverAutoRemove:: "^linux-image-extra-4\.9\.0-5-amd64$";
APT::NeverAutoRemove:: "^linux-image-extra-4\.9\.0-7-amd64$";
APT::NeverAutoRemove:: "^linux-signed-image-4\.9\.0-5-amd64$";
APT::NeverAutoRemove:: "^linux-signed-image-4\.9\.0-7-amd64$";
APT::NeverAutoRemove:: "^kfreebsd-image-4\.9\.0-5-amd64$";
APT::NeverAutoRemove:: "^kfreebsd-image-4\.9\.0-7-amd64$";
APT::NeverAutoRemove:: "^kfreebsd-headers-4\.9\.0-5-amd64$";
APT::NeverAutoRemove:: "^kfreebsd-headers-4\.9\.0-7-amd64$";
APT::NeverAutoRemove:: "^gnumach-image-4\.9\.0-5-amd64$";
APT::NeverAutoRemove:: "^gnumach-image-4\.9\.0-7-amd64$";
APT::NeverAutoRemove:: "^.*-modules-4\.9\.0-5-amd64$";
APT::NeverAutoRemove:: "^.*-modules-4\.9\.0-7-amd64$";
APT::NeverAutoRemove:: "^.*-kernel-4\.9\.0-5-amd64$";
APT::NeverAutoRemove:: "^.*-kernel-4\.9\.0-7-amd64$";
APT::NeverAutoRemove:: "^linux-backports-modules-.*-4\.9\.0-5-amd64$";
APT::NeverAutoRemove:: "^linux-backports-modules-.*-4\.9\.0-7-amd64$";
APT::NeverAutoRemove:: "^linux-tools-4\.9\.0-5-amd64$";
APT::NeverAutoRemove:: "^linux-tools-4\.9\.0-7-amd64$";
APT::NeverAutoRemove:: "^postgresql-";
APT::VersionedKernelPackages "";
APT::VersionedKernelPackages:: "linux-image";
APT::VersionedKernelPackages:: "linux-headers";
APT::VersionedKernelPackages:: "linux-image-extra";
APT::VersionedKernelPackages:: "linux-signed-image";
APT::VersionedKernelPackages:: "kfreebsd-image";
APT::VersionedKernelPackages:: "kfreebsd-headers";
APT::VersionedKernelPackages:: "gnumach-image";
APT::VersionedKernelPackages:: ".*-modules";
APT::VersionedKernelPackages:: ".*-kernel";
APT::VersionedKernelPackages:: "linux-backports-modules-.*";
APT::VersionedKernelPackages:: "linux-tools";
APT::Never-MarkAuto-Sections "";
APT::Never-MarkAuto-Sections:: "metapackages";
APT::Never-MarkAuto-Sections:: "contrib/metapackages";
APT::Never-MarkAuto-Sections:: "non-free/metapackages";
APT::Never-MarkAuto-Sections:: "restricted/metapackages";
APT::Never-MarkAuto-Sections:: "universe/metapackages";
APT::Never-MarkAuto-Sections:: "multiverse/metapackages";
APT::Move-Autobit-Sections "";
APT::Move-Autobit-Sections:: "oldlibs";
APT::Move-Autobit-Sections:: "contrib/oldlibs";
APT::Move-Autobit-Sections:: "non-free/oldlibs";
APT::Move-Autobit-Sections:: "restricted/oldlibs";
APT::Move-Autobit-Sections:: "universe/oldlibs";
APT::Move-Autobit-Sections:: "multiverse/oldlibs";
APT::Periodic "";
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
APT::Update "";
APT::Update::Post-Invoke "";
APT::Update::Post-Invoke:: "touch