Michael Vogt лет назад: 21
Родитель
Сommit
899d08fea9
2 измененных файлов с 9 добавлено и 6 удалено
  1. 4 2
      apt-pkg/algorithms.cc
  2. 5 4
      apt-pkg/algorithms.h

+ 4 - 2
apt-pkg/algorithms.cc

@@ -1386,18 +1386,20 @@ bool pkgMarkUsed(pkgDepCache &Cache, InRootSetFunc func)
    }
 
 
-   // do the mark part
+   // do the mark part, this is the core bit of the algorithm
    for(pkgCache::PkgIterator p=Cache.PkgBegin(); !p.end(); ++p)
    {
       if( (func != NULL ? (*func)(p) : false) ||
-	  pkgMarkAlwaysInclude(p, neverAutoRemoveRegexp) ||
+	   pkgMarkAlwaysInclude(p, neverAutoRemoveRegexp) ||
 	 !(Cache[p].Flags & pkgCache::Flag::Auto) ||
 	  (p->Flags & pkgCache::Flag::Essential))
           
       {
+	 // the package is installed (and set to keep)
 	 if(Cache[p].Keep() && !p.CurrentVer().end())
 	    pkgMarkPackage(Cache, p, p.CurrentVer(),
 			   follow_recommends, follow_suggests);
+	 // the package is to be installed 
 	 else if(Cache[p].Install())
 	    pkgMarkPackage(Cache, p, Cache[p].InstVerIter(Cache),
 			   follow_recommends, follow_suggests);

+ 5 - 4
apt-pkg/algorithms.h

@@ -135,12 +135,13 @@ void pkgPrioSortList(pkgCache &Cache,pkgCache::Version **List);
 
 
 // callback function that can be used by the client to bring in
-// certain own packages into the root set
+// certain own packages into the root set (if the client returns
+// True the package will be considered as part of the root set)
 typedef bool (*InRootSetFunc)(pkgCache::PkgIterator);
 
-// Mark all reachable packages with pkgDepCache::StateCache.Marked 
-// the root-set are all essential packages+everything that was installed
-// manually
+// Mark all reachable packages with "pkgDepCache::StateCache.Marked=1"
+// the root-set are all essential packages+everything that was not 
+// installed automatically
 //
 // If InRootSetFunc is set, it will be called for each PkgIterator. This
 // is usefull for clients that have there own idea about the root-set