]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/packagemanager.cc
Hide hit for local uris
[apt.git] / apt-pkg / packagemanager.cc
index 7dd6b8a2785e47640e1e86abfd4a21c2954513d0..3fc88586bcd2c03fd720dddc04d2084287a507f9 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: packagemanager.cc,v 1.7 1998/11/22 23:37:05 jgg Exp $
+// $Id: packagemanager.cc,v 1.10 1998/12/10 04:22:46 jgg Exp $
 /* ######################################################################
 
    Package Manager - Abstacts the package manager
 /* ######################################################################
 
    Package Manager - Abstacts the package manager
@@ -64,6 +64,10 @@ bool pkgPackageManager::GetArchives(pkgAcquire *Owner,pkgSourceList *Sources,
       // Skip packages to erase
       if (Cache[Pkg].Delete() == true)
         continue;
       // Skip packages to erase
       if (Cache[Pkg].Delete() == true)
         continue;
+
+      // Skip Packages that need configure only.
+      if (Pkg.State() == pkgCache::PkgIterator::NeedsConfigure)
+        continue;
       
       new pkgAcqArchive(Owner,Sources,Recs,Cache[Pkg].InstVerIter(Cache),
                        FileNames[Pkg->ID]);
       
       new pkgAcqArchive(Owner,Sources,Recs,Cache[Pkg].InstVerIter(Cache),
                        FileNames[Pkg->ID]);
@@ -106,15 +110,19 @@ bool pkgPackageManager::CreateOrderList()
    // Generate the list of affected packages and sort it
    for (PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
    {
    // Generate the list of affected packages and sort it
    for (PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
    {
-      // Consider all depends
+      // Mark the package for immediate configuration
       if ((I->Flags & pkgCache::Flag::Essential) == pkgCache::Flag::Essential)
       {
         List->Flag(I,pkgOrderList::Immediate);
       if ((I->Flags & pkgCache::Flag::Essential) == pkgCache::Flag::Essential)
       {
         List->Flag(I,pkgOrderList::Immediate);
+        
+        // Look for other packages to make immediate configurea
         if (Cache[I].InstallVer != 0)
            for (DepIterator D = Cache[I].InstVerIter(Cache).DependsList(); 
                 D.end() == false; D++)
               if (D->Type == pkgCache::Dep::Depends || D->Type == pkgCache::Dep::PreDepends)
                  List->Flag(D.TargetPkg(),pkgOrderList::Immediate);
         if (Cache[I].InstallVer != 0)
            for (DepIterator D = Cache[I].InstVerIter(Cache).DependsList(); 
                 D.end() == false; D++)
               if (D->Type == pkgCache::Dep::Depends || D->Type == pkgCache::Dep::PreDepends)
                  List->Flag(D.TargetPkg(),pkgOrderList::Immediate);
+        
+        // And again with the current version.
         if (I->CurrentVer != 0)
            for (DepIterator D = I.CurrentVer().DependsList(); 
                 D.end() == false; D++)
         if (I->CurrentVer != 0)
            for (DepIterator D = I.CurrentVer().DependsList(); 
                 D.end() == false; D++)
@@ -369,7 +377,7 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg)
            return _error->Error("Internal Error, Could not perform immediate configuraton");
       return true;
    }
            return _error->Error("Internal Error, Could not perform immediate configuraton");
       return true;
    }
-   
+
    /* See if this packages install version has any predependencies
       that are not met by 'now' packages. */
    for (DepIterator D = Cache[Pkg].InstVerIter(Cache).DependsList(); 
    /* See if this packages install version has any predependencies
       that are not met by 'now' packages. */
    for (DepIterator D = Cache[Pkg].InstVerIter(Cache).DependsList();