summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2007-06-29 22:40:44 +0200
committerMichael Vogt <michael.vogt@ubuntu.com>2007-06-29 22:40:44 +0200
commit36baa77ad9711a98c1407990a2f04acf666d4408 (patch)
tree6c619525338540f6e8d2f84f37e5bd05b18760fe
parent1d75192b8fa500f430882f32b5888fe939dba424 (diff)
* fixes in the auto-mark code (thanks to Daniel
Burrows)
-rw-r--r--apt-pkg/depcache.cc9
-rw-r--r--debian/changelog2
2 files changed, 8 insertions, 3 deletions
diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc
index 50a75843f..7f5719454 100644
--- a/apt-pkg/depcache.cc
+++ b/apt-pkg/depcache.cc
@@ -1285,6 +1285,7 @@ void pkgDepCache::MarkPackage(const pkgCache::PkgIterator &pkg,
bool follow_suggests)
{
pkgDepCache::StateCache &state = PkgState[pkg->ID];
+ VerIterator currver = pkg.CurrentVer();
VerIterator candver = state.CandidateVerIter(*this);
VerIterator instver = state.InstVerIter(*this);
@@ -1305,9 +1306,11 @@ void pkgDepCache::MarkPackage(const pkgCache::PkgIterator &pkg,
}
#endif
- // Ignore versions other than the InstVer, and ignore packages
- // that are already going to be removed or just left uninstalled.
- if(!(ver == instver && !instver.end()))
+ // For packages that are not going to be removed, ignore versions
+ // other than the InstVer. For packages that are going to be
+ // removed, ignore versions other than the current version.
+ if(!(ver == instver && !instver.end()) &&
+ !(ver == currver && instver.end() && !ver.end()))
return;
// if we are marked already we are done
diff --git a/debian/changelog b/debian/changelog
index 23780b5ff..d0103f43a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,8 @@ apt (0.7.3) unstable; urgency=low
* fixed compile errors with g++ 7.3 (thanks to
Daniel Burrows, closes: #429378)
+ * fixes in the auto-mark code (thanks to Daniel
+ Burrows)
* fix FTFBFS by changing build-depends to
libcurl4-gnutls-dev (closes: #428363)
* cmdline/apt-get.cc: