]> git.saurik.com Git - apt.git/commitdiff
* add "purge" commandline argument, closes: #133421)
authorMichael Vogt <egon@bottom>
Fri, 8 Jun 2007 21:12:26 +0000 (23:12 +0200)
committerMichael Vogt <egon@bottom>
Fri, 8 Jun 2007 21:12:26 +0000 (23:12 +0200)
  (thanks to Julien Danjou for the patch)
* fix FTBFS with gcc 4.3, closes: #417090
  (thanks to Martin Michlmayr for the patch)
* add --dsc-only option, thanks to K. Richard Pixley

1  2 
apt-pkg/algorithms.cc
apt-pkg/cdrom.cc
apt-pkg/contrib/strutl.cc
apt-pkg/init.cc
cmdline/apt-get.cc
debian/changelog
doc/apt-get.8.xml
po/apt-all.pot

diff --combined apt-pkg/algorithms.cc
index bd814729155e6380a2b61f70bb37a6b3316cb456,c6583f3b59e324277faf909e324fd2715481e266..93e26c7c6145abdaa34a27e460bd3b33dd314aab
  #include <apt-pkg/algorithms.h>
  #include <apt-pkg/error.h>
  #include <apt-pkg/configuration.h>
 +#include <apt-pkg/version.h>
  #include <apt-pkg/sptr.h>
 +
      
  #include <apti18n.h>
 -    
 +#include <sys/types.h>
+ #include <cstdlib>
+ #include <algorithm>
  #include <iostream>
                                                                        /*}}}*/
  using namespace std;
@@@ -102,7 -102,6 +104,7 @@@ bool pkgSimulate::Install(PkgIterator i
         DepIterator End;
         D.GlobOr(Start,End);
         if (Start->Type == pkgCache::Dep::Conflicts ||
 +           Start->Type == pkgCache::Dep::DpkgBreaks ||
             Start->Type == pkgCache::Dep::Obsoletes ||
             End->Type == pkgCache::Dep::PreDepends)
           {
@@@ -152,8 -151,6 +154,8 @@@ bool pkgSimulate::Configure(PkgIterato
            cout << " Obsoletes:" << D.TargetPkg().Name();
         else if (D->Type == pkgCache::Dep::Conflicts)
            cout << " Conflicts:" << D.TargetPkg().Name();
 +       else if (D->Type == pkgCache::Dep::DpkgBreaks)
 +          cout << " Breaks:" << D.TargetPkg().Name();
         else
            cout << " Depends:" << D.TargetPkg().Name();
        }           
@@@ -225,8 -222,6 +227,8 @@@ void pkgSimulate::ShortBreaks(
     the necessary calculations to deal with the problems. */
  bool pkgApplyStatus(pkgDepCache &Cache)
  {
 +   pkgDepCache::ActionGroup group(Cache);
 +
     for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
     {
        if (I->VersionList == 0)
          I->InstState == pkgCache::State::HoldReInstReq)
        {
         if (I->CurrentVer != 0 && I.CurrentVer().Downloadable() == true)
 -          Cache.MarkKeep(I);
 +          Cache.MarkKeep(I, false, false);
         else
         {
            // Is this right? Will dpkg choke on an upgrade?
            if (Cache[I].CandidateVer != 0 &&
                 Cache[I].CandidateVerIter(Cache).Downloadable() == true)
 -             Cache.MarkInstall(I);
 +             Cache.MarkInstall(I, false, 0, false);
            else
               return _error->Error(_("The package %s needs to be reinstalled, "
                                    "but I can't find an archive for it."),I.Name());
         case pkgCache::State::HalfConfigured:
         if ((I->CurrentVer != 0 && I.CurrentVer().Downloadable() == true) ||
             I.State() != pkgCache::PkgIterator::NeedsUnpack)
 -          Cache.MarkKeep(I);
 +          Cache.MarkKeep(I, false, false);
         else
         {
            if (Cache[I].CandidateVer != 0 &&
                 Cache[I].CandidateVerIter(Cache).Downloadable() == true)
 -             Cache.MarkInstall(I);
 +             Cache.MarkInstall(I, true, 0, false);
            else
               Cache.MarkDelete(I);
         }
     on the result. */
  bool pkgFixBroken(pkgDepCache &Cache)
  {
 +   pkgDepCache::ActionGroup group(Cache);
 +
     // Auto upgrade all broken packages
     for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
        if (Cache[I].NowBroken() == true)
 -       Cache.MarkInstall(I,true);
 +       Cache.MarkInstall(I, true, 0, false);
     
     /* Fix packages that are in a NeedArchive state but don't have a
        downloadable install version */
        if (Cache[I].InstVerIter(Cache).Downloadable() == false)
         continue;
  
 -      Cache.MarkInstall(I,true);      
 +      Cache.MarkInstall(I, true, 0, false);
     }
     
     pkgProblemResolver Fix(&Cache);
   */
  bool pkgDistUpgrade(pkgDepCache &Cache)
  {
 +   pkgDepCache::ActionGroup group(Cache);
 +
     /* Auto upgrade all installed packages, this provides the basis 
        for the installation */
     for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
        if (I->CurrentVer != 0)
 -       Cache.MarkInstall(I,true);
 +       Cache.MarkInstall(I, true, 0, false);
  
     /* Now, auto upgrade all essential packages - this ensures that
        the essential packages are present and working */
     for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
        if ((I->Flags & pkgCache::Flag::Essential) == pkgCache::Flag::Essential)
 -       Cache.MarkInstall(I,true);
 +       Cache.MarkInstall(I, true, 0, false);
     
     /* We do it again over all previously installed packages to force 
        conflict resolution on them all. */
     for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
        if (I->CurrentVer != 0)
 -       Cache.MarkInstall(I,false);
 +       Cache.MarkInstall(I, false, 0, false);
  
     pkgProblemResolver Fix(&Cache);
  
         if (I->SelectedState == pkgCache::State::Hold)
         {
            Fix.Protect(I);
 -          Cache.MarkKeep(I);
 +          Cache.MarkKeep(I, false, false);
         }
        }
     }
     to install packages not marked for install */
  bool pkgAllUpgrade(pkgDepCache &Cache)
  {
 +   pkgDepCache::ActionGroup group(Cache);
 +
     pkgProblemResolver Fix(&Cache);
  
     if (Cache.BrokenCount() != 0)
            continue;
        
        if (I->CurrentVer != 0 && Cache[I].InstallVer != 0)
 -       Cache.MarkInstall(I,false);
 +       Cache.MarkInstall(I, false, 0, false);
     }
        
     return Fix.ResolveByKeep();
     the package is restored. */
  bool pkgMinimizeUpgrade(pkgDepCache &Cache)
  {   
 +   pkgDepCache::ActionGroup group(Cache);
 +
     if (Cache.BrokenCount() != 0)
        return false;
     
            continue;
  
         // Keep it and see if that is OK
 -       Cache.MarkKeep(I);
 +       Cache.MarkKeep(I, false, false);
         if (Cache.BrokenCount() != 0)
 -          Cache.MarkInstall(I,false);
 +          Cache.MarkInstall(I, false, 0, false);
         else
         {
            // If keep didnt actually do anything then there was no change..
@@@ -582,8 -569,6 +584,8 @@@ void pkgProblemResolver::MakeScores(
     installable */
  bool pkgProblemResolver::DoUpgrade(pkgCache::PkgIterator Pkg)
  {
 +   pkgDepCache::ActionGroup group(Cache);
 +
     if ((Flags[Pkg->ID] & Upgradable) == 0 || Cache[Pkg].Upgradable() == false)
        return false;
     if ((Flags[Pkg->ID] & Protected) == Protected)
     Flags[Pkg->ID] &= ~Upgradable;
     
     bool WasKept = Cache[Pkg].Keep();
 -   Cache.MarkInstall(Pkg,false);
 +   Cache.MarkInstall(Pkg, false, 0, false);
  
     // This must be a virtual package or something like that.
     if (Cache[Pkg].InstVerIter(Cache).end() == true)
               /* We let the algorithm deal with conflicts on its next iteration,
                it is much smarter than us */
               if (Start->Type == pkgCache::Dep::Conflicts || 
 +                 Start->Type == pkgCache::Dep::DpkgBreaks || 
                   Start->Type == pkgCache::Dep::Obsoletes)
                   break;
               
     if (Fail == true)
     {
        if (WasKept == true)
 -       Cache.MarkKeep(Pkg);
 +       Cache.MarkKeep(Pkg, false, false);
        else
         Cache.MarkDelete(Pkg);
        return false;
     upgrade packages to advoid problems. */
  bool pkgProblemResolver::Resolve(bool BrokenFix)
  {
 +   pkgDepCache::ActionGroup group(Cache);
 +
     unsigned long Size = Cache.Head().PackageCount;
  
     // Record which packages are marked for install
         {
            if (Cache[I].InstBroken() == true && BrokenFix == true)
            {
 -             Cache.MarkInstall(I,false);
 +             Cache.MarkInstall(I, false, 0, false);
               if (Cache[I].Install() == true)
                  Again = true;
            }
            pkgCache::Version *OldVer = Cache[I].InstallVer;
            Flags[I->ID] &= ReInstateTried;
            
 -          Cache.MarkInstall(I,false);
 +          Cache.MarkInstall(I, false, 0, false);
            if (Cache[I].InstBroken() == true || 
                OldBreaks < Cache.BrokenCount())
            {
               if (OldVer == 0)
                  Cache.MarkDelete(I);
               else
 -                Cache.MarkKeep(I);
 +                Cache.MarkKeep(I, false, false);
            }       
            else
               if (Debug == true)
                  {
                     if (Debug == true)
                        clog << "  Or group keep for " << I.Name() << endl;
 -                   Cache.MarkKeep(I);
 +                   Cache.MarkKeep(I, false, false);
                     Change = true;
                  }
               }
            SPtrArray<pkgCache::Version *> VList = Start.AllTargets();
            if (*VList == 0 && (Flags[I->ID] & Protected) != Protected &&
                Start->Type != pkgCache::Dep::Conflicts &&
 +              Start->Type != pkgCache::Dep::DpkgBreaks &&
                Start->Type != pkgCache::Dep::Obsoletes &&
                Cache[I].NowBroken() == false)
            {          
               }
               
               Change = true;
 -             Cache.MarkKeep(I);                 
 +             Cache.MarkKeep(I, false, false);
               break;
            }
            
               if (Scores[I->ID] <= Scores[Pkg->ID] ||
                   ((Cache[Start] & pkgDepCache::DepNow) == 0 &&
                    End->Type != pkgCache::Dep::Conflicts &&
 +                  End->Type != pkgCache::Dep::DpkgBreaks &&
                    End->Type != pkgCache::Dep::Obsoletes))
               {
                  // Try a little harder to fix protected packages..
                  /* See if a keep will do, unless the package is protected,
                     then installing it will be necessary */
                  bool Installed = Cache[I].Install();
 -                Cache.MarkKeep(I);
 +                Cache.MarkKeep(I, false, false);
                  if (Cache[I].InstBroken() == false)
                  {
                     // Unwind operation will be keep now
                     
                     // Restore
                     if (InOr == true && Installed == true)
 -                      Cache.MarkInstall(I,false);
 +                      Cache.MarkInstall(I, false, 0, false);
                     
                     if (Debug == true)
                        clog << "  Holding Back " << I.Name() << " rather than change " << Start.TargetPkg().Name() << endl;
                      (Start->Type == pkgCache::Dep::Conflicts ||
                       Start->Type == pkgCache::Dep::Obsoletes))
                     continue;
 -                
 +
 +                if (Start->Type == pkgCache::Dep::DpkgBreaks)
 +                {
 +                   /* Would it help if we upgraded? */
 +                   if (Cache[End] & pkgDepCache::DepGCVer) {
 +                      if (Debug)
 +                         clog << "  Upgrading " << Pkg.Name() << " due to Breaks field in " << I.Name() << endl;
 +                      Cache.MarkInstall(Pkg, false, 0, false);
 +                      continue;
 +                   }
 +                   if (Debug)
 +                      clog << "  Will not break " << Pkg.Name() << " as stated in Breaks field in " << I.Name() <<endl;
 +                   Cache.MarkKeep(I, false, false);
 +                   continue;
 +                }
 +
                  // Skip adding to the kill list if it is protected
                  if ((Flags[Pkg->ID] & Protected) != 0)
                     continue;
            // Hm, nothing can possibly satisify this dep. Nuke it.
            if (VList[0] == 0 && 
                Start->Type != pkgCache::Dep::Conflicts &&
 +              Start->Type != pkgCache::Dep::DpkgBreaks &&
                Start->Type != pkgCache::Dep::Obsoletes &&
                (Flags[I->ID] & Protected) != Protected)
            {
                  
                  // Restore
                  if (InOr == true && Installed == true)
 -                   Cache.MarkInstall(I,false);
 +                   Cache.MarkInstall(I, false, 0, false);
                  
                  if (Debug == true)
                     clog << "  Holding Back " << I.Name() << " because I can't find " << Start.TargetPkg().Name() << endl;
               {
                  if (Debug == true)
                     clog << "  Fixing " << I.Name() << " via keep of " << J->Pkg.Name() << endl;
 -                Cache.MarkKeep(J->Pkg);
 +                Cache.MarkKeep(J->Pkg, false, false);
               }
  
               if (Counter > 1)
        return _error->Error(_("Unable to correct problems, you have held broken packages."));
     }
     
 +   // set the auto-flags (mvo: I'm not sure if we _really_ need this, but
 +   // I didn't managed 
 +   pkgCache::PkgIterator I = Cache.PkgBegin();
 +   for (;I.end() != true; I++) {
 +      if (Cache[I].NewInstall() && !(Flags[I->ID] & PreInstalled)) {
 +       if(_config->FindI("Debug::pkgAutoRemove",false)) {
 +          std::clog << "Resolve installed new pkg: " << I.Name() 
 +                    << " (now marking it as auto)" << std::endl;
 +       }
 +       Cache[I].Flags |= pkgCache::Flag::Auto;
 +      }
 +   }
 +
 +
     return true;
  }
                                                                        /*}}}*/
     system was non-broken previously. */
  bool pkgProblemResolver::ResolveByKeep()
  {
 +   pkgDepCache::ActionGroup group(Cache);
 +
     unsigned long Size = Cache.Head().PackageCount;
  
     if (Debug == true)      
        {
         if (Debug == true)
            clog << "Keeping package " << I.Name() << endl;
 -       Cache.MarkKeep(I);
 +       Cache.MarkKeep(I, false, false);
         if (Cache[I].InstBroken() == false)
         {
            K = PList - 1;
               {
                  if (Debug == true)
                     clog << "  Keeping Package " << Pkg.Name() << " due to dep" << endl;
 -                Cache.MarkKeep(Pkg);
 +                Cache.MarkKeep(Pkg, false, false);
               }
               
               if (Cache[I].InstBroken() == false)
  /* This is used to make sure protected packages are installed */
  void pkgProblemResolver::InstallProtect()
  {
 +   pkgDepCache::ActionGroup group(Cache);
 +
     for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
     {
        if ((Flags[I->ID] & Protected) == Protected)
        {
         if ((Flags[I->ID] & ToRemove) == ToRemove)
            Cache.MarkDelete(I);
 -       else
 -          Cache.MarkInstall(I,false);
 +       else 
 +       {
 +          // preserver the information if the package was auto
 +          // or manual installed
 +          bool autoInst = (Cache[I].Flags & pkgCache::Flag::Auto);
 +          Cache.MarkInstall(I, false, 0, !autoInst);
 +       }
        }
     }   
  }
@@@ -1300,4 -1241,3 +1302,4 @@@ void pkgPrioSortList(pkgCache &Cache,pk
     qsort(List,Count,sizeof(*List),PrioComp);
  }
                                                                        /*}}}*/
 +
diff --combined apt-pkg/cdrom.cc
index e61344eee33e83d0a35ed613e30879e03476deff,07a7b868af7563e6e01b4c7121d9ab575d76e9f4..afa99bc7332008573603aeafe82918ec1ea10576
@@@ -18,6 -18,7 +18,7 @@@
  #include <dirent.h>
  #include <unistd.h>
  #include <stdio.h>
+ #include <algorithm>
  
  
  #include "indexcopy.h"
@@@ -30,16 -31,12 +31,16 @@@ using namespace std
     search that short circuits when it his a package file in the dir.
     This speeds it up greatly as the majority of the size is in the
     binary-* sub dirs. */
 -bool pkgCdrom::FindPackages(string CD,vector<string> &List,
 -                          vector<string> &SList, vector<string> &SigList,
 +bool pkgCdrom::FindPackages(string CD,
 +                          vector<string> &List,
 +                          vector<string> &SList, 
 +                          vector<string> &SigList,
 +                          vector<string> &TransList,
                            string &InfoDir, pkgCdromStatus *log,
                            unsigned int Depth)
  {
     static ino_t Inodes[9];
 +   DIR *D;
  
     // if we have a look we "pulse" now
     if(log)
        if (_config->FindB("APT::CDROM::Thorough",false) == false)
         return true;
     }
 +
 +   // see if we find translatin indexes
 +   if (stat("i18n",&Buf) == 0)
 +   {
 +      D = opendir("i18n");
 +      for (struct dirent *Dir = readdir(D); Dir != 0; Dir = readdir(D))
 +      {
 +       if(strstr(Dir->d_name,"Translation") != NULL) 
 +       {
 +          if (_config->FindB("Debug::aptcdrom",false) == true)
 +             std::clog << "found translations: " << Dir->d_name << "\n";
 +          string file = Dir->d_name;
 +          if(file.substr(file.size()-3,file.size()) == ".gz")
 +             file = file.substr(0,file.size()-3);
 +          TransList.push_back(CD+"i18n/"+ file);
 +       }
 +      }
 +      closedir(D);
 +   }
 +
     
 -   DIR *D = opendir(".");
 +   D = opendir(".");
     if (D == 0)
        return _error->Errno("opendir","Unable to read %s",CD.c_str());
     
        Inodes[Depth] = Buf.st_ino;
  
        // Descend
 -      if (FindPackages(CD + Dir->d_name,List,SList,SigList,InfoDir,log,Depth+1) == false)
 +      if (FindPackages(CD + Dir->d_name,List,SList,SigList,TransList,InfoDir,log,Depth+1) == false)
         break;
  
        if (chdir(CD.c_str()) != 0)
@@@ -636,10 -613,9 +637,10 @@@ bool pkgCdrom::Add(pkgCdromStatus *log
     vector<string> List;
     vector<string> SourceList;
     vector<string> SigList;
 +   vector<string> TransList;
     string StartDir = SafeGetCWD();
     string InfoDir;
 -   if (FindPackages(CDROM,List,SourceList, SigList,InfoDir,log) == false)
 +   if (FindPackages(CDROM,List,SourceList, SigList,TransList,InfoDir,log) == false)
     {
        log->Update("\n");
        return false;
     DropRepeats(List,"Packages");
     DropRepeats(SourceList,"Sources");
     DropRepeats(SigList,"Release.gpg");
 +   DropRepeats(TransList,"");
     if(log) {
        msg.str("");
 -      ioprintf(msg, _("Found %i package indexes, %i source indexes and "
 -                    "%i signatures\n"), 
 -             List.size(), SourceList.size(), SigList.size());
 +      ioprintf(msg, _("Found %i package indexes, %i source indexes, "
 +                    "%i translation indexes and %i signatures\n"), 
 +             List.size(), SourceList.size(), TransList.size(),
 +             SigList.size());
        log->Update(msg.str(), STEP_SCAN);
     }
  
     // Copy the package files to the state directory
     PackageCopy Copy;
     SourceCopy SrcCopy;
 +   TranslationsCopy TransCopy;
     if (Copy.CopyPackages(CDROM,Name,List, log) == false ||
 -       SrcCopy.CopyPackages(CDROM,Name,SourceList, log) == false)
 +       SrcCopy.CopyPackages(CDROM,Name,SourceList, log) == false ||
 +       TransCopy.CopyTranslations(CDROM,Name,TransList, log) == false)
        return false;
  
     // reduce the List so that it takes less space in sources.list
index 37d263794b42b9c2049096068e2b3b99124371bd,6e549bedd539be1ef50fe5cf3e4757f8fdc35ad4..14ead61e16b66a8e555283bae4c0c6ff4b844940
  #include <ctype.h>
  #include <string.h>
  #include <stdio.h>
+ #include <algorithm>
  #include <unistd.h>
  #include <regex.h>
  #include <errno.h>
  #include <stdarg.h>
 +#include <iconv.h>
  
  #include "config.h"
  
  using namespace std;
                                                                        /*}}}*/
  
 +// UTF8ToCodeset - Convert some UTF-8 string for some codeset         /*{{{*/
 +// ---------------------------------------------------------------------
 +/* This is handy to use before display some information for enduser  */
 +bool UTF8ToCodeset(const char *codeset, const string &orig, string *dest)
 +{
 +  iconv_t cd;
 +  const char *inbuf;
 +  char *inptr, *outbuf, *outptr;
 +  size_t insize, outsize;
 +  
 +  cd = iconv_open(codeset, "UTF-8");
 +  if (cd == (iconv_t)(-1)) {
 +     // Something went wrong
 +     if (errno == EINVAL)
 +      _error->Error("conversion from 'UTF-8' to '%s' not available",
 +               codeset);
 +     else
 +      perror("iconv_open");
 +     
 +     // Clean the destination string
 +     *dest = "";
 +     
 +     return false;
 +  }
 +
 +  insize = outsize = orig.size();
 +  inbuf = orig.data();
 +  inptr = (char *)inbuf;
 +  outbuf = new char[insize+1];
 +  outptr = outbuf;
 +
 +  iconv(cd, &inptr, &insize, &outptr, &outsize);
 +  *outptr = '\0';
 +
 +  *dest = outbuf;
 +  delete[] outbuf;
 +  
 +  iconv_close(cd);
 +
 +  return true;
 +}
 +                                                                      /*}}}*/
  // strstrip - Remove white space from the front and back of a string  /*{{{*/
  // ---------------------------------------------------------------------
  /* This is handy to use when parsing a file. It also removes \n's left 
diff --combined apt-pkg/init.cc
index 579a19ab9ee1c5184a608685ba57d3db2671df27,52c8a68aa857fbdcac685ad3cf22df9d5861964c..2f15486d9440d0f67742ea69d443cc0bb19793bb
@@@ -14,6 -14,7 +14,7 @@@
  
  #include <apti18n.h>
  #include <config.h>
+ #include <cstdlib>
  #include <sys/stat.h>
                                                                        /*}}}*/
  
@@@ -40,8 -41,6 +41,8 @@@ bool pkgInitConfig(Configuration &Cnf
     else
        Cnf.Set("APT::Architecture",COMMON_OS "-" COMMON_CPU);
     Cnf.Set("APT::Build-Essential::", "build-essential");
 +   Cnf.Set("APT::Install-Recommends", false);
 +   Cnf.Set("APT::Install-Suggests", false);
     Cnf.Set("Dir","/");
     
     // State   
        bindtextdomain(textdomain(0),Cnf.FindDir("Dir::Locale").c_str());
     }
  #endif
 +
 +   // Translation
 +   Cnf.Set("APT::Acquire::Translation", "environment");
     
     return true;
  }
diff --combined cmdline/apt-get.cc
index 74824b6b05e91e7f2cb10791db66a5f53d940de2,6bbc40242244a0963200f7ad3d1413cdb8dcfffa..1dcbbfc5badad255a3ed3b193b67c6974fc8f17b
@@@ -60,7 -60,6 +60,7 @@@
  #include <errno.h>
  #include <regex.h>
  #include <sys/wait.h>
 +#include <sstream>
                                                                        /*}}}*/
  
  using namespace std;
@@@ -629,8 -628,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)
@@@ -1010,7 -995,7 +1010,7 @@@ bool InstallPackages(CacheFile &Cache,b
         cerr << _("Unable to correct missing packages.") << endl;
         return _error->Error(_("Aborting install."));
        }
 -               
 +
        _system->UnLock();
        int status_fd = _config->FindI("APT::Status-Fd",-1);
        pkgPackageManager::OrderResult Res = PM->DoInstall(status_fd);
@@@ -1160,11 -1145,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;
  }
                                                                        /*}}}*/
@@@ -1372,29 -1355,20 +1372,29 @@@ bool DoUpdate(CommandLine &CmdL
        return false;
  
     bool Failed = false;
 +   bool TransientNetworkFailure = false;
     for (pkgAcquire::ItemIterator I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); I++)
     {
        if ((*I)->Status == pkgAcquire::Item::StatDone)
         continue;
  
        (*I)->Finished();
 -      
 +
        fprintf(stderr,_("Failed to fetch %s  %s\n"),(*I)->DescURI().c_str(),
              (*I)->ErrorText.c_str());
 +
 +      if ((*I)->Status == pkgAcquire::Item::StatTransientNetworkError) 
 +      {
 +       TransientNetworkFailure = true;
 +       continue;
 +      }
 +
        Failed = true;
     }
     
     // Clean out any old list files
 -   if (!Failed && _config->FindB("APT::Get::List-Cleanup",true) == true)
 +   if (!TransientNetworkFailure &&
 +       _config->FindB("APT::Get::List-Cleanup",true) == true)
     {
        if (Fetcher.Clean(_config->FindDir("Dir::State::lists")) == false ||
          Fetcher.Clean(_config->FindDir("Dir::State::lists") + "partial/") == false)
     if (Cache.BuildCaches() == false)
        return false;
     
 -   if (Failed == true)
 +   if (TransientNetworkFailure == true)
 +      _error->Warning(_("Some index files failed to download, they have been ignored, or old ones used instead."));
 +   else if (Failed == true)
        return _error->Error(_("Some index files failed to download, they have been ignored, or old ones used instead."));
 -   
 +
     return true;
  }
                                                                        /*}}}*/
 +// DoAutomaticRemove - Remove all automatic unused packages           /*{{{*/
 +// ---------------------------------------------------------------------
 +/* Remove unused automatic packages */
 +bool DoAutomaticRemove(CacheFile &Cache)
 +{
 +   bool Debug = _config->FindI("Debug::pkgAutoRemove",false);
 +   bool doAutoRemove = _config->FindB("APT::Get::AutomaticRemove", false);
 +   bool hideAutoRemove = _config->FindB("APT::Get::HideAutoRemove");
 +   pkgDepCache::ActionGroup group(*Cache);
 +
 +   if(Debug)
 +      std::cout << "DoAutomaticRemove()" << std::endl;
 +
 +   if (_config->FindB("APT::Get::Remove",true) == false &&
 +       doAutoRemove == true)
 +   {
 +      c1out << _("We are not supposed to delete stuff, can't start "
 +               "AutoRemover") << std::endl;
 +      doAutoRemove = false;
 +   }
 +
 +   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;
 +        
 +       // only show stuff in the list that is not yet marked for removal
 +       if(Cache[Pkg].Delete() == false) 
 +       {
 +          autoremovelist += string(Pkg.Name()) + " ";
 +          autoremoveversions += string(Cache[Pkg].CandVersion) + "\n";
 +       }
 +       if (doAutoRemove)
 +       {
 +          if(Pkg.CurrentVer() != 0 && 
 +             Pkg->CurrentState != pkgCache::State::ConfigFiles)
 +             Cache->MarkDelete(Pkg, _config->FindB("APT::Get::Purge", false));
 +          else
 +             Cache->MarkKeep(Pkg, false, false);
 +       }
 +      }
 +   }
 +   if (!hideAutoRemove) 
 +      ShowList(c1out, _("The following packages were automatically installed and are no longer required:"), autoremovelist, autoremoveversions);
 +   if (!doAutoRemove && !hideAutoRemove && autoremovelist.size() > 0)
 +      c1out << _("Use 'apt-get autoremove' to remove them.") << std::endl;
 +
 +   // Now see if we destroyed anything
 +   if (Cache->BrokenCount() != 0)
 +   {
 +      c1out << _("Hmm, seems like the AutoRemover destroyed something which really\n"
 +               "shouldn't happen. Please file a bug report against apt.") << endl;
 +      c1out << endl;
 +      c1out << _("The following information may help to resolve the situation:") << endl;
 +      c1out << endl;
 +      ShowBroken(c1out,Cache,false);
 +
 +      return _error->Error(_("Internal Error, AutoRemover broke stuff"));
 +   }
 +   return true;
 +}
 +
  // DoUpgrade - Upgrade all packages                                   /*{{{*/
  // ---------------------------------------------------------------------
  /* Upgrade all packages without installing new packages or erasing old
@@@ -1501,51 -1406,6 +1501,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 */
@@@ -1561,7 -1421,6 +1561,7 @@@ bool DoInstall(CommandLine &CmdL
     if (Cache->BrokenCount() != 0)
        BrokenFix = true;
     
 +   unsigned int AutoMarkChanged = 0;
     unsigned int ExpectedInst = 0;
     unsigned int Packages = 0;
     pkgProblemResolver Fix(Cache);
        _config->Set("APT::Get::Purge", true);
        DefRemove = true;
     }
 -   for (const char **I = CmdL.FileList + 1; *I != 0; I++)
 +   else if (strcasecmp(CmdL.FileList[0], "autoremove") == 0)
     {
 -      // 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;
 -      while (Cache->FindPkg(S).end() == true)
 +      _config->Set("APT::Get::AutomaticRemove", "true");
 +      DefRemove = 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] == '+')
 +       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)
         {
 -          Remove = false;
 -          S[--Length] = 0;
 -          continue;
 -       }
 +          // Handle an optional end tag indicating what to do
 +          if (Length >= 1 && S[Length - 1] == '-')
 +          {
 +             Remove = true;
 +             S[--Length] = 0;
 +             continue;
 +          }
         
 -       char *Slash = strchr(S,'=');
 -       if (Slash != 0)
 -       {
 -          VerIsRel = false;
 -          *Slash = 0;
 -          VerTag = Slash + 1;
 -       }
 +          if (Length >= 1 && S[Length - 1] == '+')
 +          {
 +             Remove = false;
 +             S[--Length] = 0;
 +             continue;
 +          }
         
 -       Slash = strchr(S,'/');
 -       if (Slash != 0)
 -       {
 -          VerIsRel = true;
 -          *Slash = 0;
 -          VerTag = Slash + 1;
 -       }
 +          char *Slash = strchr(S,'=');
 +          if (Slash != 0)
 +          {
 +             VerIsRel = false;
 +             *Slash = 0;
 +             VerTag = Slash + 1;
 +          }
         
 -       break;
 -      }
 +          Slash = strchr(S,'/');
 +          if (Slash != 0)
 +          {
 +             VerIsRel = true;
 +             *Slash = 0;
 +             VerTag = Slash + 1;
 +          }
 +       
 +          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);
 +       // 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;
 +          // 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);
 -       }
 +          // 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;
 +          // 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);
 +          // see if we need to fix the auto-mark flag 
 +          // e.g. apt-get install foo 
 +          // where foo is marked automatic
 +          if(!Remove && 
 +             Cache[Pkg].Install() == false && 
 +             (Cache[Pkg].Flags & pkgCache::Flag::Auto))
 +          {
 +             ioprintf(c1out,_("%s set to manual installed.\n"),
 +                      Pkg.Name());
 +             Cache->MarkAuto(Pkg,false);
 +             AutoMarkChanged++;
 +          }
 +       }      
 +      }
  
 -      return _error->Error(_("Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution)."));
 -   }
 +      /* 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)."));
 +      }
     
 -   // 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"));
 -   }   
 -   
     /* Print out a list of packages that are going to be installed extra
        to what the user asked */
     if (Cache->InstCount() != ExpectedInst)
         
         if (*J == 0) {
            List += string(I.Name()) + " ";
 -        VersionsList += string(Cache[I].CandVersion) + "\n";
 -     }
 +          VersionsList += string(Cache[I].CandVersion) + "\n";
 +       }
        }
        
        ShowList(c1out,_("The following extra packages will be installed:"),List,VersionsList);
  
     }
  
 +   // if nothing changed in the cache, but only the automark information
 +   // we write the StateFile here, otherwise it will be written in 
 +   // cache.commit()
 +   if (AutoMarkChanged > 0 &&
 +       Cache->DelCount() == 0 && Cache->InstCount() == 0 &&
 +       Cache->BadCount() == 0)
 +      Cache->writeStateFile(NULL);
 +
     // See if we need to prompt
     if (Cache->InstCount() == ExpectedInst && Cache->DelCount() == 0)
        return InstallPackages(Cache,false,false);
@@@ -1911,8 -1736,6 +1911,8 @@@ bool DoDSelectUpgrade(CommandLine &CmdL
     if (Cache.OpenForInstall() == false || Cache.CheckDeps() == false)
        return false;
     
 +   pkgDepCache::ActionGroup group(Cache);
 +
     // Install everything with the install flag set
     pkgCache::PkgIterator I = Cache->PkgBegin();
     for (;I.end() != true; I++)
@@@ -2131,6 -1954,11 +2131,11 @@@ bool DoSource(CommandLine &CmdL
             I->Type != "tar")
            continue;
  
+        // Dsc only mode only fetches .dsc files
+        if (_config->FindB("APT::Get::Dsc-Only",false) == true &&
+            I->Type != "dsc")
+           continue;
         // don't download the same uri twice (should this be moved to
         // the fetcher interface itself?)
         if(queued.find(Last->Index().ArchiveURI(I->Path)) != queued.end())
@@@ -2666,7 -2494,6 +2671,7 @@@ void GetInitialize(
     _config->Set("APT::Get::Fix-Broken",false);
     _config->Set("APT::Get::Force-Yes",false);
     _config->Set("APT::Get::List-Cleanup",true);
 +   _config->Set("APT::Get::AutomaticRemove",false);
  }
                                                                        /*}}}*/
  // SigWinch - Window size change signal handler                               /*{{{*/
@@@ -2714,7 -2541,8 +2719,8 @@@ int main(int argc,const char *argv[]
        {0,"force-yes","APT::Get::force-yes",0},
        {0,"print-uris","APT::Get::Print-URIs",0},
        {0,"diff-only","APT::Get::Diff-Only",0},
-       {0,"tar-only","APT::Get::tar-Only",0},
+       {0,"tar-only","APT::Get::Tar-Only",0},
+       {0,"dsc-only","APT::Get::Dsc-Only",0},
        {0,"purge","APT::Get::Purge",0},
        {0,"list-cleanup","APT::Get::List-Cleanup",0},
        {0,"reinstall","APT::Get::ReInstall",0},
        {0,"remove","APT::Get::Remove",0},
        {0,"only-source","APT::Get::Only-Source",0},
        {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}};
                                     {"upgrade",&DoUpgrade},
                                     {"install",&DoInstall},
                                     {"remove",&DoInstall},
 +                                 {"autoremove",&DoInstall},
                                     {"dist-upgrade",&DoDistUpgrade},
                                     {"dselect-upgrade",&DoDSelectUpgrade},
                                   {"build-dep",&DoBuildDep},
diff --combined debian/changelog
index 2504df8ce204d35dfe5840e2d97ce13f75c436d2,dfdf0a4014b37cc4ae66c7ffe65e45a8556cf505..05e3b58ef48121a35bcd6c18b2715359f4dc9fc5
@@@ -1,37 -1,5 +1,42 @@@
 -apt (0.6.47) UNRELEASED; urgency=low
 +apt (0.7.2) unstable; urgency=low
 +  
 +  * merged the debian/experimental changes back
 +    into the debian/sid branch
 +  * merged from Christian Perrier:
 +    * mr.po: New Marathi translation  Closes: #416806
 +    * zh_CN.po: Updated by Eric Pareja  Closes: #416822
 +    * tl.po: Updated by Eric Pareja   Closes: #416638
 +    * gl.po: Updated by Jacobo Tarrio
 +           Closes: #412828
 +    * da.po: Updated by Claus Hindsgaul
 +           Closes: #409483
 +    * fr.po: Remove a non-breakable space for usability
 +           issues. Closes: #408877
 +    * ru.po: Updated Russian translation. Closes: #405476
 +    * *.po: Unfuzzy after upstream typo corrections
 +  * buildlib/archtable:
 +    - added support for sh3/sh4 (closes: #424870)
 +    - added support for m32r (closes: #394096)
 +  * buildlib/systemtable:
 +    - added support for lpia
 +  * configure.in:
 +    - check systemtable for architecture mapping too
 +  * fix error in AutocleanInterval, closes: #319339
 +    (thanks to Israel G. Lugo for the patch)
 +  * add "purge" commandline argument, closes: #133421)
 +    (thanks to Julien Danjou for the patch)
++  * add "purge" commandline argument, closes: #133421)
++    (thanks to Julien Danjou for the patch)
++  * fix FTBFS with gcc 4.3, closes: #417090
++    (thanks to Martin Michlmayr for the patch)
++  * add --dsc-only option, thanks to K. Richard Pixley
 +  
 + -- Michael Vogt <mvo@debian.org>  Wed, 06 Jun 2007 23:19:50 +0200
 +
 +apt (0.7.1) experimental; urgency=low
  
 +  * ABI library name change because its build against
 +    new glibc
    * implement SourceVer() in pkgRecords 
       (thanks to Daniel Burrows for the patch!)
    * apt-pkg/algorithm.cc:
@@@ -52,7 -20,7 +57,7 @@@
      - fix error translation that causes trouble to lsb_release
    * apt-pkg/acquire-item.cc:
      - if decompression of a index fails, delete the index 
 -  * [ABI] apt-pkg/acquire.{cc,h}:
 +  * apt-pkg/acquire.{cc,h}:
      - deal better with duplicated sources.list entries (avoid
        double queuing of  URLs) - this fixes hangs in bzip/gzip
    * merged from Christian Perrier:
        complete translations
    * apt-pkg/policy.cc:
      - allow multiple packages (thanks to David Foerster)
 -  * buildlib/archtable:
 -    - added support for sh3/sh4 (closes: #424870)
 -    - added support for m32r (closes: #394096)
 -  * buildlib/systemtable:
 -    - added support for lpia
 -  * configure.in:
 -    - check systemtable for architecture mapping too
 -  * fix error in AutocleanInterval, closes: #319339
 -    (thanks to Israel G. Lugo for the patch)
 -  * add "purge" commandline argument, closes: #133421)
 -    (thanks to Julien Danjou for the patch)
 -  * fix FTBFS with gcc 4.3, closes: #417090
 -    (thanks to Martin Michlmayr for the patch)
 -  * add --dsc-only option, thanks to K. Richard Pixley
 -  
 - -- Michael Vogt <michael.vogt@ubuntu.com>  Mon, 18 Dec 2006 19:39:05 +0100
 +
 + -- Michael Vogt <mvo@debian.org>  Wed,  2 May 2007 13:43:44 +0200
 +
 +apt (0.7.0) experimental; urgency=low
 +
 +  * Package that contains tall the new features
 +  * Removed all #pragma interface/implementation
 +  * Branch that contains tall the new features:
 +  * translated package descriptions
 +  * task install support
 +  * automatic dependency removal (thanks to Daniel Burrows)
 +  * merged support for the new dpkg "Breaks" field 
 +    (thanks to Ian Jackson)
 +  * handle network failures more gracefully on "update"
 +  * support for unattended-upgrades (via unattended-upgrades
 +    package)
 +  * added apt-transport-https method
 +
 + -- Michael Vogt <mvo@debian.org>  Fri, 12 Jan 2007 20:48:07 +0100
  
  apt (0.6.46.4-0.1) unstable; urgency=emergency
    
@@@ -148,53 -113,40 +153,53 @@@ apt (0.6.46.3) unstable; urgency=lo
        messages 
  
    * Merged from Christian Perrier bzr branch:
 -     - ca.po: Updated to 514t
 -     - be.po: Updated to 514t
 -     - it.po: Updated to 514t
 -     - hu.po: Updated to 514t
 -     - zh_TW.po: Updated to 514t
 -     - ar.po: Updated to 293t221u.
 -     - ru.po: Updated to 514t. Closes: #392466
 -     - nb.po: Updated to 514t. Closes: #392466
 -     - pt.po: Updated to 514t. Closes: #393199
 -     - fr.po: One spelling error corrected: s/accèder/accéder
 -     - km.po: Updated to 514t.
 -     - ko.po: Updated to 514t.
 -     - bg.po: Updated to 514t.
 -     - de.po: Updated to 514t.
 -     - en_GB.po: Updated to 514t.
 -
 - -- Michael Vogt <mvo@debian.org>  Thu, 2 Nov 2006 11:37:58 +0100 
 +    - ca.po: Updated to 514t
 +    - be.po: Updated to 514t
 +    - it.po: Updated to 514t
 +    - hu.po: Updated to 514t
 +    - zh_TW.po: Updated to 514t
 +    - ar.po: Updated to 293t221u.
 +    - ru.po: Updated to 514t. Closes: #392466
 +    - nb.po: Updated to 514t. Closes: #392466
 +    - pt.po: Updated to 514t. Closes: #393199
 +    - fr.po: One spelling error corrected: s/accèder/accéder
 +    - km.po: Updated to 514t.
 +    - ko.po: Updated to 514t.
 +    - bg.po: Updated to 514t.
 +    - de.po: Updated to 514t.
 +    - en_GB.po: Updated to 514t.
 +
 + -- Michael Vogt <mvo@debian.org>  Thu,  2 Nov 2006 11:37:58 +0100
  
  apt (0.6.46.2) unstable; urgency=low
  
 +  * debian/control:
 +    - depend on debian-archive-keyring to offer clean upgrade path 
 +      (closes: #386800)
    * Merged from Christian Perrier bzr branch:
      - es.po: Updated to 514t. Closes: #391661
      - da.po: Updated to 514t. Closes: #391424
      - cs.po: Updated. Closes: #391064
      - es.po: Updated to 514t. Closes: #391661
      - da.po: Updated to 514t. Closes: #391424
 -  
 +
   -- Michael Vogt <mvo@debian.org>  Wed, 11 Oct 2006 09:03:15 +0200
  
  apt (0.6.46.1) unstable; urgency=low
  
 +  * merged "install-recommends" branch (ABI break): 
 +    - new "--install-recommends"
 +    - install new recommends on "upgrade" if --install-recommends is 
 +      given
 +    - new "--fix-policy" option to install all packages with unmet
 +      important dependencies (usefull with --install-recommends to
 +      see what not-installed recommends are on the system)
 +    - fix of recommended packages display (only show CandidateVersion
 +      fix or-group handling)
 +  * merged "install-task" branch (use with "apt-get install taskname^")
    * methods/gzip.cc:
      - deal with empty files 
 -  * Applied patch from Daniel Schepler to make apt bin-NMU able.  
 +  * Applied patch from Daniel Schepler to make apt bin-NMU able.
      (closes: bug#359634)
    * rebuild against current g++ because of:
      http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29289
@@@ -282,42 -234,26 +287,42 @@@ apt (0.6.45) unstable; urgency=lo
      * dz.po: New Dzongkha translation: 512t
      * ro.po: Updated to 512t
      * eu.po: Updated
 +    * eu.po: Updated
 +  * fix apt-get dist-upgrade
 +  * fix warning if no /var/lib/apt/extended_states is present
 +  * don't download Translations for deb-src sources.list lines
 +  * apt-pkg/tagfile.cc:
 +    - support not-mmapable files again
  
 - -- Michael Vogt <mvo@debian.org>  Thu, 27 Jul 2006 00:52:05 +0200
 + -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 25 Jul 2006 11:55:22 +0200
  
 -apt  (0.6.44.2) unstable; urgency=low 
 -  
 -   * apt-pkg/depcache.cc:
 -     - added Debug::pkgDepCache::AutoInstall (thanks to infinity)
 -   * apt-pkg/acquire-item.cc:
 -     - fix missing chmod() in the new aquire code
 -       (thanks to Bastian Blank, Closes: #367425)
 -   * merged from
 -     http://www.perrier.eu.org/debian/packages/d-i/level4/apt-main:
 -     * sk.po: Completed to 512t
 -     * eu.po: Completed to 512t
 -     * fr.po: Completed to 512t
 -     * sv.po: Completed to 512t
 -     * Update all PO and the POT. Gives 506t6f for formerly
 -       complete translations
 -
 - -- Michael Vogt <mvo@debian.org>  Wed, 14 Jun 2006 12:00:57 +0200 
 +apt (0.6.44.2exp1) experimental; urgency=low
 +
 +  * added support for i18n of the package descriptions
 +  * added support for aptitude like auto-install tracking (a HUGE
 +    HUGE thanks to Daniel Burrows who made this possible) 
 +  * synced with the http://people.debian.org/~mvo/bzr/apt/debian-sid branch
 +  * build from http://people.debian.org/~mvo/bzr/apt/debian-experimental
 +
 + -- Michael Vogt <mvo@debian.org>  Mon,  3 Jul 2006 21:50:31 +0200
 +
 +apt (0.6.44.2) unstable; urgency=low
 +
 +  * apt-pkg/depcache.cc:
 +    - added Debug::pkgDepCache::AutoInstall (thanks to infinity)
 +  * apt-pkg/acquire-item.cc:
 +    - fix missing chmod() in the new aquire code 
 +      (thanks to Bastian Blank, Closes: #367425)
 +  * merged from 
 +    http://www.perrier.eu.org/debian/packages/d-i/level4/apt-main:
 +    * sk.po: Completed to 512t
 +    * eu.po: Completed to 512t
 +    * fr.po: Completed to 512t
 +    * sv.po: Completed to 512t
 +    * Update all PO and the POT. Gives 506t6f for formerly
 +      complete translations
 +
 + -- Michael Vogt <mvo@debian.org>  Wed, 14 Jun 2006 12:00:57 +0200
  
  apt (0.6.44.1-0.1) unstable; urgency=low
  
  
  apt (0.6.44.1) unstable; urgency=low
  
 +  * apt-pkg/acquire-item.cc:
 +    - fix reversed logic of the "Acquire::PDiffs" option
    * merged from 
      http://www.perrier.eu.org/debian/packages/d-i/level4/apt-main:
      - po/LINGUAS: added "bg" Closes: #360262
      - po/gl.po: Galician translation update. Closes: #366849
      - po/hu.po: Hungarian translation update. Closes: #365448
      - po/cs.po: Czech translation updated. Closes: #367244
 +  * apt-pkg/contrib/sha256.cc:
 +    - applied patch to fix unaligned access problem. Closes: #367417
 +      (thanks to David Mosberger)
  
   -- Michael Vogt <mvo@debian.org>  Tue, 16 May 2006 21:51:16 +0200
  
  apt (0.6.44) unstable; urgency=low
  
    * apt-pkg/acquire.cc: don't show ETA if it is 0 or absurdely large
 +  * apt-pkg/contrib/sha256.{cc,h},hashes.{cc,h}: support for sha256 
 +    (thanks to Anthony Towns)
 +  * ftparchive/cachedb.{cc,h},writer.{cc,h}: optimizations 
 +    (thanks to Anthony Towns)
 +  * apt pdiff support from experimental merged
 +  * apt-pkg/deb/dpkgpm.cc: wording fixes (thanks to Matt Zimmerman)
    * apt-pkg/deb/dpkgpm.cc: 
      - wording fixes (thanks to Matt Zimmerman)
 -    - fix error in dpkg interaction (closes: #364513, 
 -      thanks to Martin Dickopp)
 +    - fix error in dpkg interaction (closes: #364513, thanks to Martin Dickopp)
    * apt-pkg/tagfile.{cc,h}:
      - use MMap to read the entries (thanks to Zephaniah E. Hull for the
        patch) Closes: #350025
@@@ -549,7 -475,7 +554,7 @@@ apt (0.6.42) unstable; urgency=lo
    * cmdline/apt-cdrom.cc: 
      - fix some missing gettext() calls (closes: #334539)
    * doc/apt-cache.8.xml: fix typo (closes: #334714)
 -  
 +
   -- Michael Vogt <mvo@debian.org>  Wed, 19 Oct 2005 22:02:09 +0200
  
  apt (0.6.41) unstable; urgency=low
@@@ -649,7 -575,6 +654,7 @@@ apt (0.6.37) breezy; urgency=lo
    * Add Welsh translation from Dafydd Harries
      (daf@muse.19inch.net--2005/apt--main--0--patch-1)
    * Change debian/bugscript to use #!/bin/bash (Closes: #313402)
 +  * Fix a incorrect example in the man-page (closes: #282918)
  
   -- Matt Zimmerman <mdz@ubuntu.com>  Tue, 24 May 2005 14:38:25 -0700
  
diff --combined doc/apt-get.8.xml
index 9d30a176c08eb6f0998860f91a64b432b05e557e,a6bb98ad0c26c3f81f2a612dbeffac773fc113f3..1bd21a5df368d84c3d218a9c3a34097ee40d99e6
@@@ -48,7 -48,6 +48,7 @@@
           <arg>check</arg>
           <arg>clean</arg>
           <arg>autoclean</arg>
 +         <arg>autoremove</arg>
        </group>   
     </cmdsynopsis>
   </refsynopsisdiv>
       <literal>APT::Clean-Installed</literal> will prevent installed packages from being
       erased if it is set to off.</para></listitem>
       </varlistentry>
 +
 +     <varlistentry><term>autoremove</term>
 +     <listitem><para><literal>autoremove</literal> is used to remove packages that were automatically
 +     installed to satisfy dependencies for some package and that are no more needed.</para></listitem>
 +     </varlistentry>
     </variablelist>
   </refsect1>
   
       Configuration Item: <literal>APT::Get::Remove</literal>.</para></listitem>
       </varlistentry>
  
 +     <varlistentry><term><option>--auto-remove</option></term>
 +     <listitem><para>If the command is either <literal>install</literal> or <literal>remove</literal>,
 +     then this option acts like running <literal>autoremove</literal> command, removing the unused
 +     dependency packages. Configuration Item: <literal>APT::Get::AutomaticRemove</literal>.
 +     </para></listitem>
 +     </varlistentry>
 +
       <varlistentry><term><option>--only-source</option></term>
       <listitem><para>Only has meaning for the
       <literal>source</literal> and <literal>build-dep</literal>
       Item: <literal>APT::Get::Only-Source</literal>.</para></listitem>
       </varlistentry>
  
-      <varlistentry><term><option>--diff-only</option></term><term><option>--tar-only</option></term>
-      <listitem><para>Download only the diff or tar file of a source archive. 
-      Configuration Item: <literal>APT::Get::Diff-Only</literal> and 
+      <varlistentry><term><option>--diff-only</option></term><term><option>--dsc-only</option></term><term><option>--tar-only</option></term>
+      <listitem><para>Download only the diff, dsc, or tar file of a source archive. 
+      Configuration Item: <literal>APT::Get::Diff-Only</literal>, <literal>APT::Get::Dsc-Only</literal>, and 
       <literal>APT::Get::Tar-Only</literal>.</para></listitem>
       </varlistentry>
       
diff --combined po/apt-all.pot
index 749d4784402e08c98d39cfd7536795eb72615046,ad05fbdc85c40387e4ca73ec854cff5c5f5a89f7..a7185fcf31e2316bfc83014f06d1d03f0c8e0aa0
@@@ -7,7 -7,7 +7,7 @@@ msgid "
  msgstr ""
  "Project-Id-Version: PACKAGE VERSION\n"
  "Report-Msgid-Bugs-To: \n"
- "POT-Creation-Date: 2007-06-06 23:30+0200\n"
 -"POT-Creation-Date: 2007-06-08 23:06+0200\n"
++"POT-Creation-Date: 2007-06-08 23:11+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:143
  #, 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:183 cmdline/apt-cache.cc:552 cmdline/apt-cache.cc:640
 +#: cmdline/apt-cache.cc:796 cmdline/apt-cache.cc:1018
 +#: cmdline/apt-cache.cc:1419 cmdline/apt-cache.cc:1570
  #, c-format
  msgid "Unable to locate package %s"
  msgstr ""
  
 -#: cmdline/apt-cache.cc:232
 +#: cmdline/apt-cache.cc:247
  msgid "Total package names : "
  msgstr ""
  
 -#: cmdline/apt-cache.cc:272
 +#: cmdline/apt-cache.cc:287
  msgid "  Normal packages: "
  msgstr ""
  
 -#: cmdline/apt-cache.cc:273
 +#: cmdline/apt-cache.cc:288
  msgid "  Pure virtual packages: "
  msgstr ""
  
 -#: cmdline/apt-cache.cc:274
 +#: cmdline/apt-cache.cc:289
  msgid "  Single virtual packages: "
  msgstr ""
  
 -#: cmdline/apt-cache.cc:275
 +#: cmdline/apt-cache.cc:290
  msgid "  Mixed virtual packages: "
  msgstr ""
  
 -#: cmdline/apt-cache.cc:276
 +#: cmdline/apt-cache.cc:291
  msgid "  Missing: "
  msgstr ""
  
 -#: cmdline/apt-cache.cc:278
 +#: cmdline/apt-cache.cc:293
  msgid "Total distinct versions: "
  msgstr ""
  
 -#: cmdline/apt-cache.cc:280
 +#: cmdline/apt-cache.cc:295
 +msgid "Total Distinct Descriptions: "
 +msgstr ""
 +
 +#: cmdline/apt-cache.cc:297
  msgid "Total dependencies: "
  msgstr ""
  
 -#: cmdline/apt-cache.cc:283
 +#: cmdline/apt-cache.cc:300
  msgid "Total ver/file relations: "
  msgstr ""
  
 -#: cmdline/apt-cache.cc:285
 +#: cmdline/apt-cache.cc:302
 +msgid "Total Desc/File relations: "
 +msgstr ""
 +
 +#: cmdline/apt-cache.cc:304
  msgid "Total Provides mappings: "
  msgstr ""
  
 -#: cmdline/apt-cache.cc:297
 +#: cmdline/apt-cache.cc:316
  msgid "Total globbed strings: "
  msgstr ""
  
 -#: cmdline/apt-cache.cc:311
 +#: cmdline/apt-cache.cc:330
  msgid "Total dependency version space: "
  msgstr ""
  
 -#: cmdline/apt-cache.cc:316
 +#: cmdline/apt-cache.cc:335
  msgid "Total slack space: "
  msgstr ""
  
 -#: cmdline/apt-cache.cc:324
 +#: cmdline/apt-cache.cc:343
  msgid "Total space accounted for: "
  msgstr ""
  
 -#: cmdline/apt-cache.cc:446 cmdline/apt-cache.cc:1189
 +#: cmdline/apt-cache.cc:471 cmdline/apt-cache.cc:1218
  #, c-format
  msgid "Package file %s is out of sync."
  msgstr ""
  
 -#: cmdline/apt-cache.cc:1231
 +#: cmdline/apt-cache.cc:1293
  msgid "You must give exactly one pattern"
  msgstr ""
  
 -#: cmdline/apt-cache.cc:1385
 +#: cmdline/apt-cache.cc:1447
  msgid "No packages found"
  msgstr ""
  
 -#: cmdline/apt-cache.cc:1462
 +#: cmdline/apt-cache.cc:1524
  msgid "Package files:"
  msgstr ""
  
 -#: cmdline/apt-cache.cc:1469 cmdline/apt-cache.cc:1555
 +#: cmdline/apt-cache.cc:1531 cmdline/apt-cache.cc:1617
  msgid "Cache is out of sync, can't x-ref a package file"
  msgstr ""
  
 -#: cmdline/apt-cache.cc:1470
 +#: cmdline/apt-cache.cc:1532
  #, c-format
  msgid "%4i %s\n"
  msgstr ""
  
  #. Show any packages have explicit pins
 -#: cmdline/apt-cache.cc:1482
 +#: cmdline/apt-cache.cc:1544
  msgid "Pinned packages:"
  msgstr ""
  
 -#: cmdline/apt-cache.cc:1494 cmdline/apt-cache.cc:1535
 +#: cmdline/apt-cache.cc:1556 cmdline/apt-cache.cc:1597
  msgid "(not found)"
  msgstr ""
  
  #. Installed version
 -#: cmdline/apt-cache.cc:1515
 +#: cmdline/apt-cache.cc:1577
  msgid "  Installed: "
  msgstr ""
  
 -#: cmdline/apt-cache.cc:1517 cmdline/apt-cache.cc:1525
 +#: cmdline/apt-cache.cc:1579 cmdline/apt-cache.cc:1587
  msgid "(none)"
  msgstr ""
  
  #. Candidate Version
 -#: cmdline/apt-cache.cc:1522
 +#: cmdline/apt-cache.cc:1584
  msgid "  Candidate: "
  msgstr ""
  
 -#: cmdline/apt-cache.cc:1532
 +#: cmdline/apt-cache.cc:1594
  msgid "  Package pin: "
  msgstr ""
  
  #. Show the priority tables
 -#: cmdline/apt-cache.cc:1541
 +#: cmdline/apt-cache.cc:1603
  msgid "  Version table:"
  msgstr ""
  
 -#: cmdline/apt-cache.cc:1556
 +#: cmdline/apt-cache.cc:1618
  #, 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:1714 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70
- #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550
- #: cmdline/apt-get.cc:2564 cmdline/apt-sortpkgs.cc:144
+ #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:551
 -#: cmdline/apt-get.cc:2396 cmdline/apt-sortpkgs.cc:144
++#: cmdline/apt-get.cc:2573 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:1721
  msgid ""
  "Usage: apt-cache [options] command\n"
  "       apt-cache [options] add file1 [file2 ...]\n"
@@@ -251,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:819
  #, c-format
  msgid "Unable to write to %s"
  msgstr ""
  msgid "Cannot get debconf version. Is debconf installed?"
  msgstr ""
  
- #: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341
+ #: ftparchive/apt-ftparchive.cc:168 ftparchive/apt-ftparchive.cc:342
  msgid "Package extension list is too long"
  msgstr ""
  
- #: ftparchive/apt-ftparchive.cc:169 ftparchive/apt-ftparchive.cc:183
- #: ftparchive/apt-ftparchive.cc:206 ftparchive/apt-ftparchive.cc:256
- #: ftparchive/apt-ftparchive.cc:270 ftparchive/apt-ftparchive.cc:292
+ #: ftparchive/apt-ftparchive.cc:170 ftparchive/apt-ftparchive.cc:184
+ #: ftparchive/apt-ftparchive.cc:207 ftparchive/apt-ftparchive.cc:257
+ #: ftparchive/apt-ftparchive.cc:271 ftparchive/apt-ftparchive.cc:293
  #, c-format
  msgid "Error processing directory %s"
  msgstr ""
  
- #: ftparchive/apt-ftparchive.cc:254
+ #: ftparchive/apt-ftparchive.cc:255
  msgid "Source extension list is too long"
  msgstr ""
  
- #: ftparchive/apt-ftparchive.cc:371
+ #: ftparchive/apt-ftparchive.cc:372
  msgid "Error writing header to contents file"
  msgstr ""
  
- #: ftparchive/apt-ftparchive.cc:401
+ #: ftparchive/apt-ftparchive.cc:402
  #, c-format
  msgid "Error processing contents %s"
  msgstr ""
  
- #: ftparchive/apt-ftparchive.cc:556
+ #: ftparchive/apt-ftparchive.cc:557
  msgid ""
  "Usage: apt-ftparchive [options] command\n"
  "Commands: packages binarypath [overridefile [pathprefix]]\n"
  "  -o=?  Set an arbitrary configuration option"
  msgstr ""
  
- #: ftparchive/apt-ftparchive.cc:762
+ #: ftparchive/apt-ftparchive.cc:763
  msgid "No selections matched"
  msgstr ""
  
- #: ftparchive/apt-ftparchive.cc:835
+ #: ftparchive/apt-ftparchive.cc:836
  #, c-format
  msgid "Some files are missing in the package file group `%s'"
  msgstr ""
@@@ -550,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:143 cmdline/apt-get.cc:1655
 -#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1510
++#: cmdline/apt-get.cc:143 cmdline/apt-get.cc:1659
  #, 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:664
  msgid "Correcting dependencies..."
  msgstr ""
  
 -#: cmdline/apt-get.cc:652
 +#: cmdline/apt-get.cc:667
  msgid " failed."
  msgstr ""
  
 -#: cmdline/apt-get.cc:655
 +#: cmdline/apt-get.cc:670
  msgid "Unable to correct dependencies"
  msgstr ""
  
 -#: cmdline/apt-get.cc:658
 +#: cmdline/apt-get.cc:673
  msgid "Unable to minimize the upgrade set"
  msgstr ""
  
 -#: cmdline/apt-get.cc:660
 +#: cmdline/apt-get.cc:675
  msgid " Done"
  msgstr ""
  
 -#: cmdline/apt-get.cc:664
 +#: 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:682
  msgid "Unmet dependencies. Try using -f."
  msgstr ""
  
 -#: cmdline/apt-get.cc:689
 +#: cmdline/apt-get.cc:704
  msgid "WARNING: The following packages cannot be authenticated!"
  msgstr ""
  
 -#: cmdline/apt-get.cc:693
 +#: cmdline/apt-get.cc:708
  msgid "Authentication warning overridden.\n"
  msgstr ""
  
 -#: cmdline/apt-get.cc:700
 +#: cmdline/apt-get.cc:715
  msgid "Install these packages without verification [y/N]? "
  msgstr ""
  
 -#: cmdline/apt-get.cc:702
 +#: 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: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:770
  msgid "Internal error, InstallPackages was called with broken packages!"
  msgstr ""
  
 -#: cmdline/apt-get.cc:764
 +#: 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:790
  msgid "Internal error, Ordering didn't finish"
  msgstr ""
  
- #: cmdline/apt-get.cc:806 cmdline/apt-get.cc:1995 cmdline/apt-get.cc:2028
 -#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1822 cmdline/apt-get.cc:1855
++#: cmdline/apt-get.cc:806 cmdline/apt-get.cc:1999 cmdline/apt-get.cc:2032
  msgid "Unable to lock the download directory"
  msgstr ""
  
- #: cmdline/apt-get.cc:816 cmdline/apt-get.cc:2076 cmdline/apt-get.cc:2312
 -#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1903 cmdline/apt-get.cc:2144
++#: cmdline/apt-get.cc:816 cmdline/apt-get.cc:2080 cmdline/apt-get.cc:2321
  #: apt-pkg/cachefile.cc:67
  msgid "The list of sources could not be read."
  msgstr ""
  
 -#: cmdline/apt-get.cc:816
 +#: 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:836
  #, c-format
  msgid "Need to get %sB/%sB of archives.\n"
  msgstr ""
  
 -#: cmdline/apt-get.cc:824
 +#: 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: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:847
  #, c-format
  msgid "After unpacking %sB disk space will be freed.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:861 cmdline/apt-get.cc:2166
 -#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1998
++#: cmdline/apt-get.cc:861 cmdline/apt-get.cc:2175
  #, c-format
  msgid "Couldn't determine free space in %s"
  msgstr ""
  
 -#: cmdline/apt-get.cc:849
 +#: 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: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:881
  msgid "Yes, do as I say!"
  msgstr ""
  
 -#: cmdline/apt-get.cc:868
 +#: 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:889 cmdline/apt-get.cc:908
  msgid "Abort."
  msgstr ""
  
 -#: cmdline/apt-get.cc:889
 +#: cmdline/apt-get.cc:904
  msgid "Do you want to continue [Y/n]? "
  msgstr ""
  
- #: cmdline/apt-get.cc:976 cmdline/apt-get.cc:1383 cmdline/apt-get.cc:2209
 -#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2041
++#: cmdline/apt-get.cc:976 cmdline/apt-get.cc:1383 cmdline/apt-get.cc:2218
  #, c-format
  msgid "Failed to fetch %s  %s\n"
  msgstr ""
  
 -#: cmdline/apt-get.cc:979
 +#: cmdline/apt-get.cc:994
  msgid "Some files failed to download"
  msgstr ""
  
- #: cmdline/apt-get.cc:995 cmdline/apt-get.cc:2218
 -#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2050
++#: cmdline/apt-get.cc:995 cmdline/apt-get.cc:2227
  msgid "Download complete and in download only mode"
  msgstr ""
  
 -#: cmdline/apt-get.cc:986
 +#: 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:1005
  msgid "--fix-missing and media swapping is not currently supported"
  msgstr ""
  
 -#: cmdline/apt-get.cc:995
 +#: cmdline/apt-get.cc:1010
  msgid "Unable to correct missing packages."
  msgstr ""
  
 -#: cmdline/apt-get.cc:996
 +#: cmdline/apt-get.cc:1011
  msgid "Aborting install."
  msgstr ""
  
 -#: cmdline/apt-get.cc:1030
 +#: 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: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:1073
  #, c-format
  msgid "Package %s is not installed, so not removed\n"
  msgstr ""
  
 -#: cmdline/apt-get.cc:1069
 +#: 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:1096
  msgid " [Installed]"
  msgstr ""
  
 -#: cmdline/apt-get.cc:1086
 +#: cmdline/apt-get.cc:1101
  msgid "You should explicitly select one to install."
  msgstr ""
  
 -#: cmdline/apt-get.cc:1091
 +#: 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:1125
  msgid "However the following packages replace it:"
  msgstr ""
  
 -#: cmdline/apt-get.cc:1113
 +#: cmdline/apt-get.cc:1128
  #, c-format
  msgid "Package %s has no installation candidate"
  msgstr ""
  
 -#: cmdline/apt-get.cc:1133
 +#: 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:1156
  #, c-format
  msgid "%s is already the newest version.\n"
  msgstr ""
  
 -#: cmdline/apt-get.cc:1168
 +#: 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:1187
  #, c-format
  msgid "Version '%s' for '%s' was not found"
  msgstr ""
  
 -#: cmdline/apt-get.cc:1176
 +#: 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:1330
  msgid "The update command takes no arguments"
  msgstr ""
  
 -#: cmdline/apt-get.cc:1326
 +#: cmdline/apt-get.cc:1343
  msgid "Unable to lock the list directory"
  msgstr ""
  
 -#: cmdline/apt-get.cc:1384
 +#: cmdline/apt-get.cc:1410 cmdline/apt-get.cc:1412
  msgid ""
  "Some index files failed to download, they have been ignored, or old ones "
  "used instead."
  msgstr ""
  
 -#: cmdline/apt-get.cc:1403
 +#: cmdline/apt-get.cc:1433
 +msgid "We are not supposed to delete stuff, can't start AutoRemover"
 +msgstr ""
 +
 +#: cmdline/apt-get.cc:1465
 +msgid ""
 +"The following packages were automatically installed and are no longer "
 +"required:"
 +msgstr ""
 +
 +#: cmdline/apt-get.cc:1467
 +msgid "Use 'apt-get autoremove' to remove them."
 +msgstr ""
 +
 +#: cmdline/apt-get.cc:1472
 +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:1475 cmdline/apt-get.cc:1736
++#: cmdline/apt-get.cc:1475 cmdline/apt-get.cc:1740
 +msgid "The following information may help to resolve the situation:"
 +msgstr ""
 +
 +#: cmdline/apt-get.cc:1479
 +msgid "Internal Error, AutoRemover broke stuff"
 +msgstr ""
 +
 +#: cmdline/apt-get.cc:1498
  msgid "Internal error, AllUpgrade broke stuff"
  msgstr ""
  
 -#: cmdline/apt-get.cc:1497 cmdline/apt-get.cc:1533
 +#: cmdline/apt-get.cc:1543
 +#, c-format
 +msgid "Couldn't find task %s"
 +msgstr ""
 +
- #: cmdline/apt-get.cc:1642 cmdline/apt-get.cc:1678
++#: cmdline/apt-get.cc:1646 cmdline/apt-get.cc:1682
  #, c-format
  msgid "Couldn't find package %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:1665
 -#: cmdline/apt-get.cc:1520
++#: cmdline/apt-get.cc:1669
  #, c-format
  msgid "Note, selecting %s for regex '%s'\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:1695
 -#: cmdline/apt-get.cc:1550
++#: cmdline/apt-get.cc:1699
 +#, c-format
 +msgid "%s set to manual installed.\n"
 +msgstr ""
 +
- #: cmdline/apt-get.cc:1708
++#: cmdline/apt-get.cc:1712
  msgid "You might want to run `apt-get -f install' to correct these:"
  msgstr ""
  
- #: cmdline/apt-get.cc:1711
 -#: cmdline/apt-get.cc:1553
++#: cmdline/apt-get.cc:1715
  msgid ""
  "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
  "solution)."
  msgstr ""
  
- #: cmdline/apt-get.cc:1723
 -#: cmdline/apt-get.cc:1565
++#: cmdline/apt-get.cc:1727
  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:1731
 -#: cmdline/apt-get.cc:1573
++#: cmdline/apt-get.cc:1735
  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:1739
 -#: cmdline/apt-get.cc:1578
 -msgid "The following information may help to resolve the situation:"
 -msgstr ""
 -
 -#: cmdline/apt-get.cc:1581
++#: cmdline/apt-get.cc:1743
  msgid "Broken packages"
  msgstr ""
  
- #: cmdline/apt-get.cc:1770
 -#: cmdline/apt-get.cc:1607
++#: cmdline/apt-get.cc:1774
  msgid "The following extra packages will be installed:"
  msgstr ""
  
- #: cmdline/apt-get.cc:1859
 -#: cmdline/apt-get.cc:1696
++#: cmdline/apt-get.cc:1863
  msgid "Suggested packages:"
  msgstr ""
  
- #: cmdline/apt-get.cc:1860
 -#: cmdline/apt-get.cc:1697
++#: cmdline/apt-get.cc:1864
  msgid "Recommended packages:"
  msgstr ""
  
- #: cmdline/apt-get.cc:1888
 -#: cmdline/apt-get.cc:1717
++#: cmdline/apt-get.cc:1892
  msgid "Calculating upgrade... "
  msgstr ""
  
- #: cmdline/apt-get.cc:1891 methods/ftp.cc:702 methods/connect.cc:101
 -#: cmdline/apt-get.cc:1720 methods/ftp.cc:702 methods/connect.cc:101
++#: cmdline/apt-get.cc:1895 methods/ftp.cc:702 methods/connect.cc:101
  msgid "Failed"
  msgstr ""
  
- #: cmdline/apt-get.cc:1896
 -#: cmdline/apt-get.cc:1725
++#: cmdline/apt-get.cc:1900
  msgid "Done"
  msgstr ""
  
- #: cmdline/apt-get.cc:1963 cmdline/apt-get.cc:1971
 -#: cmdline/apt-get.cc:1790 cmdline/apt-get.cc:1798
++#: cmdline/apt-get.cc:1967 cmdline/apt-get.cc:1975
  msgid "Internal error, problem resolver broke stuff"
  msgstr ""
  
- #: cmdline/apt-get.cc:2071
 -#: cmdline/apt-get.cc:1898
++#: cmdline/apt-get.cc:2075
  msgid "Must specify at least one package to fetch source for"
  msgstr ""
  
- #: cmdline/apt-get.cc:2101 cmdline/apt-get.cc:2330
 -#: cmdline/apt-get.cc:1928 cmdline/apt-get.cc:2162
++#: cmdline/apt-get.cc:2105 cmdline/apt-get.cc:2339
  #, c-format
  msgid "Unable to find a source package for %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:2145
 -#: cmdline/apt-get.cc:1977
++#: cmdline/apt-get.cc:2154
  #, c-format
  msgid "Skipping already downloaded file '%s'\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2169
 -#: cmdline/apt-get.cc:2001
++#: cmdline/apt-get.cc:2178
  #, c-format
  msgid "You don't have enough free space in %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:2174
 -#: cmdline/apt-get.cc:2006
++#: cmdline/apt-get.cc:2183
  #, c-format
  msgid "Need to get %sB/%sB of source archives.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2177
 -#: cmdline/apt-get.cc:2009
++#: cmdline/apt-get.cc:2186
  #, c-format
  msgid "Need to get %sB of source archives.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2183
 -#: cmdline/apt-get.cc:2015
++#: cmdline/apt-get.cc:2192
  #, c-format
  msgid "Fetch source %s\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2214
 -#: cmdline/apt-get.cc:2046
++#: cmdline/apt-get.cc:2223
  msgid "Failed to fetch some archives."
  msgstr ""
  
- #: cmdline/apt-get.cc:2242
 -#: cmdline/apt-get.cc:2074
++#: cmdline/apt-get.cc:2251
  #, c-format
  msgid "Skipping unpack of already unpacked source in %s\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2254
 -#: cmdline/apt-get.cc:2086
++#: cmdline/apt-get.cc:2263
  #, c-format
  msgid "Unpack command '%s' failed.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2255
 -#: cmdline/apt-get.cc:2087
++#: cmdline/apt-get.cc:2264
  #, c-format
  msgid "Check if the 'dpkg-dev' package is installed.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2272
 -#: cmdline/apt-get.cc:2104
++#: cmdline/apt-get.cc:2281
  #, c-format
  msgid "Build command '%s' failed.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2291
 -#: cmdline/apt-get.cc:2123
++#: cmdline/apt-get.cc:2300
  msgid "Child process failed"
  msgstr ""
  
- #: cmdline/apt-get.cc:2307
 -#: cmdline/apt-get.cc:2139
++#: cmdline/apt-get.cc:2316
  msgid "Must specify at least one package to check builddeps for"
  msgstr ""
  
- #: cmdline/apt-get.cc:2335
 -#: cmdline/apt-get.cc:2167
++#: cmdline/apt-get.cc:2344
  #, c-format
  msgid "Unable to get build-dependency information for %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:2355
 -#: cmdline/apt-get.cc:2187
++#: cmdline/apt-get.cc:2364
  #, c-format
  msgid "%s has no build depends.\n"
  msgstr ""
  
- #: cmdline/apt-get.cc:2407
 -#: cmdline/apt-get.cc:2239
++#: cmdline/apt-get.cc:2416
  #, c-format
  msgid ""
  "%s dependency for %s cannot be satisfied because the package %s cannot be "
  "found"
  msgstr ""
  
- #: cmdline/apt-get.cc:2459
 -#: cmdline/apt-get.cc:2291
++#: cmdline/apt-get.cc:2468
  #, 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:2494
 -#: cmdline/apt-get.cc:2326
++#: cmdline/apt-get.cc:2503
  #, c-format
  msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
  msgstr ""
  
- #: cmdline/apt-get.cc:2519
 -#: cmdline/apt-get.cc:2351
++#: cmdline/apt-get.cc:2528
  #, c-format
  msgid "Failed to satisfy %s dependency for %s: %s"
  msgstr ""
  
- #: cmdline/apt-get.cc:2533
 -#: cmdline/apt-get.cc:2365
++#: cmdline/apt-get.cc:2542
  #, c-format
  msgid "Build-dependencies for %s could not be satisfied."
  msgstr ""
  
- #: cmdline/apt-get.cc:2537
 -#: cmdline/apt-get.cc:2369
++#: cmdline/apt-get.cc:2546
  msgid "Failed to process build dependencies"
  msgstr ""
  
- #: cmdline/apt-get.cc:2569
 -#: cmdline/apt-get.cc:2401
++#: cmdline/apt-get.cc:2578
  msgid "Supported modules:"
  msgstr ""
  
- #: cmdline/apt-get.cc:2610
 -#: cmdline/apt-get.cc:2442
++#: cmdline/apt-get.cc:2619
  msgid ""
  "Usage: apt-get [options] command\n"
  "       apt-get [options] install|remove pkg1 [pkg2 ...]\n"
  "   upgrade - Perform an upgrade\n"
  "   install - Install new packages (pkg is libc6 not libc6.deb)\n"
  "   remove - Remove packages\n"
+ "   purge - Remove and purge packages\n"
  "   source - Download source archives\n"
  "   build-dep - Configure build-dependencies for source packages\n"
  "   dist-upgrade - Distribution upgrade, see apt-get(8)\n"
@@@ -1402,9 -1361,9 +1403,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:752
 +#: apt-pkg/pkgcachegen.cc:821 apt-pkg/pkgcachegen.cc:826
 +#: apt-pkg/pkgcachegen.cc:949
  msgid "Reading package lists"
  msgstr ""
  
@@@ -1533,12 -1492,11 +1534,12 @@@ msgid "File not found
  msgstr ""
  
  #: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:141
 -#: methods/gzip.cc:150
 +#: methods/gzip.cc:150 methods/rred.cc:234 methods/rred.cc:243
  msgid "Failed to stat"
  msgstr ""
  
  #: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:147
 +#: methods/rred.cc:240
  msgid "Failed to set modification time"
  msgstr ""
  
@@@ -1598,7 -1556,7 +1599,7 @@@ msgstr "
  msgid "Server closed the connection"
  msgstr ""
  
- #: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:471 methods/rsh.cc:190
+ #: methods/ftp.cc:338 apt-pkg/contrib/fileutl.cc:472 methods/rsh.cc:190
  msgid "Read error"
  msgstr ""
  
@@@ -1610,7 -1568,7 +1611,7 @@@ msgstr "
  msgid "Protocol corruption"
  msgstr ""
  
- #: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:510 methods/rsh.cc:232
+ #: methods/ftp.cc:446 apt-pkg/contrib/fileutl.cc:511 methods/rsh.cc:232
  msgid "Write error"
  msgstr ""
  
@@@ -1664,7 -1622,7 +1665,7 @@@ msgstr "
  msgid "Unable to accept connection"
  msgstr ""
  
 -#: methods/ftp.cc:864 methods/http.cc:959 methods/rsh.cc:303
 +#: methods/ftp.cc:864 methods/http.cc:958 methods/rsh.cc:303
  msgid "Problem hashing file"
  msgstr ""
  
@@@ -1795,76 -1753,76 +1796,76 @@@ msgstr "
  msgid "Read error from %s process"
  msgstr ""
  
 -#: methods/http.cc:377
 +#: methods/http.cc:376
  msgid "Waiting for headers"
  msgstr ""
  
 -#: methods/http.cc:523
 +#: methods/http.cc:522
  #, c-format
  msgid "Got a single header line over %u chars"
  msgstr ""
  
 -#: methods/http.cc:531
 +#: methods/http.cc:530
  msgid "Bad header line"
  msgstr ""
  
 -#: methods/http.cc:550 methods/http.cc:557
 +#: methods/http.cc:549 methods/http.cc:556
  msgid "The HTTP server sent an invalid reply header"
  msgstr ""
  
 -#: methods/http.cc:586
 +#: methods/http.cc:585
  msgid "The HTTP server sent an invalid Content-Length header"
  msgstr ""
  
 -#: methods/http.cc:601
 +#: methods/http.cc:600
  msgid "The HTTP server sent an invalid Content-Range header"
  msgstr ""
  
 -#: methods/http.cc:603
 +#: methods/http.cc:602
  msgid "This HTTP server has broken range support"
  msgstr ""
  
 -#: methods/http.cc:627
 +#: methods/http.cc:626
  msgid "Unknown date format"
  msgstr ""
  
 -#: methods/http.cc:774
 +#: methods/http.cc:773
  msgid "Select failed"
  msgstr ""
  
 -#: methods/http.cc:779
 +#: methods/http.cc:778
  msgid "Connection timed out"
  msgstr ""
  
 -#: methods/http.cc:802
 +#: methods/http.cc:801
  msgid "Error writing to output file"
  msgstr ""
  
 -#: methods/http.cc:833
 +#: methods/http.cc:832
  msgid "Error writing to file"
  msgstr ""
  
 -#: methods/http.cc:861
 +#: methods/http.cc:860
  msgid "Error writing to the file"
  msgstr ""
  
 -#: methods/http.cc:875
 +#: methods/http.cc:874
  msgid "Error reading from server. Remote end closed connection"
  msgstr ""
  
 -#: methods/http.cc:877
 +#: methods/http.cc:876
  msgid "Error reading from server"
  msgstr ""
  
 -#: methods/http.cc:1108
 +#: methods/http.cc:1107
  msgid "Bad header data"
  msgstr ""
  
 -#: methods/http.cc:1125
 +#: methods/http.cc:1124
  msgid "Connection failed"
  msgstr ""
  
 -#: methods/http.cc:1216
 +#: methods/http.cc:1215
  msgid "Internal error"
  msgstr ""
  
@@@ -1877,7 -1835,7 +1878,7 @@@ msgstr "
  msgid "Couldn't make mmap of %lu bytes"
  msgstr ""
  
- #: apt-pkg/contrib/strutl.cc:981
 -#: apt-pkg/contrib/strutl.cc:939
++#: apt-pkg/contrib/strutl.cc:982
  #, c-format
  msgid "Selection %s not found"
  msgstr ""
@@@ -2007,172 -1965,154 +2008,172 @@@ msgstr "
  msgid "Failed to stat the cdrom"
  msgstr ""
  
- #: apt-pkg/contrib/fileutl.cc:82
+ #: apt-pkg/contrib/fileutl.cc:83
  #, c-format
  msgid "Not using locking for read only lock file %s"
  msgstr ""
  
- #: apt-pkg/contrib/fileutl.cc:87
+ #: apt-pkg/contrib/fileutl.cc:88
  #, c-format
  msgid "Could not open lock file %s"
  msgstr ""
  
- #: apt-pkg/contrib/fileutl.cc:105
+ #: apt-pkg/contrib/fileutl.cc:106
  #, c-format
  msgid "Not using locking for nfs mounted lock file %s"
  msgstr ""
  
- #: apt-pkg/contrib/fileutl.cc:109
+ #: apt-pkg/contrib/fileutl.cc:110
  #, c-format
  msgid "Could not get lock %s"
  msgstr ""
  
- #: apt-pkg/contrib/fileutl.cc:377
+ #: apt-pkg/contrib/fileutl.cc:378
  #, c-format
  msgid "Waited for %s but it wasn't there"
  msgstr ""
  
- #: apt-pkg/contrib/fileutl.cc:387
+ #: apt-pkg/contrib/fileutl.cc:388
  #, c-format
  msgid "Sub-process %s received a segmentation fault."
  msgstr ""
  
- #: apt-pkg/contrib/fileutl.cc:390
+ #: apt-pkg/contrib/fileutl.cc:391
  #, c-format
  msgid "Sub-process %s returned an error code (%u)"
  msgstr ""
  
- #: apt-pkg/contrib/fileutl.cc:392
+ #: apt-pkg/contrib/fileutl.cc:393
  #, c-format
  msgid "Sub-process %s exited unexpectedly"
  msgstr ""
  
- #: apt-pkg/contrib/fileutl.cc:436
+ #: apt-pkg/contrib/fileutl.cc:437
  #, c-format
  msgid "Could not open file %s"
  msgstr ""
  
- #: apt-pkg/contrib/fileutl.cc:492
+ #: apt-pkg/contrib/fileutl.cc:493
  #, c-format
  msgid "read, still have %lu to read but none left"
  msgstr ""
  
- #: apt-pkg/contrib/fileutl.cc:522
+ #: apt-pkg/contrib/fileutl.cc:523
  #, c-format
  msgid "write, still have %lu to write but couldn't"
  msgstr ""
  
- #: apt-pkg/contrib/fileutl.cc:597
+ #: apt-pkg/contrib/fileutl.cc:598
  msgid "Problem closing the file"
  msgstr ""
  
- #: apt-pkg/contrib/fileutl.cc:603
+ #: apt-pkg/contrib/fileutl.cc:604
  msgid "Problem unlinking the file"
  msgstr ""
  
- #: apt-pkg/contrib/fileutl.cc:614
+ #: apt-pkg/contrib/fileutl.cc:615
  msgid "Problem syncing the file"
  msgstr ""
  
 -#: apt-pkg/pkgcache.cc:126
 +#: apt-pkg/pkgcache.cc:132
  msgid "Empty package cache"
  msgstr ""
  
 -#: apt-pkg/pkgcache.cc:132
 +#: apt-pkg/pkgcache.cc:138
  msgid "The package cache file is corrupted"
  msgstr ""
  
 -#: apt-pkg/pkgcache.cc:137
 +#: apt-pkg/pkgcache.cc:143
  msgid "The package cache file is an incompatible version"
  msgstr ""
  
 -#: apt-pkg/pkgcache.cc:142
 +#: apt-pkg/pkgcache.cc:148
  #, c-format
  msgid "This APT does not support the versioning system '%s'"
  msgstr ""
  
 -#: apt-pkg/pkgcache.cc:147
 +#: apt-pkg/pkgcache.cc:153
  msgid "The package cache was built for a different architecture"
  msgstr ""
  
 -#: apt-pkg/pkgcache.cc:218
 +#: apt-pkg/pkgcache.cc:224
  msgid "Depends"
  msgstr ""
  
 -#: apt-pkg/pkgcache.cc:218
 +#: apt-pkg/pkgcache.cc:224
  msgid "PreDepends"
  msgstr ""
  
 -#: apt-pkg/pkgcache.cc:218
 +#: apt-pkg/pkgcache.cc:224
  msgid "Suggests"
  msgstr ""
  
 -#: apt-pkg/pkgcache.cc:219
 +#: apt-pkg/pkgcache.cc:225
  msgid "Recommends"
  msgstr ""
  
 -#: apt-pkg/pkgcache.cc:219
 +#: apt-pkg/pkgcache.cc:225
  msgid "Conflicts"
  msgstr ""
  
 -#: apt-pkg/pkgcache.cc:219
 +#: apt-pkg/pkgcache.cc:225
  msgid "Replaces"
  msgstr ""
  
 -#: apt-pkg/pkgcache.cc:220
 +#: apt-pkg/pkgcache.cc:226
  msgid "Obsoletes"
  msgstr ""
  
 -#: apt-pkg/pkgcache.cc:231
 +#: apt-pkg/pkgcache.cc:226
 +msgid "Breaks"
 +msgstr ""
 +
 +#: apt-pkg/pkgcache.cc:237
  msgid "important"
  msgstr ""
  
 -#: apt-pkg/pkgcache.cc:231
 +#: apt-pkg/pkgcache.cc:237
  msgid "required"
  msgstr ""
  
 -#: apt-pkg/pkgcache.cc:231
 +#: apt-pkg/pkgcache.cc:237
  msgid "standard"
  msgstr ""
  
 -#: apt-pkg/pkgcache.cc:232
 +#: apt-pkg/pkgcache.cc:238
  msgid "optional"
  msgstr ""
  
 -#: apt-pkg/pkgcache.cc:232
 +#: apt-pkg/pkgcache.cc:238
  msgid "extra"
  msgstr ""
  
 -#: apt-pkg/depcache.cc:61 apt-pkg/depcache.cc:90
 +#: apt-pkg/depcache.cc:98 apt-pkg/depcache.cc:127
  msgid "Building dependency tree"
  msgstr ""
  
 -#: apt-pkg/depcache.cc:62
 +#: apt-pkg/depcache.cc:99
  msgid "Candidate versions"
  msgstr ""
  
 -#: apt-pkg/depcache.cc:91
 +#: apt-pkg/depcache.cc:128
  msgid "Dependency generation"
  msgstr ""
  
 +#: apt-pkg/depcache.cc:149 apt-pkg/depcache.cc:168 apt-pkg/depcache.cc:172
 +msgid "Reading state information"
 +msgstr ""
 +
 +#: apt-pkg/depcache.cc:196
 +#, c-format
 +msgid "Failed to open StateFile %s"
 +msgstr ""
 +
 +#: apt-pkg/depcache.cc:202
 +#, c-format
 +msgid "Failed to write temporary StateFile %s"
 +msgstr ""
 +
  #: apt-pkg/tagfile.cc:106
  #, c-format
  msgid "Unable to parse package file %s (1)"
@@@ -2213,7 -2153,7 +2214,7 @@@ msgstr "
  msgid "Opening %s"
  msgstr ""
  
- #: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:450
 -#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:427
++#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:451
  #, c-format
  msgid "Line %u too long in source list %s."
  msgstr ""
@@@ -2233,7 -2173,7 +2234,7 @@@ msgstr "
  msgid "Malformed line %u in source list %s (vendor id)"
  msgstr ""
  
 -#: apt-pkg/packagemanager.cc:402
 +#: apt-pkg/packagemanager.cc:403
  #, c-format
  msgid ""
  "This installation run will require temporarily removing the essential "
@@@ -2246,19 -2186,19 +2247,19 @@@ msgstr "
  msgid "Index file type '%s' is not supported"
  msgstr ""
  
- #: apt-pkg/algorithms.cc:248
 -#: apt-pkg/algorithms.cc:243
++#: apt-pkg/algorithms.cc:254
  #, c-format
  msgid ""
  "The package %s needs to be reinstalled, but I can't find an archive for it."
  msgstr ""
  
- #: apt-pkg/algorithms.cc:1104
 -#: apt-pkg/algorithms.cc:1068
++#: apt-pkg/algorithms.cc:1110
  msgid ""
  "Error, pkgProblemResolver::Resolve generated breaks, this may be caused by "
  "held packages."
  msgstr ""
  
- #: apt-pkg/algorithms.cc:1106
 -#: apt-pkg/algorithms.cc:1070
++#: apt-pkg/algorithms.cc:1112
  msgid "Unable to correct problems, you have held broken packages."
  msgstr ""
  
@@@ -2294,17 -2234,17 +2295,17 @@@ msgstr "
  msgid "Method %s did not start correctly"
  msgstr ""
  
 -#: apt-pkg/acquire-worker.cc:377
 +#: apt-pkg/acquire-worker.cc:384
  #, c-format
  msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
  msgstr ""
  
- #: apt-pkg/init.cc:125
 -#: apt-pkg/init.cc:121
++#: apt-pkg/init.cc:126
  #, c-format
  msgid "Packaging system '%s' is not supported"
  msgstr ""
  
- #: apt-pkg/init.cc:141
 -#: apt-pkg/init.cc:137
++#: apt-pkg/init.cc:142
  msgid "Unable to determine a suitable packaging system type"
  msgstr ""
  
@@@ -2338,134 -2278,119 +2339,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:134
  #, c-format
  msgid "Error occurred while processing %s (UsePackage1)"
  msgstr ""
  
 -#: apt-pkg/pkgcachegen.cc:150
 +#: 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:186
  #, c-format
  msgid "Error occurred while processing %s (NewFileVer1)"
  msgstr ""
  
 -#: apt-pkg/pkgcachegen.cc:184
 +#: apt-pkg/pkgcachegen.cc:217
  #, c-format
  msgid "Error occurred while processing %s (NewVersion1)"
  msgstr ""
  
 -#: apt-pkg/pkgcachegen.cc:188
 +#: apt-pkg/pkgcachegen.cc:221
  #, c-format
  msgid "Error occurred while processing %s (UsePackage3)"
  msgstr ""
  
 -#: apt-pkg/pkgcachegen.cc:192
 +#: apt-pkg/pkgcachegen.cc:225
  #, c-format
  msgid "Error occurred while processing %s (NewVersion2)"
  msgstr ""
  
 -#: apt-pkg/pkgcachegen.cc:207
 +#: 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:258
  msgid "Wow, you exceeded the number of versions this APT is capable of."
  msgstr ""
  
 -#: apt-pkg/pkgcachegen.cc:213
 +#: 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:292
  #, c-format
  msgid "Error occurred while processing %s (FindPkg)"
  msgstr ""
  
 -#: apt-pkg/pkgcachegen.cc:254
 +#: apt-pkg/pkgcachegen.cc:305
  #, c-format
  msgid "Error occurred while processing %s (CollectFileProvides)"
  msgstr ""
  
 -#: apt-pkg/pkgcachegen.cc:260
 +#: 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:682
  #, c-format
  msgid "Couldn't stat source package list %s"
  msgstr ""
  
 -#: apt-pkg/pkgcachegen.cc:658
 +#: apt-pkg/pkgcachegen.cc:767
  msgid "Collecting File Provides"
  msgstr ""
  
 -#: apt-pkg/pkgcachegen.cc:785 apt-pkg/pkgcachegen.cc:792
 +#: apt-pkg/pkgcachegen.cc:894 apt-pkg/pkgcachegen.cc:901
  msgid "IO Error saving source cache"
  msgstr ""
  
 -#: apt-pkg/acquire-item.cc:126
 +#: apt-pkg/acquire-item.cc:127
  #, c-format
  msgid "rename failed, %s (%s -> %s)."
  msgstr ""
  
- #: apt-pkg/acquire-item.cc:405 apt-pkg/acquire-item.cc:662
- #: apt-pkg/acquire-item.cc:1412
 -#: apt-pkg/acquire-item.cc:243 apt-pkg/acquire-item.cc:952
++#: apt-pkg/acquire-item.cc:406 apt-pkg/acquire-item.cc:661
++#: apt-pkg/acquire-item.cc:1411
  msgid "MD5Sum mismatch"
  msgstr ""
  
- #: apt-pkg/acquire-item.cc:1107
 -#: apt-pkg/acquire-item.cc:647
++#: apt-pkg/acquire-item.cc:1106
  msgid "There is no public key available for the following key IDs:\n"
  msgstr ""
  
- #: apt-pkg/acquire-item.cc:1220
 -#: apt-pkg/acquire-item.cc:760
++#: apt-pkg/acquire-item.cc:1219
  #, 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:1279
 -#: apt-pkg/acquire-item.cc:819
++#: apt-pkg/acquire-item.cc:1278
  #, 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:1315
 -#: apt-pkg/acquire-item.cc:855
++#: apt-pkg/acquire-item.cc:1314
  #, c-format
  msgid ""
  "The package index files are corrupted. No Filename: field for package %s."
  msgstr ""
  
- #: apt-pkg/acquire-item.cc:1402
 -#: apt-pkg/acquire-item.cc:942
++#: apt-pkg/acquire-item.cc:1401
  msgid "Size mismatch"
  msgstr ""
  
  msgid "Vendor block %s contains no fingerprint"
  msgstr ""
  
- #: apt-pkg/cdrom.cc:531
 -#: apt-pkg/cdrom.cc:508
++#: apt-pkg/cdrom.cc:532
  #, c-format
  msgid ""
  "Using CD-ROM mount point %s\n"
  "Mounting CD-ROM\n"
  msgstr ""
  
- #: apt-pkg/cdrom.cc:540 apt-pkg/cdrom.cc:622
 -#: apt-pkg/cdrom.cc:517 apt-pkg/cdrom.cc:599
++#: apt-pkg/cdrom.cc:541 apt-pkg/cdrom.cc:623
  msgid "Identifying.. "
  msgstr ""
  
- #: apt-pkg/cdrom.cc:565
 -#: apt-pkg/cdrom.cc:542
++#: apt-pkg/cdrom.cc:566
  #, c-format
  msgid "Stored label: %s \n"
  msgstr ""
  
- #: apt-pkg/cdrom.cc:585
 -#: apt-pkg/cdrom.cc:562
++#: apt-pkg/cdrom.cc:586
  #, c-format
  msgid "Using CD-ROM mount point %s\n"
  msgstr ""
  
- #: apt-pkg/cdrom.cc:603
 -#: apt-pkg/cdrom.cc:580
++#: apt-pkg/cdrom.cc:604
  msgid "Unmounting CD-ROM\n"
  msgstr ""
  
- #: apt-pkg/cdrom.cc:607
 -#: apt-pkg/cdrom.cc:584
++#: apt-pkg/cdrom.cc:608
  msgid "Waiting for disc...\n"
  msgstr ""
  
  #. Mount the new CDROM
- #: apt-pkg/cdrom.cc:615
 -#: apt-pkg/cdrom.cc:592
++#: apt-pkg/cdrom.cc:616
  msgid "Mounting CD-ROM...\n"
  msgstr ""
  
- #: apt-pkg/cdrom.cc:633
 -#: apt-pkg/cdrom.cc:610
++#: apt-pkg/cdrom.cc:634
  msgid "Scanning disc for index files..\n"
  msgstr ""
  
- #: apt-pkg/cdrom.cc:673
 -#: apt-pkg/cdrom.cc:648
++#: apt-pkg/cdrom.cc:674
  #, 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:684
++#: apt-pkg/cdrom.cc:711
  #, c-format
  msgid "Found label '%s'\n"
  msgstr ""
  
- #: apt-pkg/cdrom.cc:739
 -#: apt-pkg/cdrom.cc:713
++#: apt-pkg/cdrom.cc:740
  msgid "That is not a valid name, try again.\n"
  msgstr ""
  
- #: apt-pkg/cdrom.cc:755
 -#: apt-pkg/cdrom.cc:729
++#: apt-pkg/cdrom.cc:756
  #, c-format
  msgid ""
  "This disc is called: \n"
  "'%s'\n"
  msgstr ""
  
- #: apt-pkg/cdrom.cc:759
 -#: apt-pkg/cdrom.cc:733
++#: apt-pkg/cdrom.cc:760
  msgid "Copying package lists..."
  msgstr ""
  
- #: apt-pkg/cdrom.cc:785
 -#: apt-pkg/cdrom.cc:757
++#: apt-pkg/cdrom.cc:786
  msgid "Writing new source list\n"
  msgstr ""
  
- #: apt-pkg/cdrom.cc:794
 -#: apt-pkg/cdrom.cc:766
++#: apt-pkg/cdrom.cc:795
  msgid "Source list entries for this disc are:\n"
  msgstr ""
  
- #: apt-pkg/cdrom.cc:836
 -#: apt-pkg/cdrom.cc:808
++#: apt-pkg/cdrom.cc:837
  msgid "Unmounting CD-ROM...\n"
  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 ""
@@@ -2621,10 -2544,6 +2622,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 ""