summaryrefslogtreecommitdiff
path: root/apt-pkg
diff options
context:
space:
mode:
authorDavid Kalnischkies <kalnischkies@gmail.com>2010-11-10 13:26:37 +0100
committerDavid Kalnischkies <kalnischkies@gmail.com>2010-11-10 13:26:37 +0100
commitedbda33bdef6a480fcfcb5d6b9a219c10cbeaaba (patch)
tree8ca43482d477b2a437d368e4ab1fa1c6ff6aaad8 /apt-pkg
parenta3f1a6ccd29480ae45e0a82871b05e009741d7fa (diff)
* apt-pkg/depcache.cc:
- don't install previously not installed providers in a try to statisfy a "Breaks: provides" dependency by upgrade
Diffstat (limited to 'apt-pkg')
-rw-r--r--apt-pkg/depcache.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc
index 0b5d6d8e6..23abc76c1 100644
--- a/apt-pkg/depcache.cc
+++ b/apt-pkg/depcache.cc
@@ -1444,8 +1444,11 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
VerIterator Ver(*this,*I);
PkgIterator Pkg = Ver.ParentPkg();
-
-
+ /* The List includes all packages providing this dependency,
+ even providers which are not installed, so skip them. */
+ if (PkgState[Pkg->ID].InstallVer == 0)
+ continue;
+
if (PkgState[Pkg->ID].CandidateVer != *I &&
Start->Type == Dep::DpkgBreaks)
MarkInstall(Pkg,true,Depth + 1, false, ForceImportantDeps);