diff options
author | David Kalnischkies <kalnischkies@gmail.com> | 2010-11-10 13:26:37 +0100 |
---|---|---|
committer | David Kalnischkies <kalnischkies@gmail.com> | 2010-11-10 13:26:37 +0100 |
commit | edbda33bdef6a480fcfcb5d6b9a219c10cbeaaba (patch) | |
tree | 8ca43482d477b2a437d368e4ab1fa1c6ff6aaad8 /apt-pkg | |
parent | a3f1a6ccd29480ae45e0a82871b05e009741d7fa (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.cc | 7 |
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); |