Michael Vogt лет назад: 14
Родитель
Сommit
cb6a5776bf
54 измененных файлов с 51591 добавлено и 50207 удалено
  1. 1 0
      .bzrignore
  2. 30 5
      apt-pkg/algorithms.cc
  3. 15 11
      apt-pkg/aptconfiguration.cc
  4. 3 1
      apt-pkg/cacheiterators.h
  5. 1 1
      apt-pkg/cdrom.cc
  6. 5 3
      apt-pkg/contrib/cmndline.cc
  7. 22 9
      apt-pkg/deb/deblistparser.cc
  8. 4 8
      apt-pkg/edsp.cc
  9. 29 0
      apt-pkg/pkgcache.cc
  10. 51 24
      cmdline/apt-get.cc
  11. 1 1
      configure.in
  12. 0 1
      debian/apt-utils.links
  13. 73 8
      debian/changelog
  14. 1 1
      doc/apt-cache.8.xml
  15. 11 11
      doc/apt-cdrom.8.xml
  16. 11 11
      doc/apt-config.8.xml
  17. 3 3
      doc/apt-extracttemplates.1.xml
  18. 20 20
      doc/apt-ftparchive.1.xml
  19. 52 53
      doc/apt-get.8.xml
  20. 5 5
      doc/apt-key.8.xml
  21. 4 4
      doc/apt-mark.8.xml
  22. 31 32
      doc/apt-secure.8.xml
  23. 4 4
      doc/apt-sortpkgs.1.xml
  24. 19 2
      doc/apt-verbatim.ent
  25. 312 274
      doc/apt.conf.5.xml
  26. 32 32
      doc/apt_preferences.5.xml
  27. 1 1
      doc/dpkg-tech.sgml
  28. 3 3
      doc/examples/apt-ftparchive.conf
  29. 1 1
      doc/examples/configure-index
  30. 0 9
      doc/examples/sources.list
  31. 8 0
      doc/examples/sources.list.in
  32. 1 1
      doc/files.sgml
  33. 3 3
      doc/guide.sgml
  34. 3 0
      doc/makefile
  35. 2 2
      doc/method.sgml
  36. 3601 3587
      doc/po/apt-doc.pot
  37. 6591 6062
      doc/po/de.po
  38. 6514 6072
      doc/po/es.po
  39. 6651 6327
      doc/po/fr.po
  40. 3591 3580
      doc/po/it.po
  41. 6374 5993
      doc/po/ja.po
  42. 6642 7754
      doc/po/pl.po
  43. 6587 6134
      doc/po/pt.po
  44. 4115 4093
      doc/po/pt_BR.po
  45. 9 9
      doc/po4a.conf
  46. 48 48
      doc/sources.list.5.xml
  47. 1 1
      ftparchive/apt-ftparchive.cc
  48. 1 0
      prepare-release
  49. 2 1
      test/integration/framework
  50. 3 0
      test/integration/test-apt-get-changelog
  51. 57 0
      test/integration/test-bug-632221-cross-dependency-satisfaction
  52. 32 0
      test/libapt/commandline_test.cc
  53. 4 2
      test/libapt/getlanguages_test.cc
  54. 6 0
      test/libapt/makefile

+ 1 - 0
.bzrignore

@@ -26,4 +26,5 @@ abicheck/tests/
 # apt man pages and other documentation
 ./doc/*/
 !./doc/examples/
+./doc/examples/sources.list
 !./doc/po/

+ 30 - 5
apt-pkg/algorithms.cc

@@ -362,11 +362,36 @@ bool pkgDistUpgrade(pkgDepCache &Cache)
       if (I->CurrentVer != 0)
 	 Cache.MarkInstall(I, true, 0, false);
 
-   /* Now, auto upgrade all essential packages - this ensures that
-      the essential packages are present and working */
-   for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
-      if ((I->Flags & pkgCache::Flag::Essential) == pkgCache::Flag::Essential)
-	 Cache.MarkInstall(I, true, 0, false);
+   /* Now, install each essential package which is not installed
+      (and not provided by another package in the same name group) */
+   std::string essential = _config->Find("pkgCacheGen::Essential", "all");
+   if (essential == "all")
+   {
+      for (pkgCache::GrpIterator G = Cache.GrpBegin(); G.end() == false; ++G)
+      {
+	 bool isEssential = false;
+	 bool instEssential = false;
+	 for (pkgCache::PkgIterator P = G.PackageList(); P.end() == false; P = G.NextPkg(P))
+	 {
+	    if ((P->Flags & pkgCache::Flag::Essential) != pkgCache::Flag::Essential)
+	       continue;
+	    isEssential = true;
+	    if (Cache[P].Install() == true)
+	    {
+	       instEssential = true;
+	       break;
+	    }
+	 }
+	 if (isEssential == false || instEssential == true)
+	    continue;
+	 pkgCache::PkgIterator P = G.FindPreferredPkg();
+	 Cache.MarkInstall(P, true, 0, false);
+      }
+   }
+   else if (essential != "none")
+      for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
+	 if ((I->Flags & pkgCache::Flag::Essential) == pkgCache::Flag::Essential)
+	    Cache.MarkInstall(I, true, 0, false);
    
    /* We do it again over all previously installed packages to force 
       conflict resolution on them all. */

+ 15 - 11
apt-pkg/aptconfiguration.cc

@@ -234,17 +234,21 @@ std::vector<std::string> const Configuration::getLanguages(bool const &All,
 	// override the configuration settings vector of languages.
 	string const forceLang = _config->Find("Acquire::Languages","");
 	if (forceLang.empty() == false) {
-		if (forceLang == "environment") {
-			codes = environment;
-		} else if (forceLang != "none")
-			codes.push_back(forceLang);
-		else //if (forceLang == "none")
-			builtin.clear();
-		allCodes = codes;
-		for (std::vector<string>::const_iterator b = builtin.begin();
-		     b != builtin.end(); ++b)
-			if (std::find(allCodes.begin(), allCodes.end(), *b) == allCodes.end())
-				allCodes.push_back(*b);
+		if (forceLang == "none") {
+			codes.clear();
+			allCodes.clear();
+			allCodes.push_back("none");
+		} else {
+			if (forceLang == "environment")
+				codes = environment;
+			else
+				codes.push_back(forceLang);
+			allCodes = codes;
+			for (std::vector<string>::const_iterator b = builtin.begin();
+			     b != builtin.end(); ++b)
+				if (std::find(allCodes.begin(), allCodes.end(), *b) == allCodes.end())
+					allCodes.push_back(*b);
+		}
 		if (All == true)
 			return allCodes;
 		else

+ 3 - 1
apt-pkg/cacheiterators.h

@@ -285,6 +285,7 @@ class pkgCache::DepIterator : public Iterator<Dependency, DepIterator> {
 	bool IsNegative() const;
 	bool IsIgnorable(PrvIterator const &Prv) const;
 	bool IsIgnorable(PkgIterator const &Pkg) const;
+	bool IsMultiArchImplicit() const;
 	void GlobOr(DepIterator &Start,DepIterator &End);
 	Version **AllTargets() const;
 	bool SmartTargetPkg(PkgIterator &Result) const;
@@ -329,8 +330,9 @@ class pkgCache::PrvIterator : public Iterator<Provides, PrvIterator> {
 	inline VerIterator OwnerVer() const {return VerIterator(*Owner,Owner->VerP + S->Version);};
 	inline PkgIterator OwnerPkg() const {return PkgIterator(*Owner,Owner->PkgP + Owner->VerP[S->Version].ParentPkg);};
 
-	inline PrvIterator() : Iterator<Provides, PrvIterator>(), Type(PrvVer) {};
+	bool IsMultiArchImplicit() const;
 
+	inline PrvIterator() : Iterator<Provides, PrvIterator>(), Type(PrvVer) {};
 	inline PrvIterator(pkgCache &Owner, Provides *Trg, Version*) :
 		Iterator<Provides, PrvIterator>(Owner, Trg), Type(PrvVer) {
 		if (S == 0)

+ 1 - 1
apt-pkg/cdrom.cc

@@ -409,7 +409,7 @@ bool pkgCdrom::WriteDatabase(Configuration &Cnf)
    
    /* Write out all of the configuration directives by walking the
       configuration tree */
-   _config->Dump(Out, NULL, "%f \"%v\";\n", false);
+   Cnf.Dump(Out, NULL, "%f \"%v\";\n", false);
 
    Out.close();
 

+ 5 - 3
apt-pkg/contrib/cmndline.cc

@@ -92,8 +92,9 @@ bool CommandLine::Parse(int argc,const char **argv)
       // Match up to a = against the list
       Args *A;
       const char *OptEnd = strchrnul(Opt, '=');
-      for (A = ArgList; A->end() == false && 
-	   stringcasecmp(Opt,OptEnd,A->LongOpt) != 0; A++);
+      for (A = ArgList; A->end() == false &&
+	   (A->LongOpt == 0 || stringcasecmp(Opt,OptEnd,A->LongOpt) != 0);
+	   ++A);
       
       // Failed, look for a word after the first - (no-foo)
       bool PreceedMatch = false;
@@ -105,7 +106,8 @@ bool CommandLine::Parse(int argc,const char **argv)
 	 Opt++;
 	 
 	 for (A = ArgList; A->end() == false &&
-	      stringcasecmp(Opt,OptEnd,A->LongOpt) != 0; A++);
+	      (A->LongOpt == 0 || stringcasecmp(Opt,OptEnd,A->LongOpt) != 0);
+	      ++A);
 
 	 // Failed again..
 	 if (A->end() == true && OptEnd - Opt != 1)

+ 22 - 9
apt-pkg/deb/deblistparser.cc

@@ -243,13 +243,12 @@ bool debListParser::UsePackage(pkgCache::PkgIterator &Pkg,
    if (Pkg->Section == 0)
       Pkg->Section = UniqFindTagWrite("Section");
 
-   // Packages which are not from the "native" arch doesn't get the essential flag
-   // in the default "native" mode - it is also possible to mark "all" or "none".
-   // The "installed" mode is handled by ParseStatus(), See #544481 and friends.
    string const static myArch = _config->Find("APT::Architecture");
-   string const static essential = _config->Find("pkgCacheGen::Essential", "native");
-   if ((essential == "native" && Pkg->Arch != 0 && myArch == Pkg.Arch()) ||
-       essential == "all")
+   // Possible values are: "all", "native", "installed" and "none"
+   // The "installed" mode is handled by ParseStatus(), See #544481 and friends.
+   string const static essential = _config->Find("pkgCacheGen::Essential", "all");
+   if (essential == "all" ||
+       (essential == "native" && Pkg->Arch != 0 && myArch == Pkg.Arch()))
       if (Section.FindFlag("Essential",Pkg->Flags,pkgCache::Flag::Essential) == false)
 	 return false;
    if (Section.FindFlag("Important",Pkg->Flags,pkgCache::Flag::Important) == false)
@@ -638,16 +637,18 @@ bool debListParser::ParseDepends(pkgCache::VerIterator &Ver,
    if (Section.Find(Tag,Start,Stop) == false)
       return true;
 
-   string Package;
    string const pkgArch = Ver.Arch();
-   string Version;
-   unsigned int Op;
 
    while (1)
    {
+      string Package;
+      string Version;
+      unsigned int Op;
+
       Start = ParseDepends(Start,Stop,Package,Version,Op,false,!MultiArchEnabled);
       if (Start == 0)
 	 return _error->Error("Problem parsing dependency %s",Tag);
+      size_t const found = Package.rfind(':');
 
       if (MultiArchEnabled == true &&
 	  (Type == pkgCache::Dep::Conflicts ||
@@ -659,6 +660,18 @@ bool debListParser::ParseDepends(pkgCache::VerIterator &Ver,
 	    if (NewDepends(Ver,Package,*a,Version,Op,Type) == false)
 	       return false;
       }
+      else if (MultiArchEnabled == true && found != string::npos &&
+	       strcmp(Package.c_str() + found, ":any") != 0)
+      {
+	 string Arch = Package.substr(found+1, string::npos);
+	 Package = Package.substr(0, found);
+	 // Such dependencies are not supposed to be accepted …
+	 // … but this is probably the best thing to do.
+	 if (Arch == "native")
+	    Arch = _config->Find("APT::Architecture");
+	 if (NewDepends(Ver,Package,Arch,Version,Op,Type) == false)
+	    return false;
+      }
       else if (NewDepends(Ver,Package,pkgArch,Version,Op,Type) == false)
 	 return false;
       if (Start == Stop)

+ 4 - 8
apt-pkg/edsp.cc

@@ -118,8 +118,7 @@ void EDSP::WriteScenarioDependency(pkgDepCache &Cache, FILE* output, pkgCache::P
    bool orGroup = false;
    for (pkgCache::DepIterator Dep = Ver.DependsList(); Dep.end() == false; ++Dep)
    {
-      // Ignore implicit dependencies for multiarch here
-      if (strcmp(Pkg.Arch(), Dep.TargetPkg().Arch()) != 0)
+      if (Dep.IsMultiArchImplicit() == true)
 	 continue;
       if (orGroup == false)
 	 dependencies[Dep->Type].append(", ");
@@ -140,8 +139,7 @@ void EDSP::WriteScenarioDependency(pkgDepCache &Cache, FILE* output, pkgCache::P
    string provides;
    for (pkgCache::PrvIterator Prv = Ver.ProvidesList(); Prv.end() == false; ++Prv)
    {
-      // Ignore implicit provides for multiarch here
-      if (strcmp(Pkg.Arch(), Prv.ParentPkg().Arch()) != 0 || strcmp(Pkg.Name(),Prv.Name()) == 0)
+      if (Prv.IsMultiArchImplicit() == true)
 	 continue;
       provides.append(", ").append(Prv.Name());
    }
@@ -159,8 +157,7 @@ void EDSP::WriteScenarioLimitedDependency(pkgDepCache &Cache, FILE* output,
    bool orGroup = false;
    for (pkgCache::DepIterator Dep = Ver.DependsList(); Dep.end() == false; ++Dep)
    {
-      // Ignore implicit dependencies for multiarch here
-      if (strcmp(Pkg.Arch(), Dep.TargetPkg().Arch()) != 0)
+      if (Dep.IsMultiArchImplicit() == true)
 	 continue;
       if (orGroup == false)
       {
@@ -193,8 +190,7 @@ void EDSP::WriteScenarioLimitedDependency(pkgDepCache &Cache, FILE* output,
    string provides;
    for (pkgCache::PrvIterator Prv = Ver.ProvidesList(); Prv.end() == false; ++Prv)
    {
-      // Ignore implicit provides for multiarch here
-      if (strcmp(Pkg.Arch(), Prv.ParentPkg().Arch()) != 0 || strcmp(Pkg.Name(),Prv.Name()) == 0)
+      if (Prv.IsMultiArchImplicit() == true)
 	 continue;
       if (pkgset.find(Prv.ParentPkg()) == pkgset.end())
 	 continue;

+ 29 - 0
apt-pkg/pkgcache.cc

@@ -708,6 +708,21 @@ bool pkgCache::DepIterator::IsIgnorable(PrvIterator const &Prv) const
    return false;
 }
 									/*}}}*/
+// DepIterator::IsMultiArchImplicit - added by the cache generation	/*{{{*/
+// ---------------------------------------------------------------------
+/* MultiArch can be translated to SingleArch for an resolver and we did so,
+   by adding dependencies to help the resolver understand the problem, but
+   sometimes it is needed to identify these to ignore them… */
+bool pkgCache::DepIterator::IsMultiArchImplicit() const
+{
+   if (ParentPkg()->Arch != TargetPkg()->Arch &&
+       (S->Type == pkgCache::Dep::Replaces ||
+	S->Type == pkgCache::Dep::DpkgBreaks ||
+	S->Type == pkgCache::Dep::Conflicts))
+      return true;
+   return false;
+}
+									/*}}}*/
 // ostream operator to handle string representation of a dependecy	/*{{{*/
 // ---------------------------------------------------------------------
 /* */
@@ -946,3 +961,17 @@ pkgCache::DescIterator pkgCache::VerIterator::TranslatedDescription() const
 };
 
 									/*}}}*/
+// PrvIterator::IsMultiArchImplicit - added by the cache generation	/*{{{*/
+// ---------------------------------------------------------------------
+/* MultiArch can be translated to SingleArch for an resolver and we did so,
+   by adding provides to help the resolver understand the problem, but
+   sometimes it is needed to identify these to ignore them… */
+bool pkgCache::PrvIterator::IsMultiArchImplicit() const
+{
+   pkgCache::PkgIterator const Owner = OwnerPkg();
+   pkgCache::PkgIterator const Parent = ParentPkg();
+   if (Owner->Arch != Parent->Arch || Owner->Name == Parent->Name)
+      return true;
+   return false;
+}
+									/*}}}*/

+ 51 - 24
cmdline/apt-get.cc

@@ -254,6 +254,9 @@ bool ShowList(ostream &out,string Title,string List,string VersionsList)
  */
 void ShowBroken(ostream &out,CacheFile &Cache,bool Now)
 {
+   if (Cache->BrokenCount() == 0)
+      return;
+
    out << _("The following packages have unmet dependencies:") << endl;
    for (unsigned J = 0; J < Cache->Head().PackageCount; J++)
    {
@@ -2496,7 +2499,7 @@ bool DoSource(CommandLine &CmdL)
 		  Src.c_str(), vcs.c_str(), uri.c_str());
 	 if(vcs == "Bzr") 
 	    ioprintf(c1out,_("Please use:\n"
-			     "bzr get %s\n"
+			     "bzr branch %s\n"
 			     "to retrieve the latest (possibly unreleased) "
 			     "updates to the package.\n"),
 		     uri.c_str());
@@ -2886,39 +2889,48 @@ bool DoBuildDep(CommandLine &CmdL)
 	       else
 		  Pkg = Cache->FindPkg(D->Package);
 
-	       // We need to decide if host or build arch, so find a version we can look at
-	       pkgCache::VerIterator Ver;
-
 	       // a bad version either is invalid or doesn't satify dependency
-	       #define BADVER(Ver) Ver.end() == true || \
-				   (Ver.end() == false && D->Version.empty() == false && \
-				    Cache->VS().CheckDep(Ver.VerStr(),D->Op,D->Version.c_str()) == false)
+	       #define BADVER(Ver) (Ver.end() == true || \
+				    (D->Version.empty() == false && \
+				     Cache->VS().CheckDep(Ver.VerStr(),D->Op,D->Version.c_str()) == false))
 
+	       APT::VersionList verlist;
 	       if (Pkg.end() == false)
 	       {
-		  Ver = (*Cache)[Pkg].InstVerIter(*Cache);
-		  if (BADVER(Ver))
-		     Ver = (*Cache)[Pkg].CandidateVerIter(*Cache);
+		  pkgCache::VerIterator Ver = (*Cache)[Pkg].InstVerIter(*Cache);
+		  if (BADVER(Ver) == false)
+		     verlist.insert(Ver);
+		  Ver = (*Cache)[Pkg].CandidateVerIter(*Cache);
+		  if (BADVER(Ver) == false)
+		     verlist.insert(Ver);
 	       }
-	       if (BADVER(Ver))
+	       if (verlist.empty() == true)
 	       {
 		  pkgCache::PkgIterator HostPkg = Cache->FindPkg(D->Package, hostArch);
 		  if (HostPkg.end() == false)
 		  {
-		     Ver = (*Cache)[HostPkg].InstVerIter(*Cache);
-		     if (BADVER(Ver))
-		        Ver = (*Cache)[HostPkg].CandidateVerIter(*Cache);
+		     pkgCache::VerIterator Ver = (*Cache)[HostPkg].InstVerIter(*Cache);
+		     if (BADVER(Ver) == false)
+			verlist.insert(Ver);
+		     Ver = (*Cache)[HostPkg].CandidateVerIter(*Cache);
+		     if (BADVER(Ver) == false)
+			verlist.insert(Ver);
 		  }
 	       }
-	       if ((BADVER(Ver)) == false)
+	       #undef BADVER
+
+	       string forbidden;
+	       // We need to decide if host or build arch, so find a version we can look at
+	       APT::VersionList::const_iterator Ver = verlist.begin();
+	       for (; Ver != verlist.end(); ++Ver)
 	       {
-		  string forbidden;
+		  forbidden.clear();
 		  if (Ver->MultiArch == pkgCache::Version::None || Ver->MultiArch == pkgCache::Version::All)
 		  {
 		     if (colon == string::npos)
-		     {
 			Pkg = Ver.ParentPkg().Group().FindPkg(hostArch);
-		     }
+		     else if (strcmp(D->Package.c_str() + colon, ":any") == 0)
+			forbidden = "Multi-Arch: none";
 		  }
 		  else if (Ver->MultiArch == pkgCache::Version::Same)
 		  {
@@ -2950,21 +2962,32 @@ bool DoBuildDep(CommandLine &CmdL)
 		     }
 		     // native gets buildArch
 		  }
+
 		  if (forbidden.empty() == false)
 		  {
 		     if (_config->FindB("Debug::BuildDeps",false) == true)
-			cout << " :any is not allowed from M-A: same package " << (*D).Package << endl;
+			cout << D->Package.substr(colon, string::npos) << " is not allowed from " << forbidden << " package " << (*D).Package << " (" << Ver.VerStr() << ")" << endl;
+		     continue;
+		  }
+
+		  //we found a good version
+		  break;
+	       }
+	       if (Ver == verlist.end())
+	       {
+		  if (_config->FindB("Debug::BuildDeps",false) == true)
+		     cout << " No multiarch info as we have no satisfying installed nor candidate for " << D->Package << " on build or host arch" << endl;
+
+		  if (forbidden.empty() == false)
+		  {
 		     if (hasAlternatives)
 			continue;
 		     return _error->Error(_("%s dependency for %s can't be satisfied "
 					    "because %s is not allowed on '%s' packages"),
 					  Last->BuildDepType(D->Type), Src.c_str(),
-					  D->Package.c_str(), "Multi-Arch: same");
+					  D->Package.c_str(), forbidden.c_str());
 		  }
 	       }
-	       else if (_config->FindB("Debug::BuildDeps",false) == true)
-		  cout << " No multiarch info as we have no satisfying installed nor candidate for " << D->Package << " on build or host arch" << endl;
-	       #undef BADVER
 	    }
 	    else
 	       Pkg = Cache->FindPkg(D->Package);
@@ -3241,9 +3264,13 @@ bool DoChangelog(CommandLine &CmdL)
    pkgAcquire Fetcher;
 
    if (_config->FindB("APT::Get::Print-URIs", false) == true)
+   {
+      bool Success = true;
       for (APT::VersionList::const_iterator Ver = verset.begin();
 	   Ver != verset.end(); ++Ver)
-	 return DownloadChangelog(Cache, Fetcher, Ver, "");
+	 Success &= DownloadChangelog(Cache, Fetcher, Ver, "");
+      return Success;
+   }
 
    AcqTextStatus Stat(ScreenWidth, _config->FindI("quiet",0));
    Fetcher.Setup(&Stat);

+ 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)
 
 PACKAGE="apt"
-PACKAGE_VERSION="0.9.5.1"
+PACKAGE_VERSION="0.9.5.2~20120611"
 PACKAGE_MAIL="APT Development Team <deity@lists.debian.org>"
 AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
 AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"$PACKAGE_VERSION")

+ 0 - 1
debian/apt-utils.links

@@ -1 +0,0 @@
-usr/bin/apt-internal-solver usr/lib/apt/solvers/apt

+ 73 - 8
debian/changelog

@@ -1,18 +1,83 @@
 apt (0.9.5.2) UNRELEASED; urgency=low
 
-  [ Translation of manpages ]
-  * Polish updated by Robert Luberda. Closes: #675603
-  * French updated by Christian Perrier
+  [ David Kalnischkies ]
+  * apt-pkg/cdrom.cc:
+    - fix regression from 0.9.3 which dumped the main configuration
+      _config instead of the cdrom settings (Cnf) as identified and
+      tested by Milan Kupcevic, thanks! (Closes: #674100)
+  * cmdline/apt-get.cc:
+    - do not show 'list of broken packages' header if no package
+      is broken as it happens e.g. for external resolver errors
+    - print URIs for all changelogs in case of --print-uris,
+      thanks to Daniel Hartwig for the patch! (Closes: #674897)
+    - show 'bzr branch' as 'bzr get' is deprecated (LP: #1011032)
+    - check build-dep candidate if install is forbidden
+  * debian/apt-utils.links:
+    - the internal resolver 'apt' is now directly installed in
+      /usr/lib/apt/solvers, so don't instruct dh to create a broken link
+  * doc/apt-verbatim.ent:
+    - APT doesn't belong to the product 'Linux', so use 'APT' instead
+      as after all APT is a big suite of applications
+  * doc/examples/sources.list:
+    - use the codename instead of 'stable' in the examples sources.list
+      as we do in the manpage and as the debian-installer does
+  * doc/apt-get.8.xml:
+    - use apt-utils as package example instead of libc6
+  * apt-pkg/contrib/cmdline.cc:
+    - apply patch from Daniel Hartwig to fix a segfault in case
+      the LongOpt is empty (Closes: #676331)
+    - fix segfault with empty LongOpt in --no-* branch
+  * ftparchive/apt-ftparchive.cc:
+    - default to putting the Contents-* files below $(SECTION) as apt-file
+      expects them there - thanks Martin-Éric Racine! (Closes: #675827)
+  * apt-pkg/deb/deblistparser.cc:
+    - set pkgCacheGen::Essential to "all" again (Closes: #675449)
+  * apt-pkg/algorithms.cc:
+    - force install only for one essential package out of a group
+  * apt-pkg/aptconfiguration.cc:
+    - if APT::Languages=none save "none" in allCodes so that the detected
+      configuration is cached as intended (Closes: #674690, LP: #1004947)
+  * apt-pkg/cacheiterators.h:
+    - add an IsMultiArchImplicit() method for Dep- and PrvIterator
+
+  [ Justin B Rye ]
+  * doc/apt-cdrom.8.xml:
+    - replace CDROM with the proper CD-ROM in text
+    - correct disc vs. disk issues
+  * doc/apt-extracttemplates.1.xml:
+    - debconf is not DebConf
+  * doc/apt-get.8.xml:
+    - move dselect-upgrade below dist-upgrade
+    - review and fix spelling issues
+  * doc/apt-ftparchive.8.xml, doc/apt-config.8.xml,
+    doc/apt-key.8.xml, doc/apt-mark.8.xml,
+    doc/apt_preferences.5.xml, doc/apt-secure.8.xml,
+    doc/apt-sortpkgs.1.xml, sources.list.5.xml:
+    - review and fix typo, grammar and style issues
+  * doc/apt.conf.5.xml:
+    - review and fix typo, grammar and style issues
+    - rephrase APT::Immediate-Configuration and many others
 
-  [ Translation of programs ]
-  * Danish by Joe Hansen. Closes: #675605
-  * French updated by Christian Perrier
-  
   [ Sebastian Heinlein ]
   * cmdline/apt-key:
     - do not hardcode /etc but use Dir::Etc instead
 
- -- Christian Perrier <bubulle@debian.org>  Sat, 02 Jun 2012 18:25:18 +0200
+  [ Robert Luberda ]
+  * Polish manpage translation update (Closes: #675603)
+  * doc/apt-mark.8.xml:
+    - in hold, the option name is --file not --filename
+
+  [ Christian Perrier ]
+  * French program and manpage translation update
+  * Danish program translation by Joe Hansen. Closes: #675605
+
+  [ Thibaut Girka ]
+  * cmdline/apt-get.cc:
+    - complain correctly about :any build-dep on M-A:none packages
+  * apt-pkg/deb/deblistparser.cc:
+    - add support for arch-specific qualifiers in dependencies
+
+ -- David Kalnischkies <kalnischkies@gmail.com>  Wed, 06 Jun 2012 23:54:01 +0200
 
 apt (0.9.5.1) unstable; urgency=low
 

+ 1 - 1
doc/apt-cache.8.xml

@@ -18,7 +18,7 @@
    &apt-email;
    &apt-product;
    <!-- The last update date -->
-   <date>2012-05-21T00:00:00Z</date>
+   <date>2012-06-09T00:00:00Z</date>
  </refentryinfo>
  
  <refmeta>

+ 11 - 11
doc/apt-cdrom.8.xml

@@ -17,7 +17,7 @@
    &apt-author.team;
    &apt-email;
    &apt-product;
-   <date>2004-02-14T00:00:00Z</date>
+   <date>2012-06-09T00:00:00Z</date>
  </refentryinfo>
 
  <refmeta>
@@ -29,13 +29,13 @@
  <!-- Man page title -->
  <refnamediv>
     <refname>apt-cdrom</refname>
-    <refpurpose>APT CDROM management utility</refpurpose>
+    <refpurpose>APT CD-ROM management utility</refpurpose>
  </refnamediv>
 
  &synopsis-command-apt-cdrom;
 
  <refsect1><title>Description</title>
-   <para><command>apt-cdrom</command> is used to add a new CDROM to APTs list
+   <para><command>apt-cdrom</command> is used to add a new CD-ROM to APT's list
     of available sources. <command>apt-cdrom</command> takes care of
    determining the structure of
    the disc as well as correcting for several possible mis-burns and 
@@ -43,8 +43,8 @@
    </para>
 
    <para>It is necessary to use <command>apt-cdrom</command> to add CDs to the
-   APT system, 
-   it cannot be done by hand. Furthermore each disk in a multi-cd set must be
+   APT system;
+   it cannot be done by hand. Furthermore each disc in a multi-CD set must be
    inserted and scanned separately to account for possible mis-burns.
    </para>
 
@@ -55,13 +55,13 @@
      <varlistentry><term><option>add</option></term>
      <listitem><para><literal>add</literal> is used to add a new disc to the
      source list. It will unmount the
-     CDROM device, prompt for a disk to be inserted and then proceed to 
+     CD-ROM device, prompt for a disc to be inserted and then proceed to 
      scan it and copy the index files. If the disc does not have a proper
-     <filename>disk</filename> directory you will be prompted for a descriptive 
+     <filename>.disk</filename> directory you will be prompted for a descriptive 
      title.
      </para>
 
-     <para>APT uses a CDROM ID to track which disc is currently in the drive and
+     <para>APT uses a CD-ROM ID to track which disc is currently in the drive and
      maintains a database of these IDs in 
      <filename>&statedir;/cdroms.list</filename>
      </para>
@@ -82,7 +82,7 @@
    
    <variablelist>
      <varlistentry><term><option>-d</option></term><term><option>--cdrom</option></term>
-     <listitem><para>Mount point; specify the location to mount the cdrom. This
+     <listitem><para>Mount point; specify the location to mount the CD-ROM. This
       mount point must be listed in <filename>/etc/fstab</filename> and
       properly configured.
       Configuration Item: <literal>Acquire::cdrom::mount</literal>.
@@ -91,8 +91,8 @@
      </varlistentry>
      
      <varlistentry><term><option>-r</option></term><term><option>--rename</option></term>
-     <listitem><para>Rename a disc; change the label of a disk or override the
-      disks given label. This option will cause <command>apt-cdrom</command> to
+     <listitem><para>Rename a disc; change the label of a disc or override the
+      disc's given label. This option will cause <command>apt-cdrom</command> to
       prompt for a new label.
      Configuration Item: <literal>APT::CDROM::Rename</literal>.
      </para>

+ 11 - 11
doc/apt-config.8.xml

@@ -18,7 +18,7 @@
    &apt-email;
    &apt-product;
    <!-- The last update date -->
-   <date>2012-05-11T00:00:00Z</date>
+   <date>2012-06-09T00:00:00Z</date>
  </refentryinfo>
  
  <refmeta>
@@ -39,7 +39,7 @@
    <para><command>apt-config</command> is an internal program used by various
    portions of the APT suite to provide consistent configurability. It accesses
    the main configuration file <filename>/etc/apt/apt.conf</filename> in a
-   manner that is easy to use by scripted applications.</para>
+   manner that is easy to use for scripted applications.</para>
 
    <para>Unless the <option>-h</option>, or <option>--help</option> option is
    given, one of the commands below must be present.
@@ -48,11 +48,11 @@
    <variablelist>
      <varlistentry><term><option>shell</option></term>
      <listitem><para>
-     shell is used to access the configuration information from a shell 
-     script. It is given pairs of arguments, the first being a shell 
-     variable and the second the configuration value to query. As output 
-     it lists a series of shell assignments commands for each present value. 
-     In a shell script it should be used like:
+     shell is used to access the configuration information from a shell
+     script. It is given pairs of arguments, the first being a shell
+     variable and the second the configuration value to query. As output
+     it lists shell assignment commands for each value present.
+     In a shell script it should be used as follows:
      </para>
      
 <informalexample><programlisting>
@@ -93,11 +93,11 @@ eval $RES
 
      <varlistentry>
       <term><option>--format '<replaceable>&percnt;f &#x0022;&percnt;v&#x0022;;&percnt;n</replaceable>'</option></term>
-      <listitem><para>Defines the output of each config option. &percnt;t will be replaced with the name of the option,
-		      &percnt;f with the complete optionname and &percnt;v with the value of the option.
+      <listitem><para>Defines the output of each config option. &percnt;t will be replaced with its individual name,
+		      &percnt;f with its full hierarchical name and &percnt;v with its value.
 		      Use uppercase letters and special characters in the value will be encoded to ensure that
-		      it can e.g. be savely used in a quoted-string as defined by RFC822. Additionally
-		      &percnt;n will be replaced by a newline, &percnt;N by a tab. A &percnt; can be
+		      it can e.g. be safely used in a quoted-string as defined by RFC822. Additionally
+		      &percnt;n will be replaced by a newline, and &percnt;N by a tab. A &percnt; can be
 		      printed by using &percnt;&percnt;.</para></listitem>
      </varlistentry>
 

+ 3 - 3
doc/apt-extracttemplates.1.xml

@@ -18,7 +18,7 @@
    &apt-email;
    &apt-product;
    <!-- The last update date -->
-   <date>2004-02-29T00:00:00Z</date>
+   <date>2012-06-09T00:00:00Z</date>
  </refentryinfo>
  
  <refmeta>
@@ -30,7 +30,7 @@
  <!-- Man page title -->
  <refnamediv>
     <refname>apt-extracttemplates</refname>
-    <refpurpose>Utility to extract DebConf config and templates from Debian packages</refpurpose>
+    <refpurpose>Utility to extract <command>debconf</command> config and templates from Debian packages</refpurpose>
  </refnamediv>
 
  &synopsis-command-apt-extracttemplates;
@@ -55,7 +55,7 @@
    <variablelist>
      <varlistentry><term><option>-t</option></term><term><option>--tempdir</option></term>
      <listitem><para>
-     Temporary directory in which to write extracted debconf template files
+     Temporary directory in which to write extracted <command>debconf</command> template files
      and config scripts.
      Configuration Item: <literal>APT::ExtractTemplates::TempDir</literal></para></listitem>
      </varlistentry>

+ 20 - 20
doc/apt-ftparchive.1.xml

@@ -18,7 +18,7 @@
    &apt-email;
    &apt-product;
    <!-- The last update date -->
-   <date>2009-08-17T00:00:00Z</date>
+   <date>2012-06-09T00:00:00Z</date>
  </refentryinfo>
  
  <refmeta>
@@ -93,12 +93,12 @@
      <listitem><para>
      The <literal>release</literal> command generates a Release file from a
      directory tree. It recursively searches the given directory for uncompressed
-     <filename>Packages</filename> and <filename>Sources</filename> files and the ones
+     <filename>Packages</filename> and <filename>Sources</filename> files and ones
      compressed with <command>gzip</command>, <command>bzip2</command> or <command>lzma</command>
      as well as <filename>Release</filename> and <filename>md5sum.txt</filename> files by default
      (<literal>APT::FTPArchive::Release::Default-Patterns</literal>). Additional filename patterns
      can be added by listing them in <literal>APT::FTPArchive::Release::Patterns</literal>.
-     It then writes to stdout a Release file containing a MD5, SHA1 and SHA256 digest
+     It then writes to stdout a <filename>Release</filename> file containing an MD5, SHA1 and SHA256 digest
      for each file.</para>
      <para>
      Values for the additional metadata fields in the Release file are
@@ -139,7 +139,7 @@
    tree manner. This only effects how the scope tag is handled.</para>
 
    <para>
-   The generate configuration has 4 separate sections, each described below.</para>
+   The generate configuration has four separate sections, each described below.</para>
 
      <refsect2><title><literal>Dir</literal> Section</title>
      <para>
@@ -162,7 +162,7 @@
       
       <varlistentry><term><option>CacheDir</option></term>
       <listitem><para>
-      Specifies the location of the cache files</para></listitem>
+      Specifies the location of the cache files.</para></listitem>
       </varlistentry>
       
       <varlistentry><term><option>FileListDir</option></term>
@@ -182,7 +182,7 @@
       <varlistentry><term><option>Packages::Compress</option></term>
       <listitem><para>
       Sets the default compression schemes to use 
-      for the Package index files. It is a string that contains a space 
+      for the package index files. It is a string that contains a space 
       separated list of at least one of: '.' (no compression), 'gzip' and 
       'bzip2'. The default for all compression schemes is '. gzip'.</para></listitem>
       </varlistentry>
@@ -233,8 +233,8 @@
 
       <varlistentry><term><option>LongDescription</option></term>
       <listitem><para>
-      Sets if long descriptions should be included in the Packages file or split
-      out into a master Translation-en file.</para></listitem>
+      Specifies whether long descriptions should be included in the <filename>Packages</filename> file or split
+      out into a master <filename>Translation-en</filename> file.</para></listitem>
       </varlistentry>
      </variablelist>
    </refsect2>
@@ -290,7 +290,7 @@
 
       <varlistentry><term><option>Translation</option></term>
       <listitem><para>
-      Set the output Translation-en master file with the long descriptions if they
+      Sets the output Translation-en master file with the long descriptions if they
       should be not included in the Packages file. Defaults to
       <filename>$(DIST)/$(SECTION)/i18n/Translation-en</filename></para></listitem>
       </varlistentry>
@@ -305,8 +305,8 @@
       <varlistentry><term><option>Contents</option></term>
       <listitem><para>
       Sets the output Contents file. Defaults to
-      <filename>$(DIST)/Contents-$(ARCH)</filename>. If this setting causes multiple 
-      Packages files to map onto a single Contents file (such as the default) 
+      <filename>$(DIST)/$(SECTION)/Contents-$(ARCH)</filename>. If this setting causes multiple 
+      Packages files to map onto a single Contents file (as is the default) 
       then <command>apt-ftparchive</command> will integrate those package files 
       together automatically.</para></listitem>
       </varlistentry>
@@ -352,7 +352,7 @@
      Typically this is a setting such as <filename>dists/&stable-codename;</filename>.</para>
      <para>
      All of the settings defined in the <literal>TreeDefault</literal> section can be
-     use in a <literal>Tree</literal> section as well as three new variables.</para>
+     used in a <literal>Tree</literal> section as well as three new variables.</para>
      <para>
      When processing a <literal>Tree</literal> section <command>apt-ftparchive</command> 
      performs an operation similar to:
@@ -366,7 +366,7 @@ for i in Sections do
       <varlistentry><term><option>Sections</option></term>
       <listitem><para>
       This is a space separated list of sections which appear 
-      under the distribution, typically this is something like 
+      under the distribution; typically this is something like 
       <literal>main contrib non-free</literal></para></listitem>
       </varlistentry>
       
@@ -379,8 +379,8 @@ for i in Sections do
 
       <varlistentry><term><option>LongDescription</option></term>
       <listitem><para>
-      Sets if long descriptions should be included in the Packages file or split
-      out into a master Translation-en file.</para></listitem>
+      Specifies whether long descriptions should be included in the <filename>Packages</filename> file or split
+      out into a master <filename>Translation-en</filename> file.</para></listitem>
       </varlistentry>
 
       <varlistentry><term><option>BinOverride</option></term>
@@ -428,7 +428,7 @@ for i in Sections do
       
       <varlistentry><term><option>Contents</option></term>
       <listitem><para>
-      Sets the Contents file output. (optional)</para></listitem>
+      Sets the Contents file output (optional).</para></listitem>
       </varlistentry>
       
       <varlistentry><term><option>BinOverride</option></term>
@@ -472,8 +472,8 @@ for i in Sections do
 
  <refsect1><title>The Binary Override File</title>
    <para>The binary override file is fully compatible with &dpkg-scanpackages;. It
-   contains 4 fields separated by spaces. The first field is the package name,
-   the second is the priority to force that package to, the third is the
+   contains four fields separated by spaces. The first field is the package name,
+   the second is the priority to force that package to, the third is
    the section to force that package to and the final field is the maintainer 
    permutation field.</para>
    <para>The general form of the maintainer field is:
@@ -490,14 +490,14 @@ for i in Sections do
  <refsect1><title>The Source Override File</title>
    <para>
    The source override file is fully compatible with &dpkg-scansources;. It
-   contains 2 fields separated by spaces. The first fields is the source 
+   contains two fields separated by spaces. The first field is the source 
    package name, the second is the section to assign it.</para>
  </refsect1>   
 
  <refsect1><title>The Extra Override File</title>
    <para>
    The extra override file allows any arbitrary tag to be added or replaced
-   in the output. It has 3 columns, the first is the package, the second is
+   in the output. It has three columns, the first is the package, the second is
    the tag and the remainder of the line is the new value.</para>
  </refsect1>   
 

+ 52 - 53
doc/apt-get.8.xml

@@ -18,7 +18,7 @@
    &apt-email;
    &apt-product;
    <!-- The last update date -->
-   <date>2012-05-21T00:00:00Z</date>
+   <date>2012-06-09T00:00:00Z</date>
  </refentryinfo>
  
  <refmeta>
@@ -70,37 +70,37 @@
      available.</para></listitem>
      </varlistentry>
 
-     <varlistentry><term><option>dselect-upgrade</option></term>
-     <listitem><para><literal>dselect-upgrade</literal>
-     is used in conjunction with the traditional Debian packaging
-     front-end, &dselect;. <literal>dselect-upgrade</literal>
-     follows the changes made by &dselect; to the <literal>Status</literal>
-     field of available packages, and performs the actions necessary to realize
-     that state (for instance, the removal of old and the installation of new
-     packages).</para></listitem>
-     </varlistentry>
-
      <varlistentry><term><option>dist-upgrade</option></term>
      <listitem><para><literal>dist-upgrade</literal> in addition to performing the function of 
      <literal>upgrade</literal>, also intelligently handles changing dependencies 
      with new versions of packages; <command>apt-get</command> has a "smart" conflict 
      resolution system, and it will attempt to upgrade the most important 
      packages at the expense of less important ones if necessary. 
-	 So, <literal>dist-upgrade</literal> command may remove some packages.
+     The <literal>dist-upgrade</literal> command may therefore remove some packages.
      The <filename>/etc/apt/sources.list</filename> file contains a list of locations 
      from which to retrieve desired package files.
      See also &apt-preferences; for a mechanism for
      overriding the general settings for individual packages.</para></listitem>
      </varlistentry>
 
+     <varlistentry><term><option>dselect-upgrade</option></term>
+     <listitem><para><literal>dselect-upgrade</literal>
+     is used in conjunction with the traditional Debian packaging
+     front-end, &dselect;. <literal>dselect-upgrade</literal>
+     follows the changes made by &dselect; to the <literal>Status</literal>
+     field of available packages, and performs the actions necessary to realize
+     that state (for instance, the removal of old and the installation of new
+     packages).</para></listitem>
+     </varlistentry>
+
      <varlistentry><term><option>install</option></term>
      <listitem>
 	 <para><literal>install</literal> is followed by one or more 
 	 packages desired for installation or upgrading. 
 	 Each package is a package name, not a fully qualified 
 	 filename (for instance, in a Debian system, 
-	 libc6 would be the argument provided, not 
-	 <literal>libc6_1.9.6-2.deb</literal>). All packages required 
+	 <package>apt-utils</package> would be the argument provided, not 
+	 <filename>apt-utils_&apt-product-version;_amd64.deb</filename>). All packages required 
 	 by the package(s) specified for installation will also 
 	 be retrieved and installed. 
 	 The <filename>/etc/apt/sources.list</filename> file is 
@@ -149,8 +149,8 @@
 
      <varlistentry><term><option>remove</option></term>
      <listitem><para><literal>remove</literal> is identical to <literal>install</literal> except that packages are 
-	 removed instead of installed. Note the removing a package leaves its
-	 configuration files in system. If a plus sign is appended to the package 
+	 removed instead of installed. Note that removing a package leaves its
+	 configuration files on the system. If a plus sign is appended to the package 
      name (with no intervening space), the identified package will be 
      installed instead of removed.</para></listitem>
      </varlistentry>
@@ -170,11 +170,10 @@
      <literal>pkg/release</literal> syntax, if possible.</para>
 
      <para>Source packages are tracked separately
-     from binary packages via <literal>deb-src</literal> type lines 
+     from binary packages via <literal>deb-src</literal> lines 
      in the &sources-list; file. This means that you will need to add such a line
-     for each repository you want to get sources from. If you don't do this
-     you will properly get another (newer, older or none) source version than
-     the one you have installed or could install.</para>
+     for each repository you want to get sources from; otherwise you will probably
+     get either the wrong (too old/too new) source versions or none at all.</para>
 
      <para>If the <option>--compile</option> option is specified
      then the package will be compiled to a binary .deb using
@@ -188,10 +187,10 @@
      used for the package files. This enables exact matching of the source 
      package name and version, implicitly enabling the 
      <literal>APT::Get::Only-Source</literal> option.</para>
-     
-     <para>Note that source packages are not tracked like binary packages, they 
-     exist only in the current directory and are similar to downloading source
-     tar balls.</para></listitem>
+
+     <para>Note that source packages are not installed and tracked in the
+     <command>dpkg</command> database like binary packages; they are simply downloaded
+     to the current directory, like source tarballs.</para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>build-dep</option></term>
@@ -241,7 +240,7 @@
        <listitem><para><literal>changelog</literal> downloads a package changelog and displays
            it through <command>sensible-pager</command>. The server name and base
            directory is defined in the <literal>APT::Changelogs::Server</literal>
-	   variable (e. g. <ulink url="http://packages.debian.org/changelogs">packages.debian.org/changelogs</ulink> for
+	   variable (e.g. <ulink url="http://packages.debian.org/changelogs">packages.debian.org/changelogs</ulink> for
 	   Debian or <ulink url="http://changelogs.ubuntu.com/changelogs">changelogs.ubuntu.com/changelogs</ulink> for
            Ubuntu).
            By default it displays the changelog for the version that is
@@ -291,7 +290,7 @@
 
      <varlistentry><term><option>-m</option></term><term><option>--ignore-missing</option></term>
      <term><option>--fix-missing</option></term>
-     <listitem><para>Ignore missing packages; If packages cannot be retrieved or fail the    
+     <listitem><para>Ignore missing packages; if packages cannot be retrieved or fail the    
      integrity check after retrieval (corrupted package files), hold back    
      those packages and handle the result. Use of this option together with  
      <option>-f</option> may produce an error in some situations. If a package is 
@@ -312,9 +311,9 @@
      <listitem><para>Quiet; produces output suitable for logging, omitting progress indicators.
      More q's will produce more quiet up to a maximum of 2. You can also use
      <option>-q=#</option> to set the quiet level, overriding the configuration file. 
-     Note that quiet level 2 implies <option>-y</option>, you should never use -qq 
+     Note that quiet level 2 implies <option>-y</option>; you should never use -qq 
      without a no-action modifier such as -d, --print-uris or -s as APT may 
-     decided to do something you did not expect.
+     decide to do something you did not expect.
      Configuration Item: <literal>quiet</literal>.</para></listitem>
      </varlistentry>
 
@@ -328,17 +327,18 @@
      actually change the system. 
      Configuration Item: <literal>APT::Get::Simulate</literal>.</para>
 
-     <para>Simulation run as user will deactivate locking (<literal>Debug::NoLocking</literal>)
-     automatic. Also a notice will be displayed indicating that this is only a simulation,
-     if the option <literal>APT::Get::Show-User-Simulation-Note</literal> is set (Default: true).
-     Neither NoLocking nor the notice will be triggered if run as root (root should know what
-     he is doing without further warnings by <literal>apt-get</literal>).</para>
+     <para>Simulated runs performed as a user will automatically deactivate locking
+     (<literal>Debug::NoLocking</literal>), and if the option
+     <literal>APT::Get::Show-User-Simulation-Note</literal> is set
+     (as it is by default) a notice will also be displayed indicating that
+     this is only a simulation. Runs performed as root do not trigger either
+     NoLocking or the notice - superusers should know what they are doing
+     without further warnings from <literal>apt-get</literal>.</para>
 
-     <para>Simulate prints out
-     a series of lines each one representing a dpkg operation, Configure (Conf),
-     Remove (Remv), Unpack (Inst). Square brackets indicate broken packages
-     and empty set of square brackets meaning breaks that are of no consequence
-     (rare).</para></listitem>
+     <para>Simulated runs print out a series of lines, each representing a <command>dpkg</command>
+     operation: configure (<literal>Conf</literal>), remove (<literal>Remv</literal>)
+     or unpack (<literal>Inst</literal>). Square brackets indicate broken packages, and
+     empty square brackets indicate breaks that are of no consequence (rare).</para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>-y</option></term><term><option>--yes</option></term>
@@ -356,7 +356,7 @@
      </varlistentry>
 
      <varlistentry><term><option>-u</option></term><term><option>--show-upgraded</option></term>
-     <listitem><para>Show upgraded packages; Print out a list of all packages that are to be
+     <listitem><para>Show upgraded packages; print out a list of all packages that are to be
      upgraded. 
      Configuration Item: <literal>APT::Get::Show-Upgraded</literal>.</para></listitem>
      </varlistentry>
@@ -383,21 +383,21 @@
      </varlistentry>
 
      <varlistentry><term><option>--ignore-hold</option></term>
-     <listitem><para>Ignore package Holds; This causes <command>apt-get</command> to ignore a hold 
+     <listitem><para>Ignore package holds; this causes <command>apt-get</command> to ignore a hold 
      placed on a package. This may be useful in conjunction with 
      <literal>dist-upgrade</literal> to override a large number of undesired holds. 
      Configuration Item: <literal>APT::Ignore-Hold</literal>.</para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>--no-upgrade</option></term>
-     <listitem><para>Do not upgrade packages; When used in conjunction with <literal>install</literal>,
+     <listitem><para>Do not upgrade packages; when used in conjunction with <literal>install</literal>,
      <literal>no-upgrade</literal> will prevent packages on the command line
      from being upgraded if they are already installed.
      Configuration Item: <literal>APT::Get::Upgrade</literal>.</para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>--only-upgrade</option></term>
-     <listitem><para>Do not install new packages; When used in conjunction
+     <listitem><para>Do not install new packages; when used in conjunction
      with <literal>install</literal>, <literal>only-upgrade</literal> will
      install upgrades for already installed packages only and ignore requests
      to install new packages.
@@ -405,7 +405,7 @@
      </varlistentry>
 
      <varlistentry><term><option>--force-yes</option></term>
-     <listitem><para>Force yes; This is a dangerous option that will cause apt to continue 
+     <listitem><para>Force yes; this is a dangerous option that will cause apt to continue 
      without prompting if it is doing something potentially harmful. It 
      should not be used except in very special situations. Using 
      <literal>force-yes</literal> can potentially destroy your system! 
@@ -415,7 +415,7 @@
      <varlistentry><term><option>--print-uris</option></term>
      <listitem><para>Instead of fetching the files to install their URIs are printed. Each
      URI will have the path, the destination file name, the size and the expected
-     md5 hash. Note that the file name to write to will not always match
+     MD5 hash. Note that the file name to write to will not always match
      the file name on the remote site! This also works with the 
      <literal>source</literal> and <literal>update</literal> commands. When used with the
      <literal>update</literal> command the MD5 and size are not included, and it is
@@ -432,23 +432,22 @@
      </varlistentry>
 
      <varlistentry><term><option>--reinstall</option></term>
-     <listitem><para>Re-Install packages that are already installed and at the newest version.
+     <listitem><para>Re-install packages that are already installed and at the newest version.
      Configuration Item: <literal>APT::Get::ReInstall</literal>.</para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>--list-cleanup</option></term>
-     <listitem><para>This option defaults to on, use <literal>--no-list-cleanup</literal> to turn it 
-     off. When on <command>apt-get</command> will automatically manage the contents of 
-     <filename>&statedir;/lists</filename> to ensure that obsolete files are erased. 
-     The only  reason to turn it off is if you frequently change your source 
-     list. 
+     <listitem><para>This option is on by default; use <literal>--no-list-cleanup</literal> to turn
+     it off. When it is on, <command>apt-get</command> will automatically manage the contents
+     of <filename>&statedir;/lists</filename> to ensure that obsolete files are erased.
+     The only reason to turn it off is if you frequently change your sources list.
      Configuration Item: <literal>APT::Get::List-Cleanup</literal>.</para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>-t</option></term>
                    <term><option>--target-release</option></term>
                    <term><option>--default-release</option></term>
-     <listitem><para>This option controls the default input to the policy engine, it creates
+     <listitem><para>This option controls the default input to the policy engine; it creates
      a default pin at priority 990 using the specified release string.
      This overrides the general settings in <filename>/etc/apt/preferences</filename>.
      Specifically pinned packages are not affected by the value
@@ -464,7 +463,7 @@
      <varlistentry><term><option>--trivial-only</option></term>
      <listitem><para>
      Only perform operations that are 'trivial'. Logically this can be considered
-     related to <option>--assume-yes</option>, where <option>--assume-yes</option> will answer 
+     related to <option>--assume-yes</option>; where <option>--assume-yes</option> will answer 
      yes to any prompt, <option>--trivial-only</option> will answer no. 
      Configuration Item: <literal>APT::Get::Trivial-Only</literal>.</para></listitem>
      </varlistentry>
@@ -477,7 +476,7 @@
 
      <varlistentry><term><option>--auto-remove</option></term>
      <listitem><para>If the command is either <literal>install</literal> or <literal>remove</literal>,
-     then this option acts like running <literal>autoremove</literal> command, removing the unused
+     then this option acts like running the <literal>autoremove</literal> command, removing unused
      dependency packages. Configuration Item: <literal>APT::Get::AutomaticRemove</literal>.
      </para></listitem>
      </varlistentry>

+ 5 - 5
doc/apt-key.8.xml

@@ -17,7 +17,7 @@
    &apt-email;
    &apt-product;
    <!-- The last update date -->
-   <date>2012-05-21T00:00:00Z</date>
+   <date>2012-06-09T00:00:00Z</date>
  </refentryinfo>
 
  <refmeta>
@@ -141,13 +141,13 @@
      <listitem>
      <para>
 
-       Work similar to the <command>update</command> command above, but get the
-       archive keyring from an URI instead and validate it against a master key.
+       Perform an update working similarly to the <command>update</command> command above,
+       but get the archive keyring from a URI instead and validate it against a master key.
 
        This requires an installed &wget; and an APT build configured to have
        a server to fetch from and a master keyring to validate.
 
-       APT in Debian does not support this command and relies on
+       APT in Debian does not support this command, relying on
        <command>update</command> instead, but Ubuntu's APT does.
 
      </para>
@@ -161,7 +161,7 @@
 <para>Note that options need to be defined before the commands described in the previous section.</para>
    <variablelist>
       <varlistentry><term><option>--keyring</option> <option>&synopsis-param-filename;</option></term>
-      <listitem><para>With this option it is possible to specify a specific keyring
+      <listitem><para>With this option it is possible to specify a particular keyring
       file the command should operate on. The default is that a command is executed
       on the <filename>trusted.gpg</filename> file as well as on all parts in the
       <filename>trusted.gpg.d</filename> directory, though <filename>trusted.gpg</filename>

+ 4 - 4
doc/apt-mark.8.xml

@@ -18,7 +18,7 @@
    &apt-email;
    &apt-product;
    <!-- The last update date -->
-   <date>2011-04-21T00:00:00Z</date>
+   <date>2012-06-09T00:00:00Z</date>
  </refentryinfo>
  
  <refmeta>
@@ -66,11 +66,11 @@
 
        <varlistentry><term><option>hold</option></term>
 	 <listitem><para><literal>hold</literal> is used to mark a
-       package as hold back, which will prevent the package from being
+       package as held back, which will prevent the package from being
        automatically installed, upgraded or removed.
        The command is only a wrapper around <command>dpkg --set-selections</command>
-       and the state is therefore maintained by &dpkg; and not effected
-       by the <option>--filename</option> option.
+       and the state is therefore maintained by &dpkg; and not affected
+       by the <option>--file</option> option.
        </para></listitem>
        </varlistentry>
 

+ 31 - 32
doc/apt-secure.8.xml

@@ -17,7 +17,7 @@
    &apt-email;
    &apt-product;
    <!-- The last update date -->
-   <date>2012-05-21T00:00:00Z</date>
+   <date>2012-06-09T00:00:00Z</date>
  </refentryinfo>
 
  <refmeta>
@@ -57,11 +57,11 @@
    </para>
 
    <para>
-   If a package comes from a archive without a signature or with a
-   signature that apt does not have a key for that package is
-   considered untrusted and installing it will result in a big
+   If a package comes from a archive without a signature, or with a
+   signature that apt does not have a key for, that package is
+   considered untrusted, and installing it will result in a big
    warning. <command>apt-get</command> will currently only warn
-   for unsigned archives, future releases might force all sources
+   for unsigned archives; future releases might force all sources
    to be verified before downloading packages from them.
    </para>
 
@@ -75,11 +75,11 @@
 
    <para> 
    The chain of trust from an apt archive to the end user is made up of
-   different steps. <command>apt-secure</command> is the last step in
-   this chain, trusting an archive does not mean that the packages
-   that you trust it do not contain malicious code but means that you
-   trust the archive maintainer. It's the archive maintainer
-   responsibility to ensure that the archive integrity is correct.
+   several steps. <command>apt-secure</command> is the last step in
+   this chain; trusting an archive does not mean that you trust its
+   packages not to contain malicious code, but means that you
+   trust the archive maintainer. It's the archive maintainer's
+   responsibility to ensure that the archive's integrity is preserved.
    </para>
 
    <para>apt-secure does not review signatures at a
@@ -90,30 +90,29 @@
 
    <para>
    The chain of trust in Debian starts when a maintainer uploads a new
-   package or a new version of a package to the Debian archive. This
-   upload in order to become effective needs to be signed by a key of
-   a maintainer within the Debian maintainer's keyring (available in
-   the debian-keyring package). Maintainer's keys are signed by
+   package or a new version of a package to the Debian archive. In
+   order to become effective, this upload needs to be signed by a key
+   contained in the Debian Maintainers keyring (available in
+   the debian-keyring package). Maintainers' keys are signed by
    other maintainers following pre-established procedures to
    ensure the identity of the key holder.
    </para>
 
    <para>
    Once the uploaded package is verified and included in the archive,
-   the maintainer signature is stripped off, an MD5 sum of the package
-   is computed and put in the Packages file. The MD5 sum of all of the
-   packages files are then computed and put into the Release file. The
-   Release file is then signed by the archive key (which is created
-   once a year) and distributed through the FTP server. This key is
-   also on the Debian keyring.
+   the maintainer signature is stripped off, and checksums of the package
+   are computed and put in the Packages file. The checksums of all of the
+   Packages files are then computed and put into the Release file. The
+   Release file is then signed by the archive key for this Debian release,
+   and distributed alongside the packages and the Packages files on
+   Debian mirrors. The keys are in the Debian archive keyring available in
+   the <package>debian-archive-keyring</package> package.
    </para>
 
    <para>
-   Any end user can check the signature of the Release file, extract the MD5
-   sum of a package from it and compare it with the MD5 sum of the
-   package he downloaded. Prior to version 0.6 only the MD5 sum of the
-   downloaded Debian package was checked. Now both the MD5 sum and the
-   signature of the Release file are checked.
+   End users can check the signature of the Release file, extract a checksum
+   of a package from it and compare it with the checksum of the package
+   they downloaded by hand - or rely on APT doing this automatically.
    </para>
 
    <para>Notice that this is distinct from checking signatures on a
@@ -122,11 +121,11 @@
 
     <itemizedlist>
        <listitem><para><literal>Network "man in the middle"
-       attacks</literal>. Without signature checking, a malicious
-       agent can introduce himself in the package download process and
+       attacks</literal>. Without signature checking, malicious
+       agents can introduce themselves into the package download process and
        provide malicious software either by controlling a network
        element (router, switch, etc.) or by redirecting traffic to a
-       rogue server (through arp or DNS spoofing
+       rogue server (through ARP or DNS spoofing
        attacks).</para></listitem>
  
        <listitem><para><literal>Mirror network compromise</literal>.
@@ -145,8 +144,8 @@
  <refsect1><title>User configuration</title>
    <para>
    <command>apt-key</command> is the program that manages the list
-   of keys used by apt. It can be used to add or remove keys although
-   an installation of this release will automatically provide the
+   of keys used by apt. It can be used to add or remove keys, although
+   an installation of this release will automatically contain the
    default Debian archive signing keys used in the Debian package
    repositories.
    </para>
@@ -183,9 +182,9 @@
 
     </itemizedlist>
 
-    <para>Whenever the contents of the archive changes (new packages
+    <para>Whenever the contents of the archive change (new packages
     are added or removed) the archive maintainer has to follow the
-    first two steps previously outlined.</para>
+    first two steps outlined above.</para>
 
 </refsect1>
 

+ 4 - 4
doc/apt-sortpkgs.1.xml

@@ -18,7 +18,7 @@
    &apt-email;
    &apt-product;
    <!-- The last update date -->
-   <date>2004-02-29T00:00:00Z</date>
+   <date>2012-06-09T00:00:00Z</date>
  </refentryinfo>
  
  <refmeta>
@@ -36,13 +36,13 @@
  &synopsis-command-apt-sortpkgs;
 
  <refsect1><title>Description</title>
-   <para><command>apt-sortpkgs</command> will take an index file (Source index or Package 
+   <para><command>apt-sortpkgs</command> will take an index file (source index or package 
    index) and sort the records so that they are ordered by the package name. 
    It will also sort the internal fields of each record according to the 
    internal sorting rules.</para>
 
    <para>
-   All output is sent to stdout, the input must be a seekable file.</para>
+   All output is sent to standard output; the input must be a seekable file.</para>
  </refsect1>
  
  <refsect1><title>options</title>
@@ -51,7 +51,7 @@
    <variablelist>
      <varlistentry><term><option>-s</option></term><term><option>--source</option></term>
      <listitem><para>
-     Use Source index field ordering.
+     Use source index field ordering.
      Configuration Item: <literal>APT::SortPkgs::Source</literal>.</para></listitem>
      </varlistentry>
    

+ 19 - 2
doc/apt-verbatim.ent

@@ -166,6 +166,12 @@
   </citerefentry>"
 >
 
+<!ENTITY glob "<citerefentry>
+     <refentrytitle><abbrev>glob</abbrev></refentrytitle>
+     <manvolnum>7</manvolnum>
+  </citerefentry>"
+>
+
 <!-- Boiler plate docinfo section -->
 <!ENTITY apt-email "
    <address>
@@ -202,14 +208,25 @@
 ">
 
 <!ENTITY apt-product "
-   <productname>Linux</productname>
+   <productname>APT</productname>
+   <releaseinfo role='version'>&apt-product-version;</releaseinfo>
 ">
 
+<!-- this will be updated by 'prepare-release' -->
+<!ENTITY apt-product-version "0.9.5.2~20120611">
+
 <!-- Codenames for debian releases -->
 <!ENTITY oldstable-codename "lenny">
 <!ENTITY stable-codename "squeeze">
 <!ENTITY testing-codename "wheezy">
-
+<!ENTITY stable-version "6.0">
+<!ENTITY ubuntu-codename "precise">
+
+<!-- good and bad just refers to matching and not matching a pattern…
+     It is not a remark about the specific perl version.
+     There is no way perl could be clasified "good" (or "bad") in any version… -->
+<!ENTITY good-perl "5.10">
+<!ENTITY bad-perl "5.14">
 
 <!-- Arguments -->
 <!ENTITY synopsis-arg-option "<arg><option>-o=<replaceable>&synopsis-config-string;</replaceable></option></arg>">

+ 312 - 274
doc/apt.conf.5.xml

@@ -23,7 +23,7 @@
    &apt-email;
    &apt-product;
    <!-- The last update date -->
-   <date>2012-05-21T00:00:00Z</date>
+   <date>2012-06-09T00:00:00Z</date>
  </refentryinfo>
  
  <refmeta>
@@ -37,12 +37,13 @@
     <refname>apt.conf</refname>
     <refpurpose>Configuration file for APT</refpurpose>
  </refnamediv>
- 
+
  <refsect1><title>Description</title>
- <para><filename>apt.conf</filename> is the main configuration file for
-   the APT suite of tools, but by far not the only place changes to options
-   can be made. All tools therefore share the configuration files and also
-   use a common command line parser to provide a uniform environment.</para>
+   <para><filename>/etc/apt/apt.conf</filename> is the main configuration
+   file shared by all the tools in the APT suite of tools, though it is by
+   no means the only place options can be set. The suite also shares a common
+   command line parser to provide a uniform environment.</para>
+
    <orderedlist>
       <para>When an APT tool starts up it will read the configuration files
       in the following order:</para>
@@ -52,9 +53,9 @@
 	 alphanumeric ascending order which have either no or "<literal>conf</literal>"
 	 as filename extension and which only contain alphanumeric,
 	 hyphen (-), underscore (_) and period (.) characters.
-	 Otherwise APT will print a notice that it has ignored a file if the file
-	 doesn't match a pattern in the <literal>Dir::Ignore-Files-Silently</literal>
-	 configuration list - in this case it will be silently ignored.</para></listitem>
+	 Otherwise APT will print a notice that it has ignored a file, unless that
+	 file matches a pattern in the <literal>Dir::Ignore-Files-Silently</literal>
+	 configuration list - in which case it will be silently ignored.</para></listitem>
       <listitem><para>the main configuration file specified by
 	 <literal>Dir::Etc::main</literal></para></listitem>
       <listitem><para>the command line options are applied to override the
@@ -64,7 +65,7 @@
    <refsect1><title>Syntax</title>
    <para>The configuration file is organized in a tree with options organized into
    functional groups. Option specification is given with a double colon
-   notation, for instance <literal>APT::Get::Assume-Yes</literal> is an option within 
+   notation; for instance <literal>APT::Get::Assume-Yes</literal> is an option within 
    the APT tool group, for the Get tool. Options do not inherit from their 
    parent groups.</para> 
 
@@ -73,13 +74,12 @@
    <literal>//</literal> are treated as comments (ignored), as well as all text
    between <literal>/*</literal> and <literal>*/</literal>, just like C/C++ comments.
    Each line is of the form
-   <literal>APT::Get::Assume-Yes "true";</literal>. The trailing 
-   semicolon and the quotes are required. The value must be on one line, and
-   there is no kind of string concatenation. It must not include inside quotes.
-   The behavior of the backslash "\" and escaped characters inside a value is
-   undefined and it should not be used. An option name may include
-   alphanumerical characters and the "/-:._+" characters. A new scope can
-   be opened with curly braces, like:</para>
+   <literal>APT::Get::Assume-Yes "true";</literal>.
+   The quotation marks and trailing semicolon are required.
+   The value must be on one line, and there is no kind of string concatenation.
+   Values must not include backslashes or extra quotation marks.
+   Option names are made up of alphanumeric characters and the characters "/-:._+".
+   A new scope can be opened with curly braces, like this:</para>
 
 <informalexample><programlisting>   
 APT {
@@ -92,7 +92,7 @@ APT {
 
    <para>with newlines placed to make it more readable. Lists can be created by 
    opening a scope and including a single string enclosed in quotes followed by a
-   semicolon. Multiple entries can be included, each separated by a semicolon.</para>
+   semicolon. Multiple entries can be included, separated by a semicolon.</para>
 
 <informalexample><programlisting>   
 DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
@@ -102,44 +102,53 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
    <filename>&docdir;examples/apt.conf</filename> &configureindex;
    is a good guide for how it should look.</para>
 
-   <para>The names of the configuration items are not case-sensitive. So in the previous example
-   you could use <literal>dpkg::pre-install-pkgs</literal>.</para>
+   <para>Case is not significant in names of configuration items, so in the
+   previous example you could use <literal>dpkg::pre-install-pkgs</literal>.</para>
 
-   <para>Names for the configuration items are optional if a list is defined as it can be see in
+   <para>Names for the configuration items are optional if a list is defined as can be seen in
    the <literal>DPkg::Pre-Install-Pkgs</literal> example above. If you don't specify a name a
    new entry will simply add a new option to the list. If you specify a name you can override
-   the option as every other option by reassigning a new value to the option.</para>
+   the option in the same way as any other option by reassigning a new value to the option.</para>
 
-   <para>Two specials are allowed, <literal>#include</literal> (which is deprecated
-   and not supported by alternative implementations) and <literal>#clear</literal>:
-   <literal>#include</literal> will include the given file, unless the filename
-   ends in a slash, then the whole directory is included.  
+   <para>Two special commands are defined: <literal>#include</literal> (which is
+   deprecated and not supported by alternative implementations) and
+   <literal>#clear</literal>. <literal>#include</literal> will include the
+   given file, unless the filename ends in a slash, in which case the whole
+   directory is included.
    <literal>#clear</literal> is used to erase a part of the configuration tree. The
    specified element and all its descendants are erased.
    (Note that these lines also need to end with a semicolon.)</para>
 
-   <para>The #clear command is the only way to delete a list or a complete scope.
-   Reopening a scope or the ::-style described below will <emphasis>not</emphasis>
-   override previously written entries. Only options can be overridden by addressing a new
-   value to it - lists and scopes can't be overridden, only cleared.</para>
+   <para>
+   The <literal>#clear</literal> command is the only way to delete a list or
+   a complete scope. Reopening a scope (or using the syntax described below
+   with an appended <literal>::</literal>) will <emphasis>not</emphasis>
+   override previously written entries. Options can only be overridden by
+   addressing a new value to them - lists and scopes can't be overridden,
+   only cleared.
+   </para>
 
-   <para>All of the APT tools take a -o option which allows an arbitrary configuration 
+   <para>All of the APT tools take an -o option which allows an arbitrary configuration 
    directive to be specified on the command line. The syntax is a full option
    name (<literal>APT::Get::Assume-Yes</literal> for instance) followed by an equals
    sign then the new value of the option. To append a new element to a list, add a
-   trailing :: to the name of the list. (As you might suspect: The scope syntax can't
-   be used on the command line.)</para>
-
-   <para>Note that you can use :: only for appending one item per line to a list and
-   that you should not use it in combination with the scope syntax.
-   (The scope syntax implicit insert ::) Using both syntaxes together will trigger a bug
-   which some users unfortunately depend on: An option with the unusual name "<literal>::</literal>"
-   which acts like every other option with a name. These introduces many problems
-   including that a user who writes multiple lines in this <emphasis>wrong</emphasis> syntax in
-   the hope to append to a list will gain the opposite as only the last assignment for this option
-   "<literal>::</literal>" will be used. Upcoming APT versions will raise errors and
-   will stop working if they encounter this misuse, so please correct such statements now
-   as long as APT doesn't complain explicit about them.</para>
+   trailing <literal>::</literal> to the name of the list.
+   (As you might suspect, the scope syntax can't be used on the command line.)</para>
+
+   <para>
+   Note that appending items to a list using <literal>::</literal> only works
+   for one item per line, and that you should not use it in combination with
+   the scope syntax (which adds <literal>::</literal> implicitly). Using both
+   syntaxes together will trigger a bug which some users unfortunately depend
+   on: an option with the unusual name "<literal>::</literal>" which acts
+   like every other option with a name. This introduces many problems; for
+   one thing, users who write multiple lines in this
+   <emphasis>wrong</emphasis> syntax in the hope of appending to a list will
+   achieve the opposite, as only the last assignment for this option
+   "<literal>::</literal>" will be used. Future versions of APT will raise
+   errors and stop working if they encounter this misuse, so please correct
+   such statements now while APT doesn't explicitly complain about them.
+   </para>
  </refsect1>
 
  <refsect1><title>The APT Group</title>
@@ -154,23 +163,27 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      </varlistentry>
 
      <varlistentry><term><option>Architectures</option></term>
-     <listitem><para>All Architectures the system supports. Processors implementing the
-     <literal>amd64</literal> (also called <literal>x86-64</literal>) instruction set are
-     e.g. also able to execute binaries compiled for the <literal>i386</literal>
-     (<literal>x86</literal>) instruction set; This list is use when fetching files and
-     parsing package lists. The internal default is always the native architecture (<literal>APT::Architecture</literal>)
-     and all foreign architectures it can retrieve by calling <command>dpkg --print-foreign-architectures</command>.
+     <listitem><para>
+     All Architectures the system supports. For instance, CPUs implementing
+     the <literal>amd64</literal> (also called <literal>x86-64</literal>)
+     instruction set are also able to execute binaries compiled for the
+     <literal>i386</literal> (<literal>x86</literal>) instruction set. This
+     list is used when fetching files and parsing package lists. The
+     initial default is always the system's native architecture
+     (<literal>APT::Architecture</literal>), and foreign architectures are
+     added to the default list when they are registered via
+     <command>dpkg --add-architecture</command>.
      </para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>Default-Release</option></term>
      <listitem><para>Default release to install packages from if more than one
-     version available. Contains release name, codename or release version. Examples: 'stable', 'testing',
+     version is available. Contains release name, codename or release version. Examples: 'stable', 'testing',
      'unstable', '&stable-codename;', '&testing-codename;', '4.0', '5.0*'. See also &apt-preferences;.</para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>Ignore-Hold</option></term>
-     <listitem><para>Ignore Held packages; This global option causes the problem resolver to
+     <listitem><para>Ignore held packages; this global option causes the problem resolver to
      ignore held packages in its decision making.</para></listitem>
      </varlistentry>
 
@@ -182,106 +195,129 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      </varlistentry>
 
      <varlistentry><term><option>Immediate-Configure</option></term>
-     <listitem><para>Defaults to on which will cause APT to install essential and important packages
-     as fast as possible in the install/upgrade operation. This is done to limit the effect of a failing
-     &dpkg; call: If this option is disabled APT does treat an important package in the same way as
-     an extra package: Between the unpacking of the important package A and his configuration can then
-     be many other unpack or configuration calls, e.g. for package B which has no relation to A, but
-     causes the dpkg call to fail (e.g. because maintainer script of package B generates an error) which results
-     in a system state in which package A is unpacked but unconfigured - each package depending on A is now no
-     longer guaranteed to work as their dependency on A is not longer satisfied. The immediate configuration marker
-     is also applied to all dependencies which can generate a problem if the dependencies e.g. form a circle
-     as a dependency with the immediate flag is comparable with a Pre-Dependency. So in theory it is possible
-     that APT encounters a situation in which it is unable to perform immediate configuration, errors out and
-     refers to this option so the user can deactivate the immediate configuration temporarily to be able to perform
-     an install/upgrade again. Note the use of the word "theory" here as this problem was only encountered by now
-     in real world a few times in non-stable distribution versions and was caused by wrong dependencies of the package
-     in question or by a system in an already broken state, so you should not blindly disable this option as
-     the mentioned scenario above is not the only problem immediate configuration can help to prevent in the first place.
-     Before a big operation like <literal>dist-upgrade</literal> is run with this option disabled it should be tried to
-     explicitly <literal>install</literal> the package APT is unable to configure immediately, but please make sure to
-     report your problem also to your distribution and to the APT team with the buglink below so they can work on
-     improving or correcting the upgrade process.</para></listitem>
+     <listitem><para>
+     Defaults to on, which will cause APT to install essential and important
+     packages as soon as possible in an install/upgrade operation, in order
+     to limit the effect of a failing &dpkg; call. If this option is
+     disabled, APT treats an important package in the same way as an extra
+     package: between the unpacking of the package A and its configuration
+     there can be many other unpack or configuration calls for other
+     unrelated packages B, C etc. If these cause the &dpkg; call to fail
+     (e.g. because package B's maintainer scripts generate an error), this
+     results in a system state in which package A is unpacked but
+     unconfigured - so any package depending on A is now no longer
+     guaranteed to work, as its dependency on A is no longer satisfied.
+     </para><para>
+     The immediate configuration marker is also applied in the potentially
+     problematic case of circular dependencies, since a dependency with the
+     immediate flag is equivalent to a Pre-Dependency. In theory this allows
+     APT to recognise a situation in which it is unable to perform immediate
+     configuration, abort, and suggest to the user that the option should be
+     temporarily deactivated in order to allow the operation to proceed.
+     Note the use of the word "theory" here; in the real world this problem
+     has rarely been encountered, in non-stable distribution versions, and
+     was caused by wrong dependencies of the package in question or by a
+     system in an already broken state; so you should not blindly disable
+     this option, as the scenario mentioned above is not the only problem it
+     can help to prevent in the first place.
+     </para><para>
+     Before a big operation like <literal>dist-upgrade</literal> is run
+     with this option disabled you should try to explicitly
+     <literal>install</literal> the package APT is unable to configure
+     immediately; but please make sure you also report your problem to your
+     distribution and to the APT team with the buglink below, so they can
+     work on improving or correcting the upgrade process.
+     </para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>Force-LoopBreak</option></term>
-     <listitem><para>Never Enable this option unless you -really- know what you are doing. It
-     permits APT to temporarily remove an essential package to break a
-     Conflicts/Conflicts or Conflicts/Pre-Depend loop between two essential
-     packages. SUCH A LOOP SHOULD NEVER EXIST AND IS A GRAVE BUG. This option 
-     will work if the essential packages are not tar, gzip, libc, dpkg, bash or
-     anything that those packages depend on.</para></listitem>
+     <listitem><para>
+     Never enable this option unless you <emphasis>really</emphasis> know
+     what you are doing. It permits APT to temporarily remove an essential
+     package to break a Conflicts/Conflicts or Conflicts/Pre-Depends loop
+     between two essential packages. <emphasis>Such a loop should never exist
+     and is a grave bug</emphasis>. This option will work if the essential
+     packages are not <command>tar</command>, <command>gzip</command>,
+     <command>libc</command>, <command>dpkg</command>, <command>dash</command>
+     or anything that those packages depend on.
+     </para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>Cache-Start</option></term><term><option>Cache-Grow</option></term><term><option>Cache-Limit</option></term>
-     <listitem><para>APT uses since version 0.7.26 a resizable memory mapped cache file to store the 'available'
-     information. <literal>Cache-Start</literal> acts as a hint to which size the Cache will grow
+     <listitem><para>APT uses since version 0.7.26 a resizable memory mapped cache file to store the available
+     information. <literal>Cache-Start</literal> acts as a hint of the size the cache will grow to,
      and is therefore the amount of memory APT will request at startup. The default value is
-     20971520 bytes (~20 MB). Note that this amount of space needs to be available for APT
+     20971520 bytes (~20 MB). Note that this amount of space needs to be available for APT;
      otherwise it will likely fail ungracefully, so for memory restricted devices this value should
      be lowered while on systems with a lot of configured sources it should be increased.
      <literal>Cache-Grow</literal> defines in bytes with the default of 1048576 (~1 MB) how much
-     the Cache size will be increased in the event the space defined by <literal>Cache-Start</literal>
-     is not enough. These value will be applied again and again until either the cache is big
+     the cache size will be increased in the event the space defined by <literal>Cache-Start</literal>
+     is not enough. This value will be applied again and again until either the cache is big
      enough to store all information or the size of the cache reaches the <literal>Cache-Limit</literal>.
      The default of <literal>Cache-Limit</literal> is 0 which stands for no limit.
-     If <literal>Cache-Grow</literal> is set to 0 the automatic grow of the cache is disabled.
+     If <literal>Cache-Grow</literal> is set to 0 the automatic growth of the cache is disabled.
      </para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>Build-Essential</option></term>
-     <listitem><para>Defines which package(s) are considered essential build dependencies.</para></listitem>
+     <listitem><para>Defines which packages are considered essential build dependencies.</para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>Get</option></term>
-     <listitem><para>The Get subsection controls the &apt-get; tool, please see its
+     <listitem><para>The Get subsection controls the &apt-get; tool; please see its
      documentation for more information about the options here.</para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>Cache</option></term>
-     <listitem><para>The Cache subsection controls the &apt-cache; tool, please see its
+     <listitem><para>The Cache subsection controls the &apt-cache; tool; please see its
      documentation for more information about the options here.</para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>CDROM</option></term>
-     <listitem><para>The CDROM subsection controls the &apt-cdrom; tool, please see its
+     <listitem><para>The CDROM subsection controls the &apt-cdrom; tool; please see its
      documentation for more information about the options here.</para></listitem>
      </varlistentry>
    </variablelist>
  </refsect1>
 
  <refsect1><title>The Acquire Group</title>
-   <para>The <literal>Acquire</literal> group of options controls the download of packages 
-   and the URI handlers. 
+   <para>The <literal>Acquire</literal> group of options controls the
+   download of packages as well as the various "acquire methods" responsible
+   for the download itself (see also &sources-list;).</para>
 
    <variablelist>
      <varlistentry><term><option>Check-Valid-Until</option></term>
-	 <listitem><para>Security related option defaulting to true as an
-	 expiring validation for a Release file prevents longtime replay attacks
-	 and can e.g. also help users to identify no longer updated mirrors -
-	 but the feature depends on the correctness of the time on the user system.
-	 Archive maintainers are encouraged to create Release files with the
-	 <literal>Valid-Until</literal> header, but if they don't or a stricter value
-	 is volitional the following <literal>Max-ValidTime</literal> option can be used.
-	 </para></listitem>
+     <listitem><para>
+     Security related option defaulting to true, as giving a Release file's
+     validation an expiration date prevents replay attacks over a long
+     timescale, and can also for example help users to identify mirrors
+     that are no longer updated - but the feature depends on the
+     correctness of the clock on the user system. Archive maintainers are
+     encouraged to create Release files with the
+     <literal>Valid-Until</literal> header, but if they don't or a
+     stricter value is desired the <literal>Max-ValidTime</literal>
+     option below can be used.
+     </para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>Max-ValidTime</option></term>
-	 <listitem><para>Seconds the Release file should be considered valid after
-	 it was created (indicated by the <literal>Date</literal> header).
+	 <listitem><para>Maximum time (in seconds) after its creation (as indicated
+	 by the <literal>Date</literal> header) that the <filename>Release</filename>
+	 file should be considered valid.
 	 If the Release file itself includes a <literal>Valid-Until</literal> header
 	 the earlier date of the two is used as the expiration date.
-	 The default value is <literal>0</literal> which stands for "for ever valid".
+	 The default value is <literal>0</literal> which stands for "valid forever".
 	 Archive specific settings can be made by appending the label of the archive
 	 to the option name.
 	 </para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>Min-ValidTime</option></term>
-	 <listitem><para>Minimum of seconds the Release file should be considered
-	 valid after it was created (indicated by the <literal>Date</literal> header).
-	 Use this if you need to use a seldomly updated (local) mirror of a more
-	 regular updated archive with a <literal>Valid-Until</literal> header
+	 <listitem><para>Minimum time (in seconds) after its creation (as indicated
+	 by the <literal>Date</literal> header) that the <filename>Release</filename>
+	 file should be considered valid.
+	 Use this if you need to use a seldom updated (local) mirror of a more
+	 frequently updated archive with a <literal>Valid-Until</literal> header
 	 instead of completely disabling the expiration date checking.
 	 Archive specific settings can and should be used by appending the label of
 	 the archive to the option name.
@@ -290,11 +326,11 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
 
      <varlistentry><term><option>PDiffs</option></term>
 	 <listitem><para>Try to download deltas called <literal>PDiffs</literal> for
-	 Packages or Sources files instead of downloading whole ones. True
-	 by default.</para>
+	 indexes (like <filename>Packages</filename> files) instead of downloading
+	 whole ones. True by default.</para>
 	 <para>Two sub-options to limit the use of PDiffs are also available:
-	 With <literal>FileLimit</literal> can be specified how many PDiff files
-	 are downloaded at most to update a file. <literal>SizeLimit</literal>
+	 <literal>FileLimit</literal> can be used to specify a maximum number of
+	 PDiff files should be downloaded to update a file. <literal>SizeLimit</literal>
 	 on the other hand is the maximum percentage of the size of all patches
 	 compared to the size of the targeted file. If one of these limits is
 	 exceeded the complete file is downloaded instead of the patches.
@@ -320,41 +356,41 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      </varlistentry>
 
      <varlistentry><term><option>http</option></term>
-     <listitem><para>HTTP URIs; http::Proxy is the default http proxy to use. It is in the 
-     standard form of <literal>http://[[user][:pass]@]host[:port]/</literal>. Per 
-     host proxies can also be specified by using the form 
+     <listitem><para><literal>http::Proxy</literal> sets the default proxy to use for HTTP
+     URIs. It is in the standard form of <literal>http://[[user][:pass]@]host[:port]/</literal>.
+     Per host proxies can also be specified by using the form
      <literal>http::Proxy::&lt;host&gt;</literal> with the special keyword <literal>DIRECT</literal> 
 	 meaning to use no proxies. If no one of the above settings is specified,
 	 <envar>http_proxy</envar> environment variable
 	 will be used.</para>
 
-     <para>Three settings are provided for cache control with HTTP/1.1 compliant 
-     proxy caches. <literal>No-Cache</literal> tells the proxy to not use its cached 
-     response under any circumstances, <literal>Max-Age</literal> is sent only for 
-     index files and tells the cache to refresh its object if it is older than 
-     the given number of seconds. Debian updates its index files daily so the 
-     default is 1 day. <literal>No-Store</literal> specifies that the cache should never 
-     store this request, it is only set for archive files. This may be useful 
-     to prevent polluting a proxy cache with very large .deb files. Note: 
-     Squid 2.0.2 does not support any of these options.</para>
+     <para>Three settings are provided for cache control with HTTP/1.1 compliant
+     proxy caches.
+     <literal>No-Cache</literal> tells the proxy not to use its cached
+     response under any circumstances.
+     <literal>Max-Age</literal> sets the allowed maximum age (in seconds) of
+     an index file in the cache of the proxy.
+     <literal>No-Store</literal> specifies that the proxy should not store
+     the requested archive files in its cache, which can be used to prevent
+     the proxy from polluting its cache with (big) .deb files.</para>
 
-     <para>The option <literal>timeout</literal> sets the timeout timer used by the method, 
-     this applies to all things including connection timeout and data timeout.</para>
+     <para>The option <literal>timeout</literal> sets the timeout timer used by the method;
+     this value applies to the connection as well as the data timeout.</para>
 
      <para>The setting <literal>Acquire::http::Pipeline-Depth</literal> can be used to
-     enabled HTTP pipeling (RFC 2616 section 8.1.2.2) which can be beneficial e.g. on
-     high-latency connections. It specifies how many requests are send in a pipeline.
+     enable HTTP pipelining (RFC 2616 section 8.1.2.2) which can be beneficial e.g. on
+     high-latency connections. It specifies how many requests are sent in a pipeline.
      Previous APT versions had a default of 10 for this setting, but the default value
      is now 0 (= disabled) to avoid problems with the ever-growing amount of webservers
      and proxies which choose to not conform to the HTTP/1.1 specification.</para>
 
-     <para><literal>Acquire::http::AllowRedirect</literal> controls if APT will follow
+     <para><literal>Acquire::http::AllowRedirect</literal> controls whether APT will follow
      redirects, which is enabled by default.</para>
 
      <para>The used bandwidth can be limited with <literal>Acquire::http::Dl-Limit</literal>
-     which accepts integer values in kilobyte. The default value is 0 which deactivates
-     the limit and tries uses as much as possible of the bandwidth (Note that this option implicit
-     deactivates the download from multiple servers at the same time.)</para>
+     which accepts integer values in kilobytes. The default value is 0 which deactivates
+     the limit and tries to use all available bandwidth (note that this option implicitly
+     disables downloading from multiple servers at the same time.)</para>
 
      <para><literal>Acquire::http::User-Agent</literal> can be used to set a different
      User-Agent for the http download method as some proxies allow access for clients
@@ -363,59 +399,65 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      </varlistentry>
 
      <varlistentry><term><option>https</option></term>
-	 <listitem><para>HTTPS URIs. Cache-control, Timeout, AllowRedirect, Dl-Limit and
-	 proxy options are the same as for <literal>http</literal> method and will also
-	 default to the options from the <literal>http</literal> method if they are not
-	 explicitly set for https. <literal>Pipeline-Depth</literal> option is not
-	 supported yet.</para>
+	 <listitem><para>
+	 The <literal>Cache-control</literal>, <literal>Timeout</literal>,
+	 <literal>AllowRedirect</literal>, <literal>Dl-Limit</literal> and
+	 <literal>proxy</literal> options work for HTTPS URIs in the same way
+	 as for the <literal>http</literal> method, and default to the same
+	 values if they are not explicitly set. The
+	 <literal>Pipeline-Depth</literal> option is not yet supported.
+	 </para>
 
 	 <para><literal>CaInfo</literal> suboption specifies place of file that
 	 holds info about trusted certificates.
-	 <literal>&lt;host&gt;::CaInfo</literal> is corresponding per-host option.
-	 <literal>Verify-Peer</literal> boolean suboption determines whether verify
-	 server's host certificate against trusted certificates or not.
-	 <literal>&lt;host&gt;::Verify-Peer</literal> is corresponding per-host option.
-	 <literal>Verify-Host</literal> boolean suboption determines whether verify
-	 server's hostname or not.
-	 <literal>&lt;host&gt;::Verify-Host</literal> is corresponding per-host option.
+	 <literal>&lt;host&gt;::CaInfo</literal> is the corresponding per-host option.
+	 <literal>Verify-Peer</literal> boolean suboption determines whether or not the
+	 server's host certificate should be verified against trusted certificates.
+	 <literal>&lt;host&gt;::Verify-Peer</literal> is the corresponding per-host option.
+	 <literal>Verify-Host</literal> boolean suboption determines whether or not the
+	 server's hostname should be verified.
+	 <literal>&lt;host&gt;::Verify-Host</literal> is the corresponding per-host option.
 	 <literal>SslCert</literal> determines what certificate to use for client
-	 authentication. <literal>&lt;host&gt;::SslCert</literal> is corresponding per-host option.
+	 authentication. <literal>&lt;host&gt;::SslCert</literal> is the corresponding per-host option.
 	 <literal>SslKey</literal> determines what private key to use for client
-	 authentication. <literal>&lt;host&gt;::SslKey</literal> is corresponding per-host option.
+	 authentication. <literal>&lt;host&gt;::SslKey</literal> is the corresponding per-host option.
 	 <literal>SslForceVersion</literal> overrides default SSL version to use.
-	 Can contain 'TLSv1' or 'SSLv3' string.
-	 <literal>&lt;host&gt;::SslForceVersion</literal> is corresponding per-host option.
+	 It can contain either of the strings '<literal>TLSv1</literal>' or
+	 '<literal>SSLv3</literal>'.
+	 <literal>&lt;host&gt;::SslForceVersion</literal> is the corresponding per-host option.
 	 </para></listitem></varlistentry>
 
      <varlistentry><term><option>ftp</option></term>
-     <listitem><para>FTP URIs; ftp::Proxy is the default ftp proxy to use. It is in the 
-     standard form of <literal>ftp://[[user][:pass]@]host[:port]/</literal>. Per 
-     host proxies can also be specified by using the form 
+     <listitem><para>
+     <literal>ftp::Proxy</literal> sets the default proxy to use for FTP URIs.
+     It is in the standard form of <literal>ftp://[[user][:pass]@]host[:port]/</literal>.
+     Per host proxies can also be specified by using the form
      <literal>ftp::Proxy::&lt;host&gt;</literal> with the special keyword <literal>DIRECT</literal> 
 	 meaning to use no proxies. If no one of the above settings is specified,
 	 <envar>ftp_proxy</envar> environment variable
-	 will be used. To use a ftp 
+	 will be used. To use an FTP
      proxy you will have to set the <literal>ftp::ProxyLogin</literal> script in the 
      configuration file. This entry specifies the commands to send to tell 
      the proxy server what to connect to. Please see 
      &configureindex; for an example of 
-     how to do this. The substitution variables available are 
-     <literal>$(PROXY_USER)</literal> <literal>$(PROXY_PASS)</literal> <literal>$(SITE_USER)</literal>
-     <literal>$(SITE_PASS)</literal> <literal>$(SITE)</literal> and <literal>$(SITE_PORT)</literal>
-     Each is taken from it's respective URI component.</para>
+     how to do this. The substitution variables representing the corresponding
+     URI component are <literal>$(PROXY_USER)</literal>,
+     <literal>$(PROXY_PASS)</literal>, <literal>$(SITE_USER)</literal>,
+     <literal>$(SITE_PASS)</literal>, <literal>$(SITE)</literal> and
+     <literal>$(SITE_PORT)</literal>.</para>
 
-     <para>The option <literal>timeout</literal> sets the timeout timer used by the method, 
-     this applies to all things including connection timeout and data timeout.</para>
+     <para>The option <literal>timeout</literal> sets the timeout timer used by the method;
+     this value applies to the connection as well as the data timeout.</para>
 
      <para>Several settings are provided to control passive mode. Generally it is 
-     safe to leave passive mode on, it works in nearly every environment. 
-     However some situations require that passive mode be disabled and port 
-     mode ftp used instead. This can be done globally, for connections that 
-     go through a proxy or for a specific host (See the sample config file 
+     safe to leave passive mode on; it works in nearly every environment. 
+     However, some situations require that passive mode be disabled and port 
+     mode FTP used instead. This can be done globally or for connections that 
+     go through a proxy or for a specific host (see the sample config file 
      for examples).</para>
 
      <para>It is possible to proxy FTP over HTTP by setting the <envar>ftp_proxy</envar>
-     environment variable to a http url - see the discussion of the http method
+     environment variable to an HTTP URL - see the discussion of the http method
      above for syntax. You cannot set this in the configuration file and it is
      not recommended to use FTP over HTTP due to its low efficiency.</para>
 
@@ -427,45 +469,51 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      </varlistentry>
 
      <varlistentry><term><option>cdrom</option></term>
-     <listitem><para>CDROM URIs; the only setting for CDROM URIs is the mount point, 
-     <literal>cdrom::Mount</literal> which must be the mount point for the CDROM drive 
-     as specified in <filename>/etc/fstab</filename>. It is possible to provide 
-     alternate mount and unmount commands if your mount point cannot be listed 
-     in the fstab (such as an SMB mount and old mount packages). The syntax 
-     is to put <literallayout>/cdrom/::Mount "foo";</literallayout> within 
-     the cdrom block. It is important to have the trailing slash. Unmount 
-     commands can be specified using UMount.</para></listitem>
+     <listitem><para>
+     For URIs using the <literal>cdrom</literal> method, the only configurable
+     option is the mount point, <literal>cdrom::Mount</literal>, which must be
+     the mount point for the CD-ROM (or DVD, or whatever) drive as specified in
+     <filename>/etc/fstab</filename>. It is possible to provide alternate mount
+     and unmount commands if your mount point cannot be listed in the fstab.
+     The syntax is to put <literallayout>/cdrom/::Mount "foo";</literallayout> within
+     the <literal>cdrom</literal> block. It is important to have the trailing slash.
+     Unmount commands can be specified using UMount.
+     </para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>gpgv</option></term>
-     <listitem><para>GPGV URIs; the only option for GPGV URIs is the option to pass additional parameters to gpgv.
-     <literal>gpgv::Options</literal> Additional options passed to gpgv.
+     <listitem><para>
+     For GPGV URIs the only configurable option is <literal>gpgv::Options</literal>,
+     which passes additional parameters to gpgv.
      </para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>CompressionTypes</option></term>
      <listitem><para>List of compression types which are understood by the acquire methods.
      Files like <filename>Packages</filename> can be available in various compression formats.
-     Per default the acquire methods can decompress <command>bzip2</command>, <command>lzma</command>
-     and <command>gzip</command> compressed files, with this setting more formats can be added
+     By default the acquire methods can decompress <command>bzip2</command>, <command>lzma</command>
+     and <command>gzip</command> compressed files; with this setting more formats can be added
      on the fly or the used method can be changed. The syntax for this is:
      <synopsis>Acquire::CompressionTypes::<replaceable>FileExtension</replaceable> "<replaceable>Methodname</replaceable>";</synopsis>
-     </para><para>Also the <literal>Order</literal> subgroup can be used to define in which order
+     </para><para>Also, the <literal>Order</literal> subgroup can be used to define in which order
      the acquire system will try to download the compressed files. The acquire system will try the first
      and proceed with the next compression type in this list on error, so to prefer one over the other type
-     simple add the preferred type at first - not already added default types will be added at run time
+     simply add the preferred type first - default types not already added will be implicitly appended
      to the end of the list, so e.g. <synopsis>Acquire::CompressionTypes::Order:: "gz";</synopsis> can
      be used to prefer <command>gzip</command> compressed files over <command>bzip2</command> and <command>lzma</command>.
      If <command>lzma</command> should be preferred over <command>gzip</command> and <command>bzip2</command> the
-     configure setting should look like this <synopsis>Acquire::CompressionTypes::Order { "lzma"; "gz"; };</synopsis>
-     It is not needed to add <literal>bz2</literal> explicit to the list as it will be added automatic.</para>
-     <para>Note that at run time the <literal>Dir::Bin::<replaceable>Methodname</replaceable></literal> will
-     be checked: If this setting exists the method will only be used if this file exists, e.g. for
-     the bzip2 method (the inbuilt) setting is: <literallayout>Dir::Bin::bzip2 "/bin/bzip2";</literallayout>
+     configure setting should look like this: <synopsis>Acquire::CompressionTypes::Order { "lzma"; "gz"; };</synopsis>
+     It is not needed to add <literal>bz2</literal> to the list explicitly as it will be added automatically.</para>
+     <para>Note that the
+     <literal>Dir::Bin::<replaceable>Methodname</replaceable></literal>
+     will be checked at run time. If this option has been set, the
+     method will only be used if this file exists; e.g. for the
+     <literal>bzip2</literal> method (the inbuilt) setting is:
+     <literallayout>Dir::Bin::bzip2 "/bin/bzip2";</literallayout>
      Note also that list entries specified on the command line will be added at the end of the list
      specified in the configuration files, but before the default entries. To prefer a type in this case
      over the ones specified in the configuration files you can set the option direct - not in list style.
-     This will not override the defined list, it will only prefix the list with this type.</para>
+     This will not override the defined list; it will only prefix the list with this type.</para>
      <para>The special type <literal>uncompressed</literal> can be used to give uncompressed files a
      preference, but note that most archives don't provide uncompressed files so this is mostly only
      useable for local mirrors.</para></listitem>
@@ -482,21 +530,22 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
 
      <varlistentry><term><option>Languages</option></term>
      <listitem><para>The Languages subsection controls which <filename>Translation</filename> files are downloaded
-     and in which order APT tries to display the Description-Translations. APT will try to display the first
-     available Description in the Language which is listed at first. Languages can be defined with their
-     short or long Languagecodes. Note that not all archives provide <filename>Translation</filename>
-     files for every Language - especially the long Languagecodes are rare, so please
-     inform you which ones are available before you set here impossible values.</para>
+     and in which order APT tries to display the description-translations. APT will try to display the first
+     available description in the language which is listed first. Languages can be defined with their
+     short or long language codes. Note that not all archives provide <filename>Translation</filename>
+     files for every language - the long language codes are especially rare.</para>
      <para>The default list includes "environment" and "en". "<literal>environment</literal>" has a special meaning here:
-     It will be replaced at runtime with the languagecodes extracted from the <literal>LC_MESSAGES</literal> environment variable.
+     it will be replaced at runtime with the language codes extracted from the <literal>LC_MESSAGES</literal> environment variable.
      It will also ensure that these codes are not included twice in the list. If <literal>LC_MESSAGES</literal>
      is set to "C" only the <filename>Translation-en</filename> file (if available) will be used.
-     To force apt to use no Translation file use the setting <literal>Acquire::Languages=none</literal>. "<literal>none</literal>"
-     is another special meaning code which will stop the search for a fitting <filename>Translation</filename> file.
-     This can be used by the system administrator to let APT know that it should download also this files without
-     actually use them if the environment doesn't specify this languages. So the following example configuration will
-     result in the order "en, de" in an english and in "de, en" in a german localization. Note that "fr" is downloaded,
-     but not used if APT is not used in a french localization, in such an environment the order would be "fr, de, en".
+     To force APT to use no Translation file use the setting <literal>Acquire::Languages=none</literal>. "<literal>none</literal>"
+     is another special meaning code which will stop the search for a suitable <filename>Translation</filename> file.
+     This tells APT to download these translations too, without actually
+     using them unless the environment specifies the languages. So the
+     following example configuration will result in the order "en, de" in an
+     English locale or "de, en" in a German one. Note that "fr" is
+     downloaded, but not used unless APT is used in a French locale (where
+     the order would be "fr, de, en").
      <programlisting>Acquire::Languages { "environment"; "de"; "en"; "none"; "fr"; };</programlisting></para>
      <para>Note: To prevent problems resulting from APT being executed in different environments
      (e.g. by different users or by other programs) all Translation files which are found in
@@ -506,24 +555,23 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      </varlistentry>
 
    </variablelist>
-  </para>
  </refsect1>
 
  <refsect1><title>Directories</title>
 
    <para>The <literal>Dir::State</literal> section has directories that pertain to local 
    state information. <literal>lists</literal> is the directory to place downloaded 
-   package lists in and <literal>status</literal> is the name of the dpkg status file.
+   package lists in and <literal>status</literal> is the name of the &dpkg; status file.
    <literal>preferences</literal> is the name of the APT <filename>preferences</filename> file.
-   <literal>Dir::State</literal> contains the default directory to prefix on all sub 
-   items if they do not start with <filename>/</filename> or <filename>./</filename>.</para>
+   <literal>Dir::State</literal> contains the default directory to prefix on all
+   sub-items if they do not start with <filename>/</filename> or <filename>./</filename>.</para>
 
    <para><literal>Dir::Cache</literal> contains locations pertaining to local cache 
    information, such as the two package caches <literal>srcpkgcache</literal> and 
    <literal>pkgcache</literal> as well as the location to place downloaded archives, 
    <literal>Dir::Cache::archives</literal>. Generation of caches can be turned off
-   by setting their names to be blank. This will slow down startup but
-   save disk space. It is probably preferred to turn off the pkgcache rather
+   by setting their names to the empty string. This will slow down startup but
+   save disk space. It is probably preferable to turn off the pkgcache rather
    than the srcpkgcache. Like <literal>Dir::State</literal> the default
    directory is contained in <literal>Dir::Cache</literal></para>
 
@@ -570,25 +618,30 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
  <refsect1><title>APT in DSelect</title>
    <para>   
    When APT is used as a &dselect; method several configuration directives
-   control the default behaviour. These are in the <literal>DSelect</literal> section.</para>
+   control the default behavior. These are in the <literal>DSelect</literal> section.</para>
    
    <variablelist>
      <varlistentry><term><option>Clean</option></term>
-     <listitem><para>Cache Clean mode; this value may be one of always, prompt, auto,
-     pre-auto and never.  always and prompt will remove all packages from
-     the cache after upgrading, prompt (the default) does so conditionally. 
-     auto removes only those packages which are no longer downloadable
-     (replaced with a new version for instance).  pre-auto performs this
-     action before downloading new packages.</para></listitem>
+     <listitem><para>Cache Clean mode; this value may be one of
+     <literal>always</literal>, <literal>prompt</literal>,
+     <literal>auto</literal>, <literal>pre-auto</literal> and
+     <literal>never</literal>.
+     <literal>always</literal> and <literal>prompt</literal> will remove
+     all packages from the cache after upgrading, <literal>prompt</literal>
+     (the default) does so conditionally.
+     <literal>auto</literal> removes only those packages which are no longer
+     downloadable (replaced with a new version for instance).
+     <literal>pre-auto</literal> performs this action before downloading
+     new packages.</para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>options</option></term>
-     <listitem><para>The contents of this variable is passed to &apt-get; as command line
+     <listitem><para>The contents of this variable are passed to &apt-get; as command line
      options when it is run for the install phase.</para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>Updateoptions</option></term>
-     <listitem><para>The contents of this variable is passed to &apt-get; as command line
+     <listitem><para>The contents of this variable are passed to &apt-get; as command line
      options when it is run for the update phase.</para></listitem>
      </varlistentry>
 
@@ -599,13 +652,13 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
    </variablelist>
  </refsect1>
  
- <refsect1><title>How APT calls dpkg</title>
+ <refsect1><title>How APT calls &dpkg;</title>
    <para>Several configuration directives control how APT invokes &dpkg;. These are 
    in the <literal>DPkg</literal> section.</para>
 
    <variablelist>
      <varlistentry><term><option>options</option></term>
-     <listitem><para>This is a list of options to pass to dpkg. The options must be specified
+     <listitem><para>This is a list of options to pass to &dpkg;. The options must be specified
      using the list notation and each list item is passed as a single argument
      to &dpkg;.</para></listitem>
      </varlistentry>
@@ -613,16 +666,16 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      <varlistentry><term><option>Pre-Invoke</option></term><term><option>Post-Invoke</option></term>
      <listitem><para>This is a list of shell commands to run before/after invoking &dpkg;. 
      Like <literal>options</literal> this must be specified in list notation. The 
-     commands are invoked in order using <filename>/bin/sh</filename>, should any 
+     commands are invoked in order using <filename>/bin/sh</filename>; should any 
      fail APT will abort.</para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>Pre-Install-Pkgs</option></term>
-     <listitem><para>This is a list of shell commands to run before invoking dpkg. Like
+     <listitem><para>This is a list of shell commands to run before invoking &dpkg;. Like
      <literal>options</literal> this must be specified in list notation. The commands
-     are invoked in order using <filename>/bin/sh</filename>, should any fail APT 
-     will abort. APT will pass to the commands on standard input the 
-     filenames of all .deb files it is going to install, one per line.</para>
+     are invoked in order using <filename>/bin/sh</filename>; should any fail APT 
+     will abort. APT will pass the filenames of all .deb files it is going to
+     install to the commands, one per line on standard input.</para>
 
      <para>Version 2 of this protocol dumps more information, including the 
      protocol version, the APT configuration space and the packages, files
@@ -632,31 +685,31 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      </varlistentry>
 
      <varlistentry><term><option>Run-Directory</option></term>
-     <listitem><para>APT chdirs to this directory before invoking dpkg, the default is 
+     <listitem><para>APT chdirs to this directory before invoking &dpkg;, the default is 
      <filename>/</filename>.</para></listitem>
      </varlistentry>
 
      <varlistentry><term><option>Build-options</option></term>
-     <listitem><para>These options are passed to &dpkg-buildpackage; when compiling packages,
+     <listitem><para>These options are passed to &dpkg-buildpackage; when compiling packages;
      the default is to disable signing and produce all binaries.</para></listitem>
      </varlistentry>
    </variablelist>
 
    <refsect2><title>dpkg trigger usage (and related options)</title>
-     <para>APT can call dpkg in a way so it can make aggressive use of triggers over
-     multiple calls of dpkg. Without further options dpkg will use triggers only in between his
-     own run. Activating these options can therefore decrease the time needed to perform the
-     install / upgrade. Note that it is intended to activate these options per default in the
-     future, but as it changes the way APT calling dpkg drastically it needs a lot more testing.
+     <para>APT can call &dpkg; in such a way as to let it make aggressive use of triggers over
+     multiple calls of &dpkg;. Without further options &dpkg; will use triggers once each time it runs.
+     Activating these options can therefore decrease the time needed to perform the
+     install or upgrade. Note that it is intended to activate these options per default in the
+     future, but as it drastically changes the way APT calls &dpkg; it needs a lot more testing.
      <emphasis>These options are therefore currently experimental and should not be used in
-     productive environments.</emphasis> Also it breaks the progress reporting so all frontends will
+     production environments.</emphasis> It also breaks progress reporting such that all front-ends will
      currently stay around half (or more) of the time in the 100% state while it actually configures
      all packages.</para>
      <para>Note that it is not guaranteed that APT will support these options or that these options will
      not cause (big) trouble in the future. If you have understand the current risks and problems with
-     these options, but are brave enough to help testing them create a new configuration file and test a
+     these options, but are brave enough to help testing them, create a new configuration file and test a
      combination of options. Please report any bugs, problems and improvements you encounter and make sure
-     to note which options you have used in your reports. Asking dpkg for help could also be useful for
+     to note which options you have used in your reports. Asking &dpkg; for help could also be useful for
      debugging proposes, see e.g. <command>dpkg --audit</command>. A defensive option combination would be
 <literallayout>DPkg::NoTriggers "true";
 PackageManager::Configure "smart";
@@ -665,53 +718,49 @@ DPkg::TriggersPending "true";</literallayout></para>
 
      <variablelist>
        <varlistentry><term><option>DPkg::NoTriggers</option></term>
-       <listitem><para>Add the no triggers flag to all dpkg calls (except the ConfigurePending call).
-       See &dpkg; if you are interested in what this actually means. In short: dpkg will not run the
+       <listitem><para>Add the no triggers flag to all &dpkg; calls (except the ConfigurePending call).
+       See &dpkg; if you are interested in what this actually means. In short: &dpkg; will not run the
        triggers when this flag is present unless it is explicitly called to do so in an extra call.
-       Note that this option exists (undocumented) also in older apt versions with a slightly different
-       meaning: Previously these option only append --no-triggers to the configure calls to dpkg -
-       now apt will add these flag also to the unpack and remove calls.</para></listitem>
+       Note that this option exists (undocumented) also in older APT versions with a slightly different
+       meaning: Previously these option only append --no-triggers to the configure calls to &dpkg; -
+       now APT will also add this flag to the unpack and remove calls.</para></listitem>
        </varlistentry>
        <varlistentry><term><option>PackageManager::Configure</option></term>
-       <listitem><para>Valid values are "<literal>all</literal>", "<literal>smart</literal>" and "<literal>no</literal>".
-       "<literal>all</literal>" is the default value and causes APT to configure all packages explicit.
-       The "<literal>smart</literal>" way is it to configure only packages which need to be configured before
-       another package can be unpacked (Pre-Depends) and let the rest configure by dpkg with a call generated
-       by the next option. "<literal>no</literal>" on the other hand will not configure anything and totally
-       rely on dpkg for configuration (which will at the moment fail if a Pre-Depends is encountered).
-       Setting this option to another than the all value will implicitly activate also the next option per
-       default as otherwise the system could end in an unconfigured status which could be unbootable!
-       </para></listitem>
+       <listitem><para>Valid values are "<literal>all</literal>",
+       "<literal>smart</literal>" and "<literal>no</literal>".
+       The default value is "<literal>all</literal>", which causes APT to
+       configure all packages. The "<literal>smart</literal>" way is to
+       configure only packages which need to be configured before another
+       package can be unpacked (Pre-Depends), and let the rest be configured
+       by &dpkg; with a call generated by the ConfigurePending option (see
+       below). On the other hand, "<literal>no</literal>" will not configure
+       anything, and totally relies on &dpkg; for configuration (which at the
+       moment will fail if a Pre-Depends is encountered). Setting this option
+       to any value other than <literal>all</literal> will implicitly also
+       activate the next option by default, as otherwise the system could end
+       in an unconfigured and potentially unbootable state.</para></listitem>
        </varlistentry>
        <varlistentry><term><option>DPkg::ConfigurePending</option></term>
-       <listitem><para>If this option is set apt will call <command>dpkg --configure --pending</command>
-       to let dpkg handle all required configurations and triggers. This option is activated automatic
-       per default if the previous option is not set to <literal>all</literal>, but deactivating could be useful
+       <listitem><para>If this option is set APT will call <command>dpkg --configure --pending</command>
+       to let &dpkg; handle all required configurations and triggers. This option is activated automatically
+       per default if the previous option is not set to <literal>all</literal>, but deactivating it could be useful
        if you want to run APT multiple times in a row - e.g. in an installer. In these sceneries you could
        deactivate this option in all but the last run.</para></listitem>
        </varlistentry>
        <varlistentry><term><option>DPkg::TriggersPending</option></term>
-       <listitem><para>Useful for <literal>smart</literal> configuration as a package which has pending
-       triggers is not considered as <literal>installed</literal> and dpkg treats them as <literal>unpacked</literal>
-       currently which is a dealbreaker for Pre-Dependencies (see debbugs #526774). Note that this will
+       <listitem><para>Useful for the <literal>smart</literal> configuration as a package which has pending
+       triggers is not considered as <literal>installed</literal>, and &dpkg; treats them as <literal>unpacked</literal>
+       currently which is a showstopper for Pre-Dependencies (see debbugs #526774). Note that this will
        process all triggers, not only the triggers needed to configure this package.</para></listitem>
        </varlistentry>
-       <varlistentry><term><option>PackageManager::UnpackAll</option></term>
-       <listitem><para>As the configuration can be deferred to be done at the end by dpkg it can be
-       tried to order the unpack series only by critical needs, e.g. by Pre-Depends. Default is true
-       and therefore the "old" method of ordering in various steps by everything. While both method
-       were present in earlier APT versions the <literal>OrderCritical</literal> method was unused, so
-       this method is very experimental and needs further improvements before becoming really useful.
-       </para></listitem>
-       </varlistentry>
        <varlistentry><term><option>OrderList::Score::Immediate</option></term>
-       <listitem><para>Essential packages (and there dependencies) should be configured immediately
-       after unpacking. It will be a good idea to do this quite early in the upgrade process as these
-       these configure calls require currently also <literal>DPkg::TriggersPending</literal> which
-       will run quite a few triggers (which maybe not needed). Essentials get per default a high score
-       but the immediate flag is relatively low (a package which has a Pre-Depends is higher rated).
+       <listitem><para>Essential packages (and their dependencies) should be configured immediately
+       after unpacking. It is a good idea to do this quite early in the upgrade process as these
+       configure calls also currently require <literal>DPkg::TriggersPending</literal> which
+       will run quite a few triggers (which may not be needed). Essentials get per default a high score
+       but the immediate flag is relatively low (a package which has a Pre-Depends is rated higher).
        These option and the others in the same group can be used to change the scoring. The following
-       example shows the settings with there default values.
+       example shows the settings with their default values.
        <literallayout>OrderList::Score {
 	Delete 500;
 	Essential 200;
@@ -728,7 +777,7 @@ DPkg::TriggersPending "true";</literallayout></para>
    <title>Periodic and Archives options</title>
    <para><literal>APT::Periodic</literal> and <literal>APT::Archives</literal>
    groups of options configure behavior of apt periodic updates, which is
-   done by <literal>/etc/cron.daily/apt</literal> script. See header of
+   done by the <literal>/etc/cron.daily/apt</literal> script. See the top of
    this script for the brief documentation of these options.
    </para>
  </refsect1>
@@ -773,7 +822,7 @@ DPkg::TriggersPending "true";</literallayout></para>
        <listitem>
 	 <para>
 	   <literal>Debug::IdentCdrom</literal> disables the inclusion
-	   of statfs data in CDROM IDs.  <!-- TODO: provide a
+	   of statfs data in CD-ROM IDs.  <!-- TODO: provide a
 	   motivating example, except I haven't a clue why you'd want
 	   to do this. -->
 	 </para>
@@ -977,10 +1026,10 @@ DPkg::TriggersPending "true";</literallayout></para>
        <term><option>Debug::pkgDepCache::Marker</option></term>
        <listitem>
         <para>
-           Generate debug messages describing which package is marked
+           Generate debug messages describing which packages are marked
           as keep/install/remove while the ProblemResolver does his work.
           Each addition or deletion may trigger additional actions;
-          they are shown indented two additional space under the original entry.
+          they are shown indented two additional spaces under the original entry.
           The format for each line is <literal>MarkKeep</literal>,
           <literal>MarkDelete</literal> or <literal>MarkInstall</literal> followed by
           <literal>package-name &lt;a.b.c -&gt; d.e.f | x.y.z&gt; (section)</literal>
@@ -988,23 +1037,12 @@ DPkg::TriggersPending "true";</literallayout></para>
           <literal>d.e.f</literal> is the version considered for installation and
           <literal>x.y.z</literal> is a newer version, but not considered for installation
           (because of a low pin score). The later two can be omitted if there is none or if
-          it is the same version as the installed.
+          it is the same as the installed version.
           <literal>section</literal> is the name of the section the package appears in.
         </para>
        </listitem>
      </varlistentry>
 
-     <!-- Question: why doesn't this do anything?  The code says it should. -->
-     <varlistentry>
-       <term><option>Debug::pkgInitConfig</option></term>
-       <listitem>
-	 <para>
-	   Dump the default configuration to standard error on
-	   startup.
-	 </para>
-       </listitem>
-     </varlistentry>
-
      <varlistentry>
        <term><option>Debug::pkgDPkgPM</option></term>
        <listitem>

+ 32 - 32
doc/apt_preferences.5.xml

@@ -17,7 +17,7 @@
    &apt-email;
    &apt-product;
    <!-- The last update date -->
-   <date>2010-02-16T00:00:00Z</date>
+   <date>2012-06-09T00:00:00Z</date>
  </refentryinfo>
 
  <refmeta>
@@ -45,7 +45,7 @@ the &sources-list; file contains references to more than one distribution
 APT assigns a priority to each version that is available.
 Subject to dependency constraints, <command>apt-get</command> selects the
 version with the highest priority for installation.
-The APT preferences file overrides the priorities that APT assigns to
+The APT preferences override the priorities that APT assigns to
 package versions by default, thus giving the user control over which
 one is selected for installation.</para>
 
@@ -53,17 +53,17 @@ one is selected for installation.</para>
 the &sources-list; file contains references to more than one source.
 In this case <command>apt-get</command> downloads the instance listed
 earliest in the &sources-list; file.
-The APT preferences file does not affect the choice of instance, only
+The APT preferences do not affect the choice of instance, only
 the choice of version.</para>
 
 <para>Preferences are a strong power in the hands of a system administrator
 but they can become also their biggest nightmare if used without care!
-APT will not questioning the preferences so wrong settings will therefore
+APT will not question the preferences, so wrong settings can
 lead to uninstallable packages or wrong decisions while upgrading packages.
-Even more problems will arise if multiply distribution releases are mixed
+Even more problems will arise if multiple distribution releases are mixed
 without a good understanding of the following paragraphs.
-Packages included in a specific release aren't tested in and
-therefore doesn't always work as expected in older or newer releases or
+Packages included in a specific release aren't tested in (and
+therefore don't always work as expected in) older or newer releases, or
 together with other packages from different releases.
 You have been warned.</para>
 
@@ -72,9 +72,9 @@ directory are parsed in alphanumeric ascending order and need to obey the
 following naming convention: The files have either no or "<literal>pref</literal>"
 as filename extension and only contain alphanumeric, hyphen (-),
 underscore (_) and period (.) characters.
-Otherwise APT will print a notice that it has ignored a file if the file
-doesn't match a pattern in the <literal>Dir::Ignore-Files-Silently</literal>
-configuration list - in this case it will be silently ignored.</para>
+Otherwise APT will print a notice that it has ignored a file, unless that
+file matches a pattern in the <literal>Dir::Ignore-Files-Silently</literal>
+configuration list - in which case it will be silently ignored.</para>
 
 <refsect2><title>APT's Default Priority Assignments</title>
 
@@ -106,14 +106,14 @@ algorithm to set the priorities of the versions of a package.  Assign:
 <term>priority 1</term>
 <listitem><simpara>to the versions coming from archives which in their <filename>Release</filename>
 files are marked as "NotAutomatic: yes" but <emphasis>not</emphasis> as "ButAutomaticUpgrades: yes"
-like the debian <literal>experimental</literal> archive.</simpara></listitem>
+like the Debian <literal>experimental</literal> archive.</simpara></listitem>
 </varlistentry>
 
 <varlistentry>
 <term>priority 100</term>
 <listitem><simpara>to the version that is already installed (if any) and to the versions coming
 from archives which in their <filename>Release</filename> files are marked as "NotAutomatic: yes" and
-"ButAutomaticUpgrades: yes" like the debian backports archive since <literal>squeeze-backports</literal>.
+"ButAutomaticUpgrades: yes" like the Debian backports archive since <literal>squeeze-backports</literal>.
 </simpara></listitem>
 </varlistentry>
 
@@ -185,14 +185,14 @@ and a general form.
 <itemizedlist>
 <listitem>
 <simpara>The specific form assigns a priority (a "Pin-Priority") to one or more
-specified packages and specified version or version range.  For example,
+specified packages with a specified version or version range.  For example,
 the following record assigns a high priority to all versions of
-the <filename>perl</filename> package whose version number begins with "<literal>5.8</literal>".
+the <filename>perl</filename> package whose version number begins with "<literal>&good-perl;</literal>".
 Multiple packages can be separated by spaces.</simpara>
 
 <programlisting>
 Package: perl
-Pin: version 5.8*
+Pin: version &good-perl;*
 Pin-Priority: 1001
 </programlisting>
 </listitem>
@@ -246,11 +246,11 @@ Pin-Priority: 900
 
 <simpara>The following record assigns a high priority to all package versions
 belonging to any release whose Archive name is "<literal>stable</literal>"
-and whose release Version number is "<literal>3.0</literal>".</simpara>
+and whose release Version number is "<literal>&stable-version;</literal>".</simpara>
 
 <programlisting>
 Package: *
-Pin: release a=stable, v=3.0
+Pin: release a=stable, v=&stable-version;
 Pin-Priority: 500
 </programlisting>
 </listitem>
@@ -259,12 +259,12 @@ Pin-Priority: 500
 
 </refsect2>
 
-<refsect2><title>Regular expressions and glob() syntax</title>
+<refsect2><title>Regular expressions and &glob; syntax</title>
 <para>
-APT also supports pinning by glob() expressions and regular
-expressions surrounded by /. For example, the following
+APT also supports pinning by &glob; expressions, and regular
+expressions surrounded by slashes. For example, the following
 example assigns the priority 500 to all packages from
-experimental where the name starts with gnome (as a glob()-like
+experimental where the name starts with gnome (as a &glob;-like
 expression) or contains the word kde (as a POSIX extended regular
 expression surrounded by slashes).
 </para>
@@ -278,12 +278,12 @@ Pin-Priority: 500
 <para>
 The rule for those expressions is that they can occur anywhere
 where a string can occur. Thus, the following pin assigns the
-priority 990 to all packages from a release starting with karmic.
+priority 990 to all packages from a release starting with &ubuntu-codename;.
 </para>
 
 <programlisting>
 Package: *
-Pin: release n=karmic*
+Pin: release n=&ubuntu-codename;*
 Pin-Priority: 990
 </programlisting>
 
@@ -291,11 +291,11 @@ Pin-Priority: 990
 If a regular expression occurs in a <literal>Package</literal> field,
 the behavior is the same as if this regular expression were replaced
 with a list of all package names it matches. It is undecided whether
-this will change in the future, thus you should always list wild-card
+this will change in the future; thus you should always list wild-card
 pins first, so later specific pins override it.
 
 The pattern "<literal>*</literal>" in a Package field is not considered
-a glob() expression in itself.
+a &glob; expression in itself.
 </para>
 </refsect2>
 
@@ -357,7 +357,7 @@ records presented earlier:</para>
 
 <programlisting>
 Package: perl
-Pin: version 5.8*
+Pin: version &good-perl;*
 Pin-Priority: 1001
 
 Package: *
@@ -373,8 +373,8 @@ Pin-Priority: 50
 <itemizedlist>
 <listitem><simpara>The most recent available version of the <literal>perl</literal>
 package will be installed, so long as that version's version number begins
-with "<literal>5.8</literal>".  If <emphasis>any</emphasis> 5.8* version of <literal>perl</literal> is
-available and the installed version is 5.9*, then <literal>perl</literal> will be
+with "<literal>&good-perl;</literal>".  If <emphasis>any</emphasis> &good-perl;* version of <literal>perl</literal> is
+available and the installed version is &bad-perl;*, then <literal>perl</literal> will be
 downgraded.</simpara></listitem>
 <listitem><simpara>A version of any package other than <literal>perl</literal>
 that is available from the local system has priority over other versions,
@@ -461,16 +461,16 @@ Pin: release n=&testing-codename;
 <term>the <literal>Version:</literal> line</term>
 <listitem><simpara>names the release version.  For example, the
 packages in the tree might belong to Debian release
-version 3.0.  Note that there is normally no version number for the
+version &stable-version;.  Note that there is normally no version number for the
 <literal>testing</literal> and <literal>unstable</literal> distributions because they
 have not been released yet.  Specifying this in the APT preferences
 file would require one of the following lines.
 </simpara>
 
 <programlisting>
-Pin: release v=3.0
-Pin: release a=stable, v=3.0
-Pin: release 3.0
+Pin: release v=&stable-version;
+Pin: release a=stable, v=&stable-version;
+Pin: release &stable-version;
 </programlisting>
 
 </listitem>

+ 1 - 1
doc/dpkg-tech.sgml

@@ -164,7 +164,7 @@ not copied into here; it is instead found as part of status or available.
 <item>methods - this directory is reserved for "method"-specific files - each
 "method" has a subdirectory underneath this directory (or at least, it can
 have). In addition, there is another subdirectory "mnt", where misc.
-filesystems (floppies, CDROMs, etc.) are mounted.
+filesystems (floppies, CD-ROMs, etc.) are mounted.
 <item>alternatives - directory used by the "update-alternatives" program. It
 contains one file for each "alternatives" interface, which contains information
 about all the needed symlinked files for each alternative.

+ 3 - 3
doc/examples/apt-ftparchive.conf

@@ -21,21 +21,21 @@ Default {
 BinDirectory "pool/main" {
 	Packages "dists/sid/main/binary-i386/Packages";
 	Sources "dists/sid/main/source/Sources";
-	Contents "dists/sid/Contents-i386";
+	Contents "dists/sid/main/Contents-i386";
 }
 
 // This is the same for the contrib section
 BinDirectory "pool/contrib" {
 	Packages "dists/sid/contrib/binary-i386/Packages";
 	Sources "dists/sid/contrib/source/Sources";
-	Contents "dists/sid/Contents-i386";
+	Contents "dists/sid/contrib/Contents-i386";
 }
 
 // This is the same for the non-free section
 BinDirectory "pool/non-free" {
 	Packages "dists/sid/non-free/binary-i386/Packages";
 	Sources "dists/sid/non-free/source/Sources";
-	Contents "dists/sid/Contents-i386";
+	Contents "dists/sid/non-free/Contents-i386";
 };
 
 // By default all Packages should have the extension ".deb"

+ 1 - 1
doc/examples/configure-index

@@ -90,7 +90,7 @@ APT
 
   Authentication
   {
-     TrustCDROM "false";            // consider the CDROM always trusted
+     TrustCDROM "false";            // consider the CD-ROM always trusted
   };
 
   // Some general options

+ 0 - 9
doc/examples/sources.list

@@ -1,9 +0,0 @@
-# See sources.list(5) for more information, especialy
-# Remember that you can only use http, ftp or file URIs
-# CDROMs are managed through the apt-cdrom tool.
-deb http://http.us.debian.org/debian stable main contrib non-free
-deb http://security.debian.org stable/updates main contrib non-free
-
-# Uncomment if you want the apt-get source function to work
-#deb-src http://http.us.debian.org/debian stable main contrib non-free
-#deb-src http://security.debian.org stable/updates main contrib non-free

+ 8 - 0
doc/examples/sources.list.in

@@ -0,0 +1,8 @@
+# See sources.list(5) manpage for more information
+# Remember that CD-ROMs, DVDs and such are managed through the apt-cdrom tool.
+deb http://ftp.us.debian.org/debian &stable-codename; main contrib non-free
+deb http://security.debian.org &stable-codename;/updates main contrib non-free
+
+# Uncomment if you want the apt-get source function to work
+#deb-src http://ftp.us.debian.org/debian &stable-codename; main contrib non-free
+#deb-src http://security.debian.org &stable-codename;/updates main contrib non-free

+ 1 - 1
doc/files.sgml

@@ -163,7 +163,7 @@ The extended_states file serves the same purpose as the normal dpkg status file
 This includes currently only the autoflag but is open to store more
 unique data that come up over time. It duplicates nothing from the normal
 dpkg status file.  Please see other APT documentation for a discussion
-of the exact internal behaviour of these fields. The Package and the
+of the exact internal behavior of these fields. The Package and the
 Architecture field are placed directly before the new fields to indicate
 which package they apply to. The new fields are as follows:
 

+ 3 - 3
doc/guide.sgml

@@ -174,11 +174,11 @@ select the packages to be installed or removed and APT actually installs them.
 To enable the APT method you need to select [A]ccess in <prgn>dselect</> 
 and then choose the APT method. You will be prompted for a set of 
 <em>Sources</> which are places to fetch archives from. These can be remote
-Internet sites, local Debian mirrors or CDROMs. Each source can provide
+Internet sites, local Debian mirrors or CD-ROMs. Each source can provide
 a fragment of the total Debian archive, APT will automatically combine them
-to form a complete set of packages. If you have a CDROM then it is a good idea
+to form a complete set of packages. If you have a CD-ROM then it is a good idea
 to specify it first and then specify a mirror so that you have access to
-the latest bug fixes. APT will automatically use packages on your CDROM before
+the latest bug fixes. APT will automatically use packages on your CD-ROM before
 downloading from the Internet.
 
 <p>

+ 3 - 0
doc/makefile

@@ -56,6 +56,9 @@ endif
 SOURCE = apt.8
 include $(MANPAGE_H)
 
+examples/sources.list: examples/sources.list.in apt-verbatim.ent
+	sed -e 's#&stable-codename;#$(shell grep --max-count=1 '^<!ENTITY stable-codename "' apt-verbatim.ent | cut -d'"' -f 2)#g' examples/sources.list.in > examples/sources.list
+
 # Examples
 SOURCE = examples/apt.conf examples/sources.list examples/configure-index examples/apt-https-method-example.conf
 TO = $(DOC)

+ 2 - 2
doc/method.sgml

@@ -220,7 +220,7 @@ the ones it wants.
 <tag>Local<item>The method only returns Filename: fields.
 <tag>Send-Config<item>Send configuration to the method.
 <tag>Needs-Cleanup<item>The process is kept around while the files it returned
-are being used. This is primarily intended for CDROM and File URIs that need
+are being used. This is primarily intended for CD-ROM and File URIs that need
 to unmount filesystems.
 <tag>Version<item>Version string for the method
 </taglist>
@@ -318,7 +318,7 @@ Fields: Media, Fail
 <p>
 The methods supplied by the stock apt are:
 <enumlist>
-<item>cdrom - For Multi-Disc CDROMs
+<item>cdrom - For Multi-Disc CD-ROMs
 <item>copy - (internal) For copying files around the filesystem
 <item>file - For local files
 <item>gzip - (internal) For decompression

Разница между файлами не показана из-за своего большого размера
+ 3601 - 3587
doc/po/apt-doc.pot


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


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


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


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


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


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


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


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


+ 9 - 9
doc/po4a.conf

@@ -7,25 +7,25 @@
 	-o untranslated='<term><option> <refname> <refentrytitle> <date> <refentryinfo> <phrase> <variablelist> <term><command>' \
 	-o break='<term><option> <term><command>' \
 	-o nodefault='<option> <refname> <refentrytitle> <date> <refentryinfo> <phrase> <variablelist> <command>' \
-	-o inline='<para><option> <refentrytitle> <para><command> <programlisting><command> <refentrytitle><command>' \
-	-o translated='<para><command> <programlisting><command> <refentrytitle><command>'"
+	-o inline='<para><option> <refentrytitle> <para><command> <programlisting><command> <refentrytitle><command> <refpurpose><command>' \
+	-o translated='<para><command> <programlisting><command> <refentrytitle><command> <refpurpose><command>'"
 
 # define source file and translated file (one file per line)
-[type: man]     apt.8 $lang:$lang/apt.$lang.8
 [type: entity]  apt.ent $lang:$lang/apt.ent
-[type: manpage] apt-cache.8.xml $lang:$lang/apt-cache.$lang.8.xml add_$lang:xml.add
-[type: manpage] apt-cdrom.8.xml $lang:$lang/apt-cdrom.$lang.8.xml add_$lang:xml.add
-[type: manpage] apt-config.8.xml $lang:$lang/apt-config.$lang.8.xml add_$lang:xml.add
-[type: manpage] apt-extracttemplates.1.xml $lang:$lang/apt-extracttemplates.$lang.1.xml add_$lang:xml.add
-[type: manpage] apt-ftparchive.1.xml $lang:$lang/apt-ftparchive.$lang.1.xml add_$lang:xml.add
 [type: manpage] apt-get.8.xml $lang:$lang/apt-get.$lang.8.xml add_$lang:xml.add
+[type: manpage] apt-cache.8.xml $lang:$lang/apt-cache.$lang.8.xml add_$lang:xml.add
 [type: manpage] apt-key.8.xml $lang:$lang/apt-key.$lang.8.xml add_$lang:xml.add
 [type: manpage] apt-mark.8.xml $lang:$lang/apt-mark.$lang.8.xml add_$lang:xml.add
 [type: manpage] apt-secure.8.xml $lang:$lang/apt-secure.$lang.8.xml add_$lang:xml.add
-[type: manpage] apt-sortpkgs.1.xml $lang:$lang/apt-sortpkgs.$lang.1.xml add_$lang:xml.add
+[type: manpage] apt-cdrom.8.xml $lang:$lang/apt-cdrom.$lang.8.xml add_$lang:xml.add
+[type: manpage] apt-config.8.xml $lang:$lang/apt-config.$lang.8.xml add_$lang:xml.add
 [type: manpage] apt.conf.5.xml $lang:$lang/apt.conf.$lang.5.xml add_$lang:xml.add
 [type: manpage] apt_preferences.5.xml $lang:$lang/apt_preferences.$lang.5.xml add_$lang:xml.add
 [type: manpage] sources.list.5.xml $lang:$lang/sources.list.$lang.5.xml add_$lang:xml.add
+[type: manpage] apt-extracttemplates.1.xml $lang:$lang/apt-extracttemplates.$lang.1.xml add_$lang:xml.add
+[type: manpage] apt-sortpkgs.1.xml $lang:$lang/apt-sortpkgs.$lang.1.xml add_$lang:xml.add
+[type: manpage] apt-ftparchive.1.xml $lang:$lang/apt-ftparchive.$lang.1.xml add_$lang:xml.add
+[type: man]     apt.8 $lang:$lang/apt.$lang.8
 
 [type: sgml]    guide.sgml $lang:$lang/guide.$lang.sgml
 #                 add_$lang::$lang/addendum/debiandoc_$lang.add

+ 48 - 48
doc/sources.list.5.xml

@@ -18,7 +18,7 @@
    &apt-email;
    &apt-product;
    <!-- The last update date -->
-   <date>2004-02-29T00:00:00Z</date>
+   <date>2012-06-09T00:00:00Z</date>
  </refentryinfo>
  
  <refmeta>
@@ -30,24 +30,24 @@
  <!-- Man page title -->
  <refnamediv>
     <refname>sources.list</refname>
-    <refpurpose>Package resource list for APT</refpurpose>
+    <refpurpose>List of configured APT data sources</refpurpose>
  </refnamediv>
  
  <refsect1><title>Description</title>
-   <para>The package resource list is used to locate archives of the package
-   distribution system in use on the system. At this time, this manual page
-   documents only the packaging system used by the Debian system.
-   This control file is <filename>/etc/apt/sources.list</filename>.</para>
-
-   <para>The source list is designed to support any number of active sources and a
-   variety of source media. The file lists one source per line, with the
-   most preferred source listed first. The format of each line is:
-   <literal>type uri args</literal> The first item, <literal>type</literal>
-   determines the format for <literal>args</literal>. <literal>uri</literal> is
-   a Universal Resource Identifier 
-   (URI), which is a superset of the more specific and well-known Universal
-   Resource Locator, or URL. The rest of the line can be marked as a comment 
-   by using a #.</para>
+   <para>
+   The source list <filename>/etc/apt/sources.list</filename> is designed to support
+   any number of active sources and a variety of source media. The file lists one
+   source per line, with the most preferred source listed first. The information available
+   from the configured sources is acquired by <command>apt-get update</command>
+   (or by an equivalent command from another APT front-end).
+   </para>
+   <para>
+   Each line specifying a source starts with type (e.g. <literal>deb-src</literal>)
+   followed by options and arguments for this type.
+   Individual entries cannot be continued onto a following line. Empty lines
+   are ignored, and a <literal>#</literal> character anywhere on a line marks
+   the remainder of that line as a comment.
+   </para>
  </refsect1>
  
  <refsect1><title>sources.list.d</title>
@@ -57,20 +57,20 @@
    File names need to end with
    <filename>.list</filename> and may only contain letters (a-z and A-Z),
    digits (0-9), underscore (_), hyphen (-) and period (.) characters.
-   Otherwise APT will print a notice that it has ignored a file if the file
-   doesn't match a pattern in the <literal>Dir::Ignore-Files-Silently</literal>
-   configuration list - in this case it will be silently ignored.</para>
+   Otherwise APT will print a notice that it has ignored a file, unless that
+   file matches a pattern in the <literal>Dir::Ignore-Files-Silently</literal>
+   configuration list - in which case it will be silently ignored.</para>
  </refsect1>
 
  <refsect1><title>The deb and deb-src types</title>
-   <para>The <literal>deb</literal> type describes a typical two-level Debian
-   archive, <filename>distribution/component</filename>. Typically,
-   <literal>distribution</literal> is generally an archivename like
+   <para>The <literal>deb</literal> type references a typical two-level Debian
+   archive, <filename>distribution/component</filename>. The
+   <literal>distribution</literal> is generally an archive name like
    <literal>stable</literal> or <literal>testing</literal> or a codename like
    <literal>&stable-codename;</literal> or <literal>&testing-codename;</literal>
-   while component is one of <literal>main</literal> <literal>contrib</literal> or
+   while component is one of <literal>main</literal>, <literal>contrib</literal> or
    <literal>non-free</literal>. The
-   <literal>deb-src</literal> type describes a debian distribution's source
+   <literal>deb-src</literal> type references a Debian distribution's source
    code in the same form as the <literal>deb</literal> type.
    A <literal>deb-src</literal> line is required to fetch source indexes.</para>
 
@@ -84,15 +84,15 @@
    Debian distribution, from which APT will find the information it needs. 
    <literal>distribution</literal> can specify an exact path, in which case the 
    components must be omitted and <literal>distribution</literal> must end with
-   a slash (/). This is useful for when the case only a particular sub-section of the 
-   archive denoted by the URI is of interest.
+   a slash (<literal>/</literal>). This is useful for the case when only a
+   particular sub-section of the archive denoted by the URI is of interest.
    If <literal>distribution</literal> does not specify an exact path, at least
    one <literal>component</literal> must be present.</para>
 
    <para><literal>distribution</literal> may also contain a variable, 
    <literal>$(ARCH)</literal>
-   which expands to the Debian architecture (i386, m68k, powerpc, ...)
-   used on the system. This permits architecture-independent
+   which expands to the Debian architecture (such as <literal>amd64</literal> or
+   <literal>armel</literal>) used on the system. This permits architecture-independent
    <filename>sources.list</filename> files to be used. In general this is only
    of interest when specifying an exact path, <literal>APT</literal> will
    automatically generate a URI with the current architecture otherwise.</para>
@@ -109,13 +109,13 @@
    simultaneous anonymous users. APT also parallelizes connections to 
    different hosts to more effectively deal with sites with low bandwidth.</para>
 
-   <para><literal>options</literal> is always optional and needs to be surounded by
+   <para><literal>options</literal> is always optional and needs to be surrounded by
    square brackets. It can consist of multiple settings in the form
    <literal><replaceable>setting</replaceable>=<replaceable>value</replaceable></literal>.
-   Multiple settings are separated by spaces. The following settings are supported by APT,
-   note though that unsupported settings will be ignored silently:
+   Multiple settings are separated by spaces. The following settings are supported by APT
+   (note however that unsupported settings will be ignored silently):
    <itemizedlist><listitem><para><literal>arch=<replaceable>arch1</replaceable>,<replaceable>arch2</replaceable>,…</literal>
-   can be used to specify for which architectures packages information should
+   can be used to specify for which architectures information should
    be downloaded. If this option is not set all architectures defined by the
    <literal>APT::Architectures</literal> option will be downloaded.</para></listitem>
    <listitem><para><literal>trusted=yes</literal> can be set to indicate that packages
@@ -151,7 +151,7 @@ deb http://security.debian.org/ &stable-codename;/updates main contrib non-free
     
     <varlistentry><term><command>cdrom</command></term>
     <listitem><para>
-    The cdrom scheme allows APT to use a local CDROM drive with media
+    The cdrom scheme allows APT to use a local CD-ROM drive with media
     swapping. Use the &apt-cdrom; program to create cdrom entries in the
     source list.</para></listitem>
     </varlistentry>
@@ -171,10 +171,11 @@ deb http://security.debian.org/ &stable-codename;/updates main contrib non-free
     <listitem><para>
     The ftp scheme specifies an FTP server for the archive. APT's FTP behavior
     is highly configurable; for more information see the
-    &apt-conf; manual page. Please note that a ftp proxy can be specified
+    &apt-conf; manual page. Please note that an FTP proxy can be specified
     by using the <envar>ftp_proxy</envar> environment variable. It is possible
-    to specify a http proxy (http proxy servers often understand ftp urls)
-    using this method and ONLY this method. ftp proxies using http specified in
+    to specify an HTTP proxy (HTTP proxy servers often understand FTP URLs)
+    using this environment variable and <emphasis>only</emphasis> this
+    environment variable. Proxies using HTTP specified in
     the configuration file will be ignored.</para></listitem>
     </varlistentry>
 
@@ -182,26 +183,25 @@ deb http://security.debian.org/ &stable-codename;/updates main contrib non-free
     <listitem><para>
     The copy scheme is identical to the file scheme except that packages are
     copied into the cache directory instead of used directly at their location.
-    This is useful for people using a zip disk to copy files around with APT.</para></listitem>
+    This is useful for people using removable media to copy files around with APT.</para></listitem>
     </varlistentry>
     
     <varlistentry><term><command>rsh</command></term><term><command>ssh</command></term>
     <listitem><para>
-    The rsh/ssh method invokes rsh/ssh to connect to a remote host
-	as a given user and access the files. It is a good idea to do prior
-	arrangements with RSA keys or rhosts.
-    Access to files on the remote uses standard <command>find</command> and
-    <command>dd</command> 
-    commands to perform the file transfers from the remote.</para></listitem>
+    The rsh/ssh method invokes RSH/SSH to connect to a remote host and
+    access the files as a given user. Prior configuration of rhosts or RSA keys
+    is recommended. The standard <command>find</command> and <command>dd</command>
+    commands are used to perform the file transfers from the remote host.
+    </para></listitem>
     </varlistentry>
 
     <varlistentry><term>adding more recognizable URI types</term>
     <listitem><para>
-    APT can be extended with more methods shipped in other optional packages which should
-    follow the nameing scheme <package>apt-transport-<replaceable>method</replaceable></package>.
-    The APT team e.g. maintains also the <package>apt-transport-https</package> package which
-    provides access methods for https-URIs with features similar to the http method, but other
-    methods for using e.g. debtorrent are also available, see &apt-transport-debtorrent;.
+    APT can be extended with more methods shipped in other optional packages, which should
+    follow the naming scheme <package>apt-transport-<replaceable>method</replaceable></package>.
+    For instance, the APT team also maintains the package <package>apt-transport-https</package>,
+    which provides access methods for HTTPS URIs with features similar to the http method.
+    Methods for using e.g. debtorrent are also available - see &apt-transport-debtorrent;.
     </para></listitem>
     </varlistentry>
   </variablelist>

+ 1 - 1
ftparchive/apt-ftparchive.cc

@@ -451,7 +451,7 @@ void LoadTree(vector<PackageMap> &PkgList,Configuration &Setup)
    string DIPrfx = Setup.Find("TreeDefault::InternalPrefix",
 			    "$(DIST)/$(SECTION)/");
    string DContents = Setup.Find("TreeDefault::Contents",
-			    "$(DIST)/Contents-$(ARCH)");
+			    "$(DIST)/$(SECTION)/Contents-$(ARCH)");
    string DContentsH = Setup.Find("TreeDefault::Contents::Header","");
    string DBCache = Setup.Find("TreeDefault::BinCacheDB",
 			       "packages-$(ARCH).db");

+ 1 - 0
prepare-release

@@ -40,6 +40,7 @@ if [ "$1" = 'pre-export' ]; then
 	fi
 
 	sed -i -e "s/^PACKAGE_VERSION=\".*\"$/PACKAGE_VERSION=\"${VERSION}\"/" configure.in
+	sed -i -e "s/^<!ENTITY apt-product-version \".*\">$/<!ENTITY apt-product-version \"${VERSION}\">/" doc/apt-verbatim.ent
 elif [ "$1" = 'post-build' ]; then
 	if [ "$DISTRIBUTION" != "UNRELEASED" ]; then
 		echo >&2 "REMEMBER: Tag this release with »bzr tag ${VERSION}« if you are satisfied"

+ 2 - 1
test/integration/framework

@@ -508,7 +508,8 @@ Architecture: $ARCH" >> $FILE
 	test -z "$DEPENDENCIES" || echo "$DEPENDENCIES" >> $FILE
 	echo "Files:
  d41d8cd98f00b204e9800998ecf8427e 0 ${NAME}_${VERSION}.dsc
- d41d8cd98f00b204e9800998ecf8427e 0 ${NAME}_${VERSION}.tar.gz" >> $FILE
+ d41d8cd98f00b204e9800998ecf8427e 0 ${NAME}_${VERSION}.tar.gz
+" >> $FILE
 }
 
 insertinstalledpackage() {

+ 3 - 0
test/integration/test-apt-get-changelog

@@ -17,6 +17,9 @@ echo 'Apt::Changelogs::Server "http://localhost:8080/";' >> ./aptconfig.conf
 
 testequal "'http://localhost:8080//pool/apt_1.0/changelog'" aptget changelog apt --print-uris
 
+testequal "'http://localhost:8080//pool/apt_1.0/changelog'
+'http://localhost:8080//pool/apt_1.0/changelog'" aptget changelog apt apt --print-uris
+
 aptget changelog apt -qq > apt.changelog
 testfileequal 'apt.changelog' "$(cat aptarchive/pool/apt_1.0/changelog)"
 rm apt.changelog

+ 57 - 0
test/integration/test-bug-632221-cross-dependency-satisfaction

@@ -23,8 +23,65 @@ insertpackage 'unstable' 'linux-stuff' 'amd64,armel' '1.0'
 
 insertsource 'unstable' 'apt' 'any' '0.8.15' 'Build-Depends: doxygen, libc6-dev, libc6-dev:native, cool:any, amdboot:amd64, foreigner, libfwibble-dev, arm-stuff [any-arm] | linux-stuff [ linux-any]'
 
+insertsource 'unstable' 'forbidden-none' 'any' '1' 'Build-Depends: amdboot:any'
+insertsource 'unstable' 'forbidden-same' 'any' '1' 'Build-Depends: libc6:any'
+insertsource 'unstable' 'forbidden-foreign' 'any' '1' 'Build-Depends: doxygen:any'
+
+insertpackage 'unstable' 'specific' 'amd64' '1.0' 'Depends: libc6:amd64'
+insertpackage 'unstable' 'specific' 'armel' '1.0' 'Depends: libc6:armel'
+
+insertsource 'unstable' 'source-specific-amd64' 'amd64' '1' 'Build-Depends: specific:amd64'
+insertsource 'unstable' 'source-specific-armel' 'armel' '1' 'Build-Depends: specific:armel'
+
 setupaptarchive
 
+testequal "Reading package lists...
+Building dependency tree...
+E: Build-Depends dependency for forbidden-none can't be satisfied because amdboot:any is not allowed on 'Multi-Arch: none' packages" aptget build-dep forbidden-none -s -a armel
+testequal "Reading package lists...
+Building dependency tree...
+E: Build-Depends dependency for forbidden-same can't be satisfied because libc6:any is not allowed on 'Multi-Arch: same' packages" aptget build-dep forbidden-same -s -a armel
+testequal "Reading package lists...
+Building dependency tree...
+E: Build-Depends dependency for forbidden-foreign can't be satisfied because doxygen:any is not allowed on 'Multi-Arch: foreign' packages" aptget build-dep forbidden-foreign -s -a armel
+
+testequal 'Reading package lists...
+Building dependency tree...
+The following NEW packages will be installed:
+  libc6 specific
+0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
+Inst libc6 (1.0 unstable [amd64])
+Inst specific (1.0 unstable [amd64])
+Conf libc6 (1.0 unstable [amd64])
+Conf specific (1.0 unstable [amd64])' aptget build-dep source-specific-amd64 -s
+testequal 'Reading package lists...
+Building dependency tree...
+The following NEW packages will be installed:
+  libc6 specific
+0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
+Inst libc6 (1.0 unstable [amd64])
+Inst specific (1.0 unstable [amd64])
+Conf libc6 (1.0 unstable [amd64])
+Conf specific (1.0 unstable [amd64])' aptget build-dep source-specific-amd64 -s -a armel
+testequal 'Reading package lists...
+Building dependency tree...
+The following NEW packages will be installed:
+  libc6:armel specific:armel
+0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
+Inst libc6:armel (1.0 unstable [armel])
+Inst specific:armel (1.0 unstable [armel])
+Conf libc6:armel (1.0 unstable [armel])
+Conf specific:armel (1.0 unstable [armel])' aptget build-dep source-specific-armel -s
+testequal 'Reading package lists...
+Building dependency tree...
+The following NEW packages will be installed:
+  libc6:armel specific:armel
+0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
+Inst libc6:armel (1.0 unstable [armel])
+Inst specific:armel (1.0 unstable [armel])
+Conf libc6:armel (1.0 unstable [armel])
+Conf specific:armel (1.0 unstable [armel])' aptget build-dep source-specific-armel -s -a armel
+
 testequal 'Reading package lists...
 Building dependency tree...
 The following NEW packages will be installed:

+ 32 - 0
test/libapt/commandline_test.cc

@@ -0,0 +1,32 @@
+#include <apt-pkg/cmndline.h>
+
+#include "assert.h"
+
+int main()
+{
+   CommandLine::Args Args[] = {
+      { 't', 0, "Test::Worked", 0 },
+      { 'z', "zero", "Test::Zero", 0 },
+      {0,0,0,0}
+   };
+   CommandLine CmdL(Args,_config);
+
+   char const * argv[] = { "test", "--zero", "-t" };
+   CmdL.Parse(3 , argv);
+   equals(true, _config->FindB("Test::Worked", false));
+   equals(true, _config->FindB("Test::Zero", false));
+
+   _config->Clear("Test");
+   equals(false, _config->FindB("Test::Worked", false));
+   equals(false, _config->FindB("Test::Zero", false));
+
+   _config->Set("Test::Zero", true);
+   equals(true, _config->FindB("Test::Zero", false));
+
+   char const * argv2[] = { "test", "--no-zero", "-t" };
+   CmdL.Parse(3 , argv2);
+   equals(true, _config->FindB("Test::Worked", false));
+   equals(false, _config->FindB("Test::Zero", false));
+
+   return 0;
+}

+ 4 - 2
test/libapt/getlanguages_test.cc

@@ -144,7 +144,8 @@ int main(int argc,char *argv[])
 
 	_config->Set("Acquire::Languages", "none");
 	vec = APT::Configuration::getLanguages(true, false, env);
-	equals(vec.size(), 0);
+	equals(vec.size(), 1);
+	equals(vec[0], "none");
 	_config->Set("Acquire::Languages", "");
 
 	_config->Set("Dir::State::lists", "/non-existing-dir");
@@ -168,7 +169,8 @@ int main(int argc,char *argv[])
 	_config->Set("Acquire::Languages", "none");
 	env[0] = "de_DE.UTF-8";
 	vec = APT::Configuration::getLanguages(true, false, env);
-	equals(vec.size(), 0);
+	equals(vec.size(), 1);
+	equals(vec[0], "none");
 
 	_config->Set("Acquire::Languages", "");
 	//FIXME: Remove support for this deprecated setting

+ 6 - 0
test/libapt/makefile

@@ -33,6 +33,12 @@ SLIBS = -lapt-pkg
 SOURCE = getlistoffilesindir_test.cc
 include $(PROGRAM_H)
 
+# Program for testing CommandLine reconstruction
+PROGRAM = Commandline${BASENAME}
+SLIBS = -lapt-pkg
+SOURCE = commandline_test.cc
+include $(PROGRAM_H)
+
 # Program for testing CommandLine reconstruction
 PROGRAM = CommandlineAsString${BASENAME}
 SLIBS = -lapt-pkg