diff options
author | David Kalnischkies <kalnischkies@gmail.com> | 2011-05-17 18:23:20 +0200 |
---|---|---|
committer | David Kalnischkies <kalnischkies@gmail.com> | 2011-05-17 18:23:20 +0200 |
commit | a16dec4dbe7847597025f44f84027bb3f25f4f42 (patch) | |
tree | 5884e1af60060ba183c0a468380c863e221b2f89 /apt-pkg | |
parent | 3d619a202a6fbcaaaf6a6540b06c5deb3a50a3be (diff) |
if a Breaks can't be upgraded, remove it. If it or a Conflict
can't be removed the installation of the breaker fails.
Diffstat (limited to 'apt-pkg')
-rw-r--r-- | apt-pkg/depcache.cc | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index f84ec25ca..1d905df2e 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -1172,16 +1172,17 @@ bool pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, continue; if (PkgState[Pkg->ID].CandidateVer != *I && - Start->Type == Dep::DpkgBreaks) - MarkInstall(Pkg,true,Depth + 1, false, ForceImportantDeps); - else - MarkDelete(Pkg,false,Depth + 1, false); + Start->Type == Dep::DpkgBreaks && + MarkInstall(Pkg,true,Depth + 1, false, ForceImportantDeps) == true) + continue; + else if (MarkDelete(Pkg,false,Depth + 1, false) == false) + break; } continue; } } - return true; + return Dep.end() == true; } /*}}}*/ // DepCache::IsInstallOk - check if it is ok to install this package /*{{{*/ |