diff options
author | Michael Vogt <michael.vogt@ubuntu.com> | 2008-02-06 14:04:38 +0100 |
---|---|---|
committer | Michael Vogt <michael.vogt@ubuntu.com> | 2008-02-06 14:04:38 +0100 |
commit | 76264cb71becaeabc2df863272e440d494491a56 (patch) | |
tree | a76fe84973573d9d658f2d26360d6bcb62bb809b | |
parent | 8f9b141f860c430685c8cabb1ad5e7caf3d291d0 (diff) |
- Make the breaks handling use the kill list. This means, that a
Breaks: Pkg (<< version) may put Pkg onto the remove list.
-rw-r--r-- | apt-pkg/algorithms.cc | 13 | ||||
-rw-r--r-- | debian/changelog | 2 |
2 files changed, 9 insertions, 6 deletions
diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc index 503a928ac..eaab4c0ea 100644 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@ -985,17 +985,17 @@ bool pkgProblemResolver::Resolve(bool BrokenFix) if (Start->Type == pkgCache::Dep::DpkgBreaks) { - /* Would it help if we upgraded? */ - if (Cache[End] & pkgDepCache::DepGCVer) { + // first, try upgradring the package, if that + // does not help, the breaks goes onto the + // kill list + // FIXME: use DoUpgrade(Pkg) instead? + if (Cache[End] & pkgDepCache::DepGCVer) + { if (Debug) clog << " Upgrading " << Pkg.Name() << " due to Breaks field in " << I.Name() << endl; Cache.MarkInstall(Pkg, false, 0, false); continue; } - if (Debug) - clog << " Will not break " << Pkg.Name() << " as stated in Breaks field in " << I.Name() <<endl; - Cache.MarkKeep(I, false, false); - continue; } // Skip adding to the kill list if it is protected @@ -1066,6 +1066,7 @@ bool pkgProblemResolver::Resolve(bool BrokenFix) if ((Cache[J->Dep] & pkgDepCache::DepGNow) == 0) { if (J->Dep->Type == pkgCache::Dep::Conflicts || + J->Dep->Type == pkgCache::Dep::DpkgBreaks || J->Dep->Type == pkgCache::Dep::Obsoletes) { if (Debug == true) diff --git a/debian/changelog b/debian/changelog index 953c12294..2a4112ef8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -18,6 +18,8 @@ apt (0.7.11) UNRELEASED; urgency=low on amd64 in sbuild * apt-pkg/algorithms.cc: - add APT::Update::Post-Invoke-Success script slot + - Make the breaks handling use the kill list. This means, that a + Breaks: Pkg (<< version) may put Pkg onto the remove list. * apt-pkg/deb/debmetaindex.cc: - add missing "Release" file uri when apt-get update --print-uris is run |