Просмотр исходного кода

* merged the apt--install-recommends branch

Michael Vogt лет назад: 20
Родитель
Сommit
be615841e2
42 измененных файлов с 8441 добавлено и 6893 удалено
  1. 45 11
      apt-pkg/depcache.cc
  2. 1 0
      apt-pkg/depcache.h
  3. 2 0
      apt-pkg/init.cc
  4. 80 59
      cmdline/apt-get.cc
  5. 1 1
      configure.in
  6. 16 0
      debian/changelog
  7. 1 1
      debian/control
  8. 4 0
      doc/examples/configure-index
  9. 129 118
      po/apt-all.pot
  10. 248 204
      po/bg.po
  11. 246 203
      po/bs.po
  12. 248 203
      po/ca.po
  13. 247 203
      po/cs.po
  14. 247 203
      po/cy.po
  15. 247 203
      po/da.po
  16. 248 204
      po/de.po
  17. 249 203
      po/el.po
  18. 247 203
      po/en_GB.po
  19. 249 203
      po/es.po
  20. 247 203
      po/eu.po
  21. 247 203
      po/fi.po
  22. 249 203
      po/fr.po
  23. 247 203
      po/gl.po
  24. 247 203
      po/hu.po
  25. 247 203
      po/it.po
  26. 247 203
      po/ja.po
  27. 247 203
      po/ko.po
  28. 247 203
      po/nb.po
  29. 247 203
      po/nl.po
  30. 247 203
      po/nn.po
  31. 247 203
      po/pl.po
  32. 247 203
      po/pt.po
  33. 247 203
      po/pt_BR.po
  34. 248 203
      po/ro.po
  35. 247 203
      po/ru.po
  36. 247 203
      po/sk.po
  37. 247 203
      po/sl.po
  38. 248 204
      po/sv.po
  39. 248 204
      po/tl.po
  40. 247 203
      po/vi.po
  41. 247 203
      po/zh_CN.po
  42. 247 203
      po/zh_TW.po

+ 45 - 11
apt-pkg/depcache.cc

@@ -778,7 +778,8 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
       installed */
       installed */
    StateCache &P = PkgState[Pkg->ID];
    StateCache &P = PkgState[Pkg->ID];
    P.iFlags &= ~AutoKept;
    P.iFlags &= ~AutoKept;
-   if (P.InstBroken() == false && (P.Mode == ModeInstall ||
+   if ((P.InstPolicyBroken() == false && P.InstBroken() == false) && 
+       (P.Mode == ModeInstall ||
 	P.CandidateVer == (Version *)Pkg.CurrentVer()))
 	P.CandidateVer == (Version *)Pkg.CurrentVer()))
    {
    {
       if (P.CandidateVer == (Version *)Pkg.CurrentVer() && P.InstallVer == 0)
       if (P.CandidateVer == (Version *)Pkg.CurrentVer() && P.InstallVer == 0)
@@ -789,11 +790,9 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
    // See if there is even any possible instalation candidate
    // See if there is even any possible instalation candidate
    if (P.CandidateVer == 0)
    if (P.CandidateVer == 0)
       return;
       return;
-   
    // We dont even try to install virtual packages..
    // We dont even try to install virtual packages..
    if (Pkg->VersionList == 0)
    if (Pkg->VersionList == 0)
       return;
       return;
-   
    /* Target the candidate version and remove the autoflag. We reset the
    /* Target the candidate version and remove the autoflag. We reset the
       autoflag below if this was called recursively. Otherwise the user
       autoflag below if this was called recursively. Otherwise the user
       should have the ability to de-auto a package by changing its state */
       should have the ability to de-auto a package by changing its state */
@@ -850,7 +849,33 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
 	 it will be installed. Otherwise we only worry about critical deps */
 	 it will be installed. Otherwise we only worry about critical deps */
       if (IsImportantDep(Start) == false)
       if (IsImportantDep(Start) == false)
 	 continue;
 	 continue;
-      if (Pkg->CurrentVer != 0 && Start.IsCritical() == false)
+
+      /* check if any ImportantDep() (but not Critial) where added
+       * since we installed the thing
+       */
+      bool isNewImportantDep = false;
+      if(IsImportantDep(Start) && !Start.IsCritical())
+      {
+	 bool found=false;
+	 VerIterator instVer = Pkg.CurrentVer();
+	 for (DepIterator D = instVer.DependsList(); !D.end(); D++)
+	 {
+	    //FIXME: deal better with or-groups(?)
+	    DepIterator LocalStart = D;
+	    
+	    if(IsImportantDep(Dep) && Start.TargetPkg() == D.TargetPkg())
+	       found=true;
+	 }
+	 // this is a new dep if it was not found to be already
+	 // a important dep of the installed pacakge
+	 isNewImportantDep = !found;
+      }
+      if(isNewImportantDep)
+	 if(_config->FindB("Debug::pkgDepCache::AutoInstall",false) == true)
+	    std::clog << "new important dependency: " 
+		      << Start.TargetPkg().Name() << std::endl;
+
+      if (Pkg->CurrentVer != 0 && Start.IsCritical() == false && !isNewImportantDep)
 	 continue;
 	 continue;
       
       
       /* If we are in an or group locate the first or that can 
       /* If we are in an or group locate the first or that can 
@@ -1055,13 +1080,6 @@ pkgCache::VerIterator pkgDepCache::Policy::GetCandidateVer(PkgIterator Pkg)
    return Last;
    return Last;
 }
 }
 									/*}}}*/
 									/*}}}*/
-// Policy::IsImportantDep - True if the dependency is important		/*{{{*/
-// ---------------------------------------------------------------------
-/* */
-bool pkgDepCache::Policy::IsImportantDep(DepIterator Dep)
-{
-   return Dep.IsCritical();
-}
 									/*}}}*/
 									/*}}}*/
 
 
 pkgDepCache::DefaultRootSetFunc::DefaultRootSetFunc()
 pkgDepCache::DefaultRootSetFunc::DefaultRootSetFunc()
@@ -1276,3 +1294,19 @@ bool pkgDepCache::Sweep()
 
 
    return true;
    return true;
 }
 }
+
+// Policy::IsImportantDep - True if the dependency is important		/*{{{*/
+// ---------------------------------------------------------------------
+/* */
+bool pkgDepCache::Policy::IsImportantDep(DepIterator Dep)
+{
+   if(Dep.IsCritical())
+      return true;
+   else if(Dep->Type == pkgCache::Dep::Recommends)
+      return  _config->FindB("APT::Install-Recommends", false);
+   else if(Dep->Type == pkgCache::Dep::Suggests)
+     return _config->FindB("APT::Install-Suggests", false);
+
+   return false;
+}
+									/*}}}*/

+ 1 - 0
apt-pkg/depcache.h

@@ -249,6 +249,7 @@ class pkgDepCache : protected pkgCache::Namespace
       inline bool Held() const {return Status != 0 && Keep();};
       inline bool Held() const {return Status != 0 && Keep();};
       inline bool NowBroken() const {return (DepState & DepNowMin) != DepNowMin;};
       inline bool NowBroken() const {return (DepState & DepNowMin) != DepNowMin;};
       inline bool InstBroken() const {return (DepState & DepInstMin) != DepInstMin;};
       inline bool InstBroken() const {return (DepState & DepInstMin) != DepInstMin;};
+      inline bool InstPolicyBroken() const {return (DepState & DepInstPolicy) != DepInstPolicy;};
       inline bool Install() const {return Mode == ModeInstall;};
       inline bool Install() const {return Mode == ModeInstall;};
       inline VerIterator InstVerIter(pkgCache &Cache)
       inline VerIterator InstVerIter(pkgCache &Cache)
                 {return VerIterator(Cache,InstallVer);};
                 {return VerIterator(Cache,InstallVer);};

+ 2 - 0
apt-pkg/init.cc

@@ -40,6 +40,8 @@ bool pkgInitConfig(Configuration &Cnf)
    else
    else
       Cnf.Set("APT::Architecture",COMMON_OS "-" COMMON_CPU);
       Cnf.Set("APT::Architecture",COMMON_OS "-" COMMON_CPU);
    Cnf.Set("APT::Build-Essential::", "build-essential");
    Cnf.Set("APT::Build-Essential::", "build-essential");
+   Cnf.Set("APT::Install-Recommends", false);
+   Cnf.Set("APT::Install-Suggests", false);
    Cnf.Set("Dir","/");
    Cnf.Set("Dir","/");
    
    
    // State   
    // State   

+ 80 - 59
cmdline/apt-get.cc

@@ -1146,9 +1146,11 @@ bool TryToInstall(pkgCache::PkgIterator Pkg,pkgDepCache &Cache,
    else
    else
       ExpectedInst++;
       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);
       Cache.MarkInstall(Pkg,true);
+
    return true;
    return true;
 }
 }
 									/*}}}*/
 									/*}}}*/
@@ -1680,68 +1682,86 @@ bool DoInstall(CommandLine &CmdL)
       string SuggestsVersions, RecommendsVersions;
       string SuggestsVersions, RecommendsVersions;
       for (unsigned J = 0; J < Cache->Head().PackageCount; J++)
       for (unsigned J = 0; J < Cache->Head().PackageCount; J++)
       {
       {
-	 pkgCache::PkgIterator I(Cache,Cache.List[J]);
+	 pkgCache::PkgIterator Pkg(Cache,Cache.List[J]);
 
 
 	 /* Just look at the ones we want to install */
 	 /* Just look at the ones we want to install */
-	 if ((*Cache)[I].Install() == false)
+	 if ((*Cache)[Pkg].Install() == false)
 	   continue;
 	   continue;
 
 
-	 for (pkgCache::VerIterator V = I.VersionList(); V.end() == false; V++)
-         {
-	     for (pkgCache::DepIterator D = V.DependsList(); D.end() == false; )
-             {
-		 pkgCache::DepIterator Start;
-		 pkgCache::DepIterator End;
-		 D.GlobOr(Start,End); // advances D
-
-		 /* 
-		  * If this is a virtual package, we need to check the list of
-		  * packages that provide it and see if any of those are
-		  * installed
-		  */
-		 
-		 bool providedBySomething = false;
-		 for (pkgCache::PrvIterator Prv = Start.TargetPkg().ProvidesList();
-                      Prv.end() != true;
-                      Prv++)
-		    if ((*Cache)[Prv.OwnerPkg()].InstVerIter(*Cache).end() == false)
-                    {
-		       providedBySomething = true;
-		       break;
-		    }
-
-		 if (providedBySomething) continue;
-            
-                 for(;;)
-                 {
-                     /* Skip if package is  installed already, or is about to be */
-                     string target = string(Start.TargetPkg().Name()) + " ";
-
-                     if ((*Start.TargetPkg()).SelectedState == pkgCache::State::Install
-                         || Cache[Start.TargetPkg()].Install())
-                       break;
-
-                     /* Skip if we already saw it */
-                     if (int(SuggestsList.find(target)) != -1 || int(RecommendsList.find(target)) != -1)
-                       break; 
-
-		     if (Start->Type == pkgCache::Dep::Suggests) {
-		       SuggestsList += target;
-		       SuggestsVersions += string(Cache[Start.TargetPkg()].CandVersion) + "\n";
-		     }
-		     
-		     if (Start->Type == pkgCache::Dep::Recommends) {
-		       RecommendsList += target;
-		       RecommendsVersions += string(Cache[Start.TargetPkg()].CandVersion) + "\n";
-		     }
-
-                     if (Start >= End)
-                        break;
-                     Start++;
-                 }
-             }
-         }
+	 // get the recommends/suggests for the candidate ver
+	 pkgCache::VerIterator CV = (*Cache)[Pkg].CandidateVerIter(*Cache);
+	 for (pkgCache::DepIterator D = CV.DependsList(); D.end() == false; )
+	 {
+	    pkgCache::DepIterator Start;
+	    pkgCache::DepIterator End;
+	    D.GlobOr(Start,End); // advances D
+
+	    // FIXME: we really should display a or-group as a or-group to the user
+	    //        the problem is that ShowList is incapable of doing this
+	    string RecommendsOrList,RecommendsOrVersions;
+	    string SuggestsOrList,SuggestsOrVersions;
+	    bool foundInstalledInOrGroup = false;
+	    for(;;)
+	    {
+	       /* Skip if package is  installed already, or is about to be */
+	       string target = string(Start.TargetPkg().Name()) + " ";
+	       
+	       if ((*Start.TargetPkg()).SelectedState == pkgCache::State::Install
+		   || Cache[Start.TargetPkg()].Install())
+	       {
+		  foundInstalledInOrGroup=true;
+		  break;
+	       }
+
+	       /* Skip if we already saw it */
+	       if (int(SuggestsList.find(target)) != -1 || int(RecommendsList.find(target)) != -1)
+	       {
+		  foundInstalledInOrGroup=true;
+		  break; 
+	       }
+
+	       // this is a dep on a virtual pkg, check if any package that provides it
+	       // should be installed
+	       if(Start.TargetPkg().ProvidesList() != 0)
+	       {
+		  pkgCache::PrvIterator I = Start.TargetPkg().ProvidesList();
+		  for (; I.end() == false; I++)
+		  {
+		     pkgCache::PkgIterator Pkg = I.OwnerPkg();
+		     if (Cache[Pkg].CandidateVerIter(Cache) == I.OwnerVer() && 
+			 Pkg.CurrentVer() != 0)
+			foundInstalledInOrGroup=true;
+		  }
+	       }
+
+	       if (Start->Type == pkgCache::Dep::Suggests) 
+	       {
+		  SuggestsOrList += target;
+		  SuggestsOrVersions += string(Cache[Start.TargetPkg()].CandVersion) + "\n";
+	       }
+	       
+	       if (Start->Type == pkgCache::Dep::Recommends) 
+	       {
+		  RecommendsOrList += target;
+		  RecommendsOrVersions += string(Cache[Start.TargetPkg()].CandVersion) + "\n";
+	       }
+
+	       if (Start >= End)
+		  break;
+	       Start++;
+	    }
+	    
+	    if(foundInstalledInOrGroup == false)
+	    {
+	       RecommendsList += RecommendsOrList;
+	       RecommendsVersions += RecommendsOrVersions;
+	       SuggestsList += SuggestsOrList;
+	       SuggestsVersions += SuggestsOrVersions;
+	    }
+	       
+	 }
       }
       }
+
       ShowList(c1out,_("Suggested packages:"),SuggestsList,SuggestsVersions);
       ShowList(c1out,_("Suggested packages:"),SuggestsList,SuggestsVersions);
       ShowList(c1out,_("Recommended packages:"),RecommendsList,RecommendsVersions);
       ShowList(c1out,_("Recommended packages:"),RecommendsList,RecommendsVersions);
 
 
@@ -2597,6 +2617,7 @@ int main(int argc,const char *argv[])
       {0,"arch-only","APT::Get::Arch-Only",0},
       {0,"arch-only","APT::Get::Arch-Only",0},
       {0,"auto-remove","APT::Get::AutomaticRemove",0},
       {0,"auto-remove","APT::Get::AutomaticRemove",0},
       {0,"allow-unauthenticated","APT::Get::AllowUnauthenticated",0},
       {0,"allow-unauthenticated","APT::Get::AllowUnauthenticated",0},
+      {0,"install-recommends","APT::Install-Recommends",CommandLine::Boolean},
       {'c',"config-file",0,CommandLine::ConfigFile},
       {'c',"config-file",0,CommandLine::ConfigFile},
       {'o',"option",0,CommandLine::ArbItem},
       {'o',"option",0,CommandLine::ArbItem},
       {0,0,0,0}};
       {0,0,0,0}};

+ 1 - 1
configure.in

@@ -18,7 +18,7 @@ AC_CONFIG_AUX_DIR(buildlib)
 AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in)
 AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in)
 
 
 dnl -- SET THIS TO THE RELEASE VERSION --
 dnl -- SET THIS TO THE RELEASE VERSION --
-AC_DEFINE_UNQUOTED(VERSION,"0.6.45")
+AC_DEFINE_UNQUOTED(VERSION,"0.6.45ubuntu1")
 PACKAGE="apt"
 PACKAGE="apt"
 AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
 AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
 AC_SUBST(PACKAGE)
 AC_SUBST(PACKAGE)

+ 16 - 0
debian/changelog

@@ -1,3 +1,19 @@
+apt (0.6.45ubuntu2) edgy; urgency=low
+
+  * debian/control:
+    - switched to libdb4.4 for building (closes: #381019)
+  * cmdline/apt-get.cc:
+    - show only the recommends/suggests for the candidate-version, not for all
+      versions of the package (closes: #257054)
+    - properly handle recommends/suggests or-groups when printing the list of
+      suggested/recommends packages (closes: #311619)
+  * merged "apt--install-recommends" branch:
+    - added "{no-}install-recommends" commandline option
+    - added APT::Install-{Recommends,Suggests} option
+    - currently Install-Recommends defaults to "False" 
+
+ -- Michael Vogt <michael.vogt@ubuntu.com>  Wed,  9 Aug 2006 23:38:46 +0200
+
 apt (0.6.45ubuntu1) edgy; urgency=low
 apt (0.6.45ubuntu1) edgy; urgency=low
 
 
   * merged with debian/unstable
   * merged with debian/unstable

+ 1 - 1
debian/control

@@ -4,7 +4,7 @@ Priority: important
 Maintainer: APT Development Team <deity@lists.debian.org>
 Maintainer: APT Development Team <deity@lists.debian.org>
 Uploaders: Jason Gunthorpe <jgg@debian.org>, Adam Heath <doogie@debian.org>, Matt Zimmerman <mdz@debian.org>, Michael Vogt <mvo@debian.org>
 Uploaders: Jason Gunthorpe <jgg@debian.org>, Adam Heath <doogie@debian.org>, Matt Zimmerman <mdz@debian.org>, Michael Vogt <mvo@debian.org>
 Standards-Version: 3.6.2.2
 Standards-Version: 3.6.2.2
-Build-Depends: debhelper (>= 5.0), libdb4.3-dev, gettext (>= 0.12)
+Build-Depends: debhelper (>= 5.0), libdb4.4-dev, gettext (>= 0.12)
 Build-Depends-Indep: debiandoc-sgml, docbook-utils (>= 0.6.12-1)
 Build-Depends-Indep: debiandoc-sgml, docbook-utils (>= 0.6.12-1)
 
 
 Package: apt
 Package: apt

+ 4 - 0
doc/examples/configure-index

@@ -94,6 +94,10 @@ APT
   Cache-Limit "4194304";
   Cache-Limit "4194304";
   Default-Release "";
   Default-Release "";
 
 
+  // consider Recommends, Suggests as important dependencies that should
+  // be installed by default
+  APT::Install-Recommends "false";
+  APT::Install-Suggests "false";
 
 
   // Write progress messages on this fd (for stuff like base-config)
   // Write progress messages on this fd (for stuff like base-config)
   Status-Fd "-1";
   Status-Fd "-1";

+ 129 - 118
po/apt-all.pot

@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-07-26 10:56+0200\n"
+"POT-Creation-Date: 2006-08-09 23:46+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -148,7 +148,7 @@ msgstr ""
 
 
 #: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70
 #: 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-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550
-#: cmdline/apt-get.cc:2430 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:2462 cmdline/apt-sortpkgs.cc:144
 #, c-format
 #, c-format
 msgid "%s %s for %s %s compiled on %s %s\n"
 msgid "%s %s for %s %s compiled on %s %s\n"
 msgstr ""
 msgstr ""
@@ -243,7 +243,7 @@ msgid ""
 "  -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
 "  -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:712
+#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:714
 #, c-format
 #, c-format
 msgid "Unable to write to %s"
 msgid "Unable to write to %s"
 msgstr ""
 msgstr ""
@@ -327,115 +327,126 @@ msgstr ""
 msgid "Some files are missing in the package file group `%s'"
 msgid "Some files are missing in the package file group `%s'"
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/cachedb.cc:45
+#: ftparchive/cachedb.cc:47
 #, c-format
 #, c-format
 msgid "DB was corrupted, file renamed to %s.old"
 msgid "DB was corrupted, file renamed to %s.old"
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/cachedb.cc:63
+#: ftparchive/cachedb.cc:65
 #, c-format
 #, c-format
 msgid "DB is old, attempting to upgrade %s"
 msgid "DB is old, attempting to upgrade %s"
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/cachedb.cc:73
+#: 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
 #, c-format
 msgid "Unable to open DB file %s: %s"
 msgid "Unable to open DB file %s: %s"
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/cachedb.cc:114
+#: 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
 #, c-format
-msgid "File date has changed %s"
+msgid "Failed to stat %s"
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/cachedb.cc:155
+#: ftparchive/cachedb.cc:242
 msgid "Archive has no control record"
 msgid "Archive has no control record"
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/cachedb.cc:267
+#: ftparchive/cachedb.cc:448
 msgid "Unable to get a cursor"
 msgid "Unable to get a cursor"
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/writer.cc:78
+#: ftparchive/writer.cc:79
 #, c-format
 #, c-format
 msgid "W: Unable to read directory %s\n"
 msgid "W: Unable to read directory %s\n"
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/writer.cc:83
+#: ftparchive/writer.cc:84
 #, c-format
 #, c-format
 msgid "W: Unable to stat %s\n"
 msgid "W: Unable to stat %s\n"
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/writer.cc:125
+#: ftparchive/writer.cc:135
 msgid "E: "
 msgid "E: "
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/writer.cc:127
+#: ftparchive/writer.cc:137
 msgid "W: "
 msgid "W: "
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/writer.cc:134
+#: ftparchive/writer.cc:144
 msgid "E: Errors apply to file "
 msgid "E: Errors apply to file "
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/writer.cc:151 ftparchive/writer.cc:181
+#: ftparchive/writer.cc:161 ftparchive/writer.cc:191
 #, c-format
 #, c-format
 msgid "Failed to resolve %s"
 msgid "Failed to resolve %s"
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/writer.cc:163
+#: ftparchive/writer.cc:173
 msgid "Tree walking failed"
 msgid "Tree walking failed"
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/writer.cc:188
+#: ftparchive/writer.cc:198
 #, c-format
 #, c-format
 msgid "Failed to open %s"
 msgid "Failed to open %s"
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/writer.cc:245
+#: ftparchive/writer.cc:257
 #, c-format
 #, c-format
 msgid " DeLink %s [%s]\n"
 msgid " DeLink %s [%s]\n"
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/writer.cc:253
+#: ftparchive/writer.cc:265
 #, c-format
 #, c-format
 msgid "Failed to readlink %s"
 msgid "Failed to readlink %s"
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/writer.cc:257
+#: ftparchive/writer.cc:269
 #, c-format
 #, c-format
 msgid "Failed to unlink %s"
 msgid "Failed to unlink %s"
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/writer.cc:264
+#: ftparchive/writer.cc:276
 #, c-format
 #, c-format
 msgid "*** Failed to link %s to %s"
 msgid "*** Failed to link %s to %s"
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/writer.cc:274
+#: ftparchive/writer.cc:286
 #, c-format
 #, c-format
 msgid " DeLink limit of %sB hit.\n"
 msgid " DeLink limit of %sB hit.\n"
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/writer.cc:358 apt-inst/extract.cc:181 apt-inst/extract.cc:193
-#: apt-inst/extract.cc:210 apt-inst/deb/dpkgdb.cc:121 methods/gpgv.cc:266
-#, c-format
-msgid "Failed to stat %s"
-msgstr ""
-
-#: ftparchive/writer.cc:386
+#: ftparchive/writer.cc:390
 msgid "Archive had no package field"
 msgid "Archive had no package field"
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/writer.cc:394 ftparchive/writer.cc:603
+#: ftparchive/writer.cc:398 ftparchive/writer.cc:613
 #, c-format
 #, c-format
 msgid "  %s has no override entry\n"
 msgid "  %s has no override entry\n"
 msgstr ""
 msgstr ""
 
 
-#: ftparchive/writer.cc:437 ftparchive/writer.cc:689
+#: ftparchive/writer.cc:443 ftparchive/writer.cc:701
 #, c-format
 #, c-format
 msgid "  %s maintainer is %s not %s\n"
 msgid "  %s maintainer is %s not %s\n"
 msgstr ""
 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
 #: ftparchive/contents.cc:317
 #, c-format
 #, c-format
 msgid "Internal error, could not locate member %s"
 msgid "Internal error, could not locate member %s"
@@ -535,7 +546,7 @@ msgstr ""
 msgid "Y"
 msgid "Y"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:143 cmdline/apt-get.cc:1560
+#: cmdline/apt-get.cc:143 cmdline/apt-get.cc:1574
 #, c-format
 #, c-format
 msgid "Regex compilation error - %s"
 msgid "Regex compilation error - %s"
 msgstr ""
 msgstr ""
@@ -694,11 +705,11 @@ msgstr ""
 msgid "Internal error, Ordering didn't finish"
 msgid "Internal error, Ordering didn't finish"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:792 cmdline/apt-get.cc:1861 cmdline/apt-get.cc:1894
+#: cmdline/apt-get.cc:792 cmdline/apt-get.cc:1893 cmdline/apt-get.cc:1926
 msgid "Unable to lock the download directory"
 msgid "Unable to lock the download directory"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:802 cmdline/apt-get.cc:1942 cmdline/apt-get.cc:2178
+#: cmdline/apt-get.cc:802 cmdline/apt-get.cc:1974 cmdline/apt-get.cc:2210
 #: apt-pkg/cachefile.cc:67
 #: apt-pkg/cachefile.cc:67
 msgid "The list of sources could not be read."
 msgid "The list of sources could not be read."
 msgstr ""
 msgstr ""
@@ -727,7 +738,7 @@ msgstr ""
 msgid "After unpacking %sB disk space will be freed.\n"
 msgid "After unpacking %sB disk space will be freed.\n"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:847 cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:847 cmdline/apt-get.cc:2064
 #, c-format
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgid "Couldn't determine free space in %s"
 msgstr ""
 msgstr ""
@@ -761,7 +772,7 @@ msgstr ""
 msgid "Do you want to continue [Y/n]? "
 msgid "Do you want to continue [Y/n]? "
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:962 cmdline/apt-get.cc:1366 cmdline/apt-get.cc:2075
+#: cmdline/apt-get.cc:962 cmdline/apt-get.cc:1369 cmdline/apt-get.cc:2107
 #, c-format
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgid "Failed to fetch %s  %s\n"
 msgstr ""
 msgstr ""
@@ -770,7 +781,7 @@ msgstr ""
 msgid "Some files failed to download"
 msgid "Some files failed to download"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:981 cmdline/apt-get.cc:2084
+#: cmdline/apt-get.cc:981 cmdline/apt-get.cc:2116
 msgid "Download complete and in download only mode"
 msgid "Download complete and in download only mode"
 msgstr ""
 msgstr ""
 
 
@@ -847,78 +858,78 @@ msgstr ""
 msgid "%s is already the newest version.\n"
 msgid "%s is already the newest version.\n"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1169
+#: cmdline/apt-get.cc:1171
 #, c-format
 #, c-format
 msgid "Release '%s' for '%s' was not found"
 msgid "Release '%s' for '%s' was not found"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1171
+#: cmdline/apt-get.cc:1173
 #, c-format
 #, c-format
 msgid "Version '%s' for '%s' was not found"
 msgid "Version '%s' for '%s' was not found"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1177
+#: cmdline/apt-get.cc:1179
 #, c-format
 #, c-format
 msgid "Selected version %s (%s) for %s\n"
 msgid "Selected version %s (%s) for %s\n"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1314
+#: cmdline/apt-get.cc:1316
 msgid "The update command takes no arguments"
 msgid "The update command takes no arguments"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1327
+#: cmdline/apt-get.cc:1329
 msgid "Unable to lock the list directory"
 msgid "Unable to lock the list directory"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1385
+#: cmdline/apt-get.cc:1396 cmdline/apt-get.cc:1398
 msgid ""
 msgid ""
 "Some index files failed to download, they have been ignored, or old ones "
 "Some index files failed to download, they have been ignored, or old ones "
 "used instead."
 "used instead."
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1399
+#: cmdline/apt-get.cc:1412
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgid "We are not supposed to delete stuff, can't start AutoRemover"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1424
+#: cmdline/apt-get.cc:1437
 msgid ""
 msgid ""
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "Hmm, seems like the AutoRemover destroyed something which really\n"
 "shouldn't happen. Please file a bug report against apt."
 "shouldn't happen. Please file a bug report against apt."
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1427 cmdline/apt-get.cc:1628
+#: cmdline/apt-get.cc:1440 cmdline/apt-get.cc:1642
 msgid "The following information may help to resolve the situation:"
 msgid "The following information may help to resolve the situation:"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1431
+#: cmdline/apt-get.cc:1444
 msgid "Internal Error, AutoRemover broke stuff"
 msgid "Internal Error, AutoRemover broke stuff"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1450
+#: cmdline/apt-get.cc:1463
 msgid "Internal error, AllUpgrade broke stuff"
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1547 cmdline/apt-get.cc:1583
+#: cmdline/apt-get.cc:1561 cmdline/apt-get.cc:1597
 #, c-format
 #, c-format
 msgid "Couldn't find package %s"
 msgid "Couldn't find package %s"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1570
+#: cmdline/apt-get.cc:1584
 #, c-format
 #, c-format
 msgid "Note, selecting %s for regex '%s'\n"
 msgid "Note, selecting %s for regex '%s'\n"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1600
+#: cmdline/apt-get.cc:1614
 msgid "You might want to run `apt-get -f install' to correct these:"
 msgid "You might want to run `apt-get -f install' to correct these:"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1603
+#: cmdline/apt-get.cc:1617
 msgid ""
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
 "solution)."
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1615
+#: cmdline/apt-get.cc:1629
 msgid ""
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "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"
 "requested an impossible situation or if you are using the unstable\n"
@@ -926,159 +937,159 @@ msgid ""
 "or been moved out of Incoming."
 "or been moved out of Incoming."
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1623
+#: cmdline/apt-get.cc:1637
 msgid ""
 msgid ""
 "Since you only requested a single operation it is extremely likely that\n"
 "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"
 "the package is simply not installable and a bug report against\n"
 "that package should be filed."
 "that package should be filed."
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1631
+#: cmdline/apt-get.cc:1645
 msgid "Broken packages"
 msgid "Broken packages"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1662
+#: cmdline/apt-get.cc:1676
 msgid "The following extra packages will be installed:"
 msgid "The following extra packages will be installed:"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1733
+#: cmdline/apt-get.cc:1765
 msgid "Suggested packages:"
 msgid "Suggested packages:"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1734
+#: cmdline/apt-get.cc:1766
 msgid "Recommended packages:"
 msgid "Recommended packages:"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1754
+#: cmdline/apt-get.cc:1786
 msgid "Calculating upgrade... "
 msgid "Calculating upgrade... "
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1757 methods/ftp.cc:702 methods/connect.cc:101
+#: cmdline/apt-get.cc:1789 methods/ftp.cc:702 methods/connect.cc:101
 msgid "Failed"
 msgid "Failed"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1762
+#: cmdline/apt-get.cc:1794
 msgid "Done"
 msgid "Done"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1829 cmdline/apt-get.cc:1837
+#: cmdline/apt-get.cc:1861 cmdline/apt-get.cc:1869
 msgid "Internal error, problem resolver broke stuff"
 msgid "Internal error, problem resolver broke stuff"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1937
+#: cmdline/apt-get.cc:1969
 msgid "Must specify at least one package to fetch source for"
 msgid "Must specify at least one package to fetch source for"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:1967 cmdline/apt-get.cc:2196
+#: cmdline/apt-get.cc:1999 cmdline/apt-get.cc:2228
 #, c-format
 #, c-format
 msgid "Unable to find a source package for %s"
 msgid "Unable to find a source package for %s"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2011
+#: cmdline/apt-get.cc:2043
 #, c-format
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgid "Skipping already downloaded file '%s'\n"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2035
+#: cmdline/apt-get.cc:2067
 #, c-format
 #, c-format
 msgid "You don't have enough free space in %s"
 msgid "You don't have enough free space in %s"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2040
+#: cmdline/apt-get.cc:2072
 #, c-format
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2043
+#: cmdline/apt-get.cc:2075
 #, c-format
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgid "Need to get %sB of source archives.\n"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2049
+#: cmdline/apt-get.cc:2081
 #, c-format
 #, c-format
 msgid "Fetch source %s\n"
 msgid "Fetch source %s\n"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2080
+#: cmdline/apt-get.cc:2112
 msgid "Failed to fetch some archives."
 msgid "Failed to fetch some archives."
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2108
+#: cmdline/apt-get.cc:2140
 #, c-format
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2120
+#: cmdline/apt-get.cc:2152
 #, c-format
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgid "Unpack command '%s' failed.\n"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2121
+#: cmdline/apt-get.cc:2153
 #, c-format
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2138
+#: cmdline/apt-get.cc:2170
 #, c-format
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgid "Build command '%s' failed.\n"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2157
+#: cmdline/apt-get.cc:2189
 msgid "Child process failed"
 msgid "Child process failed"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2173
+#: cmdline/apt-get.cc:2205
 msgid "Must specify at least one package to check builddeps for"
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2201
+#: cmdline/apt-get.cc:2233
 #, c-format
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgid "Unable to get build-dependency information for %s"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2221
+#: cmdline/apt-get.cc:2253
 #, c-format
 #, c-format
 msgid "%s has no build depends.\n"
 msgid "%s has no build depends.\n"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2273
+#: cmdline/apt-get.cc:2305
 #, c-format
 #, c-format
 msgid ""
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 "found"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2325
+#: cmdline/apt-get.cc:2357
 #, c-format
 #, c-format
 msgid ""
 msgid ""
 "%s dependency for %s cannot be satisfied because no available versions of "
 "%s dependency for %s cannot be satisfied because no available versions of "
 "package %s can satisfy version requirements"
 "package %s can satisfy version requirements"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2360
+#: cmdline/apt-get.cc:2392
 #, c-format
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
 msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2385
+#: cmdline/apt-get.cc:2417
 #, c-format
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2399
+#: cmdline/apt-get.cc:2431
 #, c-format
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2403
+#: cmdline/apt-get.cc:2435
 msgid "Failed to process build dependencies"
 msgid "Failed to process build dependencies"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2435
+#: cmdline/apt-get.cc:2467
 msgid "Supported modules:"
 msgid "Supported modules:"
 msgstr ""
 msgstr ""
 
 
-#: cmdline/apt-get.cc:2476
+#: cmdline/apt-get.cc:2508
 msgid ""
 msgid ""
 "Usage: apt-get [options] command\n"
 "Usage: apt-get [options] command\n"
 "       apt-get [options] install|remove pkg1 [pkg2 ...]\n"
 "       apt-get [options] install|remove pkg1 [pkg2 ...]\n"
@@ -1206,19 +1217,19 @@ msgstr ""
 msgid "Failed to create pipes"
 msgid "Failed to create pipes"
 msgstr ""
 msgstr ""
 
 
-#: apt-inst/contrib/extracttar.cc:143
+#: apt-inst/contrib/extracttar.cc:144
 msgid "Failed to exec gzip "
 msgid "Failed to exec gzip "
 msgstr ""
 msgstr ""
 
 
-#: apt-inst/contrib/extracttar.cc:180 apt-inst/contrib/extracttar.cc:206
+#: apt-inst/contrib/extracttar.cc:181 apt-inst/contrib/extracttar.cc:207
 msgid "Corrupted archive"
 msgid "Corrupted archive"
 msgstr ""
 msgstr ""
 
 
-#: apt-inst/contrib/extracttar.cc:195
+#: apt-inst/contrib/extracttar.cc:196
 msgid "Tar checksum failed, archive corrupted"
 msgid "Tar checksum failed, archive corrupted"
 msgstr ""
 msgstr ""
 
 
-#: apt-inst/contrib/extracttar.cc:298
+#: apt-inst/contrib/extracttar.cc:299
 #, c-format
 #, c-format
 msgid "Unknown TAR header type %u, member %s"
 msgid "Unknown TAR header type %u, member %s"
 msgstr ""
 msgstr ""
@@ -1363,9 +1374,9 @@ msgid "The info and temp directories need to be on the same filesystem"
 msgstr ""
 msgstr ""
 
 
 #. Build the status cache
 #. Build the status cache
-#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:645
-#: apt-pkg/pkgcachegen.cc:714 apt-pkg/pkgcachegen.cc:719
-#: apt-pkg/pkgcachegen.cc:842
+#: apt-inst/deb/dpkgdb.cc:139 apt-pkg/pkgcachegen.cc:647
+#: apt-pkg/pkgcachegen.cc:716 apt-pkg/pkgcachegen.cc:721
+#: apt-pkg/pkgcachegen.cc:844
 msgid "Reading package lists"
 msgid "Reading package lists"
 msgstr ""
 msgstr ""
 
 
@@ -1493,12 +1504,12 @@ msgstr ""
 msgid "File not found"
 msgid "File not found"
 msgstr ""
 msgstr ""
 
 
-#: methods/copy.cc:42 methods/gpgv.cc:275 methods/gzip.cc:133
+#: methods/copy.cc:42 methods/gpgv.cc:281 methods/gzip.cc:133
 #: methods/gzip.cc:142
 #: methods/gzip.cc:142
 msgid "Failed to stat"
 msgid "Failed to stat"
 msgstr ""
 msgstr ""
 
 
-#: methods/copy.cc:79 methods/gpgv.cc:272 methods/gzip.cc:139
+#: methods/copy.cc:79 methods/gpgv.cc:278 methods/gzip.cc:139
 msgid "Failed to set modification time"
 msgid "Failed to set modification time"
 msgstr ""
 msgstr ""
 
 
@@ -1708,38 +1719,38 @@ msgstr ""
 msgid "Unable to connect to %s %s:"
 msgid "Unable to connect to %s %s:"
 msgstr ""
 msgstr ""
 
 
-#: methods/gpgv.cc:64
+#: methods/gpgv.cc:65
 #, c-format
 #, c-format
 msgid "Couldn't access keyring: '%s'"
 msgid "Couldn't access keyring: '%s'"
 msgstr ""
 msgstr ""
 
 
-#: methods/gpgv.cc:99
+#: methods/gpgv.cc:100
 msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting."
 msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting."
 msgstr ""
 msgstr ""
 
 
-#: methods/gpgv.cc:198
+#: methods/gpgv.cc:204
 msgid ""
 msgid ""
 "Internal error: Good signature, but could not determine key fingerprint?!"
 "Internal error: Good signature, but could not determine key fingerprint?!"
 msgstr ""
 msgstr ""
 
 
-#: methods/gpgv.cc:203
+#: methods/gpgv.cc:209
 msgid "At least one invalid signature was encountered."
 msgid "At least one invalid signature was encountered."
 msgstr ""
 msgstr ""
 
 
-#: methods/gpgv.cc:207
+#: methods/gpgv.cc:213
 #, c-format
 #, c-format
 msgid "Could not execute '%s' to verify signature (is gnupg installed?)"
 msgid "Could not execute '%s' to verify signature (is gnupg installed?)"
 msgstr ""
 msgstr ""
 
 
-#: methods/gpgv.cc:212
+#: methods/gpgv.cc:218
 msgid "Unknown error executing gpgv"
 msgid "Unknown error executing gpgv"
 msgstr ""
 msgstr ""
 
 
-#: methods/gpgv.cc:243
+#: methods/gpgv.cc:249
 msgid "The following signatures were invalid:\n"
 msgid "The following signatures were invalid:\n"
 msgstr ""
 msgstr ""
 
 
-#: methods/gpgv.cc:250
+#: methods/gpgv.cc:256
 msgid ""
 msgid ""
 "The following signatures couldn't be verified because the public key is not "
 "The following signatures couldn't be verified because the public key is not "
 "available:\n"
 "available:\n"
@@ -2129,12 +2140,12 @@ msgstr ""
 msgid "Failed to write temporary StateFile %s"
 msgid "Failed to write temporary StateFile %s"
 msgstr ""
 msgstr ""
 
 
-#: apt-pkg/tagfile.cc:72
+#: apt-pkg/tagfile.cc:85 apt-pkg/tagfile.cc:92
 #, c-format
 #, c-format
 msgid "Unable to parse package file %s (1)"
 msgid "Unable to parse package file %s (1)"
 msgstr ""
 msgstr ""
 
 
-#: apt-pkg/tagfile.cc:103
+#: apt-pkg/tagfile.cc:186
 #, c-format
 #, c-format
 msgid "Unable to parse package file %s (2)"
 msgid "Unable to parse package file %s (2)"
 msgstr ""
 msgstr ""
@@ -2250,17 +2261,17 @@ msgstr ""
 msgid "Method %s did not start correctly"
 msgid "Method %s did not start correctly"
 msgstr ""
 msgstr ""
 
 
-#: apt-pkg/acquire-worker.cc:377
+#: apt-pkg/acquire-worker.cc:384
 #, c-format
 #, c-format
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter."
 msgstr ""
 msgstr ""
 
 
-#: apt-pkg/init.cc:120
+#: apt-pkg/init.cc:122
 #, c-format
 #, c-format
 msgid "Packaging system '%s' is not supported"
 msgid "Packaging system '%s' is not supported"
 msgstr ""
 msgstr ""
 
 
-#: apt-pkg/init.cc:136
+#: apt-pkg/init.cc:138
 msgid "Unable to determine a suitable packaging system type"
 msgid "Unable to determine a suitable packaging system type"
 msgstr ""
 msgstr ""
 
 
@@ -2360,16 +2371,16 @@ msgstr ""
 msgid "Package %s %s was not found while processing file dependencies"
 msgid "Package %s %s was not found while processing file dependencies"
 msgstr ""
 msgstr ""
 
 
-#: apt-pkg/pkgcachegen.cc:576
+#: apt-pkg/pkgcachegen.cc:577
 #, c-format
 #, c-format
 msgid "Couldn't stat source package list %s"
 msgid "Couldn't stat source package list %s"
 msgstr ""
 msgstr ""
 
 
-#: apt-pkg/pkgcachegen.cc:660
+#: apt-pkg/pkgcachegen.cc:662
 msgid "Collecting File Provides"
 msgid "Collecting File Provides"
 msgstr ""
 msgstr ""
 
 
-#: apt-pkg/pkgcachegen.cc:787 apt-pkg/pkgcachegen.cc:794
+#: apt-pkg/pkgcachegen.cc:789 apt-pkg/pkgcachegen.cc:796
 msgid "IO Error saving source cache"
 msgid "IO Error saving source cache"
 msgstr ""
 msgstr ""
 
 
@@ -2378,35 +2389,35 @@ msgstr ""
 msgid "rename failed, %s (%s -> %s)."
 msgid "rename failed, %s (%s -> %s)."
 msgstr ""
 msgstr ""
 
 
-#: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:945
+#: apt-pkg/acquire-item.cc:236 apt-pkg/acquire-item.cc:951
 msgid "MD5Sum mismatch"
 msgid "MD5Sum mismatch"
 msgstr ""
 msgstr ""
 
 
-#: apt-pkg/acquire-item.cc:640
+#: apt-pkg/acquire-item.cc:646
 msgid "There are no public key available for the following key IDs:\n"
 msgid "There are no public key available for the following key IDs:\n"
 msgstr ""
 msgstr ""
 
 
-#: apt-pkg/acquire-item.cc:753
+#: apt-pkg/acquire-item.cc:759
 #, c-format
 #, c-format
 msgid ""
 msgid ""
 "I wasn't able to locate a file for the %s package. This might mean you need "
 "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)"
 "to manually fix this package. (due to missing arch)"
 msgstr ""
 msgstr ""
 
 
-#: apt-pkg/acquire-item.cc:812
+#: apt-pkg/acquire-item.cc:818
 #, c-format
 #, c-format
 msgid ""
 msgid ""
 "I wasn't able to locate file for the %s package. This might mean you need to "
 "I wasn't able to locate file for the %s package. This might mean you need to "
 "manually fix this package."
 "manually fix this package."
 msgstr ""
 msgstr ""
 
 
-#: apt-pkg/acquire-item.cc:848
+#: apt-pkg/acquire-item.cc:854
 #, c-format
 #, c-format
 msgid ""
 msgid ""
 "The package index files are corrupted. No Filename: field for package %s."
 "The package index files are corrupted. No Filename: field for package %s."
 msgstr ""
 msgstr ""
 
 
-#: apt-pkg/acquire-item.cc:935
+#: apt-pkg/acquire-item.cc:941
 msgid "Size mismatch"
 msgid "Size mismatch"
 msgstr ""
 msgstr ""
 
 

Разница между файлами не показана из-за своего большого размера
+ 248 - 204
po/bg.po


Разница между файлами не показана из-за своего большого размера
+ 246 - 203
po/bs.po


Разница между файлами не показана из-за своего большого размера
+ 248 - 203
po/ca.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/cs.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/cy.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/da.po


Разница между файлами не показана из-за своего большого размера
+ 248 - 204
po/de.po


Разница между файлами не показана из-за своего большого размера
+ 249 - 203
po/el.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/en_GB.po


Разница между файлами не показана из-за своего большого размера
+ 249 - 203
po/es.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/eu.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/fi.po


Разница между файлами не показана из-за своего большого размера
+ 249 - 203
po/fr.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/gl.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/hu.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/it.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/ja.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/ko.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/nb.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/nl.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/nn.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/pl.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/pt.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/pt_BR.po


Разница между файлами не показана из-за своего большого размера
+ 248 - 203
po/ro.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/ru.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/sk.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/sl.po


Разница между файлами не показана из-за своего большого размера
+ 248 - 204
po/sv.po


Разница между файлами не показана из-за своего большого размера
+ 248 - 204
po/tl.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/vi.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/zh_CN.po


Разница между файлами не показана из-за своего большого размера
+ 247 - 203
po/zh_TW.po