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

merged from David, uncommited the previous i18n commit first as its part of the merge from David already but for some reason bzr is confused and gives a gazillion of conflicts in doc/po/de.po without the uncommit first

Michael Vogt лет назад: 14
Родитель
Сommit
6c1f5d2c3c
62 измененных файлов с 6912 добавлено и 19508 удалено
  1. 6 3
      Makefile
  2. 13 28
      apt-pkg/acquire-method.cc
  3. 3 0
      apt-pkg/acquire-method.h
  4. 15 0
      apt-pkg/acquire-worker.cc
  5. 34 5
      apt-pkg/acquire.cc
  6. 6 0
      apt-pkg/algorithms.cc
  7. 1 0
      apt-pkg/algorithms.h
  8. 1 1
      apt-pkg/aptconfiguration.cc
  9. 41 24
      apt-pkg/contrib/fileutl.cc
  10. 1 1
      apt-pkg/packagemanager.cc
  11. 2 2
      apt-pkg/pkgcachegen.cc
  12. 1 0
      apt-pkg/srcrecords.h
  13. 5 6
      buildlib/configure.mak
  14. 1 1
      buildlib/copy.mak
  15. 1 1
      buildlib/defaults.mak
  16. 2 1
      buildlib/manpage.mak
  17. 6 2
      buildlib/po4a_manpage.mak
  18. 3 3
      buildlib/podomain.mak
  19. 12 2
      cmdline/apt-get.cc
  20. 64 0
      debian/changelog
  21. 3 2
      debian/control
  22. 0 1
      debian/libapt-pkg4.12.symbols
  23. 10 4
      debian/rules
  24. 19 21
      doc/apt-cache.8.xml
  25. 3 3
      doc/apt-cdrom.8.xml
  26. 7 6
      doc/apt-config.8.xml
  27. 4 3
      doc/apt-extracttemplates.1.xml
  28. 51 51
      doc/apt-ftparchive.1.xml
  29. 22 32
      doc/apt-get.8.xml
  30. 23 16
      doc/apt-key.8.xml
  31. 13 13
      doc/apt-mark.8.xml
  32. 9 2
      doc/apt-secure.8.xml
  33. 1 1
      doc/apt-sortpkgs.1.xml
  34. 8 2
      doc/apt-verbatim.ent
  35. 101 94
      doc/apt.conf.5.xml
  36. 10 20
      doc/apt.ent
  37. 3 2
      doc/apt_preferences.5.xml
  38. 19 9
      doc/makefile
  39. 8 0
      doc/manpage-style.xsl
  40. 523 1830
      doc/po/apt-doc.pot
  41. 856 2336
      doc/po/de.po
  42. 767 2213
      doc/po/es.po
  43. 778 2179
      doc/po/fr.po
  44. 538 1860
      doc/po/it.po
  45. 751 2276
      doc/po/ja.po
  46. 685 2263
      doc/po/pl.po
  47. 768 2211
      doc/po/pt.po
  48. 569 1919
      doc/po/pt_BR.po
  49. 18 13
      doc/po4a.conf
  50. 3 3
      doc/sources.list.5.xml
  51. 1 0
      ftparchive/writer.cc
  52. 6 3
      methods/http.cc
  53. 1 1
      methods/https.cc
  54. 1 1
      methods/mirror.cc
  55. 8 3
      prepare-release
  56. 1 1
      test/Makefile
  57. 7 5
      test/integration/skip-bug-602412-dequote-redirect
  58. 23 0
      test/integration/test-673536-pre-depends-breaks-loop
  59. 42 24
      test/integration/test-bug-632221-cross-dependency-satisfaction
  60. 21 0
      test/libapt/assert.h
  61. 11 4
      test/libapt/getlanguages_test.cc
  62. 2 1
      test/libapt/run-tests

+ 6 - 3
Makefile

@@ -10,7 +10,7 @@ endif
 default: startup all
 default: startup all
 
 
 .PHONY: headers library clean veryclean all binary program doc test update-po
 .PHONY: headers library clean veryclean all binary program doc test update-po
-startup all headers library clean veryclean binary program doc dirs test update-po:
+all headers library clean veryclean binary program doc manpages test update-po startup dirs:
 	$(MAKE) -C apt-pkg $@
 	$(MAKE) -C apt-pkg $@
 	$(MAKE) -C apt-inst $@
 	$(MAKE) -C apt-inst $@
 	$(MAKE) -C methods $@
 	$(MAKE) -C methods $@
@@ -21,11 +21,14 @@ startup all headers library clean veryclean binary program doc dirs test update-
 	$(MAKE) -C po $@
 	$(MAKE) -C po $@
 	$(MAKE) -C test $@
 	$(MAKE) -C test $@
 
 
-update-po: startup
+all headers library clean veryclean binary program doc manpages test update-po: startup dirs
+
+dirs: startup
 
 
 # Some very common aliases
 # Some very common aliases
-.PHONY: maintainer-clean dist-clean distclean pristine sanity 
+.PHONY: maintainer-clean dist-clean distclean pristine sanity
 maintainer-clean dist-clean distclean pristine sanity: veryclean
 maintainer-clean dist-clean distclean pristine sanity: veryclean
+veryclean: clean
 
 
 # The startup target builds the necessary configure scripts. It should
 # The startup target builds the necessary configure scripts. It should
 # be used after a CVS checkout.
 # be used after a CVS checkout.

+ 13 - 28
apt-pkg/acquire-method.cc

@@ -95,12 +95,7 @@ void pkgAcqMethod::Fail(string Err,bool Transient)
    {
    {
       std::cout << "400 URI Failure\nURI: " << Queue->Uri << "\n"
       std::cout << "400 URI Failure\nURI: " << Queue->Uri << "\n"
 		<< "Message: " << Err << " " << IP << "\n";
 		<< "Message: " << Err << " " << IP << "\n";
-      // Dequeue
-      FetchItem *Tmp = Queue;
-      Queue = Queue->Next;
-      delete Tmp;
-      if (Tmp == QueueBack)
-	 QueueBack = Queue;
+      Dequeue();
    }
    }
    else
    else
       std::cout << "400 URI Failure\nURI: <UNKNOWN>\nMessage: " << Err << "\n";
       std::cout << "400 URI Failure\nURI: <UNKNOWN>\nMessage: " << Err << "\n";
@@ -211,13 +206,7 @@ void pkgAcqMethod::URIDone(FetchResult &Res, FetchResult *Alt)
    }
    }
 
 
    std::cout << "\n" << std::flush;
    std::cout << "\n" << std::flush;
-
-   // Dequeue
-   FetchItem *Tmp = Queue;
-   Queue = Queue->Next;
-   delete Tmp;
-   if (Tmp == QueueBack)
-      QueueBack = Queue;
+   Dequeue();
 }
 }
 									/*}}}*/
 									/*}}}*/
 // AcqMethod::MediaFail - Syncronous request for new media		/*{{{*/
 // AcqMethod::MediaFail - Syncronous request for new media		/*{{{*/
@@ -423,26 +412,14 @@ void pkgAcqMethod::Status(const char *Format,...)
 									/*}}}*/
 									/*}}}*/
 // AcqMethod::Redirect - Send a redirect message                       /*{{{*/
 // AcqMethod::Redirect - Send a redirect message                       /*{{{*/
 // ---------------------------------------------------------------------
 // ---------------------------------------------------------------------
-/* This method sends the redirect message and also manipulates the queue
-   to keep the pipeline synchronized. */
+/* This method sends the redirect message and dequeues the item as
+ * the worker will enqueue again later on to the right queue */
 void pkgAcqMethod::Redirect(const string &NewURI)
 void pkgAcqMethod::Redirect(const string &NewURI)
 {
 {
    std::cout << "103 Redirect\nURI: " << Queue->Uri << "\n"
    std::cout << "103 Redirect\nURI: " << Queue->Uri << "\n"
 	     << "New-URI: " << NewURI << "\n"
 	     << "New-URI: " << NewURI << "\n"
 	     << "\n" << std::flush;
 	     << "\n" << std::flush;
-
-   // Change the URI for the request.
-   Queue->Uri = NewURI;
-
-   /* To keep the pipeline synchronized, move the current request to
-      the end of the queue, past the end of the current pipeline. */
-   FetchItem *I;
-   for (I = Queue; I->Next != 0; I = I->Next) ;
-   I->Next = Queue;
-   Queue = Queue->Next;
-   I->Next->Next = 0;
-   if (QueueBack == 0)
-      QueueBack = I->Next;
+   Dequeue();
 }
 }
                                                                         /*}}}*/
                                                                         /*}}}*/
 // AcqMethod::FetchResult::FetchResult - Constructor			/*{{{*/
 // AcqMethod::FetchResult::FetchResult - Constructor			/*{{{*/
@@ -465,3 +442,11 @@ void pkgAcqMethod::FetchResult::TakeHashes(Hashes &Hash)
    SHA512Sum = Hash.SHA512.Result();
    SHA512Sum = Hash.SHA512.Result();
 }
 }
 									/*}}}*/
 									/*}}}*/
+void pkgAcqMethod::Dequeue() {						/*{{{*/
+   FetchItem const * const Tmp = Queue;
+   Queue = Queue->Next;
+   if (Tmp == QueueBack)
+      QueueBack = Queue;
+   delete Tmp;
+}
+									/*}}}*/

+ 3 - 0
apt-pkg/acquire-method.h

@@ -104,6 +104,9 @@ class pkgAcqMethod
    
    
    pkgAcqMethod(const char *Ver,unsigned long Flags = 0);
    pkgAcqMethod(const char *Ver,unsigned long Flags = 0);
    virtual ~pkgAcqMethod() {};
    virtual ~pkgAcqMethod() {};
+
+   private:
+   void Dequeue();
 };
 };
 
 
 /** @} */
 /** @} */

+ 15 - 0
apt-pkg/acquire-worker.cc

@@ -244,6 +244,21 @@ bool pkgAcquire::Worker::RunMessages()
  
  
             string NewURI = LookupTag(Message,"New-URI",URI.c_str());
             string NewURI = LookupTag(Message,"New-URI",URI.c_str());
             Itm->URI = NewURI;
             Itm->URI = NewURI;
+
+	    ItemDone();
+
+	    pkgAcquire::Item *Owner = Itm->Owner;
+	    pkgAcquire::ItemDesc Desc = *Itm;
+
+	    // Change the status so that it can be dequeued
+	    Owner->Status = pkgAcquire::Item::StatIdle;
+	    // Mark the item as done (taking care of all queues)
+	    // and then put it in the main queue again
+	    OwnerQ->ItemDone(Itm);
+	    OwnerQ->Owner->Enqueue(Desc);
+
+	    if (Log != 0)
+	       Log->Done(Desc);
             break;
             break;
          }
          }
    
    

+ 34 - 5
apt-pkg/acquire.cc

@@ -244,11 +244,19 @@ void pkgAcquire::Dequeue(Item *Itm)
 {
 {
    Queue *I = Queues;
    Queue *I = Queues;
    bool Res = false;
    bool Res = false;
-   for (; I != 0; I = I->Next)
-      Res |= I->Dequeue(Itm);
-   
    if (Debug == true)
    if (Debug == true)
       clog << "Dequeuing " << Itm->DestFile << endl;
       clog << "Dequeuing " << Itm->DestFile << endl;
+
+   for (; I != 0; I = I->Next)
+   {
+      if (I->Dequeue(Itm))
+      {
+         Res = true;
+	 if (Debug == true)
+	    clog << "Dequeued from " << I->Name << endl;
+      }
+   }
+
    if (Res == true)
    if (Res == true)
       ToFetch--;
       ToFetch--;
 }
 }
@@ -269,9 +277,30 @@ string pkgAcquire::QueueName(string Uri,MethodConfig const *&Config)
    /* Single-Instance methods get exactly one queue per URI. This is
    /* Single-Instance methods get exactly one queue per URI. This is
       also used for the Access queue method  */
       also used for the Access queue method  */
    if (Config->SingleInstance == true || QueueMode == QueueAccess)
    if (Config->SingleInstance == true || QueueMode == QueueAccess)
-       return U.Access;
+      return U.Access;
+
+   string AccessSchema = U.Access + ':',
+	FullQueueName = AccessSchema + U.Host;
+   unsigned int Instances = 0, SchemaLength = AccessSchema.length();
+
+   Queue *I = Queues;
+   for (; I != 0; I = I->Next) {
+      // if the queue already exists, re-use it
+      if (I->Name == FullQueueName)
+	 return FullQueueName;
+
+      if (I->Name.compare(0, SchemaLength, AccessSchema) == 0)
+	 Instances++;
+   }
+
+   if (Debug) {
+      clog << "Found " << Instances << " instances of " << U.Access << endl;
+   }
+
+   if (Instances >= (unsigned int)_config->FindI("Acquire::QueueHost::Limit",10))
+      return U.Access;
 
 
-   return U.Access + ':' + U.Host;
+   return FullQueueName;
 }
 }
 									/*}}}*/
 									/*}}}*/
 // Acquire::GetConfig - Fetch the configuration information		/*{{{*/
 // Acquire::GetConfig - Fetch the configuration information		/*{{{*/

+ 6 - 0
apt-pkg/algorithms.cc

@@ -58,6 +58,12 @@ pkgSimulate::pkgSimulate(pkgDepCache *Cache) : pkgPackageManager(Cache),
       FileNames[I] = Jnk;
       FileNames[I] = Jnk;
 }
 }
 									/*}}}*/
 									/*}}}*/
+// Simulate::~Simulate - Destructor					/*{{{*/
+pkgSimulate::~pkgSimulate()
+{
+   delete[] Flags;
+}
+									/*}}}*/
 // Simulate::Describe - Describe a package				/*{{{*/
 // Simulate::Describe - Describe a package				/*{{{*/
 // ---------------------------------------------------------------------
 // ---------------------------------------------------------------------
 /* Parameter Current == true displays the current package version,
 /* Parameter Current == true displays the current package version,

+ 1 - 0
apt-pkg/algorithms.h

@@ -78,6 +78,7 @@ private:
    public:
    public:
 
 
    pkgSimulate(pkgDepCache *Cache);
    pkgSimulate(pkgDepCache *Cache);
+   ~pkgSimulate();
 };
 };
 									/*}}}*/
 									/*}}}*/
 class pkgProblemResolver						/*{{{*/
 class pkgProblemResolver						/*{{{*/

+ 1 - 1
apt-pkg/aptconfiguration.cc

@@ -144,7 +144,7 @@ std::vector<std::string> const Configuration::getLanguages(bool const &All,
 	if (D != 0) {
 	if (D != 0) {
 		builtin.push_back("none");
 		builtin.push_back("none");
 		for (struct dirent *Ent = readdir(D); Ent != 0; Ent = readdir(D)) {
 		for (struct dirent *Ent = readdir(D); Ent != 0; Ent = readdir(D)) {
-			string const name = Ent->d_name;
+			string const name = SubstVar(Ent->d_name, "%5f", "_");
 			size_t const foundDash = name.rfind("-");
 			size_t const foundDash = name.rfind("-");
 			size_t const foundUnderscore = name.rfind("_", foundDash);
 			size_t const foundUnderscore = name.rfind("_", foundDash);
 			if (foundDash == string::npos || foundUnderscore == string::npos ||
 			if (foundDash == string::npos || foundUnderscore == string::npos ||

+ 41 - 24
apt-pkg/contrib/fileutl.cc

@@ -81,6 +81,31 @@ class FileFdPrivate {
 	FileFdPrivate() : gz(NULL), bz2(NULL),
 	FileFdPrivate() : gz(NULL), bz2(NULL),
 			  compressed_fd(-1), compressor_pid(-1), pipe(false),
 			  compressed_fd(-1), compressor_pid(-1), pipe(false),
 			  openmode(0), seekpos(0) {};
 			  openmode(0), seekpos(0) {};
+	bool CloseDown(std::string const &FileName)
+	{
+	   bool Res = true;
+#ifdef HAVE_ZLIB
+	   if (gz != NULL) {
+	      int const e = gzclose(gz);
+	      gz = NULL;
+	      // gzdclose() on empty files always fails with "buffer error" here, ignore that
+	      if (e != 0 && e != Z_BUF_ERROR)
+		 Res &= _error->Errno("close",_("Problem closing the gzip file %s"), FileName.c_str());
+	   }
+#endif
+#ifdef HAVE_BZ2
+	   if (bz2 != NULL) {
+	      BZ2_bzclose(bz2);
+	      bz2 = NULL;
+	   }
+#endif
+	   if (compressor_pid > 0)
+	      ExecWait(compressor_pid, "FileFdCompressor", true);
+	   compressor_pid = -1;
+
+	   return Res;
+	}
+	~FileFdPrivate() { CloseDown(""); }
 };
 };
 
 
 // RunScripts - Run a set of scripts from a configuration subtree	/*{{{*/
 // RunScripts - Run a set of scripts from a configuration subtree	/*{{{*/
@@ -1171,6 +1196,12 @@ bool FileFd::OpenInternDescriptor(unsigned int const Mode, APT::Configuration::C
 FileFd::~FileFd()
 FileFd::~FileFd()
 {
 {
    Close();
    Close();
+   if (d != NULL)
+   {
+      d->CloseDown(FileName);
+      delete d;
+      d = NULL;
+   }
 }
 }
 									/*}}}*/
 									/*}}}*/
 // FileFd::Read - Read a bit of the file				/*{{{*/
 // FileFd::Read - Read a bit of the file				/*{{{*/
@@ -1397,7 +1428,7 @@ bool FileFd::Seek(unsigned long long To)
 	 if (d->compressed_fd > 0)
 	 if (d->compressed_fd > 0)
 	    if (lseek(d->compressed_fd, 0, SEEK_SET) != 0)
 	    if (lseek(d->compressed_fd, 0, SEEK_SET) != 0)
 	       iFd = d->compressed_fd;
 	       iFd = d->compressed_fd;
-	 if (iFd <= 0)
+	 if (iFd < 0)
 	 {
 	 {
 	    Flags |= Fail;
 	    Flags |= Fail;
 	    return _error->Error("Reopen is not implemented for pipes opened with FileFd::OpenDescriptor()!");
 	    return _error->Error("Reopen is not implemented for pipes opened with FileFd::OpenDescriptor()!");
@@ -1670,21 +1701,15 @@ bool FileFd::Close()
    bool Res = true;
    bool Res = true;
    if ((Flags & AutoClose) == AutoClose)
    if ((Flags & AutoClose) == AutoClose)
    {
    {
-#ifdef HAVE_ZLIB
-      if (d != NULL && d->gz != NULL) {
-	 int const e = gzclose(d->gz);
-	 // gzdclose() on empty files always fails with "buffer error" here, ignore that
-	 if (e != 0 && e != Z_BUF_ERROR)
-	    Res &= _error->Errno("close",_("Problem closing the gzip file %s"), FileName.c_str());
-      } else
-#endif
-#ifdef HAVE_BZ2
-      if (d != NULL && d->bz2 != NULL)
-	 BZ2_bzclose(d->bz2);
-      else
-#endif
-	 if (iFd > 0 && close(iFd) != 0)
-	    Res &= _error->Errno("close",_("Problem closing the file %s"), FileName.c_str());
+      if ((Flags & Compressed) != Compressed && iFd > 0 && close(iFd) != 0)
+	 Res &= _error->Errno("close",_("Problem closing the file %s"), FileName.c_str());
+
+      if (d != NULL)
+      {
+	 Res &= d->CloseDown(FileName);
+	 delete d;
+	 d = NULL;
+      }
    }
    }
 
 
    if ((Flags & Replace) == Replace && iFd >= 0) {
    if ((Flags & Replace) == Replace && iFd >= 0) {
@@ -1702,14 +1727,6 @@ bool FileFd::Close()
       if (unlink(FileName.c_str()) != 0)
       if (unlink(FileName.c_str()) != 0)
 	 Res &= _error->WarningE("unlnk",_("Problem unlinking the file %s"), FileName.c_str());
 	 Res &= _error->WarningE("unlnk",_("Problem unlinking the file %s"), FileName.c_str());
 
 
-   if (d != NULL)
-   {
-      if (d->compressor_pid > 0)
-	 ExecWait(d->compressor_pid, "FileFdCompressor", true);
-      delete d;
-      d = NULL;
-   }
-
    if (Res == false)
    if (Res == false)
       Flags |= Fail;
       Flags |= Fail;
    return Res;
    return Res;

+ 1 - 1
apt-pkg/packagemanager.cc

@@ -785,7 +785,7 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate, int c
 			   VerIterator V(Cache,*I);
 			   VerIterator V(Cache,*I);
 			   PkgIterator P = V.ParentPkg();
 			   PkgIterator P = V.ParentPkg();
 			   // we are checking for installation as an easy 'protection' against or-groups and (unchosen) providers
 			   // we are checking for installation as an easy 'protection' against or-groups and (unchosen) providers
-			   if (P->CurrentVer == 0 || P != Pkg || (P.CurrentVer() != V && Cache[P].InstallVer != V))
+			   if (P != Pkg || (P.CurrentVer() != V && Cache[P].InstallVer != V))
 			      continue;
 			      continue;
 			   circle = true;
 			   circle = true;
 			   break;
 			   break;

+ 2 - 2
apt-pkg/pkgcachegen.cc

@@ -38,7 +38,7 @@
 typedef std::vector<pkgIndexFile *>::iterator FileIterator;
 typedef std::vector<pkgIndexFile *>::iterator FileIterator;
 template <typename Iter> std::vector<Iter*> pkgCacheGenerator::Dynamic<Iter>::toReMap;
 template <typename Iter> std::vector<Iter*> pkgCacheGenerator::Dynamic<Iter>::toReMap;
 
 
-bool IsDuplicateDescription(pkgCache::DescIterator Desc,
+static bool IsDuplicateDescription(pkgCache::DescIterator Desc,
 			    MD5SumValue const &CurMd5, std::string const &CurLang);
 			    MD5SumValue const &CurMd5, std::string const &CurLang);
 
 
 using std::string;
 using std::string;
@@ -1455,7 +1455,7 @@ bool pkgCacheGenerator::MakeOnlyStatusCache(OpProgress *Progress,DynamicMMap **O
 }
 }
 									/*}}}*/
 									/*}}}*/
 // IsDuplicateDescription						/*{{{*/
 // IsDuplicateDescription						/*{{{*/
-bool IsDuplicateDescription(pkgCache::DescIterator Desc,
+static bool IsDuplicateDescription(pkgCache::DescIterator Desc,
 			    MD5SumValue const &CurMd5, std::string const &CurLang)
 			    MD5SumValue const &CurMd5, std::string const &CurLang)
 {
 {
    // Descriptions in the same link-list have all the same md5
    // Descriptions in the same link-list have all the same md5

+ 1 - 0
apt-pkg/srcrecords.h

@@ -71,6 +71,7 @@ class pkgSrcRecords
       virtual std::string Section() const = 0;
       virtual std::string Section() const = 0;
       virtual const char **Binaries() = 0;   // Ownership does not transfer
       virtual const char **Binaries() = 0;   // Ownership does not transfer
 
 
+      //FIXME: Add a parameter to specify which architecture to use for [wildcard] matching
       virtual bool BuildDepends(std::vector<BuildDepRec> &BuildDeps, bool const &ArchOnly, bool const &StripMultiArch = true) = 0;
       virtual bool BuildDepends(std::vector<BuildDepRec> &BuildDeps, bool const &ArchOnly, bool const &StripMultiArch = true) = 0;
       static const char *BuildDepType(unsigned char const &Type);
       static const char *BuildDepType(unsigned char const &Type);
 
 

+ 5 - 6
buildlib/configure.mak

@@ -20,16 +20,15 @@ startup: configure $(BUILDDIR)/config.status $(addprefix $(BUILDDIR)/,$(CONVERTE
 buildlib/config.sub:
 buildlib/config.sub:
 	ln -sf /usr/share/misc/config.sub buildlib/config.sub
 	ln -sf /usr/share/misc/config.sub buildlib/config.sub
 buildlib/config.guess:
 buildlib/config.guess:
-	ln -sf /usr/share/misc/config.guess buildlib/config.guess	
+	ln -sf /usr/share/misc/config.guess buildlib/config.guess
 configure: aclocal.m4 configure.in buildlib/config.guess buildlib/config.sub
 configure: aclocal.m4 configure.in buildlib/config.guess buildlib/config.sub
 	autoconf
 	autoconf
 
 
 aclocal.m4: $(wildcard buildlib/*.m4)
 aclocal.m4: $(wildcard buildlib/*.m4)
 	aclocal -I buildlib
 	aclocal -I buildlib
-	
+
 $(BUILDDIR)/config.status: configure
 $(BUILDDIR)/config.status: configure
-	/usr/bin/test -e $(BUILDDIR) || mkdir $(BUILDDIR)	
+	/usr/bin/test -e $(BUILDDIR) || mkdir $(BUILDDIR)
 	(HERE=`pwd`; cd $(BUILDDIR) && $$HERE/configure)
 	(HERE=`pwd`; cd $(BUILDDIR) && $$HERE/configure)
-	
-$(addprefix $(BUILDDIR)/,$(CONVERTED)):
-	(cd $(BUILDDIR) && ./config.status)
+
+$(addprefix $(BUILDDIR)/,$(CONVERTED)): $(BUILDDIR)/config.status

+ 1 - 1
buildlib/copy.mak

@@ -21,7 +21,7 @@ veryclean: veryclean/$(LOCAL)
 
 
 MKDIRS += $(dir $($(LOCAL)-LIST))
 MKDIRS += $(dir $($(LOCAL)-LIST))
 
 
-$($(LOCAL)-LIST) : $(TO)/% : %
+$($(LOCAL)-LIST) : $(TO)/% : % dirs
 	echo Installing $< to $(@D)
 	echo Installing $< to $(@D)
 	cp $< $(@D)
 	cp $< $(@D)
 
 

+ 1 - 1
buildlib/defaults.mak

@@ -121,7 +121,7 @@ MKDIRS := $(BIN)
 all: dirs binary doc
 all: dirs binary doc
 binary: library program
 binary: library program
 maintainer-clean dist-clean distclean pristine sanity: veryclean
 maintainer-clean dist-clean distclean pristine sanity: veryclean
-startup headers library clean veryclean program test update-po:
+startup headers library clean veryclean program test update-po manpages:
 
 
 veryclean:
 veryclean:
 	echo Very Clean done for $(SUBDIR)
 	echo Very Clean done for $(SUBDIR)

+ 2 - 1
buildlib/manpage.mak

@@ -14,7 +14,8 @@ LOCAL := manpage-$(firstword $(SOURCE))
 $(LOCAL)-LIST := $(addprefix $(DOC)/,$(SOURCE))
 $(LOCAL)-LIST := $(addprefix $(DOC)/,$(SOURCE))
 
 
 # Install generation hooks
 # Install generation hooks
-doc: $($(LOCAL)-LIST)
+doc: manpages
+manpages: $($(LOCAL)-LIST)
 veryclean: veryclean/$(LOCAL)
 veryclean: veryclean/$(LOCAL)
 
 
 MKDIRS += $(DOC)
 MKDIRS += $(DOC)

+ 6 - 2
buildlib/po4a_manpage.mak

@@ -16,7 +16,7 @@ INCLUDES = apt.ent apt-verbatim.ent
 # Do not use XMLTO, build the manpages directly with XSLTPROC
 # Do not use XMLTO, build the manpages directly with XSLTPROC
 ifdef XSLTPROC
 ifdef XSLTPROC
 
 
-STYLESHEET=../manpage-style.xsl
+STYLESHEET=manpage-style.xsl
 
 
 LOCAL := po4a-manpage-$(firstword $(SOURCE))
 LOCAL := po4a-manpage-$(firstword $(SOURCE))
 $(LOCAL)-LIST := $(SOURCE)
 $(LOCAL)-LIST := $(SOURCE)
@@ -28,7 +28,11 @@ veryclean: veryclean/$(LOCAL)
 apt-verbatim.ent: ../apt-verbatim.ent
 apt-verbatim.ent: ../apt-verbatim.ent
 	cp ../apt-verbatim.ent .
 	cp ../apt-verbatim.ent .
 
 
-$($(LOCAL)-LIST) :: % : %.xml $(INCLUDES)
+manpage-style.xsl: ../manpage-style.xsl
+	sed "/<!-- LANGUAGE -->/ i\
+<xsl:param name=\"l10n.gentext.default.language\" select=\"'$(LC)'\" />" ../manpage-style.xsl > manpage-style.xsl
+
+$($(LOCAL)-LIST) :: % : %.xml $(STYLESHEET) $(INCLUDES)
 	echo Creating man page $@
 	echo Creating man page $@
 	$(XSLTPROC) -o $@ $(STYLESHEET) $< || exit 200 # why xsltproc doesn't respect the -o flag here???
 	$(XSLTPROC) -o $@ $(STYLESHEET) $< || exit 200 # why xsltproc doesn't respect the -o flag here???
 	test -f $(subst .$(LC),,$@) || echo FIXME: xsltproc respect the -o flag now, workaround can be removed
 	test -f $(subst .$(LC),,$@) || echo FIXME: xsltproc respect the -o flag now, workaround can be removed

+ 3 - 3
buildlib/podomain.mak

@@ -11,9 +11,9 @@ MY_DOMAIN := $(APT_DOMAIN)
 endif
 endif
 
 
 MKDIRS += $(PO_DOMAINS)/$(MY_DOMAIN)
 MKDIRS += $(PO_DOMAINS)/$(MY_DOMAIN)
-$(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list: SRC := $(addprefix $(SUBDIR)/,$(SOURCE))
-$(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list: makefile
-	(echo $(SRC) | xargs -n1 echo) > $@
+$(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list: $(addprefix $(BASE)/$(SUBDIR)/,$(SOURCE))
+$(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list: makefile dirs
+	(echo $(addprefix $(SUBDIR)/,$(SOURCE)) | xargs -n1 echo) > $@
 startup binary program clean: $(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list
 startup binary program clean: $(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list
 
 
 veryclean: veryclean/$(LOCAL)
 veryclean: veryclean/$(LOCAL)

+ 12 - 2
cmdline/apt-get.cc

@@ -2789,8 +2789,18 @@ bool DoBuildDep(CommandLine &CmdL)
             
             
       // Process the build-dependencies
       // Process the build-dependencies
       vector<pkgSrcRecords::Parser::BuildDepRec> BuildDeps;
       vector<pkgSrcRecords::Parser::BuildDepRec> BuildDeps;
-      if (Last->BuildDepends(BuildDeps, _config->FindB("APT::Get::Arch-Only", false), StripMultiArch) == false)
-      	return _error->Error(_("Unable to get build-dependency information for %s"),Src.c_str());
+      // FIXME: Can't specify architecture to use for [wildcard] matching, so switch default arch temporary
+      if (hostArch.empty() == false)
+      {
+	 std::string nativeArch = _config->Find("APT::Architecture");
+	 _config->Set("APT::Architecture", hostArch);
+	 bool Success = Last->BuildDepends(BuildDeps, _config->FindB("APT::Get::Arch-Only", false), StripMultiArch);
+	 _config->Set("APT::Architecture", nativeArch);
+	 if (Success == false)
+	    return _error->Error(_("Unable to get build-dependency information for %s"),Src.c_str());
+      }
+      else if (Last->BuildDepends(BuildDeps, _config->FindB("APT::Get::Arch-Only", false), StripMultiArch) == false)
+	    return _error->Error(_("Unable to get build-dependency information for %s"),Src.c_str());
    
    
       // Also ensure that build-essential packages are present
       // Also ensure that build-essential packages are present
       Configuration::Item const *Opts = _config->Tree("APT::Build-Essential");
       Configuration::Item const *Opts = _config->Tree("APT::Build-Essential");

+ 64 - 0
debian/changelog

@@ -1,3 +1,67 @@
+apt (0.9.4) UNRELEASED; urgency=low
+
+  [ David Kalnischkies ]
+  * methods/http.cc:
+    - after many years of pointless discussions disable http/1.1 pipelining
+      by default as many webservers and proxies seem to be unable to conform
+      to specification must's (rfc2616 section 8.1.2.2) (LP: #996151)
+    - add spaces around PACKAGE_VERSION to fix FTBFS with -std=c++11
+  * apt-pkg/pkgcachegen.cc:
+    - make IsDuplicatedDescription static so that it is really private
+      as we don't need a symbol for it as it is not in a header
+  * Makefile, buildlib/*.mak:
+    - reshuffle dependencies so that parallel building seems to work
+    - separate manpages from the rest of the doc building
+  * prepare-release:
+    - apt-inst version isn't apt versions, so don't override variable
+  * debian/rules:
+    - apt-utils packages manpages, so it should depend on build-doc
+    - make apt and apt-utils packages depend on manpages instead of full doc
+  * debian/control:
+    - move doxygen and debiandoc-sgml to Build-Depends-Indep as docs
+      are no longer build in the same target as the manpages
+  * apt-pkg/acquire-methods.cc:
+    - factor out into private Dequeue() to fix access to deleted pointer
+  * apt-pkg/contrib/fileutl.cc:
+    - ensure that we close compressed fds, wait for forks and such even if
+      the FileFd itself is set to not autoclose the given Fd
+  * cmdline/apt-get.cc:
+    - use the host architecture, not the build architecture for matching
+      of [architecture restrictions] in Build-Depends (Closes: #672927)
+  * doc/makefile:
+    - build manpages with the correct l10n.gentext.default.language setting
+      to get the correct section titles provided by docbook
+  * doc/po/de.po:
+    - updated german manpage translation by Chris Leick, thanks!
+  * apt-pkg/packagemanager.cc:
+    - do not run into loop on new-pre-depends-breaks (Closes: #673536)
+  * doc/*.xml:
+    - add a few translator notes and reword some paragraphs to ensure that
+      translators and users alike can better understand them (Closes: #669409)
+    - in <term> mark all options with <option> and mark <term><option>
+      as untranslated for po4a removing ~200 unless "translateable" strings
+  * apt-pkg/aptconfiguration.cc:
+    - longcode Translation files are saved with encoded underscore,
+      so make sure to pick these files up as well for Acquire::Languages
+  * ftparchive/writer.cc:
+    - include Contents-* files in Release files (Closes: #673647)
+
+  [ Raphael Geissert ]
+  * apt-pkg/acquire*.cc:
+    - handle redirections in the worker with the right method instead of
+      in the method the redirection occured in (Closes: #668111)
+  * methods/http.cc:
+    - forbid redirects to change protocol
+  * methods/mirror.cc:
+    - generate an equal sign also for the first arch (Closes: #669142)
+
+
+  [ Marius Vollmer ]
+  * apt-pkg/algorithms.cc:
+    - fix memory leak of Flags in pkgSimulate by a proper destructor
+
+ -- David Kalnischkies <kalnischkies@gmail.com>  Fri, 11 May 2012 23:26:59 +0200
+
 apt (0.9.3) unstable; urgency=low
 apt (0.9.3) unstable; urgency=low
 
 
   [ David Kalnischkies ]
   [ David Kalnischkies ]

+ 3 - 2
debian/control

@@ -8,8 +8,9 @@ Uploaders: Michael Vogt <mvo@debian.org>, Otavio Salvador <otavio@debian.org>,
 Standards-Version: 3.9.3
 Standards-Version: 3.9.3
 Build-Depends: dpkg-dev (>= 1.15.8), debhelper (>= 8.1.3~), libdb-dev,
 Build-Depends: dpkg-dev (>= 1.15.8), debhelper (>= 8.1.3~), libdb-dev,
  gettext (>= 0.12), libcurl4-gnutls-dev (>= 7.19.0),
  gettext (>= 0.12), libcurl4-gnutls-dev (>= 7.19.0),
- zlib1g-dev, libbz2-dev, debiandoc-sgml, xsltproc, docbook-xsl, docbook-xml,
- po4a (>= 0.34-2), autotools-dev, autoconf, automake, doxygen
+ zlib1g-dev, libbz2-dev, xsltproc, docbook-xsl, docbook-xml,
+ po4a (>= 0.34-2), autotools-dev, autoconf, automake
+Build-Depends-Indep: debiandoc-sgml, doxygen
 Build-Conflicts: autoconf2.13, automake1.4
 Build-Conflicts: autoconf2.13, automake1.4
 Vcs-Bzr: http://bzr.debian.org/apt/debian-sid/
 Vcs-Bzr: http://bzr.debian.org/apt/debian-sid/
 Vcs-Browser: http://bzr.debian.org/loggerhead/apt/debian-sid/
 Vcs-Browser: http://bzr.debian.org/loggerhead/apt/debian-sid/

+ 0 - 1
debian/libapt-pkg4.12.symbols

@@ -1530,4 +1530,3 @@ libapt-pkg.so.4.12 libapt-pkg4.12 #MINVER#
  (c++|optional=private)"pkgCacheGenerator::MergeListVersion(pkgCacheGenerator::ListParser&, pkgCache::PkgIterator&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pkgCache::VerIterator*&)@Base" 0.8.16~exp7
  (c++|optional=private)"pkgCacheGenerator::MergeListVersion(pkgCacheGenerator::ListParser&, pkgCache::PkgIterator&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, pkgCache::VerIterator*&)@Base" 0.8.16~exp7
  (c++|optional=private)"pkgCacheGenerator::AddImplicitDepends(pkgCache::GrpIterator&, pkgCache::PkgIterator&, pkgCache::VerIterator&)@Base" 0.8.16~exp7
  (c++|optional=private)"pkgCacheGenerator::AddImplicitDepends(pkgCache::GrpIterator&, pkgCache::PkgIterator&, pkgCache::VerIterator&)@Base" 0.8.16~exp7
  (c++|optional=private)"pkgCacheGenerator::AddImplicitDepends(pkgCache::VerIterator&, pkgCache::PkgIterator&)@Base" 0.8.16~exp7
  (c++|optional=private)"pkgCacheGenerator::AddImplicitDepends(pkgCache::VerIterator&, pkgCache::PkgIterator&)@Base" 0.8.16~exp7
- (c++|optional=internal)"IsDuplicateDescription(pkgCache::DescIterator, HashSumValue<128> const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.8.16~exp7

+ 10 - 4
debian/rules

@@ -67,7 +67,8 @@ LIBAPT_INST=libapt-inst$(LIBAPTINST_MAJOR)
 export DPKG_GENSYMBOLS_CHECK_LEVEL=0
 export DPKG_GENSYMBOLS_CHECK_LEVEL=0
 
 
 build: build/build-stamp
 build: build/build-stamp
-build-doc: build/build-doc-stamp
+build-doc: build-manpages build/build-doc-stamp
+build-manpages: build/build-manpages-stamp
 
 
 # Note that this is unconditionally done first as part of loading environment.mak
 # Note that this is unconditionally done first as part of loading environment.mak
 # The true is needed to force make to reload environment.mak after running
 # The true is needed to force make to reload environment.mak after running
@@ -97,11 +98,16 @@ else
 endif
 endif
 	touch $@
 	touch $@
 
 
-build/build-doc-stamp: build/configure-stamp
+build/build-doc-stamp: build/build-manpages-stamp build/configure-stamp
 	# Add here commands to compile the package.
 	# Add here commands to compile the package.
 	$(MAKE) doc
 	$(MAKE) doc
 	touch $@
 	touch $@
 
 
+build/build-manpages-stamp: build/configure-stamp
+	# Add here commands to compile the package.
+	$(MAKE) manpages
+	touch $@
+
 clean:
 clean:
 	dh_testdir
 	dh_testdir
 
 
@@ -167,7 +173,7 @@ apt-doc: build-doc
 
 
 binary-arch: $(LIBAPT_PKG) $(LIBAPT_INST) apt libapt-pkg-dev apt-utils apt-transport-https
 binary-arch: $(LIBAPT_PKG) $(LIBAPT_INST) apt libapt-pkg-dev apt-utils apt-transport-https
 apt_MANPAGES = apt-cache apt-cdrom apt-config apt-get apt-key apt-mark apt-secure apt apt.conf apt_preferences sources.list
 apt_MANPAGES = apt-cache apt-cdrom apt-config apt-get apt-key apt-mark apt-secure apt apt.conf apt_preferences sources.list
-apt: build build-doc
+apt: build build-manpages
 	dh_testdir -p$@
 	dh_testdir -p$@
 	dh_testroot -p$@
 	dh_testroot -p$@
 	dh_prep -p$@
 	dh_prep -p$@
@@ -231,7 +237,7 @@ libapt-pkg-dev: build debian/libapt-pkg-dev.install
 	dh_builddeb -p$@
 	dh_builddeb -p$@
 
 
 apt-utils_MANPAGES = apt-sortpkgs apt-ftparchive apt-extracttemplates
 apt-utils_MANPAGES = apt-sortpkgs apt-ftparchive apt-extracttemplates
-apt-utils: build
+apt-utils: build build-manpages
 	dh_testdir -p$@
 	dh_testdir -p$@
 	dh_testroot -p$@
 	dh_testroot -p$@
 	dh_prep -p$@
 	dh_prep -p$@

+ 19 - 21
doc/apt-cache.8.xml

@@ -18,7 +18,7 @@
    &apt-email;
    &apt-email;
    &apt-product;
    &apt-product;
    <!-- The last update date -->
    <!-- The last update date -->
-   <date>04 February 2011</date>
+   <date>2012-05-21T00:00:00Z</date>
  </refentryinfo>
  </refentryinfo>
  
  
  <refmeta>
  <refmeta>
@@ -45,14 +45,12 @@
    commands below must be present.</para>
    commands below must be present.</para>
 
 
    <variablelist>
    <variablelist>
-     <varlistentry><term>gencaches</term>
-     <listitem><para><literal>gencaches</literal> performs the same operation as 
-     <command>apt-get check</command>. It builds the source and package caches from 
-     the sources in &sources-list; and from
-     <filename>/var/lib/dpkg/status</filename>.</para></listitem>
+     <varlistentry><term><option>gencaches</option></term>
+     <listitem><para><literal>gencaches</literal> creates APT's package cache. This is done
+     implicitly by all commands needing this cache if it is missing or outdated.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>showpkg <replaceable>pkg(s)</replaceable></term>
+     <varlistentry><term><option>showpkg</option> <option><replaceable>&synopsis-pkg;</replaceable>…</option></term>
      <listitem><para><literal>showpkg</literal> displays information about the packages listed on the 
      <listitem><para><literal>showpkg</literal> displays information about the packages listed on the 
      command line. Remaining arguments are package names. The available 
      command line. Remaining arguments are package names. The available 
      versions and reverse dependencies of each package listed are listed, as 
      versions and reverse dependencies of each package listed are listed, as 
@@ -86,7 +84,7 @@ Reverse Provides:
      is best to consult the apt source code.</para></listitem>
      is best to consult the apt source code.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>stats</term><listitem><para><literal>stats</literal> displays some statistics about the cache.
+     <varlistentry><term><option>stats</option></term><listitem><para><literal>stats</literal> displays some statistics about the cache.
      No further arguments are expected. Statistics reported are:
      No further arguments are expected. Statistics reported are:
      <itemizedlist>
      <itemizedlist>
        <listitem><para><literal>Total package names</literal> is the number of package names found 
        <listitem><para><literal>Total package names</literal> is the number of package names found 
@@ -141,34 +139,34 @@ Reverse Provides:
      </para></listitem>
      </para></listitem>
      </varlistentry>
      </varlistentry>
      
      
-     <varlistentry><term>showsrc <replaceable>pkg(s)</replaceable></term>
+     <varlistentry><term><option>showsrc</option> <option><replaceable>&synopsis-pkg;</replaceable>…</option></term>
      <listitem><para><literal>showsrc</literal> displays all the source package records that match
      <listitem><para><literal>showsrc</literal> displays all the source package records that match
      the given package names. All versions are shown, as well as all 
      the given package names. All versions are shown, as well as all 
      records that declare the name to be a Binary.</para></listitem>
      records that declare the name to be a Binary.</para></listitem>
      </varlistentry>
      </varlistentry>
      
      
-     <varlistentry><term>dump</term>
+     <varlistentry><term><option>dump</option></term>
      <listitem><para><literal>dump</literal> shows a short listing of every package in the cache. It is 
      <listitem><para><literal>dump</literal> shows a short listing of every package in the cache. It is 
      primarily for debugging.</para></listitem>
      primarily for debugging.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>dumpavail</term>
+     <varlistentry><term><option>dumpavail</option></term>
      <listitem><para><literal>dumpavail</literal> prints out an available list to stdout. This is 
      <listitem><para><literal>dumpavail</literal> prints out an available list to stdout. This is 
      suitable for use with &dpkg; and is used by the &dselect; method.</para></listitem>
      suitable for use with &dpkg; and is used by the &dselect; method.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>unmet</term>
+     <varlistentry><term><option>unmet</option></term>
      <listitem><para><literal>unmet</literal> displays a summary of all unmet dependencies in the 
      <listitem><para><literal>unmet</literal> displays a summary of all unmet dependencies in the 
      package cache.</para></listitem>
      package cache.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>show <replaceable>pkg(s)</replaceable></term>
+     <varlistentry><term><option>show</option> <option><replaceable>&synopsis-pkg;</replaceable>…</option></term>
      <listitem><para><literal>show</literal> performs a function similar to 
      <listitem><para><literal>show</literal> performs a function similar to 
      <command>dpkg --print-avail</command>; it displays the package records for the 
      <command>dpkg --print-avail</command>; it displays the package records for the 
      named packages.</para></listitem>
      named packages.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>search <replaceable>regex [ regex ... ]</replaceable></term>
+     <varlistentry><term><option>search</option> <option><replaceable>&synopsis-regex;</replaceable>…</option></term>
      <listitem><para><literal>search</literal> performs a full text search on all available package
      <listitem><para><literal>search</literal> performs a full text search on all available package
      lists for the POSIX regex pattern given, see 
      lists for the POSIX regex pattern given, see 
      <citerefentry><refentrytitle><command>regex</command></refentrytitle>
      <citerefentry><refentrytitle><command>regex</command></refentrytitle>
@@ -186,17 +184,17 @@ Reverse Provides:
      are and'ed together.</para></listitem>
      are and'ed together.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>depends <replaceable>pkg(s)</replaceable></term>
+     <varlistentry><term><option>depends</option> <option><replaceable>&synopsis-pkg;</replaceable>…</option></term>
      <listitem><para><literal>depends</literal> shows a listing of each dependency a package has 
      <listitem><para><literal>depends</literal> shows a listing of each dependency a package has 
      and all the possible other packages that can fulfill that dependency.</para></listitem>
      and all the possible other packages that can fulfill that dependency.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>rdepends <replaceable>pkg(s)</replaceable></term>
+     <varlistentry><term><option>rdepends</option> <option><replaceable>&synopsis-pkg;</replaceable>…</option></term>
      <listitem><para><literal>rdepends</literal> shows a listing of each reverse dependency a
      <listitem><para><literal>rdepends</literal> shows a listing of each reverse dependency a
       package has.</para></listitem>
       package has.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>pkgnames <replaceable>[ prefix ]</replaceable></term>
+     <varlistentry><term><option>pkgnames</option> <optional><replaceable>&synopsis-prefix;</replaceable></optional></term>
      <listitem><para>This command prints the name of each package APT knows. The optional
      <listitem><para>This command prints the name of each package APT knows. The optional
      argument is a prefix match to filter the name list. The output is suitable
      argument is a prefix match to filter the name list. The output is suitable
      for use in a shell tab complete function and the output is generated 
      for use in a shell tab complete function and the output is generated 
@@ -207,7 +205,7 @@ Reverse Provides:
      </para></listitem>
      </para></listitem>
      </varlistentry>
      </varlistentry>
      
      
-     <varlistentry><term>dotty <replaceable>pkg(s)</replaceable></term>
+     <varlistentry><term><option>dotty</option> <option><replaceable>&synopsis-pkg;</replaceable>…</option></term>
      <listitem><para><literal>dotty</literal> takes a list of packages on the command line and 
      <listitem><para><literal>dotty</literal> takes a list of packages on the command line and 
      generates output suitable for use by dotty from the 
      generates output suitable for use by dotty from the 
      <ulink url="http://www.research.att.com/sw/tools/graphviz/">GraphViz</ulink>
      <ulink url="http://www.research.att.com/sw/tools/graphviz/">GraphViz</ulink>
@@ -225,19 +223,19 @@ Reverse Provides:
      <para>Caution, dotty cannot graph larger sets of packages.</para></listitem>
      <para>Caution, dotty cannot graph larger sets of packages.</para></listitem>
      </varlistentry>
      </varlistentry>
      
      
-     <varlistentry><term>xvcg <replaceable>pkg(s)</replaceable></term>
+     <varlistentry><term><option>xvcg</option> <option><replaceable>&synopsis-pkg;</replaceable>…</option></term>
 	 <listitem><para>The same as <literal>dotty</literal>, only for xvcg from the
 	 <listitem><para>The same as <literal>dotty</literal>, only for xvcg from the
 	 <ulink url="http://rw4.cs.uni-sb.de/users/sander/html/gsvcg1.html">VCG tool</ulink>.
 	 <ulink url="http://rw4.cs.uni-sb.de/users/sander/html/gsvcg1.html">VCG tool</ulink>.
 	 </para></listitem></varlistentry>
 	 </para></listitem></varlistentry>
 
 
-     <varlistentry><term>policy <replaceable>[ pkg(s) ]</replaceable></term>
+	 <varlistentry><term><option>policy</option> <optional><replaceable>&synopsis-pkg;</replaceable>…</optional></term>
      <listitem><para><literal>policy</literal> is meant to help debug issues relating to the 
      <listitem><para><literal>policy</literal> is meant to help debug issues relating to the 
      preferences file. With no arguments it will print out the 
      preferences file. With no arguments it will print out the 
      priorities of each source. Otherwise it prints out detailed information
      priorities of each source. Otherwise it prints out detailed information
      about the priority selection of the named package.</para></listitem>
      about the priority selection of the named package.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>madison <replaceable>[ pkg(s) ]</replaceable></term>
+     <varlistentry><term><option>madison</option> <option><replaceable>&synopsis-pkg;</replaceable>…</option></term>
      <listitem><para><literal>apt-cache</literal>'s <literal>madison</literal> command attempts to mimic
      <listitem><para><literal>apt-cache</literal>'s <literal>madison</literal> command attempts to mimic
      the output format and a subset of the functionality of the Debian
      the output format and a subset of the functionality of the Debian
      archive management tool, <literal>madison</literal>.  It displays
      archive management tool, <literal>madison</literal>.  It displays

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

@@ -17,7 +17,7 @@
    &apt-author.team;
    &apt-author.team;
    &apt-email;
    &apt-email;
    &apt-product;
    &apt-product;
-   <date>14 February 2004</date>
+   <date>2004-02-14T00:00:00Z</date>
  </refentryinfo>
  </refentryinfo>
 
 
  <refmeta>
  <refmeta>
@@ -52,7 +52,7 @@
     given one of the commands below must be present.
     given one of the commands below must be present.
    
    
     <variablelist>
     <variablelist>
-     <varlistentry><term>add</term>
+     <varlistentry><term><option>add</option></term>
      <listitem><para><literal>add</literal> is used to add a new disc to the
      <listitem><para><literal>add</literal> is used to add a new disc to the
      source list. It will unmount the
      source list. It will unmount the
      CDROM device, prompt for a disk to be inserted and then proceed to 
      CDROM device, prompt for a disk to be inserted and then proceed to 
@@ -68,7 +68,7 @@
      </listitem>
      </listitem>
      </varlistentry>
      </varlistentry>
      
      
-     <varlistentry><term>ident</term>
+     <varlistentry><term><option>ident</option></term>
      <listitem><para>A debugging tool to report the identity of the current
      <listitem><para>A debugging tool to report the identity of the current
       disc as well as the stored file name
       disc as well as the stored file name
      </para>
      </para>

+ 7 - 6
doc/apt-config.8.xml

@@ -18,7 +18,7 @@
    &apt-email;
    &apt-email;
    &apt-product;
    &apt-product;
    <!-- The last update date -->
    <!-- The last update date -->
-   <date>29 February 2004</date>
+   <date>2012-05-11T00:00:00Z</date>
  </refentryinfo>
  </refentryinfo>
  
  
  <refmeta>
  <refmeta>
@@ -46,7 +46,7 @@
    </para>
    </para>
    
    
    <variablelist>
    <variablelist>
-     <varlistentry><term>shell</term>
+     <varlistentry><term><option>shell</option></term>
      <listitem><para>
      <listitem><para>
      shell is used to access the configuration information from a shell 
      shell is used to access the configuration information from a shell 
      script. It is given pairs of arguments, the first being a shell 
      script. It is given pairs of arguments, the first being a shell 
@@ -72,7 +72,7 @@ eval $RES
      </listitem>
      </listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>dump</term>
+     <varlistentry><term><option>dump</option></term>
      <listitem><para>
      <listitem><para>
      Just show the contents of the configuration space.</para>
      Just show the contents of the configuration space.</para>
      </listitem>
      </listitem>
@@ -93,9 +93,10 @@ eval $RES
 
 
      <varlistentry>
      <varlistentry>
       <term><option>--format '<replaceable>&percnt;f &#x0022;&percnt;v&#x0022;;&percnt;n</replaceable>'</option></term>
       <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 tagname,
-		      &percnt;f with the complete tagname and &percnt;v with the value of the option.
-		      Use uppercase letters and the respective values will be quoted. Additionally
+      <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.
+		      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
 		      &percnt;n will be replaced by a newline, &percnt;N by a tab. A &percnt; can be
 		      printed by using &percnt;&percnt;.</para></listitem>
 		      printed by using &percnt;&percnt;.</para></listitem>
      </varlistentry>
      </varlistentry>

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

@@ -18,7 +18,7 @@
    &apt-email;
    &apt-email;
    &apt-product;
    &apt-product;
    <!-- The last update date -->
    <!-- The last update date -->
-   <date>29 February 2004</date>
+   <date>2004-02-29T00:00:00Z</date>
  </refentryinfo>
  </refentryinfo>
  
  
  <refmeta>
  <refmeta>
@@ -43,8 +43,9 @@
    in the format:</para>
    in the format:</para>
    <para>package version template-file config-script</para>
    <para>package version template-file config-script</para>
    <para>template-file and config-script are written to the temporary directory
    <para>template-file and config-script are written to the temporary directory
-   specified by the -t or --tempdir (<literal>APT::ExtractTemplates::TempDir</literal>) 
-   directory, with filenames of the form <filename>package.template.XXXX</filename> and 
+   specified by the <option>-t</option> or <option>--tempdir</option>
+   (<literal>APT::ExtractTemplates::TempDir</literal>) directory,
+   with filenames of the form <filename>package.template.XXXX</filename> and
    <filename>package.config.XXXX</filename></para>
    <filename>package.config.XXXX</filename></para>
  </refsect1>
  </refsect1>
  
  

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

@@ -18,7 +18,7 @@
    &apt-email;
    &apt-email;
    &apt-product;
    &apt-product;
    <!-- The last update date -->
    <!-- The last update date -->
-   <date>17 August 2009</date>
+   <date>2009-08-17T00:00:00Z</date>
  </refentryinfo>
  </refentryinfo>
  
  
  <refmeta>
  <refmeta>
@@ -55,7 +55,7 @@
    commands below must be present.</para>
    commands below must be present.</para>
    
    
    <variablelist>
    <variablelist>
-     <varlistentry><term>packages</term>
+     <varlistentry><term><option>packages</option></term>
      <listitem><para>
      <listitem><para>
      The packages command generates a package file from a directory tree. It
      The packages command generates a package file from a directory tree. It
      takes the given directory and recursively searches it for .deb files, 
      takes the given directory and recursively searches it for .deb files, 
@@ -65,7 +65,7 @@
      <para>The option <option>--db</option> can be used to specify a binary caching DB.</para></listitem>
      <para>The option <option>--db</option> can be used to specify a binary caching DB.</para></listitem>
      </varlistentry>
      </varlistentry>
      
      
-     <varlistentry><term>sources</term>
+     <varlistentry><term><option>sources</option></term>
      <listitem><para>
      <listitem><para>
      The <literal>sources</literal> command generates a source index file from a directory tree. 
      The <literal>sources</literal> command generates a source index file from a directory tree. 
      It takes the given directory and recursively searches it for .dsc files,
      It takes the given directory and recursively searches it for .dsc files,
@@ -77,7 +77,7 @@
      used to change the source override file that will be used.</para></listitem>
      used to change the source override file that will be used.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>contents</term>
+     <varlistentry><term><option>contents</option></term>
      <listitem><para>
      <listitem><para>
      The <literal>contents</literal> command generates a contents file from a directory tree. It
      The <literal>contents</literal> command generates a contents file from a directory tree. It
      takes the given directory and recursively searches it for .deb files, 
      takes the given directory and recursively searches it for .deb files, 
@@ -89,7 +89,7 @@
      The option <option>--db</option> can be used to specify a binary caching DB.</para></listitem>
      The option <option>--db</option> can be used to specify a binary caching DB.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>release</term>
+     <varlistentry><term><option>release</option></term>
      <listitem><para>
      <listitem><para>
      The <literal>release</literal> command generates a Release file from a
      The <literal>release</literal> command generates a Release file from a
      directory tree. It recursively searches the given directory for uncompressed
      directory tree. It recursively searches the given directory for uncompressed
@@ -112,7 +112,7 @@
 
 
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>generate</term>
+     <varlistentry><term><option>generate</option></term>
      <listitem><para>
      <listitem><para>
      The <literal>generate</literal> command is designed to be runnable from a cron script and
      The <literal>generate</literal> command is designed to be runnable from a cron script and
      builds indexes according to the given config file. The config language
      builds indexes according to the given config file. The config language
@@ -121,7 +121,7 @@
      required settings.</para></listitem>
      required settings.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>clean</term>
+     <varlistentry><term><option>clean</option></term>
      <listitem><para>
      <listitem><para>
      The <literal>clean</literal> command tidies the databases used by the given 
      The <literal>clean</literal> command tidies the databases used by the given 
      configuration file by removing any records that are no longer necessary.</para></listitem>
      configuration file by removing any records that are no longer necessary.</para></listitem>
@@ -148,24 +148,24 @@
      directories are prepended certain relative paths defined in later 
      directories are prepended certain relative paths defined in later 
      sections to produce a complete an absolute path.</para>
      sections to produce a complete an absolute path.</para>
      <variablelist>     
      <variablelist>     
-      <varlistentry><term>ArchiveDir</term>
+      <varlistentry><term><option>ArchiveDir</option></term>
       <listitem><para>
       <listitem><para>
       Specifies the root of the FTP archive, in a standard
       Specifies the root of the FTP archive, in a standard
       Debian configuration this is the directory that contains the 
       Debian configuration this is the directory that contains the 
       <filename>ls-LR</filename> and dist nodes.</para></listitem>
       <filename>ls-LR</filename> and dist nodes.</para></listitem>
       </varlistentry>
       </varlistentry>
 
 
-      <varlistentry><term>OverrideDir</term>
+      <varlistentry><term><option>OverrideDir</option></term>
       <listitem><para>
       <listitem><para>
       Specifies the location of the override files.</para></listitem>
       Specifies the location of the override files.</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>CacheDir</term>
+      <varlistentry><term><option>CacheDir</option></term>
       <listitem><para>
       <listitem><para>
       Specifies the location of the cache files</para></listitem>
       Specifies the location of the cache files</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>FileListDir</term>
+      <varlistentry><term><option>FileListDir</option></term>
       <listitem><para>
       <listitem><para>
       Specifies the location of the file list files, 
       Specifies the location of the file list files, 
       if the <literal>FileList</literal> setting is used below.</para></listitem>
       if the <literal>FileList</literal> setting is used below.</para></listitem>
@@ -179,7 +179,7 @@
      that control the operation of the generator. Other sections may override 
      that control the operation of the generator. Other sections may override 
      these defaults with a per-section setting.</para>
      these defaults with a per-section setting.</para>
      <variablelist>     
      <variablelist>     
-      <varlistentry><term>Packages::Compress</term>
+      <varlistentry><term><option>Packages::Compress</option></term>
       <listitem><para>
       <listitem><para>
       Sets the default compression schemes to use 
       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 
@@ -187,51 +187,51 @@
       'bzip2'. The default for all compression schemes is '. gzip'.</para></listitem>
       'bzip2'. The default for all compression schemes is '. gzip'.</para></listitem>
       </varlistentry>
       </varlistentry>
 
 
-      <varlistentry><term>Packages::Extensions</term>
+      <varlistentry><term><option>Packages::Extensions</option></term>
       <listitem><para>
       <listitem><para>
       Sets the default list of file extensions that are package files.
       Sets the default list of file extensions that are package files.
       This defaults to '.deb'.</para></listitem>
       This defaults to '.deb'.</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>Sources::Compress</term>
+      <varlistentry><term><option>Sources::Compress</option></term>
       <listitem><para>
       <listitem><para>
       This is similar to <literal>Packages::Compress</literal> 
       This is similar to <literal>Packages::Compress</literal> 
       except that it controls the compression for the Sources files.</para></listitem>
       except that it controls the compression for the Sources files.</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>Sources::Extensions</term>
+      <varlistentry><term><option>Sources::Extensions</option></term>
       <listitem><para>
       <listitem><para>
       Sets the default list of file extensions that are source files.
       Sets the default list of file extensions that are source files.
       This defaults to '.dsc'.</para></listitem>
       This defaults to '.dsc'.</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>Contents::Compress</term>
+      <varlistentry><term><option>Contents::Compress</option></term>
       <listitem><para>
       <listitem><para>
       This is similar to <literal>Packages::Compress</literal> 
       This is similar to <literal>Packages::Compress</literal> 
       except that it controls the compression for the Contents files.</para></listitem>
       except that it controls the compression for the Contents files.</para></listitem>
       </varlistentry>
       </varlistentry>
 
 
-      <varlistentry><term>Translation::Compress</term>
+      <varlistentry><term><option>Translation::Compress</option></term>
       <listitem><para>
       <listitem><para>
       This is similar to <literal>Packages::Compress</literal> 
       This is similar to <literal>Packages::Compress</literal> 
       except that it controls the compression for the Translation-en master file.</para></listitem>
       except that it controls the compression for the Translation-en master file.</para></listitem>
       </varlistentry>
       </varlistentry>
 
 
-      <varlistentry><term>DeLinkLimit</term>
+      <varlistentry><term><option>DeLinkLimit</option></term>
       <listitem><para>
       <listitem><para>
       Specifies the number of kilobytes to delink (and 
       Specifies the number of kilobytes to delink (and 
       replace with hard links) per run. This is used in conjunction with the 
       replace with hard links) per run. This is used in conjunction with the 
       per-section <literal>External-Links</literal> setting.</para></listitem>
       per-section <literal>External-Links</literal> setting.</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>FileMode</term>
+      <varlistentry><term><option>FileMode</option></term>
       <listitem><para>
       <listitem><para>
       Specifies the mode of all created index files. It 
       Specifies the mode of all created index files. It 
       defaults to 0644. All index files are set to this mode with no regard 
       defaults to 0644. All index files are set to this mode with no regard 
       to the umask.</para></listitem>
       to the umask.</para></listitem>
       </varlistentry>
       </varlistentry>
 
 
-      <varlistentry><term>LongDescription</term>
+      <varlistentry><term><option>LongDescription</option></term>
       <listitem><para>
       <listitem><para>
       Sets if long descriptions should be included in the Packages file or split
       Sets if long descriptions should be included in the Packages file or split
       out into a master Translation-en file.</para></listitem>
       out into a master Translation-en file.</para></listitem>
@@ -246,14 +246,14 @@
      $(SECTION) and $(ARCH) replaced with their respective values.</para>
      $(SECTION) and $(ARCH) replaced with their respective values.</para>
      
      
      <variablelist>     
      <variablelist>     
-      <varlistentry><term>MaxContentsChange</term>
+      <varlistentry><term><option>MaxContentsChange</option></term>
       <listitem><para>
       <listitem><para>
       Sets  the number of kilobytes of contents 
       Sets  the number of kilobytes of contents 
       files that are generated each day. The contents files are round-robined
       files that are generated each day. The contents files are round-robined
       so that over several days they will all be rebuilt.</para></listitem>
       so that over several days they will all be rebuilt.</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>ContentsAge</term>
+      <varlistentry><term><option>ContentsAge</option></term>
       <listitem><para>
       <listitem><para>
       Controls the number of days a contents file is allowed
       Controls the number of days a contents file is allowed
       to be checked without changing. If this limit is passed the mtime of the 
       to be checked without changing. If this limit is passed the mtime of the 
@@ -264,45 +264,45 @@
       the units are in days.</para></listitem>
       the units are in days.</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>Directory</term>
+      <varlistentry><term><option>Directory</option></term>
       <listitem><para>
       <listitem><para>
       Sets the top of the .deb directory tree. Defaults to
       Sets the top of the .deb directory tree. Defaults to
       <filename>$(DIST)/$(SECTION)/binary-$(ARCH)/</filename></para></listitem>
       <filename>$(DIST)/$(SECTION)/binary-$(ARCH)/</filename></para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>SrcDirectory</term>
+      <varlistentry><term><option>SrcDirectory</option></term>
       <listitem><para>
       <listitem><para>
       Sets the top of the source package directory tree. Defaults to
       Sets the top of the source package directory tree. Defaults to
       <filename>$(DIST)/$(SECTION)/source/</filename></para></listitem>
       <filename>$(DIST)/$(SECTION)/source/</filename></para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>Packages</term>
+      <varlistentry><term><option>Packages</option></term>
       <listitem><para>
       <listitem><para>
       Sets the output Packages file. Defaults to 
       Sets the output Packages file. Defaults to 
       <filename>$(DIST)/$(SECTION)/binary-$(ARCH)/Packages</filename></para></listitem>
       <filename>$(DIST)/$(SECTION)/binary-$(ARCH)/Packages</filename></para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>Sources</term>
+      <varlistentry><term><option>Sources</option></term>
       <listitem><para>
       <listitem><para>
       Sets the output Sources file. Defaults to 
       Sets the output Sources file. Defaults to 
       <filename>$(DIST)/$(SECTION)/source/Sources</filename></para></listitem>
       <filename>$(DIST)/$(SECTION)/source/Sources</filename></para></listitem>
       </varlistentry>
       </varlistentry>
 
 
-      <varlistentry><term>Translation</term>
+      <varlistentry><term><option>Translation</option></term>
       <listitem><para>
       <listitem><para>
       Set the output Translation-en master file with the long descriptions if they
       Set the output Translation-en master file with the long descriptions if they
       should be not included in the Packages file. Defaults to
       should be not included in the Packages file. Defaults to
       <filename>$(DIST)/$(SECTION)/i18n/Translation-en</filename></para></listitem>
       <filename>$(DIST)/$(SECTION)/i18n/Translation-en</filename></para></listitem>
       </varlistentry>
       </varlistentry>
 
 
-      <varlistentry><term>InternalPrefix</term>
+      <varlistentry><term><option>InternalPrefix</option></term>
       <listitem><para>
       <listitem><para>
       Sets the path prefix that causes a symlink to be
       Sets the path prefix that causes a symlink to be
       considered an internal link instead of an external link. Defaults to
       considered an internal link instead of an external link. Defaults to
       <filename>$(DIST)/$(SECTION)/</filename></para></listitem>
       <filename>$(DIST)/$(SECTION)/</filename></para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>Contents</term>
+      <varlistentry><term><option>Contents</option></term>
       <listitem><para>
       <listitem><para>
       Sets the output Contents file. Defaults to
       Sets the output Contents file. Defaults to
       <filename>$(DIST)/Contents-$(ARCH)</filename>. If this setting causes multiple 
       <filename>$(DIST)/Contents-$(ARCH)</filename>. If this setting causes multiple 
@@ -311,25 +311,25 @@
       together automatically.</para></listitem>
       together automatically.</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>Contents::Header</term>
+      <varlistentry><term><option>Contents::Header</option></term>
       <listitem><para>
       <listitem><para>
       Sets header file to prepend to the contents output.</para></listitem>
       Sets header file to prepend to the contents output.</para></listitem>
       </varlistentry>
       </varlistentry>
 
 
-      <varlistentry><term>BinCacheDB</term>
+      <varlistentry><term><option>BinCacheDB</option></term>
       <listitem><para>
       <listitem><para>
       Sets the binary cache database to use for this 
       Sets the binary cache database to use for this 
       section. Multiple sections can share the same database.</para></listitem>
       section. Multiple sections can share the same database.</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>FileList</term>
+      <varlistentry><term><option>FileList</option></term>
       <listitem><para>
       <listitem><para>
       Specifies that instead of walking the directory tree, 
       Specifies that instead of walking the directory tree, 
       <command>apt-ftparchive</command> should read the list of files from the given 
       <command>apt-ftparchive</command> should read the list of files from the given 
       file. Relative files names are prefixed with the archive directory.</para></listitem>
       file. Relative files names are prefixed with the archive directory.</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>SourceFileList</term>
+      <varlistentry><term><option>SourceFileList</option></term>
       <listitem><para>
       <listitem><para>
       Specifies that instead of walking the directory tree, 
       Specifies that instead of walking the directory tree, 
       <command>apt-ftparchive</command> should read the list of files from the given 
       <command>apt-ftparchive</command> should read the list of files from the given 
@@ -363,44 +363,44 @@ for i in Sections do
      </programlisting></para>
      </programlisting></para>
 
 
      <variablelist>     
      <variablelist>     
-      <varlistentry><term>Sections</term>
+      <varlistentry><term><option>Sections</option></term>
       <listitem><para>
       <listitem><para>
       This is a space separated list of sections which appear 
       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>
       <literal>main contrib non-free</literal></para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>Architectures</term>
+      <varlistentry><term><option>Architectures</option></term>
       <listitem><para>
       <listitem><para>
       This is a space separated list of all the 
       This is a space separated list of all the 
       architectures that appear under search section. The special architecture 
       architectures that appear under search section. The special architecture 
       'source' is used to indicate that this tree has a source archive.</para></listitem>
       'source' is used to indicate that this tree has a source archive.</para></listitem>
       </varlistentry>
       </varlistentry>
 
 
-      <varlistentry><term>LongDescription</term>
+      <varlistentry><term><option>LongDescription</option></term>
       <listitem><para>
       <listitem><para>
       Sets if long descriptions should be included in the Packages file or split
       Sets if long descriptions should be included in the Packages file or split
       out into a master Translation-en file.</para></listitem>
       out into a master Translation-en file.</para></listitem>
       </varlistentry>
       </varlistentry>
 
 
-      <varlistentry><term>BinOverride</term>
+      <varlistentry><term><option>BinOverride</option></term>
       <listitem><para>
       <listitem><para>
       Sets the binary override file. The override file 
       Sets the binary override file. The override file 
       contains section, priority and maintainer address information.</para></listitem>
       contains section, priority and maintainer address information.</para></listitem>
       </varlistentry>
       </varlistentry>
 
 
-      <varlistentry><term>SrcOverride</term>
+      <varlistentry><term><option>SrcOverride</option></term>
       <listitem><para>
       <listitem><para>
       Sets the source override file. The override file 
       Sets the source override file. The override file 
       contains section information.</para></listitem>
       contains section information.</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>ExtraOverride</term>
+      <varlistentry><term><option>ExtraOverride</option></term>
       <listitem><para>
       <listitem><para>
       Sets the binary extra override file.</para></listitem>
       Sets the binary extra override file.</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>SrcExtraOverride</term>
+      <varlistentry><term><option>SrcExtraOverride</option></term>
       <listitem><para>
       <listitem><para>
       Sets the source extra override file.</para></listitem> 
       Sets the source extra override file.</para></listitem> 
       </varlistentry>
       </varlistentry>
@@ -415,53 +415,53 @@ for i in Sections do
      section with no substitution variables or
      section with no substitution variables or
      <literal>Section</literal><literal>Architecture</literal> settings.</para>
      <literal>Section</literal><literal>Architecture</literal> settings.</para>
      <variablelist>
      <variablelist>
-      <varlistentry><term>Packages</term>
+      <varlistentry><term><option>Packages</option></term>
       <listitem><para>
       <listitem><para>
       Sets the Packages file output.</para></listitem>
       Sets the Packages file output.</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>Sources</term>
+      <varlistentry><term><option>Sources</option></term>
       <listitem><para>
       <listitem><para>
       Sets the Sources file output. At least one of
       Sets the Sources file output. At least one of
       <literal>Packages</literal> or <literal>Sources</literal> is required.</para></listitem>
       <literal>Packages</literal> or <literal>Sources</literal> is required.</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>Contents</term>
+      <varlistentry><term><option>Contents</option></term>
       <listitem><para>
       <listitem><para>
       Sets the Contents file output. (optional)</para></listitem>
       Sets the Contents file output. (optional)</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>BinOverride</term>
+      <varlistentry><term><option>BinOverride</option></term>
       <listitem><para>
       <listitem><para>
       Sets the binary override file.</para></listitem>
       Sets the binary override file.</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>SrcOverride</term>
+      <varlistentry><term><option>SrcOverride</option></term>
       <listitem><para>
       <listitem><para>
       Sets the source override file.</para></listitem>
       Sets the source override file.</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>ExtraOverride</term>
+      <varlistentry><term><option>ExtraOverride</option></term>
       <listitem><para>
       <listitem><para>
       Sets the binary extra override file.</para></listitem>
       Sets the binary extra override file.</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>SrcExtraOverride</term>
+      <varlistentry><term><option>SrcExtraOverride</option></term>
       <listitem><para>
       <listitem><para>
       Sets the source extra override file.</para></listitem>
       Sets the source extra override file.</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>BinCacheDB</term>
+      <varlistentry><term><option>BinCacheDB</option></term>
       <listitem><para>
       <listitem><para>
       Sets the cache DB.</para></listitem>
       Sets the cache DB.</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>PathPrefix</term>
+      <varlistentry><term><option>PathPrefix</option></term>
       <listitem><para>
       <listitem><para>
       Appends a path to all the output paths.</para></listitem>
       Appends a path to all the output paths.</para></listitem>
       </varlistentry>
       </varlistentry>
       
       
-      <varlistentry><term>FileList, SourceFileList</term>
+      <varlistentry><term><option>FileList</option></term><term><option>SourceFileList</option></term>
       <listitem><para>
       <listitem><para>
       Specifies the file list file.</para></listitem>
       Specifies the file list file.</para></listitem>
       </varlistentry>
       </varlistentry>
@@ -505,7 +505,7 @@ for i in Sections do
    &apt-cmdblurb;
    &apt-cmdblurb;
    
    
    <variablelist>
    <variablelist>
-     <varlistentry><term><option>--md5</option>, <option>--sha1</option>, <option>--sha256</option></term>
+     <varlistentry><term><option>--md5</option></term><term><option>--sha1</option></term><term><option>--sha256</option></term>
      <listitem><para>
      <listitem><para>
      Generate the given checksum. These options default to on, when turned off the generated
      Generate the given checksum. These options default to on, when turned off the generated
      index files will not have the checksum fields where possible.
      index files will not have the checksum fields where possible.

+ 22 - 32
doc/apt-get.8.xml

@@ -18,7 +18,7 @@
    &apt-email;
    &apt-email;
    &apt-product;
    &apt-product;
    <!-- The last update date -->
    <!-- The last update date -->
-   <date>08 November 2008</date>
+   <date>2012-05-21T00:00:00Z</date>
  </refentryinfo>
  </refentryinfo>
  
  
  <refmeta>
  <refmeta>
@@ -45,7 +45,7 @@
    commands below must be present.</para>
    commands below must be present.</para>
    
    
    <variablelist>
    <variablelist>
-     <varlistentry><term>update</term>
+     <varlistentry><term><option>update</option></term>
      <listitem><para><literal>update</literal> is used to resynchronize the package index files from
      <listitem><para><literal>update</literal> is used to resynchronize the package index files from
      their sources. The indexes of available packages are fetched from the
      their sources. The indexes of available packages are fetched from the
      location(s) specified in <filename>/etc/apt/sources.list</filename>.
      location(s) specified in <filename>/etc/apt/sources.list</filename>.
@@ -57,7 +57,7 @@
      of the package files cannot be known in advance.</para></listitem>
      of the package files cannot be known in advance.</para></listitem>
      </varlistentry>
      </varlistentry>
      
      
-     <varlistentry><term>upgrade</term>
+     <varlistentry><term><option>upgrade</option></term>
      <listitem><para><literal>upgrade</literal> is used to install the newest versions of all packages 
      <listitem><para><literal>upgrade</literal> is used to install the newest versions of all packages 
      currently installed on the system from the sources enumerated in
      currently installed on the system from the sources enumerated in
      <filename>/etc/apt/sources.list</filename>. Packages currently installed with 
      <filename>/etc/apt/sources.list</filename>. Packages currently installed with 
@@ -70,7 +70,7 @@
      available.</para></listitem>
      available.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>dselect-upgrade</term>
+     <varlistentry><term><option>dselect-upgrade</option></term>
      <listitem><para><literal>dselect-upgrade</literal>
      <listitem><para><literal>dselect-upgrade</literal>
      is used in conjunction with the traditional Debian packaging
      is used in conjunction with the traditional Debian packaging
      front-end, &dselect;. <literal>dselect-upgrade</literal>
      front-end, &dselect;. <literal>dselect-upgrade</literal>
@@ -80,7 +80,7 @@
      packages).</para></listitem>
      packages).</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>dist-upgrade</term>
+     <varlistentry><term><option>dist-upgrade</option></term>
      <listitem><para><literal>dist-upgrade</literal> in addition to performing the function of 
      <listitem><para><literal>dist-upgrade</literal> in addition to performing the function of 
      <literal>upgrade</literal>, also intelligently handles changing dependencies 
      <literal>upgrade</literal>, also intelligently handles changing dependencies 
      with new versions of packages; <command>apt-get</command> has a "smart" conflict 
      with new versions of packages; <command>apt-get</command> has a "smart" conflict 
@@ -93,7 +93,7 @@
      overriding the general settings for individual packages.</para></listitem>
      overriding the general settings for individual packages.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>install</term>
+     <varlistentry><term><option>install</option></term>
      <listitem>
      <listitem>
 	 <para><literal>install</literal> is followed by one or more 
 	 <para><literal>install</literal> is followed by one or more 
 	 packages desired for installation or upgrading. 
 	 packages desired for installation or upgrading. 
@@ -147,7 +147,7 @@
      with a '^' or '$' character, or create a more specific regular expression.</para></listitem>
      with a '^' or '$' character, or create a more specific regular expression.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>remove</term>
+     <varlistentry><term><option>remove</option></term>
      <listitem><para><literal>remove</literal> is identical to <literal>install</literal> except that packages are 
      <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
 	 removed instead of installed. Note the removing a package leaves its
 	 configuration files in system. If a plus sign is appended to the package 
 	 configuration files in system. If a plus sign is appended to the package 
@@ -155,12 +155,12 @@
      installed instead of removed.</para></listitem>
      installed instead of removed.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>purge</term>
+     <varlistentry><term><option>purge</option></term>
      <listitem><para><literal>purge</literal> is identical to <literal>remove</literal> except that packages are 
      <listitem><para><literal>purge</literal> is identical to <literal>remove</literal> except that packages are 
      removed and purged (any configuration files are deleted too).</para></listitem>
      removed and purged (any configuration files are deleted too).</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>source</term>
+     <varlistentry><term><option>source</option></term>
      <listitem><para><literal>source</literal> causes <command>apt-get</command> to fetch source packages. APT 
      <listitem><para><literal>source</literal> causes <command>apt-get</command> to fetch source packages. APT 
      will examine the available packages to decide which source package to 
      will examine the available packages to decide which source package to 
      fetch. It will then find and download into the current directory the 
      fetch. It will then find and download into the current directory the 
@@ -194,25 +194,25 @@
      tar balls.</para></listitem>
      tar balls.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>build-dep</term>
+     <varlistentry><term><option>build-dep</option></term>
      <listitem><para><literal>build-dep</literal> causes apt-get to install/remove packages in an 
      <listitem><para><literal>build-dep</literal> causes apt-get to install/remove packages in an 
      attempt to satisfy the build dependencies for a source package. By default the dependencies are
      attempt to satisfy the build dependencies for a source package. By default the dependencies are
      satisfied to build the package natively. If desired a host-architecture can be specified
      satisfied to build the package natively. If desired a host-architecture can be specified
      with the <option>--host-architecture</option> option instead.</para></listitem>
      with the <option>--host-architecture</option> option instead.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>check</term>
+     <varlistentry><term><option>check</option></term>
      <listitem><para><literal>check</literal> is a diagnostic tool; it updates the package cache and checks 
      <listitem><para><literal>check</literal> is a diagnostic tool; it updates the package cache and checks 
      for broken dependencies.</para></listitem>
      for broken dependencies.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>download</term>
+     <varlistentry><term><option>download</option></term>
        <listitem><para><literal>download</literal> will download the given
        <listitem><para><literal>download</literal> will download the given
            binary package into the current directory.
            binary package into the current directory.
        </para></listitem>
        </para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>clean</term>
+     <varlistentry><term><option>clean</option></term>
      <listitem><para><literal>clean</literal> clears out the local repository of retrieved package 
      <listitem><para><literal>clean</literal> clears out the local repository of retrieved package 
      files. It removes everything but the lock file from 
      files. It removes everything but the lock file from 
      <filename>&cachedir;/archives/</filename> and 
      <filename>&cachedir;/archives/</filename> and 
@@ -222,7 +222,7 @@
      from time to time to free up disk space.</para></listitem>
      from time to time to free up disk space.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>autoclean</term>
+     <varlistentry><term><option>autoclean</option></term>
      <listitem><para>Like <literal>clean</literal>, <literal>autoclean</literal> clears out the local 
      <listitem><para>Like <literal>clean</literal>, <literal>autoclean</literal> clears out the local 
      repository of retrieved package files. The difference is that it only 
      repository of retrieved package files. The difference is that it only 
      removes package files that can no longer be downloaded, and are largely 
      removes package files that can no longer be downloaded, and are largely 
@@ -232,17 +232,17 @@
      erased if it is set to off.</para></listitem>
      erased if it is set to off.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>autoremove</term>
+     <varlistentry><term><option>autoremove</option></term>
      <listitem><para><literal>autoremove</literal> is used to remove packages that were automatically
      <listitem><para><literal>autoremove</literal> is used to remove packages that were automatically
      installed to satisfy dependencies for other packages and are now no longer needed.</para></listitem>
      installed to satisfy dependencies for other packages and are now no longer needed.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>changelog</term>
+     <varlistentry><term><option>changelog</option></term>
        <listitem><para><literal>changelog</literal> downloads a package changelog and displays
        <listitem><para><literal>changelog</literal> downloads a package changelog and displays
            it through <command>sensible-pager</command>. The server name and base
            it through <command>sensible-pager</command>. The server name and base
            directory is defined in the <literal>APT::Changelogs::Server</literal>
            directory is defined in the <literal>APT::Changelogs::Server</literal>
-           variable (e. g. <ulink>http://packages.debian.org/changelogs</ulink> for
-           Debian or <ulink>http://changelogs.ubuntu.com/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).
            Ubuntu).
            By default it displays the changelog for the version that is
            By default it displays the changelog for the version that is
            installed.  However, you can specify the same options as for
            installed.  However, you can specify the same options as for
@@ -397,9 +397,10 @@
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry><term><option>--only-upgrade</option></term>
      <varlistentry><term><option>--only-upgrade</option></term>
-     <listitem><para>Do not install new packages; When used in conjunction with <literal>install</literal>,
-     <literal>only-upgrade</literal> will prevent packages on the command line
-     from being upgraded if they are not already installed.
+     <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.
      Configuration Item: <literal>APT::Get::Only-Upgrade</literal>.</para></listitem>
      Configuration Item: <literal>APT::Get::Only-Upgrade</literal>.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
@@ -534,16 +535,5 @@
  <refsect1><title>Diagnostics</title>
  <refsect1><title>Diagnostics</title>
    <para><command>apt-get</command> returns zero on normal operation, decimal 100 on error.</para>
    <para><command>apt-get</command> returns zero on normal operation, decimal 100 on error.</para>
  </refsect1>
  </refsect1>
- <refsect1>
-	 <title>ORIGINAL AUTHORS</title>
-	 <para>&apt-author.jgunthorpe;</para>
- </refsect1>
- <refsect1>
-	 <title>CURRENT AUTHORS</title>
-	 <para>
-		 &apt-author.team;
-	 </para>
-		 &apt-qapage;
- </refsect1>
  &manbugs;
  &manbugs;
 </refentry>
 </refentry>

+ 23 - 16
doc/apt-key.8.xml

@@ -11,8 +11,15 @@
 ]>
 ]>
 
 
 <refentry>
 <refentry>
- &apt-docinfo;
- 
+ <refentryinfo>
+   &apt-author.jgunthorpe;
+   &apt-author.team;
+   &apt-email;
+   &apt-product;
+   <!-- The last update date -->
+   <date>2012-05-21T00:00:00Z</date>
+ </refentryinfo>
+
  <refmeta>
  <refmeta>
    <refentrytitle>apt-key</refentrytitle>
    <refentrytitle>apt-key</refentrytitle>
    <manvolnum>8</manvolnum>
    <manvolnum>8</manvolnum>
@@ -37,19 +44,19 @@
 
 
 <refsect1><title>Commands</title>
 <refsect1><title>Commands</title>
    <variablelist>
    <variablelist>
-     <varlistentry><term>add &synopsis-param-filename;</term>
+     <varlistentry><term><option>add</option> <option>&synopsis-param-filename;</option></term>
      <listitem>
      <listitem>
      <para>
      <para>
-
-       Add a new key to the list of trusted keys.  The key is read
-       from &synopsis-param-filename;, or standard input if
-       &synopsis-param-filename; is <literal>-</literal>.
+       Add a new key to the list of trusted keys.
+       The key is read from the filename given with the parameter
+       &synopsis-param-filename; or if the filename is <literal>-</literal>
+       from standard input.
      </para>
      </para>
 
 
      </listitem>
      </listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>del &synopsis-param-keyid;</term>
+     <varlistentry><term><option>del</option> <option>&synopsis-param-keyid;</option></term>
      <listitem>
      <listitem>
      <para>
      <para>
 
 
@@ -60,7 +67,7 @@
      </listitem>
      </listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>export &synopsis-param-keyid;</term>
+     <varlistentry><term><option>export</option> <option>&synopsis-param-keyid;</option></term>
      <listitem>
      <listitem>
      <para>
      <para>
 
 
@@ -71,7 +78,7 @@
      </listitem>
      </listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>exportall</term>
+     <varlistentry><term><option>exportall</option></term>
      <listitem>
      <listitem>
      <para>
      <para>
 
 
@@ -82,7 +89,7 @@
      </listitem>
      </listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>list</term>
+     <varlistentry><term><option>list</option></term>
      <listitem>
      <listitem>
      <para>
      <para>
 
 
@@ -93,7 +100,7 @@
      </listitem>
      </listitem>
      </varlistentry>
      </varlistentry>
      
      
-	 <varlistentry><term>finger</term>
+     <varlistentry><term><option>finger</option></term>
      <listitem>
      <listitem>
      <para>
      <para>
 
 
@@ -104,7 +111,7 @@
      </listitem>
      </listitem>
      </varlistentry>
      </varlistentry>
      
      
-	 <varlistentry><term>adv</term>
+     <varlistentry><term><option>adv</option></term>
      <listitem>
      <listitem>
      <para>
      <para>
 
 
@@ -116,7 +123,7 @@
      </listitem>
      </listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>update</term>
+     <varlistentry><term><option>update</option></term>
      <listitem>
      <listitem>
      <para>
      <para>
 
 
@@ -130,7 +137,7 @@
      </listitem>
      </listitem>
      </varlistentry>
      </varlistentry>
      
      
-     <varlistentry><term>net-update</term>
+     <varlistentry><term><option>net-update</option></term>
      <listitem>
      <listitem>
      <para>
      <para>
 
 
@@ -153,7 +160,7 @@
  <refsect1><title>Options</title>
  <refsect1><title>Options</title>
 <para>Note that options need to be defined before the commands described in the previous section.</para>
 <para>Note that options need to be defined before the commands described in the previous section.</para>
    <variablelist>
    <variablelist>
-      <varlistentry><term>--keyring &synopsis-param-filename;</term>
+      <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 specific keyring
       file the command should operate on. The default is that a command is executed
       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
       on the <filename>trusted.gpg</filename> file as well as on all parts in the

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

@@ -18,7 +18,7 @@
    &apt-email;
    &apt-email;
    &apt-product;
    &apt-product;
    <!-- The last update date -->
    <!-- The last update date -->
-   <date>21 April 2011</date>
+   <date>2011-04-21T00:00:00Z</date>
  </refentryinfo>
  </refentryinfo>
  
  
  <refmeta>
  <refmeta>
@@ -48,7 +48,7 @@
      <command>apt-get</command> or <command>aptitude</command>.
      <command>apt-get</command> or <command>aptitude</command>.
    </para>
    </para>
      <variablelist>
      <variablelist>
-       <varlistentry><term>auto</term>
+     <varlistentry><term><option>auto</option></term>
 	 <listitem><para><literal>auto</literal> is used to mark a
 	 <listitem><para><literal>auto</literal> is used to mark a
      package as being automatically installed, which will cause the
      package as being automatically installed, which will cause the
      package to be removed when no more manually installed packages
      package to be removed when no more manually installed packages
@@ -56,7 +56,7 @@
        </para></listitem>
        </para></listitem>
        </varlistentry>
        </varlistentry>
 
 
-       <varlistentry><term>manual</term>
+     <varlistentry><term><option>manual</option></term>
 	 <listitem><para><literal>manual</literal> is used to mark a
 	 <listitem><para><literal>manual</literal> is used to mark a
      package as being manually installed, which will prevent the
      package as being manually installed, which will prevent the
      package from being automatically removed if no other packages
      package from being automatically removed if no other packages
@@ -64,7 +64,7 @@
        </para></listitem>
        </para></listitem>
        </varlistentry>
        </varlistentry>
 
 
-       <varlistentry><term>hold</term>
+       <varlistentry><term><option>hold</option></term>
 	 <listitem><para><literal>hold</literal> is used to mark a
 	 <listitem><para><literal>hold</literal> is used to mark a
        package as hold back, which will prevent the package from being
        package as hold back, which will prevent the package from being
        automatically installed, upgraded or removed.
        automatically installed, upgraded or removed.
@@ -74,13 +74,13 @@
        </para></listitem>
        </para></listitem>
        </varlistentry>
        </varlistentry>
 
 
-       <varlistentry><term>unhold</term>
+       <varlistentry><term><option>unhold</option></term>
 	 <listitem><para><literal>unhold</literal> is used to cancel a
 	 <listitem><para><literal>unhold</literal> is used to cancel a
        previously set hold on a package to allow all actions again.
        previously set hold on a package to allow all actions again.
        </para></listitem>
        </para></listitem>
        </varlistentry>
        </varlistentry>
 
 
-       <varlistentry><term>showauto</term>
+       <varlistentry><term><option>showauto</option></term>
 	 <listitem><para><literal>showauto</literal> is used to print a
 	 <listitem><para><literal>showauto</literal> is used to print a
      list of automatically installed packages with each package on a new line.
      list of automatically installed packages with each package on a new line.
      All automatically installed packages will be listed if no package is given.
      All automatically installed packages will be listed if no package is given.
@@ -88,14 +88,14 @@
        </para></listitem>
        </para></listitem>
        </varlistentry>
        </varlistentry>
 
 
-       <varlistentry><term>showmanual</term>
+       <varlistentry><term><option>showmanual</option></term>
 	 <listitem><para><literal>showmanual</literal> can be used in
 	 <listitem><para><literal>showmanual</literal> can be used in
      the same way as <literal>showauto</literal> except that it will print
      the same way as <literal>showauto</literal> except that it will print
      a list of manually installed packages instead.
      a list of manually installed packages instead.
        </para></listitem>
        </para></listitem>
        </varlistentry>
        </varlistentry>
 
 
-       <varlistentry><term>showhold</term>
+       <varlistentry><term><option>showhold</option></term>
 	 <listitem><para><literal>showhold</literal> is used to print a list
 	 <listitem><para><literal>showhold</literal> is used to print a list
      of packages on hold in the same way as for the other show commands.
      of packages on hold in the same way as for the other show commands.
        </para></listitem>
        </para></listitem>
@@ -109,12 +109,12 @@
    
    
    <variablelist>
    <variablelist>
 	<varlistentry>
 	<varlistentry>
-		<term><option>-f=<filename><replaceable>FILENAME</replaceable></filename></option></term>
-		<term><option>--file=<filename><replaceable>FILENAME</replaceable></filename></option></term>
+		<term><option>-f=<filename><replaceable>&synopsis-filename;</replaceable></filename></option></term>
+		<term><option>--file=<filename><replaceable>&synopsis-filename;</replaceable></filename></option></term>
      <listitem><para>
      <listitem><para>
-      
-     Read/Write package stats from <filename><replaceable>FILENAME</replaceable></filename>
-     instead of the default location, which
+     Read/Write package stats from the filename given with the parameter
+     <filename><replaceable>&synopsis-filename;</replaceable></filename>
+     instead of from the default location, which
      is <filename>extended_status</filename> in the directory defined
      is <filename>extended_status</filename> in the directory defined
      by the Configuration Item: <literal>Dir::State</literal>.</para></listitem>
      by the Configuration Item: <literal>Dir::State</literal>.</para></listitem>
      </varlistentry>
      </varlistentry>

+ 9 - 2
doc/apt-secure.8.xml

@@ -11,8 +11,15 @@
 ]>
 ]>
 
 
 <refentry>
 <refentry>
- &apt-docinfo;
- 
+ <refentryinfo>
+   &apt-author.jgunthorpe;
+   &apt-author.team;
+   &apt-email;
+   &apt-product;
+   <!-- The last update date -->
+   <date>2012-05-21T00:00:00Z</date>
+ </refentryinfo>
+
  <refmeta>
  <refmeta>
    <refentrytitle>apt-secure</refentrytitle>
    <refentrytitle>apt-secure</refentrytitle>
    <manvolnum>8</manvolnum>
    <manvolnum>8</manvolnum>

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

@@ -18,7 +18,7 @@
    &apt-email;
    &apt-email;
    &apt-product;
    &apt-product;
    <!-- The last update date -->
    <!-- The last update date -->
-   <date>29 February 2004</date>
+   <date>2004-02-29T00:00:00Z</date>
  </refentryinfo>
  </refentryinfo>
  
  
  <refmeta>
  <refmeta>

+ 8 - 2
doc/apt-verbatim.ent

@@ -177,6 +177,12 @@
    </author>
    </author>
 ">
 ">
 
 
+<!ENTITY apt-name.dburrows "
+     <firstname>Daniel</firstname>
+     <surname>Burrows</surname>
+     <email>dburrows@debian.org</email>
+">
+
 <!ENTITY apt-copyright "
 <!ENTITY apt-copyright "
     <copyright>
     <copyright>
      <holder>Jason Gunthorpe</holder>
      <holder>Jason Gunthorpe</holder>
@@ -249,10 +255,10 @@
 		<arg choice='plain'>show &synopsis-arg-pkgver;</arg>
 		<arg choice='plain'>show &synopsis-arg-pkgver;</arg>
 		<arg choice='plain'>depends &synopsis-arg-pkgver;</arg>
 		<arg choice='plain'>depends &synopsis-arg-pkgver;</arg>
 		<arg choice='plain'>rdepends &synopsis-arg-pkgver;</arg>
 		<arg choice='plain'>rdepends &synopsis-arg-pkgver;</arg>
-		<arg choice='plain'>pkgnames <arg choice='plain'><replaceable>&synopsis-prefix;</replaceable></arg></arg>
+		<arg choice='plain'>pkgnames <arg><replaceable>&synopsis-prefix;</replaceable></arg></arg>
 		<arg choice='plain'>dotty &synopsis-arg-pkgver;</arg>
 		<arg choice='plain'>dotty &synopsis-arg-pkgver;</arg>
 		<arg choice='plain'>xvcg &synopsis-arg-pkgver;</arg>
 		<arg choice='plain'>xvcg &synopsis-arg-pkgver;</arg>
-		<arg choice='plain'>policy &synopsis-arg-pkg;</arg>
+		<arg choice='plain'>policy <arg rep='repeat'><replaceable>&synopsis-pkg;</replaceable></arg></arg>
 		<arg choice='plain'>madison &synopsis-arg-pkg;</arg>
 		<arg choice='plain'>madison &synopsis-arg-pkg;</arg>
 		&synopsis-help;
 		&synopsis-help;
 	</group>
 	</group>

+ 101 - 94
doc/apt.conf.5.xml

@@ -16,15 +16,13 @@
    &apt-author.jgunthorpe;
    &apt-author.jgunthorpe;
    &apt-author.team;
    &apt-author.team;
    <author>
    <author>
-     <firstname>Daniel</firstname>
-     <surname>Burrows</surname>
+     &apt-name.dburrows;
      <contrib>Initial documentation of Debug::*.</contrib>
      <contrib>Initial documentation of Debug::*.</contrib>
-     <email>dburrows@debian.org</email>
    </author>
    </author>
    &apt-email;
    &apt-email;
    &apt-product;
    &apt-product;
    <!-- The last update date -->
    <!-- The last update date -->
-   <date>16 January 2010</date>
+   <date>2012-05-21T00:00:00Z</date>
  </refentryinfo>
  </refentryinfo>
  
  
  <refmeta>
  <refmeta>
@@ -127,14 +125,14 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
    <para>All of the APT tools take a -o option which allows an arbitrary configuration 
    <para>All of the APT tools take a -o option which allows an arbitrary configuration 
    directive to be specified on the command line. The syntax is a full option
    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
    name (<literal>APT::Get::Assume-Yes</literal> for instance) followed by an equals
-   sign then the new value of the option. Lists can be appended too by adding 
-   a trailing :: to the list name. (As you might suspect: The scope syntax can't be used
-   on the command line.)</para>
+   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
    <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.
    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
    (The scope syntax implicit insert ::) Using both syntaxes together will trigger a bug
-   which some users unfortunately relay on: An option with the unusual name "<literal>::</literal>"
+   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
    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
    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
    the hope to append to a list will gain the opposite as only the last assignment for this option
@@ -148,39 +146,41 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
    options for all of the tools.</para>
    options for all of the tools.</para>
 
 
    <variablelist>
    <variablelist>
-     <varlistentry><term>Architecture</term>
+     <varlistentry><term><option>Architecture</option></term>
      <listitem><para>System Architecture; sets the architecture to use when fetching files and
      <listitem><para>System Architecture; sets the architecture to use when fetching files and
      parsing package lists. The internal default is the architecture apt was 
      parsing package lists. The internal default is the architecture apt was 
      compiled for.</para></listitem>
      compiled for.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>Architectures</term>
-     <listitem><para>All Architectures the system supports. Processors implementing the <literal>amd64</literal>
-     are e.g. also able to execute binaries compiled for <literal>i386</literal>; This list is use when fetching files and
+     <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>)
      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>.
      and all foreign architectures it can retrieve by calling <command>dpkg --print-foreign-architectures</command>.
      </para></listitem>
      </para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>Default-Release</term>
+     <varlistentry><term><option>Default-Release</option></term>
      <listitem><para>Default release to install packages from if more than one
      <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 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>
      'unstable', '&stable-codename;', '&testing-codename;', '4.0', '5.0*'. See also &apt-preferences;.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>Ignore-Hold</term>
+     <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>
      ignore held packages in its decision making.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>Clean-Installed</term>
+     <varlistentry><term><option>Clean-Installed</option></term>
      <listitem><para>Defaults to on. When turned on the autoclean feature will remove any packages
      <listitem><para>Defaults to on. When turned on the autoclean feature will remove any packages
      which can no longer be downloaded from the cache. If turned off then
      which can no longer be downloaded from the cache. If turned off then
      packages that are locally installed are also excluded from cleaning - but
      packages that are locally installed are also excluded from cleaning - but
      note that APT provides no direct means to reinstall them.</para></listitem>
      note that APT provides no direct means to reinstall them.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>Immediate-Configure</term>
+     <varlistentry><term><option>Immediate-Configure</option></term>
      <listitem><para>Defaults to on which will cause APT to install essential and important packages
      <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
      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
      &dpkg; call: If this option is disabled APT does treat an important package in the same way as
@@ -203,7 +203,7 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      improving or correcting the upgrade process.</para></listitem>
      improving or correcting the upgrade process.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>Force-LoopBreak</term>
+     <varlistentry><term><option>Force-LoopBreak</option></term>
      <listitem><para>Never Enable this option unless you -really- know what you are doing. It
      <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
      permits APT to temporarily remove an essential package to break a
      Conflicts/Conflicts or Conflicts/Pre-Depend loop between two essential
      Conflicts/Conflicts or Conflicts/Pre-Depend loop between two essential
@@ -212,14 +212,14 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      anything that those packages depend on.</para></listitem>
      anything that those packages depend on.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>Cache-Start, Cache-Grow and Cache-Limit</term>
+     <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'
      <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
      information. <literal>Cache-Start</literal> acts as a hint to which size the Cache will grow
      and is therefore the amount of memory APT will request at startup. The default value is
      and is therefore the amount of memory APT will request at startup. The default value is
-     20971520 bytes (~20 MB). Note that these amount of space need to be available for APT
-     otherwise it will likely fail ungracefully, so for memory restricted devices these value should
-     be lowered while on systems with a lot of configured sources this might be increased.
-     <literal>Cache-Grow</literal> defines in byte with the default of 1048576 (~1 MB) how much
+     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>
      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
      is not enough. These 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>.
      enough to store all information or the size of the cache reaches the <literal>Cache-Limit</literal>.
@@ -228,21 +228,21 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      </para></listitem>
      </para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>Build-Essential</term>
+     <varlistentry><term><option>Build-Essential</option></term>
      <listitem><para>Defines which package(s) are considered essential build dependencies.</para></listitem>
      <listitem><para>Defines which package(s) are considered essential build dependencies.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>Get</term>
+     <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>
      documentation for more information about the options here.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>Cache</term>
+     <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>
      documentation for more information about the options here.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>CDROM</term>
+     <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>
      documentation for more information about the options here.</para></listitem>
      </varlistentry>
      </varlistentry>
@@ -254,7 +254,7 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
    and the URI handlers. 
    and the URI handlers. 
 
 
    <variablelist>
    <variablelist>
-     <varlistentry><term>Check-Valid-Until</term>
+     <varlistentry><term><option>Check-Valid-Until</option></term>
 	 <listitem><para>Security related option defaulting to true as an
 	 <listitem><para>Security related option defaulting to true as an
 	 expiring validation for a Release file prevents longtime replay attacks
 	 expiring validation for a Release file prevents longtime replay attacks
 	 and can e.g. also help users to identify no longer updated mirrors -
 	 and can e.g. also help users to identify no longer updated mirrors -
@@ -265,18 +265,18 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
 	 </para></listitem>
 	 </para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>Max-ValidTime</term>
+     <varlistentry><term><option>Max-ValidTime</option></term>
 	 <listitem><para>Seconds the Release file should be considered valid after
 	 <listitem><para>Seconds the Release file should be considered valid after
 	 it was created (indicated by the <literal>Date</literal> header).
 	 it was created (indicated by the <literal>Date</literal> header).
 	 If the Release file itself includes a <literal>Valid-Until</literal> header
 	 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 earlier date of the two is used as the expiration date.
-	 The default value is <literal>0</literal> which stands for "for ever".
+	 The default value is <literal>0</literal> which stands for "for ever valid".
 	 Archive specific settings can be made by appending the label of the archive
 	 Archive specific settings can be made by appending the label of the archive
 	 to the option name.
 	 to the option name.
 	 </para></listitem>
 	 </para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>Min-ValidTime</term>
+     <varlistentry><term><option>Min-ValidTime</option></term>
 	 <listitem><para>Minimum of seconds the Release file should be considered
 	 <listitem><para>Minimum of seconds the Release file should be considered
 	 valid after it was created (indicated by the <literal>Date</literal> header).
 	 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
 	 Use this if you need to use a seldomly updated (local) mirror of a more
@@ -287,20 +287,20 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
 	 </para></listitem>
 	 </para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>PDiffs</term>
+     <varlistentry><term><option>PDiffs</option></term>
 	 <listitem><para>Try to download deltas called <literal>PDiffs</literal> for
 	 <listitem><para>Try to download deltas called <literal>PDiffs</literal> for
 	 Packages or Sources files instead of downloading whole ones. True
 	 Packages or Sources files instead of downloading whole ones. True
 	 by default.</para>
 	 by default.</para>
 	 <para>Two sub-options to limit the use of PDiffs are also available:
 	 <para>Two sub-options to limit the use of PDiffs are also available:
 	 With <literal>FileLimit</literal> can be specified how many PDiff files
 	 With <literal>FileLimit</literal> can be specified how many PDiff files
-	 are downloaded at most to patch a file. <literal>SizeLimit</literal>
+	 are downloaded at most to update a file. <literal>SizeLimit</literal>
 	 on the other hand is the maximum percentage of the size of all patches
 	 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
 	 compared to the size of the targeted file. If one of these limits is
 	 exceeded the complete file is downloaded instead of the patches.
 	 exceeded the complete file is downloaded instead of the patches.
 	 </para></listitem>
 	 </para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>Queue-Mode</term>
+     <varlistentry><term><option>Queue-Mode</option></term>
      <listitem><para>Queuing mode; <literal>Queue-Mode</literal> can be one of <literal>host</literal> or 
      <listitem><para>Queuing mode; <literal>Queue-Mode</literal> can be one of <literal>host</literal> or 
      <literal>access</literal> which determines how  APT parallelizes outgoing 
      <literal>access</literal> which determines how  APT parallelizes outgoing 
      connections. <literal>host</literal> means that one connection per target host 
      connections. <literal>host</literal> means that one connection per target host 
@@ -308,17 +308,17 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      will be opened.</para></listitem>
      will be opened.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>Retries</term>
+     <varlistentry><term><option>Retries</option></term>
      <listitem><para>Number of retries to perform. If this is non-zero APT will retry failed 
      <listitem><para>Number of retries to perform. If this is non-zero APT will retry failed 
      files the given number of times.</para></listitem>
      files the given number of times.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>Source-Symlinks</term>
+     <varlistentry><term><option>Source-Symlinks</option></term>
      <listitem><para>Use symlinks for source archives. If set to true then source archives will
      <listitem><para>Use symlinks for source archives. If set to true then source archives will
      be symlinked when possible instead of copying. True is the default.</para></listitem>
      be symlinked when possible instead of copying. True is the default.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>http</term>
+     <varlistentry><term><option>http</option></term>
      <listitem><para>HTTP URIs; http::Proxy is the default http proxy to use. It is in the 
      <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 
      standard form of <literal>http://[[user][:pass]@]host[:port]/</literal>. Per 
      host proxies can also be specified by using the form 
      host proxies can also be specified by using the form 
@@ -340,13 +340,15 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      <para>The option <literal>timeout</literal> sets the timeout timer used by the method, 
      <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>
      this applies to all things including connection timeout and data timeout.</para>
 
 
-     <para>One setting is provided to control the pipeline depth in cases where the
-     remote server is not RFC conforming or buggy (such as Squid 2.0.2).
-     <literal>Acquire::http::Pipeline-Depth</literal> can be a value from 0 to 5 
-     indicating how many outstanding requests APT should send. A value of
-     zero MUST be specified if the remote host does not properly linger
-     on TCP connections - otherwise data corruption will occur. Hosts which
-     require this are in violation of RFC 2068.</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.
+     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
+     redirects, which is enabled by default.</para>
 
 
      <para>The used bandwidth can be limited with <literal>Acquire::http::Dl-Limit</literal>
      <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
      which accepts integer values in kilobyte. The default value is 0 which deactivates
@@ -359,7 +361,7 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      </listitem>
      </listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>https</term>
+     <varlistentry><term><option>https</option></term>
 	 <listitem><para>HTTPS URIs. Cache-control, Timeout, AllowRedirect, Dl-Limit and
 	 <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
 	 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
 	 default to the options from the <literal>http</literal> method if they are not
@@ -384,7 +386,7 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
 	 <literal>&lt;host&gt;::SslForceVersion</literal> is corresponding per-host option.
 	 <literal>&lt;host&gt;::SslForceVersion</literal> is corresponding per-host option.
 	 </para></listitem></varlistentry>
 	 </para></listitem></varlistentry>
 
 
-     <varlistentry><term>ftp</term>
+     <varlistentry><term><option>ftp</option></term>
      <listitem><para>FTP URIs; ftp::Proxy is the default ftp proxy to use. It is in the 
      <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 
      standard form of <literal>ftp://[[user][:pass]@]host[:port]/</literal>. Per 
      host proxies can also be specified by using the form 
      host proxies can also be specified by using the form 
@@ -423,7 +425,7 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      do not support RFC2428.</para></listitem>
      do not support RFC2428.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>cdrom</term>
+     <varlistentry><term><option>cdrom</option></term>
      <listitem><para>CDROM URIs; the only setting for CDROM URIs is the mount point, 
      <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 
      <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 
      as specified in <filename>/etc/fstab</filename>. It is possible to provide 
@@ -434,13 +436,13 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      commands can be specified using UMount.</para></listitem>
      commands can be specified using UMount.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>gpgv</term>
+     <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.
      <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.
      <literal>gpgv::Options</literal> Additional options passed to gpgv.
      </para></listitem>
      </para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>CompressionTypes</term>
+     <varlistentry><term><option>CompressionTypes</option></term>
      <listitem><para>List of compression types which are understood by the acquire methods.
      <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.
      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>
      Per default the acquire methods can decompress <command>bzip2</command>, <command>lzma</command>
@@ -468,7 +470,7 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      useable for local mirrors.</para></listitem>
      useable for local mirrors.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>GzipIndexes</term>
+     <varlistentry><term><option>GzipIndexes</option></term>
 	 <listitem><para>
 	 <listitem><para>
 	 When downloading <literal>gzip</literal> compressed indexes (Packages, Sources, or
 	 When downloading <literal>gzip</literal> compressed indexes (Packages, Sources, or
 	 Translations), keep them gzip compressed locally instead of unpacking
 	 Translations), keep them gzip compressed locally instead of unpacking
@@ -477,7 +479,7 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
 	 </para></listitem>
 	 </para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>Languages</term>
+     <varlistentry><term><option>Languages</option></term>
      <listitem><para>The Languages subsection controls which <filename>Translation</filename> files are downloaded
      <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
      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
      available Description in the Language which is listed at first. Languages can be defined with their
@@ -494,7 +496,12 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      actually use them if the environment doesn't specify this languages. So the following example configuration will
      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,
      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".
      but not used if APT is not used in a french localization, in such an environment the order would be "fr, de, en".
-     <programlisting>Acquire::Languages { "environment"; "de"; "en"; "none"; "fr"; };</programlisting></para></listitem>
+     <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
+     <filename>/var/lib/apt/lists/</filename> will be added to the end of the list
+     (after an implicit "<literal>none</literal>").</para>
+     </listitem>
      </varlistentry>
      </varlistentry>
 
 
    </variablelist>
    </variablelist>
@@ -506,7 +513,7 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
    <para>The <literal>Dir::State</literal> section has directories that pertain to local 
    <para>The <literal>Dir::State</literal> section has directories that pertain to local 
    state information. <literal>lists</literal> is the directory to place downloaded 
    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 preferences 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 
    <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>
    items if they do not start with <filename>/</filename> or <filename>./</filename>.</para>
 
 
@@ -565,7 +572,7 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
    control the default behaviour. These are in the <literal>DSelect</literal> section.</para>
    control the default behaviour. These are in the <literal>DSelect</literal> section.</para>
    
    
    <variablelist>
    <variablelist>
-     <varlistentry><term>Clean</term>
+     <varlistentry><term><option>Clean</option></term>
      <listitem><para>Cache Clean mode; this value may be one of always, prompt, auto,
      <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
      pre-auto and never.  always and prompt will remove all packages from
      the cache after upgrading, prompt (the default) does so conditionally. 
      the cache after upgrading, prompt (the default) does so conditionally. 
@@ -574,17 +581,17 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      action before downloading new packages.</para></listitem>
      action before downloading new packages.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>options</term>
+     <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 is passed to &apt-get; as command line
      options when it is run for the install phase.</para></listitem>
      options when it is run for the install phase.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>Updateoptions</term>
+     <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 is passed to &apt-get; as command line
      options when it is run for the update phase.</para></listitem>
      options when it is run for the update phase.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>PromptAfterUpdate</term>
+     <varlistentry><term><option>PromptAfterUpdate</option></term>
      <listitem><para>If true the [U]pdate operation in &dselect; will always prompt to continue. 
      <listitem><para>If true the [U]pdate operation in &dselect; will always prompt to continue. 
      The default is to prompt only on error.</para></listitem>
      The default is to prompt only on error.</para></listitem>
      </varlistentry>
      </varlistentry>
@@ -596,20 +603,20 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
    in the <literal>DPkg</literal> section.</para>
    in the <literal>DPkg</literal> section.</para>
 
 
    <variablelist>
    <variablelist>
-     <varlistentry><term>options</term>
+     <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
      using the list notation and each list item is passed as a single argument
      to &dpkg;.</para></listitem>
      to &dpkg;.</para></listitem>
      </varlistentry>
      </varlistentry>
      
      
-     <varlistentry><term>Pre-Invoke</term><term>Post-Invoke</term>
+     <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;. 
      <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 
      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>
      fail APT will abort.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>Pre-Install-Pkgs</term>
+     <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
      <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 
      are invoked in order using <filename>/bin/sh</filename>, should any fail APT 
@@ -623,12 +630,12 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
      command given to <literal>Pre-Install-Pkgs</literal>.</para></listitem>
      command given to <literal>Pre-Install-Pkgs</literal>.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>Run-Directory</term>
+     <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>
      <filename>/</filename>.</para></listitem>
      </varlistentry>
      </varlistentry>
 
 
-     <varlistentry><term>Build-options</term>
+     <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>
      the default is to disable signing and produce all binaries.</para></listitem>
      </varlistentry>
      </varlistentry>
@@ -656,7 +663,7 @@ DPkg::ConfigurePending "true";
 DPkg::TriggersPending "true";</literallayout></para>
 DPkg::TriggersPending "true";</literallayout></para>
 
 
      <variablelist>
      <variablelist>
-       <varlistentry><term>DPkg::NoTriggers</term>
+       <varlistentry><term><option>DPkg::NoTriggers</option></term>
        <listitem><para>Add the no triggers flag to all dpkg calls (except the ConfigurePending call).
        <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
        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.
        triggers when this flag is present unless it is explicitly called to do so in an extra call.
@@ -664,7 +671,7 @@ DPkg::TriggersPending "true";</literallayout></para>
        meaning: Previously these option only append --no-triggers to the configure calls to dpkg -
        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>
        now apt will add these flag also to the unpack and remove calls.</para></listitem>
        </varlistentry>
        </varlistentry>
-       <varlistentry><term>PackageManager::Configure</term>
+       <varlistentry><term><option>PackageManager::Configure</option></term>
        <listitem><para>Valid values are "<literal>all</literal>", "<literal>smart</literal>" and "<literal>no</literal>".
        <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.
        "<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
        The "<literal>smart</literal>" way is it to configure only packages which need to be configured before
@@ -675,20 +682,20 @@ DPkg::TriggersPending "true";</literallayout></para>
        default as otherwise the system could end in an unconfigured status which could be unbootable!
        default as otherwise the system could end in an unconfigured status which could be unbootable!
        </para></listitem>
        </para></listitem>
        </varlistentry>
        </varlistentry>
-       <varlistentry><term>DPkg::ConfigurePending</term>
+       <varlistentry><term><option>DPkg::ConfigurePending</option></term>
        <listitem><para>If this option is set apt will call <command>dpkg --configure --pending</command>
        <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
        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
        per default if the previous option is not set to <literal>all</literal>, but deactivating could be useful
        if you want to run APT multiple times in a row - e.g. in an installer. In these sceneries you could
        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>
        deactivate this option in all but the last run.</para></listitem>
        </varlistentry>
        </varlistentry>
-       <varlistentry><term>DPkg::TriggersPending</term>
+       <varlistentry><term><option>DPkg::TriggersPending</option></term>
        <listitem><para>Useful for <literal>smart</literal> configuration as a package which has pending
        <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>
        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
        currently which is a dealbreaker for Pre-Dependencies (see debbugs #526774). Note that this will
        process all triggers, not only the triggers needed to configure this package.</para></listitem>
        process all triggers, not only the triggers needed to configure this package.</para></listitem>
        </varlistentry>
        </varlistentry>
-       <varlistentry><term>PackageManager::UnpackAll</term>
+       <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
        <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
        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
        and therefore the "old" method of ordering in various steps by everything. While both method
@@ -696,7 +703,7 @@ DPkg::TriggersPending "true";</literallayout></para>
        this method is very experimental and needs further improvements before becoming really useful.
        this method is very experimental and needs further improvements before becoming really useful.
        </para></listitem>
        </para></listitem>
        </varlistentry>
        </varlistentry>
-       <varlistentry><term>OrderList::Score::Immediate</term>
+       <varlistentry><term><option>OrderList::Score::Immediate</option></term>
        <listitem><para>Essential packages (and there dependencies) should be configured immediately
        <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
        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
        these configure calls require currently also <literal>DPkg::TriggersPending</literal> which
@@ -779,7 +786,7 @@ DPkg::TriggersPending "true";</literallayout></para>
 
 
    <variablelist>
    <variablelist>
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::Acquire::cdrom</literal></term>
+       <term><option>Debug::Acquire::cdrom</option></term>
 
 
        <listitem>
        <listitem>
 	 <para>
 	 <para>
@@ -790,7 +797,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::Acquire::ftp</literal></term>
+       <term><option>Debug::Acquire::ftp</option></term>
 
 
        <listitem>
        <listitem>
 	 <para>
 	 <para>
@@ -801,7 +808,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::Acquire::http</literal></term>
+       <term><option>Debug::Acquire::http</option></term>
 
 
        <listitem>
        <listitem>
 	 <para>
 	 <para>
@@ -812,7 +819,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::Acquire::https</literal></term>
+       <term><option>Debug::Acquire::https</option></term>
 
 
        <listitem>
        <listitem>
 	 <para>
 	 <para>
@@ -823,7 +830,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::Acquire::gpgv</literal></term>
+       <term><option>Debug::Acquire::gpgv</option></term>
 
 
        <listitem>
        <listitem>
 	 <para>
 	 <para>
@@ -834,7 +841,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::aptcdrom</literal></term>
+       <term><option>Debug::aptcdrom</option></term>
 
 
        <listitem>
        <listitem>
 	 <para>
 	 <para>
@@ -845,7 +852,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::BuildDeps</literal></term>
+       <term><option>Debug::BuildDeps</option></term>
        <listitem>
        <listitem>
 	 <para>
 	 <para>
 	   Describes the process of resolving build-dependencies in
 	   Describes the process of resolving build-dependencies in
@@ -855,7 +862,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::Hashes</literal></term>
+       <term><option>Debug::Hashes</option></term>
        <listitem>
        <listitem>
 	 <para>
 	 <para>
 	   Output each cryptographic hash that is generated by the
 	   Output each cryptographic hash that is generated by the
@@ -865,7 +872,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::IdentCDROM</literal></term>
+       <term><option>Debug::IdentCDROM</option></term>
        <listitem>
        <listitem>
 	 <para>
 	 <para>
 	   Do not include information from <literal>statfs</literal>,
 	   Do not include information from <literal>statfs</literal>,
@@ -876,7 +883,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::NoLocking</literal></term>
+       <term><option>Debug::NoLocking</option></term>
        <listitem>
        <listitem>
 	 <para>
 	 <para>
 	   Disable all file locking.  For instance, this will allow
 	   Disable all file locking.  For instance, this will allow
@@ -887,7 +894,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::pkgAcquire</literal></term>
+       <term><option>Debug::pkgAcquire</option></term>
 
 
        <listitem>
        <listitem>
 	 <para>
 	 <para>
@@ -898,7 +905,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::pkgAcquire::Auth</literal></term>
+       <term><option>Debug::pkgAcquire::Auth</option></term>
        <listitem>
        <listitem>
 	 <para>
 	 <para>
 	   Output status messages and errors related to verifying
 	   Output status messages and errors related to verifying
@@ -908,7 +915,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::pkgAcquire::Diffs</literal></term>
+       <term><option>Debug::pkgAcquire::Diffs</option></term>
        <listitem>
        <listitem>
 	 <para>
 	 <para>
 	   Output information about downloading and applying package
 	   Output information about downloading and applying package
@@ -919,7 +926,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::pkgAcquire::RRed</literal></term>
+       <term><option>Debug::pkgAcquire::RRed</option></term>
 
 
        <listitem>
        <listitem>
 	 <para>
 	 <para>
@@ -930,7 +937,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::pkgAcquire::Worker</literal></term>
+       <term><option>Debug::pkgAcquire::Worker</option></term>
 
 
        <listitem>
        <listitem>
 	 <para>
 	 <para>
@@ -941,7 +948,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::pkgAutoRemove</literal></term>
+       <term><option>Debug::pkgAutoRemove</option></term>
 
 
        <listitem>
        <listitem>
 	 <para>
 	 <para>
@@ -952,7 +959,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::pkgDepCache::AutoInstall</literal></term>
+       <term><option>Debug::pkgDepCache::AutoInstall</option></term>
        <listitem>
        <listitem>
 	 <para>
 	 <para>
 	   Generate debug messages describing which packages are being
 	   Generate debug messages describing which packages are being
@@ -966,7 +973,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::pkgDepCache::Marker</literal></term>
+       <term><option>Debug::pkgDepCache::Marker</option></term>
        <listitem>
        <listitem>
         <para>
         <para>
            Generate debug messages describing which package is marked
            Generate debug messages describing which package is marked
@@ -988,7 +995,7 @@ DPkg::TriggersPending "true";</literallayout></para>
 
 
      <!-- Question: why doesn't this do anything?  The code says it should. -->
      <!-- Question: why doesn't this do anything?  The code says it should. -->
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::pkgInitConfig</literal></term>
+       <term><option>Debug::pkgInitConfig</option></term>
        <listitem>
        <listitem>
 	 <para>
 	 <para>
 	   Dump the default configuration to standard error on
 	   Dump the default configuration to standard error on
@@ -998,7 +1005,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::pkgDPkgPM</literal></term>
+       <term><option>Debug::pkgDPkgPM</option></term>
        <listitem>
        <listitem>
 	 <para>
 	 <para>
 	   When invoking &dpkg;, output the precise command line with
 	   When invoking &dpkg;, output the precise command line with
@@ -1009,7 +1016,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::pkgDPkgProgressReporting</literal></term>
+       <term><option>Debug::pkgDPkgProgressReporting</option></term>
        <listitem>
        <listitem>
 	 <para>
 	 <para>
 	   Output all the data received from &dpkg; on the status file
 	   Output all the data received from &dpkg; on the status file
@@ -1019,7 +1026,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::pkgOrderList</literal></term>
+       <term><option>Debug::pkgOrderList</option></term>
 
 
        <listitem>
        <listitem>
 	 <para>
 	 <para>
@@ -1031,7 +1038,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::pkgPackageManager</literal></term>
+       <term><option>Debug::pkgPackageManager</option></term>
 
 
        <listitem>
        <listitem>
 	 <para>
 	 <para>
@@ -1042,7 +1049,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::pkgPolicy</literal></term>
+       <term><option>Debug::pkgPolicy</option></term>
 
 
        <listitem>
        <listitem>
 	 <para>
 	 <para>
@@ -1052,7 +1059,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::pkgProblemResolver</literal></term>
+       <term><option>Debug::pkgProblemResolver</option></term>
 
 
        <listitem>
        <listitem>
 	 <para>
 	 <para>
@@ -1064,7 +1071,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::pkgProblemResolver::ShowScores</literal></term>
+       <term><option>Debug::pkgProblemResolver::ShowScores</option></term>
        <listitem>
        <listitem>
         <para>
         <para>
           Display a list of all installed packages with their calculated score
           Display a list of all installed packages with their calculated score
@@ -1075,7 +1082,7 @@ DPkg::TriggersPending "true";</literallayout></para>
      </varlistentry>
      </varlistentry>
 
 
      <varlistentry>
      <varlistentry>
-       <term><literal>Debug::sourceList</literal></term>
+       <term><option>Debug::sourceList</option></term>
 
 
        <listitem>
        <listitem>
 	 <para>
 	 <para>

+ 10 - 20
doc/apt.ent

@@ -1,19 +1,3 @@
-<!-- -*- mode: sgml; mode: fold -*- -->
-
-<!-- Boiler plate docinfo section -->
-<!ENTITY apt-docinfo "
- <refentryinfo>
-   <address><email>apt@packages.debian.org</email></address>
-   <author>
-     <firstname>Jason</firstname> <surname>Gunthorpe</surname>
-     <contrib></contrib>
-   </author>
-   <copyright><year>1998-2001</year> <holder>Jason Gunthorpe</holder></copyright>
-   <date>28 October 2008</date>
-   <productname>Linux</productname>
- </refentryinfo>
-">
-
 <!ENTITY apt-author.team "
 <!ENTITY apt-author.team "
    <author>
    <author>
     <othername>APT team</othername>
     <othername>APT team</othername>
@@ -119,7 +103,7 @@
 
 
      <varlistentry><term><filename>&cachedir;/archives/partial/</filename></term>
      <varlistentry><term><filename>&cachedir;/archives/partial/</filename></term>
      <listitem><para>Storage area for package files in transit.
      <listitem><para>Storage area for package files in transit.
-     Configuration Item: <literal>Dir::Cache::Archives</literal> (implicit partial). </para></listitem>
+     Configuration Item: <literal>Dir::Cache::Archives</literal> (<filename>partial</filename> will be implicitly appended). </para></listitem>
      </varlistentry>
      </varlistentry>
 ">
 ">
 
 
@@ -160,7 +144,7 @@
 
 
      <varlistentry><term><filename>&statedir;/lists/partial/</filename></term>
      <varlistentry><term><filename>&statedir;/lists/partial/</filename></term>
      <listitem><para>Storage area for state information in transit.
      <listitem><para>Storage area for state information in transit.
-     Configuration Item: <literal>Dir::State::Lists</literal> (implicit partial).</para></listitem>
+     Configuration Item: <literal>Dir::State::Lists</literal> (<filename>partial</filename> will be implicitly appended).</para></listitem>
      </varlistentry>
      </varlistentry>
 ">
 ">
 
 
@@ -242,11 +226,17 @@
 <!-- TRANSLATOR: used as in apt-extracttemplates filename -->
 <!-- TRANSLATOR: used as in apt-extracttemplates filename -->
 <!ENTITY synopsis-filename "filename">
 <!ENTITY synopsis-filename "filename">
 
 
-<!-- TRANSLATOR: used as parameters for apt-ftparchive  e.g. apt-ftparchive packages path override pathprefix -->
+<!-- TRANSLATOR: used as parameter for apt-ftparchive  e.g. apt-ftparchive packages path override-file pathprefix -->
 <!ENTITY synopsis-path "path">
 <!ENTITY synopsis-path "path">
+
+<!-- TRANSLATOR: used as parameter for apt-ftparchive  e.g. apt-ftparchive packages path override-file pathprefix -->
+<!ENTITY synopsis-override "override-file">
+
+<!-- TRANSLATOR: used as parameter for apt-ftparchive  e.g. apt-ftparchive packages path override-file pathprefix -->
 <!ENTITY synopsis-pathprefix "pathprefix">
 <!ENTITY synopsis-pathprefix "pathprefix">
+
+<!-- TRANSLATOR: used as parameter for apt-ftparchive  e.g. apt-ftparchive generate section -->
 <!ENTITY synopsis-section "section">
 <!ENTITY synopsis-section "section">
-<!ENTITY synopsis-override "override">
 
 
 <!-- TRANSLATOR: used as in apt-key export keyid  e.g. apt-key export 473041FA -->
 <!-- TRANSLATOR: used as in apt-key export keyid  e.g. apt-key export 473041FA -->
 <!ENTITY synopsis-keyid "keyid">
 <!ENTITY synopsis-keyid "keyid">

+ 3 - 2
doc/apt_preferences.5.xml

@@ -17,7 +17,7 @@
    &apt-email;
    &apt-email;
    &apt-product;
    &apt-product;
    <!-- The last update date -->
    <!-- The last update date -->
-   <date>16 February 2010</date>
+   <date>2010-02-16T00:00:00Z</date>
  </refentryinfo>
  </refentryinfo>
 
 
  <refmeta>
  <refmeta>
@@ -287,6 +287,7 @@ Pin: release n=karmic*
 Pin-Priority: 990
 Pin-Priority: 990
 </programlisting>
 </programlisting>
 
 
+<para>
 If a regular expression occurs in a <literal>Package</literal> field,
 If a regular expression occurs in a <literal>Package</literal> field,
 the behavior is the same as if this regular expression were replaced
 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
 with a list of all package names it matches. It is undecided whether
@@ -295,7 +296,7 @@ pins first, so later specific pins override it.
 
 
 The pattern "<literal>*</literal>" in a Package field is not considered
 The pattern "<literal>*</literal>" in a Package field is not considered
 a glob() expression in itself.
 a glob() expression in itself.
-
+</para>
 </refsect2>
 </refsect2>
 
 
 
 

+ 19 - 9
doc/makefile

@@ -11,6 +11,11 @@ SOURCE = $(wildcard *.sgml)
 DEBIANDOC_HTML_OPTIONS=-l en.UTF-8
 DEBIANDOC_HTML_OPTIONS=-l en.UTF-8
 include $(DEBIANDOC_H)
 include $(DEBIANDOC_H)
 
 
+MANPAGEPO = $(patsubst %.po,%,$(notdir $(wildcard po/*.po)))
+MANPAGEPOLIST = $(patsubst %,manpages-translation-%,$(MANPAGEPO))
+
+doc: manpages
+
 # Do not use XMLTO, build the manpages directly with XSLTPROC
 # Do not use XMLTO, build the manpages directly with XSLTPROC
 ifdef XSLTPROC
 ifdef XSLTPROC
 # generate a list of accepted man page translations
 # generate a list of accepted man page translations
@@ -22,15 +27,26 @@ LOCAL := manpage-$(firstword $(SOURCE))
 $(LOCAL)-LIST := $(SOURCE)
 $(LOCAL)-LIST := $(SOURCE)
 
 
 # Install generation hooks
 # Install generation hooks
-doc: $($(LOCAL)-LIST)
-veryclean: veryclean/$(LOCAL)
+manpages: $(MANPAGEPOLIST) $($(LOCAL)-LIST)
 
 
-$($(LOCAL)-LIST) :: % : %.xml $(INCLUDES)
+$($(LOCAL)-LIST) :: % : %.xml $(STYLESHEET) $(INCLUDES)
 	echo Creating man page $@
 	echo Creating man page $@
 	$(XSLTPROC) -o $@ $(STYLESHEET) $<
 	$(XSLTPROC) -o $@ $(STYLESHEET) $<
 
 
+$(MANPAGEPOLIST) :: manpages-translation-% : %/makefile po4a
+	$(MAKE) -C $(dir $<) doc
+
+.PHONY: manpages dirs-manpage-subdirs $(MANPAGEPOLIST)
+dirs: dirs-manpage-subdirs
+dirs-manpage-subdirs:
+	for i in $(MANPAGEPO); do \
+		test -d $$i || mkdir $$i; \
+		test -f $$i/makefile || sed "s#@@LANG@@#$$i#" lang.makefile > $$i/makefile; \
+	done
+
 # Clean rule
 # Clean rule
 .PHONY: veryclean/$(LOCAL)
 .PHONY: veryclean/$(LOCAL)
+veryclean: veryclean/$(LOCAL)
 veryclean/$(LOCAL):
 veryclean/$(LOCAL):
 	-rm -rf $($(@F)-LIST)
 	-rm -rf $($(@F)-LIST)
 
 
@@ -47,12 +63,6 @@ TARGET = binary
 include $(COPY_H)
 include $(COPY_H)
 
 
 .PHONY: clean clean-subdirs veryclean veryclean-subdirs all binary doc
 .PHONY: clean clean-subdirs veryclean veryclean-subdirs all binary doc
-doc:
-	for i in $(shell ls po/*.po | sed -r 's#po/([a-z]+[A-Z_]*).po#\1#'); do \
-		test -d $$i || mkdir $$i; \
-		test -f $$i/makefile || sed "s#@@LANG@@#$$i#" lang.makefile > $$i/makefile; \
-		$(MAKE) -C $$i $@; \
-	done
 
 
 clean: clean-subdirs
 clean: clean-subdirs
 veryclean: veryclean-subdirs
 veryclean: veryclean-subdirs

+ 8 - 0
doc/manpage-style.xsl

@@ -5,7 +5,15 @@
 <xsl:import href="/usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl" />
 <xsl:import href="/usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl" />
 
 
 <xsl:param name="man.output.encoding" select="'UTF-8'" />
 <xsl:param name="man.output.encoding" select="'UTF-8'" />
+<!-- LANGUAGE -->
 
 
 <xsl:template match="email">&lt;<xsl:apply-templates/>&gt;</xsl:template>
 <xsl:template match="email">&lt;<xsl:apply-templates/>&gt;</xsl:template>
 
 
+<xsl:template match="date">
+	<xsl:call-template name="datetime.format">
+		<xsl:with-param name="date" select="."/>
+		<xsl:with-param name="format" select="'d B Y'"/>
+	</xsl:call-template>
+</xsl:template>
+
 </xsl:stylesheet>
 </xsl:stylesheet>

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


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


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


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


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


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


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


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


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


+ 18 - 13
doc/po4a.conf

@@ -3,23 +3,28 @@
 
 
 # Entities need to be present, even if not translated
 # Entities need to be present, even if not translated
 [po4a_alias:entity] text opt:"-k 0"
 [po4a_alias:entity] text opt:"-k 0"
+[po4a_alias:manpage] docbook opt:"\
+	-o untranslated='<term><option> <refname> <refentrytitle> <date> <refentryinfo>' \
+	-o break='<term><option>' \
+	-o nodefault='<option> <refname> <refentrytitle> <date> <refentryinfo>' \
+	-o inline='<para><option> <refentrytitle>'"
 
 
 # define source file and translated file (one file per line)
 # define source file and translated file (one file per line)
 [type: man]     apt.8 $lang:$lang/apt.$lang.8
 [type: man]     apt.8 $lang:$lang/apt.$lang.8
 [type: entity]  apt.ent $lang:$lang/apt.ent
 [type: entity]  apt.ent $lang:$lang/apt.ent
-[type: docbook] apt-cache.8.xml $lang:$lang/apt-cache.$lang.8.xml add_$lang:xml.add
-[type: docbook] apt-cdrom.8.xml $lang:$lang/apt-cdrom.$lang.8.xml add_$lang:xml.add
-[type: docbook] apt-config.8.xml $lang:$lang/apt-config.$lang.8.xml add_$lang:xml.add
-[type: docbook] apt-extracttemplates.1.xml $lang:$lang/apt-extracttemplates.$lang.1.xml add_$lang:xml.add
-[type: docbook] apt-ftparchive.1.xml $lang:$lang/apt-ftparchive.$lang.1.xml add_$lang:xml.add
-[type: docbook] apt-get.8.xml $lang:$lang/apt-get.$lang.8.xml add_$lang:xml.add
-[type: docbook] apt-key.8.xml $lang:$lang/apt-key.$lang.8.xml add_$lang:xml.add
-[type: docbook] apt-mark.8.xml $lang:$lang/apt-mark.$lang.8.xml add_$lang:xml.add
-[type: docbook] apt-secure.8.xml $lang:$lang/apt-secure.$lang.8.xml add_$lang:xml.add
-[type: docbook] apt-sortpkgs.1.xml $lang:$lang/apt-sortpkgs.$lang.1.xml add_$lang:xml.add
-[type: docbook] apt.conf.5.xml $lang:$lang/apt.conf.$lang.5.xml add_$lang:xml.add
-[type: docbook] apt_preferences.5.xml $lang:$lang/apt_preferences.$lang.5.xml add_$lang:xml.add
-[type: docbook] sources.list.5.xml $lang:$lang/sources.list.$lang.5.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-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-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.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: sgml]    guide.sgml $lang:$lang/guide.$lang.sgml
 [type: sgml]    guide.sgml $lang:$lang/guide.$lang.sgml
 #                 add_$lang::$lang/addendum/debiandoc_$lang.add
 #                 add_$lang::$lang/addendum/debiandoc_$lang.add

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

@@ -18,7 +18,7 @@
    &apt-email;
    &apt-email;
    &apt-product;
    &apt-product;
    <!-- The last update date -->
    <!-- The last update date -->
-   <date>29 February 2004</date>
+   <date>2004-02-29T00:00:00Z</date>
  </refentryinfo>
  </refentryinfo>
  
  
  <refmeta>
  <refmeta>
@@ -119,10 +119,10 @@
    be downloaded. If this option is not set all architectures defined by the
    be downloaded. If this option is not set all architectures defined by the
    <literal>APT::Architectures</literal> option will be downloaded.</para></listitem>
    <literal>APT::Architectures</literal> option will be downloaded.</para></listitem>
    <listitem><para><literal>trusted=yes</literal> can be set to indicate that packages
    <listitem><para><literal>trusted=yes</literal> can be set to indicate that packages
-   from this source are always authenificated even if the <filename>Release</filename> file
+   from this source are always authenticated even if the <filename>Release</filename> file
    is not signed or the signature can't be checked. This disables parts of &apt-secure;
    is not signed or the signature can't be checked. This disables parts of &apt-secure;
    and should therefore only be used in a local and trusted context. <literal>trusted=no</literal>
    and should therefore only be used in a local and trusted context. <literal>trusted=no</literal>
-   is the opposite which handles even correctly authenificated sources as not authenificated.</para></listitem>
+   is the opposite which handles even correctly authenticated sources as not authenticated.</para></listitem>
    </itemizedlist></para>
    </itemizedlist></para>
 
 
    <para>It is important to list sources in order of preference, with the most
    <para>It is important to list sources in order of preference, with the most

+ 1 - 0
ftparchive/writer.cc

@@ -948,6 +948,7 @@ ReleaseWriter::ReleaseWriter(string const &DB)
       AddPattern("Sources.lzma");
       AddPattern("Sources.lzma");
       AddPattern("Sources.xz");
       AddPattern("Sources.xz");
       AddPattern("Release");
       AddPattern("Release");
+      AddPattern("Contents-*");
       AddPattern("Index");
       AddPattern("Index");
       AddPattern("md5sum.txt");
       AddPattern("md5sum.txt");
    }
    }

+ 6 - 3
methods/http.cc

@@ -61,7 +61,7 @@ using namespace std;
 string HttpMethod::FailFile;
 string HttpMethod::FailFile;
 int HttpMethod::FailFd = -1;
 int HttpMethod::FailFd = -1;
 time_t HttpMethod::FailTime = 0;
 time_t HttpMethod::FailTime = 0;
-unsigned long PipelineDepth = 10;
+unsigned long PipelineDepth = 0;
 unsigned long TimeOut = 120;
 unsigned long TimeOut = 120;
 bool AllowRedirect = false;
 bool AllowRedirect = false;
 bool Debug = false;
 bool Debug = false;
@@ -758,7 +758,7 @@ void HttpMethod::SendReq(FetchItem *Itm,CircleBuf &Out)
           Base64Encode(Uri.User + ":" + Uri.Password) + "\r\n";
           Base64Encode(Uri.User + ":" + Uri.Password) + "\r\n";
    }
    }
    Req += "User-Agent: " + _config->Find("Acquire::http::User-Agent",
    Req += "User-Agent: " + _config->Find("Acquire::http::User-Agent",
-		"Debian APT-HTTP/1.3 ("PACKAGE_VERSION")") + "\r\n\r\n";
+		"Debian APT-HTTP/1.3 (" PACKAGE_VERSION ")") + "\r\n\r\n";
    
    
    if (Debug == true)
    if (Debug == true)
       cerr << Req << endl;
       cerr << Req << endl;
@@ -985,7 +985,10 @@ HttpMethod::DealWithHeaders(FetchResult &Res,ServerState *Srv)
       else
       else
       {
       {
          NextURI = DeQuoteString(Srv->Location);
          NextURI = DeQuoteString(Srv->Location);
-         return TRY_AGAIN_OR_REDIRECT;
+         URI tmpURI = NextURI;
+         // Do not allow a redirection to switch protocol
+         if (tmpURI.Access == "http")
+            return TRY_AGAIN_OR_REDIRECT;
       }
       }
       /* else pass through for error message */
       /* else pass through for error message */
    }
    }

+ 1 - 1
methods/https.cc

@@ -219,7 +219,7 @@ bool HttpsMethod::Fetch(FetchItem *Itm)
    curl_easy_setopt(curl, CURLOPT_USERAGENT,
    curl_easy_setopt(curl, CURLOPT_USERAGENT,
 	_config->Find("Acquire::https::User-Agent",
 	_config->Find("Acquire::https::User-Agent",
 		_config->Find("Acquire::http::User-Agent",
 		_config->Find("Acquire::http::User-Agent",
-			"Debian APT-CURL/1.0 ("PACKAGE_VERSION")").c_str()).c_str());
+			"Debian APT-CURL/1.0 (" PACKAGE_VERSION ")").c_str()).c_str());
 
 
    // set timeout
    // set timeout
    int const timeout = _config->FindI("Acquire::https::Timeout",
    int const timeout = _config->FindI("Acquire::https::Timeout",

+ 1 - 1
methods/mirror.cc

@@ -150,7 +150,7 @@ bool MirrorMethod::DownloadMirrorFile(string mirror_uri_str)
    for (std::vector<std::string>::const_iterator I = vec.begin();
    for (std::vector<std::string>::const_iterator I = vec.begin();
         I != vec.end(); ++I)
         I != vec.end(); ++I)
       if (I == vec.begin())
       if (I == vec.begin())
-         fetch += "?arch" + (*I);
+         fetch += "?arch=" + (*I);
       else
       else
          fetch += "&arch=" + (*I);
          fetch += "&arch=" + (*I);
 
 

+ 8 - 3
prepare-release

@@ -8,8 +8,8 @@ LIBAPTINSTVERSION="$(egrep '^MAJOR=' apt-inst/makefile |cut -d '=' -f 2)"
 
 
 if [ "$1" = 'pre-export' ]; then
 if [ "$1" = 'pre-export' ]; then
 	libraryversioncheck() {
 	libraryversioncheck() {
-		LIBRARY="$1"
-		VERSION="$2"
+		local LIBRARY="$1"
+		local VERSION="$2"
 		if [ ! -e "debian/${LIBRARY}${VERSION}.symbols" ]; then
 		if [ ! -e "debian/${LIBRARY}${VERSION}.symbols" ]; then
 		   echo >&2 "Library ${LIBRARY} in version ${VERSION} has no symbols file! (maybe forgot to rename?)"
 		   echo >&2 "Library ${LIBRARY} in version ${VERSION} has no symbols file! (maybe forgot to rename?)"
 		   exit 1
 		   exit 1
@@ -46,10 +46,15 @@ elif [ "$1" = 'post-build' ]; then
 	else
 	else
 		echo >&2 'REMEMBER: Change to a valid distribution before release'
 		echo >&2 'REMEMBER: Change to a valid distribution before release'
 	fi
 	fi
+	if ! xmllint --nonet --valid --noout $(find doc/ -maxdepth 1 -name '*.xml'); then
+		echo >&2 'WARNING: original docbook manpages have errors!'
+	elif ! xmllint --nonet --valid --noout $(find doc/ -mindepth 2 -maxdepth 2 -name '*.xml'); then
+		echo >&2 'WARNING: translated docbook manpages have errors, but originals are okay!'
+	fi
 elif [ "$1" = 'library' ]; then
 elif [ "$1" = 'library' ]; then
 	librarysymbols() {
 	librarysymbols() {
 		echo "Checking $1 in version $2"
 		echo "Checking $1 in version $2"
-		tmpfile=$(mktemp)
+		local tmpfile=$(mktemp)
 		dpkg-gensymbols -p${1}${2} -ebuild/bin/${1}.so.${2} -Idebian/${1}${2}.symbols -O/dev/null 2> /dev/null > $tmpfile
 		dpkg-gensymbols -p${1}${2} -ebuild/bin/${1}.so.${2} -Idebian/${1}${2}.symbols -O/dev/null 2> /dev/null > $tmpfile
 		echo '=== Missing symbols:'
 		echo '=== Missing symbols:'
 		grep '^+#MISSING' $tmpfile
 		grep '^+#MISSING' $tmpfile

+ 1 - 1
test/Makefile

@@ -7,7 +7,7 @@ ifndef NOISY
 endif
 endif
 
 
 .PHONY: startup headers library clean veryclean all binary program doc test update-po
 .PHONY: startup headers library clean veryclean all binary program doc test update-po
-startup all clean veryclean binary program dirs test update-po:
+startup all clean veryclean binary program dirs test update-po manpages:
 	$(MAKE) -C libapt $@
 	$(MAKE) -C libapt $@
 	$(MAKE) -C interactive-helper $@
 	$(MAKE) -C interactive-helper $@
 
 

+ 7 - 5
test/integration/skip-bug-602412-dequote-redirect

@@ -19,18 +19,20 @@ echo "server.modules = ( \"mod_redirect\" )
 server.document-root = \"$(readlink -f ./aptarchive)\"
 server.document-root = \"$(readlink -f ./aptarchive)\"
 server.port = 8080
 server.port = 8080
 server.stat-cache-engine = \"disable\"
 server.stat-cache-engine = \"disable\"
-url.redirect = ( \"^/pool/(.*)$\" => \"/newpool/\$1\" )" > lighttpd.conf
+url.redirect = ( \"^/pool/(.*)$\" => \"/newpool/\$1\",
+ \"^/dists/(.*)$\" => \"/newdists/\$1\" )" > lighttpd.conf
 
 
 mv aptarchive/pool aptarchive/newpool
 mv aptarchive/pool aptarchive/newpool
+mv aptarchive/dists aptarchive/newdists
+
 lighttpd -t -f lighttpd.conf >/dev/null || msgdie 'Can not change to webserver: our lighttpd config is invalid'
 lighttpd -t -f lighttpd.conf >/dev/null || msgdie 'Can not change to webserver: our lighttpd config is invalid'
 lighttpd -D -f lighttpd.conf 2>/dev/null >/dev/null &
 lighttpd -D -f lighttpd.conf 2>/dev/null >/dev/null &
 addtrap "kill $!;"
 addtrap "kill $!;"
 
 
-local APTARCHIVE="file://$(readlink -f ./aptarchive)"
+APTARCHIVE="file://$(readlink -f ./aptarchive)"
 for LIST in $(find rootdir/etc/apt/sources.list.d/ -name 'apt-test-*.list'); do
 for LIST in $(find rootdir/etc/apt/sources.list.d/ -name 'apt-test-*.list'); do
 	sed -i $LIST -e "s#$APTARCHIVE#http://localhost:8080/#"
 	sed -i $LIST -e "s#$APTARCHIVE#http://localhost:8080/#"
 done
 done
 
 
-aptget update -qq || msgdie 'apt-get update failed'
-aptget install unrelated --download-only -qq || msgdie 'downloading package failed'
-
+aptget update || msgdie 'apt-get update failed'
+aptget install unrelated --download-only || msgdie 'downloading package failed'

+ 23 - 0
test/integration/test-673536-pre-depends-breaks-loop

@@ -0,0 +1,23 @@
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+setupenvironment
+configarchitecture 'native'
+
+buildsimplenativepackage 'basic' 'native' '1' 'stable'
+buildsimplenativepackage 'basic' 'native' '2' 'unstable' 'Pre-Depends: common'
+buildsimplenativepackage 'common' 'native' '2' 'unstable' 'Breaks: basic (<= 1)'
+
+setupaptarchive
+
+# we check with 'real' packages here as the simulation reports a 'Conf broken'
+# which is technical correct for the simulation, but testing errormsg is ugly
+
+aptget install basic=1 -qq > /dev/null
+testdpkginstalled basic
+testdpkgnotinstalled common
+
+aptget dist-upgrade -qq > /dev/null
+testdpkginstalled basic common

+ 42 - 24
test/integration/test-bug-632221-cross-dependency-satisfaction

@@ -18,8 +18,10 @@ insertpackage 'unstable' 'libfwibble-dev' 'amd64,armel' '1.0' 'Depends: libfwibb
 insertpackage 'unstable' 'cool' 'amd64,armel' '1.0' 'Multi-Arch: allowed'
 insertpackage 'unstable' 'cool' 'amd64,armel' '1.0' 'Multi-Arch: allowed'
 insertpackage 'unstable' 'amdboot' 'amd64' '1.0'
 insertpackage 'unstable' 'amdboot' 'amd64' '1.0'
 insertpackage 'unstable' 'foreigner' 'amd64,armel' '1.0' 'Multi-Arch: foreign'
 insertpackage 'unstable' 'foreigner' 'amd64,armel' '1.0' 'Multi-Arch: foreign'
+insertpackage 'unstable' 'arm-stuff' 'armel' '1.0'
+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'
+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]'
 
 
 setupaptarchive
 setupaptarchive
 
 
@@ -27,7 +29,8 @@ testequal 'Reading package lists...
 Building dependency tree...
 Building dependency tree...
 The following NEW packages will be installed:
 The following NEW packages will be installed:
   amdboot cool doxygen foreigner libc6 libc6-dev libfwibble-dev libfwibble1
   amdboot cool doxygen foreigner libc6 libc6-dev libfwibble-dev libfwibble1
-0 upgraded, 8 newly installed, 0 to remove and 0 not upgraded.
+  linux-stuff
+0 upgraded, 9 newly installed, 0 to remove and 0 not upgraded.
 Inst amdboot (1.0 unstable [amd64])
 Inst amdboot (1.0 unstable [amd64])
 Inst cool (1.0 unstable [amd64])
 Inst cool (1.0 unstable [amd64])
 Inst doxygen (1.0 unstable [amd64])
 Inst doxygen (1.0 unstable [amd64])
@@ -36,6 +39,7 @@ Inst libc6 (1.0 unstable [amd64])
 Inst libc6-dev (1.0 unstable [amd64])
 Inst libc6-dev (1.0 unstable [amd64])
 Inst libfwibble1 (1.0 unstable [amd64])
 Inst libfwibble1 (1.0 unstable [amd64])
 Inst libfwibble-dev (1.0 unstable [amd64])
 Inst libfwibble-dev (1.0 unstable [amd64])
+Inst linux-stuff (1.0 unstable [amd64])
 Conf amdboot (1.0 unstable [amd64])
 Conf amdboot (1.0 unstable [amd64])
 Conf cool (1.0 unstable [amd64])
 Conf cool (1.0 unstable [amd64])
 Conf doxygen (1.0 unstable [amd64])
 Conf doxygen (1.0 unstable [amd64])
@@ -43,15 +47,17 @@ Conf foreigner (1.0 unstable [amd64])
 Conf libc6 (1.0 unstable [amd64])
 Conf libc6 (1.0 unstable [amd64])
 Conf libc6-dev (1.0 unstable [amd64])
 Conf libc6-dev (1.0 unstable [amd64])
 Conf libfwibble1 (1.0 unstable [amd64])
 Conf libfwibble1 (1.0 unstable [amd64])
-Conf libfwibble-dev (1.0 unstable [amd64])' aptget build-dep apt -s
+Conf libfwibble-dev (1.0 unstable [amd64])
+Conf linux-stuff (1.0 unstable [amd64])' aptget build-dep apt -s
 
 
 testequal 'Reading package lists...
 testequal 'Reading package lists...
 Building dependency tree...
 Building dependency tree...
 The following NEW packages will be installed:
 The following NEW packages will be installed:
-  amdboot cool doxygen foreigner libc6 libc6:armel libc6-dev libc6-dev:armel
-  libfwibble-dev:armel libfwibble1:armel
-0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.
+  amdboot arm-stuff:armel cool doxygen foreigner libc6 libc6:armel libc6-dev
+  libc6-dev:armel libfwibble-dev:armel libfwibble1:armel
+0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded.
 Inst amdboot (1.0 unstable [amd64])
 Inst amdboot (1.0 unstable [amd64])
+Inst arm-stuff:armel (1.0 unstable [armel])
 Inst cool (1.0 unstable [amd64])
 Inst cool (1.0 unstable [amd64])
 Inst doxygen (1.0 unstable [amd64])
 Inst doxygen (1.0 unstable [amd64])
 Inst foreigner (1.0 unstable [amd64])
 Inst foreigner (1.0 unstable [amd64])
@@ -62,6 +68,7 @@ Inst libc6-dev:armel (1.0 unstable [armel])
 Inst libfwibble1:armel (1.0 unstable [armel])
 Inst libfwibble1:armel (1.0 unstable [armel])
 Inst libfwibble-dev:armel (1.0 unstable [armel])
 Inst libfwibble-dev:armel (1.0 unstable [armel])
 Conf amdboot (1.0 unstable [amd64])
 Conf amdboot (1.0 unstable [amd64])
+Conf arm-stuff:armel (1.0 unstable [armel])
 Conf cool (1.0 unstable [amd64])
 Conf cool (1.0 unstable [amd64])
 Conf doxygen (1.0 unstable [amd64])
 Conf doxygen (1.0 unstable [amd64])
 Conf foreigner (1.0 unstable [amd64])
 Conf foreigner (1.0 unstable [amd64])
@@ -77,10 +84,11 @@ configarchitecture 'armel' 'amd64'
 testequal 'Reading package lists...
 testequal 'Reading package lists...
 Building dependency tree...
 Building dependency tree...
 The following NEW packages will be installed:
 The following NEW packages will be installed:
-  amdboot:amd64 cool doxygen foreigner libc6 libc6-dev libfwibble-dev
-  libfwibble1
-0 upgraded, 8 newly installed, 0 to remove and 0 not upgraded.
+  amdboot:amd64 arm-stuff cool doxygen foreigner libc6 libc6-dev
+  libfwibble-dev libfwibble1
+0 upgraded, 9 newly installed, 0 to remove and 0 not upgraded.
 Inst amdboot:amd64 (1.0 unstable [amd64])
 Inst amdboot:amd64 (1.0 unstable [amd64])
+Inst arm-stuff (1.0 unstable [armel])
 Inst cool (1.0 unstable [armel])
 Inst cool (1.0 unstable [armel])
 Inst doxygen (1.0 unstable [armel])
 Inst doxygen (1.0 unstable [armel])
 Inst foreigner (1.0 unstable [armel])
 Inst foreigner (1.0 unstable [armel])
@@ -89,6 +97,7 @@ Inst libc6-dev (1.0 unstable [armel])
 Inst libfwibble1 (1.0 unstable [armel])
 Inst libfwibble1 (1.0 unstable [armel])
 Inst libfwibble-dev (1.0 unstable [armel])
 Inst libfwibble-dev (1.0 unstable [armel])
 Conf amdboot:amd64 (1.0 unstable [amd64])
 Conf amdboot:amd64 (1.0 unstable [amd64])
+Conf arm-stuff (1.0 unstable [armel])
 Conf cool (1.0 unstable [armel])
 Conf cool (1.0 unstable [armel])
 Conf doxygen (1.0 unstable [armel])
 Conf doxygen (1.0 unstable [armel])
 Conf foreigner (1.0 unstable [armel])
 Conf foreigner (1.0 unstable [armel])
@@ -101,8 +110,8 @@ testequal 'Reading package lists...
 Building dependency tree...
 Building dependency tree...
 The following NEW packages will be installed:
 The following NEW packages will be installed:
   amdboot:amd64 cool doxygen foreigner libc6:amd64 libc6 libc6-dev:amd64
   amdboot:amd64 cool doxygen foreigner libc6:amd64 libc6 libc6-dev:amd64
-  libc6-dev libfwibble-dev:amd64 libfwibble1:amd64
-0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.
+  libc6-dev libfwibble-dev:amd64 libfwibble1:amd64 linux-stuff:amd64
+0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded.
 Inst amdboot:amd64 (1.0 unstable [amd64])
 Inst amdboot:amd64 (1.0 unstable [amd64])
 Inst cool (1.0 unstable [armel])
 Inst cool (1.0 unstable [armel])
 Inst doxygen (1.0 unstable [armel])
 Inst doxygen (1.0 unstable [armel])
@@ -113,6 +122,7 @@ Inst libc6-dev:amd64 (1.0 unstable [amd64])
 Inst libc6-dev (1.0 unstable [armel])
 Inst libc6-dev (1.0 unstable [armel])
 Inst libfwibble1:amd64 (1.0 unstable [amd64])
 Inst libfwibble1:amd64 (1.0 unstable [amd64])
 Inst libfwibble-dev:amd64 (1.0 unstable [amd64])
 Inst libfwibble-dev:amd64 (1.0 unstable [amd64])
+Inst linux-stuff:amd64 (1.0 unstable [amd64])
 Conf amdboot:amd64 (1.0 unstable [amd64])
 Conf amdboot:amd64 (1.0 unstable [amd64])
 Conf cool (1.0 unstable [armel])
 Conf cool (1.0 unstable [armel])
 Conf doxygen (1.0 unstable [armel])
 Conf doxygen (1.0 unstable [armel])
@@ -122,7 +132,8 @@ Conf libc6 (1.0 unstable [armel])
 Conf libc6-dev:amd64 (1.0 unstable [amd64])
 Conf libc6-dev:amd64 (1.0 unstable [amd64])
 Conf libc6-dev (1.0 unstable [armel])
 Conf libc6-dev (1.0 unstable [armel])
 Conf libfwibble1:amd64 (1.0 unstable [amd64])
 Conf libfwibble1:amd64 (1.0 unstable [amd64])
-Conf libfwibble-dev:amd64 (1.0 unstable [amd64])' aptget build-dep apt -s -a amd64
+Conf libfwibble-dev:amd64 (1.0 unstable [amd64])
+Conf linux-stuff:amd64 (1.0 unstable [amd64])' aptget build-dep apt -s -a amd64
 
 
 configarchitecture 'amd64' 'armel'
 configarchitecture 'amd64' 'armel'
 
 
@@ -132,28 +143,31 @@ insertinstalledpackage 'foreigner' 'armel' '0.5'
 testequal 'Reading package lists...
 testequal 'Reading package lists...
 Building dependency tree...
 Building dependency tree...
 The following NEW packages will be installed:
 The following NEW packages will be installed:
-  amdboot doxygen libc6 libc6-dev libfwibble-dev libfwibble1
-0 upgraded, 6 newly installed, 0 to remove and 2 not upgraded.
+  amdboot doxygen libc6 libc6-dev libfwibble-dev libfwibble1 linux-stuff
+0 upgraded, 7 newly installed, 0 to remove and 2 not upgraded.
 Inst amdboot (1.0 unstable [amd64])
 Inst amdboot (1.0 unstable [amd64])
 Inst doxygen (1.0 unstable [amd64])
 Inst doxygen (1.0 unstable [amd64])
 Inst libc6 (1.0 unstable [amd64])
 Inst libc6 (1.0 unstable [amd64])
 Inst libc6-dev (1.0 unstable [amd64])
 Inst libc6-dev (1.0 unstable [amd64])
 Inst libfwibble1 (1.0 unstable [amd64])
 Inst libfwibble1 (1.0 unstable [amd64])
 Inst libfwibble-dev (1.0 unstable [amd64])
 Inst libfwibble-dev (1.0 unstable [amd64])
+Inst linux-stuff (1.0 unstable [amd64])
 Conf amdboot (1.0 unstable [amd64])
 Conf amdboot (1.0 unstable [amd64])
 Conf doxygen (1.0 unstable [amd64])
 Conf doxygen (1.0 unstable [amd64])
 Conf libc6 (1.0 unstable [amd64])
 Conf libc6 (1.0 unstable [amd64])
 Conf libc6-dev (1.0 unstable [amd64])
 Conf libc6-dev (1.0 unstable [amd64])
 Conf libfwibble1 (1.0 unstable [amd64])
 Conf libfwibble1 (1.0 unstable [amd64])
-Conf libfwibble-dev (1.0 unstable [amd64])' aptget build-dep apt -s
+Conf libfwibble-dev (1.0 unstable [amd64])
+Conf linux-stuff (1.0 unstable [amd64])' aptget build-dep apt -s
 
 
 testequal 'Reading package lists...
 testequal 'Reading package lists...
 Building dependency tree...
 Building dependency tree...
 The following NEW packages will be installed:
 The following NEW packages will be installed:
-  amdboot doxygen libc6 libc6:armel libc6-dev libc6-dev:armel
+  amdboot arm-stuff:armel doxygen libc6 libc6:armel libc6-dev libc6-dev:armel
   libfwibble-dev:armel libfwibble1:armel
   libfwibble-dev:armel libfwibble1:armel
-0 upgraded, 8 newly installed, 0 to remove and 2 not upgraded.
+0 upgraded, 9 newly installed, 0 to remove and 2 not upgraded.
 Inst amdboot (1.0 unstable [amd64])
 Inst amdboot (1.0 unstable [amd64])
+Inst arm-stuff:armel (1.0 unstable [armel])
 Inst doxygen (1.0 unstable [amd64])
 Inst doxygen (1.0 unstable [amd64])
 Inst libc6 (1.0 unstable [amd64])
 Inst libc6 (1.0 unstable [amd64])
 Inst libc6:armel (1.0 unstable [armel])
 Inst libc6:armel (1.0 unstable [armel])
@@ -162,6 +176,7 @@ Inst libc6-dev:armel (1.0 unstable [armel])
 Inst libfwibble1:armel (1.0 unstable [armel])
 Inst libfwibble1:armel (1.0 unstable [armel])
 Inst libfwibble-dev:armel (1.0 unstable [armel])
 Inst libfwibble-dev:armel (1.0 unstable [armel])
 Conf amdboot (1.0 unstable [amd64])
 Conf amdboot (1.0 unstable [amd64])
+Conf arm-stuff:armel (1.0 unstable [armel])
 Conf doxygen (1.0 unstable [amd64])
 Conf doxygen (1.0 unstable [amd64])
 Conf libc6 (1.0 unstable [amd64])
 Conf libc6 (1.0 unstable [amd64])
 Conf libc6:armel (1.0 unstable [armel])
 Conf libc6:armel (1.0 unstable [armel])
@@ -178,10 +193,12 @@ Building dependency tree...
 The following packages will be REMOVED:
 The following packages will be REMOVED:
   cool:amd64
   cool:amd64
 The following NEW packages will be installed:
 The following NEW packages will be installed:
-  amdboot:amd64 cool doxygen libc6 libc6-dev libfwibble-dev libfwibble1
-0 upgraded, 7 newly installed, 1 to remove and 1 not upgraded.
+  amdboot:amd64 arm-stuff cool doxygen libc6 libc6-dev libfwibble-dev
+  libfwibble1
+0 upgraded, 8 newly installed, 1 to remove and 1 not upgraded.
 Remv cool:amd64 [0.5]
 Remv cool:amd64 [0.5]
 Inst amdboot:amd64 (1.0 unstable [amd64])
 Inst amdboot:amd64 (1.0 unstable [amd64])
+Inst arm-stuff (1.0 unstable [armel])
 Inst cool (1.0 unstable [armel])
 Inst cool (1.0 unstable [armel])
 Inst doxygen (1.0 unstable [armel])
 Inst doxygen (1.0 unstable [armel])
 Inst libc6 (1.0 unstable [armel])
 Inst libc6 (1.0 unstable [armel])
@@ -189,6 +206,7 @@ Inst libc6-dev (1.0 unstable [armel])
 Inst libfwibble1 (1.0 unstable [armel])
 Inst libfwibble1 (1.0 unstable [armel])
 Inst libfwibble-dev (1.0 unstable [armel])
 Inst libfwibble-dev (1.0 unstable [armel])
 Conf amdboot:amd64 (1.0 unstable [amd64])
 Conf amdboot:amd64 (1.0 unstable [amd64])
+Conf arm-stuff (1.0 unstable [armel])
 Conf cool (1.0 unstable [armel])
 Conf cool (1.0 unstable [armel])
 Conf doxygen (1.0 unstable [armel])
 Conf doxygen (1.0 unstable [armel])
 Conf libc6 (1.0 unstable [armel])
 Conf libc6 (1.0 unstable [armel])
@@ -200,8 +218,8 @@ testequal 'Reading package lists...
 Building dependency tree...
 Building dependency tree...
 The following NEW packages will be installed:
 The following NEW packages will be installed:
   amdboot:amd64 doxygen libc6:amd64 libc6 libc6-dev:amd64 libc6-dev
   amdboot:amd64 doxygen libc6:amd64 libc6 libc6-dev:amd64 libc6-dev
-  libfwibble-dev:amd64 libfwibble1:amd64
-0 upgraded, 8 newly installed, 0 to remove and 2 not upgraded.
+  libfwibble-dev:amd64 libfwibble1:amd64 linux-stuff:amd64
+0 upgraded, 9 newly installed, 0 to remove and 2 not upgraded.
 Inst amdboot:amd64 (1.0 unstable [amd64])
 Inst amdboot:amd64 (1.0 unstable [amd64])
 Inst doxygen (1.0 unstable [armel])
 Inst doxygen (1.0 unstable [armel])
 Inst libc6:amd64 (1.0 unstable [amd64])
 Inst libc6:amd64 (1.0 unstable [amd64])
@@ -210,6 +228,7 @@ Inst libc6-dev:amd64 (1.0 unstable [amd64])
 Inst libc6-dev (1.0 unstable [armel])
 Inst libc6-dev (1.0 unstable [armel])
 Inst libfwibble1:amd64 (1.0 unstable [amd64])
 Inst libfwibble1:amd64 (1.0 unstable [amd64])
 Inst libfwibble-dev:amd64 (1.0 unstable [amd64])
 Inst libfwibble-dev:amd64 (1.0 unstable [amd64])
+Inst linux-stuff:amd64 (1.0 unstable [amd64])
 Conf amdboot:amd64 (1.0 unstable [amd64])
 Conf amdboot:amd64 (1.0 unstable [amd64])
 Conf doxygen (1.0 unstable [armel])
 Conf doxygen (1.0 unstable [armel])
 Conf libc6:amd64 (1.0 unstable [amd64])
 Conf libc6:amd64 (1.0 unstable [amd64])
@@ -217,6 +236,5 @@ Conf libc6 (1.0 unstable [armel])
 Conf libc6-dev:amd64 (1.0 unstable [amd64])
 Conf libc6-dev:amd64 (1.0 unstable [amd64])
 Conf libc6-dev (1.0 unstable [armel])
 Conf libc6-dev (1.0 unstable [armel])
 Conf libfwibble1:amd64 (1.0 unstable [amd64])
 Conf libfwibble1:amd64 (1.0 unstable [amd64])
-Conf libfwibble-dev:amd64 (1.0 unstable [amd64])' aptget build-dep apt -s -a amd64
-
-
+Conf libfwibble-dev:amd64 (1.0 unstable [amd64])
+Conf linux-stuff:amd64 (1.0 unstable [amd64])' aptget build-dep apt -s -a amd64

+ 21 - 0
test/libapt/assert.h

@@ -1,6 +1,7 @@
 #include <iostream>
 #include <iostream>
 
 
 #define equals(x,y) assertEquals(y, x, __LINE__)
 #define equals(x,y) assertEquals(y, x, __LINE__)
+#define equalsNot(x,y) assertEqualsNot(y, x, __LINE__)
 
 
 template < typename X, typename Y >
 template < typename X, typename Y >
 void OutputAssertEqual(X expect, char const* compare, Y get, unsigned long const &line) {
 void OutputAssertEqual(X expect, char const* compare, Y get, unsigned long const &line) {
@@ -14,6 +15,13 @@ void assertEquals(X expect, Y get, unsigned long const &line) {
 	OutputAssertEqual(expect, "==", get, line);
 	OutputAssertEqual(expect, "==", get, line);
 }
 }
 
 
+template < typename X, typename Y >
+void assertEqualsNot(X expect, Y get, unsigned long const &line) {
+	if (expect != get)
+		return;
+	OutputAssertEqual(expect, "!=", get, line);
+}
+
 void assertEquals(unsigned int const &expect, int const &get, unsigned long const &line) {
 void assertEquals(unsigned int const &expect, int const &get, unsigned long const &line) {
 	if (get < 0)
 	if (get < 0)
 		OutputAssertEqual(expect, "==", get, line);
 		OutputAssertEqual(expect, "==", get, line);
@@ -80,6 +88,19 @@ void assertEqualsOr3(X expect1, X expect2, X expect3, Y get, unsigned long const
 	OutputAssertEqualOr3(expect1, expect2, expect3, "==", get, line);
 	OutputAssertEqualOr3(expect1, expect2, expect3, "==", get, line);
 }
 }
 
 
+#define equalsOr4(v,w,x,y,z) assertEqualsOr4(w, x, y, z, v, __LINE__)
+
+template < typename X, typename Y >
+void OutputAssertEqualOr4(X expect1, X expect2, X expect3, X expect4, char const* compare, Y get, unsigned long const &line) {
+	std::cerr << "Test FAILED: »" << expect1 << "« or »" << expect2 << "« or »" << expect3 << "« or »" << expect4 << "« " << compare << " »" << get << "« at line " << line << std::endl;
+}
+
+template < typename X, typename Y >
+void assertEqualsOr4(X expect1, X expect2, X expect3, X expect4, Y get, unsigned long const &line) {
+	if (expect1 == get || expect2 == get || expect3 == get || expect4 == get)
+		return;
+	OutputAssertEqualOr4(expect1, expect2, expect3, expect4, "==", get, line);
+}
 
 
 // simple helper to quickly output a vectors
 // simple helper to quickly output a vectors
 template < typename X >
 template < typename X >

+ 11 - 4
test/libapt/getlanguages_test.cc

@@ -126,14 +126,21 @@ int main(int argc,char *argv[])
 
 
 	_config->Set("Dir::State::lists", argv[1]);
 	_config->Set("Dir::State::lists", argv[1]);
 	vec = APT::Configuration::getLanguages(true, false, env);
 	vec = APT::Configuration::getLanguages(true, false, env);
-	equals(vec.size(), 7);
+	equals(vec.size(), 8);
 	equals(vec[0], "de_DE");
 	equals(vec[0], "de_DE");
 	equals(vec[1], "de");
 	equals(vec[1], "de");
 	equals(vec[2], "en");
 	equals(vec[2], "en");
 	equals(vec[3], "none");
 	equals(vec[3], "none");
-	equalsOr3(vec[4], "pt", "tr", "ast_DE");
-	equalsOr3(vec[5], "tr", "pt", "ast_DE");
-	equalsOr3(vec[6], "tr", "pt", "ast_DE");
+	equalsOr4(vec[4], "pt", "tr", "ast_DE", "tlh_DE");
+	equalsOr4(vec[5], "tr", "pt", "ast_DE", "tlh_DE");
+	equalsOr4(vec[6], "tr", "pt", "ast_DE", "tlh_DE");
+	equalsOr4(vec[7], "tr", "pt", "ast_DE", "tlh_DE");
+	equalsNot(vec[4], vec[5]);
+	equalsNot(vec[4], vec[6]);
+	equalsNot(vec[4], vec[7]);
+	equalsNot(vec[5], vec[6]);
+	equalsNot(vec[5], vec[7]);
+	equalsNot(vec[6], vec[7]);
 
 
 	_config->Set("Acquire::Languages", "none");
 	_config->Set("Acquire::Languages", "none");
 	vec = APT::Configuration::getLanguages(true, false, env);
 	vec = APT::Configuration::getLanguages(true, false, env);

+ 2 - 1
test/libapt/run-tests

@@ -65,7 +65,8 @@ do
 			"${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-pt" \
 			"${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-pt" \
 			"${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-se~" \
 			"${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-se~" \
 			"${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-st.bak" \
 			"${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-st.bak" \
-			"${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-ast_DE"
+			"${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-ast_DE" \
+			"${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-tlh%5fDE"
 	elif [ $name = "HashSums${EXT}" ]; then
 	elif [ $name = "HashSums${EXT}" ]; then
 		TMP="$(readlink -f "./${0}")"
 		TMP="$(readlink -f "./${0}")"
 		echo -n "Testing with ${NAME} "
 		echo -n "Testing with ${NAME} "