diff options
author | David Kalnischkies <kalnischkies@gmail.com> | 2011-05-12 12:45:37 +0200 |
---|---|---|
committer | David Kalnischkies <kalnischkies@gmail.com> | 2011-05-12 12:45:37 +0200 |
commit | e92f6a18468131f391e4b91f77c08560d653b20f (patch) | |
tree | 77ec33cf1acc03f376ae6bc288d1a2edd53563b7 /apt-pkg/depcache.cc | |
parent | 359e46db58b85497fd232fbe912b8a62e77079c5 (diff) |
move the broken dependency detection above the new recommends detection
as if the recommends can't be installed there is not much sense in checking
if it a new recommends or not
Diffstat (limited to 'apt-pkg/depcache.cc')
-rw-r--r-- | apt-pkg/depcache.cc | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 18b6d160a..508e45962 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -1078,7 +1078,22 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, */ if (IsImportantDep(Start) == false) continue; - + + /* If we are in an or group locate the first or that can + succeed. We have already cached this.. */ + for (; Ors > 1 && (DepState[Start->ID] & DepCVer) != DepCVer; --Ors) + ++Start; + if (Ors == 1 && (DepState[Start->ID] &DepCVer) != DepCVer && Start.IsNegative() == false) + { + if(DebugAutoInstall == true) + std::clog << OutputInDepth(Depth) << Start << " can't be satisfied!" << std::endl; + if (Start.IsCritical() == false) + continue; + // if the dependency was critical, we can't install it, so remove it again + MarkDelete(Pkg,false,Depth + 1, false); + return; + } + /* Check if any ImportantDep() (but not Critical) were added * since we installed the package. Also check for deps that * were satisfied in the past: for instance, if a version @@ -1133,21 +1148,6 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, && !ForceImportantDeps) continue; - /* If we are in an or group locate the first or that can - succeed. We have already cached this.. */ - for (; Ors > 1 && (DepState[Start->ID] & DepCVer) != DepCVer; --Ors) - ++Start; - if (Ors == 1 && (DepState[Start->ID] &DepCVer) != DepCVer && Start.IsNegative() == false) - { - if(DebugAutoInstall == true) - std::clog << OutputInDepth(Depth) << Start << " can't be satisfied!" << std::endl; - if (Start.IsCritical() == false) - continue; - // if the dependency was critical, we can't install it, so remove it again - MarkDelete(Pkg,false,Depth + 1, false); - return; - } - /* This bit is for processing the possibilty of an install/upgrade fixing the problem */ SPtrArray<Version *> List = Start.AllTargets(); |