]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/depcache.cc
Multiple different versions support
[apt.git] / apt-pkg / depcache.cc
index 1529eb364370c53bcfc5fdce9bca3d973cb32585..36abcddd4359406ecce3543c1ce2cd2c4c2a847c 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: depcache.cc,v 1.16 1999/04/12 04:21:20 jgg Exp $
+// $Id: depcache.cc,v 1.18 1999/04/28 22:48:45 jgg Exp $
 /* ######################################################################
 
    Dependency Cache - Caches Dependency information.
@@ -205,10 +205,7 @@ void pkgDepCache::AddSizes(const PkgIterator &Pkg,long Mult)
    
    if (Pkg.State() == pkgCache::PkgIterator::NeedsConfigure && 
        P.Keep() == true)
-   {
-      iUsrSize += Mult*P.InstVerIter(*this)->InstalledSize;
       return;
-   }
    
    // Compute the size data
    if (P.NewInstall() == true)
@@ -522,6 +519,12 @@ void pkgDepCache::MarkKeep(PkgIterator const &Pkg,bool Soft)
    // Simplifies other routines.
    if (Pkg.end() == true)
       return;
+
+   /* Reject an attempt to keep a non-source broken installed package, those
+      must be upgraded */
+   if (Pkg.State() == PkgIterator::NeedsUnpack && 
+       Pkg.CurrentVer().Downloadable() == false)
+      return;
    
    /* We changed the soft state all the time so the UI is a bit nicer
       to use */