--# Translation of apt-doc to German
--# Copyright (C) 1997, 1998, 1999 Jason Gunthorpe and others.
--# This file is distributed under the same license as the apt-doc package.
- # Chris Leick <c.leick@vollbio.de>, 2009-2012.
-# Chris Leick <c.leick@vollbio.de>, 2009-2014.
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR Free Software Foundation, Inc.
++# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
++#, fuzzy
msgid ""
msgstr ""
- "Project-Id-Version: apt-doc 0.9.7\n"
-"Project-Id-Version: apt-doc 0.9.14.2\n"
--"Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
- "POT-Creation-Date: 2014-01-25 22:21+0100\n"
- "PO-Revision-Date: 2012-06-25 22:49+0100\n"
++"Project-Id-Version: PACKAGE VERSION\n"
++"PO-Revision-Date: 2014-01-26 08:14+0100\n"
++"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
++"Language-Team: LANGUAGE <LL@li.org>\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=CHARSET\n"
++"Content-Transfer-Encoding: 8bit\n"
++
++#~ # Translation of apt-doc to German
++#~ # Copyright (C) 1997, 1998, 1999 Jason Gunthorpe and others.
++#~ # This file is distributed under the same license as the apt-doc package.
++#~ # Chris Leick <c.leick@vollbio.de>, 2009-2014.
++#~ #
++#~ msgid ""
++#~ msgstr ""
++#~ "Project-Id-Version: apt-doc 0.9.14.2\n"
++#~ "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n"
+ "POT-Creation-Date: 2014-01-24 12:29+0100\n"
+ "PO-Revision-Date: 2014-01-21 20:59+0100\n"
"Last-Translator: Chris Leick <c.leick@vollbio.de>\n"
"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
"Language: de\n"
"will never remove packages, only allow adding new ones. Configuration Item: "
"<literal>APT::Get::Upgrade-Allow-New</literal>."
msgstr ""
+ "erlaubt das Installieren neuer Pakete, wenn es zusammen mit "
+ "<literal>upgrade</literal> benutzt wird. Dies ist nützlich, falls das "
+ "Aktualisieren eines installierten Pakets zur Installation neue "
+ "Abhängigkeiten hat. Anstatt das Paket zurückzuhalten, wird <literal>upgrade</"
+ "literal> ein Upgrade des Pakets durchführen und die neuen Abhängigkeiten "
+ "installieren. Beachten Sie, dass <literal>upgrade</literal> mit dieser "
+ "Option niemals Pakete entfernen, sondern nur das Hinzufügen neuer gestatten "
+ "wird.Konfigurationselement: <literal>APT::Get::Upgrade-Allow-New</literal>."
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
#: apt-get.8.xml:407
"fragen. Dies ist für Werkzeuge wie pbuilder nützlich. Konfigurationselement: "
"<literal>APT::Get::AllowUnauthenticated</literal>."
+ # FIXME s/Item/Items/
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
#: apt-get.8.xml:527
msgid ""
"Item: <literal>DpkgPM::Progress</literal> and <literal>Dpkg::Progress-Fancy</"
"literal>."
msgstr ""
+ "zeigt benutzerfreundliche Fortschrittsinformationen im Terminalfenster, wenn "
+ "Pakete installiert beziehungsweise entfernt werden oder ein Upgrade "
+ "durchgeführt wird. Informationen über eine maschinell auswertbare Version "
+ "dieser Daten finden Sie in README.progress-reporting im Apt-doc-Verzeichnis. "
+ "Konfigurationselemente: <literal>DpkgPM::Progress</literal> und "
+ "<literal>Dpkg::Progress-Fancy</literal>."
#. type: Content of: <refentry><refsect1><title>
#: apt-get.8.xml:540 apt-cache.8.xml:345 apt-key.8.xml:176 apt-mark.8.xml:127
#. type: Content of: <refentry><refsect1><title>
#: apt-get.8.xml:550 apt-cache.8.xml:352 apt-key.8.xml:197 apt-mark.8.xml:133
#: apt-secure.8.xml:193 apt-cdrom.8.xml:154 apt-config.8.xml:111
-#: apt.conf.5.xml:1206 apt_preferences.5.xml:707 sources.list.5.xml:258
+#: apt.conf.5.xml:1206 apt_preferences.5.xml:707 sources.list.5.xml:280
#: apt-extracttemplates.1.xml:72 apt-sortpkgs.1.xml:65
#: apt-ftparchive.1.xml:609
msgid "See Also"
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
#: apt-cdrom.8.xml:87
- #, fuzzy
- #| msgid ""
- #| "Mount point; specify the location to mount the CD-ROM. This mount point "
- #| "must be listed in <filename>/etc/fstab</filename> and properly "
- #| "configured. Configuration Item: <literal>Acquire::cdrom::mount</literal>."
msgid ""
"Do not try to auto-detect the CD-ROM path. Usually combined with the "
"<option>--cdrom</option> option. Configuration Item: <literal>Acquire::"
"cdrom::AutoDetect</literal>."
msgstr ""
- "Einhängepunkt; gibt den Ort an, an dem die CD-ROM eingehängt wird. Dieser "
- "Einhängepunkt muss in <filename>/etc/fstab</filename> eingetragen und "
- "angemessen konfiguriert sein. Konfigurationselement: <literal>Acquire::"
- "cdrom::mount</literal>."
+ "versucht nicht, den CD-ROM-Pfad automatisch zu bestimmen. Dies wird "
+ "üblicherweise mit der Option <option>--cdrom</option> kombiniert. "
+ "Konfigurationselement: <literal>Acquire::cdrom::AutoDetect</literal>."
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
#: apt-cdrom.8.xml:95
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
#: apt.conf.5.xml:391
- #, fuzzy
- #| msgid ""
- #| "The used bandwidth can be limited with <literal>Acquire::http::Dl-Limit</"
- #| "literal> which accepts integer values in kilobytes. The default value is "
- #| "0 which deactivates the limit and tries to use all available bandwidth "
- #| "(note that this option implicitly disables downloading from multiple "
- #| "servers at the same time.)"
msgid ""
"The used bandwidth can be limited with <literal>Acquire::http::Dl-Limit</"
"literal> which accepts integer values in kilobytes per second. The default "
"multiple servers at the same time."
msgstr ""
"Die benutzte Bandbreite kann durch <literal>Acquire::http::Dl-Limit</"
- "literal> eingeschränkt werden, was Ganzzahlwerte in Kilobyte akzeptiert. Der "
- "Vorgabewert ist 0, was die Beschränkung ausschaltet und versucht, sämtliche "
- "verfügbare Bandbreite zu benutzen. (Beachten Sie, dass diese Optionen "
- "implizit das Herunterladen von mehreren Servern zur gleichen Zeit "
- "deaktiviert.)"
+ "literal> eingeschränkt werden, was Ganzzahlwerte in Kilobyte pro Sekunde "
+ "akzeptiert. Der Vorgabewert ist 0, was die Beschränkung ausschaltet und "
+ "versucht, sämtliche verfügbare Bandbreite zu benutzen. Beachten Sie, dass "
+ "diese Optionen implizit das Herunterladen von mehreren Servern zur gleichen "
+ "Zeit deaktiviert."
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
#: apt.conf.5.xml:398
"takes precedence over the legacy option name <literal>ProxyAutoDetect</"
"literal>."
msgstr ""
+ "<literal>Acquire::http::Proxy-Auto-Detect</literal> kann benutzt werden, um "
+ "einen externen Befehl zum Auffinden des HTTP-Proxys anzugeben, der benutzt "
+ "werden soll. APT erwartet den Befehl zum Ausgeben auf der Standardausgabe "
+ "imStil <literal>http://proxy:port/</literal>. Dies wird das typische "
+ "<literal>Acquire::http::Proxy</literal> außer Kraft setzen, aber keine "
+ "spezielle per <literal>Acquire::http::Proxy::$HOST</literal> gesetzte Proxy-"
+ "Rechnerkonfiguration. Eine Beispielimplementierung, die Avahi benutzt, "
+ "finden Sie im Paket &squid-deb-proxy-client;. Diese Option hat Vorrang vor "
+ "dem veralteten Optionsnamen <literal>ProxyAutoDetect</literal>."
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
#: apt.conf.5.xml:420
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
#: apt.conf.5.xml:576
msgid "When downloading, force to use only the IPv4 protocol."
- msgstr ""
+ msgstr "Beim Herunterladen wird die Verwendung des IPv4-Protokolls erzwungen."
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
#: apt.conf.5.xml:582
msgid "When downloading, force to use only the IPv6 protocol."
- msgstr ""
+ msgstr "Beim Herunterladen wird die Verwendung des IPv6-Protokolls erzwungen."
#. type: Content of: <refentry><refsect1><title>
#: apt.conf.5.xml:589
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
#: apt.conf.5.xml:703
- #, fuzzy
- #| msgid ""
- #| "This is a list of shell commands to run before invoking &dpkg;. Like "
- #| "<literal>options</literal> this must be specified in list notation. The "
- #| "commands are invoked in order using <filename>/bin/sh</filename>; should "
- #| "any fail APT will abort. APT will pass the filenames of all .deb files it "
- #| "is going to install to the commands, one per line on standard input."
msgid ""
"This is a list of shell commands to run before invoking &dpkg;. Like "
"<literal>options</literal> this must be specified in list notation. The "
"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."
+ "die es installieren wird, einen pro Zeile, an den angeforderten "
+ "standardmäßig auf die Standardeingabe verweisenden Dateideskriptor, "
+ "übergeben."
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
#: apt.conf.5.xml:710
- #, fuzzy
- #| msgid ""
- #| "Version 2 of this protocol dumps more information, including the protocol "
- #| "version, the APT configuration space and the packages, files and versions "
- #| "being changed. Version 2 is enabled by setting <literal>DPkg::Tools::"
- #| "options::cmd::Version</literal> to 2. <literal>cmd</literal> is a command "
- #| "given to <literal>Pre-Install-Pkgs</literal>."
msgid ""
"Version 2 of this protocol dumps more information, including the protocol "
"version, the APT configuration space and the packages, files and versions "
msgstr ""
"Version 2 dieses Protokolls gibt mehr Informationen aus, einschließlich der "
"Protokollversion, dem APT-Konfigurationsraum und den Paketen, Dateien und "
- "den Versionen, die geändert werden. Version 2 wird durch Setzen von "
- "<literal>DPkg::Tools::options::cmd::Version</literal> auf 2 eingeschaltet. "
- "<literal>cmd</literal> ist ein Befehl, der an <literal>Pre-Install-Pkgs</"
- "literal> gegeben wird."
+ "den Versionen, die geändert werden. Version 3 fügt jeder ausgegebenen "
+ "Version die Architektur und den <literal>MultiArch</literal>-Schalter hinzu."
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
#: apt.conf.5.xml:715
"the requested version it will send the information in the highest version it "
"has support for instead."
msgstr ""
+ "Die Protokollversion, die für den Befehl <literal><replaceable>Befehl</"
+ "replaceable></literal> benutzt werden soll, kann durch entsprechendes Setzen "
+ "von <literal>DPkg::Tools::options::<replaceable>Befehl</replaceable>::"
+ "Version</literal> ausgewählt werden, Voreinstellung ist Version 1. Falls APT "
+ "die angefragte Version nicht unterstützt, wird es stattdessen die "
+ "Informationen in der höchsten Version senden, für die es Unterstützung "
+ "bietet."
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
#: apt.conf.5.xml:722
"looking for the environment variable <envar>APT_HOOK_INFO_FD</envar> which "
"contains the number of the used file descriptor as a confirmation."
msgstr ""
+ "Der Dateideskriptor, der zum Senden der Informationen benutzt wird, kann mit "
+ "<literal>DPkg::Tools::options::<replaceable>Befehl</replaceable>::InfoFD</"
+ "literal> abgefragt werden. Er ist standardmäßig <literal>0</literal> für die "
+ "Standardeingabe und seit Version 0.9.11 verfügbar. Unterstützung für die "
+ "Option können Sie finden, indem Sie in die Umgebungsvariable "
+ "<envar>APT_HOOK_INFO_FD</envar> schauen. Sie enthält die Nummer des "
+ "verwendeten Dateideskriptors als eine Bestätigung."
#. type: Content of: <refentry><refsect1><variablelist><varlistentry><listitem><para>
#: apt.conf.5.xml:732
"filename> gelesenen Anbieter aus."
#. type: Content of: <refentry><refsect1><title>
-#: apt.conf.5.xml:1194 apt_preferences.5.xml:547 sources.list.5.xml:217
+#: apt.conf.5.xml:1194 apt_preferences.5.xml:547 sources.list.5.xml:239
#: apt-ftparchive.1.xml:598
msgid "Examples"
msgstr "Beispiele"
"benötigt, um Quellindizes herunterzuladen."
#. type: Content of: <refentry><refsect1><para>
-#: sources.list.5.xml:80
+#: sources.list.5.xml:79
msgid ""
"The format for a <filename>sources.list</filename> entry using the "
"<literal>deb</literal> and <literal>deb-src</literal> types is:"
"<literal>deb</literal>- und <literal>deb-src</literal>-Typen benutzt, ist:"
#. type: Content of: <refentry><refsect1><literallayout>
-#: sources.list.5.xml:83
-#, no-wrap
-msgid "deb [ options ] uri distribution [component1] [component2] [...]"
+#: sources.list.5.xml:82
+#, fuzzy, no-wrap
+#| msgid "deb [ options ] uri distribution [component1] [component2] [...]"
+msgid "deb [ options ] uri suite [component1] [component2] [...]"
msgstr "deb [ Optionen ] URI Distribution [Komponente1] [Komponente2] […]"
+#. type: Content of: <refentry><refsect1><para><literallayout>
+#: sources.list.5.xml:86
+#, no-wrap
+msgid ""
+" Types: deb deb-src\n"
+" URIs: http://example.com\n"
+" Suites: stable testing\n"
+" Sections: component1 component2\n"
+" Description: short\n"
+" long long long\n"
+" [option1]: [option1-value]\n"
+"\n"
+" Types: deb\n"
+" URIs: http://another.example.com\n"
+" Suites: experimental\n"
+" Sections: component1 component2\n"
+" Enabled: no\n"
+" Description: short\n"
+" long long long\n"
+" [option1]: [option1-value]\n"
+" "
+msgstr ""
+
+#. type: Content of: <refentry><refsect1><para>
+#: sources.list.5.xml:84
+msgid ""
+"Alternatively a rfc822 style format is also supported: <placeholder type="
+"\"literallayout\" id=\"0\"/>"
+msgstr ""
+
#. type: Content of: <refentry><refsect1><para>
-#: sources.list.5.xml:85
+#: sources.list.5.xml:105
+#, fuzzy
+#| msgid ""
+#| "The URI for the <literal>deb</literal> type must specify the base of the "
+#| "Debian distribution, from which APT will find the information it needs. "
+#| "<literal>distribution</literal> can specify an exact path, in which case "
+#| "the components must be omitted and <literal>distribution</literal> must "
+#| "end with a slash (<literal>/</literal>). This is useful for the case when "
+#| "only a particular sub-section of the archive denoted by the URI is of "
+#| "interest. If <literal>distribution</literal> does not specify an exact "
+#| "path, at least one <literal>component</literal> must be present."
msgid ""
"The URI for the <literal>deb</literal> type must specify the base of the "
"Debian distribution, from which APT will find the information it needs. "
-"<literal>distribution</literal> can specify an exact path, in which case the "
-"components must be omitted and <literal>distribution</literal> must end with "
-"a slash (<literal>/</literal>). This is useful for the case when only a "
+"<literal>suite</literal> can specify an exact path, in which case the "
+"components must be omitted and <literal>suite</literal> must end with a "
+"slash (<literal>/</literal>). This is useful for the case when only a "
"particular sub-section of the archive denoted by the URI is of interest. If "
-"<literal>distribution</literal> does not specify an exact path, at least one "
+"<literal>suite</literal> does not specify an exact path, at least one "
"<literal>component</literal> must be present."
msgstr ""
"Die URI für den <literal>deb</literal>-Typ muss die Basis der Debian-"
"angegeben sein."
#. type: Content of: <refentry><refsect1><para>
-#: sources.list.5.xml:94
-msgid ""
-"<literal>distribution</literal> may also contain a variable, <literal>"
-"$(ARCH)</literal> which expands to the Debian architecture (such as "
-"<literal>amd64</literal> or <literal>armel</literal>) used on the system. "
-"This permits architecture-independent <filename>sources.list</filename> "
-"files to be used. In general this is only of interest when specifying an "
-"exact path, <literal>APT</literal> will automatically generate a URI with "
-"the current architecture otherwise."
+#: sources.list.5.xml:114
+#, fuzzy
+#| msgid ""
+#| "<literal>distribution</literal> may also contain a variable, <literal>"
+#| "$(ARCH)</literal> which expands to the Debian architecture (such as "
+#| "<literal>amd64</literal> or <literal>armel</literal>) used on the system. "
+#| "This permits architecture-independent <filename>sources.list</filename> "
+#| "files to be used. In general this is only of interest when specifying an "
+#| "exact path, <literal>APT</literal> will automatically generate a URI with "
+#| "the current architecture otherwise."
+msgid ""
+"<literal>suite</literal> may also contain a variable, <literal>$(ARCH)</"
+"literal> which expands to the Debian architecture (such as <literal>amd64</"
+"literal> or <literal>armel</literal>) used on the system. This permits "
+"architecture-independent <filename>sources.list</filename> files to be used. "
+"In general this is only of interest when specifying an exact path, "
+"<literal>APT</literal> will automatically generate a URI with the current "
+"architecture otherwise."
msgstr ""
"<literal>distribution</literal> könnte außerdem eine Variable, <literal>"
"$(ARCH)</literal>, enthalten, die zur Debian-Architektur (wie "
"Architektur generieren."
#. type: Content of: <refentry><refsect1><para>
-#: sources.list.5.xml:102
-msgid ""
-"Since only one distribution can be specified per line it may be necessary to "
-"have multiple lines for the same URI, if a subset of all available "
-"distributions or components at that location is desired. APT will sort the "
-"URI list after it has generated a complete set internally, and will collapse "
-"multiple references to the same Internet host, for instance, into a single "
-"connection, so that it does not inefficiently establish an FTP connection, "
-"close it, do something else, and then re-establish a connection to that same "
-"host. This feature is useful for accessing busy FTP sites with limits on the "
-"number of simultaneous anonymous users. APT also parallelizes connections to "
-"different hosts to more effectively deal with sites with low bandwidth."
+#: sources.list.5.xml:122
+#, fuzzy
+#| msgid ""
+#| "Since only one distribution can be specified per line it may be necessary "
+#| "to have multiple lines for the same URI, if a subset of all available "
+#| "distributions or components at that location is desired. APT will sort "
+#| "the URI list after it has generated a complete set internally, and will "
+#| "collapse multiple references to the same Internet host, for instance, "
+#| "into a single connection, so that it does not inefficiently establish an "
+#| "FTP connection, close it, do something else, and then re-establish a "
+#| "connection to that same host. This feature is useful for accessing busy "
+#| "FTP sites with limits on the number of simultaneous anonymous users. APT "
+#| "also parallelizes connections to different hosts to more effectively deal "
+#| "with sites with low bandwidth."
+msgid ""
+"In the traditional style sources.list format since only one distribution can "
+"be specified per line it may be necessary to have multiple lines for the "
+"same URI, if a subset of all available distributions or components at that "
+"location is desired. APT will sort the URI list after it has generated a "
+"complete set internally, and will collapse multiple references to the same "
+"Internet host, for instance, into a single connection, so that it does not "
+"inefficiently establish an FTP connection, close it, do something else, and "
+"then re-establish a connection to that same host. This feature is useful for "
+"accessing busy FTP sites with limits on the number of simultaneous anonymous "
+"users. APT also parallelizes connections to different hosts to more "
+"effectively deal with sites with low bandwidth."
msgstr ""
"Da pro Zeile nur eine Distribution angegeben werden kann, könnte es nötig "
"sein, mehrere Zeilen für die gleiche URI zu haben, falls eine Untermenge "
"niedriger Bandbreite hauszuhalten."
#. type: Content of: <refentry><refsect1><para>
-#: sources.list.5.xml:114
+#: sources.list.5.xml:136
msgid ""
"<literal>options</literal> is always optional and needs to be surrounded by "
"square brackets. It can consist of multiple settings in the form "
"stillschweigend ignoriert werden."
#. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para>
-#: sources.list.5.xml:120
+#: sources.list.5.xml:142
msgid ""
"<literal>arch=<replaceable>arch1</replaceable>,<replaceable>arch2</"
"replaceable>,…</literal> can be used to specify for which architectures "
"heruntergeladen."
#. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para>
- #: sources.list.5.xml:146
- #, fuzzy
- #| msgid ""
- #| "<literal>arch=<replaceable>arch1</replaceable>,<replaceable>arch2</"
- #| "replaceable>,…</literal> can be used to specify for which architectures "
- #| "information should be downloaded. If this option is not set all "
- #| "architectures defined by the <literal>APT::Architectures</literal> option "
- #| "will be downloaded."
+ #: sources.list.5.xml:124
msgid ""
"<literal>arch+=<replaceable>arch1</replaceable>,<replaceable>arch2</"
"replaceable>,…</literal> and <literal>arch-=<replaceable>arch1</replaceable>,"
"<replaceable>arch2</replaceable>,…</literal> which can be used to add/remove "
"architectures from the set which will be downloaded."
msgstr ""
- "<literal>arch=<replaceable>Architektur1</replaceable>,"
- "<replaceable>Architektur2</replaceable>, …</literal> kann benutzt werden, um "
- "anzugeben, für welche Architekturen Paketinformationen heruntergeladen "
- "werden sollen. Falls diese Option nicht gesetzt ist, werden alle durch die "
- "Option <literal>APT::Architectures</literal> definierten Architekturen "
- "heruntergeladen."
+ "<literal>arch+=<replaceable>Architektur1</replaceable>,"
+ "<replaceable>Architektur2</replaceable>, …</literal> und <literal>arch-"
+ "=<replaceable>Architektur1</replaceable>,<replaceable>Architektur2</"
+ "replaceable>, …</literal>, die benutzt werden können, um der "
+ "Zusammenstellung, die heruntergeladen werden soll, Architekturen "
+ "hinzuzufügen oder zu entfernen."
#. type: Content of: <refentry><refsect1><para><itemizedlist><listitem><para>
-#: sources.list.5.xml:127
+#: sources.list.5.xml:149
msgid ""
"<literal>trusted=yes</literal> can be set to indicate that packages from "
"this source are always authenticated even if the <filename>Release</"
"korrekt authentifizierte Quellen als nicht authentifiziert."
#. type: Content of: <refentry><refsect1><para>
-#: sources.list.5.xml:134
+#: sources.list.5.xml:156
msgid ""
"It is important to list sources in order of preference, with the most "
"preferred source listed first. Typically this will result in sorting by "
"Rechnern, zum Beispiel)."
#. type: Content of: <refentry><refsect1><para>
-#: sources.list.5.xml:139
+#: sources.list.5.xml:161
msgid "Some examples:"
msgstr "Einige Beispiele:"
#. type: Content of: <refentry><refsect1><literallayout>
-#: sources.list.5.xml:141
+#: sources.list.5.xml:163
#, no-wrap
msgid ""
"deb http://ftp.debian.org/debian &stable-codename; main contrib non-free\n"
" "
#. type: Content of: <refentry><refsect1><title>
-#: sources.list.5.xml:147
+#: sources.list.5.xml:169
msgid "URI specification"
msgstr "URI-Beschreibung"
#. type: Content of: <refentry><refsect1><para>
-#: sources.list.5.xml:149
+#: sources.list.5.xml:171
msgid "The currently recognized URI types are:"
msgstr "Die derzeit zulässigen URI-Typen sind:"
#. type: Content of: <refentry><refsect1><para><variablelist><varlistentry><listitem><para>
-#: sources.list.5.xml:153
+#: sources.list.5.xml:175
msgid ""
"The file scheme allows an arbitrary directory in the file system to be "
"considered an archive. This is useful for NFS mounts and local mirrors or "
"lokale Spiegel oder Archive."
#. type: Content of: <refentry><refsect1><para><variablelist><varlistentry><listitem><para>
-#: sources.list.5.xml:160
+#: sources.list.5.xml:182
msgid ""
"The cdrom scheme allows APT to use a local CD-ROM drive with media swapping. "
"Use the &apt-cdrom; program to create cdrom entries in the source list."
"der Quellenliste zu erstellen."
#. type: Content of: <refentry><refsect1><para><variablelist><varlistentry><listitem><para>
-#: sources.list.5.xml:167
+#: sources.list.5.xml:189
msgid ""
"The http scheme specifies an HTTP server for the archive. If an environment "
"variable <envar>http_proxy</envar> is set with the format http://server:"
"Beachten Sie, dass dies eine unsichere Authentifizierungsmethode ist."
#. type: Content of: <refentry><refsect1><para><variablelist><varlistentry><listitem><para>
-#: sources.list.5.xml:178
+#: sources.list.5.xml:200
msgid ""
"The ftp scheme specifies an FTP server for the archive. APT's FTP behavior "
"is highly configurable; for more information see the &apt-conf; manual page. "
"benutzen, werden ignoriert."
#. type: Content of: <refentry><refsect1><para><variablelist><varlistentry><listitem><para>
-#: sources.list.5.xml:190
+#: sources.list.5.xml:212
msgid ""
"The copy scheme is identical to the file scheme except that packages are "
"copied into the cache directory instead of used directly at their location. "
"Wechseldatenträger benutzen, um Dateien mit APT umherzukopieren."
#. type: Content of: <refentry><refsect1><para><variablelist><varlistentry><listitem><para>
-#: sources.list.5.xml:197
+#: sources.list.5.xml:219
msgid ""
"The rsh/ssh method invokes RSH/SSH to connect to a remote host and access "
"the files as a given user. Prior configuration of rhosts or RSA keys is "
"<command>find</command> und <command>dd</command> verwandt."
#. type: Content of: <refentry><refsect1><para><variablelist><varlistentry><term>
-#: sources.list.5.xml:204
+#: sources.list.5.xml:226
msgid "adding more recognizable URI types"
msgstr "weitere zulässige URI-Typen hinzufügen"
#. type: Content of: <refentry><refsect1><para><variablelist><varlistentry><listitem><para>
-#: sources.list.5.xml:206
+#: sources.list.5.xml:228
msgid ""
"APT can be extended with more methods shipped in other optional packages, "
"which should follow the naming scheme <package>apt-transport-"
"Benutzung von debtorrent verfügbar – siehe &apt-transport-debtorrent;."
#. type: Content of: <refentry><refsect1><para>
-#: sources.list.5.xml:218
+#: sources.list.5.xml:240
msgid ""
"Uses the archive stored locally (or NFS mounted) at /home/jason/debian for "
"stable/main, stable/contrib, and stable/non-free."
"jason/debian für stable/main, stable/contrib und stable/non-free."
#. type: Content of: <refentry><refsect1><literallayout>
-#: sources.list.5.xml:220
+#: sources.list.5.xml:242
#, no-wrap
msgid "deb file:/home/jason/debian stable main contrib non-free"
msgstr "deb file:/home/jason/debian stable main contrib non-free"
#. type: Content of: <refentry><refsect1><para>
-#: sources.list.5.xml:222
+#: sources.list.5.xml:244
msgid "As above, except this uses the unstable (development) distribution."
msgstr ""
"wie oben, außer das dies die »unstable«- (Entwicklungs-) Distribution "
"benutzt."
#. type: Content of: <refentry><refsect1><literallayout>
-#: sources.list.5.xml:223
+#: sources.list.5.xml:245
#, no-wrap
msgid "deb file:/home/jason/debian unstable main contrib non-free"
msgstr "deb file:/home/jason/debian unstable main contrib non-free"
#. type: Content of: <refentry><refsect1><para>
-#: sources.list.5.xml:225
+#: sources.list.5.xml:247
msgid "Source line for the above"
msgstr "Quellzeile für obiges"
#. type: Content of: <refentry><refsect1><literallayout>
-#: sources.list.5.xml:226
+#: sources.list.5.xml:248
#, no-wrap
msgid "deb-src file:/home/jason/debian unstable main contrib non-free"
msgstr "deb-src file:/home/jason/debian unstable main contrib non-free"
#. type: Content of: <refentry><refsect1><para>
-#: sources.list.5.xml:228
+#: sources.list.5.xml:250
msgid ""
"The first line gets package information for the architectures in "
"<literal>APT::Architectures</literal> while the second always retrieves "
"<literal>amd64</literal> und <literal>armel</literal> holt."
#. type: Content of: <refentry><refsect1><literallayout>
-#: sources.list.5.xml:230
+#: sources.list.5.xml:252
#, no-wrap
msgid ""
"deb http://ftp.debian.org/debian &stable-codename; main\n"
"deb [ arch=amd64,armel ] http://ftp.debian.org/debian &stable-codename; main"
#. type: Content of: <refentry><refsect1><para>
-#: sources.list.5.xml:233
+#: sources.list.5.xml:255
msgid ""
"Uses HTTP to access the archive at archive.debian.org, and uses only the "
"hamm/main area."
"den hamm/main-Bereich zu benutzen."
#. type: Content of: <refentry><refsect1><literallayout>
-#: sources.list.5.xml:235
+#: sources.list.5.xml:257
#, no-wrap
msgid "deb http://archive.debian.org/debian-archive hamm main"
msgstr "deb http://archive.debian.org/debian-archive hamm main"
#. type: Content of: <refentry><refsect1><para>
-#: sources.list.5.xml:237
+#: sources.list.5.xml:259
msgid ""
"Uses FTP to access the archive at ftp.debian.org, under the debian "
"directory, and uses only the &stable-codename;/contrib area."
"benutzen."
#. type: Content of: <refentry><refsect1><literallayout>
-#: sources.list.5.xml:239
+#: sources.list.5.xml:261
#, no-wrap
msgid "deb ftp://ftp.debian.org/debian &stable-codename; contrib"
msgstr "deb ftp://ftp.debian.org/debian &stable-codename; contrib"
#. type: Content of: <refentry><refsect1><para>
-#: sources.list.5.xml:241
+#: sources.list.5.xml:263
msgid ""
"Uses FTP to access the archive at ftp.debian.org, under the debian "
"directory, and uses only the unstable/contrib area. If this line appears as "
"für beide Quellzeilen benutzt."
#. type: Content of: <refentry><refsect1><literallayout>
-#: sources.list.5.xml:245
+#: sources.list.5.xml:267
#, no-wrap
msgid "deb ftp://ftp.debian.org/debian unstable contrib"
msgstr "deb ftp://ftp.debian.org/debian unstable contrib"
#. type: Content of: <refentry><refsect1><para><literallayout>
-#: sources.list.5.xml:254
+#: sources.list.5.xml:276
#, no-wrap
msgid "deb http://ftp.tlh.debian.org/universe unstable/binary-$(ARCH)/"
msgstr "deb http://ftp.tlh.debian.org/universe unstable/binary-$(ARCH)/"
#. type: Content of: <refentry><refsect1><para>
-#: sources.list.5.xml:247
+#: sources.list.5.xml:269
msgid ""
"Uses HTTP to access the archive at ftp.tlh.debian.org, under the universe "
"directory, and uses only files found under <filename>unstable/binary-i386</"
"type=\"literallayout\" id=\"0\"/>"
#. type: Content of: <refentry><refsect1><para>
-#: sources.list.5.xml:259
+#: sources.list.5.xml:281
msgid "&apt-cache; &apt-conf;"
msgstr "&apt-cache; &apt-conf;"
#. type: <p></p>
#: guide.sgml:163
- #, fuzzy
- #| msgid ""
- #| "<prgn>apt-get</prgn> has several command line options that are detailed "
- #| "in its man page, <manref section=\"8\" name=\"apt-get\">. The most useful "
- #| "option is <tt>-d</tt> which does not install the fetched files. If the "
- #| "system has to download a large number of package it would be undesired to "
- #| "start installing them in case something goes wrong. When <tt>-d</tt> is "
- #| "used the downloaded archives can be installed by simply running the "
- #| "command that caused them to be downloaded again without <tt>-d</tt>."
msgid ""
"<prgn>apt-get</prgn> has several command line options that are detailed in "
- "its man page, <manref name=\"apt-get\" section=\"8\">. The most useful "
+ "its man page, <manref section=\"8\" name=\"apt-get\">. The most useful "
"option is <tt>-d</tt> which does not install the fetched files. If the "
"system has to download a large number of package it would be undesired to "
"start installing them in case something goes wrong. When <tt>-d</tt> is used "
EXIT_CODE=0
# we all like colorful messages
- if expr match "$(readlink -f /proc/$$/fd/1)" '/dev/pts/[0-9]\+' > /dev/null && \
- expr match "$(readlink -f /proc/$$/fd/2)" '/dev/pts/[0-9]\+' > /dev/null; then
- CERROR="\e[1;31m" # red
- CWARNING="\e[1;33m" # yellow
- CMSG="\e[1;32m" # green
- CINFO="\e[1;96m" # light blue
- CDEBUG="\e[1;94m" # blue
- CNORMAL="\e[0;39m" # default system console color
- CDONE="\e[1;32m" # green
- CPASS="\e[1;32m" # green
- CFAIL="\e[1;31m" # red
- CCMD="\e[1;35m" # pink
+ if [ "$MSGCOLOR" != 'NO' ]; then
+ if ! expr match "$(readlink -f /proc/$$/fd/1)" '/dev/pts/[0-9]\+' > /dev/null; then
+ export MSGCOLOR='NO'
+ fi
+ fi
+
+
+ if [ "$MSGCOLOR" != 'NO' ]; then
+ CERROR="\033[1;31m" # red
+ CWARNING="\033[1;33m" # yellow
+ CMSG="\033[1;32m" # green
+ CINFO="\033[1;96m" # light blue
+ CDEBUG="\033[1;94m" # blue
+ CNORMAL="\033[0;39m" # default system console color
+ CDONE="\033[1;32m" # green
+ CPASS="\033[1;32m" # green
+ CFAIL="\033[1;31m" # red
+ CCMD="\033[1;35m" # pink
fi
msgdie() { echo "${CERROR}E: $1${CNORMAL}" >&2; exit 1; }
msgwarn() { echo "${CWARNING}W: $1${CNORMAL}" >&2; }
- msgmsg() { echo "${CMSG}$1${CNORMAL}" >&2; }
- msginfo() { echo "${CINFO}I: $1${CNORMAL}" >&2; }
- msgdebug() { echo "${CDEBUG}D: $1${CNORMAL}" >&2; }
- msgdone() { echo "${CDONE}DONE${CNORMAL}" >&2; }
+ msgmsg() { echo "${CMSG}$1${CNORMAL}"; }
+ msginfo() { echo "${CINFO}I: $1${CNORMAL}"; }
+ msgdebug() { echo "${CDEBUG}D: $1${CNORMAL}"; }
+ msgdone() { echo "${CDONE}DONE${CNORMAL}"; }
msgnwarn() { echo -n "${CWARNING}W: $1${CNORMAL}" >&2; }
- msgnmsg() { echo -n "${CMSG}$1${CNORMAL}" >&2; }
- msgninfo() { echo -n "${CINFO}I: $1${CNORMAL}" >&2; }
- msgndebug() { echo -n "${CDEBUG}D: $1${CNORMAL}" >&2; }
+ msgnmsg() { echo -n "${CMSG}$1${CNORMAL}"; }
+ msgninfo() { echo -n "${CINFO}I: $1${CNORMAL}"; }
+ msgndebug() { echo -n "${CDEBUG}D: $1${CNORMAL}"; }
msgtest() {
while [ -n "$1" ]; do
- echo -n "${CINFO}$1${CCMD} " >&2;
- echo -n "$(echo "$2" | sed -e 's/^aptc/apt-c/' -e 's/^aptg/apt-g/' -e 's/^aptf/apt-f/')${CINFO} " >&2;
+ echo -n "${CINFO}$1${CCMD} "
+ echo -n "$(echo "$2" | sed -e 's/^aptc/apt-c/' -e 's/^aptg/apt-g/' -e 's/^aptf/apt-f/')${CINFO} "
shift
if [ -n "$1" ]; then shift; else break; fi
done
- echo -n "…${CNORMAL} " >&2;
+ echo -n "…${CNORMAL} "
}
- msgpass() { echo "${CPASS}PASS${CNORMAL}" >&2; }
+ msgpass() { echo "${CPASS}PASS${CNORMAL}"; }
msgskip() { echo "${CWARNING}SKIP${CNORMAL}" >&2; }
msgfail() {
if [ $# -gt 0 ]; then echo "${CFAIL}FAIL: $*${CNORMAL}" >&2;
msgmsg() { true; }
msgnmsg() { true; }
msgtest() { true; }
- msgpass() { echo -n " ${CPASS}P${CNORMAL}" >&2; }
+ msgpass() { echo -n " ${CPASS}P${CNORMAL}"; }
msgskip() { echo -n " ${CWARNING}S${CNORMAL}" >&2; }
if [ -n "$CFAIL" ]; then
msgfail() { echo -n " ${CFAIL}FAIL${CNORMAL}" >&2; EXIT_CODE=$((EXIT_CODE+1)); }
[ "$1" = "die" -a $MSGLEVEL -le 0 ]; then
true;
else
- echo "${CDONE}DONE${CNORMAL}" >&2;
+ echo "${CDONE}DONE${CNORMAL}";
fi
}
runapt() {
msgdebug "Executing: ${CCMD}$*${CDEBUG} "
+ local CMD="$1"
+ shift
if [ -f ./aptconfig.conf ]; then
- MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$*
+ MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$CMD "$@"
elif [ -f ../aptconfig.conf ]; then
- MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG=../aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$*
+ MALLOC_PERTURB_=21 MALLOC_CHECK_=2 APT_CONFIG=../aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$CMD "$@"
else
- MALLOC_PERTURB_=21 MALLOC_CHECK_=2 LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$*
+ MALLOC_PERTURB_=21 MALLOC_CHECK_=2 LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/$CMD "$@"
fi
}
- aptconfig() { runapt apt-config $*; }
- aptcache() { runapt apt-cache $*; }
- aptcdrom() { runapt apt-cdrom $*; }
- aptget() { runapt apt-get $*; }
- apt() { runapt apt $*; }
- aptftparchive() { runapt apt-ftparchive $*; }
- aptkey() { runapt apt-key $*; }
- aptmark() { runapt apt-mark $*; }
+ aptconfig() { runapt apt-config "$@"; }
+ aptcache() { runapt apt-cache "$@"; }
+ aptcdrom() { runapt apt-cdrom "$@"; }
+ aptget() { runapt apt-get "$@"; }
+ aptftparchive() { runapt apt-ftparchive "$@"; }
+ aptkey() { runapt apt-key "$@"; }
+ aptmark() { runapt apt-mark "$@"; }
++apt() { runapt apt "$@"; }
aptwebserver() {
- LD_LIBRARY_PATH=${APTWEBSERVERBINDIR} ${APTWEBSERVERBINDIR}/aptwebserver $*;
+ LD_LIBRARY_PATH=${APTWEBSERVERBINDIR} ${APTWEBSERVERBINDIR}/aptwebserver "$@";
}
dpkg() {
- $(which dpkg) --root=${TMPWORKINGDIRECTORY}/rootdir --force-not-root --force-bad-path --log=${TMPWORKINGDIRECTORY}/rootdir/var/log/dpkg.log $*
+ command dpkg --root=${TMPWORKINGDIRECTORY}/rootdir --force-not-root --force-bad-path --log=${TMPWORKINGDIRECTORY}/rootdir/var/log/dpkg.log "$@"
}
aptitude() {
if [ -f ./aptconfig.conf ]; then
- APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} $(which aptitude) $*
+ APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} command aptitude "$@"
elif [ -f ../aptconfig.conf ]; then
- APT_CONFIG=../aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} $(which aptitude) $*
+ APT_CONFIG=../aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} command aptitude "$@"
else
- LD_LIBRARY_PATH=${BUILDDIRECTORY} $(which aptitude) $*
+ LD_LIBRARY_PATH=${BUILDDIRECTORY} command aptitude "$@"
fi
}
gdb() {
echo "gdb: run »$*«"
- APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} $(which gdb) ${BUILDDIRECTORY}/$1 --args $*
+ APT_CONFIG=aptconfig.conf LD_LIBRARY_PATH=${BUILDDIRECTORY} command gdb ${BUILDDIRECTORY}/$1 --args "$@"
}
http() {
LD_LIBRARY_PATH=${BUILDDIRECTORY} ${BUILDDIRECTORY}/methods/http
}
+ gpg() {
+ # see apt-key for the whole trickery. Setup is done in setupenvironment
+ command gpg --ignore-time-conflict --no-options --no-default-keyring \
+ --homedir "${TMPWORKINGDIRECTORY}/gnupghome" \
+ --no-auto-check-trustdb --trust-model always \
+ "$@"
+ }
exitwithstatus() {
# error if we about to overflow, but ...
mkdir rootdir aptarchive keys
cd rootdir
mkdir -p etc/apt/apt.conf.d etc/apt/sources.list.d etc/apt/trusted.gpg.d etc/apt/preferences.d
- mkdir -p var/cache var/lib var/log
+ mkdir -p var/cache var/lib var/log tmp
mkdir -p var/lib/dpkg/info var/lib/dpkg/updates var/lib/dpkg/triggers
touch var/lib/dpkg/available
mkdir -p usr/lib/apt
echo "DPKG::options:: \"--root=${TMPWORKINGDIRECTORY}/rootdir\";" >> aptconfig.conf
echo "DPKG::options:: \"--force-not-root\";" >> aptconfig.conf
echo "DPKG::options:: \"--force-bad-path\";" >> aptconfig.conf
- if ! $(which dpkg) --assert-multi-arch >/dev/null 2>&1; then
+ if ! command dpkg --assert-multi-arch >/dev/null 2>&1; then
echo "DPKG::options:: \"--force-architecture\";" >> aptconfig.conf # Added to test multiarch before dpkg is ready for it…
fi
echo "DPKG::options:: \"--log=${TMPWORKINGDIRECTORY}/rootdir/var/log/dpkg.log\";" >> aptconfig.conf
echo 'quiet::NoUpdate "true";' >> aptconfig.conf
echo "Acquire::https::CaInfo \"${TESTDIR}/apt.pem\";" > rootdir/etc/apt/apt.conf.d/99https
- export LC_ALL=C
+ echo "Apt::Cmd::Disable-Script-Warning \"1\";" > rootdir/etc/apt/apt.conf.d/apt-binary
+ export LC_ALL=C.UTF-8
export PATH="${PATH}:/usr/local/sbin:/usr/sbin:/sbin"
configcompression '.' 'gz' #'bz2' 'lzma' 'xz'
+
+ # gpg needs a trustdb to function, but it can't be invalid (not even empty)
+ # see also apt-key where this trickery comes from:
+ local TRUSTDBDIR="${TMPWORKINGDIRECTORY}/gnupghome"
+ mkdir "$TRUSTDBDIR"
+ chmod 700 "$TRUSTDBDIR"
+ # We also don't use a secret keyring, of course, but gpg panics and
+ # implodes if there isn't one available - and writeable for imports
+ local SECRETKEYRING="${TRUSTDBDIR}/secring.gpg"
+ touch $SECRETKEYRING
+ # now create the trustdb with an (empty) dummy keyring
+ # newer gpg versions are fine without it, but play it safe for now
+ gpg --quiet --check-trustdb --secret-keyring $SECRETKEYRING --keyring $SECRETKEYRING >/dev/null 2>&1
+
msgdone "info"
}
fi
fi
rm -f rootdir/etc/apt/apt.conf.d/00foreigndpkg
- if $(which dpkg) --assert-multi-arch >/dev/null 2>&1; then
+ if command dpkg --assert-multi-arch >/dev/null 2>&1 ; then
local ARCHS="$(getarchitectures)"
if echo "$ARCHS" | grep -E -q '[^ ]+ [^ ]+'; then
DPKGARCH="$(dpkg --print-architecture)"
| while read SRC; do
echo "pool/${SRC}" >> ${BUILDDIR}/../${RELEASE}.${DISTSECTION}.srclist
# if expr match "${SRC}" '.*\.dsc' >/dev/null 2>&1; then
- # gpg --yes --no-default-keyring --secret-keyring ./keys/joesixpack.sec \
+ # gpg --yes --secret-keyring ./keys/joesixpack.sec \
# --keyring ./keys/joesixpack.pub --default-key 'Joe Sixpack' \
# --clearsign -o "${BUILDDIR}/../${SRC}.sign" "${BUILDDIR}/../$SRC"
# mv "${BUILDDIR}/../${SRC}.sign" "${BUILDDIR}/../$SRC"
(cd ${BUILDDIR}; dpkg-gencontrol -DArchitecture=$arch)
(cd ${BUILDDIR}/debian/tmp; md5sum $(find usr/ -type f) > DEBIAN/md5sums)
- dpkg-deb --build ${BUILDDIR}/debian/tmp ${BUILDDIR}/.. 2> /dev/null > /dev/null
+ local LOG="${BUILDDIR}/../${NAME}_${VERSION}_${arch}.dpkg-deb.log"
+ # ensure the right permissions as dpkg-deb ensists
+ chmod 755 ${BUILDDIR}/debian/tmp/DEBIAN
+ if ! dpkg-deb --build ${BUILDDIR}/debian/tmp ${BUILDDIR}/.. >$LOG 2>&1; then
+ cat $LOG
+ false
+ fi
+ rm $LOG
echo "pool/${NAME}_${VERSION}_${arch}.deb" >> ${BUILDDIR}/../${RELEASE}.${DISTSECTION}.pkglist
done
local RELEASE=$2
local SECTION=$3
local ARCH=$(getarchitecture $4)
- msgninfo "Build package $(echo "$BUILDDIR" | grep -o '[^/]*$') for ${RELEASE} in ${SECTION}… "
+ local PKGNAME="$(echo "$BUILDDIR" | grep -o '[^/]*$')"
+ local BUILDLOG="$(readlink -f "${BUILDDIR}/../${PKGNAME}_${RELEASE}_${SECTION}.dpkg-bp.log")"
+ msgninfo "Build package ${PKGNAME} for ${RELEASE} in ${SECTION}… "
cd $BUILDDIR
if [ "$ARCH" = "all" ]; then
ARCH="$(dpkg-architecture -qDEB_HOST_ARCH 2> /dev/null)"
fi
- local BUILT="$(dpkg-buildpackage -uc -us -a$ARCH 2> /dev/null)"
- local PKGS="$( echo "$BUILT" | grep '^dpkg-deb: building package' | cut -d'/' -f 2 | sed -e "s#'\.##")"
- local SRCS="$( echo "$BUILT" | grep '^dpkg-source: info: building' | grep -o '[a-z0-9._+~-]*$')"
+ if ! dpkg-buildpackage -uc -us -a$ARCH >$BUILDLOG 2>&1 ; then
+ cat $BUILDLOG
+ false
+ fi
+ local PKGS="$(grep '^dpkg-deb: building package' $BUILDLOG | cut -d'/' -f 2 | sed -e "s#'\.##")"
+ local SRCS="$(grep '^dpkg-source: info: building' $BUILDLOG | grep -o '[a-z0-9._+~-]*$')"
cd - > /dev/null
for PKG in $PKGS; do
echo "pool/${PKG}" >> ${TMPWORKINGDIRECTORY}/incoming/${RELEASE}.${SECTION}.pkglist
buildaptarchive() {
if [ -d incoming ]; then
- buildaptarchivefromincoming $*
+ buildaptarchivefromincoming "$@"
else
- buildaptarchivefromfiles $*
+ buildaptarchivefromfiles "$@"
fi
}
}
# can be overridden by testcases for their pleasure
- getcodenamefromsuite() { echo -n "$1"; }
+ getcodenamefromsuite() {
+ case "$1" in
+ unstable) echo 'sid';;
+ *) echo -n "$1";;
+ esac
+ }
getreleaseversionfromsuite() { true; }
getlabelfromsuite() { true; }
signreleasefiles() {
local SIGNER="${1:-Joe Sixpack}"
- local GPG="gpg --batch --yes --no-default-keyring --trustdb-name rootdir/etc/apt/trustdb.gpg"
+ local GPG="gpg --batch --yes"
msgninfo "\tSign archive with $SIGNER key… "
local REXKEY='keys/rexexpired'
local SECEXPIREBAK="${REXKEY}.sec.bak"
downloadfile "http://localhost:8080/_config/set/${1}/${2}" '/dev/null' >/dev/null
local DOWNLOG='download-testfile.log'
rm -f "$DOWNLOG"
- local STATUS="$(mktemp)"
- addtrap "rm $STATUS;"
+ local STATUS="${TMPWORKINGDIRECTORY}/rootdir/tmp/webserverconfig.status"
downloadfile "http://localhost:8080/_config/find/aptwebserver::last-status-code" "$STATUS" > "$DOWNLOG"
if [ "$(cat "$STATUS")" = '200' ]; then
msgpass
cat >&2 "$DOWNLOG"
msgfail "Statuscode was $(cat "$STATUS")"
fi
+ rm "$STATUS"
}
rewritesourceslist() {
else
shift
fi
- local LOG='/dev/null'
if test -x ${APTWEBSERVERBINDIR}/aptwebserver; then
cd aptarchive
- aptwebserver -o aptwebserver::fork=1 "$@" >$LOG 2>&1
+ if ! aptwebserver -o aptwebserver::fork=1 "$@" >webserver.log 2>&1 ; then
+ cat $LOG
+ false
+ fi
local PID="$(cat aptwebserver.pid)"
if [ -z "$PID" ]; then
msgdie 'Could not fork aptwebserver successfully'
}
checkdiff() {
- local DIFFTEXT="$($(which diff) -u $* | sed -e '/^---/ d' -e '/^+++/ d' -e '/^@@/ d')"
+ local DIFFTEXT="$(command diff -u "$@" | sed -e '/^---/ d' -e '/^+++/ d' -e '/^@@/ d')"
if [ -n "$DIFFTEXT" ]; then
echo
echo "$DIFFTEXT"
}
testequal() {
- local COMPAREFILE=$(mktemp)
+ local MSG='Test of equality of'
+ if [ "$1" = '--nomsg' ]; then
+ MSG=''
+ shift
+ fi
+
+ local COMPAREFILE="${TMPWORKINGDIRECTORY}/rootdir/tmp/testequal.comparefile"
+ addtrap "rm $COMPAREFILE;"
echo "$1" > $COMPAREFILE
shift
- msgtest "Test for equality of" "$*"
+
+ if [ -n "$MSG" ]; then
+ msgtest "$MSG" "$*"
+ fi
$* 2>&1 | checkdiff $COMPAREFILE - && msgpass || msgfail
}
testequalor2() {
- local COMPAREFILE1=$(mktemp)
- local COMPAREFILE2=$(mktemp)
- local COMPAREAGAINST=$(mktemp)
- addtrap "rm $COMPAREFILE1 $COMPAREFILE2 $COMPAREAGAINST;"
+ local COMPAREFILE1="${TMPWORKINGDIRECTORY}/rootdir/tmp/testequalor2.comparefile1"
+ local COMPAREFILE2="${TMPWORKINGDIRECTORY}/rootdir/tmp/testequalor2.comparefile2"
+ local COMPAREAGAINST="${TMPWORKINGDIRECTORY}/rootdir/tmp/testequalor2.compareagainst"
echo "$1" > $COMPAREFILE1
echo "$2" > $COMPAREFILE2
shift 2
msgtest "Test for virtual packages" "apt-cache show $PACKAGE"
VIRTUAL="${VIRTUAL}
N: No packages found"
- local COMPAREFILE=$(mktemp)
- addtrap "rm $COMPAREFILE;"
+ local COMPAREFILE="${TMPWORKINGDIRECTORY}/rootdir/tmp/testshowvirtual.comparefile"
local ARCH="$(getarchitecture 'native')"
echo "$VIRTUAL" | sed -e "s/:$ARCH//" -e 's/:all//' > $COMPAREFILE
aptcache show -q=0 $PACKAGE 2>&1 | checkdiff $COMPAREFILE - && msgpass || msgfail
testnopackage() {
msgtest "Test for non-existent packages" "apt-cache show $*"
- local SHOWPKG="$(aptcache show $* 2>&1 | grep '^Package: ')"
+ local SHOWPKG="$(aptcache show "$@" 2>&1 | grep '^Package: ')"
if [ -n "$SHOWPKG" ]; then
echo
echo "$SHOWPKG"
testdpkginstalled() {
msgtest "Test for correctly installed package(s) with" "dpkg -l $*"
- local PKGS="$(dpkg -l $* 2>/dev/null | grep '^i' | wc -l)"
+ local PKGS="$(dpkg -l "$@" 2>/dev/null | grep '^i' | wc -l)"
if [ "$PKGS" != $# ]; then
echo $PKGS
- dpkg -l $* | grep '^[a-z]'
+ dpkg -l "$@" | grep '^[a-z]'
msgfail
return 1
fi
testdpkgnotinstalled() {
msgtest "Test for correctly not-installed package(s) with" "dpkg -l $*"
- local PKGS="$(dpkg -l $* 2> /dev/null | grep '^i' | wc -l)"
+ local PKGS="$(dpkg -l "$@" 2> /dev/null | grep '^i' | wc -l)"
if [ "$PKGS" != 0 ]; then
echo
- dpkg -l $* | grep '^[a-z]'
+ dpkg -l "$@" | grep '^[a-z]'
msgfail
return 1
fi
}
testmarkedauto() {
- local COMPAREFILE=$(mktemp)
- addtrap "rm $COMPAREFILE;"
+ local COMPAREFILE="${TMPWORKINGDIRECTORY}/rootdir/tmp/testmarkedauto.comparefile"
if [ -n "$1" ]; then
msgtest 'Test for correctly marked as auto-installed' "$*"
while [ -n "$1" ]; do echo "$1"; shift; done | sort > $COMPAREFILE
else
msgtest 'Test for successful execution of' "$*"
fi
- local OUTPUT=$(mktemp)
- addtrap "rm $OUTPUT;"
+ local OUTPUT="${TMPWORKINGDIRECTORY}/rootdir/tmp/testsuccess.output"
if $@ >${OUTPUT} 2>&1; then
msgpass
else
else
msgtest 'Test for failure in execution of' "$*"
fi
- local OUTPUT=$(mktemp)
- addtrap "rm $OUTPUT;"
+ local OUTPUT="${TMPWORKINGDIRECTORY}/rootdir/tmp/testfailure.output"
if $@ >${OUTPUT} 2>&1; then
echo
cat $OUTPUT