Your message dated Tue, 16 Oct 2012 16:32:34 +0000
with message-id <[email protected]>
and subject line Bug#688863: fixed in apt 0.9.7.6
has caused the Debian Bug report #688863,
regarding non-uniform treatment of self-conflicts for real/virtual "M-A: same"
packages
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
688863: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=688863
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: apt
Severity: important
[ Re-posting this as APT bug report, to keep track of it. The original
version is at https://lists.debian.org/deity/2012/09/msg00088.html ,
the thread with further discussion (and in particular the POV of one
of the Policy Editors) at
https://lists.debian.org/deity/2012/09/msg00088.html ]
Executive summary: it seems that APT treats differently self-conflicts
for "Multi-Arch: same" packages, depending on whether the conflicts
happen on "real" or "virtual" package names. Conflicts on virtual
package names are ignored, whereas conflicts on real package names are
not.
Early discussions with -policy people seem to hint at a desired behavior
where "M-A: same" packages should be co-installable across different
architectures, ignoring self-conflicts, no matter if the conflicts
happen via real or virtual package names.
Cheers.
On Thu, Sep 13, 2012 at 04:26:03PM -0700, Russ Allbery wrote:
> > That does sound like a bug. The intuitive behavior when foo both
> > Provides and Conflicts with bar would be for the Conflicts to only
> > apply to other packages.
> Indeed. This particular combination of package metadata has a specific
> meaning defined in Policy 7.4:
[…]
> their own package name, or with a virtual package which they provide
> (see below): this does not prevent their installation, and allows a
> package to conflict with others providing a replacement for it. You
> use this feature when you want the package in question to be the only
> package providing some feature.
>
> So you need to specifically recognize the case of Conflicts naming the
> package itself or a virtual package that this package provides, and in
> that case the Conflicts should not be applied to that package for
> installability determination.
>
> None of this language has, as yet, been updated for multiarch, but I think
> it makes logical sense for a M-A: same package to be coinstallable even if
> it Conflicts with its own package name or a virtual package it Provides,
> by extension from the intention of this construct without multiarch.
[…]
I could use double checking about the correctness of current APT's
behavior. From how Russ put it above, it shouldn't matter whether the
conflict is via a virtual package name or via a real package name:
self-conflicts across architecture boundaries should be ignored for M-A:
same packages.
According to the attached tests (which are courtesy of Pietro Abate), it
seems that APT does ignore self-conflict across arch boundaries when
they are via virtual packages (test 1), but it doesn't ignore them when
they are via real packages (test 2).
Looking on a random "desktop-like" laptop machine with various suites,
we've found ~200 packages which declare self-conflicts on their real
names (probably due to historical package renaming, that have remained
around). None of them is M-A: same, so the above alleged APT issue is
only theoretical at this point. But it might become real with the
increasing popularity of multiarch-ed packages in the Debian archive.
Cheers.
--
Stefano Zacchiroli . . . . . . . [email protected] . . . . o . . . o . o
Maître de conférences . . . . . http://upsilon.cc/zack . . . o . . . o o
Debian Project Leader . . . . . . @zack on identi.ca . . o o o . . . o .
« the first rule of tautology club is the first rule of tautology club »
Packages
========
Package: a1
Version: 1
Architecture: arch1
Multi-Arch: same
Provides: ap
Conflicts: ap
Package: a1
Version: 1
Architecture: arch2
Multi-Arch: same
Provides: ap
Conflicts: ap
Package: a2
Version: 1
Architecture: arch1
Multi-Arch: same
Conflicts: a2
Package: a2
Version: 1
Architecture: arch2
Multi-Arch: same
Conflicts: a2
Package: a3
Version: 1
Architecture: arch1
Multi-Arch: same
Package: a3
Version: 1
Architecture: arch2
Multi-Arch: same
Test 1
======
$./fakeapt.sh test install a1:arch1 a1:arch2
[...]
The following NEW packages will be installed:
a1 a1:arch2
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Inst a1 (1 localhost [arch1])
Inst a1:arch2 (1 localhost [arch2])
Conf a1 (1 localhost [arch1])
Conf a1:arch2 (1 localhost [arch2])
Test 2
======
$./fakeapt.sh test install a2:arch1 a2:arch2
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:
a2 : Conflicts: a2:arch2 but 1 is to be installed
a2:arch2 : Conflicts: a2 but 1 is to be installed
E: Unable to correct problems, you have held broken packages.
Test 3
======
$./fakeapt.sh test install a3:arch1 a3:arch2
[...]
The following NEW packages will be installed:
a3 a3:arch2
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Inst a3 (1 localhost [arch1])
Inst a3:arch2 (1 localhost [arch2])
Conf a3 (1 localhost [arch1])
Conf a3:arch2 (1 localhost [arch2])
fakeapt.sh
Description: Bourne shell script
signature.asc
Description: Digital signature
--- End Message ---
--- Begin Message ---
Source: apt
Source-Version: 0.9.7.6
We believe that the bug you reported is fixed in the latest version of
apt, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Michael Vogt <[email protected]> (supplier of updated apt package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Format: 1.8
Date: Tue, 16 Oct 2012 18:08:53 +0200
Source: apt
Binary: apt libapt-pkg4.12 libapt-inst1.5 apt-doc libapt-pkg-dev libapt-pkg-doc
apt-utils apt-transport-https
Architecture: source all amd64
Version: 0.9.7.6
Distribution: unstable
Urgency: low
Maintainer: APT Development Team <[email protected]>
Changed-By: Michael Vogt <[email protected]>
Description:
apt - commandline package manager
apt-doc - documentation for APT
apt-transport-https - https download transport for APT
apt-utils - package managment related utility programs
libapt-inst1.5 - deb package format runtime library
libapt-pkg-dev - development files for APT's libapt-pkg and libapt-inst
libapt-pkg-doc - documentation for APT development
libapt-pkg4.12 - package managment runtime library
Closes: 688863 689323 689331
Changes:
apt (0.9.7.6) unstable; urgency=low
.
[ Program translation updates ]
* Ukrainian (A. Bondarenko)
.
[ David Kalnischkies ]
* apt-pkg/pkgcachegen.cc:
- ensure that dependencies for packages:none are always generated
- add 2 missing remap registrations causing a segfault in case
we use the not remapped iterators after a move of the mmap again
- write the native architecture as unique string into the cache header
as it is used for arch:all packages as a map to arch:native.
Otherwise arch comparisons later will see differences (Closes: #689323)
* apt-pkg/pkgcache.cc:
- ignore negative dependencies applying in the same group for M-A:same
packages on the real package name as self-conflicts (Closes: #688863)
* cmdline/apt-cache.cc:
- print versioned dependency relations in (r)depends if the option
APT::Cache::ShowVersion is true (default: false) as discussed in
#218995 to help debian-cd fixing #687949. Thanks to Sam Lidder
for initial patch and Steve McIntyre for nagging and testing!
* apt-pkg/edsp.cc:
- include reinstall requests and already installed (= protected) packages
in the install-request for external resolvers (Closes: #689331)
* apt-pkg/policy.cc:
- match pins with(out) an architecture as we do on the commandline
(partly fixing #687255, b= support has to wait for jessie)
* apt-pkg/contrib/netrc.cc:
- remove the 64 char limit for login/password in internal usage
- remove 256 char line limit by using getline() (POSIX.1-2008)
.
[ Colin Watson ]
* apt-pkg/pkgcachegen.cc:
- Fix crash if the cache is remapped while writing a Provides version
(LP: #1066445).
Checksums-Sha1:
66615a2830c01bd0d477bcee2d8d488347c0d1b5 1689 apt_0.9.7.6.dsc
8e87fa703914ed6f5e1d2eef39f6f02e63485663 3390939 apt_0.9.7.6.tar.gz
c1e0d0fcca370c18823470ac232e823c4b542807 261552 apt-doc_0.9.7.6_all.deb
a3adf876972ac2cad2f4481be76f397ddf0e419c 960668 libapt-pkg-doc_0.9.7.6_all.deb
5185910e4e939006106ed6ce5df721f03e888d97 889976
libapt-pkg4.12_0.9.7.6_amd64.deb
72f0bd16b1e46ec42d5981449c06df119a75ae41 165330
libapt-inst1.5_0.9.7.6_amd64.deb
608b467f698617c1b0ee5c29e8c1afa5f0874c86 1240664 apt_0.9.7.6_amd64.deb
97b451c53f724992aa22f1fc1344ed508cfca5c8 185898
libapt-pkg-dev_0.9.7.6_amd64.deb
8f5e3e038f0dee9bd3a1d0b7ab2a8cdbb05c422e 374770 apt-utils_0.9.7.6_amd64.deb
fce26ea6acb466f8efe93b6e22dd6821997d89d6 107648
apt-transport-https_0.9.7.6_amd64.deb
Checksums-Sha256:
cc1b6ec72df0671c08f5ed60b9afeeef9b2d8e89dd74ccf3a07124bda9361da6 1689
apt_0.9.7.6.dsc
655ea34aa5dec633aa53abdc31d84fe1862797d5db21f43451975af7c4d5bbde 3390939
apt_0.9.7.6.tar.gz
881710b37445a5d17b7b28154003fdb972147d7984b930aa86dff1f5b069d26a 261552
apt-doc_0.9.7.6_all.deb
bb69be960c15d158b1c13ada69f02c8663b3348badedd0360e48fd9c1dd681d9 960668
libapt-pkg-doc_0.9.7.6_all.deb
2278fb8302662794dcbacf9e613fb1833597106094adad86fd4759ae5c44abd3 889976
libapt-pkg4.12_0.9.7.6_amd64.deb
14355661b3efe89b84097ca51b64dda0b43e8177daf0ebc447762f77beaf5144 165330
libapt-inst1.5_0.9.7.6_amd64.deb
8610b3062652d062b3ad8c307f617417a37ca8e43dab4d6b350d3e408957ef7c 1240664
apt_0.9.7.6_amd64.deb
bdc2518d1beff63311d04cb2ab7235c8af8124df2025824dd5b286c209681107 185898
libapt-pkg-dev_0.9.7.6_amd64.deb
f72cf02eec1a2b71b1402d0d888b96b2660c033e16a2b65dccaf6fe76afc2118 374770
apt-utils_0.9.7.6_amd64.deb
3404d199dee13f2ba4ed0766542da35b60abea9fd5c7f91a5f29c5758b9eddbe 107648
apt-transport-https_0.9.7.6_amd64.deb
Files:
0acd27ad73b8a007ef5c8cdbeb09b1c8 1689 admin important apt_0.9.7.6.dsc
3cba8b6757c33b7f8f2f8d2eb5705a25 3390939 admin important apt_0.9.7.6.tar.gz
100f5326e7c2c6fc6ace0e833a0c8912 261552 doc optional apt-doc_0.9.7.6_all.deb
0dc84b3bfba7ba1950644c9f80291ec6 960668 doc optional
libapt-pkg-doc_0.9.7.6_all.deb
c7a8132d459f5c3f5b359154392418da 889976 libs important
libapt-pkg4.12_0.9.7.6_amd64.deb
8c989866778b5cea6708027d119e4759 165330 libs important
libapt-inst1.5_0.9.7.6_amd64.deb
98e213eb018766d0dbba46f5af785ebc 1240664 admin important apt_0.9.7.6_amd64.deb
1ae127ed0dd7d234209c7fc858e5d8e3 185898 libdevel optional
libapt-pkg-dev_0.9.7.6_amd64.deb
09ff5c348317fe0e054daae91c7cb7e1 374770 admin important
apt-utils_0.9.7.6_amd64.deb
a80375fc87c563e9803616b46e8d2f83 107648 admin optional
apt-transport-https_0.9.7.6_amd64.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iEYEARECAAYFAlB9iw0ACgkQliSD4VZixzSsuwCfX2HwELNWvYfuZN07KpHlvvNH
NBcAn3hMlMXwgulnBw8TsWpPBpQATbMT
=FHEd
-----END PGP SIGNATURE-----
--- End Message ---