Michael Vogt лет назад: 14
Родитель
Сommit
89e95aee05

+ 11 - 0
apt-pkg/aptconfiguration.cc

@@ -319,6 +319,17 @@ std::vector<std::string> const Configuration::getLanguages(bool const &All,
 		return codes;
 }
 									/*}}}*/
+// checkLanguage - are we interested in the given Language?		/*{{{*/
+bool const Configuration::checkLanguage(std::string Lang, bool const All) {
+	// the empty Language is always interesting as it is the original
+	if (Lang.empty() == true)
+		return true;
+	// filenames are encoded, so undo this
+	Lang = SubstVar(Lang, "%5f", "_");
+	std::vector<std::string> const langs = getLanguages(All, true);
+	return (std::find(langs.begin(), langs.end(), Lang) != langs.end());
+}
+									/*}}}*/
 // getArchitectures - Return Vector of prefered Architectures		/*{{{*/
 std::vector<std::string> const Configuration::getArchitectures(bool const &Cached) {
 	using std::string;

+ 8 - 0
apt-pkg/aptconfiguration.h

@@ -67,6 +67,14 @@ public:									/*{{{*/
 	std::vector<std::string> static const getLanguages(bool const &All = false,
 			bool const &Cached = true, char const ** const Locale = 0);
 
+	/** \brief Are we interested in the given Language?
+	 *
+	 *  \param Lang is the language we want to check
+	 *  \param All defines if we check against all codes or only against used codes
+	 *  \return true if we are interested, false otherwise
+	 */
+	bool static const Configuration::checkLanguage(std::string Lang, bool const All = false);
+
 	/** \brief Returns a vector of Architectures we support
 	 *
 	 *  \param Cached saves the result so we need to calculated it only once

+ 31 - 3
apt-pkg/cdrom.cc

@@ -269,6 +269,29 @@ bool pkgCdrom::DropBinaryArch(vector<string> &List)
       --I; // the next entry is at the same index after the erase
    }
    
+   return true;
+}
+									/*}}}*/
+// DropTranslation - Dump unwanted Translation-<lang> files		/*{{{*/
+// ---------------------------------------------------------------------
+/* Here we drop everything that is not configured in Acquire::Languages */
+bool pkgCdrom::DropTranslation(vector<string> &List)
+{
+   for (unsigned int I = 0; I < List.size(); I++)
+   {
+      const char *Start;
+      if ((Start = strstr(List[I].c_str(), "/Translation-")) == NULL)
+	 continue;
+      Start += strlen("/Translation-");
+
+      if (APT::Configuration::checkLanguage(Start, true) == true)
+	 continue;
+
+      // not accepted -> Erase it
+      List.erase(List.begin() + I);
+      --I; // the next entry is at the same index after the erase
+   }
+
    return true;
 }
 									/*}}}*/
@@ -363,6 +386,7 @@ void pkgCdrom::ReduceSourcelist(string CD,vector<string> &List)
 
       string Word1 = string(*I,Space,SSpace-Space);
       string Prefix = string(*I,0,Space);
+      string Component = string(*I,SSpace);
       for (vector<string>::iterator J = List.begin(); J != I; ++J)
       {
 	 // Find a space..
@@ -377,9 +401,11 @@ void pkgCdrom::ReduceSourcelist(string CD,vector<string> &List)
 	    continue;
 	 if (string(*J,Space2,SSpace2-Space2) != Word1)
 	    continue;
-	 
-	 *J += string(*I,SSpace);
-	 *I = string();
+
+	 string Component2 = string(*J, SSpace2) + " ";
+	 if (Component2.find(Component + " ") == std::string::npos)
+	    *J += Component;
+	 I->clear();
       }
    }   
 
@@ -711,6 +737,8 @@ bool pkgCdrom::Add(pkgCdromStatus *log)					/*{{{*/
    DropRepeats(SigList,"InRelease");
    _error->RevertToStack();
    DropRepeats(TransList,"");
+   if (_config->FindB("APT::CDROM::DropTranslation", true) == true)
+      DropTranslation(TransList);
    if(log != NULL) {
       msg.str("");
       ioprintf(msg, _("Found %zu package indexes, %zu source indexes, "

+ 1 - 0
apt-pkg/cdrom.h

@@ -60,6 +60,7 @@ class pkgCdrom								/*{{{*/
 		     unsigned int Depth = 0);
    bool DropBinaryArch(std::vector<std::string> &List);
    bool DropRepeats(std::vector<std::string> &List,const char *Name);
+   bool DropTranslation(std::vector<std::string> &List);
    void ReduceSourcelist(std::string CD,std::vector<std::string> &List);
    bool WriteDatabase(Configuration &Cnf);
    bool WriteSourceList(std::string Name,std::vector<std::string> &List,bool Source);

+ 1 - 1
apt-pkg/deb/dpkgpm.cc

@@ -187,7 +187,7 @@ pkgDPkgPM::~pkgDPkgPM()
 bool pkgDPkgPM::Install(PkgIterator Pkg,string File)
 {
    if (File.empty() == true || Pkg.end() == true)
-      return _error->Error("Internal Error, No file name for %s",Pkg.Name());
+      return _error->Error("Internal Error, No file name for %s",Pkg.FullName().c_str());
 
    // If the filename string begins with DPkg::Chroot-Directory, return the
    // substr that is within the chroot so dpkg can access it.

+ 16 - 10
apt-pkg/indexcopy.cc

@@ -350,9 +350,6 @@ bool IndexCopy::ReconstructChop(unsigned long &Chop,string Dir,string File)
  */
 void IndexCopy::ConvertToSourceList(string CD,string &Path)
 {
-   char S[300];
-   snprintf(S,sizeof(S),"binary-%s",_config->Find("Apt::Architecture").c_str());
-   
    // Strip the cdrom base path
    Path = string(Path,CD.length());
    if (Path.empty() == true)
@@ -388,7 +385,13 @@ void IndexCopy::ConvertToSourceList(string CD,string &Path)
 	 return;
       string Binary = string(Path,Slash+1,BinSlash - Slash-1);
       
-      if (Binary != S && Binary != "source")
+      if (strncmp(Binary.c_str(), "binary-", strlen("binary-")) == 0)
+      {
+	 Binary.erase(0, strlen("binary-"));
+	 if (APT::Configuration::checkArchitecture(Binary) == false)
+	    continue;
+      }
+      else if (Binary != "source")
 	 continue;
 
       Path = Dist + ' ' + Comp;
@@ -494,17 +497,20 @@ bool SourceCopy::RewriteEntry(FILE *Target,string File)
 bool SigVerify::Verify(string prefix, string file, indexRecords *MetaIndex)
 {
    const indexRecords::checkSum *Record = MetaIndex->Lookup(file);
+   bool const Debug = _config->FindB("Debug::aptcdrom",false);
 
-   // we skip non-existing files in the verifcation to support a cdrom
-   // with no Packages file (just a Package.gz), see LP: #255545
-   // (non-existing files are not considered a error)
+   // we skip non-existing files in the verifcation of the Release file
+   // as non-existing files do not harm, but a warning scares people and
+   // makes it hard to strip unneeded files from an ISO like uncompressed
+   // indexes as it is done on the mirrors (see also LP: #255545 )
    if(!RealFileExists(prefix+file))
    {
-      _error->Warning(_("Skipping nonexistent file %s"), string(prefix+file).c_str());
+      if (Debug == true)
+	 cout << "Skipping nonexistent in " << prefix << " file " << file << std::endl;
       return true;
    }
 
-   if (!Record) 
+   if (!Record)
    {
       _error->Warning(_("Can't find authentication record for: %s"), file.c_str());
       return false;
@@ -516,7 +522,7 @@ bool SigVerify::Verify(string prefix, string file, indexRecords *MetaIndex)
       return false;
    }
 
-   if(_config->FindB("Debug::aptcdrom",false)) 
+   if(Debug == true)
    {
       cout << "File: " << prefix+file << endl;
       cout << "Expected Hash " << Record->Hash.toStr() << endl;

+ 7 - 2
apt-pkg/packagemanager.cc

@@ -856,7 +856,10 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate, int c
 	 This way we avoid that M-A: enabled packages are installed before
 	 their older non-M-A enabled packages are replaced by newer versions */
       bool const installed = Pkg->CurrentVer != 0;
-      if (installed == true && Install(Pkg,FileNames[Pkg->ID]) == false)
+      if (installed == true &&
+	  (instVer != Pkg.CurrentVer() ||
+	   ((Cache[Pkg].iFlags & pkgDepCache::ReInstall) == pkgDepCache::ReInstall)) &&
+	  Install(Pkg,FileNames[Pkg->ID]) == false)
 	 return false;
       for (PkgIterator P = Pkg.Group().PackageList();
 	   P.end() == false; P = Pkg.Group().NextPkg(P))
@@ -882,7 +885,9 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate, int c
       }
    }
    // packages which are already unpacked don't need to be unpacked again
-   else if (Pkg.State() != pkgCache::PkgIterator::NeedsConfigure && Install(Pkg,FileNames[Pkg->ID]) == false)
+   else if ((instVer != Pkg.CurrentVer() ||
+	     ((Cache[Pkg].iFlags & pkgDepCache::ReInstall) == pkgDepCache::ReInstall)) &&
+	    Install(Pkg,FileNames[Pkg->ID]) == false)
       return false;
 
    if (Immediate == true) {

+ 26 - 1
debian/changelog

@@ -3,8 +3,33 @@ apt (0.9.7.5) UNRELEASED; urgency=low
   [ Manpages translation updates ]
   * Japanese (KURASAWA Nozomu) (Closes: #684435)
 
+  [ David Kalnischkies ]
+  * apt-pkg/cdrom.cc:
+    - copy only configured translation files from a CD-ROM and not all
+      available translation files preventing new installs with d-i from
+      being initialized with all translations (Closes: #678227)
+    - handle Components in the reduction for the source.list as multi-arch CDs
+      otherwise create duplicated source entries (e.g. "wheezy main main")
+  * apt-pkg/packagemanager.cc:
+    - unpack versions only in case a different version from the package
+      is currently in unpack state to recover from broken system states
+      (like different file in M-A:same package and other dpkg errors)
+      and avoid re-unpack otherwise (Closes: #670900)
+  * debian/control:
+    - let libapt-pkg break apt < 0.9.4 to ensure that the installed http-
+      method supports the new redirection-style, thanks to Raphael Geissert
+      for reporting & testing (Closes: #685192)
+  * doc/apt_preferences.5.xml:
+    - use the correct interval (x <= P < y) for pin value documentation as
+      these are the intervals used by the code (Closes: #685989)
+  * apt-pkg/indexcopy.cc:
+    - do not create duplicated flat-archive CD-ROM sources for foreign
+      architectures on multi-arch CD-ROMs
+    - do not warn about files which have a record in the Release file, but
+      are not present on the CD to mirror the behavior of the other methods
+      and to allow uncompressed indexes to be dropped without scaring users
 
- -- Christian Perrier <bubulle@debian.org>  Fri, 10 Aug 2012 07:52:17 +0200
+ -- David Kalnischkies <kalnischkies@gmail.com>  Sun, 26 Aug 2012 10:49:17 +0200
 
 apt (0.9.7.4) unstable; urgency=low
 

+ 1 - 0
debian/control

@@ -41,6 +41,7 @@ Architecture: any
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Depends: ${shlibs:Depends}, ${misc:Depends}
+Breaks: apt (<< 0.9.4~)
 Section: libs
 Description: package managment runtime library
  This library provides the common functionality for searching and

+ 5 - 5
doc/apt_preferences.5.xml

@@ -312,30 +312,30 @@ or negative integers.  They are interpreted as follows (roughly speaking):
 
 <variablelist>
 <varlistentry>
-<term>P &gt; 1000</term>
+<term>P &gt;= 1000</term>
 <listitem><simpara>causes a version to be installed even if this
 constitutes a downgrade of the package</simpara></listitem>
 </varlistentry>
 <varlistentry>
-<term>990 &lt; P &lt;=1000</term>
+<term>990 &lt;= P &lt; 1000</term>
 <listitem><simpara>causes a version to be installed
 even if it does not come from the target release,
 unless the installed version is more recent</simpara></listitem>
 </varlistentry>
 <varlistentry>
-<term>500 &lt; P &lt;=990</term>
+<term>500 &lt;= P &lt; 990</term>
 <listitem><simpara>causes a version to be installed
 unless there is a version available belonging to the target release
 or the installed version is more recent</simpara></listitem>
 </varlistentry>
 <varlistentry>
-<term>100 &lt; P &lt;=500</term>
+<term>100 &lt;= P &lt; 500</term>
 <listitem><simpara>causes a version to be installed
 unless there is a version available belonging to some other
 distribution or the installed version is more recent</simpara></listitem>
 </varlistentry>
 <varlistentry>
-<term>0 &lt; P &lt;=100</term>
+<term>0 &lt; P &lt; 100</term>
 <listitem><simpara>causes a version to be installed
 only if there is no installed version of the package</simpara></listitem>
 </varlistentry>

+ 7 - 7
doc/po/apt-doc.pot

@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: apt-doc 0.9.7\n"
+"Project-Id-Version: apt-doc 0.9.7.4\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2012-06-29 14:26+0300\n"
+"POT-Creation-Date: 2012-08-30 22:07+0300\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -4012,7 +4012,7 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:315
-msgid "P &gt; 1000"
+msgid "P &gt;= 1000"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
@@ -4024,7 +4024,7 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:320
-msgid "990 &lt; P &lt;=1000"
+msgid "990 &lt;= P &lt; 1000"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
@@ -4036,7 +4036,7 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:326
-msgid "500 &lt; P &lt;=990"
+msgid "500 &lt;= P &lt; 990"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
@@ -4048,7 +4048,7 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:332
-msgid "100 &lt; P &lt;=500"
+msgid "100 &lt;= P &lt; 500"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
@@ -4060,7 +4060,7 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:338
-msgid "0 &lt; P &lt;=100"
+msgid "0 &lt; P &lt; 100"
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>

+ 215 - 220
doc/po/de.po

@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt-doc 0.9.7\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2012-06-09 22:05+0300\n"
+"POT-Creation-Date: 2012-08-30 12:50+0300\n"
 "PO-Revision-Date: 2012-06-25 22:49+0100\n"
 "Last-Translator: Chris Leick <c.leick@vollbio.de>\n"
 "Language-Team: German <debian-l10n-german@lists.debian.org>\n"
@@ -920,11 +920,10 @@ msgid ""
 "versions or none at all."
 msgstr ""
 "Paketquellen werden vom Programmpaket getrennt über <literal>deb-src</"
-"literal>-Zeilen in der &sources-list;-Datei nachverfolgt. Das bedeutet, "
-"dass Sie für jedes Depot, aus dem Sie Quellen erhalten wollen, eine solche "
-"Zeile hinzufügen müssen; andernfalls werden Sie eventuell entweder die "
-"falschen Versionen (zu alte/zu neue) oder überhaupt keine Quellpakete "
-"erhalten."
+"literal>-Zeilen in der &sources-list;-Datei nachverfolgt. Das bedeutet, dass "
+"Sie für jedes Depot, aus dem Sie Quellen erhalten wollen, eine solche Zeile "
+"hinzufügen müssen; andernfalls werden Sie eventuell entweder die falschen "
+"Versionen (zu alte/zu neue) oder überhaupt keine Quellpakete erhalten."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-get.8.xml:178
@@ -966,7 +965,8 @@ msgid ""
 msgstr ""
 "Beachten Sie, dass Quellpakete nicht wie normale Programmpakete in der "
 "Datenbank von <command>dpkg</command> installiert und nachverfolgt werden; "
-"sie werden nur wie Quell-Tarballs in das aktuelle Verzeichnis heruntergeladen."
+"sie werden nur wie Quell-Tarballs in das aktuelle Verzeichnis "
+"heruntergeladen."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-get.8.xml:197
@@ -1966,11 +1966,11 @@ msgid ""
 "missing packages are hexagons. Orange boxes mean recursion was stopped (leaf "
 "packages), blue lines are pre-depends, green lines are conflicts."
 msgstr ""
-"Die resultierenden Knoten haben mehrere Formen: Normale Pakete sind Kästchen, "
-"rein virtuelle Pakete sind Dreiecke, gemischt virtuelle Pakete sind "
-"Diamanten, fehlende Pakete sind Sechsecke. Orange Kästchen bedeuten, dass die "
-"Rekursion beendet wurde [Leaf Packages], blaue Linien sind Pre-depends, grüne "
-"Linien sind Konflikte."
+"Die resultierenden Knoten haben mehrere Formen: Normale Pakete sind "
+"Kästchen, rein virtuelle Pakete sind Dreiecke, gemischt virtuelle Pakete "
+"sind Diamanten, fehlende Pakete sind Sechsecke. Orange Kästchen bedeuten, "
+"dass die Rekursion beendet wurde [Leaf Packages], blaue Linien sind Pre-"
+"depends, grüne Linien sind Konflikte."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt-cache.8.xml:221
@@ -2611,8 +2611,8 @@ msgstr ""
 "berechnet und in der Release-Datei abgelegt. Dann wird die Release-Datei "
 "durch den Archivschlüssel für diese Debian-Veröffentlichung signiert und "
 "zusammen mit den Paketen und Packages-Dateien auf Debian-Spiegel verteilt. "
-"Die Schlüssel sind im Debian-Archivschlüsselbund im Paket "
-"<package>debian-archive-keyring</package> verfügbar."
+"Die Schlüssel sind im Debian-Archivschlüsselbund im Paket <package>debian-"
+"archive-keyring</package> verfügbar."
 
 #. type: Content of: <refentry><refsect1><para>
 #: apt-secure.8.xml:113
@@ -2621,10 +2621,10 @@ msgid ""
 "a package from it and compare it with the checksum of the package they "
 "downloaded by hand - or rely on APT doing this automatically."
 msgstr ""
-"Endanwender können die Signatur der Release-Datei prüfen, die Prüfsumme eines "
-"Paketes daraus entpacken und mit der Prüfsumme des Pakets vergleichen, das "
-"sie manuell heruntergeladen haben – oder sich darauf verlassen, dass APT dies "
-"automatisch tut."
+"Endanwender können die Signatur der Release-Datei prüfen, die Prüfsumme "
+"eines Paketes daraus entpacken und mit der Prüfsumme des Pakets vergleichen, "
+"das sie manuell heruntergeladen haben – oder sich darauf verlassen, dass APT "
+"dies automatisch tut."
 
 #. type: Content of: <refentry><refsect1><para>
 #: apt-secure.8.xml:118
@@ -2992,8 +2992,8 @@ msgstr ""
 "»shell« wird benutzt, um aus einem Shellskript auf "
 "Konfigurationsinformationen zuzugreifen. Es wird ein Paar von Argumenten "
 "angegeben – das erste als Shell-Variable und das zweite als "
-"Konfigurationswert zum Abfragen. Als Ausgabe führt es "
-"Shell-Zuweisungsbefehle für jeden vorhandenen Wert auf. In einen Shellskript "
+"Konfigurationswert zum Abfragen. Als Ausgabe führt es Shell-"
+"Zuweisungsbefehle für jeden vorhandenen Wert auf. In einen Shellskript "
 "sollte es wie folgt benutzt werden:"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><informalexample><programlisting>
@@ -3061,11 +3061,11 @@ msgstr ""
 "definiert die Ausgabe jeder Konfigurationsoption. &percnt;t wird durch den "
 "individuellen Namen ersetzt, &percnt;f durch ihren vollständigen "
 "hierarchichen Namen und &percnt;v durch ihren Wert. Verwenden Sie "
-"Großbuchstaben; Sonderzeichen in dem Wert werden kodiert, um sicherzustellen, "
-"dass sie z.B. in einer maskierten Zeichenkette, wie sie RFC822 definiert, "
-"sicher verwandt werden kann. &percnt;n wird zusätzlich durch einen "
-"Zeilenumbruch ersetzt, &percnt;N durch einen Tabulator. Ein &percnt; kann "
-"mittels &percnt;&percnt; ausgegeben werden."
+"Großbuchstaben; Sonderzeichen in dem Wert werden kodiert, um "
+"sicherzustellen, dass sie z.B. in einer maskierten Zeichenkette, wie sie "
+"RFC822 definiert, sicher verwandt werden kann. &percnt;n wird zusätzlich "
+"durch einen Zeilenumbruch ersetzt, &percnt;N durch einen Tabulator. Ein "
+"&percnt; kann mittels &percnt;&percnt; ausgegeben werden."
 
 #. type: Content of: <refentry><refsect1><para>
 #: apt-config.8.xml:110 apt-extracttemplates.1.xml:71 apt-sortpkgs.1.xml:64
@@ -3211,8 +3211,8 @@ msgstr ""
 "wie jeglicher Text zwischen <literal>/*</literal> und <literal>*/</literal>, "
 "wie bei C/C++-Kommentaren. Jede Zeile hat die Form <literal>APT::Get::Assume-"
 "Yes \"true\";</literal>. Die Anführungszeichen und abschließenden "
-"Strichpunkte werden benötigt. Der Wert muss in einer Zeile stehen und "
-"es gibt keine Möglichkeit Zeichenketten aneinander zu hängen. Werte dürfen "
+"Strichpunkte werden benötigt. Der Wert muss in einer Zeile stehen und es "
+"gibt keine Möglichkeit Zeichenketten aneinander zu hängen. Werte dürfen "
 "keine Rückwärtsschrägstriche oder zusätzliche Anführungszeichen enthalten. "
 "Optionsnamen werden aus alphanumerischen Zeichen und den Zeichen »/-:._+« "
 "gebildet. Ein neuer Geltungsbereich kann mit geschweiften Klammern geöffnet "
@@ -3306,11 +3306,10 @@ msgstr ""
 "missbilligt ist und von alternativen Implementierungen nicht unterstützt "
 "wird) und <literal>#clear</literal>: <literal>#include</literal> wird die "
 "angegebene Datei einfügen, außer, wenn der Dateiname mit einem Schrägstrich "
-"endet, in diesem Fall wird das ganze Verzeichnis eingefügt. "
-"<literal>#clear</literal> wird benutzt, um einen Teil des Konfigurationsbaums "
-"zu löschen. Das angegebene Element und alle davon absteigenden Elemente "
-"werden gelöscht. (Beachten Sie, dass diese Zeilen auch mit einem Schrägstrich "
-"enden müssen.)"
+"endet, in diesem Fall wird das ganze Verzeichnis eingefügt. <literal>#clear</"
+"literal> wird benutzt, um einen Teil des Konfigurationsbaums zu löschen. Das "
+"angegebene Element und alle davon absteigenden Elemente werden gelöscht. "
+"(Beachten Sie, dass diese Zeilen auch mit einem Schrägstrich enden müssen.)"
 
 #. type: Content of: <refentry><refsect1><para>
 #: apt.conf.5.xml:123
@@ -3324,10 +3323,10 @@ msgstr ""
 "Der <literal>#clear</literal>-Befehl ist der einzige Weg, eine Liste oder "
 "einen kompletten Geltungsbereich zu löschen. Erneutes Öffnen eines "
 "Geltungsbereichs (oder die unten beschriebene Syntax mit angehängten "
-"<literal>::</literal>) wird vorherige Einträge <emphasis>nicht</"
-"emphasis> außer Kraft setzen. Optionen können nur außer Kraft gesetzt werden, "
-"indem ein neuer Wert an sie adressiert wird – Listen und Geltungsbereiche "
-"können nicht außer Kraft gesetzt, sondern nur bereinigt werden."
+"<literal>::</literal>) wird vorherige Einträge <emphasis>nicht</emphasis> "
+"außer Kraft setzen. Optionen können nur außer Kraft gesetzt werden, indem "
+"ein neuer Wert an sie adressiert wird – Listen und Geltungsbereiche können "
+"nicht außer Kraft gesetzt, sondern nur bereinigt werden."
 
 #. type: Content of: <refentry><refsect1><para>
 #: apt.conf.5.xml:131
@@ -3366,19 +3365,20 @@ msgid ""
 "explicitly complain about them."
 msgstr ""
 "Beachten Sie, dass das Anhängen von Elementen an eine Liste mittels "
-"<literal>::</literal> nur für ein Element pro Zeile funktioniert, Sie sollten "
-"es nicht nicht in Verbindung mit einer Geltungsbereichssyntax benutzen (die "
-"»<literal>::</literal>« explizit hinzufügt). Die Benutzung der Syntax von "
-"beiden zusammen wird einen Fehler auslösen, auf den sich einige Anwender "
-"ungünstigerweise verlassen: eine Option mit dem unüblichen Namen "
+"<literal>::</literal> nur für ein Element pro Zeile funktioniert, Sie "
+"sollten es nicht nicht in Verbindung mit einer Geltungsbereichssyntax "
+"benutzen (die »<literal>::</literal>« explizit hinzufügt). Die Benutzung der "
+"Syntax von beiden zusammen wird einen Fehler auslösen, auf den sich einige "
+"Anwender ungünstigerweise verlassen: eine Option mit dem unüblichen Namen "
 "»<literal>::</literal>«, die sich wie jede andere Option mit einem Namen "
 "verhält. Dies leitet viele Probleme ein; zum einen werden Anwender, die "
-"mehrere Zeilen in dieser <emphasis>falschen</emphasis> Syntax in der Hoffnung "
-"etwas an die Liste anzuhängen, schreiben, das Gegenteil erreichen, da nur die "
-"letzte Zuweisung zu dieser Option »<literal>::</literal>« benutzt wird. "
-"Zukünftige APT-Versionen werden Fehler ausgeben und die Arbeit stoppen, wenn "
-"sie auf diese falsche Verwendung stoßen. Korrigieren Sie deshalb nun solche "
-"Anweisungen, solange sich APT nicht explizit darüber beklagt."
+"mehrere Zeilen in dieser <emphasis>falschen</emphasis> Syntax in der "
+"Hoffnung etwas an die Liste anzuhängen, schreiben, das Gegenteil erreichen, "
+"da nur die letzte Zuweisung zu dieser Option »<literal>::</literal>« benutzt "
+"wird. Zukünftige APT-Versionen werden Fehler ausgeben und die Arbeit "
+"stoppen, wenn sie auf diese falsche Verwendung stoßen. Korrigieren Sie "
+"deshalb nun solche Anweisungen, solange sich APT nicht explizit darüber "
+"beklagt."
 
 #. type: Content of: <refentry><refsect1><title>
 #: apt.conf.5.xml:154
@@ -3424,8 +3424,8 @@ msgstr ""
 "wurden. Diese Liste wird benutzt, wenn Dateien abgerufen und Paketlisten "
 "ausgewertet werden. Die interne Vorgabe ist immer die native Architektur des "
 "Systems (<literal>APT::Architecture</literal>) und fremde Architekturen "
-"werden der vorgegebenen Liste hinzugefügt, wenn sie per <command>dpkg "
-"--print-architectures</command> registriert werden."
+"werden der vorgegebenen Liste hinzugefügt, wenn sie per <command>dpkg --"
+"print-architectures</command> registriert werden."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:180
@@ -3479,17 +3479,17 @@ msgid ""
 "longer guaranteed to work, as its dependency on A is no longer satisfied."
 msgstr ""
 "ist standardmäßig aktiviert, was APT veranlassen wird, essentielle und "
-"wichtige Pakete so bald wie möglich in einer "
-"Installations-/Aktualisierungstransaktion zu installieren, um die "
-"Auswirkungen eines scheiternden &dpkg;-Aufrufs zu begrenzen. Falls diese "
-"Option deaktiviert ist, betrachtet APT ein wichtiges Paket auf die gleiche "
-"Weise wie ein zusätzliches Paket: Zwischen dem Entpacken des Pakets A und "
-"seiner Konfiguration können viele andere Entpack- oder Konfigurationsaufrufe "
-"für andere, nicht zugehörige Pakete B, C etc. liegen. Falls dies zum "
-"Scheitern des &dpkg;-Aufrufs führt (z.B. weil Betreuerskripte des Pakets B "
-"einen Fehler erzeugen), führt dies zu einem Systemstatus, in dem Paket A "
-"entpackt, aber nicht konfiguriert ist, daher ist nicht länger gewährleistet, "
-"dass irgendein Paket, das von A abhängt, weiter funktioniert, da seine "
+"wichtige Pakete so bald wie möglich in einer Installations-/"
+"Aktualisierungstransaktion zu installieren, um die Auswirkungen eines "
+"scheiternden &dpkg;-Aufrufs zu begrenzen. Falls diese Option deaktiviert "
+"ist, betrachtet APT ein wichtiges Paket auf die gleiche Weise wie ein "
+"zusätzliches Paket: Zwischen dem Entpacken des Pakets A und seiner "
+"Konfiguration können viele andere Entpack- oder Konfigurationsaufrufe für "
+"andere, nicht zugehörige Pakete B, C etc. liegen. Falls dies zum Scheitern "
+"des &dpkg;-Aufrufs führt (z.B. weil Betreuerskripte des Pakets B einen "
+"Fehler erzeugen), führt dies zu einem Systemstatus, in dem Paket A entpackt, "
+"aber nicht konfiguriert ist, daher ist nicht länger gewährleistet, dass "
+"irgendein Paket, das von A abhängt, weiter funktioniert, da seine "
 "Abhängigkeit von A nicht länger erfüllt wird."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
@@ -3537,8 +3537,8 @@ msgstr ""
 "explizit <literal>install</literal> für das Paket auszuführen, das APT nicht "
 "unmittelbar konfigurieren kann. Stellen Sie aber bitte sicher, dass Sie Ihr "
 "Problem außerdem an Ihre Distribution und an das APT-Team mit dem "
-"Fehlerverweis unten melden, so dass sie an der Verbesserung und Korrektur des "
-"Upgrade-Prozesses arbeiten können."
+"Fehlerverweis unten melden, so dass sie an der Verbesserung und Korrektur "
+"des Upgrade-Prozesses arbeiten können."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:235
@@ -3670,8 +3670,8 @@ msgstr ""
 "Funktion hängt jedoch von der Richtigkeit der Zeiteinstellung auf dem "
 "Anwendersystem ab. Archivbetreuer sind aufgefordert, Release-Dateien mit der "
 "Kopfzeile <literal>Valid-Until</literal> zu erstellen. Falls sie das nicht "
-"tun oder ein strengerer Wert gewünscht wird, kann die Option "
-"<literal>Max-ValidTime</literal> unten benutzt werden."
+"tun oder ein strengerer Wert gewünscht wird, kann die Option <literal>Max-"
+"ValidTime</literal> unten benutzt werden."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:304
@@ -3685,13 +3685,12 @@ msgid ""
 "the label of the archive to the option name."
 msgstr ""
 "maximale Zeit (in Sekunden) nach der Erzeugung (die in der Kopfzeile "
-"<literal>Date</literal> angegeben ist), die die Datei "
-"<filename>Release</filename> als gültig angesehen wird. Falls die "
-"Release-Datei selbst eine <literal>Valid-Until</literal>-Kopfzeile "
-"enthält, wird das frühere der beiden Daten als Ablaufdatum verwandt. Vorgabe "
-"ist <literal>0</literal>, was für »für immer gültig« steht. Archivspezifische "
-"Einstellungen können durch Anhängen der Archivbezeichnung an den Optionsnamen "
-"vorgenommen werden."
+"<literal>Date</literal> angegeben ist), die die Datei <filename>Release</"
+"filename> als gültig angesehen wird. Falls die Release-Datei selbst eine "
+"<literal>Valid-Until</literal>-Kopfzeile enthält, wird das frühere der "
+"beiden Daten als Ablaufdatum verwandt. Vorgabe ist <literal>0</literal>, was "
+"für »für immer gültig« steht. Archivspezifische Einstellungen können durch "
+"Anhängen der Archivbezeichnung an den Optionsnamen vorgenommen werden."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:316
@@ -3705,13 +3704,13 @@ msgid ""
 "label of the archive to the option name."
 msgstr ""
 "minimale Zeit (in Sekunden), nach der Erzeugung (die in der Kopfzeile "
-"<literal>Date</literal> angegeben ist), die die Datei "
-"<filename>Release</filename> als gültig angesehen wird. Benutzen Sie dies, "
-"falls Sie einen selten aktualisierten (lokalen) Spiegel eines häufiger "
-"aktualisierten Archivs mit einer <literal>Valid-Until</literal>-Kopfzeile "
-"haben, anstatt die Überprüfung des Ablaufdatums komplett zu deaktivieren. "
-"Archivspezifische Einstellungen können und sollten durch Anhängen der "
-"Archivbezeichnung an den Optionsnamen vorgenommen werden."
+"<literal>Date</literal> angegeben ist), die die Datei <filename>Release</"
+"filename> als gültig angesehen wird. Benutzen Sie dies, falls Sie einen "
+"selten aktualisierten (lokalen) Spiegel eines häufiger aktualisierten "
+"Archivs mit einer <literal>Valid-Until</literal>-Kopfzeile haben, anstatt "
+"die Überprüfung des Ablaufdatums komplett zu deaktivieren. Archivspezifische "
+"Einstellungen können und sollten durch Anhängen der Archivbezeichnung an den "
+"Optionsnamen vorgenommen werden."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:328
@@ -3721,8 +3720,8 @@ msgid ""
 "by default."
 msgstr ""
 "versucht Unterschiede, die <literal>PDiffs</literal> genannt werden, für "
-"Indexe (wie <filename>Packages</filename>-Dateien) herunterzuladen, statt der "
-"kompletten Dateien. Vorgabe ist True."
+"Indexe (wie <filename>Packages</filename>-Dateien) herunterzuladen, statt "
+"der kompletten Dateien. Vorgabe ist True."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:331
@@ -3737,10 +3736,10 @@ msgstr ""
 "Es sind außerdem zwei Unteroptionen verfügbar, um die Benutzung von PDiffs "
 "zu begrenzen: <literal>FileLimit</literal> kann verwandt werden, um die "
 "maximale Anzahl von PDiff-Dateien anzugeben, die zum Aktualisieren einer "
-"Datei heruntergeladen werden sollen. Andererseits gibt "
-"<literal>SizeLimit</literal> die maximale Prozentzahl der Größe aller Patches "
-"im Vergleich zur Zieldatei an. Wenn eine dieser Begrenzungen überschritten "
-"wird, wird die komplette Datei anstelle der Patche heruntergeladen."
+"Datei heruntergeladen werden sollen. Andererseits gibt <literal>SizeLimit</"
+"literal> die maximale Prozentzahl der Größe aller Patches im Vergleich zur "
+"Zieldatei an. Wenn eine dieser Begrenzungen überschritten wird, wird die "
+"komplette Datei anstelle der Patche heruntergeladen."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:341
@@ -3789,13 +3788,12 @@ msgid ""
 "be used."
 msgstr ""
 "<literal>http::Proxy</literal> ist der zu benutzende Standard-HTTP-Proxy. Er "
-"wird standardmäßig in der Form "
-"<literal>http://[[Anwender][:Passwort]@]Rechner[:Port]/</literal> angegeben. "
-"Durch Rechner-Proxies kann außerdem in der Form "
-"<literal>http::Proxy::&lt;host&gt;</literal> mit dem speziellen Schlüsselwort "
-"<literal>DIRECT</literal> angegeben werden, dass keine Proxies benutzt "
-"werden. Falls keine der obigen Einstellungen angegeben wurde, wird die "
-"Umgebungsvariable <envar>http_proxy</envar> benutzt."
+"wird standardmäßig in der Form <literal>http://[[Anwender][:Passwort]@]"
+"Rechner[:Port]/</literal> angegeben. Durch Rechner-Proxies kann außerdem in "
+"der Form <literal>http::Proxy::&lt;host&gt;</literal> mit dem speziellen "
+"Schlüsselwort <literal>DIRECT</literal> angegeben werden, dass keine Proxies "
+"benutzt werden. Falls keine der obigen Einstellungen angegeben wurde, wird "
+"die Umgebungsvariable <envar>http_proxy</envar> benutzt."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:367
@@ -3808,15 +3806,15 @@ msgid ""
 "store the requested archive files in its cache, which can be used to prevent "
 "the proxy from polluting its cache with (big) .deb files."
 msgstr ""
-"Für die Steuerung des Zwischenspeichers mit HTTP/1.1-konformen "
-"Proxy-Zwischenspeichern stehen drei Einstellungen zur Verfügung. "
-"<literal>No-Cache</literal> teilt dem Proxy mit, dass er unter keinen "
-"Umständen seine zwischengespeicherten Antworten benutzen soll, "
-"<literal>Max-Age</literal> setzt das maximal erlaubte Alter einer Indexdatei "
-"im Zwischenspeicher des Proxys (in Sekunden). <literal>No-Store</literal> "
-"gibt an, dass der Proxy die angefragten Archivdateien nicht in seinem "
-"Zwischenspeicher ablegen soll. Das kann verwandt werden, um zu verhindern, "
-"dass der Proxy seinen Zwischenspeicher mit (großen) .deb-Dateien verunreinigt."
+"Für die Steuerung des Zwischenspeichers mit HTTP/1.1-konformen Proxy-"
+"Zwischenspeichern stehen drei Einstellungen zur Verfügung. <literal>No-"
+"Cache</literal> teilt dem Proxy mit, dass er unter keinen Umständen seine "
+"zwischengespeicherten Antworten benutzen soll, <literal>Max-Age</literal> "
+"setzt das maximal erlaubte Alter einer Indexdatei im Zwischenspeicher des "
+"Proxys (in Sekunden). <literal>No-Store</literal> gibt an, dass der Proxy "
+"die angefragten Archivdateien nicht in seinem Zwischenspeicher ablegen soll. "
+"Das kann verwandt werden, um zu verhindern, dass der Proxy seinen "
+"Zwischenspeicher mit (großen) .deb-Dateien verunreinigt."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:377 apt.conf.5.xml:449
@@ -3926,23 +3924,22 @@ msgstr ""
 "Die Unteroption <literal>CaInfo</literal> gibt den Ort an, an dem "
 "Informationen über vertrauenswürdige Zertifikate bereitgehalten werden. "
 "<literal>&lt;host&gt;::CaInfo</literal> ist die entsprechende Option pro "
-"Rechner. Die boolsche Unteroption <literal>Verify-Peer</literal> entscheidet, "
-"ob das Rechnerzertifikat des Servers mit den vertrauenswürdigen Zertifikaten "
-"geprüft werden soll oder nicht. <literal>&lt;host&gt;::Verify-Peer</literal> "
-"ist die entsprechende Option pro Rechner. Die boolsche Unteroption "
-"<literal>Verify-Host</literal> entscheidet, ob der Rechnername des Servers "
-"geprüft werden soll oder nicht. <literal>&lt;host&gt;::Verify-Host</literal> "
-"ist die entsprechende Option pro Rechner. <literal>SslCert</literal> "
-"entscheidet, welches Zertifikat zur Client-Authentifizierung benutzt wird. "
-"<literal>&lt;host&gt;::SslCert</literal> ist die entsprechende "
+"Rechner. Die boolsche Unteroption <literal>Verify-Peer</literal> "
+"entscheidet, ob das Rechnerzertifikat des Servers mit den vertrauenswürdigen "
+"Zertifikaten geprüft werden soll oder nicht. <literal>&lt;host&gt;::Verify-"
+"Peer</literal> ist die entsprechende Option pro Rechner. Die boolsche "
+"Unteroption <literal>Verify-Host</literal> entscheidet, ob der Rechnername "
+"des Servers geprüft werden soll oder nicht. <literal>&lt;host&gt;::Verify-"
+"Host</literal> ist die entsprechende Option pro Rechner. <literal>SslCert</"
+"literal> entscheidet, welches Zertifikat zur Client-Authentifizierung "
+"benutzt wird. <literal>&lt;host&gt;::SslCert</literal> ist die entsprechende "
 "Option pro Rechner. <literal>SslKey</literal> entscheidet, welcher private "
-"Schlüssel für die Client-Authentifizierung benutzt werden. "
-"<literal>&lt;host&gt;::SslKey</literal> ist die entsprechende Option pro "
-"Rechner. <literal>SslForceVersion</literal> überschreibt die zu "
-"benutzende Standard-SSL-Version. Es kann die beiden Zeichenketten "
-"»<literal>TLSv1</literal>« oder »<literal>SSLv3</literal>« enthalten. Die "
-"entsprechende Option pro Rechner ist "
-"<literal>&lt;host&gt;::SslForceVersion</literal>."
+"Schlüssel für die Client-Authentifizierung benutzt werden. <literal>&lt;"
+"host&gt;::SslKey</literal> ist die entsprechende Option pro Rechner. "
+"<literal>SslForceVersion</literal> überschreibt die zu benutzende Standard-"
+"SSL-Version. Es kann die beiden Zeichenketten »<literal>TLSv1</literal>« "
+"oder »<literal>SSLv3</literal>« enthalten. Die entsprechende Option pro "
+"Rechner ist <literal>&lt;host&gt;::SslForceVersion</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:432
@@ -3963,22 +3960,21 @@ msgid ""
 "literal> and <literal>$(SITE_PORT)</literal>."
 msgstr ""
 "<literal>ftp::Proxy</literal> setzt den Standard-Proxy, der für FTP-URIs "
-"benutzt werden soll. Er wird standardmäßig in der Form "
-"<literal>ftp://[[Anwender][:Passwort]@]Rechner[:Port]/</literal> angegeben. "
-"Proxys pro Rechner können außerdem in der Form "
-"<literal>ftp::Proxy::&lt;host&gt;</literal> angegeben werden. Hierbei "
-"bedeutet das spezielle Schlüsselwort <literal>DIRECT</literal>, dass keine "
-"Proxys benutzt werden. Falls keine der obigen Einstellungen angegeben wurde, "
-"wird die Umgebungsvariable <envar>ftp_proxy</envar> benutzt. Um einen FTP-"
-"Proxy zu benutzen, müssen Sie in der Konfigurationsdatei das Skript "
-"<literal>ftp::ProxyLogin</literal> setzen. Dieser Eintrag gibt die Befehle "
-"an, die gesendet werden müssen, um dem Proxy-Server mitzuteilen, womit er "
-"sich verbinden soll. Ein Beispiel, wie das funktioniert, finden Sie unter "
-"&configureindex;. Die Platzhaltervariablen, die für den zugehörigen "
-"URI-Bestandteil stehen, sind <literal>$(PROXY_USER)</literal>, "
-"<literal>$(PROXY_PASS)</literal>, <literal>$(SITE_USER)</literal>, "
-"<literal>$(SITE_PASS)</literal>, <literal>$(SITE)</literal> und "
-"<literal>$(SITE_PORT)</literal>."
+"benutzt werden soll. Er wird standardmäßig in der Form <literal>ftp://"
+"[[Anwender][:Passwort]@]Rechner[:Port]/</literal> angegeben. Proxys pro "
+"Rechner können außerdem in der Form <literal>ftp::Proxy::&lt;host&gt;</"
+"literal> angegeben werden. Hierbei bedeutet das spezielle Schlüsselwort "
+"<literal>DIRECT</literal>, dass keine Proxys benutzt werden. Falls keine der "
+"obigen Einstellungen angegeben wurde, wird die Umgebungsvariable "
+"<envar>ftp_proxy</envar> benutzt. Um einen FTP-Proxy zu benutzen, müssen Sie "
+"in der Konfigurationsdatei das Skript <literal>ftp::ProxyLogin</literal> "
+"setzen. Dieser Eintrag gibt die Befehle an, die gesendet werden müssen, um "
+"dem Proxy-Server mitzuteilen, womit er sich verbinden soll. Ein Beispiel, "
+"wie das funktioniert, finden Sie unter &configureindex;. Die "
+"Platzhaltervariablen, die für den zugehörigen URI-Bestandteil stehen, sind "
+"<literal>$(PROXY_USER)</literal>, <literal>$(PROXY_PASS)</literal>, <literal>"
+"$(SITE_USER)</literal>, <literal>$(SITE_PASS)</literal>, <literal>$(SITE)</"
+"literal> und <literal>$(SITE_PORT)</literal>."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:452
@@ -4045,15 +4041,15 @@ msgid ""
 "<literal>cdrom</literal> block. It is important to have the trailing slash.  "
 "Unmount commands can be specified using UMount."
 msgstr ""
-"Für URIs, die die Methode <literal>cdrom</literal> verwenden, ist die einzige "
-"Option der Einhängepunkt, <literal>cdrom::Mount</literal>, der der "
+"Für URIs, die die Methode <literal>cdrom</literal> verwenden, ist die "
+"einzige Option der Einhängepunkt, <literal>cdrom::Mount</literal>, der der "
 "Einhängepunkt des CD-ROM-Laufwerks sein muss (oder der DVD oder was auch "
 "immer), wie er in <filename>/etc/fstab</filename> angegeben wurde. Es ist "
 "möglich, alternative Ein- und Aushängebefehle anzugeben, falls Ihr "
 "Einhängepunkt nicht in der fstab aufgeführt werden kann. Die Syntax besteht "
-"darin, <placeholder type=\"literallayout\" id=\"0\"/> in den "
-"<literal>cdrom</literal>-Block einzufügen. Der abschließende Schrägstrich ist "
-"wichtig. Aushängebefehle können per UMount angegeben werden."
+"darin, <placeholder type=\"literallayout\" id=\"0\"/> in den <literal>cdrom</"
+"literal>-Block einzufügen. Der abschließende Schrägstrich ist wichtig. "
+"Aushängebefehle können per UMount angegeben werden."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:486
@@ -4061,9 +4057,8 @@ msgid ""
 "For GPGV URIs the only configurable option is <literal>gpgv::Options</"
 "literal>, which passes additional parameters to gpgv."
 msgstr ""
-"Die einzige Konfigurationsoption für GPGV-URIs ist "
-"<literal>gpgv::Options</literal>, um zusätzliche Parameter an Gpgv "
-"weiterzuleiten."
+"Die einzige Konfigurationsoption für GPGV-URIs ist <literal>gpgv::Options</"
+"literal>, um zusätzliche Parameter an Gpgv weiterzuleiten."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para><synopsis>
 #: apt.conf.5.xml:497
@@ -4128,13 +4123,12 @@ msgstr ""
 "einfach den bevorzugten Typ an erster Stelle in die Liste ein – noch nicht "
 "hinzugefügte Standardtypen werden implizit an das Ende der Liste angehängt, "
 "so kann z.B. <placeholder type=\"synopsis\" id=\"0\"/> verwandt werden, um "
-"<command>gzip</command>-komprimierte Dateien gegenüber "
-"<command>bzip2</command> und <command>lzma</command> zu bevorzugen. Falls "
-"<command>lzma</command> vor <command>gzip</command> und "
-"<command>bzip2</command> bevorzugt werden soll, sollte die "
-"Konfigurationseinstellung so aussehen: <placeholder type=\"synopsis\" "
-"id=\"1\"/>. Es ist nicht nötig, <literal>bz2</literal> explizit zur Liste "
-"hinzuzufügen, da es automatisch hinzufügt wird."
+"<command>gzip</command>-komprimierte Dateien gegenüber <command>bzip2</"
+"command> und <command>lzma</command> zu bevorzugen. Falls <command>lzma</"
+"command> vor <command>gzip</command> und <command>bzip2</command> bevorzugt "
+"werden soll, sollte die Konfigurationseinstellung so aussehen: <placeholder "
+"type=\"synopsis\" id=\"1\"/>. Es ist nicht nötig, <literal>bz2</literal> "
+"explizit zur Liste hinzuzufügen, da es automatisch hinzufügt wird."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para><literallayout>
 #: apt.conf.5.xml:512
@@ -4164,9 +4158,9 @@ msgstr ""
 "der Befehlszeile eingegebene Einträge an das Ende der Liste angehängt "
 "werden, die in den Konfigurationsdateien angegeben wurde, aber vor den "
 "Standardeinträgen. Um einen Typ in diesem Fall gegenüber einem, der über die "
-"Konfigurationsdatei angegebenen wurde, zu bevorzugen, können Sie diese Option "
-"direkt setzen – nicht im Listenstil. Dies wird die definierte Liste nicht "
-"überschreiben, es wird diesen Typ nur vor die Liste setzen."
+"Konfigurationsdatei angegebenen wurde, zu bevorzugen, können Sie diese "
+"Option direkt setzen – nicht im Listenstil. Dies wird die definierte Liste "
+"nicht überschreiben, es wird diesen Typ nur vor die Liste setzen."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:517
@@ -4205,14 +4199,14 @@ msgid ""
 "<filename>Translation</filename> files for every language - the long "
 "language codes are especially rare."
 msgstr ""
-"Der Unterabschnitt Languages steuert, welche <filename>Translation</filename>-"
-"Dateien heruntergeladen werden und in welcher Reihenfolge APT versucht, die "
-"Beschreibungsübersetzungen anzuzeigen. APT wird versuchen, die erste "
-"verfügbare Beschreibung für die zuerst aufgelistete Sprache anzuzeigen. "
-"Sprachen können durch ihre kurzen oder langen Sprachcodes definiert sein. "
-"Beachten Sie, dass nicht alle Archive "
-"<filename>Translation</filename>-Dateien für jede Sprache bereitstellen – "
-"insbesondere sind die langen Sprachcodes selten."
+"Der Unterabschnitt Languages steuert, welche <filename>Translation</"
+"filename>-Dateien heruntergeladen werden und in welcher Reihenfolge APT "
+"versucht, die Beschreibungsübersetzungen anzuzeigen. APT wird versuchen, die "
+"erste verfügbare Beschreibung für die zuerst aufgelistete Sprache "
+"anzuzeigen. Sprachen können durch ihre kurzen oder langen Sprachcodes "
+"definiert sein. Beachten Sie, dass nicht alle Archive <filename>Translation</"
+"filename>-Dateien für jede Sprache bereitstellen – insbesondere sind die "
+"langen Sprachcodes selten."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para><programlisting>
 #: apt.conf.5.xml:549
@@ -4254,12 +4248,12 @@ msgstr ""
 "passenden <filename>Translation</filename>-Datei stoppen wird. Dies weist "
 "APT an, diese Übersetzungen auch herunterzuladen, ohne sie tatsächlich zu "
 "verwenden, es sei denn, die Umgebungsvariable gibt diese Sprachen an. Daher "
-"wird die folgende Beispielkonfiguration in einer englischen Lokalisierung "
-"zu der Reihenfolge »en,de« und in einer deutschen Lokalisierung zu »de,en« "
+"wird die folgende Beispielkonfiguration in einer englischen Lokalisierung zu "
+"der Reihenfolge »en,de« und in einer deutschen Lokalisierung zu »de,en« "
 "führen. Beachten Sie, dass »fr« heruntergeladen, aber nicht benutzt wird, "
 "falls APT nicht in einer französischen Lokalisierung benutzt wird (wobei die "
-"Reihenfolge »fr, de, en« wäre). <placeholder type=\"programlisting\" "
-"id=\"0\"/>"
+"Reihenfolge »fr, de, en« wäre). <placeholder type=\"programlisting\" id="
+"\"0\"/>"
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:550
@@ -4524,8 +4518,8 @@ msgstr ""
 "ausgeführt werden. Wie <literal>options</literal> muss dies in "
 "Listenschreibweise angegeben werden. Die Befehle werden der Reihenfolge nach "
 "mit <filename>/bin/sh</filename> aufgerufen, sollte einer fehlschlagen, wird "
-"APT abgebrochen. APT wird den Befehlen die Dateinamen aller .deb-Dateien, die "
-"es installieren wird, auf der Standardeingabe übergeben, einen pro Zeile."
+"APT abgebrochen. APT wird den Befehlen die Dateinamen aller .deb-Dateien, "
+"die es installieren wird, auf der Standardeingabe übergeben, einen pro Zeile."
 
 #. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:680
@@ -4581,11 +4575,11 @@ msgid ""
 "reporting such that all front-ends will currently stay around half (or more) "
 "of the time in the 100% state while it actually configures all packages."
 msgstr ""
-"APT kann &dpkg; auf eine Art aufrufen, in der aggressiv Gebrauch von Triggern "
-"über mehrere &dpkg;-Aufrufe hinweg gemacht wird. Ohne weitere Optionen wird "
-"&dpkg; Trigger nur einmal bei jeder Ausführung benutzen. Diese Optionen zu "
-"aktivieren, kann daher die zum Installieren oder Upgrade benötigte Zeit "
-"verkürzen. Beachten Sie, dass geplant ist, diese Optionen in "
+"APT kann &dpkg; auf eine Art aufrufen, in der aggressiv Gebrauch von "
+"Triggern über mehrere &dpkg;-Aufrufe hinweg gemacht wird. Ohne weitere "
+"Optionen wird &dpkg; Trigger nur einmal bei jeder Ausführung benutzen. Diese "
+"Optionen zu aktivieren, kann daher die zum Installieren oder Upgrade "
+"benötigte Zeit verkürzen. Beachten Sie, dass geplant ist, diese Optionen in "
 "Zukunft standardmäßig zu aktivieren, aber da es die Art, wie APT &dpkg; "
 "aufruft, drastisch ändert, benötigt es noch viele weitere Tests. "
 "<emphasis>Diese Optionen sind daher aktuell noch experimentell und sollten "
@@ -4674,17 +4668,17 @@ msgid ""
 msgstr ""
 "Gültige Werte sind »<literal>all</literal>«, »<literal>smart</literal>« und "
 "»<literal>no</literal>«. Der Standardwert ist »<literal>all</literal>«, was  "
-"APT veranlasst, alle Pakete zu konfigurieren. Die Art von "
-"»<literal>smart</literal>« ist es, nur die Pakete zu konfigurieren, die "
-"konfiguriert werden müssen, bevor ein anderes Paket entpackt werden kann "
-"(Pre-Depends), und den Rest von &dpkg; mit einem Aufruf, der durch die Option "
-"ConfigurePending (siehe unten) generiert wurde, konfigurieren zu lassen. Im "
-"Gegensatz dazu wird »<literal>no</literal>« nichts konfigurieren und sich "
-"völlig auf die Konfiguration durch &dpkg; verlassen (was im Moment "
-"fehlschlägt, falls ein Pre-Depends vorkommt). Diese Option auf etwas anderes "
-"als <literal>all</literal> zu setzen, wird außerdem implizit standardmäßig "
-"die nächste Option aktivieren, da das System anderenfalls in einem nicht "
-"konfigurierten Status enden könnte und möglicherweise nicht mehr startbar ist."
+"APT veranlasst, alle Pakete zu konfigurieren. Die Art von »<literal>smart</"
+"literal>« ist es, nur die Pakete zu konfigurieren, die konfiguriert werden "
+"müssen, bevor ein anderes Paket entpackt werden kann (Pre-Depends), und den "
+"Rest von &dpkg; mit einem Aufruf, der durch die Option ConfigurePending "
+"(siehe unten) generiert wurde, konfigurieren zu lassen. Im Gegensatz dazu "
+"wird »<literal>no</literal>« nichts konfigurieren und sich völlig auf die "
+"Konfiguration durch &dpkg; verlassen (was im Moment fehlschlägt, falls ein "
+"Pre-Depends vorkommt). Diese Option auf etwas anderes als <literal>all</"
+"literal> zu setzen, wird außerdem implizit standardmäßig die nächste Option "
+"aktivieren, da das System anderenfalls in einem nicht konfigurierten Status "
+"enden könnte und möglicherweise nicht mehr startbar ist."
 
 #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
 #: apt.conf.5.xml:744
@@ -5167,10 +5161,10 @@ msgstr ""
 "(zum Beispiel <literal>stable</literal> und <literal>testing</literal>). APT "
 "weist jeder verfügbaren Version eine Priorität zu. Je nach "
 "Abhängigkeitsbedingungen wählt <command>apt-get</command> die Version mit "
-"der höchsten Priorität zur Installation aus. Die APT-Einstellungen setzen die "
-"Prioritäten außer Kraft, die APT den Paketversionen standardmäßig zuweist, "
-"was dem Anwender die Kontrolle darüber gibt, welche zur Installation "
-"ausgewählt wird."
+"der höchsten Priorität zur Installation aus. Die APT-Einstellungen setzen "
+"die Prioritäten außer Kraft, die APT den Paketversionen standardmäßig "
+"zuweist, was dem Anwender die Kontrolle darüber gibt, welche zur "
+"Installation ausgewählt wird."
 
 #. type: Content of: <refentry><refsect1><para>
 #: apt_preferences.5.xml:52
@@ -5759,8 +5753,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:315
-msgid "P &gt; 1000"
-msgstr "P &gt; 1000"
+msgid "P &gt;= 1000"
+msgstr "P &gt;= 1000"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:316
@@ -5773,8 +5767,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:320
-msgid "990 &lt; P &lt;=1000"
-msgstr "990 &lt; P &lt;=1000"
+msgid "990 &lt;= P &lt; 1000"
+msgstr "990 &lt;= P &lt; 1000"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:321
@@ -5787,8 +5781,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:326
-msgid "500 &lt; P &lt;=990"
-msgstr "500 &lt; P &lt;=990"
+msgid "500 &lt;= P &lt; 990"
+msgstr "500 &lt;= P &lt; 990"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:327
@@ -5802,8 +5796,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:332
-msgid "100 &lt; P &lt;=500"
-msgstr "100 &lt; P &lt;=500"
+msgid "100 &lt;= P &lt; 500"
+msgstr "100 &lt;= P &lt; 500"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:333
@@ -5817,8 +5811,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:338
-msgid "0 &lt; P &lt;=100"
-msgstr "0 &lt; P &lt;=100"
+msgid "0 &lt; P &lt; 100"
+msgstr "0 &lt; P &lt; 100"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:339
@@ -6535,11 +6529,11 @@ msgid ""
 "and a <literal>#</literal> character anywhere on a line marks the remainder "
 "of that line as a comment."
 msgstr ""
-"Jede Zeile, die eine Quelle angibt, beginnt mit den Typ (z.B. "
-"<literal>deb-src</literal>) gefolgt von Optionen und Argumenten für diesen "
-"Typ. Einzelne Einträge können nicht auf einer folgenden Zeile fortgesetzt "
-"werden. Leere Zeilen werden ignoriert und ein <literal>#</literal>-Zeichen "
-"irgendwo in einer Zeile kennzeichnet den Rest dieser Zeile als Kommentar."
+"Jede Zeile, die eine Quelle angibt, beginnt mit den Typ (z.B. <literal>deb-"
+"src</literal>) gefolgt von Optionen und Argumenten für diesen Typ. Einzelne "
+"Einträge können nicht auf einer folgenden Zeile fortgesetzt werden. Leere "
+"Zeilen werden ignoriert und ein <literal>#</literal>-Zeichen irgendwo in "
+"einer Zeile kennzeichnet den Rest dieser Zeile als Kommentar."
 
 #. type: Content of: <refentry><refsect1><title>
 #: sources.list.5.xml:53
@@ -6825,14 +6819,15 @@ msgid ""
 "variable. Proxies using HTTP specified in the configuration file will be "
 "ignored."
 msgstr ""
-"Das ftp-Schema gibt einen FTP-Server für das Archiv an. Das FTP-Verhalten von "
-"APT ist in hohem Maße konfigurierbar. Um weitere Informationen zu erhalten, "
-"lesen Sie die &apt-conf;-Handbuchseite. Bitte beachten Sie, dass ein "
-"FTP-Proxy durch Benutzung der <envar>ftp_proxy</envar>-Umgebungsvariablen "
-"angegeben werden kann. Es ist mittels dieser Umgebungsvariable und "
-"<emphasis>nur</emphasis> dieser Umgebungsvariable möglich, einen HTTP-Proxy "
-"anzugeben (HTTP-Proxy-Server verstehen oft auch FTP-URLs). FTP-Proxys, die "
-"gemäß Angabe in der Konfigurationsdatei HTTP benutzen, werden ignoriert."
+"Das ftp-Schema gibt einen FTP-Server für das Archiv an. Das FTP-Verhalten "
+"von APT ist in hohem Maße konfigurierbar. Um weitere Informationen zu "
+"erhalten, lesen Sie die &apt-conf;-Handbuchseite. Bitte beachten Sie, dass "
+"ein FTP-Proxy durch Benutzung der <envar>ftp_proxy</envar>-"
+"Umgebungsvariablen angegeben werden kann. Es ist mittels dieser "
+"Umgebungsvariable und <emphasis>nur</emphasis> dieser Umgebungsvariable "
+"möglich, einen HTTP-Proxy anzugeben (HTTP-Proxy-Server verstehen oft auch "
+"FTP-URLs). FTP-Proxys, die gemäß Angabe in der Konfigurationsdatei HTTP "
+"benutzen, werden ignoriert."
 
 #. type: Content of: <refentry><refsect1><para><variablelist><varlistentry><listitem><para>
 #: sources.list.5.xml:184
@@ -6880,11 +6875,10 @@ msgstr ""
 "APT kann mit weiteren Methoden, die in anderen optionalen Paketen geliefert "
 "werden, die dem Namensschema <literal>apt-transport-<replaceable>Methode</"
 "replaceable></literal> folgen sollten, erweitert werden. Das APT-Team "
-"betreut zum Beispiel außerdem das Paket "
-"<literal>apt-transport-https</literal>, das Zugriffsmethoden für HTTPS-URIs "
-"mit Funktionen bereitstellt, die denen der HTTP-Methode ähneln. Außerdem sind "
-"z.B. Methoden für die Benutzung von debtorrent verfügbar – siehe"
-" &apt-transport-debtorrent;."
+"betreut zum Beispiel außerdem das Paket <literal>apt-transport-https</"
+"literal>, das Zugriffsmethoden für HTTPS-URIs mit Funktionen bereitstellt, "
+"die denen der HTTP-Methode ähneln. Außerdem sind z.B. Methoden für die "
+"Benutzung von debtorrent verfügbar – siehe &apt-transport-debtorrent;."
 
 #. type: Content of: <refentry><refsect1><para>
 #: sources.list.5.xml:212
@@ -7619,15 +7613,16 @@ msgstr ""
 #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
 #: apt-ftparchive.1.xml:307
 msgid ""
-"Sets the output Contents file. Defaults to <filename>$(DIST)/$(SECTION)/Contents-$(ARCH)"
-"</filename>. If this setting causes multiple Packages files to map onto a "
-"single Contents file (as is the default)  then <command>apt-ftparchive</"
-"command> will integrate those package files together automatically."
+"Sets the output Contents file. Defaults to <filename>$(DIST)/$(SECTION)/"
+"Contents-$(ARCH)</filename>. If this setting causes multiple Packages files "
+"to map onto a single Contents file (as is the default)  then <command>apt-"
+"ftparchive</command> will integrate those package files together "
+"automatically."
 msgstr ""
-"setzt die Ausgabe-Contens-Datei. Vorgabe ist <filename>$(DIST)/$(SECTION)/Contents-"
-"$(ARCH)</filename>. Wenn diese Einstellung bewirkt, dass mehrere Packages-"
-"Dateien auf einer einzelnen Inhaltsdatei abgebildet werden (so wie es "
-"Vorgabe ist), dann wird <command>apt-ftparchive</command> diese Dateien "
+"setzt die Ausgabe-Contens-Datei. Vorgabe ist <filename>$(DIST)/$(SECTION)/"
+"Contents-$(ARCH)</filename>. Wenn diese Einstellung bewirkt, dass mehrere "
+"Packages-Dateien auf einer einzelnen Inhaltsdatei abgebildet werden (so wie "
+"es Vorgabe ist), dann wird <command>apt-ftparchive</command> diese Dateien "
 "automatisch integrieren."
 
 #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>

+ 11 - 11
doc/po/es.po

@@ -38,7 +38,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.9.7.1\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2012-06-25 09:17+0300\n"
+"POT-Creation-Date: 2012-08-30 12:50+0300\n"
 "PO-Revision-Date: 2012-07-14 12:21+0200\n"
 "Last-Translator: Omar Campagne <ocampagne@gmail.com>\n"
 "Language-Team: Debian l10n Spanish <debian-l10n-spanish@lists.debian.org>\n"
@@ -5776,8 +5776,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:315
-msgid "P &gt; 1000"
-msgstr "P &gt; 1000"
+msgid "P &gt;= 1000"
+msgstr "P &gt;= 1000"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:316
@@ -5790,8 +5790,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:320
-msgid "990 &lt; P &lt;=1000"
-msgstr "990 &lt; P &lt;=1000"
+msgid "990 &lt;= P &lt; 1000"
+msgstr "990 &lt;= P &lt; 1000"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:321
@@ -5804,8 +5804,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:326
-msgid "500 &lt; P &lt;=990"
-msgstr "500 &lt; P &lt;=990"
+msgid "500 &lt;= P &lt; 990"
+msgstr "500 &lt;= P &lt; 990"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:327
@@ -5819,8 +5819,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:332
-msgid "100 &lt; P &lt;=500"
-msgstr "100 &lt; P &lt;=500"
+msgid "100 &lt;= P &lt; 500"
+msgstr "100 &lt;= P &lt; 500"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:333
@@ -5833,8 +5833,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:338
-msgid "0 &lt; P &lt;=100"
-msgstr "0 &lt; P &lt;=100"
+msgid "0 &lt; P &lt; 100"
+msgstr "0 &lt; P &lt; 100"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:339

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


+ 17 - 16
doc/po/it.po

@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2012-06-09 22:05+0300\n"
+"POT-Creation-Date: 2012-08-30 12:50+0300\n"
 "PO-Revision-Date: 2003-04-26 23:26+0100\n"
 "Last-Translator: Traduzione di Eugenia Franzoni <eugenia@linuxcare.com>\n"
 "Language-Team: <debian-l10n-italian@lists.debian.org>\n"
@@ -3961,8 +3961,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:315
-msgid "P &gt; 1000"
-msgstr ""
+msgid "P &gt;= 1000"
+msgstr "P &gt;= 1000"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:316
@@ -3973,8 +3973,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:320
-msgid "990 &lt; P &lt;=1000"
-msgstr ""
+msgid "990 &lt;= P &lt; 1000"
+msgstr "990 &lt;= P &lt; 1000"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:321
@@ -3985,8 +3985,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:326
-msgid "500 &lt; P &lt;=990"
-msgstr ""
+msgid "500 &lt;= P &lt; 990"
+msgstr "500 &lt;= P &lt; 990"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:327
@@ -3997,8 +3997,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:332
-msgid "100 &lt; P &lt;=500"
-msgstr ""
+msgid "100 &lt;= P &lt; 500"
+msgstr "100 &lt;= P &lt; 500"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:333
@@ -4009,8 +4009,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:338
-msgid "0 &lt; P &lt;=100"
-msgstr ""
+msgid "0 &lt; P &lt; 100"
+msgstr "0 &lt; P &lt; 100"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:339
@@ -4022,7 +4022,7 @@ msgstr ""
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:343
 msgid "P &lt; 0"
-msgstr ""
+msgstr "P &lt; 0"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:344
@@ -5301,10 +5301,11 @@ msgstr ""
 #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
 #: apt-ftparchive.1.xml:307
 msgid ""
-"Sets the output Contents file. Defaults to <filename>$(DIST)/$(SECTION)/Contents-$(ARCH)"
-"</filename>. If this setting causes multiple Packages files to map onto a "
-"single Contents file (as is the default)  then <command>apt-ftparchive</"
-"command> will integrate those package files together automatically."
+"Sets the output Contents file. Defaults to <filename>$(DIST)/$(SECTION)/"
+"Contents-$(ARCH)</filename>. If this setting causes multiple Packages files "
+"to map onto a single Contents file (as is the default)  then <command>apt-"
+"ftparchive</command> will integrate those package files together "
+"automatically."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>

+ 11 - 11
doc/po/ja.po

@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.7.25.3\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2012-06-29 14:26+0300\n"
+"POT-Creation-Date: 2012-08-30 22:07+0300\n"
 "PO-Revision-Date: 2012-08-08 07:58+0900\n"
 "Last-Translator: KURASAWA Nozomu <nabetaro@debian.or.jp>\n"
 "Language-Team: Debian Japanese List <debian-japanese@lists.debian.org>\n"
@@ -5494,8 +5494,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:315
-msgid "P &gt; 1000"
-msgstr "P &gt; 1000"
+msgid "P &gt;= 1000"
+msgstr "P &gt;= 1000"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:316
@@ -5507,8 +5507,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:320
-msgid "990 &lt; P &lt;=1000"
-msgstr "990 &lt; P &lt;=1000"
+msgid "990 &lt;= P &lt; 1000"
+msgstr "990 &lt;= P &lt; 1000"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:321
@@ -5521,8 +5521,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:326
-msgid "500 &lt; P &lt;=990"
-msgstr "500 &lt; P &lt;=990"
+msgid "500 &lt;= P &lt; 990"
+msgstr "500 &lt;= P &lt; 990"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:327
@@ -5535,8 +5535,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:332
-msgid "100 &lt; P &lt;=500"
-msgstr "100 &lt; P &lt;=500"
+msgid "100 &lt;= P &lt; 500"
+msgstr "100 &lt;= P &lt; 500"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:333
@@ -5550,8 +5550,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:338
-msgid "0 &lt; P &lt;=100"
-msgstr "0 &lt; P &lt;=100"
+msgid "0 &lt; P &lt; 100"
+msgstr "0 &lt; P &lt; 100"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:339

+ 11 - 11
doc/po/pl.po

@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.9.7.3\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2012-07-28 21:59+0300\n"
+"POT-Creation-Date: 2012-08-30 12:50+0300\n"
 "PO-Revision-Date: 2012-07-28 21:59+0200\n"
 "Last-Translator: Robert Luberda <robert@debian.org>\n"
 "Language-Team: Polish <manpages-pl-list@lists.sourceforge.net>\n"
@@ -5196,8 +5196,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:315
-msgid "P &gt; 1000"
-msgstr "P &gt; 1000"
+msgid "P &gt;= 1000"
+msgstr "P &gt;= 1000"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:316
@@ -5210,8 +5210,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:320
-msgid "990 &lt; P &lt;=1000"
-msgstr "990 &lt; P &lt;= 1000"
+msgid "990 &lt;= P &lt; 1000"
+msgstr "990 &lt;= P &lt; 1000"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:321
@@ -5224,8 +5224,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:326
-msgid "500 &lt; P &lt;=990"
-msgstr "500 &lt; P &lt;= 990"
+msgid "500 &lt;= P &lt; 990"
+msgstr "500 &lt;= P &lt; 990"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:327
@@ -5239,8 +5239,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:332
-msgid "100 &lt; P &lt;=500"
-msgstr "100 &lt; P &lt;= 500"
+msgid "100 &lt;= P &lt; 500"
+msgstr "100 &lt;= P &lt; 500"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:333
@@ -5253,8 +5253,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:338
-msgid "0 &lt; P &lt;=100"
-msgstr "0 &lt; P &lt;= 100"
+msgid "0 &lt; P &lt; 100"
+msgstr "0 &lt; P &lt; 100"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:339

+ 16 - 15
doc/po/pt.po

@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt 0.8.0~pre1\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2012-06-09 22:05+0300\n"
+"POT-Creation-Date: 2012-08-30 12:50+0300\n"
 "PO-Revision-Date: 2010-08-25 23:07+0100\n"
 "Last-Translator: Américo Monteiro <a_monteiro@netcabo.pt>\n"
 "Language-Team: Portuguese <traduz@debianpt.org>\n"
@@ -6118,8 +6118,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:315
-msgid "P &gt; 1000"
-msgstr "P &gt; 1000"
+msgid "P &gt;= 1000"
+msgstr "P &gt;= 1000"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:316
@@ -6132,8 +6132,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:320
-msgid "990 &lt; P &lt;=1000"
-msgstr "990 &lt; P &lt;=1000"
+msgid "990 &lt;= P &lt; 1000"
+msgstr "990 &lt;= P &lt; 1000"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:321
@@ -6146,8 +6146,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:326
-msgid "500 &lt; P &lt;=990"
-msgstr "500 &lt; P &lt;=990"
+msgid "500 &lt;= P &lt; 990"
+msgstr "500 &lt;= P &lt; 990"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:327
@@ -6161,8 +6161,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:332
-msgid "100 &lt; P &lt;=500"
-msgstr "100 &lt; P &lt;=500"
+msgid "100 &lt;= P &lt; 500"
+msgstr "100 &lt;= P &lt; 500"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:333
@@ -6176,8 +6176,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:338
-msgid "0 &lt; P &lt;=100"
-msgstr "0 &lt; P &lt;=100"
+msgid "0 &lt; P &lt; 100"
+msgstr "0 &lt; P &lt; 100"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:339
@@ -8026,10 +8026,11 @@ msgstr ""
 #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
 #: apt-ftparchive.1.xml:307
 msgid ""
-"Sets the output Contents file. Defaults to <filename>$(DIST)/$(SECTION)/Contents-$(ARCH)"
-"</filename>. If this setting causes multiple Packages files to map onto a "
-"single Contents file (as is the default)  then <command>apt-ftparchive</"
-"command> will integrate those package files together automatically."
+"Sets the output Contents file. Defaults to <filename>$(DIST)/$(SECTION)/"
+"Contents-$(ARCH)</filename>. If this setting causes multiple Packages files "
+"to map onto a single Contents file (as is the default)  then <command>apt-"
+"ftparchive</command> will integrate those package files together "
+"automatically."
 msgstr ""
 "Define a saída do ficheiro Contents. A predefinição é <filename>$(DIST)/"
 "Contents-$(ARCH)</filename>. Se esta definição causar múltiplos ficheiros "

+ 16 - 21
doc/po/pt_BR.po

@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: apt\n"
 "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
-"POT-Creation-Date: 2012-06-09 22:05+0300\n"
+"POT-Creation-Date: 2012-08-30 12:50+0300\n"
 "PO-Revision-Date: 2004-09-20 17:02+0000\n"
 "Last-Translator: André Luís Lopes <andrelop@debian.org>\n"
 "Language-Team: <debian-l10n-portuguese@lists.debian.org>\n"
@@ -4171,9 +4171,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:315
-#, fuzzy
-msgid "P &gt; 1000"
-msgstr "P &gt; 1000"
+msgid "P &gt;= 1000"
+msgstr "P &gt;= 1000"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:316
@@ -4187,9 +4186,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:320
-#, fuzzy
-msgid "990 &lt; P &lt;=1000"
-msgstr "990 &lt; P &lt;=1000"
+msgid "990 &lt;= P &lt; 1000"
+msgstr "990 &lt;= P &lt; 1000"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:321
@@ -4203,9 +4201,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:326
-#, fuzzy
-msgid "500 &lt; P &lt;=990"
-msgstr "500 &lt; P &lt;=990"
+msgid "500 &lt;= P &lt; 990"
+msgstr "500 &lt;= P &lt; 990"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:327
@@ -4219,9 +4216,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:332
-#, fuzzy
-msgid "100 &lt; P &lt;=500"
-msgstr "100 &lt; P &lt;=500"
+msgid "100 &lt;= P &lt; 500"
+msgstr "100 &lt;= P &lt; 500"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:333
@@ -4236,9 +4232,8 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:338
-#, fuzzy
-msgid "0 &lt; P &lt;=100"
-msgstr "0 &lt;= P &lt;=100"
+msgid "0 &lt; P &lt; 100"
+msgstr "0 &lt; P &lt; 100"
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><listitem><simpara>
 #: apt_preferences.5.xml:339
@@ -4252,7 +4247,6 @@ msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><para><variablelist><varlistentry><term>
 #: apt_preferences.5.xml:343
-#, fuzzy
 msgid "P &lt; 0"
 msgstr "P &lt; 0"
 
@@ -5767,10 +5761,11 @@ msgstr ""
 #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>
 #: apt-ftparchive.1.xml:307
 msgid ""
-"Sets the output Contents file. Defaults to <filename>$(DIST)/$(SECTION)/Contents-$(ARCH)"
-"</filename>. If this setting causes multiple Packages files to map onto a "
-"single Contents file (as is the default)  then <command>apt-ftparchive</"
-"command> will integrate those package files together automatically."
+"Sets the output Contents file. Defaults to <filename>$(DIST)/$(SECTION)/"
+"Contents-$(ARCH)</filename>. If this setting causes multiple Packages files "
+"to map onto a single Contents file (as is the default)  then <command>apt-"
+"ftparchive</command> will integrate those package files together "
+"automatically."
 msgstr ""
 
 #. type: Content of: <refentry><refsect1><refsect2><variablelist><varlistentry><listitem><para>

+ 18 - 1
test/integration/framework

@@ -91,6 +91,7 @@ runapt() {
 }
 aptconfig() { runapt apt-config $*; }
 aptcache() { runapt apt-cache $*; }
+aptcdrom() { runapt apt-cdrom $*; }
 aptget() { runapt apt-get $*; }
 aptftparchive() { runapt apt-ftparchive $*; }
 aptkey() { runapt apt-key $*; }
@@ -523,11 +524,12 @@ insertinstalledpackage() {
 	local VERSION="$3"
 	local DEPENDENCIES="$4"
 	local PRIORITY="${5:-optional}"
+	local STATUS="${6:-install ok installed}"
 	local FILE='rootdir/var/lib/dpkg/status'
 	local INFO='rootdir/var/lib/dpkg/info'
 	for arch in $(echo "$ARCH" | sed -e 's#,#\n#g' | sed -e "s#^native\$#$(getarchitecture 'native')#"); do
 		echo "Package: $NAME
-Status: install ok installed
+Status: $STATUS
 Priority: $PRIORITY
 Section: other
 Installed-Size: 42
@@ -714,6 +716,21 @@ server.stat-cache-engine = \"disable\"" > lighttpd.conf
 	return 0
 }
 
+changetocdrom() {
+	mkdir -p rootdir/media/cdrom/.disk
+	local CD="$(readlink -f rootdir/media/cdrom)"
+	echo "acquire::cdrom::mount \"${CD}\";" > rootdir/etc/apt/apt.conf.d/00cdrom
+	echo 'acquire::cdrom::autodetect 0;' >> rootdir/etc/apt/apt.conf.d/00cdrom
+	echo -n "$1" > ${CD}/.disk/info
+	if [ ! -d aptarchive/dists ]; then
+		msgdie 'Flat file archive cdroms can not be created currently'
+		return 1
+	fi
+	mv aptarchive/dists $CD
+	ln -s "$(readlink -f ./incoming)" $CD/pool
+	find rootdir/etc/apt/sources.list.d/ -name 'apt-test-*.list' -delete
+}
+
 checkdiff() {
 	local DIFFTEXT="$($(which diff) -u $* | sed -e '/^---/ d' -e '/^+++/ d' -e '/^@@/ d')"
 	if [ -n "$DIFFTEXT" ]; then

+ 104 - 0
test/integration/test-apt-cdrom

@@ -0,0 +1,104 @@
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+setupenvironment
+configarchitecture 'amd64' 'i386'
+
+buildsimplenativepackage 'testing' 'amd64,i386' '0.8.15' 'stable'
+setupaptarchive
+
+changetocdrom 'Debian APT Testdisk 0.8.15'
+
+# -de is not in the Release file, but picked up anyway for compatibility
+cd rootdir/media/cdrom/dists/stable/main/i18n
+sed -e '/^Description-en:/ d' -e '/^ / d' -e '/^$/ d' Translation-en > Translation-de
+echo 'Description-de: automatisch generiertes Testpaket testing=0.8.15/stable
+ Diese Pakete sind nur für das testen von APT gedacht,
+ sie erfüllen keinen Zweck auf einem normalen System…
+' >> Translation-de
+cat Translation-de | gzip > Translation-de.gz
+cat Translation-de | bzip2 > Translation-de.bz2
+cat Translation-de | xz --format=lzma > Translation-de.lzma
+cat Translation-de | xz > Translation-de.xz
+rm Translation-en Translation-de
+cd - > /dev/null
+
+aptcdrom add -m -o quiet=1 > apt-cdrom.log 2>&1
+sed -i -e '/^Using CD-ROM/ d' -e '/gpgv/ d' -e '/^Identifying/ d' -e '/Reading / d' apt-cdrom.log
+testfileequal apt-cdrom.log "Scanning disc for index files..
+Found 2 package indexes, 1 source indexes, 1 translation indexes and 1 signatures
+Found label 'Debian APT Testdisk 0.8.15'
+This disc is called: 
+'Debian APT Testdisk 0.8.15'
+Writing new source list
+Source list entries for this disc are:
+deb cdrom:[Debian APT Testdisk 0.8.15]/ stable main
+deb-src cdrom:[Debian APT Testdisk 0.8.15]/ stable main
+Repeat this process for the rest of the CDs in your set."
+
+testequal 'Reading package lists...
+Building dependency tree...
+The following NEW packages will be installed:
+  testing
+0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
+Inst testing (0.8.15 stable [amd64])
+Conf testing (0.8.15 stable [amd64])' aptget install testing -s
+
+testequal 'Reading package lists...
+Building dependency tree...
+The following NEW packages will be installed:
+  testing:i386
+0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
+Inst testing:i386 (0.8.15 stable [i386])
+Conf testing:i386 (0.8.15 stable [i386])' aptget install testing:i386 -s
+
+# check Idempotence of apt-cdrom (and disabling of Translation dropping)
+aptcdrom add -m -o quiet=1 -o APT::CDROM::DropTranslation=0 > apt-cdrom.log 2>&1
+sed -i -e '/^Using CD-ROM/ d' -e '/gpgv/ d' -e '/^Identifying/ d' -e '/Reading / d' apt-cdrom.log
+testfileequal apt-cdrom.log "Scanning disc for index files..
+Found 2 package indexes, 1 source indexes, 2 translation indexes and 1 signatures
+This disc is called: 
+'Debian APT Testdisk 0.8.15'
+Writing new source list
+Source list entries for this disc are:
+deb cdrom:[Debian APT Testdisk 0.8.15]/ stable main
+deb-src cdrom:[Debian APT Testdisk 0.8.15]/ stable main
+Repeat this process for the rest of the CDs in your set."
+
+# take Translations from previous runs as needed
+aptcdrom add -m -o quiet=1 > apt-cdrom.log 2>&1
+sed -i -e '/^Using CD-ROM/ d' -e '/gpgv/ d' -e '/^Identifying/ d' -e '/Reading / d' apt-cdrom.log
+testfileequal apt-cdrom.log "Scanning disc for index files..
+Found 2 package indexes, 1 source indexes, 2 translation indexes and 1 signatures
+This disc is called: 
+'Debian APT Testdisk 0.8.15'
+Writing new source list
+Source list entries for this disc are:
+deb cdrom:[Debian APT Testdisk 0.8.15]/ stable main
+deb-src cdrom:[Debian APT Testdisk 0.8.15]/ stable main
+Repeat this process for the rest of the CDs in your set."
+msgtest 'Test for the german description translation of' 'testing'
+aptcache show testing -o Acquire::Languages=de | grep -q '^Description-de: ' && msgpass || msgfail
+rm -rf rootdir/var/lib/apt/lists
+mkdir -p rootdir/var/lib/apt/lists/partial
+aptcdrom add -m -o quiet=1 > apt-cdrom.log 2>&1
+sed -i -e '/^Using CD-ROM/ d' -e '/gpgv/ d' -e '/^Identifying/ d' -e '/Reading / d' apt-cdrom.log
+testfileequal apt-cdrom.log "Scanning disc for index files..
+Found 2 package indexes, 1 source indexes, 1 translation indexes and 1 signatures
+This disc is called: 
+'Debian APT Testdisk 0.8.15'
+Writing new source list
+Source list entries for this disc are:
+deb cdrom:[Debian APT Testdisk 0.8.15]/ stable main
+deb-src cdrom:[Debian APT Testdisk 0.8.15]/ stable main
+Repeat this process for the rest of the CDs in your set."
+msgtest 'Test for the english description translation of' 'testing'
+aptcache show testing -o Acquire::Languages=en | grep -q '^Description-en: ' && msgpass || msgfail
+
+
+# check that we really can install from a 'cdrom'
+testdpkgnotinstalled testing
+aptget install testing -y > /dev/null 2>&1
+testdpkginstalled testing

+ 121 - 0
test/integration/test-unpack-different-version-unpacked

@@ -0,0 +1,121 @@
+#!/bin/sh
+set -e
+
+TESTDIR=$(readlink -f $(dirname $0))
+. $TESTDIR/framework
+setupenvironment
+configarchitecture 'amd64' 'i386'
+
+insertpackage 'unstable' 'libqtcore4' 'i386,amd64' '2' 'Multi-Arch: same'
+setupaptarchive
+
+DPKGSTATUS='rootdir/var/lib/dpkg/status'
+cp $DPKGSTATUS dpkg.status
+
+cleanstatus() {
+	cp dpkg.status $DPKGSTATUS
+	rm rootdir/var/cache/apt/*.bin
+}
+
+#FIXME: the reported version is wrong, it should be 1, not 2
+insertinstalledpackage 'libqtcore4' 'i386,amd64' '1' 'Multi-Arch: same' '' 'install ok unpacked'
+testequal 'Reading package lists...
+Building dependency tree...
+0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
+2 not fully installed or removed.
+Conf libqtcore4 (2 unstable [amd64])
+Conf libqtcore4:i386 (2 unstable [i386])' aptget install -s -f
+
+cleanstatus
+insertinstalledpackage 'libqtcore4' 'amd64' '2' 'Multi-Arch: same' '' 'install ok unpacked'
+insertinstalledpackage 'libqtcore4' 'i386' '1' 'Multi-Arch: same' '' 'install ok unpacked'
+testequal 'Reading package lists...
+Building dependency tree...
+Correcting dependencies... Done
+The following extra packages will be installed:
+  libqtcore4:i386
+The following packages will be upgraded:
+  libqtcore4:i386
+1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
+2 not fully installed or removed.
+Inst libqtcore4:i386 [1] (2 unstable [i386])
+Conf libqtcore4:i386 (2 unstable [i386])
+Conf libqtcore4 (2 unstable [amd64])' aptget install -s -f
+
+cleanstatus
+insertinstalledpackage 'libqtcore4' 'i386' '2' 'Multi-Arch: same' '' 'install ok unpacked'
+insertinstalledpackage 'libqtcore4' 'amd64' '1' 'Multi-Arch: same' '' 'install ok unpacked'
+testequal 'Reading package lists...
+Building dependency tree...
+Correcting dependencies... Done
+The following extra packages will be installed:
+  libqtcore4
+The following packages will be upgraded:
+  libqtcore4
+1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
+2 not fully installed or removed.
+Inst libqtcore4 [1] (2 unstable [amd64])
+Conf libqtcore4 (2 unstable [amd64])
+Conf libqtcore4:i386 (2 unstable [i386])' aptget install -s -f
+
+cleanstatus
+insertinstalledpackage 'libqtcore4' 'amd64' '2' 'Multi-Arch: same' '' 'install ok unpacked'
+insertinstalledpackage 'libqtcore4' 'i386' '1' 'Multi-Arch: same'
+testequal 'Reading package lists...
+Building dependency tree...
+Correcting dependencies... Done
+The following extra packages will be installed:
+  libqtcore4:i386
+The following packages will be upgraded:
+  libqtcore4:i386
+1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
+1 not fully installed or removed.
+Inst libqtcore4:i386 [1] (2 unstable [i386])
+Conf libqtcore4:i386 (2 unstable [i386])
+Conf libqtcore4 (2 unstable [amd64])' aptget install -s -f
+
+cleanstatus
+insertinstalledpackage 'libqtcore4' 'i386' '2' 'Multi-Arch: same' '' 'install ok unpacked'
+insertinstalledpackage 'libqtcore4' 'amd64' '1' 'Multi-Arch: same'
+testequal 'Reading package lists...
+Building dependency tree...
+Correcting dependencies... Done
+The following extra packages will be installed:
+  libqtcore4
+The following packages will be upgraded:
+  libqtcore4
+1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
+1 not fully installed or removed.
+Inst libqtcore4 [1] (2 unstable [amd64])
+Conf libqtcore4 (2 unstable [amd64])
+Conf libqtcore4:i386 (2 unstable [i386])' aptget install -s -f
+
+cleanstatus
+insertinstalledpackage 'libqtcore4' 'amd64' '2' 'Multi-Arch: same'
+insertinstalledpackage 'libqtcore4' 'i386' '1' 'Multi-Arch: same' '' 'install ok unpacked'
+testequal 'Reading package lists...
+Building dependency tree...
+Correcting dependencies... Done
+The following extra packages will be installed:
+  libqtcore4:i386
+The following packages will be upgraded:
+  libqtcore4:i386
+1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
+1 not fully installed or removed.
+Inst libqtcore4:i386 [1] (2 unstable [i386])
+Conf libqtcore4:i386 (2 unstable [i386])' aptget install -s -f
+
+cleanstatus
+insertinstalledpackage 'libqtcore4' 'i386' '2' 'Multi-Arch: same'
+insertinstalledpackage 'libqtcore4' 'amd64' '1' 'Multi-Arch: same' '' 'install ok unpacked'
+testequal 'Reading package lists...
+Building dependency tree...
+Correcting dependencies... Done
+The following extra packages will be installed:
+  libqtcore4
+The following packages will be upgraded:
+  libqtcore4
+1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
+1 not fully installed or removed.
+Inst libqtcore4 [1] (2 unstable [amd64])
+Conf libqtcore4 (2 unstable [amd64])' aptget install -s -f

+ 86 - 0
test/libapt/cdromreducesourcelist_test.cc

@@ -0,0 +1,86 @@
+#include <apt-pkg/cdrom.h>
+#include <apt-pkg/error.h>
+
+#include <algorithm>
+#include <string>
+#include <vector>
+
+#include "assert.h"
+
+class Cdrom : public pkgCdrom {
+public:
+   std::vector<std::string> ReduceSourcelist(std::string CD,std::vector<std::string> List) {
+      pkgCdrom::ReduceSourcelist(CD, List);
+      return List;
+   }
+};
+
+int main(int argc, char const *argv[]) {
+   Cdrom cd;
+   std::vector<std::string> List;
+   std::string CD("/media/cdrom/");
+
+   std::vector<std::string> R = cd.ReduceSourcelist(CD, List);
+   equals(R.empty(), true);
+
+   List.push_back(" wheezy main");
+   R = cd.ReduceSourcelist(CD, List);
+   equals(R.size(), 1);
+   equals(R[0], " wheezy main");
+
+   List.push_back(" wheezy main");
+   R = cd.ReduceSourcelist(CD, List);
+   equals(R.size(), 1);
+   equals(R[0], " wheezy main");
+
+   List.push_back(" wheezy contrib");
+   R = cd.ReduceSourcelist(CD, List);
+   equals(R.size(), 1);
+   equals(R[0], " wheezy contrib main");
+
+   List.push_back(" wheezy-update contrib");
+   R = cd.ReduceSourcelist(CD, List);
+   equals(R.size(), 2);
+   equals(R[0], " wheezy contrib main");
+   equals(R[1], " wheezy-update contrib");
+
+   List.push_back(" wheezy-update contrib");
+   R = cd.ReduceSourcelist(CD, List);
+   equals(R.size(), 2);
+   equals(R[0], " wheezy contrib main");
+   equals(R[1], " wheezy-update contrib");
+
+   List.push_back(" wheezy-update non-free");
+   R = cd.ReduceSourcelist(CD, List);
+   equals(R.size(), 2);
+   equals(R[0], " wheezy contrib main");
+   equals(R[1], " wheezy-update contrib non-free");
+
+   List.push_back(" wheezy-update main");
+   R = cd.ReduceSourcelist(CD, List);
+   equals(R.size(), 2);
+   equals(R[0], " wheezy contrib main");
+   equals(R[1], " wheezy-update contrib main non-free");
+
+   List.push_back(" wheezy non-free");
+   R = cd.ReduceSourcelist(CD, List);
+   equals(R.size(), 2);
+   equals(R[0], " wheezy contrib main non-free");
+   equals(R[1], " wheezy-update contrib main non-free");
+
+   List.push_back(" sid main");
+   R = cd.ReduceSourcelist(CD, List);
+   equals(R.size(), 3);
+   equals(R[0], " sid main");
+   equals(R[1], " wheezy contrib main non-free");
+   equals(R[2], " wheezy-update contrib main non-free");
+
+   List.push_back(" sid main-reduce");
+   R = cd.ReduceSourcelist(CD, List);
+   equals(R.size(), 3);
+   equals(R[0], " sid main main-reduce");
+   equals(R[1], " wheezy contrib main non-free");
+   equals(R[2], " wheezy-update contrib main non-free");
+
+   return 0;
+}

+ 86 - 0
test/libapt/indexcopytosourcelist_test.cc

@@ -0,0 +1,86 @@
+#include <apt-pkg/configuration.h>
+#include <apt-pkg/aptconfiguration.h>
+#include <apt-pkg/indexcopy.h>
+
+#include <string>
+
+#include "assert.h"
+
+class NoCopy : public IndexCopy {
+public:
+   std::string ConvertToSourceList(std::string CD,std::string Path) {
+      IndexCopy::ConvertToSourceList(CD, Path);
+      return Path;
+   }
+   bool GetFile(std::string &Filename,unsigned long long &Size) { return false; }
+   bool RewriteEntry(FILE *Target,std::string File) { return false; }
+   const char *GetFileName() { return NULL; }
+   const char *Type() { return NULL; }
+
+};
+
+int main(int argc, char const *argv[]) {
+   NoCopy ic;
+   std::string const CD("/media/cdrom/");
+
+   char const * Releases[] = { "unstable", "wheezy-updates", NULL };
+   char const * Components[] = { "main", "non-free", NULL };
+
+   for (char const ** Release = Releases; *Release != NULL; ++Release) {
+      for (char const ** Component = Components; *Component != NULL; ++Component) {
+	 std::string const Path = std::string("dists/") + *Release + "/" + *Component + "/";
+	 std::string const Binary = Path + "binary-";
+	 std::string const A = Binary + "armel/";
+	 std::string const B = Binary + "mips/";
+	 std::string const C = Binary + "kfreebsd-mips/";
+	 std::string const S = Path + "source/";
+	 std::string const List = std::string(*Release) + " " + *Component;
+
+	 _config->Clear("APT");
+	 APT::Configuration::getArchitectures(false);
+	 equals(ic.ConvertToSourceList("/media/cdrom/", CD + A), A);
+	 equals(ic.ConvertToSourceList("/media/cdrom/", CD + B), B);
+	 equals(ic.ConvertToSourceList("/media/cdrom/", CD + C), C);
+	 equals(ic.ConvertToSourceList("/media/cdrom/", CD + S), List);
+
+	 _config->Clear("APT");
+	 _config->Set("APT::Architecture", "mips");
+	 _config->Set("APT::Architectures::", "mips");
+	 APT::Configuration::getArchitectures(false);
+	 equals(ic.ConvertToSourceList("/media/cdrom/", CD + A), A);
+	 equals(ic.ConvertToSourceList("/media/cdrom/", CD + B), List);
+	 equals(ic.ConvertToSourceList("/media/cdrom/", CD + C), C);
+	 equals(ic.ConvertToSourceList("/media/cdrom/", CD + S), List);
+
+	 _config->Clear("APT");
+	 _config->Set("APT::Architecture", "kfreebsd-mips");
+	 _config->Set("APT::Architectures::", "kfreebsd-mips");
+	 APT::Configuration::getArchitectures(false);
+	 equals(ic.ConvertToSourceList("/media/cdrom/", CD + A), A);
+	 equals(ic.ConvertToSourceList("/media/cdrom/", CD + B), B);
+	 equals(ic.ConvertToSourceList("/media/cdrom/", CD + C), List);
+	 equals(ic.ConvertToSourceList("/media/cdrom/", CD + S), List);
+
+	 _config->Clear("APT");
+	 _config->Set("APT::Architecture", "armel");
+	 _config->Set("APT::Architectures::", "armel");
+	 APT::Configuration::getArchitectures(false);
+	 equals(ic.ConvertToSourceList("/media/cdrom/", CD + A), List);
+	 equals(ic.ConvertToSourceList("/media/cdrom/", CD + B), B);
+	 equals(ic.ConvertToSourceList("/media/cdrom/", CD + C), C);
+	 equals(ic.ConvertToSourceList("/media/cdrom/", CD + S), List);
+
+	 _config->Clear("APT");
+	 _config->Set("APT::Architecture", "armel");
+	 _config->Set("APT::Architectures::", "armel");
+	 _config->Set("APT::Architectures::", "mips");
+	 APT::Configuration::getArchitectures(false);
+	 equals(ic.ConvertToSourceList("/media/cdrom/", CD + A), List);
+	 equals(ic.ConvertToSourceList("/media/cdrom/", CD + B), List);
+	 equals(ic.ConvertToSourceList("/media/cdrom/", CD + C), C);
+	 equals(ic.ConvertToSourceList("/media/cdrom/", CD + S), List);
+      }
+   }
+
+   return 0;
+}

+ 12 - 0
test/libapt/makefile

@@ -86,3 +86,15 @@ PROGRAM = CdromFindPackages${BASENAME}
 SLIBS = -lapt-pkg
 SOURCE = cdromfindpackages_test.cc
 include $(PROGRAM_H)
+
+# test cdroms index reduction for source.list
+PROGRAM = CdromReduceSourceList${BASENAME}
+SLIBS = -lapt-pkg
+SOURCE = cdromreducesourcelist_test.cc
+include $(PROGRAM_H)
+
+# text IndexCopy::ConvertToSourceList
+PROGRAM = IndexCopyToSourceList${BASENAME}
+SLIBS = -lapt-pkg
+SOURCE = indexcopytosourcelist_test.cc
+include $(PROGRAM_H)