diff options
author | Julian Andres Klode <jak@debian.org> | 2010-08-06 23:33:55 +0200 |
---|---|---|
committer | Julian Andres Klode <jak@debian.org> | 2010-08-06 23:33:55 +0200 |
commit | 736f67512b4c2c8069011116217a6ffdcd374500 (patch) | |
tree | eec4235dafe49b740f22deaa7f81a3fd67b5b1a3 | |
parent | 73dfa041545d34b79a4dd25a0baa3e64f5564a62 (diff) |
* apt-pkg/depcache.cc:
- Only try upgrade for Breaks if there is a newer version, otherwise
handle it as Conflicts (by removing it) (helps for #591881).
-rw-r--r-- | apt-pkg/depcache.cc | 9 | ||||
-rw-r--r-- | debian/changelog | 5 |
2 files changed, 11 insertions, 3 deletions
diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index bc663a8e9..043185dbc 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -1425,10 +1425,13 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, VerIterator Ver(*this,*I); PkgIterator Pkg = Ver.ParentPkg(); - if (Start->Type != Dep::DpkgBreaks) - MarkDelete(Pkg,false,Depth + 1, false); - else if (PkgState[Pkg->ID].CandidateVer != *I) + + + if (PkgState[Pkg->ID].CandidateVer != *I && + Start->Type == Dep::DpkgBreaks) MarkInstall(Pkg,true,Depth + 1, false, ForceImportantDeps); + else + MarkDelete(Pkg,false,Depth + 1, false); } continue; } diff --git a/debian/changelog b/debian/changelog index 1d76736a3..4e453040f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -8,6 +8,11 @@ apt (0.7.26~exp13) UNRELEASEDexperimental; urgency=low * apt-pkg/cdrom.cc: - fix off-by-one error in DropBinaryArch + [ Julian Andres Klode ] + * apt-pkg/depcache.cc: + - Only try upgrade for Breaks if there is a newer version, otherwise + handle it as Conflicts (by removing it) (helps for #591881). + -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 30 Jul 2010 17:37:14 +0200 apt (0.7.26~exp12) experimental; urgency=low |