Przeglądaj źródła

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

David Kalnischkies 15 lat temu
rodzic
commit
e92f6a1846
1 zmienionych plików z 16 dodań i 16 usunięć
  1. 16 16
      apt-pkg/depcache.cc

+ 16 - 16
apt-pkg/depcache.cc

@@ -1078,7 +1078,22 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
       */
       */
       if (IsImportantDep(Start) == false)
       if (IsImportantDep(Start) == false)
 	 continue;
 	 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
       /* Check if any ImportantDep() (but not Critical) were added
        * since we installed the package.  Also check for deps that
        * since we installed the package.  Also check for deps that
        * were satisfied in the past: for instance, if a version
        * were satisfied in the past: for instance, if a version
@@ -1133,21 +1148,6 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
 	  && !ForceImportantDeps)
 	  && !ForceImportantDeps)
 	 continue;
 	 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
       /* This bit is for processing the possibilty of an install/upgrade
          fixing the problem */
          fixing the problem */
       SPtrArray<Version *> List = Start.AllTargets();
       SPtrArray<Version *> List = Start.AllTargets();