]> git.saurik.com Git - apt.git/commitdiff
initial Breaks implementation
authorIan Jackson <ian@liberator>
Fri, 25 Aug 2006 14:39:15 +0000 (15:39 +0100)
committerIan Jackson <ian@liberator>
Fri, 25 Aug 2006 14:39:15 +0000 (15:39 +0100)
13 files changed:
apt-pkg/algorithms.cc
apt-pkg/deb/deblistparser.cc
apt-pkg/depcache.cc
apt-pkg/orderlist.cc
apt-pkg/pkgcache.cc
apt-pkg/pkgcache.h
apt-pkg/tagfile.cc
cmdline/apt-cache.cc
debian/changelog
doc/apt-cache.8.xml
doc/cache.sgml
doc/dpkg-tech.sgml
po/apt-all.pot

index ac9d3be0bea35a05c93d4545c1996c8c7a91f349..f50c52a3297842910d60b45a661b3b00adf54583 100644 (file)
@@ -102,6 +102,7 @@ bool pkgSimulate::Install(PkgIterator iPkg,string /*File*/)
         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)
          {
@@ -151,6 +152,8 @@ bool pkgSimulate::Configure(PkgIterator iPkg)
            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();
       }            
@@ -651,6 +654,7 @@ bool pkgProblemResolver::DoUpgrade(pkgCache::PkgIterator Pkg)
               /* 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;
               
@@ -873,6 +877,7 @@ bool pkgProblemResolver::Resolve(bool BrokenFix)
            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)
            {          
@@ -903,6 +908,7 @@ bool pkgProblemResolver::Resolve(bool BrokenFix)
               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..
@@ -968,7 +974,21 @@ bool pkgProblemResolver::Resolve(bool BrokenFix)
                      (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;
+                    continue;
+                 }
+
                  // Skip adding to the kill list if it is protected
                  if ((Flags[Pkg->ID] & Protected) != 0)
                     continue;
@@ -989,6 +1009,7 @@ bool pkgProblemResolver::Resolve(bool BrokenFix)
            // 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)
            {
index c2b26b5eb5322a8f4543a89bea742bf65004ef6c..074abea6d0ae76f5ccc4ff37ae0ede852cad91ba 100644 (file)
@@ -105,6 +105,8 @@ bool debListParser::NewVersion(pkgCache::VerIterator Ver)
       return false;
    if (ParseDepends(Ver,"Conflicts",pkgCache::Dep::Conflicts) == false)
       return false;
+   if (ParseDepends(Ver,"Breaks",pkgCache::Dep::DpkgBreaks) == false)
+      return false;
    if (ParseDepends(Ver,"Replaces",pkgCache::Dep::Replaces) == false)
       return false;
 
@@ -193,6 +195,7 @@ unsigned short debListParser::VersionHash()
 //                            "Suggests",
 //                            "Recommends",
                             "Conflicts",
+                            "Breaks",
                             "Replaces",0};
    unsigned long Result = INIT_FCS;
    char S[1024];
index 78c929d6203051fc5cebc63a38481bfdd0c4e46a..4d193dc2e81fd0fc19e567cd15f46d10278ba145 100644 (file)
@@ -273,7 +273,7 @@ bool pkgDepCache::CheckDep(DepIterator Dep,int Type,PkgIterator &Res)
       we allow it anyhow because dpkg does. Technically it is a packaging
       bug. Conflicts may never self match */
    if (Dep.TargetPkg() != Dep.ParentPkg() || 
-       (Dep->Type != Dep::Conflicts && Dep->Type != Dep::Obsoletes))
+       (Dep->Type != Dep::Conflicts && Dep->Type != Dep::DpkgBreaks && Dep->Type != Dep::Obsoletes))
    {
       PkgIterator Pkg = Dep.TargetPkg();
       // Check the base package
@@ -303,7 +303,8 @@ bool pkgDepCache::CheckDep(DepIterator Dep,int Type,PkgIterator &Res)
    {
       /* Provides may never be applied against the same package if it is
          a conflicts. See the comment above. */
-      if (P.OwnerPkg() == Pkg && Dep->Type == Dep::Conflicts)
+      if (P.OwnerPkg() == Pkg &&
+         (Dep->Type == Dep::Conflicts || Dep->Type == Dep::DpkgBreaks))
         continue;
       
       // Check if the provides is a hit
@@ -457,7 +458,9 @@ void pkgDepCache::BuildGroupOrs(VerIterator const &V)
 
       /* Invert for Conflicts. We have to do this twice to get the
          right sense for a conflicts group */
-      if (D->Type == Dep::Conflicts || D->Type == Dep::Obsoletes)
+      if (D->Type == Dep::Conflicts ||
+         D->Type == Dep::DpkgBreaks ||
+         D->Type == Dep::Obsoletes)
         State = ~State;
       
       // Add to the group if we are within an or..
@@ -468,7 +471,9 @@ void pkgDepCache::BuildGroupOrs(VerIterator const &V)
         Group = 0;
       
       // Invert for Conflicts
-      if (D->Type == Dep::Conflicts || D->Type == Dep::Obsoletes)
+      if (D->Type == Dep::Conflicts ||
+         D->Type == Dep::DpkgBreaks ||
+         D->Type == Dep::Obsoletes)
         State = ~State;
    }    
 }
@@ -601,7 +606,9 @@ void pkgDepCache::Update(OpProgress *Prog)
               Group = 0;
 
            // Invert for Conflicts
-           if (D->Type == Dep::Conflicts || D->Type == Dep::Obsoletes)
+           if (D->Type == Dep::Conflicts ||
+               D->Type == Dep::DpkgBreaks ||
+               D->Type == Dep::Obsoletes)
               State = ~State;
         }       
       }
@@ -631,7 +638,9 @@ void pkgDepCache::Update(DepIterator D)
       State = DependencyState(D);
     
       // Invert for Conflicts
-      if (D->Type == Dep::Conflicts || D->Type == Dep::Obsoletes)
+      if (D->Type == Dep::Conflicts ||
+         D->Type == Dep::DpkgBreaks ||
+         D->Type == Dep::Obsoletes)
         State = ~State;
 
       RemoveStates(D.ParentPkg());
@@ -894,7 +903,8 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
       /* This bit is for processing the possibilty of an install/upgrade
          fixing the problem */
       SPtrArray<Version *> List = Start.AllTargets();
-      if ((DepState[Start->ID] & DepCVer) == DepCVer)
+      if (Start->Type != Dep::DpkgBreaks &&
+         (DepState[Start->ID] & DepCVer) == DepCVer)
       {
         // Right, find the best version to install..
         Version **Cur = List;
@@ -939,17 +949,23 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
         }
         continue;
       }
-      
+
       /* For conflicts we just de-install the package and mark as auto,
-         Conflicts may not have or groups */
-      if (Start->Type == Dep::Conflicts || Start->Type == Dep::Obsoletes)
+         Conflicts may not have or groups.  For dpkg's Breaks we try to
+         upgrade the package. */
+      if (Start->Type == Dep::Conflicts || Start->Type == Dep::Obsoletes ||
+         Start->Type == Dep::DpkgBreaks)
       {
         for (Version **I = List; *I != 0; I++)
         {
            VerIterator Ver(*this,*I);
            PkgIterator Pkg = Ver.ParentPkg();
-      
-           MarkDelete(Pkg);
+
+           if (Start->Type != Dep::DpkgBreaks)
+              MarkDelete(Pkg);
+           else
+              if (PkgState[Pkg->ID].CandidateVer != *I)
+                 MarkInstall(Pkg,true,Depth + 1, false, ForceImportantDeps);
         }
         continue;
       }      
index 8d3a979839b5bd56d7e3fb7dd3fd8aec6e7b8f1f..61d8d914e43b3bf6a52fc54c29b251b86dfc3402 100644 (file)
@@ -491,11 +491,13 @@ bool pkgOrderList::VisitProvides(DepIterator D,bool Critical)
         continue;
       
       if (D->Type != pkgCache::Dep::Conflicts &&
+         D->Type != pkgCache::Dep::DpkgBreaks &&
          D->Type != pkgCache::Dep::Obsoletes &&
          Cache[Pkg].InstallVer != *I)
         continue;
       
       if ((D->Type == pkgCache::Dep::Conflicts ||
+          D->Type == pkgCache::Dep::DpkgBreaks ||
           D->Type == pkgCache::Dep::Obsoletes) &&
          (Version *)Pkg.CurrentVer() != *I)
         continue;
@@ -630,6 +632,7 @@ bool pkgOrderList::DepUnPackCrit(DepIterator D)
         /* Forward critical dependencies MUST be correct before the 
            package can be unpacked. */
         if (D->Type != pkgCache::Dep::Conflicts &&
+            D->Type != pkgCache::Dep::DpkgBreaks &&
             D->Type != pkgCache::Dep::Obsoletes &&
             D->Type != pkgCache::Dep::PreDepends)
            continue;
@@ -668,7 +671,7 @@ bool pkgOrderList::DepUnPackCrit(DepIterator D)
    }   
    return true;
 }
-                                                                       /*}}}*/
+
 // OrderList::DepUnPackPreD - Critical UnPacking ordering with depends /*{{{*/
 // ---------------------------------------------------------------------
 /* Critical PreDepends (also configure immediate and essential) strives to
@@ -803,9 +806,20 @@ bool pkgOrderList::DepUnPackDep(DepIterator D)
               return false;
         }
         else
+        {
            if (D->Type == pkgCache::Dep::Depends)
               if (VisitProvides(D,false) == false)
                  return false;
+
+           if (D->Type == pkgCache::Dep::DpkgBreaks)
+           {
+              if (CheckDep(D) == true)
+                continue;
+
+              if (VisitNode(D.TargetPkg()) == false)
+                return false;
+           }
+        }
       }
    return true;
 }
@@ -953,6 +967,7 @@ bool pkgOrderList::CheckDep(DepIterator D)
       /* Conflicts requires that all versions are not present, depends
          just needs one */
       if (D->Type != pkgCache::Dep::Conflicts && 
+         D->Type != pkgCache::Dep::DpkgBreaks && 
          D->Type != pkgCache::Dep::Obsoletes)
       {
         /* Try to find something that does not have the after flag set
index 162ab4f279f4e3e90d7f700389eb98befeb64ec7..35eb23dfa95f83d73173b3ad4e1f4ed0911f237f 100644 (file)
@@ -228,8 +228,8 @@ const char *pkgCache::DepType(unsigned char Type)
 {
    const char *Types[] = {"",_("Depends"),_("PreDepends"),_("Suggests"),
                           _("Recommends"),_("Conflicts"),_("Replaces"),
-                          _("Obsoletes")};
-   if (Type < 8)
+                          _("Obsoletes"),_("Breaks")};
+   if (Type < sizeof(Types)/sizeof(*Types))
       return Types[Type];
    return "";
 }
@@ -292,10 +292,11 @@ pkgCache::PkgIterator::OkState pkgCache::PkgIterator::State() const
 // DepIterator::IsCritical - Returns true if the dep is important      /*{{{*/
 // ---------------------------------------------------------------------
 /* Currently critical deps are defined as depends, predepends and
-   conflicts. */
+   conflicts (including dpkg's Breaks fields). */
 bool pkgCache::DepIterator::IsCritical()
 {
    if (Dep->Type == pkgCache::Dep::Conflicts ||
+       Dep->Type == pkgCache::Dep::DpkgBreaks ||
        Dep->Type == pkgCache::Dep::Obsoletes ||
        Dep->Type == pkgCache::Dep::Depends ||
        Dep->Type == pkgCache::Dep::PreDepends)
@@ -381,6 +382,7 @@ pkgCache::Version **pkgCache::DepIterator::AllTargets()
            continue;
 
         if ((Dep->Type == pkgCache::Dep::Conflicts ||
+             Dep->Type == pkgCache::Dep::DpkgBreaks ||
              Dep->Type == pkgCache::Dep::Obsoletes) &&
             ParentPkg() == I.ParentPkg())
            continue;
@@ -397,6 +399,7 @@ pkgCache::Version **pkgCache::DepIterator::AllTargets()
            continue;
         
         if ((Dep->Type == pkgCache::Dep::Conflicts ||
+             Dep->Type == pkgCache::Dep::DpkgBreaks ||
              Dep->Type == pkgCache::Dep::Obsoletes) &&
             ParentPkg() == I.OwnerPkg())
            continue;
index c7a3172cc0986d04f8476787332115072c4f0ac7..970759492f70674cc09425fbe45d2dbf05813262 100644 (file)
@@ -66,10 +66,14 @@ class pkgCache
    class Namespace;
    
    // These are all the constants used in the cache structures
+
+   // WARNING - if you change these lists you must also edit
+   // the stringification in pkgcache.cc and also consider whether
+   // the cache file will become incompatible.
    struct Dep
    {
       enum DepType {Depends=1,PreDepends=2,Suggests=3,Recommends=4,
-        Conflicts=5,Replaces=6,Obsoletes=7};
+        Conflicts=5,Replaces=6,Obsoletes=7,DpkgBreaks=8};
       enum DepCompareOp {Or=0x10,NoOp=0,LessEq=0x1,GreaterEq=0x2,Less=0x3,
         Greater=0x4,Equals=0x5,NotEquals=0x6};
    };
index 8fcbeb23b6fb39ee1ab3deab4f268fece42029f5..14682956654273124b333b9d9fea203c8324dc57 100644 (file)
@@ -422,6 +422,7 @@ static const char *iTFRewritePackageOrder[] = {
                           "Recommends",
                           "Suggests",
                           "Conflicts",
+                          "Breaks",
                           "Conffiles",
                           "Filename",
                           "Size",
index 74fa71cbad37bfa9cec587dd3db18ee438adb29b..cc4c1559e2f74dc1bc35d6f1f7180d24ea32fe13 100644 (file)
@@ -102,13 +102,15 @@ bool UnMet(CommandLine &CmdL)
            if (End->Type != pkgCache::Dep::PreDepends &&
                End->Type != pkgCache::Dep::Depends && 
                End->Type != pkgCache::Dep::Suggests &&
-               End->Type != pkgCache::Dep::Recommends)
+               End->Type != pkgCache::Dep::Recommends &&
+               End->Type != pkgCache::Dep::DpkgBreaks)
               continue;
 
            // Important deps only
            if (Important == true)
               if (End->Type != pkgCache::Dep::PreDepends &&
-                  End->Type != pkgCache::Dep::Depends)
+                  End->Type != pkgCache::Dep::Depends &&
+                  End->Type != pkgCache::Dep::DpkgBreaks)
                  continue;
            
            // Verify the or group
@@ -869,6 +871,7 @@ bool XVcg(CommandLine &CmdL)
                     then show the relation but do not recurse */
                  if (Hit == false && 
                      (D->Type == pkgCache::Dep::Conflicts ||
+                      D->Type == pkgCache::Dep::DpkgBreaks ||
                       D->Type == pkgCache::Dep::Obsoletes))
                  {
                     if (Show[D.TargetPkg()->ID] == None && 
@@ -890,6 +893,9 @@ bool XVcg(CommandLine &CmdL)
                  case pkgCache::Dep::Conflicts:
                    printf("label: \"conflicts\" color: lightgreen }\n");
                    break;
+                 case pkgCache::Dep::DpkgBreaks:
+                   printf("label: \"breaks\" color: lightgreen }\n");
+                   break;
                  case pkgCache::Dep::Obsoletes:
                    printf("label: \"obsoletes\" color: lightgreen }\n");
                    break;
index da396e75574440195b95a7511113b595c82482ac..9c6232a6ce8c4d6a953a4609206db7febc4a30ba 100644 (file)
@@ -1,3 +1,10 @@
+apt (0.6.45ubuntu6~iwj) unstable; urgency=low
+
+  * Initial draft of `Breaks' implementation.  Appears to compile,
+    but as yet *completely untested*.
+
+ -- Ian Jackson <ian@davenant.greenend.org.uk>  Fri, 25 Aug 2006 15:39:07 +0100
+
 apt (0.6.45ubuntu5) edgy; urgency=low
 
   * apt-pkg/pkgcachegen.cc:
index 2779f250142e6076c42945f184a69bad6c9736d4..c1e65332d48aa8d5582dd918781c72e1a4bea6a3 100644 (file)
@@ -151,7 +151,7 @@ Reverse Provides:
        a dependency but were not provided by any package. Missing packages may 
        be in evidence if a full distribution is not accessed, or if a package
        (real or virtual) has been dropped from the distribution. Usually they
-       are referenced from Conflicts statements.</para>
+       are referenced from Conflicts or Breaks statements.</para>
        </listitem>
 
        <listitem><para><literal>Total distinct</literal> versions is the number of package versions 
index aa87db98680c4c48c9067d0e8273027330681df9..e257dcd819fd6f5e48c2419caca0280fc7ff03f7 100644 (file)
@@ -492,7 +492,7 @@ This is the parsed priority value of the package.
 Dependency contains the information for a single dependency record. The records
 are split up like this to ease processing by the client. The base of list
 linked list is Version.DependsList. All forms of dependencies are recorded
-here including Conflicts, Suggests and Recommends.
+here including Conflicts, Breaks, Suggests and Recommends.
 
 <p>
 Multiple depends on the same package must be grouped together in 
@@ -671,6 +671,7 @@ of them.
 #define pkgDEP_Recommends 4
 #define pkgDEP_Conflicts 5
 #define pkgDEP_Replaces 6
+#define pkgDEP_Breaks 8
 </example>
 </sect1>
 
index 23372d71fc7b6cfee9cd26a1b57996ffca6cb168..7c6e023ddff02998880a3189d5f5a54579014dd3 100644 (file)
@@ -46,6 +46,8 @@ The basic dpkg package control file supports the following major features:-
        productivity of the package
        <item>Conflicts, to specify a package which must NOT be installed
        in order for the package to be configured
+       <item>Breaks, to specify a package which is broken by the
+       package and which should therefore not be configured while broken
        </list>
 Each of these dependencies can specify a version and a depedency on that
 version, for example "<= 0.5-1", "== 2.7.2-1", etc. The comparators available
index 586f9e5451c4906092cbe9fe70b0fe6279b18dd3..978b0c19155cf090a9e7a0ccdc170663750ce5ef 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-08-09 23:46+0200\n"
+"POT-Creation-Date: 2006-08-25 15:34+0100\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"
@@ -15,145 +15,153 @@ msgstr ""
 "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-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550
-#: cmdline/apt-get.cc:2462 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-cache.cc:1714 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70
+#: cmdline/apt-extracttemplates.cc:225 cmdline/apt-get.cc:2476
+#: 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"
@@ -243,8 +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:714
-#: apt-pkg/pkgcachegen.cc:819
+#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:819
 #, c-format
 msgid "Unable to write to %s"
 msgstr ""
@@ -253,301 +260,11 @@ msgstr ""
 msgid "Cannot get debconf version. Is debconf installed?"
 msgstr ""
 
-#: ftparchive/apt-ftparchive.cc:167 ftparchive/apt-ftparchive.cc:341
-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
-#, c-format
-msgid "Error processing directory %s"
-msgstr ""
-
-#: ftparchive/apt-ftparchive.cc:254
-msgid "Source extension list is too long"
-msgstr ""
-
-#: ftparchive/apt-ftparchive.cc:371
-msgid "Error writing header to contents file"
-msgstr ""
-
-#: ftparchive/apt-ftparchive.cc:401
-#, c-format
-msgid "Error processing contents %s"
-msgstr ""
-
-#: ftparchive/apt-ftparchive.cc:556
-msgid ""
-"Usage: apt-ftparchive [options] command\n"
-"Commands: packages binarypath [overridefile [pathprefix]]\n"
-"          sources srcpath [overridefile [pathprefix]]\n"
-"          contents path\n"
-"          release path\n"
-"          generate config [groups]\n"
-"          clean config\n"
-"\n"
-"apt-ftparchive generates index files for Debian archives. It supports\n"
-"many styles of generation from fully automated to functional replacements\n"
-"for dpkg-scanpackages and dpkg-scansources\n"
-"\n"
-"apt-ftparchive generates Package files from a tree of .debs. The\n"
-"Package file contains the contents of all the control fields from\n"
-"each package as well as the MD5 hash and filesize. An override file\n"
-"is supported to force the value of Priority and Section.\n"
-"\n"
-"Similarly apt-ftparchive generates Sources files from a tree of .dscs.\n"
-"The --source-override option can be used to specify a src override file\n"
-"\n"
-"The 'packages' and 'sources' command should be run in the root of the\n"
-"tree. BinaryPath should point to the base of the recursive search and \n"
-"override file should contain the override flags. Pathprefix is\n"
-"appended to the filename fields if present. Example usage from the \n"
-"Debian archive:\n"
-"   apt-ftparchive packages dists/potato/main/binary-i386/ > \\\n"
-"               dists/potato/main/binary-i386/Packages\n"
-"\n"
-"Options:\n"
-"  -h    This help text\n"
-"  --md5 Control MD5 generation\n"
-"  -s=?  Source override file\n"
-"  -q    Quiet\n"
-"  -d=?  Select the optional caching database\n"
-"  --no-delink Enable delinking debug mode\n"
-"  --contents  Control contents file generation\n"
-"  -c=?  Read this configuration file\n"
-"  -o=?  Set an arbitrary configuration option"
-msgstr ""
-
-#: ftparchive/apt-ftparchive.cc:762
-msgid "No selections matched"
-msgstr ""
-
-#: ftparchive/apt-ftparchive.cc:835
-#, c-format
-msgid "Some files are missing in the package file group `%s'"
-msgstr ""
-
-#: ftparchive/cachedb.cc:47
-#, c-format
-msgid "DB was corrupted, file renamed to %s.old"
-msgstr ""
-
-#: ftparchive/cachedb.cc:65
-#, c-format
-msgid "DB is old, attempting to upgrade %s"
-msgstr ""
-
-#: ftparchive/cachedb.cc:76
-msgid ""
-"DB format is invalid. If you upgraded from a older version of apt, please "
-"remove and re-create the database."
-msgstr ""
-
-#: ftparchive/cachedb.cc:81
-#, c-format
-msgid "Unable to open DB file %s: %s"
-msgstr ""
-
-#: ftparchive/cachedb.cc:127 apt-inst/extract.cc:181 apt-inst/extract.cc:193
-#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272
-#, c-format
-msgid "Failed to stat %s"
-msgstr ""
-
-#: ftparchive/cachedb.cc:242
-msgid "Archive has no control record"
-msgstr ""
-
-#: ftparchive/cachedb.cc:448
-msgid "Unable to get a cursor"
-msgstr ""
-
-#: ftparchive/writer.cc:79
-#, c-format
-msgid "W: Unable to read directory %s\n"
-msgstr ""
-
-#: ftparchive/writer.cc:84
-#, c-format
-msgid "W: Unable to stat %s\n"
-msgstr ""
-
-#: ftparchive/writer.cc:135
-msgid "E: "
-msgstr ""
-
-#: ftparchive/writer.cc:137
-msgid "W: "
-msgstr ""
-
-#: ftparchive/writer.cc:144
-msgid "E: Errors apply to file "
-msgstr ""
-
-#: ftparchive/writer.cc:161 ftparchive/writer.cc:191
-#, c-format
-msgid "Failed to resolve %s"
-msgstr ""
-
-#: ftparchive/writer.cc:173
-msgid "Tree walking failed"
-msgstr ""
-
-#: ftparchive/writer.cc:198
-#, c-format
-msgid "Failed to open %s"
-msgstr ""
-
-#: ftparchive/writer.cc:257
-#, c-format
-msgid " DeLink %s [%s]\n"
-msgstr ""
-
-#: ftparchive/writer.cc:265
-#, c-format
-msgid "Failed to readlink %s"
-msgstr ""
-
-#: ftparchive/writer.cc:269
-#, c-format
-msgid "Failed to unlink %s"
-msgstr ""
-
-#: ftparchive/writer.cc:276
-#, c-format
-msgid "*** Failed to link %s to %s"
-msgstr ""
-
-#: ftparchive/writer.cc:286
-#, c-format
-msgid " DeLink limit of %sB hit.\n"
-msgstr ""
-
-#: ftparchive/writer.cc:390
-msgid "Archive had no package field"
-msgstr ""
-
-#: ftparchive/writer.cc:398 ftparchive/writer.cc:613
-#, c-format
-msgid "  %s has no override entry\n"
-msgstr ""
-
-#: ftparchive/writer.cc:443 ftparchive/writer.cc:701
-#, c-format
-msgid "  %s maintainer is %s not %s\n"
-msgstr ""
-
-#: ftparchive/writer.cc:623
-#, c-format
-msgid "  %s has no source override entry\n"
-msgstr ""
-
-#: ftparchive/writer.cc:627
-#, c-format
-msgid "  %s has no binary override entry either\n"
-msgstr ""
-
-#: ftparchive/contents.cc:317
-#, c-format
-msgid "Internal error, could not locate member %s"
-msgstr ""
-
-#: ftparchive/contents.cc:353 ftparchive/contents.cc:384
-msgid "realloc - Failed to allocate memory"
-msgstr ""
-
-#: ftparchive/override.cc:38 ftparchive/override.cc:146
-#, c-format
-msgid "Unable to open %s"
-msgstr ""
-
-#: ftparchive/override.cc:64 ftparchive/override.cc:170
-#, c-format
-msgid "Malformed override %s line %lu #1"
-msgstr ""
-
-#: ftparchive/override.cc:78 ftparchive/override.cc:182
-#, c-format
-msgid "Malformed override %s line %lu #2"
-msgstr ""
-
-#: ftparchive/override.cc:92 ftparchive/override.cc:195
-#, c-format
-msgid "Malformed override %s line %lu #3"
-msgstr ""
-
-#: ftparchive/override.cc:131 ftparchive/override.cc:205
-#, c-format
-msgid "Failed to read the override file %s"
-msgstr ""
-
-#: ftparchive/multicompress.cc:75
-#, c-format
-msgid "Unknown compression algorithm '%s'"
-msgstr ""
-
-#: ftparchive/multicompress.cc:105
-#, c-format
-msgid "Compressed output %s needs a compression set"
-msgstr ""
-
-#: ftparchive/multicompress.cc:172 methods/rsh.cc:91
-msgid "Failed to create IPC pipe to subprocess"
-msgstr ""
-
-#: ftparchive/multicompress.cc:198
-msgid "Failed to create FILE*"
-msgstr ""
-
-#: ftparchive/multicompress.cc:201
-msgid "Failed to fork"
-msgstr ""
-
-#: ftparchive/multicompress.cc:215
-msgid "Compress child"
-msgstr ""
-
-#: ftparchive/multicompress.cc:238
-#, c-format
-msgid "Internal error, failed to create %s"
-msgstr ""
-
-#: ftparchive/multicompress.cc:289
-msgid "Failed to create subprocess IPC"
-msgstr ""
-
-#: ftparchive/multicompress.cc:324
-msgid "Failed to exec compressor "
-msgstr ""
-
-#: ftparchive/multicompress.cc:363
-msgid "decompressor"
-msgstr ""
-
-#: ftparchive/multicompress.cc:406
-msgid "IO to subprocess/file failed"
-msgstr ""
-
-#: ftparchive/multicompress.cc:458
-msgid "Failed to read while computing MD5"
-msgstr ""
-
-#: ftparchive/multicompress.cc:475
-#, c-format
-msgid "Problem unlinking %s"
-msgstr ""
-
-#: ftparchive/multicompress.cc:490 apt-inst/extract.cc:188
-#, c-format
-msgid "Failed to rename %s to %s"
-msgstr ""
-
 #: cmdline/apt-get.cc:121
 msgid "Y"
 msgstr ""
 
-#: cmdline/apt-get.cc:143 cmdline/apt-get.cc:1574
+#: cmdline/apt-get.cc:143 cmdline/apt-get.cc:1588
 #, c-format
 msgid "Regex compilation error - %s"
 msgstr ""
@@ -646,118 +363,118 @@ msgstr ""
 msgid "%lu not fully installed or removed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:650
+#: cmdline/apt-get.cc:664
 msgid "Correcting dependencies..."
 msgstr ""
 
-#: cmdline/apt-get.cc:653
+#: cmdline/apt-get.cc:667
 msgid " failed."
 msgstr ""
 
-#: cmdline/apt-get.cc:656
+#: cmdline/apt-get.cc:670
 msgid "Unable to correct dependencies"
 msgstr ""
 
-#: cmdline/apt-get.cc:659
+#: cmdline/apt-get.cc:673
 msgid "Unable to minimize the upgrade set"
 msgstr ""
 
-#: cmdline/apt-get.cc:661
+#: cmdline/apt-get.cc:675
 msgid " Done"
 msgstr ""
 
-#: cmdline/apt-get.cc:665
+#: cmdline/apt-get.cc:679
 msgid "You might want to run `apt-get -f install' to correct these."
 msgstr ""
 
-#: cmdline/apt-get.cc:668
+#: cmdline/apt-get.cc:682
 msgid "Unmet dependencies. Try using -f."
 msgstr ""
 
-#: cmdline/apt-get.cc:690
+#: cmdline/apt-get.cc:704
 msgid "WARNING: The following packages cannot be authenticated!"
 msgstr ""
 
-#: cmdline/apt-get.cc:694
+#: cmdline/apt-get.cc:708
 msgid "Authentication warning overridden.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:701
+#: cmdline/apt-get.cc:715
 msgid "Install these packages without verification [y/N]? "
 msgstr ""
 
-#: cmdline/apt-get.cc:703
+#: cmdline/apt-get.cc:717
 msgid "Some packages could not be authenticated"
 msgstr ""
 
-#: cmdline/apt-get.cc:712 cmdline/apt-get.cc:859
+#: cmdline/apt-get.cc:726 cmdline/apt-get.cc:873
 msgid "There are problems and -y was used without --force-yes"
 msgstr ""
 
-#: cmdline/apt-get.cc:756
+#: cmdline/apt-get.cc:770
 msgid "Internal error, InstallPackages was called with broken packages!"
 msgstr ""
 
-#: cmdline/apt-get.cc:765
+#: cmdline/apt-get.cc:779
 msgid "Packages need to be removed but remove is disabled."
 msgstr ""
 
-#: cmdline/apt-get.cc:776
+#: cmdline/apt-get.cc:790
 msgid "Internal error, Ordering didn't finish"
 msgstr ""
 
-#: cmdline/apt-get.cc:792 cmdline/apt-get.cc:1893 cmdline/apt-get.cc:1926
+#: cmdline/apt-get.cc:806 cmdline/apt-get.cc:1907 cmdline/apt-get.cc:1940
 msgid "Unable to lock the download directory"
 msgstr ""
 
-#: cmdline/apt-get.cc:802 cmdline/apt-get.cc:1974 cmdline/apt-get.cc:2210
+#: cmdline/apt-get.cc:816 cmdline/apt-get.cc:1988 cmdline/apt-get.cc:2224
 #: apt-pkg/cachefile.cc:67
 msgid "The list of sources could not be read."
 msgstr ""
 
-#: cmdline/apt-get.cc:817
+#: cmdline/apt-get.cc:831
 msgid "How odd.. The sizes didn't match, email apt@packages.debian.org"
 msgstr ""
 
-#: cmdline/apt-get.cc:822
+#: cmdline/apt-get.cc:836
 #, c-format
 msgid "Need to get %sB/%sB of archives.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:825
+#: cmdline/apt-get.cc:839
 #, c-format
 msgid "Need to get %sB of archives.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:830
+#: cmdline/apt-get.cc:844
 #, c-format
 msgid "After unpacking %sB of additional disk space will be used.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:833
+#: cmdline/apt-get.cc:847
 #, c-format
 msgid "After unpacking %sB disk space will be freed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:847 cmdline/apt-get.cc:2064
+#: cmdline/apt-get.cc:861 cmdline/apt-get.cc:2078
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:850
+#: cmdline/apt-get.cc:864
 #, c-format
 msgid "You don't have enough free space in %s."
 msgstr ""
 
-#: cmdline/apt-get.cc:865 cmdline/apt-get.cc:885
+#: cmdline/apt-get.cc:879 cmdline/apt-get.cc:899
 msgid "Trivial Only specified but this is not a trivial operation."
 msgstr ""
 
-#: cmdline/apt-get.cc:867
+#: cmdline/apt-get.cc:881
 msgid "Yes, do as I say!"
 msgstr ""
 
-#: cmdline/apt-get.cc:869
+#: cmdline/apt-get.cc:883
 #, c-format
 msgid ""
 "You are about to do something potentially harmful.\n"
@@ -765,74 +482,74 @@ msgid ""
 " ?] "
 msgstr ""
 
-#: cmdline/apt-get.cc:875 cmdline/apt-get.cc:894
+#: cmdline/apt-get.cc:889 cmdline/apt-get.cc:908
 msgid "Abort."
 msgstr ""
 
-#: cmdline/apt-get.cc:890
+#: cmdline/apt-get.cc:904
 msgid "Do you want to continue [Y/n]? "
 msgstr ""
 
-#: cmdline/apt-get.cc:962 cmdline/apt-get.cc:1369 cmdline/apt-get.cc:2107
+#: cmdline/apt-get.cc:976 cmdline/apt-get.cc:1383 cmdline/apt-get.cc:2121
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:980
+#: cmdline/apt-get.cc:994
 msgid "Some files failed to download"
 msgstr ""
 
-#: cmdline/apt-get.cc:981 cmdline/apt-get.cc:2116
+#: cmdline/apt-get.cc:995 cmdline/apt-get.cc:2130
 msgid "Download complete and in download only mode"
 msgstr ""
 
-#: cmdline/apt-get.cc:987
+#: cmdline/apt-get.cc:1001
 msgid ""
 "Unable to fetch some archives, maybe run apt-get update or try with --fix-"
 "missing?"
 msgstr ""
 
-#: cmdline/apt-get.cc:991
+#: cmdline/apt-get.cc:1005
 msgid "--fix-missing and media swapping is not currently supported"
 msgstr ""
 
-#: cmdline/apt-get.cc:996
+#: cmdline/apt-get.cc:1010
 msgid "Unable to correct missing packages."
 msgstr ""
 
-#: cmdline/apt-get.cc:997
+#: cmdline/apt-get.cc:1011
 msgid "Aborting install."
 msgstr ""
 
-#: cmdline/apt-get.cc:1031
+#: cmdline/apt-get.cc:1045
 #, c-format
 msgid "Note, selecting %s instead of %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1041
+#: cmdline/apt-get.cc:1055
 #, c-format
 msgid "Skipping %s, it is already installed and upgrade is not set.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1059
+#: cmdline/apt-get.cc:1073
 #, c-format
 msgid "Package %s is not installed, so not removed\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1070
+#: cmdline/apt-get.cc:1084
 #, c-format
 msgid "Package %s is a virtual package provided by:\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1082
+#: cmdline/apt-get.cc:1096
 msgid " [Installed]"
 msgstr ""
 
-#: cmdline/apt-get.cc:1087
+#: cmdline/apt-get.cc:1101
 msgid "You should explicitly select one to install."
 msgstr ""
 
-#: cmdline/apt-get.cc:1092
+#: cmdline/apt-get.cc:1106
 #, c-format
 msgid ""
 "Package %s is not available, but is referred to by another package.\n"
@@ -840,97 +557,97 @@ msgid ""
 "is only available from another source\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1111
+#: cmdline/apt-get.cc:1125
 msgid "However the following packages replace it:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1114
+#: cmdline/apt-get.cc:1128
 #, c-format
 msgid "Package %s has no installation candidate"
 msgstr ""
 
-#: cmdline/apt-get.cc:1134
+#: cmdline/apt-get.cc:1148
 #, c-format
 msgid "Reinstallation of %s is not possible, it cannot be downloaded.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1142
+#: cmdline/apt-get.cc:1156
 #, c-format
 msgid "%s is already the newest version.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1171
+#: cmdline/apt-get.cc:1185
 #, c-format
 msgid "Release '%s' for '%s' was not found"
 msgstr ""
 
-#: cmdline/apt-get.cc:1173
+#: cmdline/apt-get.cc:1187
 #, c-format
 msgid "Version '%s' for '%s' was not found"
 msgstr ""
 
-#: cmdline/apt-get.cc:1179
+#: cmdline/apt-get.cc:1193
 #, c-format
 msgid "Selected version %s (%s) for %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1316
+#: cmdline/apt-get.cc:1330
 msgid "The update command takes no arguments"
 msgstr ""
 
-#: cmdline/apt-get.cc:1329
+#: cmdline/apt-get.cc:1343
 msgid "Unable to lock the list directory"
 msgstr ""
 
-#: cmdline/apt-get.cc:1396 cmdline/apt-get.cc:1398
+#: 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:1412
+#: cmdline/apt-get.cc:1426
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 
-#: cmdline/apt-get.cc:1437
+#: cmdline/apt-get.cc:1451
 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:1440 cmdline/apt-get.cc:1642
+#: cmdline/apt-get.cc:1454 cmdline/apt-get.cc:1656
 msgid "The following information may help to resolve the situation:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1444
+#: cmdline/apt-get.cc:1458
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:1463
+#: cmdline/apt-get.cc:1477
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:1561 cmdline/apt-get.cc:1597
+#: cmdline/apt-get.cc:1575 cmdline/apt-get.cc:1611
 #, c-format
 msgid "Couldn't find package %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:1584
+#: cmdline/apt-get.cc:1598
 #, c-format
 msgid "Note, selecting %s for regex '%s'\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1614
+#: cmdline/apt-get.cc:1628
 msgid "You might want to run `apt-get -f install' to correct these:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1617
+#: cmdline/apt-get.cc:1631
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
 msgstr ""
 
-#: cmdline/apt-get.cc:1629
+#: cmdline/apt-get.cc:1643
 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"
@@ -938,159 +655,159 @@ msgid ""
 "or been moved out of Incoming."
 msgstr ""
 
-#: cmdline/apt-get.cc:1637
+#: cmdline/apt-get.cc:1651
 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:1645
+#: cmdline/apt-get.cc:1659
 msgid "Broken packages"
 msgstr ""
 
-#: cmdline/apt-get.cc:1676
+#: cmdline/apt-get.cc:1690
 msgid "The following extra packages will be installed:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1765
+#: cmdline/apt-get.cc:1779
 msgid "Suggested packages:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1766
+#: cmdline/apt-get.cc:1780
 msgid "Recommended packages:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1786
+#: cmdline/apt-get.cc:1800
 msgid "Calculating upgrade... "
 msgstr ""
 
-#: cmdline/apt-get.cc:1789 methods/ftp.cc:702 methods/connect.cc:101
+#: cmdline/apt-get.cc:1803 methods/ftp.cc:702 methods/connect.cc:101
 msgid "Failed"
 msgstr ""
 
-#: cmdline/apt-get.cc:1794
+#: cmdline/apt-get.cc:1808
 msgid "Done"
 msgstr ""
 
-#: cmdline/apt-get.cc:1861 cmdline/apt-get.cc:1869
+#: cmdline/apt-get.cc:1875 cmdline/apt-get.cc:1883
 msgid "Internal error, problem resolver broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:1969
+#: cmdline/apt-get.cc:1983
 msgid "Must specify at least one package to fetch source for"
 msgstr ""
 
-#: cmdline/apt-get.cc:1999 cmdline/apt-get.cc:2228
+#: cmdline/apt-get.cc:2013 cmdline/apt-get.cc:2242
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2043
+#: cmdline/apt-get.cc:2057
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2067
+#: cmdline/apt-get.cc:2081
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2072
+#: cmdline/apt-get.cc:2086
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:2089
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2081
+#: cmdline/apt-get.cc:2095
 #, c-format
 msgid "Fetch source %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2112
+#: cmdline/apt-get.cc:2126
 msgid "Failed to fetch some archives."
 msgstr ""
 
-#: cmdline/apt-get.cc:2140
+#: cmdline/apt-get.cc:2154
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2152
+#: cmdline/apt-get.cc:2166
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2153
+#: cmdline/apt-get.cc:2167
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2170
+#: cmdline/apt-get.cc:2184
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2189
+#: cmdline/apt-get.cc:2203
 msgid "Child process failed"
 msgstr ""
 
-#: cmdline/apt-get.cc:2205
+#: cmdline/apt-get.cc:2219
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 
-#: cmdline/apt-get.cc:2233
+#: cmdline/apt-get.cc:2247
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2253
+#: cmdline/apt-get.cc:2267
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2305
+#: cmdline/apt-get.cc:2319
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr ""
 
-#: cmdline/apt-get.cc:2357
+#: cmdline/apt-get.cc:2371
 #, 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:2392
+#: cmdline/apt-get.cc:2406
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
 msgstr ""
 
-#: cmdline/apt-get.cc:2417
+#: cmdline/apt-get.cc:2431
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2431
+#: cmdline/apt-get.cc:2445
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr ""
 
-#: cmdline/apt-get.cc:2435
+#: cmdline/apt-get.cc:2449
 msgid "Failed to process build dependencies"
 msgstr ""
 
-#: cmdline/apt-get.cc:2467
+#: cmdline/apt-get.cc:2481
 msgid "Supported modules:"
 msgstr ""
 
-#: cmdline/apt-get.cc:2508
+#: cmdline/apt-get.cc:2522
 msgid ""
 "Usage: apt-get [options] command\n"
 "       apt-get [options] install|remove pkg1 [pkg2 ...]\n"
@@ -1320,6 +1037,17 @@ msgstr ""
 msgid "The diversion path is too long"
 msgstr ""
 
+#: apt-inst/extract.cc:181 apt-inst/extract.cc:193 apt-inst/extract.cc:210
+#: apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:272
+#, c-format
+msgid "Failed to stat %s"
+msgstr ""
+
+#: apt-inst/extract.cc:188
+#, c-format
+msgid "Failed to rename %s to %s"
+msgstr ""
+
 #: apt-inst/extract.cc:243
 #, c-format
 msgid "The directory %s is being replaced by a non-directory"
@@ -1375,9 +1103,7 @@ msgid "The info and temp directories need to be on the same filesystem"
 msgstr ""
 
 #. Build the status cache
-#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:647
-#: apt-pkg/pkgcachegen.cc:716 apt-pkg/pkgcachegen.cc:721
-#: apt-pkg/pkgcachegen.cc:844 apt-pkg/pkgcachegen.cc:752
+#: 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"
@@ -1851,7 +1577,7 @@ msgstr ""
 msgid "Couldn't make mmap of %lu bytes"
 msgstr ""
 
-#: apt-pkg/contrib/strutl.cc:938 apt-pkg/contrib/strutl.cc:981
+#: apt-pkg/contrib/strutl.cc:981
 #, c-format
 msgid "Selection %s not found"
 msgstr ""
@@ -2048,72 +1774,76 @@ msgstr ""
 msgid "Problem syncing the file"
 msgstr ""
 
-#: apt-pkg/pkgcache.cc:126 apt-pkg/pkgcache.cc:137
+#: apt-pkg/pkgcache.cc:137
 msgid "Empty package cache"
 msgstr ""
 
-#: apt-pkg/pkgcache.cc:132 apt-pkg/pkgcache.cc:143
+#: apt-pkg/pkgcache.cc:143
 msgid "The package cache file is corrupted"
 msgstr ""
 
-#: apt-pkg/pkgcache.cc:137 apt-pkg/pkgcache.cc:148
+#: apt-pkg/pkgcache.cc:148
 msgid "The package cache file is an incompatible version"
 msgstr ""
 
-#: apt-pkg/pkgcache.cc:142 apt-pkg/pkgcache.cc:153
+#: apt-pkg/pkgcache.cc:153
 #, c-format
 msgid "This APT does not support the versioning system '%s'"
 msgstr ""
 
-#: apt-pkg/pkgcache.cc:147 apt-pkg/pkgcache.cc:158
+#: apt-pkg/pkgcache.cc:158
 msgid "The package cache was built for a different architecture"
 msgstr ""
 
-#: apt-pkg/pkgcache.cc:218 apt-pkg/pkgcache.cc:229
+#: apt-pkg/pkgcache.cc:229
 msgid "Depends"
 msgstr ""
 
-#: apt-pkg/pkgcache.cc:218 apt-pkg/pkgcache.cc:229
+#: apt-pkg/pkgcache.cc:229
 msgid "PreDepends"
 msgstr ""
 
-#: apt-pkg/pkgcache.cc:218 apt-pkg/pkgcache.cc:229
+#: apt-pkg/pkgcache.cc:229
 msgid "Suggests"
 msgstr ""
 
-#: apt-pkg/pkgcache.cc:219 apt-pkg/pkgcache.cc:230
+#: apt-pkg/pkgcache.cc:230
 msgid "Recommends"
 msgstr ""
 
-#: apt-pkg/pkgcache.cc:219 apt-pkg/pkgcache.cc:230
+#: apt-pkg/pkgcache.cc:230
 msgid "Conflicts"
 msgstr ""
 
-#: apt-pkg/pkgcache.cc:219 apt-pkg/pkgcache.cc:230
+#: apt-pkg/pkgcache.cc:230
 msgid "Replaces"
 msgstr ""
 
-#: apt-pkg/pkgcache.cc:220 apt-pkg/pkgcache.cc:231
+#: apt-pkg/pkgcache.cc:231
 msgid "Obsoletes"
 msgstr ""
 
-#: apt-pkg/pkgcache.cc:231 apt-pkg/pkgcache.cc:242
+#: apt-pkg/pkgcache.cc:231
+msgid "Breaks"
+msgstr ""
+
+#: apt-pkg/pkgcache.cc:242
 msgid "important"
 msgstr ""
 
-#: apt-pkg/pkgcache.cc:231 apt-pkg/pkgcache.cc:242
+#: apt-pkg/pkgcache.cc:242
 msgid "required"
 msgstr ""
 
-#: apt-pkg/pkgcache.cc:231 apt-pkg/pkgcache.cc:242
+#: apt-pkg/pkgcache.cc:242
 msgid "standard"
 msgstr ""
 
-#: apt-pkg/pkgcache.cc:232 apt-pkg/pkgcache.cc:243
+#: apt-pkg/pkgcache.cc:243
 msgid "optional"
 msgstr ""
 
-#: apt-pkg/pkgcache.cc:232 apt-pkg/pkgcache.cc:243
+#: apt-pkg/pkgcache.cc:243
 msgid "extra"
 msgstr ""
 
@@ -2183,7 +1913,7 @@ msgstr ""
 msgid "Opening %s"
 msgstr ""
 
-#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:426 apt-pkg/cdrom.cc:450
+#: apt-pkg/sourcelist.cc:220 apt-pkg/cdrom.cc:450
 #, c-format
 msgid "Line %u too long in source list %s."
 msgstr ""
@@ -2216,19 +1946,19 @@ msgstr ""
 msgid "Index file type '%s' is not supported"
 msgstr ""
 
-#: apt-pkg/algorithms.cc:245
+#: apt-pkg/algorithms.cc:248
 #, c-format
 msgid ""
 "The package %s needs to be reinstalled, but I can't find an archive for it."
 msgstr ""
 
-#: apt-pkg/algorithms.cc:1075
+#: apt-pkg/algorithms.cc:1096
 msgid ""
 "Error, pkgProblemResolver::Resolve generated breaks, this may be caused by "
 "held packages."
 msgstr ""
 
-#: apt-pkg/algorithms.cc:1077
+#: apt-pkg/algorithms.cc:1098
 msgid "Unable to correct problems, you have held broken packages."
 msgstr ""
 
@@ -2269,12 +1999,12 @@ msgstr ""
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr ""
 
-#: apt-pkg/init.cc:122 apt-pkg/init.cc:125
+#: apt-pkg/init.cc:125
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgstr ""
 
-#: apt-pkg/init.cc:138 apt-pkg/init.cc:141
+#: apt-pkg/init.cc:141
 msgid "Unable to determine a suitable packaging system type"
 msgstr ""
 
@@ -2317,73 +2047,86 @@ msgstr ""
 msgid "Error occurred while processing %s (NewPackage)"
 msgstr ""
 
-#: apt-pkg/pkgcachegen.cc:131 apt-pkg/pkgcachegen.cc:134
+#: apt-pkg/pkgcachegen.cc:134
 #, c-format
 msgid "Error occurred while processing %s (UsePackage1)"
 msgstr ""
 
-#: apt-pkg/pkgcachegen.cc:152 apt-pkg/pkgcachegen.cc:182
+#: 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:156 apt-pkg/pkgcachegen.cc:186
+#: apt-pkg/pkgcachegen.cc:186
 #, c-format
 msgid "Error occurred while processing %s (NewFileVer1)"
 msgstr ""
 
-#: apt-pkg/pkgcachegen.cc:186 apt-pkg/pkgcachegen.cc:217
+#: apt-pkg/pkgcachegen.cc:217
 #, c-format
 msgid "Error occurred while processing %s (NewVersion1)"
 msgstr ""
 
-#: apt-pkg/pkgcachegen.cc:190 apt-pkg/pkgcachegen.cc:221
+#: apt-pkg/pkgcachegen.cc:221
 #, c-format
 msgid "Error occurred while processing %s (UsePackage3)"
 msgstr ""
 
-#: apt-pkg/pkgcachegen.cc:194 apt-pkg/pkgcachegen.cc:225
+#: apt-pkg/pkgcachegen.cc:225
 #, c-format
 msgid "Error occurred while processing %s (NewVersion2)"
 msgstr ""
 
-#: apt-pkg/pkgcachegen.cc:209 apt-pkg/pkgcachegen.cc:255
+#: 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:212 apt-pkg/pkgcachegen.cc:258
+#: apt-pkg/pkgcachegen.cc:258
 msgid "Wow, you exceeded the number of versions this APT is capable of."
 msgstr ""
 
-#: apt-pkg/pkgcachegen.cc:215 apt-pkg/pkgcachegen.cc:264
+#: 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:243 apt-pkg/pkgcachegen.cc:292
+#: apt-pkg/pkgcachegen.cc:292
 #, c-format
 msgid "Error occurred while processing %s (FindPkg)"
 msgstr ""
 
-#: apt-pkg/pkgcachegen.cc:256 apt-pkg/pkgcachegen.cc:305
+#: apt-pkg/pkgcachegen.cc:305
 #, c-format
 msgid "Error occurred while processing %s (CollectFileProvides)"
 msgstr ""
 
-#: apt-pkg/pkgcachegen.cc:262 apt-pkg/pkgcachegen.cc:311
+#: apt-pkg/pkgcachegen.cc:311
 #, c-format
 msgid "Package %s %s was not found while processing file dependencies"
 msgstr ""
 
-#: apt-pkg/pkgcachegen.cc:577 apt-pkg/pkgcachegen.cc:682
+#: apt-pkg/pkgcachegen.cc:682
 #, c-format
 msgid "Couldn't stat source package list %s"
 msgstr ""
 
-#: apt-pkg/pkgcachegen.cc:662 apt-pkg/pkgcachegen.cc:767
+#: apt-pkg/pkgcachegen.cc:767
 msgid "Collecting File Provides"
 msgstr ""
 
-#: apt-pkg/pkgcachegen.cc:789 apt-pkg/pkgcachegen.cc:796
 #: apt-pkg/pkgcachegen.cc:894 apt-pkg/pkgcachegen.cc:901
 msgid "IO Error saving source cache"
 msgstr ""
@@ -2393,36 +2136,35 @@ msgstr ""
 msgid "rename failed, %s (%s -> %s)."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:951
-#: apt-pkg/acquire-item.cc:980
+#: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:980
 msgid "MD5Sum mismatch"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:646 apt-pkg/acquire-item.cc:675
+#: apt-pkg/acquire-item.cc:675
 msgid "There are no public key available for the following key IDs:\n"
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:759 apt-pkg/acquire-item.cc:788
+#: apt-pkg/acquire-item.cc:788
 #, 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:818 apt-pkg/acquire-item.cc:847
+#: apt-pkg/acquire-item.cc:847
 #, 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:854 apt-pkg/acquire-item.cc:883
+#: apt-pkg/acquire-item.cc:883
 #, c-format
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr ""
 
-#: apt-pkg/acquire-item.cc:941 apt-pkg/acquire-item.cc:970
+#: apt-pkg/acquire-item.cc:970
 msgid "Size mismatch"
 msgstr ""
 
@@ -2431,93 +2173,94 @@ msgstr ""
 msgid "Vendor block %s contains no fingerprint"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:507 apt-pkg/cdrom.cc:531
+#: apt-pkg/cdrom.cc:531
 #, c-format
 msgid ""
 "Using CD-ROM mount point %s\n"
 "Mounting CD-ROM\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:516 apt-pkg/cdrom.cc:598 apt-pkg/cdrom.cc:540
-#: apt-pkg/cdrom.cc:622
+#: apt-pkg/cdrom.cc:540 apt-pkg/cdrom.cc:622
 msgid "Identifying.. "
 msgstr ""
 
-#: apt-pkg/cdrom.cc:541 apt-pkg/cdrom.cc:565
+#: apt-pkg/cdrom.cc:565
 #, c-format
 msgid "Stored label: %s \n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:561 apt-pkg/cdrom.cc:585
+#: apt-pkg/cdrom.cc:585
 #, c-format
 msgid "Using CD-ROM mount point %s\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:579 apt-pkg/cdrom.cc:603
+#: apt-pkg/cdrom.cc:603
 msgid "Unmounting CD-ROM\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:583 apt-pkg/cdrom.cc:607
+#: apt-pkg/cdrom.cc:607
 msgid "Waiting for disc...\n"
 msgstr ""
 
 #. Mount the new CDROM
-#: apt-pkg/cdrom.cc:591 apt-pkg/cdrom.cc:615
+#: apt-pkg/cdrom.cc:615
 msgid "Mounting CD-ROM...\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:609 apt-pkg/cdrom.cc:633
+#: apt-pkg/cdrom.cc:633
 msgid "Scanning disc for index files..\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:647
+#: apt-pkg/cdrom.cc:673
 #, c-format
-msgid "Found %i package indexes, %i source indexes and %i signatures\n"
+msgid ""
+"Found %i package indexes, %i source indexes, %i translation indexes and %i "
+"signatures\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:710 apt-pkg/cdrom.cc:737
+#: apt-pkg/cdrom.cc:737
 msgid "That is not a valid name, try again.\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:726 apt-pkg/cdrom.cc:753
+#: apt-pkg/cdrom.cc:753
 #, c-format
 msgid ""
 "This disc is called: \n"
 "'%s'\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:730 apt-pkg/cdrom.cc:757
+#: apt-pkg/cdrom.cc:757
 msgid "Copying package lists..."
 msgstr ""
 
-#: apt-pkg/cdrom.cc:754 apt-pkg/cdrom.cc:783
+#: apt-pkg/cdrom.cc:783
 msgid "Writing new source list\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:763 apt-pkg/cdrom.cc:792
+#: apt-pkg/cdrom.cc:792
 msgid "Source list entries for this disc are:\n"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:803 apt-pkg/cdrom.cc:832
+#: apt-pkg/cdrom.cc:832
 msgid "Unmounting CD-ROM..."
 msgstr ""
 
-#: apt-pkg/indexcopy.cc:261 apt-pkg/indexcopy.cc:263 apt-pkg/indexcopy.cc:830
+#: 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
+#: 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
+#: 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
+#: 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 ""
@@ -2572,27 +2315,10 @@ msgstr ""
 msgid "Completely removed %s"
 msgstr ""
 
-#: methods/rsh.cc:330
-msgid "Connection closed prematurely"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:157
-#, c-format
-msgid "Error occured while processing %s (NewFileDesc1)"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:249
-#, c-format
-msgid "Error occured while processing %s (NewFileDesc2)"
-msgstr ""
-
-#: apt-pkg/pkgcachegen.cc:261
-msgid "Wow, you exceeded the number of descriptions this APT is capable of."
+#: methods/rsh.cc:91
+msgid "Failed to create IPC pipe to subprocess"
 msgstr ""
 
-#: apt-pkg/cdrom.cc:673
-#, c-format
-msgid ""
-"Found %i package indexes, %i source indexes, %i translation indexes and %i "
-"signatures\n"
+#: methods/rsh.cc:330
+msgid "Connection closed prematurely"
 msgstr ""