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

Bug#688863: marked as done (non-uniform treatment of self-conflicts for real/virtual "M-A: same" packages)



Your message dated Tue, 16 Oct 2012 16:32:34 +0000
with message-id <E1TOA4I-0006HO-6C@franck.debian.org>
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 owner@bugs.debian.org
immediately.)


-- 
688863: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=688863
Debian Bug Tracking System
Contact owner@bugs.debian.org 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  . . . . . . .  zack@upsilon.cc . . . . 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])

Attachment: fakeapt.sh
Description: Bourne shell script

Attachment: 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 688863@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Michael Vogt <mvo@debian.org> (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 ftpmaster@debian.org)


-----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 <deity@lists.debian.org>
Changed-By: Michael Vogt <mvo@debian.org>
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 ---

Reply to: