summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Andres Klode <jak@debian.org>2010-08-06 23:33:55 +0200
committerJulian Andres Klode <jak@debian.org>2010-08-06 23:33:55 +0200
commit736f67512b4c2c8069011116217a6ffdcd374500 (patch)
treeeec4235dafe49b740f22deaa7f81a3fd67b5b1a3
parent73dfa041545d34b79a4dd25a0baa3e64f5564a62 (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.cc9
-rw-r--r--debian/changelog5
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