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

Bug#657695: marked as done (apt: gives up too easily when resolving Breaks of virtual packages)

Your message dated Tue, 06 Mar 2012 17:32:36 +0000
with message-id <E1S4yFY-0005i0-Lw@franck.debian.org>
and subject line Bug#657695: fixed in apt 0.8.16~exp13
has caused the Debian Bug report #657695,
regarding apt: gives up too easily when resolving Breaks of virtual 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

657695: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=657695
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: apt
Version: 0.8.16~exp9
Severity: normal
Tags: patch
User: ubuntu-devel@lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch precise

If a package Breaks a virtual package with many providers, and the
appropriate resolver action is to remove several of those providers,
then the resolver goes round one iteration of its master loop - which
has a hard limit of 10 iterations, so they are in short supply - per
provider.  This is not the case for Conflicts, where it deals with all
the providers in a single iteration of the master loop.

There seems no obvious reason for this discrepancy, and I think it was
an oversight when Breaks support was introduced in apt.

An example of a failed upgrade resolution due to this bug is here:


You can see it working its way through xserver-xorg-core's Breaks on
xserver-xorg-video-6 one package at a time and eventually running out of
iterations, when it would have succeeded if it had got round to
processing all the providers.

The following patch fixes this:

=== modified file 'apt-pkg/algorithms.cc'
--- apt-pkg/algorithms.cc	2011-11-10 15:56:21 +0000
+++ apt-pkg/algorithms.cc	2012-01-28 01:44:53 +0000
@@ -1098,8 +1098,7 @@ bool pkgProblemResolver::ResolveInternal
 		  LEnd->Dep = End;
-		  if (Start->Type != pkgCache::Dep::Conflicts &&
-		      Start->Type != pkgCache::Dep::Obsoletes)
+		  if (Start.IsNegative() == false)


Colin Watson                                       [cjwatson@ubuntu.com]

--- End Message ---
--- Begin Message ---
Source: apt
Source-Version: 0.8.16~exp13

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:

  to main/a/apt/apt-doc_0.8.16~exp13_all.deb
  to main/a/apt/apt-transport-https_0.8.16~exp13_amd64.deb
  to main/a/apt/apt-utils_0.8.16~exp13_amd64.deb
  to main/a/apt/apt_0.8.16~exp13.dsc
  to main/a/apt/apt_0.8.16~exp13.tar.gz
  to main/a/apt/apt_0.8.16~exp13_amd64.deb
  to main/a/apt/libapt-inst1.4_0.8.16~exp13_amd64.deb
  to main/a/apt/libapt-pkg-dev_0.8.16~exp13_amd64.deb
  to main/a/apt/libapt-pkg-doc_0.8.16~exp13_all.deb
  to main/a/apt/libapt-pkg4.12_0.8.16~exp13_amd64.deb

A summary of the changes between this version and the previous one is

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 657695@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
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)

Hash: SHA1

Format: 1.8
Date: Tue, 06 Mar 2012 18:12:57 +0100
Source: apt
Binary: apt libapt-pkg4.12 libapt-inst1.4 apt-doc libapt-pkg-dev libapt-pkg-doc apt-utils apt-transport-https
Architecture: source all amd64
Version: 0.8.16~exp13
Distribution: experimental
Urgency: low
Maintainer: APT Development Team <deity@lists.debian.org>
Changed-By: Michael Vogt <mvo@debian.org>
 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.4 - 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: 619646 646288 649314 650513 657560 657695 657732 657902 658096 658346 662762
 apt (0.8.16~exp13) experimental; urgency=low
   [ David Kalnischkies ]
   * apt-pkg/acquire-item.cc:
     - remove 'old' InRelease file if we can't get a new one before
       proceeding with Release.gpg to avoid the false impression of a still
       trusted repository by a (still present) old InRelease file.
       Thanks to Simon Ruderich for reporting this issue! (CVE-2012-0214)
     - add Debug::pkgAcqArchive::NoQueue to disable package downloading
   * apt-pkg/deb/dpkgpm.cc:
     - chroot if needed before dpkg --assert-multi-arch
     - ensure that dpkg binary doesn't have the chroot-directory prefixed
     - call dpkg --assert-multi-arch with execvp instead of execv
     - save the universe by not printing messages about apport if a package
       with this name is not installed (Closes: #619646)
     - handle a SIGINT in all modes as a break after the currently running
       dpkg transaction instead of ignoring it completely
   * apt-pkg/depcache.cc:
     - if a M-A:same package is marked for reinstall, mark all it's installed
       silbings for reinstallation as well (LP: #859188)
   * apt-pkg/contrib/configuration.cc:
     - do not stop parent transversal in FindDir if the value is empty
   * methods/http{s,}.cc:
     - if a file without an extension is requested send an 'Accept: text/*'
       header to avoid that the server chooses unsupported compressed files
       in a content-negotation attempt (Closes: #657560)
     - remove the arbitrary MAXLEN limit for response lines (Closes: #658346)
   * apt-pkg/aptconfiguration.cc:
     - chroot if needed before calling dpkg --print-foreign-architectures
     - ensure that architectures are not added multiple times
   * cmdline/apt-mark.cc:
     - detect if dpkg has multiarch support before calling --set-selections
     - correctly ignore already (un)hold packages
   * apt-pkg/cachefile.cc:
     - clean up lost atomic cachefiles with 'clean' (Closes: #650513)
   * apt-pkg/indexrecords.cc:
     - do not create empty Entries as a sideeffect of Lookup()
   * apt-pkg/acquire-item.cc:
     - drop support for i18n/Index file (introduced in 0.8.11) and use
       the Release file instead to get the Translations (Closes: #649314)
     - use pdiff for Translation-* files if available (Closes: #657902)
   * ftparchive/writer.cc:
     - add 'Translation-*' to the default patterns
   * cmdline/apt-get.cc:
     - if a package can't be removed as it is not installed, suggest to
       the user an (installed) multiarch silbing with 'Did you mean?'
     - improve 'error' message for packages which are only referenced
       e.g. in a Depends line and are now requested for removal
   * cmdline/apt-cache.cc:
     - correct --pre-depends option by using dash consistently (LP: #940837)
   * apt-pkg/packagemanager.cc:
     - do not try to a void a breaks if the broken package pre-depends
       on the breaker, but let dpkg auto-deconfigure it
   * apt-pkg/contrib/fileutl.cc:
     - do not warn about the ignoring of directories (Closes: #662762)
   [ Steve Langasek ]
   * cmdline/apt-get.cc:
     - for cross-build-dependencies M-A: none should be DEB_HOST_ARCH,
       not DEB_BUILD_ARCH (Closes: #646288)
   [ Colin Watson ]
   * apt-pkg/algorithms.cc:
     - don't break out of the main-resolver loop for Breaks to deal with all
       of them in a single iteration (Closes: #657695, LP: #922485)
     - use a signed int instead of short for score calculation as upgrades
       become so big now that it can overflow (Closes: #657732, LP: #917173)
   * Fix IndexCopy::CopyPackages and TranslationsCopy::CopyTranslations to
     handle compressed files again (LP: #924182, closes: #658096)
   [ Michael Vogt ]
   * apt-pkg/deb/dpkgpm.cc:
     - fix crash when a package is in removed but residual config state
       (LP: #923807)
   * apt-pkg/contrib/fileutl.h:
     - fix compat with FileFd::OpenDescriptor() in ReadOnlyGzip mode
   * apt-pkg/packagemanager.cc:
     - fix bug in predepends handling - ensure that packages that needs
       unpackaging are unpacked before they are configured (LP: #927993)
   [ Julian Andres Klode ]
   * apt-pkg/deb/deblistparser.cc:
     - Set the Essential flag on APT instead of only Important
   * apt-pkg/packagemanager.cc:
     - Do not use immediate configuration for packages with the Important flag
   * Treat the Important flag like the Essential flag with those differences:
     - No Immediate configuration (see above)
     - Not automatically installed during dist-upgrade
     - No higher score for installation ordering
 32ba0d502d1e73af5918b5b7dd06a6a62cb73a0a 1690 apt_0.8.16~exp13.dsc
 7601a34f5ca64bf7ff45b6daf8266f2c473dd06b 3402230 apt_0.8.16~exp13.tar.gz
 3b4edc5ff5e77ebf0b124c3055489db8bdca72e5 251982 apt-doc_0.8.16~exp13_all.deb
 70f37715459d2834474358745080d36e51d0bd46 829466 libapt-pkg-doc_0.8.16~exp13_all.deb
 e5799a01fa7c917f3376f25868883f2c6342d50a 1015192 libapt-pkg4.12_0.8.16~exp13_amd64.deb
 bdb04d9f4c7679a7f40b8e615f92e939ed6a7421 186948 libapt-inst1.4_0.8.16~exp13_amd64.deb
 623fd35eb83dba3fffc0b5263aad211c0a5024e4 1164922 apt_0.8.16~exp13_amd64.deb
 4572ec2c4eeaf146dad9ef40b4d0c0794bfedc68 175832 libapt-pkg-dev_0.8.16~exp13_amd64.deb
 dbedaabb89b071234c9891df79a5f4d7f3a1f269 272420 apt-utils_0.8.16~exp13_amd64.deb
 f4b6b505783c4cfdcb5cbda6a590b3d95345f20c 98362 apt-transport-https_0.8.16~exp13_amd64.deb
 752fe0120e4b5be7d8bb065fa903c082ddc09330894d404d3b385097631939f1 1690 apt_0.8.16~exp13.dsc
 5cde730a24638ccbcfac5089644db56388d3650f7c61bf768555fa3db308ce59 3402230 apt_0.8.16~exp13.tar.gz
 adeacff9bbd89cfee1c1faf4a966c36ea006a4c554980b1e1b90cc3e8018bff5 251982 apt-doc_0.8.16~exp13_all.deb
 7a6e1410de78715e82d57a7deb8a86ef80610cad0ded4979d768ca54a52021e1 829466 libapt-pkg-doc_0.8.16~exp13_all.deb
 013d26a664eea5e3624415f0664c38ca955f0cbbc106776d5e3215dd5769c07e 1015192 libapt-pkg4.12_0.8.16~exp13_amd64.deb
 9e8d23220bb22eef341619c2fbfc0c8ccc508eaded82fea9bcc38798f5171bd8 186948 libapt-inst1.4_0.8.16~exp13_amd64.deb
 928bd77863b9edd67f83a5300d0fbf81bba2cf84743a7716d9c0676267730927 1164922 apt_0.8.16~exp13_amd64.deb
 30dad707728310b160f4a31d9ce7219ec3c48e23d5bd389ccc30a7861cee79b7 175832 libapt-pkg-dev_0.8.16~exp13_amd64.deb
 0f14b7537e66d43a7e4dd5fdf41eaf52bebec12a975a9fa53a075603bcfe76c1 272420 apt-utils_0.8.16~exp13_amd64.deb
 690ea82b8a05baed990abe72b14e5781cc1a6ff2da7678d4c0c258b13e5656a2 98362 apt-transport-https_0.8.16~exp13_amd64.deb
 36fec50713ebb62b5f8d0457e433029d 1690 admin important apt_0.8.16~exp13.dsc
 64d460c47b1b58e42e1f70be86ddb250 3402230 admin important apt_0.8.16~exp13.tar.gz
 2efa431d666c7e7cf5d66b8ef4d337b4 251982 doc optional apt-doc_0.8.16~exp13_all.deb
 2769797e1e9c27ae54a6784d8e20761b 829466 doc optional libapt-pkg-doc_0.8.16~exp13_all.deb
 4964a90d91f9bdbacf7a77de1d85ebf1 1015192 admin important libapt-pkg4.12_0.8.16~exp13_amd64.deb
 6d0f84a70da94ece33a6529dc005626a 186948 admin important libapt-inst1.4_0.8.16~exp13_amd64.deb
 5062a82fde1e0bd3a0875051f01022e1 1164922 admin important apt_0.8.16~exp13_amd64.deb
 cd77bd303d6f44d8097b318910096d3f 175832 libdevel optional libapt-pkg-dev_0.8.16~exp13_amd64.deb
 e499a62db417c3251e93401bcd24ff5b 272420 admin important apt-utils_0.8.16~exp13_amd64.deb
 9eebcaa60ccb01dd3828e278f4e632d8 98362 admin optional apt-transport-https_0.8.16~exp13_amd64.deb

Version: GnuPG v1.4.12 (GNU/Linux)


--- End Message ---

Reply to: