[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#832503: apt: foo:any dependency is not handled correctly when foo is not Multi-Arch: allowed



Package: apt
Version: 1.3~pre2
Severity: normal
User: devel@kali.org
Usertags: origin-kali

Hello dear APT maintainers,

I have a package dependency "firefox-esr:any | firefox:any | www-browser" in a
metapackage. Unfortunately firefox-esr is neither "Multi-Arch: foreign" nor
"Multi-Arch: allowed" (I filed #832501 to request this) and when I try to
install this meta-package it will not install firefox-esr at all, instead
it will pick a random web browser (thus considering www-browser and not
firefox-esr:any).

Given the lack of "Multi-Arch: allowed", it is expected that a foreign
firefox-esr cannot fulfill the dependency.

But firefox-esr:native should fulfill the "firefox-esr:any" dependency
and apt should install this package in response to the metapackage
installation request.

Discussing this on IRC lead to this:
09:56 <DonKult> again: a dependency "foo:any" can be satisfied by a package foo
only in two ways: a) foo is M-A: allowed. b) foo explicitly "Provides:
foo:any".
09:57 <buxy> DonKult: let's fix the spec?
10:01 <DonKult> you can find mails from me discussing different interpretations
for some things, but the discussion ended at DC15 with an agreement on the
interpretation as implemented by dpkg. I am not going to breach contracts.

If the Multi-Arch specification says otherwise, then we should probably
consider improving it to allow this case. Are you aware of cases
where allowing this would break something?

Given that the Multi-Arch annotation is not under the control of the package
specifying the dependency it would seem better to have a sane and tolerant
fallback when the target package has no Multi-Arch annotation instead of
refusing to satisfy the dependency even when when we have a native package
which is installable.

Ccing Guillem for his input. If we agree on that, then we should clone
that bug against dpkg as well.

Cheers,

-- System Information:
Debian Release: stretch/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (500, 'oldstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.6.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages apt depends on:
ii  adduser                 3.115
ii  debian-archive-keyring  2014.3
ii  gpgv                    1.4.20-6
ii  init-system-helpers     1.38
ii  libapt-pkg5.0           1.3~pre2
ii  libc6                   2.23-1
ii  libgcc1                 1:6.1.1-9
ii  libstdc++6              6.1.1-9

Versions of packages apt recommends:
ii  gnupg   1.4.20-6
ii  gnupg2  2.1.11-7

Versions of packages apt suggests:
ii  apt-doc         1.3~pre2
ii  aptitude        0.8.1-1
ii  dpkg-dev        1.18.9
ii  powermgmt-base  1.31+nmu1
ii  python-apt      1.1.0~beta3
ii  synaptic        0.83+b1

-- no debconf information


Reply to: