]> git.saurik.com Git - apt.git/commitdiff
* merged from apt--auto-mark
authorMichael Vogt <egon@bottom>
Sun, 1 Oct 2006 23:12:29 +0000 (01:12 +0200)
committerMichael Vogt <egon@bottom>
Sun, 1 Oct 2006 23:12:29 +0000 (01:12 +0200)
1  2 
apt-pkg/depcache.cc
cmdline/apt-get.cc
debian/rules
po/apt-all.pot

diff --combined apt-pkg/depcache.cc
index 446bbe402d75e99340a6a31882908eb3393f12b0,2bae94026933167b32caf0ad5adfce4be3d89c31..0a364f6caf3bfe9bcdb44ff5b78eefb281b3d87c
@@@ -399,11 -399,9 +399,11 @@@ void pkgDepCache::AddStates(const PkgIt
  {
     StateCache &State = PkgState[Pkg->ID];
     
 -   // The Package is broken
 +   // The Package is broken (either minimal dep or policy dep)
     if ((State.DepState & DepInstMin) != DepInstMin)
        iBrokenCount += Add;
 +   if ((State.DepState & DepInstPolicy) != DepInstPolicy)
 +      iPolicyBrokenCount += Add;
     
     // Bad state
     if (Pkg.State() != PkgIterator::NeedsNothing)
@@@ -703,9 -701,18 +703,17 @@@ void pkgDepCache::MarkKeep(PkgIterator 
     // We dont even try to keep virtual packages..
     if (Pkg->VersionList == 0)
        return;
-    
 -
+ #if 0 // reseting the autoflag here means we lose the 
+       // auto-mark information if a user selects a package for removal
+       // but changes  his mind then and sets it for keep again
+       // - this makes sense as default when all Garbage dependencies
+       //   are automatically marked for removal (as aptitude does).
+       //   setting a package for keep then makes it no longer autoinstalled
+       //   for all other use-case this action is rather suprising
     if(FromUser && !P.Marked)
       P.Flags &= ~Flag::Auto;
+ #endif
     RemoveSizes(Pkg);
     RemoveStates(Pkg);
  
@@@ -765,8 -772,7 +773,8 @@@ void pkgDepCache::MarkDelete(PkgIterato
  // ---------------------------------------------------------------------
  /* */
  void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
 -                            unsigned long Depth, bool FromUser)
 +                            unsigned long Depth, bool FromUser,
 +                            bool ForceImportantDeps)
  {
     if (Depth > 100)
        return;
        installed */
     StateCache &P = PkgState[Pkg->ID];
     P.iFlags &= ~AutoKept;
 -   if (P.InstBroken() == false && (P.Mode == ModeInstall ||
 +   if ((P.InstPolicyBroken() == false && P.InstBroken() == false) && 
 +       (P.Mode == ModeInstall ||
        P.CandidateVer == (Version *)Pkg.CurrentVer()))
     {
        if (P.CandidateVer == (Version *)Pkg.CurrentVer() && P.InstallVer == 0)
     // See if there is even any possible instalation candidate
     if (P.CandidateVer == 0)
        return;
 -   
     // We dont even try to install virtual packages..
     if (Pkg->VersionList == 0)
        return;
 -   
     /* Target the candidate version and remove the autoflag. We reset the
        autoflag below if this was called recursively. Otherwise the user
        should have the ability to de-auto a package by changing its state */
  
        /* Check if this dep should be consider for install. If it is a user
           defined important dep and we are installed a new package then 
 -       it will be installed. Otherwise we only worry about critical deps */
 +       it will be installed. Otherwise we only check for important
 +         deps that have changed from the installed version
 +      */
        if (IsImportantDep(Start) == false)
         continue;
 -      if (Pkg->CurrentVer != 0 && Start.IsCritical() == false)
 +      
 +      /* check if any ImportantDep() (but not Critial) where added
 +       * since we installed the package
 +       */
 +      bool isNewImportantDep = false;
 +      if(!ForceImportantDeps && !Start.IsCritical())
 +      {
 +       bool found=false;
 +       VerIterator instVer = Pkg.CurrentVer();
 +       if(!instVer.end())
 +       {
 +          for (DepIterator D = instVer.DependsList(); D.end() != true; D++)
 +          {
 +             //FIXME: deal better with or-groups(?)
 +             DepIterator LocalStart = D;
 +             
 +             if(IsImportantDep(D) && Start.TargetPkg() == D.TargetPkg())
 +                found=true;
 +          }
 +          // this is a new dep if it was not found to be already
 +          // a important dep of the installed pacakge
 +          isNewImportantDep = !found;
 +       }
 +      }
 +      if(isNewImportantDep)
 +       if(_config->FindB("Debug::pkgDepCache::AutoInstall",false) == true)
 +          std::clog << "new important dependency: " 
 +                    << Start.TargetPkg().Name() << std::endl;
 +
 +      // skip important deps if the package is already installed
 +      if (Pkg->CurrentVer != 0 && Start.IsCritical() == false 
 +        && !isNewImportantDep && !ForceImportantDeps)
         continue;
        
        /* If we are in an or group locate the first or that can 
               std::clog << "Installing " << InstPkg.Name() 
                         << " as dep of " << Pkg.Name() 
                         << std::endl;
 -         MarkInstall(InstPkg, true, Depth + 1, false);
 +         MarkInstall(InstPkg, true, Depth + 1, false, ForceImportantDeps);
-           // Set the autoflag, after MarkInstall because MarkInstall 
-           // unsets it
-           if (P->CurrentVer == 0)
-              PkgState[InstPkg->ID].Flags |= Flag::Auto;
         }
         continue;
        }
@@@ -1099,28 -1069,7 +1103,28 @@@ pkgCache::VerIterator pkgDepCache::Poli
  /* */
  bool pkgDepCache::Policy::IsImportantDep(DepIterator Dep)
  {
 -   return Dep.IsCritical();
 +   if(Dep.IsCritical())
 +      return true;
 +   else if(Dep->Type == pkgCache::Dep::Recommends) 
 +   {
 +      if ( _config->FindB("APT::Install-Recommends", false))
 +       return true;
 +      // we suport a special mode to only install-recommends for certain
 +      // sections
 +      // FIXME: this is a meant as a temporarly solution until the 
 +      //        recommends are cleaned up
 +      string s = _config->Find("APT::Install-Recommends-Section","");
 +      if(s.size() > 0) 
 +      {
 +       const char *sec = Dep.TargetPkg().Section();
 +       if (sec && strcmp(sec, s.c_str()) == 0)
 +          return true;
 +      }
 +   }
 +   else if(Dep->Type == pkgCache::Dep::Suggests)
 +     return _config->FindB("APT::Install-Suggests", false);
 +
 +   return false;
  }
                                                                        /*}}}*/
  
@@@ -1325,8 -1274,7 +1329,7 @@@ bool pkgDepCache::Sweep(
       StateCache &state=PkgState[p->ID];
  
       // if it is not marked and it is installed, it's garbage 
-      if(!state.Marked && (!p.CurrentVer().end() || state.Install()) &&
-       !state.Delete())
+      if(!state.Marked && (!p.CurrentVer().end() || state.Install()))
       {
        state.Garbage=true;
        if(_config->FindB("Debug::pkgAutoRemove",false))
diff --combined cmdline/apt-get.cc
index cb0690bdfa2eda35f2fa5f6dfbf58dacbb64249e,570e1016cec7896581681613560e73eee8368862..be4b46857193c799075f380e1b9dc7916aad37bc
@@@ -629,8 -629,6 +629,8 @@@ void CacheFile::Sort(
     and verifies that the system is OK. */
  bool CacheFile::CheckDeps(bool AllowBroken)
  {
 +   bool FixBroken = _config->FindB("APT::Get::Fix-Broken",false);
 +
     if (_error->PendingError() == true)
        return false;
  
     if (pkgApplyStatus(*DCache) == false)
        return false;
     
 +   if (_config->FindB("APT::Get::Fix-Policy-Broken",false) == true)
 +   {
 +      FixBroken = true;
 +      if ((DCache->PolicyBrokenCount() > 0))
 +      {
 +       // upgrade all policy-broken packages with ForceImportantDeps=True
 +       for (pkgCache::PkgIterator I = Cache->PkgBegin(); !I.end(); I++)
 +          if ((*DCache)[I].NowPolicyBroken() == true) 
 +             DCache->MarkInstall(I,true,0, false, true);
 +      }
 +   }
 +
     // Nothing is broken
     if (DCache->BrokenCount() == 0 || AllowBroken == true)
        return true;
  
     // Attempt to fix broken things
 -   if (_config->FindB("APT::Get::Fix-Broken",false) == true)
 +   if (FixBroken == true)
     {
        c1out << _("Correcting dependencies...") << flush;
        if (pkgFixBroken(*DCache) == false || DCache->BrokenCount() != 0)
@@@ -1160,11 -1146,9 +1160,11 @@@ bool TryToInstall(pkgCache::PkgIterato
     else
        ExpectedInst++;
     
 -   // Install it with autoinstalling enabled.
 -   if (State.InstBroken() == true && BrokenFix == false)
 +   // Install it with autoinstalling enabled (if we not respect the minial
 +   // required deps or the policy)
 +   if ((State.InstBroken() == true || State.InstPolicyBroken() == true) && BrokenFix == false)
        Cache.MarkInstall(Pkg,true);
 +
     return true;
  }
                                                                        /*}}}*/
@@@ -1408,31 -1392,47 +1408,47 @@@ bool DoUpdate(CommandLine &CmdL
  /* Remove unused automatic packages */
  bool DoAutomaticRemove(CacheFile &Cache)
  {
-    if(_config->FindI("Debug::pkgAutoRemove",false))
-       std::cout << "DoAutomaticRemove()" << std::endl;
+    bool Debug = _config->FindI("Debug::pkgAutoRemove",false);
+    bool doAutoRemove = _config->FindB("APT::Get::AutomaticRemove");
+    pkgDepCache::ActionGroup group(*Cache);
+    
  
-    if (_config->FindB("APT::Get::Remove",true) == false)
-       return _error->Error(_("We are not supposed to delete stuff, can't "
-                            "start AutoRemover"));
+    if(Debug)
+       std::cout << "DoAutomaticRemove()" << std::endl;
  
+    if (_config->FindB("APT::Get::Remove",true) == false &&
+        doAutoRemove == true)
     {
-      pkgDepCache::ActionGroup group(*Cache);
-      // look over the cache to see what can be removed
-      for (pkgCache::PkgIterator Pkg = Cache->PkgBegin(); ! Pkg.end(); ++Pkg)
-        {
-        if (Cache[Pkg].Garbage)
-          {
-            if(Pkg.CurrentVer() != 0 || Cache[Pkg].Install())
-              fprintf(stdout,"We could delete %s\n", Pkg.Name());
+       c1out << _("We are not supposed to delete stuff, can't start "
+                "AutoRemover") << std::endl;
+       doAutoRemove = false;
+    }
  
-            if(Pkg.CurrentVer() != 0 && Pkg->CurrentState != pkgCache::State::ConfigFiles)
+    string autoremovelist, autoremoveversions;
+    // look over the cache to see what can be removed
+    for (pkgCache::PkgIterator Pkg = Cache->PkgBegin(); ! Pkg.end(); ++Pkg)
+    {
+       if (Cache[Pkg].Garbage)
+       {
+        if(Pkg.CurrentVer() != 0 || Cache[Pkg].Install())
+           if(Debug)
+              std::cout << "We could delete %s" <<  Pkg.Name() << std::endl;
+          
+        autoremovelist += string(Pkg.Name()) + " ";
+        autoremoveversions += string(Cache[Pkg].CandVersion) + " ";
+        if (doAutoRemove)
+        {
+           if(Pkg.CurrentVer() != 0 && 
+              Pkg->CurrentState != pkgCache::State::ConfigFiles)
               Cache->MarkDelete(Pkg, _config->FindB("APT::Get::Purge", false));
-            else
+           else
               Cache->MarkKeep(Pkg, false, false);
-          }
-        }
+        }
+       }
     }
+    ShowList(c1out, _("The following packages were automatically installed and are no longer required:"), autoremovelist, autoremoveversions);
+    if (!doAutoRemove && autoremovelist.size() > 0)
+       c1out << _("Use 'apt-get autoremove' to remove them.") << std::endl;
  
     // Now see if we destroyed anything
     if (Cache->BrokenCount() != 0)
@@@ -1469,51 -1469,6 +1485,51 @@@ bool DoUpgrade(CommandLine &CmdL
     return InstallPackages(Cache,true);
  }
                                                                        /*}}}*/
 +// DoInstallTask - Install task from the command line                 /*{{{*/
 +// ---------------------------------------------------------------------
 +/* Install named task */
 +bool TryInstallTask(pkgDepCache &Cache, pkgProblemResolver &Fix, 
 +                  bool BrokenFix,
 +                  unsigned int& ExpectedInst, 
 +                  const char *taskname)
 +{
 +   const char *start, *end;
 +   pkgCache::PkgIterator Pkg;
 +   char buf[64*1024];
 +   regex_t Pattern;
 +
 +   // get the records
 +   pkgRecords Recs(Cache);
 +
 +   // build regexp for the task
 +   char S[300];
 +   snprintf(S, sizeof(S), "^Task:.*[^a-z]%s[^a-z].*\n", taskname);
 +   regcomp(&Pattern,S, REG_EXTENDED | REG_NOSUB | REG_NEWLINE);
 +   
 +   bool found = false;
 +   bool res = true;
 +   for (Pkg = Cache.PkgBegin(); Pkg.end() == false; Pkg++)
 +   {
 +      pkgCache::VerIterator ver = Cache[Pkg].CandidateVerIter(Cache);
 +      if(ver.end())
 +       continue;
 +      pkgRecords::Parser &parser = Recs.Lookup(ver.FileList());
 +      parser.GetRec(start,end);
 +      strncpy(buf, start, end-start);
 +      buf[end-start] = 0x0;
 +      if (regexec(&Pattern,buf,0,0,0) != 0)
 +       continue;
 +      res &= TryToInstall(Pkg,Cache,Fix,false,BrokenFix,ExpectedInst);
 +      found = true;
 +   }
 +   
 +   if(!found)
 +      _error->Error(_("Couldn't find task %s"),taskname);
 +
 +   regfree(&Pattern);
 +   return res;
 +}
 +
  // DoInstall - Install packages from the command line                 /*{{{*/
  // ---------------------------------------------------------------------
  /* Install named packages */
@@@ -1537,175 -1492,164 +1553,164 @@@ bool DoInstall(CommandLine &CmdL
     if (strcasecmp(CmdL.FileList[0],"remove") == 0)
        DefRemove = true;
     else if (strcasecmp(CmdL.FileList[0], "autoremove") == 0)
-      {
-        _config->Set("APT::Get::AutomaticRemove", "true");
-        DefRemove = true;
-      }
-    for (const char **I = CmdL.FileList + 1; *I != 0; I++)
     {
-       // Duplicate the string
-       unsigned int Length = strlen(*I);
-       char S[300];
-       if (Length >= sizeof(S))
-        continue;
-       strcpy(S,*I);
-       
-       // See if we are removing and special indicators..
-       bool Remove = DefRemove;
-       char *VerTag = 0;
-       bool VerIsRel = false;
-       // this is a task!
-       if (Length >= 1 && S[Length - 1] == '^')
-       {
-        S[--Length] = 0;
-        // tasks must always be confirmed
-        ExpectedInst += 1000;
-        // see if we can install it
-        TryInstallTask(Cache, Fix, BrokenFix, ExpectedInst, S);
-        continue;
-       }
+       _config->Set("APT::Get::AutomaticRemove", "true");
+       DefRemove = true;
+    }
  
-       while (Cache->FindPkg(S).end() == true)
+    // new scope for the ActionGroup
+    {
+       pkgDepCache::ActionGroup group(Cache);
+       for (const char **I = CmdL.FileList + 1; *I != 0; I++)
        {
-        // Handle an optional end tag indicating what to do
-        if (Length >= 1 && S[Length - 1] == '-')
-        {
-           Remove = true;
-           S[--Length] = 0;
+        // Duplicate the string
+        unsigned int Length = strlen(*I);
+        char S[300];
+        if (Length >= sizeof(S))
            continue;
-        }
-        
-        if (Length >= 1 && S[Length - 1] == '+')
-        {
-           Remove = false;
-           S[--Length] = 0;
-           continue;
-        }
-        char *Slash = strchr(S,'=');
-        if (Slash != 0)
+        strcpy(S,*I);
+       
+        // See if we are removing and special indicators..
+        bool Remove = DefRemove;
+        char *VerTag = 0;
+        bool VerIsRel = false;
+        while (Cache->FindPkg(S).end() == true)
         {
-           VerIsRel = false;
-           *Slash = 0;
-           VerTag = Slash + 1;
-        }
+           // Handle an optional end tag indicating what to do
+           if (Length >= 1 && S[Length - 1] == '-')
+           {
+              Remove = true;
+              S[--Length] = 0;
+              continue;
+           }
         
-        Slash = strchr(S,'/');
-        if (Slash != 0)
-        {
-           VerIsRel = true;
-           *Slash = 0;
-           VerTag = Slash + 1;
-        }
+           if (Length >= 1 && S[Length - 1] == '+')
+           {
+              Remove = false;
+              S[--Length] = 0;
+              continue;
+           }
         
-        break;
-       }
-       
-       // Locate the package
-       pkgCache::PkgIterator Pkg = Cache->FindPkg(S);
-       Packages++;
-       if (Pkg.end() == true)
-       {
-        // Check if the name is a regex
-        const char *I;
-        for (I = S; *I != 0; I++)
-           if (*I == '?' || *I == '*' || *I == '|' ||
-               *I == '[' || *I == '^' || *I == '$')
-              break;
-        if (*I == 0)
-           return _error->Error(_("Couldn't find package %s"),S);
-        // Regexs must always be confirmed
-        ExpectedInst += 1000;
+           char *Slash = strchr(S,'=');
+           if (Slash != 0)
+           {
+              VerIsRel = false;
+              *Slash = 0;
+              VerTag = Slash + 1;
+           }
         
-        // Compile the regex pattern
-        regex_t Pattern;
-        int Res;
-        if ((Res = regcomp(&Pattern,S,REG_EXTENDED | REG_ICASE |
-                    REG_NOSUB)) != 0)
-        {
-           char Error[300];        
-           regerror(Res,&Pattern,Error,sizeof(Error));
-           return _error->Error(_("Regex compilation error - %s"),Error);
-        }
+           Slash = strchr(S,'/');
+           if (Slash != 0)
+           {
+              VerIsRel = true;
+              *Slash = 0;
+              VerTag = Slash + 1;
+           }
         
-        // Run over the matches
-        bool Hit = false;
-        for (Pkg = Cache->PkgBegin(); Pkg.end() == false; Pkg++)
+           break;
+        }
+       
+        // Locate the package
+        pkgCache::PkgIterator Pkg = Cache->FindPkg(S);
+        Packages++;
+        if (Pkg.end() == true)
         {
-           if (regexec(&Pattern,Pkg.Name(),0,0,0) != 0)
-              continue;
+           // Check if the name is a regex
+           const char *I;
+           for (I = S; *I != 0; I++)
+              if (*I == '?' || *I == '*' || *I == '|' ||
+                  *I == '[' || *I == '^' || *I == '$')
+                 break;
+           if (*I == 0)
+              return _error->Error(_("Couldn't find package %s"),S);
+           // Regexs must always be confirmed
+           ExpectedInst += 1000;
+        
+           // Compile the regex pattern
+           regex_t Pattern;
+           int Res;
+           if ((Res = regcomp(&Pattern,S,REG_EXTENDED | REG_ICASE |
+                              REG_NOSUB)) != 0)
+           {
+              char Error[300];     
+              regerror(Res,&Pattern,Error,sizeof(Error));
+              return _error->Error(_("Regex compilation error - %s"),Error);
+           }
+        
+           // Run over the matches
+           bool Hit = false;
+           for (Pkg = Cache->PkgBegin(); Pkg.end() == false; Pkg++)
+           {
+              if (regexec(&Pattern,Pkg.Name(),0,0,0) != 0)
+                 continue;
+           
+              ioprintf(c1out,_("Note, selecting %s for regex '%s'\n"),
+                       Pkg.Name(),S);
            
-           ioprintf(c1out,_("Note, selecting %s for regex '%s'\n"),
-                    Pkg.Name(),S);
+              if (VerTag != 0)
+                 if (TryToChangeVer(Pkg,Cache,VerTag,VerIsRel) == false)
+                    return false;
            
+              Hit |= TryToInstall(Pkg,Cache,Fix,Remove,BrokenFix,
+                                  ExpectedInst,false);
+           }
+           regfree(&Pattern);
+        
+           if (Hit == false)
+              return _error->Error(_("Couldn't find package %s"),S);
+        }
+        else
+        {
            if (VerTag != 0)
               if (TryToChangeVer(Pkg,Cache,VerTag,VerIsRel) == false)
                  return false;
-           
-           Hit |= TryToInstall(Pkg,Cache,Fix,Remove,BrokenFix,
-                               ExpectedInst,false);
-        }
-        regfree(&Pattern);
-        
-        if (Hit == false)
-           return _error->Error(_("Couldn't find package %s"),S);
-       }
-       else
-       {
-        if (VerTag != 0)
-           if (TryToChangeVer(Pkg,Cache,VerTag,VerIsRel) == false)
+           if (TryToInstall(Pkg,Cache,Fix,Remove,BrokenFix,ExpectedInst) == false)
               return false;
-        if (TryToInstall(Pkg,Cache,Fix,Remove,BrokenFix,ExpectedInst) == false)
-           return false;
-       }      
-    }
+        }      
+       }
  
-    /* If we are in the Broken fixing mode we do not attempt to fix the
-       problems. This is if the user invoked install without -f and gave
-       packages */
-    if (BrokenFix == true && Cache->BrokenCount() != 0)
-    {
-       c1out << _("You might want to run `apt-get -f install' to correct these:") << endl;
-       ShowBroken(c1out,Cache,false);
+       /* If we are in the Broken fixing mode we do not attempt to fix the
+        problems. This is if the user invoked install without -f and gave
+        packages */
+       if (BrokenFix == true && Cache->BrokenCount() != 0)
+       {
+        c1out << _("You might want to run `apt-get -f install' to correct these:") << endl;
+        ShowBroken(c1out,Cache,false);
  
-       return _error->Error(_("Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution)."));
-    }
+        return _error->Error(_("Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution)."));
+       }
     
-    // Call the scored problem resolver
-    Fix.InstallProtect();
-    if (Fix.Resolve(true) == false)
-       _error->Discard();
+       // Call the scored problem resolver
+       Fix.InstallProtect();
+       if (Fix.Resolve(true) == false)
+        _error->Discard();
  
-    // Now we check the state of the packages,
-    if (Cache->BrokenCount() != 0)
-    {
-       c1out << 
-        _("Some packages could not be installed. This may mean that you have\n" 
-        "requested an impossible situation or if you are using the unstable\n" 
-        "distribution that some required packages have not yet been created\n"
-        "or been moved out of Incoming.") << endl;
-       if (Packages == 1)
+       // Now we check the state of the packages,
+       if (Cache->BrokenCount() != 0)
        {
-        c1out << endl;
         c1out << 
-         _("Since you only requested a single operation it is extremely likely that\n"
-           "the package is simply not installable and a bug report against\n" 
-           "that package should be filed.") << endl;
-       }
+           _("Some packages could not be installed. This may mean that you have\n" 
+             "requested an impossible situation or if you are using the unstable\n" 
+             "distribution that some required packages have not yet been created\n"
+             "or been moved out of Incoming.") << endl;
+        if (Packages == 1)
+        {
+           c1out << endl;
+           c1out << 
+              _("Since you only requested a single operation it is extremely likely that\n"
+                "the package is simply not installable and a bug report against\n" 
+                "that package should be filed.") << endl;
+        }
  
-       c1out << _("The following information may help to resolve the situation:") << endl;
-       c1out << endl;
-       ShowBroken(c1out,Cache,false);
-       return _error->Error(_("Broken packages"));
-    }   
-    
-    if (_config->FindB("APT::Get::AutomaticRemove")) {
-       if (!DoAutomaticRemove(Cache)) 
-        return false;
+        c1out << _("The following information may help to resolve the situation:") << endl;
+        c1out << endl;
+        ShowBroken(c1out,Cache,false);
+        return _error->Error(_("Broken packages"));
+       }   
     }
+    if (!DoAutomaticRemove(Cache)) 
+        return false;
  
     /* Print out a list of packages that are going to be installed extra
        to what the user asked */
@@@ -2674,8 -2618,6 +2679,8 @@@ int main(int argc,const char *argv[]
        {0,"arch-only","APT::Get::Arch-Only",0},
        {0,"auto-remove","APT::Get::AutomaticRemove",0},
        {0,"allow-unauthenticated","APT::Get::AllowUnauthenticated",0},
 +      {0,"install-recommends","APT::Install-Recommends",CommandLine::Boolean},
 +      {0,"fix-policy","APT::Get::Fix-Policy-Broken",0},
        {'c',"config-file",0,CommandLine::ConfigFile},
        {'o',"option",0,CommandLine::ArbItem},
        {0,0,0,0}};
diff --combined debian/rules
index c9bd1f34a5872fb62c0b13f5cbc6721f2cf88456,6a142e759a32a5f784b5bffc5ee6abb6879e8976..0413310a7ed25a8596616535829d5b159ad9875a
@@@ -38,7 -38,7 +38,7 @@@ build
  
  PKG=apt
  DEB_BUILD_PROG:=debuild --preserve-envvar PATH --preserve-envvar CCACHE_DIR -us -uc $(DEB_BUILD_PROG_OPTS)
 -APT_DEBVER=$(shell dpkg-parsechangelog |sed -n -e '/^Version:/s/^Version: //p')
 +APT_DEBVER=$(shell dpkg-parsechangelog |sed -n -e '/^Version:/s/^Version: //p' -e 's/\+.*$$//')
  APT_CONFVER=$(shell sed -n -e 's/^AC_DEFINE_UNQUOTED(VERSION,"\(.*\)")/\1/p' configure.in)
  APT_CVSTAG=$(shell echo "$(APT_DEBVER)" | sed -e 's/^/v/' -e 's/\./_/g')
  
@@@ -211,7 -211,7 +211,7 @@@ apt: build debian/shlibs.loca
        cp debian/bugscript debian/$@/usr/share/bug/apt/script
  
        cp share/debian-archive.gpg debian/$@/usr/share/$@
+       cp debian/apt.conf.autoremove debian/$@/etc/apt/apt.conf.d/01autoremove
  #     head -n 500 ChangeLog > debian/ChangeLog
  
        dh_installexamples -p$@ $(BLD)/docs/examples/*
diff --combined po/apt-all.pot
index 46299c8b627a3ffd0bf4d353bdd519150d37f2e5,0a7a306297822b1d3b5a032eb1c4d29a502ccfdb..90da191191c251584a2cea819878aeff88a880e6
@@@ -7,7 -7,7 +7,7 @@@ msgid "
  msgstr ""
  "Project-Id-Version: PACKAGE VERSION\n"
  "Report-Msgid-Bugs-To: \n"
- "POT-Creation-Date: 2006-09-19 17:21+0200\n"
 -"POT-Creation-Date: 2006-09-06 18:58+0200\n"
++"POT-Creation-Date: 2006-08-15 15:55+0200\n"
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
  "Language-Team: LANGUAGE <LL@li.org>\n"
  "Content-Type: text/plain; charset=CHARSET\n"
  "Content-Transfer-Encoding: 8bit\n"
  
--#: cmdline/apt-cache.cc:135
++#: cmdline/apt-cache.cc:141
  #, c-format
  msgid "Package %s version %s has an unmet dep:\n"
  msgstr ""
  
--#: cmdline/apt-cache.cc:175 cmdline/apt-cache.cc:527 cmdline/apt-cache.cc:615
--#: cmdline/apt-cache.cc:771 cmdline/apt-cache.cc:989 cmdline/apt-cache.cc:1357
--#: cmdline/apt-cache.cc:1508
++#: cmdline/apt-cache.cc:181 cmdline/apt-cache.cc:550 cmdline/apt-cache.cc:638
++#: cmdline/apt-cache.cc:794 cmdline/apt-cache.cc:1012
++#: cmdline/apt-cache.cc:1413 cmdline/apt-cache.cc:1564
  #, c-format
  msgid "Unable to locate package %s"
  msgstr ""
  
--#: cmdline/apt-cache.cc:232
++#: cmdline/apt-cache.cc:245
  msgid "Total package names : "
  msgstr ""
  
--#: cmdline/apt-cache.cc:272
++#: cmdline/apt-cache.cc:285
  msgid "  Normal packages: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:273
++#: cmdline/apt-cache.cc:286
  msgid "  Pure virtual packages: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:274
++#: cmdline/apt-cache.cc:287
  msgid "  Single virtual packages: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:275
++#: cmdline/apt-cache.cc:288
  msgid "  Mixed virtual packages: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:276
++#: cmdline/apt-cache.cc:289
  msgid "  Missing: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:278
++#: cmdline/apt-cache.cc:291
  msgid "Total distinct versions: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:280
++#: cmdline/apt-cache.cc:293
++msgid "Total Distinct Descriptions: "
++msgstr ""
++
++#: cmdline/apt-cache.cc:295
  msgid "Total dependencies: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:283
++#: cmdline/apt-cache.cc:298
  msgid "Total ver/file relations: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:285
++#: cmdline/apt-cache.cc:300
++msgid "Total Desc/File relations: "
++msgstr ""
++
++#: cmdline/apt-cache.cc:302
  msgid "Total Provides mappings: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:297
++#: cmdline/apt-cache.cc:314
  msgid "Total globbed strings: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:311
++#: cmdline/apt-cache.cc:328
  msgid "Total dependency version space: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:316
++#: cmdline/apt-cache.cc:333
  msgid "Total slack space: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:324
++#: cmdline/apt-cache.cc:341
  msgid "Total space accounted for: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189
++#: cmdline/apt-cache.cc:469 cmdline/apt-cache.cc:1212
  #, c-format
  msgid "Package file %s is out of sync."
  msgstr ""
  
--#: cmdline/apt-cache.cc:1231
++#: cmdline/apt-cache.cc:1287
  msgid "You must give exactly one pattern"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1385
++#: cmdline/apt-cache.cc:1441
  msgid "No packages found"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1462
++#: cmdline/apt-cache.cc:1518
  msgid "Package files:"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555
++#: cmdline/apt-cache.cc:1525 cmdline/apt-cache.cc:1611
  msgid "Cache is out of sync, can't x-ref a package file"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1470
++#: cmdline/apt-cache.cc:1526
  #, c-format
  msgid "%4i %s\n"
  msgstr ""
  
  #. Show any packages have explicit pins
--#: cmdline/apt-cache.cc:1482
++#: cmdline/apt-cache.cc:1538
  msgid "Pinned packages:"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535
++#: cmdline/apt-cache.cc:1550 cmdline/apt-cache.cc:1591
  msgid "(not found)"
  msgstr ""
  
  #. Installed version
--#: cmdline/apt-cache.cc:1515
++#: cmdline/apt-cache.cc:1571
  msgid "  Installed: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525
++#: cmdline/apt-cache.cc:1573 cmdline/apt-cache.cc:1581
  msgid "(none)"
  msgstr ""
  
  #. Candidate Version
--#: cmdline/apt-cache.cc:1522
++#: cmdline/apt-cache.cc:1578
  msgid "  Candidate: "
  msgstr ""
  
--#: cmdline/apt-cache.cc:1532
++#: cmdline/apt-cache.cc:1588
  msgid "  Package pin: "
  msgstr ""
  
  #. Show the priority tables
--#: cmdline/apt-cache.cc:1541
++#: cmdline/apt-cache.cc:1597
  msgid "  Version table:"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1556
++#: cmdline/apt-cache.cc:1612
  #, c-format
  msgid "       %4i %s\n"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70
++#: cmdline/apt-cache.cc:1708 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70
  #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550
- #: cmdline/apt-get.cc:2444 cmdline/apt-sortpkgs.cc:144
 -#: cmdline/apt-get.cc:2455 cmdline/apt-sortpkgs.cc:144
++#: cmdline/apt-get.cc:2462 cmdline/apt-sortpkgs.cc:144
  #, c-format
  msgid "%s %s for %s %s compiled on %s %s\n"
  msgstr ""
  
--#: cmdline/apt-cache.cc:1659
++#: cmdline/apt-cache.cc:1715
  msgid ""
  "Usage: apt-cache [options] command\n"
  "       apt-cache [options] add file1 [file2 ...]\n"
@@@ -243,7 -243,7 +251,7 @@@ msgid "
  "  -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
  msgstr ""
  
- #: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:710
 -#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:712
++#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:817
  #, c-format
  msgid "Unable to write to %s"
  msgstr ""
@@@ -542,221 -542,221 +550,221 @@@ msgstr "
  msgid "Failed to rename %s to %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:120
+ #: cmdline/apt-get.cc:121
  msgid "Y"
  msgstr ""
  
- #: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1563
 -#: cmdline/apt-get.cc:143 cmdline/apt-get.cc:1569
++#: cmdline/apt-get.cc:143 cmdline/apt-get.cc:1574
  #, c-format
  msgid "Regex compilation error - %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:237
+ #: cmdline/apt-get.cc:238
  msgid "The following packages have unmet dependencies:"
  msgstr ""
  
- #: cmdline/apt-get.cc:327
+ #: cmdline/apt-get.cc:328
  #, c-format
  msgid "but %s is installed"
  msgstr ""
  
- #: cmdline/apt-get.cc:329
+ #: cmdline/apt-get.cc:330
  #, c-format
  msgid "but %s is to be installed"
  msgstr ""
  
- #: cmdline/apt-get.cc:336
+ #: cmdline/apt-get.cc:337
  msgid "but it is not installable"
  msgstr ""
  
- #: cmdline/apt-get.cc:338
+ #: cmdline/apt-get.cc:339
  msgid "but it is a virtual package"
  msgstr ""
  
- #: cmdline/apt-get.cc:341
+ #: cmdline/apt-get.cc:342
  msgid "but it is not installed"
  msgstr ""
  
- #: cmdline/apt-get.cc:341
+ #: cmdline/apt-get.cc:342
  msgid "but it is not going to be installed"
  msgstr ""
  
- #: cmdline/apt-get.cc:346
+ #: cmdline/apt-get.cc:347
  msgid " or"
  msgstr ""
  
- #: cmdline/apt-get.cc:375
+ #: cmdline/apt-get.cc:376
  msgid "The following NEW packages will be installed:"
  msgstr ""
  
- #: cmdline/apt-get.cc:401
+ #: cmdline/apt-get.cc:402
  msgid "The following packages will be REMOVED:"
  msgstr ""
  
- #: cmdline/apt-get.cc:423
+ #: cmdline/apt-get.cc:424
  msgid "The following packages have been kept back:"
  msgstr ""
  
- #: cmdline/apt-get.cc:444
+ #: cmdline/apt-get.cc:445
  msgid "The following packages will be upgraded:"
  msgstr ""
  
- #: cmdline/apt-get.cc:465
+ #: cmdline/apt-get.cc:466
  msgid "The following packages will be DOWNGRADED:"
  msgstr ""
  
- #: cmdline/apt-get.cc:485
+ #: cmdline/apt-get.cc:486
  msgid "The following held packages will be changed:"
  msgstr ""
  
- #: cmdline/apt-get.cc:538
+ #: cmdline/apt-get.cc:539
  #, c-format
  msgid "%s (due to %s) "
  msgstr ""
  
- #: cmdline/apt-get.cc:546
+ #: cmdline/apt-get.cc:547
  msgid ""
  "WARNING: The following essential packages will be removed.\n"
  "This should NOT be done unless you know exactly what you are doing!"
  msgstr ""
  
- #: cmdline/apt-get.cc:577
+ #: cmdline/apt-get.cc:578
  #, c-format
  msgid "%lu upgraded, %lu newly installed, "
  msgstr ""
  
- #: cmdline/apt-get.cc:581
+ #: cmdline/apt-get.cc:582
  #, c-format
  msgid "%lu reinstalled, "
  msgstr ""
  
- #: cmdline/apt-get.cc:583
+ #: cmdline/apt-get.cc:584
  #, c-format
  msgid "%lu downgraded, "
  msgstr ""
  
- #: cmdline/apt-get.cc:585
+ #: cmdline/apt-get.cc:586
  #, c-format
  msgid "%lu to remove and %lu not upgraded.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:589
+ #: cmdline/apt-get.cc:590
  #, c-format
  msgid "%lu not fully installed or removed.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:649
 -#: cmdline/apt-get.cc:650
++#: cmdline/apt-get.cc:664
  msgid "Correcting dependencies..."
  msgstr ""
  
- #: cmdline/apt-get.cc:652
 -#: cmdline/apt-get.cc:653
++#: cmdline/apt-get.cc:667
  msgid " failed."
  msgstr ""
  
- #: cmdline/apt-get.cc:655
 -#: cmdline/apt-get.cc:656
++#: cmdline/apt-get.cc:670
  msgid "Unable to correct dependencies"
  msgstr ""
  
- #: cmdline/apt-get.cc:658
 -#: cmdline/apt-get.cc:659
++#: cmdline/apt-get.cc:673
  msgid "Unable to minimize the upgrade set"
  msgstr ""
  
- #: cmdline/apt-get.cc:660
 -#: cmdline/apt-get.cc:661
++#: cmdline/apt-get.cc:675
  msgid " Done"
  msgstr ""
  
- #: cmdline/apt-get.cc:664
 -#: cmdline/apt-get.cc:665
++#: cmdline/apt-get.cc:679
  msgid "You might want to run `apt-get -f install' to correct these."
  msgstr ""
  
- #: cmdline/apt-get.cc:667
 -#: cmdline/apt-get.cc:668
++#: cmdline/apt-get.cc:682
  msgid "Unmet dependencies. Try using -f."
  msgstr ""
  
- #: cmdline/apt-get.cc:689
 -#: cmdline/apt-get.cc:690
++#: cmdline/apt-get.cc:704
  msgid "WARNING: The following packages cannot be authenticated!"
  msgstr ""
  
- #: cmdline/apt-get.cc:693
 -#: cmdline/apt-get.cc:694
++#: cmdline/apt-get.cc:708
  msgid "Authentication warning overridden.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:700
 -#: cmdline/apt-get.cc:701
++#: cmdline/apt-get.cc:715
  msgid "Install these packages without verification [y/N]? "
  msgstr ""
  
- #: cmdline/apt-get.cc:702
 -#: cmdline/apt-get.cc:703
++#: cmdline/apt-get.cc:717
  msgid "Some packages could not be authenticated"
  msgstr ""
  
- #: cmdline/apt-get.cc:711 cmdline/apt-get.cc:858
 -#: cmdline/apt-get.cc:712 cmdline/apt-get.cc:859
++#: cmdline/apt-get.cc:726 cmdline/apt-get.cc:873
  msgid "There are problems and -y was used without --force-yes"
  msgstr ""
  
- #: cmdline/apt-get.cc:755
 -#: cmdline/apt-get.cc:756
++#: cmdline/apt-get.cc:770
  msgid "Internal error, InstallPackages was called with broken packages!"
  msgstr ""
  
- #: cmdline/apt-get.cc:764
 -#: cmdline/apt-get.cc:765
++#: cmdline/apt-get.cc:779
  msgid "Packages need to be removed but remove is disabled."
  msgstr ""
  
- #: cmdline/apt-get.cc:775
 -#: cmdline/apt-get.cc:776
++#: cmdline/apt-get.cc:790
  msgid "Internal error, Ordering didn't finish"
  msgstr ""
  
- #: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1875 cmdline/apt-get.cc:1908
 -#: cmdline/apt-get.cc:792 cmdline/apt-get.cc:1886 cmdline/apt-get.cc:1919
++#: cmdline/apt-get.cc:806 cmdline/apt-get.cc:1893 cmdline/apt-get.cc:1926
  msgid "Unable to lock the download directory"
  msgstr ""
  
- #: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1956 cmdline/apt-get.cc:2192
 -#: cmdline/apt-get.cc:802 cmdline/apt-get.cc:1967 cmdline/apt-get.cc:2203
++#: cmdline/apt-get.cc:816 cmdline/apt-get.cc:1974 cmdline/apt-get.cc:2210
  #: apt-pkg/cachefile.cc:67
  msgid "The list of sources could not be read."
  msgstr ""
  
- #: cmdline/apt-get.cc:816
 -#: cmdline/apt-get.cc:817
++#: cmdline/apt-get.cc:831
  msgid "How odd.. The sizes didn't match, email apt@packages.debian.org"
  msgstr ""
  
- #: cmdline/apt-get.cc:821
 -#: cmdline/apt-get.cc:822
++#: cmdline/apt-get.cc:836
  #, c-format
  msgid "Need to get %sB/%sB of archives.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:824
 -#: cmdline/apt-get.cc:825
++#: cmdline/apt-get.cc:839
  #, c-format
  msgid "Need to get %sB of archives.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:829
 -#: cmdline/apt-get.cc:830
++#: cmdline/apt-get.cc:844
  #, c-format
  msgid "After unpacking %sB of additional disk space will be used.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:832
 -#: cmdline/apt-get.cc:833
++#: cmdline/apt-get.cc:847
  #, c-format
  msgid "After unpacking %sB disk space will be freed.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:846 cmdline/apt-get.cc:2046
 -#: cmdline/apt-get.cc:847 cmdline/apt-get.cc:2057
++#: cmdline/apt-get.cc:861 cmdline/apt-get.cc:2064
  #, c-format
  msgid "Couldn't determine free space in %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:849
 -#: cmdline/apt-get.cc:850
++#: cmdline/apt-get.cc:864
  #, c-format
  msgid "You don't have enough free space in %s."
  msgstr ""
  
- #: cmdline/apt-get.cc:864 cmdline/apt-get.cc:884
 -#: cmdline/apt-get.cc:865 cmdline/apt-get.cc:885
++#: cmdline/apt-get.cc:879 cmdline/apt-get.cc:899
  msgid "Trivial Only specified but this is not a trivial operation."
  msgstr ""
  
- #: cmdline/apt-get.cc:866
 -#: cmdline/apt-get.cc:867
++#: cmdline/apt-get.cc:881
  msgid "Yes, do as I say!"
  msgstr ""
  
- #: cmdline/apt-get.cc:868
 -#: cmdline/apt-get.cc:869
++#: cmdline/apt-get.cc:883
  #, c-format
  msgid ""
  "You are about to do something potentially harmful.\n"
  " ?] "
  msgstr ""
  
- #: cmdline/apt-get.cc:874 cmdline/apt-get.cc:893
 -#: cmdline/apt-get.cc:875 cmdline/apt-get.cc:894
++#: cmdline/apt-get.cc:889 cmdline/apt-get.cc:908
  msgid "Abort."
  msgstr ""
  
- #: cmdline/apt-get.cc:889
 -#: cmdline/apt-get.cc:890
++#: cmdline/apt-get.cc:904
  msgid "Do you want to continue [Y/n]? "
  msgstr ""
  
- #: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2089
 -#: cmdline/apt-get.cc:962 cmdline/apt-get.cc:1366 cmdline/apt-get.cc:2100
++#: cmdline/apt-get.cc:976 cmdline/apt-get.cc:1382 cmdline/apt-get.cc:2107
  #, c-format
  msgid "Failed to fetch %s  %s\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:979
 -#: cmdline/apt-get.cc:980
++#: cmdline/apt-get.cc:994
  msgid "Some files failed to download"
  msgstr ""
  
- #: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2098
 -#: cmdline/apt-get.cc:981 cmdline/apt-get.cc:2109
++#: cmdline/apt-get.cc:995 cmdline/apt-get.cc:2116
  msgid "Download complete and in download only mode"
  msgstr ""
  
- #: cmdline/apt-get.cc:986
 -#: cmdline/apt-get.cc:987
++#: cmdline/apt-get.cc:1001
  msgid ""
  "Unable to fetch some archives, maybe run apt-get update or try with --fix-"
  "missing?"
  msgstr ""
  
- #: cmdline/apt-get.cc:990
 -#: cmdline/apt-get.cc:991
++#: cmdline/apt-get.cc:1005
  msgid "--fix-missing and media swapping is not currently supported"
  msgstr ""
  
- #: cmdline/apt-get.cc:995
 -#: cmdline/apt-get.cc:996
++#: cmdline/apt-get.cc:1010
  msgid "Unable to correct missing packages."
  msgstr ""
  
- #: cmdline/apt-get.cc:996
 -#: cmdline/apt-get.cc:997
++#: cmdline/apt-get.cc:1011
  msgid "Aborting install."
  msgstr ""
  
- #: cmdline/apt-get.cc:1030
 -#: cmdline/apt-get.cc:1031
++#: cmdline/apt-get.cc:1045
  #, c-format
  msgid "Note, selecting %s instead of %s\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1040
 -#: cmdline/apt-get.cc:1041
++#: cmdline/apt-get.cc:1055
  #, c-format
  msgid "Skipping %s, it is already installed and upgrade is not set.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1058
 -#: cmdline/apt-get.cc:1059
++#: cmdline/apt-get.cc:1073
  #, c-format
  msgid "Package %s is not installed, so not removed\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1069
 -#: cmdline/apt-get.cc:1070
++#: cmdline/apt-get.cc:1084
  #, c-format
  msgid "Package %s is a virtual package provided by:\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1081
 -#: cmdline/apt-get.cc:1082
++#: cmdline/apt-get.cc:1096
  msgid " [Installed]"
  msgstr ""
  
- #: cmdline/apt-get.cc:1086
 -#: cmdline/apt-get.cc:1087
++#: cmdline/apt-get.cc:1101
  msgid "You should explicitly select one to install."
  msgstr ""
  
- #: cmdline/apt-get.cc:1091
 -#: cmdline/apt-get.cc:1092
++#: cmdline/apt-get.cc:1106
  #, c-format
  msgid ""
  "Package %s is not available, but is referred to by another package.\n"
  "is only available from another source\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1110
 -#: cmdline/apt-get.cc:1111
++#: cmdline/apt-get.cc:1125
  msgid "However the following packages replace it:"
  msgstr ""
  
- #: cmdline/apt-get.cc:1113
 -#: cmdline/apt-get.cc:1114
++#: cmdline/apt-get.cc:1128
  #, c-format
  msgid "Package %s has no installation candidate"
  msgstr ""
  
- #: cmdline/apt-get.cc:1133
 -#: cmdline/apt-get.cc:1134
++#: cmdline/apt-get.cc:1148
  #, c-format
  msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1141
 -#: cmdline/apt-get.cc:1142
++#: cmdline/apt-get.cc:1156
  #, c-format
  msgid "%s is already the newest version.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1168
 -#: cmdline/apt-get.cc:1169
++#: cmdline/apt-get.cc:1185
  #, c-format
  msgid "Release '%s' for '%s' was not found"
  msgstr ""
  
- #: cmdline/apt-get.cc:1170
 -#: cmdline/apt-get.cc:1171
++#: cmdline/apt-get.cc:1187
  #, c-format
  msgid "Version '%s' for '%s' was not found"
  msgstr ""
  
- #: cmdline/apt-get.cc:1176
 -#: cmdline/apt-get.cc:1177
++#: cmdline/apt-get.cc:1193
  #, c-format
  msgid "Selected version %s (%s) for %s\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1313
 -#: cmdline/apt-get.cc:1314
++#: cmdline/apt-get.cc:1330
  msgid "The update command takes no arguments"
  msgstr ""
  
- #: cmdline/apt-get.cc:1326
 -#: cmdline/apt-get.cc:1327
++#: cmdline/apt-get.cc:1343
  msgid "Unable to lock the list directory"
  msgstr ""
  
- #: cmdline/apt-get.cc:1384
 -#: cmdline/apt-get.cc:1385
++#: cmdline/apt-get.cc:1401
  msgid ""
  "Some index files failed to download, they have been ignored, or old ones "
  "used instead."
  msgstr ""
  
- #: cmdline/apt-get.cc:1403
- msgid "Internal error, AllUpgrade broke stuff"
 -#: cmdline/apt-get.cc:1402
++#: cmdline/apt-get.cc:1415
+ msgid "We are not supposed to delete stuff, can't start AutoRemover"
  msgstr ""
  
- #: cmdline/apt-get.cc:1448
- #, c-format
- msgid "Couldn't find task %s"
 -#: cmdline/apt-get.cc:1427
 -msgid ""
 -"The following packages where automatically installed and are no longer "
 -"required:"
 -msgstr ""
 -
 -#: cmdline/apt-get.cc:1432
++#: cmdline/apt-get.cc:1440
+ msgid ""
+ "Hmm, seems like the AutoRemover destroyed something which really\n"
+ "shouldn't happen. Please file a bug report against apt."
  msgstr ""
  
- #: cmdline/apt-get.cc:1550 cmdline/apt-get.cc:1586
 -#: cmdline/apt-get.cc:1435 cmdline/apt-get.cc:1637
++#: cmdline/apt-get.cc:1443 cmdline/apt-get.cc:1642
+ msgid "The following information may help to resolve the situation:"
+ msgstr ""
 -#: cmdline/apt-get.cc:1439
++#: cmdline/apt-get.cc:1447
+ msgid "Internal Error, AutoRemover broke stuff"
+ msgstr ""
 -#: cmdline/apt-get.cc:1458
++#: cmdline/apt-get.cc:1466
+ msgid "Internal error, AllUpgrade broke stuff"
+ msgstr ""
 -#: cmdline/apt-get.cc:1556 cmdline/apt-get.cc:1592
++#: cmdline/apt-get.cc:1561 cmdline/apt-get.cc:1597
  #, c-format
  msgid "Couldn't find package %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:1573
 -#: cmdline/apt-get.cc:1579
++#: cmdline/apt-get.cc:1584
  #, c-format
  msgid "Note, selecting %s for regex '%s'\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1603
 -#: cmdline/apt-get.cc:1609
++#: cmdline/apt-get.cc:1614
  msgid "You might want to run `apt-get -f install' to correct these:"
  msgstr ""
  
- #: cmdline/apt-get.cc:1606
 -#: cmdline/apt-get.cc:1612
++#: cmdline/apt-get.cc:1617
  msgid ""
  "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
  "solution)."
  msgstr ""
  
- #: cmdline/apt-get.cc:1618
 -#: cmdline/apt-get.cc:1624
++#: cmdline/apt-get.cc:1629
  msgid ""
  "Some packages could not be installed. This may mean that you have\n"
  "requested an impossible situation or if you are using the unstable\n"
  "or been moved out of Incoming."
  msgstr ""
  
- #: cmdline/apt-get.cc:1626
 -#: cmdline/apt-get.cc:1632
++#: cmdline/apt-get.cc:1637
  msgid ""
  "Since you only requested a single operation it is extremely likely that\n"
  "the package is simply not installable and a bug report against\n"
  "that package should be filed."
  msgstr ""
  
- #: cmdline/apt-get.cc:1631
- msgid "The following information may help to resolve the situation:"
- msgstr ""
- #: cmdline/apt-get.cc:1634
 -#: cmdline/apt-get.cc:1640
++#: cmdline/apt-get.cc:1645
  msgid "Broken packages"
  msgstr ""
  
- #: cmdline/apt-get.cc:1660
 -#: cmdline/apt-get.cc:1669
++#: cmdline/apt-get.cc:1676
  msgid "The following extra packages will be installed:"
  msgstr ""
  
- #: cmdline/apt-get.cc:1749
 -#: cmdline/apt-get.cc:1758
++#: cmdline/apt-get.cc:1765
  msgid "Suggested packages:"
  msgstr ""
  
- #: cmdline/apt-get.cc:1750
 -#: cmdline/apt-get.cc:1759
++#: cmdline/apt-get.cc:1766
  msgid "Recommended packages:"
  msgstr ""
  
- #: cmdline/apt-get.cc:1770
 -#: cmdline/apt-get.cc:1779
++#: cmdline/apt-get.cc:1786
  msgid "Calculating upgrade... "
  msgstr ""
  
- #: cmdline/apt-get.cc:1773 methods/ftp.cc:702 methods/connect.cc:101
 -#: cmdline/apt-get.cc:1782 methods/ftp.cc:702 methods/connect.cc:101
++#: cmdline/apt-get.cc:1789 methods/ftp.cc:702 methods/connect.cc:101
  msgid "Failed"
  msgstr ""
  
- #: cmdline/apt-get.cc:1778
 -#: cmdline/apt-get.cc:1787
++#: cmdline/apt-get.cc:1794
  msgid "Done"
  msgstr ""
  
- #: cmdline/apt-get.cc:1843 cmdline/apt-get.cc:1851
 -#: cmdline/apt-get.cc:1854 cmdline/apt-get.cc:1862
++#: cmdline/apt-get.cc:1861 cmdline/apt-get.cc:1869
  msgid "Internal error, problem resolver broke stuff"
  msgstr ""
  
- #: cmdline/apt-get.cc:1951
 -#: cmdline/apt-get.cc:1962
++#: cmdline/apt-get.cc:1969
  msgid "Must specify at least one package to fetch source for"
  msgstr ""
  
- #: cmdline/apt-get.cc:1981 cmdline/apt-get.cc:2210
 -#: cmdline/apt-get.cc:1992 cmdline/apt-get.cc:2221
++#: cmdline/apt-get.cc:1999 cmdline/apt-get.cc:2228
  #, c-format
  msgid "Unable to find a source package for %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:2025
 -#: cmdline/apt-get.cc:2036
++#: cmdline/apt-get.cc:2043
  #, c-format
  msgid "Skipping already downloaded file '%s'\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2049
 -#: cmdline/apt-get.cc:2060
++#: cmdline/apt-get.cc:2067
  #, c-format
  msgid "You don't have enough free space in %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:2054
 -#: cmdline/apt-get.cc:2065
++#: cmdline/apt-get.cc:2072
  #, c-format
  msgid "Need to get %sB/%sB of source archives.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2057
 -#: cmdline/apt-get.cc:2068
++#: cmdline/apt-get.cc:2075
  #, c-format
  msgid "Need to get %sB of source archives.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2063
 -#: cmdline/apt-get.cc:2074
++#: cmdline/apt-get.cc:2081
  #, c-format
  msgid "Fetch source %s\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2094
 -#: cmdline/apt-get.cc:2105
++#: cmdline/apt-get.cc:2112
  msgid "Failed to fetch some archives."
  msgstr ""
  
- #: cmdline/apt-get.cc:2122
 -#: cmdline/apt-get.cc:2133
++#: cmdline/apt-get.cc:2140
  #, c-format
  msgid "Skipping unpack of already unpacked source in %s\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2134
 -#: cmdline/apt-get.cc:2145
++#: cmdline/apt-get.cc:2152
  #, c-format
  msgid "Unpack command '%s' failed.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2135
 -#: cmdline/apt-get.cc:2146
++#: cmdline/apt-get.cc:2153
  #, c-format
  msgid "Check if the 'dpkg-dev' package is installed.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2152
 -#: cmdline/apt-get.cc:2163
++#: cmdline/apt-get.cc:2170
  #, c-format
  msgid "Build command '%s' failed.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2171
 -#: cmdline/apt-get.cc:2182
++#: cmdline/apt-get.cc:2189
  msgid "Child process failed"
  msgstr ""
  
- #: cmdline/apt-get.cc:2187
 -#: cmdline/apt-get.cc:2198
++#: cmdline/apt-get.cc:2205
  msgid "Must specify at least one package to check builddeps for"
  msgstr ""
  
- #: cmdline/apt-get.cc:2215
 -#: cmdline/apt-get.cc:2226
++#: cmdline/apt-get.cc:2233
  #, c-format
  msgid "Unable to get build-dependency information for %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:2235
 -#: cmdline/apt-get.cc:2246
++#: cmdline/apt-get.cc:2253
  #, c-format
  msgid "%s has no build depends.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2287
 -#: cmdline/apt-get.cc:2298
++#: cmdline/apt-get.cc:2305
  #, c-format
  msgid ""
  "%s dependency for %s cannot be satisfied because the package %s cannot be "
  "found"
  msgstr ""
  
- #: cmdline/apt-get.cc:2339
 -#: cmdline/apt-get.cc:2350
++#: cmdline/apt-get.cc:2357
  #, c-format
  msgid ""
  "%s dependency for %s cannot be satisfied because no available versions of "
  "package %s can satisfy version requirements"
  msgstr ""
  
- #: cmdline/apt-get.cc:2374
 -#: cmdline/apt-get.cc:2385
++#: cmdline/apt-get.cc:2392
  #, c-format
  msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
  msgstr ""
  
- #: cmdline/apt-get.cc:2399
 -#: cmdline/apt-get.cc:2410
++#: cmdline/apt-get.cc:2417
  #, c-format
  msgid "Failed to satisfy %s dependency for %s: %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:2413
 -#: cmdline/apt-get.cc:2424
++#: cmdline/apt-get.cc:2431
  #, c-format
  msgid "Build-dependencies for %s could not be satisfied."
  msgstr ""
  
- #: cmdline/apt-get.cc:2417
 -#: cmdline/apt-get.cc:2428
++#: cmdline/apt-get.cc:2435
  msgid "Failed to process build dependencies"
  msgstr ""
  
- #: cmdline/apt-get.cc:2449
 -#: cmdline/apt-get.cc:2460
++#: cmdline/apt-get.cc:2467
  msgid "Supported modules:"
  msgstr ""
  
- #: cmdline/apt-get.cc:2490
 -#: cmdline/apt-get.cc:2501
++#: cmdline/apt-get.cc:2508
  msgid ""
  "Usage: apt-get [options] command\n"
  "       apt-get [options] install|remove pkg1 [pkg2 ...]\n"
@@@ -1365,9 -1380,9 +1382,9 @@@ msgid "The info and temp directories ne
  msgstr ""
  
  #. Build the status cache
- #: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:643
- #: apt-pkg/pkgcachegen.cc:712 apt-pkg/pkgcachegen.cc:717
- #: apt-pkg/pkgcachegen.cc:840
 -#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:645
 -#: apt-pkg/pkgcachegen.cc:714 apt-pkg/pkgcachegen.cc:719
 -#: apt-pkg/pkgcachegen.cc:842
++#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:750
++#: apt-pkg/pkgcachegen.cc:819 apt-pkg/pkgcachegen.cc:824
++#: apt-pkg/pkgcachegen.cc:947
  msgid "Reading package lists"
  msgstr ""
  
@@@ -1495,12 -1510,12 +1512,13 @@@ msgstr "
  msgid "File not found"
  msgstr ""
  
- #: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:134
- #: methods/gzip.cc:143
+ #: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:133
 -#: methods/gzip.cc:142
++#: methods/gzip.cc:142 methods/rred.cc:234 methods/rred.cc:243
  msgid "Failed to stat"
  msgstr ""
  
- #: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:140
+ #: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:139
++#: methods/rred.cc:240
  msgid "Failed to set modification time"
  msgstr ""
  
@@@ -1626,7 -1641,7 +1644,7 @@@ msgstr "
  msgid "Unable to accept connection"
  msgstr ""
  
--#: methods/ftp.cc:864 methods/http.cc:958 methods/rsh.cc:303
++#: methods/ftp.cc:864 methods/http.cc:957 methods/rsh.cc:303
  msgid "Problem hashing file"
  msgstr ""
  
@@@ -1757,76 -1772,76 +1775,76 @@@ msgstr "
  msgid "Read error from %s process"
  msgstr ""
  
--#: methods/http.cc:376
++#: methods/http.cc:375
  msgid "Waiting for headers"
  msgstr ""
  
--#: methods/http.cc:522
++#: methods/http.cc:521
  #, c-format
  msgid "Got a single header line over %u chars"
  msgstr ""
  
--#: methods/http.cc:530
++#: methods/http.cc:529
  msgid "Bad header line"
  msgstr ""
  
--#: methods/http.cc:549 methods/http.cc:556
++#: methods/http.cc:548 methods/http.cc:555
  msgid "The HTTP server sent an invalid reply header"
  msgstr ""
  
--#: methods/http.cc:585
++#: methods/http.cc:584
  msgid "The HTTP server sent an invalid Content-Length header"
  msgstr ""
  
--#: methods/http.cc:600
++#: methods/http.cc:599
  msgid "The HTTP server sent an invalid Content-Range header"
  msgstr ""
  
--#: methods/http.cc:602
++#: methods/http.cc:601
  msgid "This HTTP server has broken range support"
  msgstr ""
  
--#: methods/http.cc:626
++#: methods/http.cc:625
  msgid "Unknown date format"
  msgstr ""
  
--#: methods/http.cc:773
++#: methods/http.cc:772
  msgid "Select failed"
  msgstr ""
  
--#: methods/http.cc:778
++#: methods/http.cc:777
  msgid "Connection timed out"
  msgstr ""
  
--#: methods/http.cc:801
++#: methods/http.cc:800
  msgid "Error writing to output file"
  msgstr ""
  
--#: methods/http.cc:832
++#: methods/http.cc:831
  msgid "Error writing to file"
  msgstr ""
  
--#: methods/http.cc:860
++#: methods/http.cc:859
  msgid "Error writing to the file"
  msgstr ""
  
--#: methods/http.cc:874
++#: methods/http.cc:873
  msgid "Error reading from server. Remote end closed connection"
  msgstr ""
  
--#: methods/http.cc:876
++#: methods/http.cc:875
  msgid "Error reading from server"
  msgstr ""
  
--#: methods/http.cc:1107
++#: methods/http.cc:1106
  msgid "Bad header data"
  msgstr ""
  
--#: methods/http.cc:1124
++#: methods/http.cc:1123
  msgid "Connection failed"
  msgstr ""
  
--#: methods/http.cc:1215
++#: methods/http.cc:1214
  msgid "Internal error"
  msgstr ""
  
@@@ -1839,7 -1854,7 +1857,7 @@@ msgstr "
  msgid "Couldn't make mmap of %lu bytes"
  msgstr ""
  
--#: apt-pkg/contrib/strutl.cc:938
++#: apt-pkg/contrib/strutl.cc:981
  #, c-format
  msgid "Selection %s not found"
  msgstr ""
@@@ -2036,93 -2051,107 +2054,107 @@@ msgstr "
  msgid "Problem syncing the file"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:126
++#: apt-pkg/pkgcache.cc:137
  msgid "Empty package cache"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:132
++#: apt-pkg/pkgcache.cc:143
  msgid "The package cache file is corrupted"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:137
++#: apt-pkg/pkgcache.cc:148
  msgid "The package cache file is an incompatible version"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:142
++#: apt-pkg/pkgcache.cc:153
  #, c-format
  msgid "This APT does not support the versioning system '%s'"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:147
++#: apt-pkg/pkgcache.cc:158
  msgid "The package cache was built for a different architecture"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:218
++#: apt-pkg/pkgcache.cc:229
  msgid "Depends"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:218
++#: apt-pkg/pkgcache.cc:229
  msgid "PreDepends"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:218
++#: apt-pkg/pkgcache.cc:229
  msgid "Suggests"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:219
++#: apt-pkg/pkgcache.cc:230
  msgid "Recommends"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:219
++#: apt-pkg/pkgcache.cc:230
  msgid "Conflicts"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:219
++#: apt-pkg/pkgcache.cc:230
  msgid "Replaces"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:220
++#: apt-pkg/pkgcache.cc:231
  msgid "Obsoletes"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:231
++#: apt-pkg/pkgcache.cc:242
  msgid "important"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:231
++#: apt-pkg/pkgcache.cc:242
  msgid "required"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:231
++#: apt-pkg/pkgcache.cc:242
  msgid "standard"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:232
++#: apt-pkg/pkgcache.cc:243
  msgid "optional"
  msgstr ""
  
--#: apt-pkg/pkgcache.cc:232
++#: apt-pkg/pkgcache.cc:243
  msgid "extra"
  msgstr ""
  
- #: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90
+ #: apt-pkg/depcache.cc:101 apt-pkg/depcache.cc:130
  msgid "Building dependency tree"
  msgstr ""
  
- #: apt-pkg/depcache.cc:62
+ #: apt-pkg/depcache.cc:102
  msgid "Candidate versions"
  msgstr ""
  
- #: apt-pkg/depcache.cc:91
+ #: apt-pkg/depcache.cc:131
  msgid "Dependency generation"
  msgstr ""
  
- #: apt-pkg/tagfile.cc:73
+ #: apt-pkg/depcache.cc:152 apt-pkg/depcache.cc:171 apt-pkg/depcache.cc:175
+ msgid "Reading state information"
+ msgstr ""
+ #: apt-pkg/depcache.cc:199
+ #, c-format
+ msgid "Failed to open StateFile %s"
+ msgstr ""
+ #: apt-pkg/depcache.cc:205
+ #, c-format
+ msgid "Failed to write temporary StateFile %s"
+ msgstr ""
+ #: apt-pkg/tagfile.cc:85 apt-pkg/tagfile.cc:92
  #, c-format
  msgid "Unable to parse package file %s (1)"
  msgstr ""
  
- #: apt-pkg/tagfile.cc:160
+ #: apt-pkg/tagfile.cc:186
  #, c-format
  msgid "Unable to parse package file %s (2)"
  msgstr ""
@@@ -2157,7 -2186,7 +2189,7 @@@ msgstr "
  msgid "Opening %s"
  msgstr ""
  
--#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426
++#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:450
  #, c-format
  msgid "Line %u too long in source list %s."
  msgstr ""
@@@ -2190,19 -2219,19 +2222,19 @@@ msgstr "
  msgid "Index file type '%s' is not supported"
  msgstr ""
  
- #: apt-pkg/algorithms.cc:241
+ #: apt-pkg/algorithms.cc:245
  #, c-format
  msgid ""
  "The package %s needs to be reinstalled, but I can't find an archive for it."
  msgstr ""
  
- #: apt-pkg/algorithms.cc:1059
+ #: apt-pkg/algorithms.cc:1075
  msgid ""
  "Error, pkgProblemResolver::Resolve generated breaks, this may be caused by "
  "held packages."
  msgstr ""
  
- #: apt-pkg/algorithms.cc:1061
+ #: apt-pkg/algorithms.cc:1077
  msgid "Unable to correct problems, you have held broken packages."
  msgstr ""
  
@@@ -2243,12 -2272,12 +2275,12 @@@ msgstr "
  msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
  msgstr ""
  
--#: apt-pkg/init.cc:120
++#: apt-pkg/init.cc:125
  #, c-format
  msgid "Packaging system '%s' is not supported"
  msgstr ""
  
--#: apt-pkg/init.cc:136
++#: apt-pkg/init.cc:141
  msgid "Unable to determine a suitable packaging system type"
  msgstr ""
  
@@@ -2282,119 -2311,119 +2314,134 @@@ msgstr "
  msgid "No priority (or zero) specified for pin"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:74
+ #: apt-pkg/pkgcachegen.cc:76
  msgid "Cache has an incompatible versioning system"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:117
+ #: apt-pkg/pkgcachegen.cc:119
  #, c-format
  msgid "Error occurred while processing %s (NewPackage)"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:129
 -#: apt-pkg/pkgcachegen.cc:131
++#: apt-pkg/pkgcachegen.cc:134
  #, c-format
  msgid "Error occurred while processing %s (UsePackage1)"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:150
 -#: apt-pkg/pkgcachegen.cc:152
++#: apt-pkg/pkgcachegen.cc:157
++#, c-format
++msgid "Error occured while processing %s (NewFileDesc1)"
++msgstr ""
++
++#: apt-pkg/pkgcachegen.cc:182
  #, c-format
  msgid "Error occurred while processing %s (UsePackage2)"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:154
 -#: apt-pkg/pkgcachegen.cc:156
++#: apt-pkg/pkgcachegen.cc:186
  #, c-format
  msgid "Error occurred while processing %s (NewFileVer1)"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:184
 -#: apt-pkg/pkgcachegen.cc:186
++#: apt-pkg/pkgcachegen.cc:217
  #, c-format
  msgid "Error occurred while processing %s (NewVersion1)"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:188
 -#: apt-pkg/pkgcachegen.cc:190
++#: apt-pkg/pkgcachegen.cc:221
  #, c-format
  msgid "Error occurred while processing %s (UsePackage3)"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:192
 -#: apt-pkg/pkgcachegen.cc:194
++#: apt-pkg/pkgcachegen.cc:225
  #, c-format
  msgid "Error occurred while processing %s (NewVersion2)"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:207
 -#: apt-pkg/pkgcachegen.cc:209
++#: apt-pkg/pkgcachegen.cc:249
++#, c-format
++msgid "Error occured while processing %s (NewFileDesc2)"
++msgstr ""
++
++#: apt-pkg/pkgcachegen.cc:255
  msgid "Wow, you exceeded the number of package names this APT is capable of."
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:210
 -#: apt-pkg/pkgcachegen.cc:212
++#: apt-pkg/pkgcachegen.cc:258
  msgid "Wow, you exceeded the number of versions this APT is capable of."
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:213
 -#: apt-pkg/pkgcachegen.cc:215
++#: apt-pkg/pkgcachegen.cc:261
++msgid "Wow, you exceeded the number of descriptions this APT is capable of."
++msgstr ""
++
++#: apt-pkg/pkgcachegen.cc:264
  msgid "Wow, you exceeded the number of dependencies this APT is capable of."
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:241
 -#: apt-pkg/pkgcachegen.cc:243
++#: apt-pkg/pkgcachegen.cc:292
  #, c-format
  msgid "Error occurred while processing %s (FindPkg)"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:254
 -#: apt-pkg/pkgcachegen.cc:256
++#: apt-pkg/pkgcachegen.cc:305
  #, c-format
  msgid "Error occurred while processing %s (CollectFileProvides)"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:260
 -#: apt-pkg/pkgcachegen.cc:262
++#: apt-pkg/pkgcachegen.cc:311
  #, c-format
  msgid "Package %s %s was not found while processing file dependencies"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:574
 -#: apt-pkg/pkgcachegen.cc:576
++#: apt-pkg/pkgcachegen.cc:681
  #, c-format
  msgid "Couldn't stat source package list %s"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:658
 -#: apt-pkg/pkgcachegen.cc:660
++#: apt-pkg/pkgcachegen.cc:765
  msgid "Collecting File Provides"
  msgstr ""
  
- #: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792
 -#: apt-pkg/pkgcachegen.cc:787 apt-pkg/pkgcachegen.cc:794
++#: apt-pkg/pkgcachegen.cc:892 apt-pkg/pkgcachegen.cc:899
  msgid "IO Error saving source cache"
  msgstr ""
  
--#: apt-pkg/acquire-item.cc:126
++#: apt-pkg/acquire-item.cc:130
  #, c-format
  msgid "rename failed, %s (%s -> %s)."
  msgstr ""
  
--#: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:945
++#: apt-pkg/acquire-item.cc:408 apt-pkg/acquire-item.cc:658
++#: apt-pkg/acquire-item.cc:1402
  msgid "MD5Sum mismatch"
  msgstr ""
  
--#: apt-pkg/acquire-item.cc:640
++#: apt-pkg/acquire-item.cc:1097
  msgid "There are no public key available for the following key IDs:\n"
  msgstr ""
  
--#: apt-pkg/acquire-item.cc:753
++#: apt-pkg/acquire-item.cc:1210
  #, c-format
  msgid ""
  "I wasn't able to locate a file for the %s package. This might mean you need "
  "to manually fix this package. (due to missing arch)"
  msgstr ""
  
--#: apt-pkg/acquire-item.cc:812
++#: apt-pkg/acquire-item.cc:1269
  #, c-format
  msgid ""
  "I wasn't able to locate file for the %s package. This might mean you need to "
  "manually fix this package."
  msgstr ""
  
--#: apt-pkg/acquire-item.cc:848
++#: apt-pkg/acquire-item.cc:1305
  #, c-format
  msgid ""
  "The package index files are corrupted. No Filename: field for package %s."
  msgstr ""
  
--#: apt-pkg/acquire-item.cc:935
++#: apt-pkg/acquire-item.cc:1392
  msgid "Size mismatch"
  msgstr ""
  
  msgid "Vendor block %s contains no fingerprint"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:507
++#: apt-pkg/cdrom.cc:531
  #, c-format
  msgid ""
  "Using CD-ROM mount point %s\n"
  "Mounting CD-ROM\n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598
++#: apt-pkg/cdrom.cc:540 apt-pkg/cdrom.cc:622
  msgid "Identifying.. "
  msgstr ""
  
--#: apt-pkg/cdrom.cc:541
++#: apt-pkg/cdrom.cc:565
  #, c-format
  msgid "Stored label: %s \n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:561
++#: apt-pkg/cdrom.cc:585
  #, c-format
  msgid "Using CD-ROM mount point %s\n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:579
++#: apt-pkg/cdrom.cc:603
  msgid "Unmounting CD-ROM\n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:583
++#: apt-pkg/cdrom.cc:607
  msgid "Waiting for disc...\n"
  msgstr ""
  
  #. Mount the new CDROM
--#: apt-pkg/cdrom.cc:591
++#: apt-pkg/cdrom.cc:615
  msgid "Mounting CD-ROM...\n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:609
++#: apt-pkg/cdrom.cc:633
  msgid "Scanning disc for index files..\n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:647
++#: apt-pkg/cdrom.cc:673
  #, c-format
--msgid "Found %i package indexes, %i source indexes and %i signatures\n"
++msgid ""
++"Found %i package indexes, %i source indexes, %i translation indexes and %i "
++"signatures\n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:710
++#: apt-pkg/cdrom.cc:737
  msgid "That is not a valid name, try again.\n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:726
++#: apt-pkg/cdrom.cc:753
  #, c-format
  msgid ""
  "This disc is called: \n"
  "'%s'\n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:730
++#: apt-pkg/cdrom.cc:757
  msgid "Copying package lists..."
  msgstr ""
  
--#: apt-pkg/cdrom.cc:754
++#: apt-pkg/cdrom.cc:783
  msgid "Writing new source list\n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:763
++#: apt-pkg/cdrom.cc:792
  msgid "Source list entries for this disc are:\n"
  msgstr ""
  
--#: apt-pkg/cdrom.cc:803
++#: apt-pkg/cdrom.cc:832
  msgid "Unmounting CD-ROM..."
  msgstr ""
  
--#: apt-pkg/indexcopy.cc:261
++#: apt-pkg/indexcopy.cc:263 apt-pkg/indexcopy.cc:830
  #, c-format
  msgid "Wrote %i records.\n"
  msgstr ""
  
--#: apt-pkg/indexcopy.cc:263
++#: apt-pkg/indexcopy.cc:265 apt-pkg/indexcopy.cc:832
  #, c-format
  msgid "Wrote %i records with %i missing files.\n"
  msgstr ""
  
--#: apt-pkg/indexcopy.cc:266
++#: apt-pkg/indexcopy.cc:268 apt-pkg/indexcopy.cc:835
  #, c-format
  msgid "Wrote %i records with %i mismatched files\n"
  msgstr ""
  
--#: apt-pkg/indexcopy.cc:269
++#: apt-pkg/indexcopy.cc:271 apt-pkg/indexcopy.cc:838
  #, c-format
  msgid "Wrote %i records with %i missing files and %i mismatched files\n"
  msgstr ""
@@@ -2543,6 -2572,6 +2592,10 @@@ msgstr "
  msgid "Completely removed %s"
  msgstr ""
  
++#: methods/rred.cc:219
++msgid "Could not patch file"
++msgstr ""
++
  #: methods/rsh.cc:330
  msgid "Connection closed prematurely"
  msgstr ""