summaryrefslogtreecommitdiffstats
path: root/man/de/deb-src-symbols.pod
diff options
context:
space:
mode:
Diffstat (limited to 'man/de/deb-src-symbols.pod')
-rw-r--r--man/de/deb-src-symbols.pod419
1 files changed, 419 insertions, 0 deletions
diff --git a/man/de/deb-src-symbols.pod b/man/de/deb-src-symbols.pod
new file mode 100644
index 0000000..b6d32f7
--- /dev/null
+++ b/man/de/deb-src-symbols.pod
@@ -0,0 +1,419 @@
+
+ *****************************************************
+ * GENERATED FILE, DO NOT EDIT *
+ * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION *
+ *****************************************************
+
+This file was generated by po4a(7). Do not store it (in VCS, for example),
+but store the PO file used as source file by po4a-translate.
+
+In fact, consider this as a binary, and the PO file as a regular .c file:
+If the PO get lost, keeping this translation up-to-date will be harder.
+
+=encoding UTF-8
+
+=head1 BEZEICHNUNG
+
+deb-symbols - Debians erweiterte Vorlagendatei für Laufzeitbibliotheken
+
+=head1 ÜBERSICHT
+
+B<debian/>I<Paket>B<.symbols.>I<Arch>, B<debian/symbols.>I<Arch>,
+B<debian/>I<Paket>B<.symbols>, B<debian/symbols>
+
+=head1 BESCHREIBUNG
+
+Die Symboldateivorlagen werden in Debian-Quellpaketen ausgeliefert. Deren
+Format ist eine Obermenge der in Binärpaketen ausgelieferten Symboldateien,
+siehe L<deb-symbols(5)>.
+
+=head2 Kommentare
+
+In Symboldateien werden Kommentare unterstützt. Jede Zeile, die mit ‚#’ als
+erstem Zeichen beginnt, ist ein Kommentar, falls sie nicht mit ‚#include’
+beginnt (siehe Abschnitt B<Includes verwenden>). Zeilen, die mit ‚#MISSING:’
+anfangen, sind besondere Kommentare, die verschwundene Symbole
+dokumentieren.
+
+=head2 Verwendung der #PACKAGE#-Ersetzung
+
+In einigen seltenen Fällen sind die Namen der Bibliotheken nicht auf allen
+Architekturen gleich. Um zu vermeiden, dass der Paketname in der Symboldatei
+fest kodiert wird, können Sie die Markierung I<#PACKAGE#> verwenden. Während
+der Installation der Symboldatei wird sie durch den echten Paketnamen
+ersetzt. Anders als die Markierung I<#MINVER#> wird I<#PACKAGE#> nie in der
+Symboldatei innerhalb eines Binärpakets auftauchen.
+
+=head2 Verwendung von Symbolkennzeichnungen
+
+Symbolkennzeichnungen sind nützlich, um Symbole zu markieren, die in
+irgendeiner Weise besonders sind. Jedes Symbol kann eine beliebige Anzahl
+zugeordneter Kennzeichnungen besitzen. Während alle Kennzeichnungen
+ausgewertet und gespeichert werden, werden nur einige von B<dpkg-gensymbols>
+verstanden und lösen eine Spezialbehandlung der Symbole aus. Lesen Sie den
+Unterabschnitt B<Standardsymbolkennzeichnungen> für eine Referenz dieser
+Kennzeichnungen.
+
+Kennzeichnungsspezifikationen kommen direkt vor dem Symbolnamen (dazwischen
+sind keine Leerraumzeichen erlaubt). Sie beginnen immer mit einer öffnenden
+Klammer B<(>, enden mit einer schließenden Klammer B<)> und müssen
+mindestens eine Kennzeichnung enthalten. Mehrere Kennzeichnungen werden
+durch das Zeichen B<|> getrennt. Jede der Kennzeichnungen kann optional
+einen Wert enthalten, der von der Kennzeichnung durch das Zeichen B<=>
+getrennt wird. Kennzeichennamen und -werte können beliebige Zeichenketten
+sein, sie dürfen allerdings keine der der besonderen Zeichen B<)> B<|> B<=>
+enthalten. Symbolnamen, die einer Kennzeichnungsspezifikation folgen, können
+optional mit den Zeichen B<'> oder B<"> zitiert werden, um Leerraumzeichen
+darin zu erlauben. Falls keine Kennzeichnungen für das Symbol spezifiziert
+sind, werden Anführungszeichen als Teil des Symbolnamens behandelt, der bis
+zum ersten Leerzeichen geht.
+
+ (Kennz1=bin markiert|Name mit Leerraum)"zitiertes gekennz Symbol"@Base 1.0
+ (optional)gekennzeichnet_unzitiertes_Symbol@Base 1.0 1
+ ungekennzeichnetes_Symbol@Base 1.0
+Das erste Symbol im Beispiel heißt I<zitiertes gekennz Symbol> und hat zwei
+Kennzeichnungen: I<Kennz1> mit dem Wert I<bin markiert> und I<Name mit
+Leerraum> ohne Wert. Das zweite Symbol heißt
+I<gekennzeichnet_unzitiertes_Symbol> und ist nur mit dem Kennzeichen namens
+I<optional> gekennzeichnet. Das letzte Symbol ist ein Beispiel eines
+normalen, nicht gekennzeichneten Symbols.
+
+Da Symbolkennzeichnungen eine Erweiterung des Formats B<deb-symbols>(5)
+sind, können sie nur Teil der in Quellpaketen verwandten Symboldateien sein
+(diese Dateien sollten dann als Vorlagen zum Bau der Symboldateien, die in
+Binärpakete eingebettet werden, gesehen werden). Wenn B<dpkg-gensymbols>
+ohne die Option B<-t> aufgerufen wird, wird es alle Symbole ausgeben, die
+zum Format B<deb-symbols>(5) kompatibel sind: Es verarbeitet die Symbole
+entsprechend der Anforderungen ihrer Standardkennzeichnungen und entfernt
+alle Kennzeichnungen aus der Ausgabe. Im Gegensatz dazu werden alle Symbole
+und ihre Kennzeichnungen (sowohl die Standardkennzeichnungen als auch die
+unbekannten) im Vorlagenmodus (B<-t>) in der Ausgabe beibehalten und in
+ihrer Originalform, wie sie geladen wurden, auch geschrieben.
+
+=head2 Standard-Symbolkennzeichnungen
+
+=over
+
+=item B<optional>
+
+Ein als „optional“ gekennzeichnetes Symbol kann jederzeit von der Bibliothek
+verschwinden und wird nie zum Fehlschlag von B<dpkg-gensymbols>
+führen. Verschwundene optionale Symbole werden kontinuierlich als MISSING
+(Fehlend) in dem Diff in jeder neuen Paketversion auftauchen. Dieses
+Verhalten dient als Erinnerung für den Betreuer, dass so ein Symbol aus der
+Symboldatei entfernt oder wieder der Bibliothek hinzugefügt werden
+muss. Wenn das optionale Symbol, das bisher als MISSING angegeben gewesen
+war, plötzlich in der nächsten Version wieder auftaucht, wird es wieder auf
+den Status „existing“ (existierend) gebracht, wobei die minimale Version
+unverändert bleibt.
+
+Diese Markierung ist für private Symbole nützlich, deren Verschwinden keinen
+ABI-Bruch auslöst. Beispielsweise fallen die meisten
+C++-Template-Instanziierungen in diese Kategorie. Wie jede andere Markierung
+kann auch diese einen beliebigen Wert haben: sie könnte angeben, warum
+dieses Symbol als optional betrachtet wird.
+
+=item B<arch=>I<Architekturliste>
+
+=item B<arch-bits=>I<Architektur-Bits>
+
+=item B<arch-endian=>I<Architektur-Bytereihenfolge>
+
+Diese Markierungen erlauben es, den Satz an Architekturen einzugrenzen, auf
+denen das Symbol existieren sollte. Die Markierungen B<arch-bits> und
+B<arch-endian> werden seit Dpkg 1.18.0 unterstützt. Wenn die Symbolliste mit
+den in der Bibliothek entdeckten Symbolen aktualisiert wird, werden alle
+architekturspezifischen Symbole, die nicht auf die aktuelle Host-Architektur
+passen, so behandelt, als ob sie nicht existierten. Falls ein
+architekturspezifisches Symbol, das auf die aktuelle Host-Architektur passt,
+in der Bibliothek nicht existiert, werden die normalen Regeln für fehlende
+Symbole angewandt und B<dpkg-gensymbols> könnte dadurch fehlschlagen. Auf
+der anderen Seite, falls das architekturspezifische Symbol gefunden wurde,
+wenn es nicht existieren sollte (da die aktuelle Host-Architektur nicht in
+der Markierung aufgeführt ist oder nicht auf die Bytereihenfolge und Bits
+passt), wird sie architekturneutral gemacht (d.h. die Architektur-,
+Architektur-Bits- und Architektur-Bytereihenfolgemarkierungen werden
+entfernt und das Symbol wird im Diff aufgrund dieser Änderung auftauchen),
+aber es wird nicht als neu betrachtet.
+
+Beim Betrieb im standardmäßigen nicht-Vorlagen-Modus werden unter den
+architekturspezifischen Symbolen nur die in die Symboldatei geschrieben, die
+auf die aktuelle Host-Architektur passen. Auf der anderen Seite werden beim
+Betrieb im Vorlagenmodus alle architekturspezifischen Symbole (darunter auch
+die von fremden Architekturen) immer in die Symboldatei geschrieben.
+
+Das Format der I<Architekturliste> ist das gleiche wie das des Feldes
+B<Build-Depends> in I<debian/control> (außer den einschließenden eckigen
+Klammern []). Beispielsweise wird das erste Symbol aus der folgenden Liste
+nur auf den Architekturen Alpha, Any-amd64 und Ia64 betrachtet, das zweite
+nur auf Linux-Architekturen, während das dritte überall außer auf Armel
+betrachtet wird.
+
+ (arch=alpha any-amd64 ia64)64_Bit_spezifisches_Symbol@Base 1.0
+ (arch=linux-any)Linux_spezifisches_Symbol@Base 1.0
+ (arch=!armel)Symbol_das_Armel_nicht_hat@Base 1.0
+
+I<Architektur-Bits> ist entweder B<32> oder B<64>.
+
+ (arch-bits=32)32_Bit_spezifisches_Symbol@Base 1.0
+ (arch-bits=64)64_Bit_spezifisches_Symbol@Base 1.0
+
+I<Architektur-Bytereihenfolge> ist entweder B<little> oder B<big>.
+
+ (arch-endian=little)Little_Endian_spezifisches_Symbol@Base 1.0
+ (arch-endian=big)Big_Endian_spezifisches_Symbol@Base 1.0
+
+Mehrere Einschränkungen können aneinandergehängt werden.
+
+ (arch-bits=32|arch-endian=little)32_Bit_Le_Symbol@Base 1.0
+
+=item B<allow-internal>
+
+dpkg-gensymbols verfügt über eine interne Liste von Symbolen, die nicht in
+Symboldateien auftauchen sollten, da sie normalerweise nur Nebeneffekte von
+Implementierungsdetails in der Werkzeugkette darstellen (seit Dpkg
+1.20.1). Falls Sie aus irgendeinem Grund wollen, dass diese Symbole in der
+Symboldatei aufgenommen werden, sollten Sie das Symbol mit B<allow-internal>
+kennzeichnen. Dies kann für einige grundlegende Bibliotheken der
+Werkzeugkette wie „libgcc“ notwendig sein.
+
+=item B<ignore-blacklist>
+
+Ein veralteter Alias für B<allow-internal> (seit Dpkg 1.20.1, unterstützt
+seit Dpkg 1.15.3).
+
+=item B<c++>
+
+Gibt I<c++>-Symbolmuster an. Lesen Sie den nachfolgenden Unterabschnitt
+B<Verwendung von Symbolmustern>.
+
+=item B<symver>
+
+Gibt I<symver> (Symbolversion)-Symbolmuster an. Lesen Sie den nachfolgenden
+Unterabschnitt B<Verwendung von Symbolmustern>.
+
+=item B<regex>
+
+Gibt I<regex>-Symbolmuster an. Lesen Sie den nachfolgenden Unterabschnitt
+B<Verwendung von Symbolmustern>.
+
+=back
+
+=head2 Verwendung von Symbolmustern
+
+Anders als die Standardsymbolspezifikation kann ein Muster mehrere reale
+Symbole aus der Bibliothek abdecken. B<dpkg-gensymbols> wird versuchen,
+jedes Muster auf jedes reale Symbol, für das I<kein> spezifisches
+Symbolgegenstück in der Symboldatei definiert ist, abzugleichen. Wann immer
+das erste passende Muster gefunden wurde, werden alle Kennzeichnungen und
+Eigenschaften als Basisspezifikation des Symbols verwandt. Falls keines der
+Muster passt, wird das Symbol als neu betrachtet.
+
+Ein Muster wird als verloren betrachtet, falls es auf kein Symbol in der
+Bibliothek passt. Standardmäßig wird dies ein Versagen von
+B<dpkg-gensymbols> in der Stufe B<-c1> oder höher auslösen. Falls der
+Fehlschlag allerdings unerwünscht ist, kann das Muster mit der Kennzeichnung
+I<optional> markiert werden. Falls das Muster dann auf nichts passt, wird es
+im Diff nur als MISSING (fehlend) auftauchen. Desweiteren kann das Muster
+wie jedes Symbol auf die spezielle Architektur mit der Kennzeichnung I<arch>
+beschränkt werden. Bitte lesen Sie den Unterabschnitt
+B<Standard-Symbolkennzeichnungen> oben für weitere Informationen.
+
+Muster sind eine Erweiterung des Formats B<deb-symbols>(5); sie sind daher
+nur in Symboldatei-Vorlagen gültig. Die Musterspezifikationssyntax
+unterscheidet sich nicht von der eines spezifischen Symbols. Allerdings
+dient der Symbolnamenteil der Spezifikation als Ausdruck, der gegen
+I<Name@Version> eines realen Symbols abgeglichen wird. Um zwischen den
+verschiedenen Mustertypen zu unterscheiden, wird es typischerweise mit einer
+speziellen Kennzeichnung gekennzeichnet.
+
+Derzeit unterstützt B<dpkg-gensymbols> drei grundlegene Mustertypen:
+
+=over
+
+=item B<c++>
+
+Dieses Muster wird durch die Kennzeichnung I<c++> verzeichnet. Es passt nur
+auf die entworrenen („demangled“) Symbolnamen (wie sie vom Hilfswerkzeug
+B<c++filt>(1) ausgegeben werden). Dieses Muster ist sehr hilfreich, um auf
+Symbole zu passen, bei dem die verworrenen („mangled“) Namen sich auf
+verschiedenen Architekturen unterscheiden während die entworrenen die
+gleichen bleiben. Eine Gruppe solcher Symbole ist I<non-virtual thunks>, die
+einen architekturspezifischen Versatz in ihren verworrenen Namen eingebettet
+haben. Eine häufige Instanz dieses Falles ist ein virtueller Destruktor, der
+unter rautenförmiger Vererbung ein nicht-virtuelles Thunk-Symbol
+benötigt. Selbst wenn beispielsweise _ZThn8_N3NSB6ClassDD1Ev@Base auf 32
+Bit-Architekturen _ZThn16_N3NSB6ClassDD1Ev@Base auf 64 Bit-Architekturen
+ist, kann es mit einem einzigen I<c++>-Muster abgeglichen werden:
+
+ libdummy.so.1 libdummy1 #MINVER#
+ […]
+ (c++)"non-virtual thunk to NSB::ClassD::~ClassD()@Base" 1.0
+ […]
+
+Der entworrene Name oben kann durch Ausführung folgenden Befehls erhalten
+werden:
+
+ $ echo '_ZThn8_N3NSB6ClassDD1Ev@Base' | c++filt
+
+Bitte beachten Sie, dass per Definition zwar der verworrene Name in der
+Bibliothek eindeutig ist, die aber nicht notwendigerweise für die
+entworrenen Namen zutrifft. Ein Satz von unterschiedlichen realen Symbolen
+können den gleichen entworrenen Namen haben. Beispielsweise ist das der Fall
+bei nicht-virtuellen Thunk-Symbolen in komplexen Vererbungskonfigurationen
+oder bei den meisten Konstruktoren und Destruktoren (da g++ typischerweise
+zwei reale Symbole für sie generiert). Da diese Kollisionen aber auf dem
+ABI-Niveau passieren, sollten sie nicht die Qualität der Symboldatei
+reduzieren.
+
+=item B<symver>
+
+Dieses Muster wird durch die Kennzeichnung I<symver> verzeichnet. Gut
+betreute Bibliotheken verfügen über versionierte Symbole, wobei jede Version
+zu der Version der Originalautoren passt, in der dieses Symbol hinzugefügt
+wurde. Falls das der Fall ist, können Sie ein I<symver>-Muster verwenden,
+das auf jedes zu einer spezifizierten Version zugehörige Symbol
+passt. Beispiel:
+
+ libc.so.6 libc6 #MINVER#
+ (symver)GLIBC_2.0 2.0
+ […]
+ (symver)GLIBC_2.7 2.7
+ access@GLIBC_2.0 2.2
+
+Alle den Versionen GLIBC_2.0 und GLIBC_2.7 zugeordneten Symbole werden zu
+einer minimalen Version 2.0 bzw. 2.7 führen, wobei das Symbol
+access@GLIBC_2.0 die Ausnahme darstellt. Es wird zu einer minimalen
+Abhängigkeit auf libc6 Version 2.2 führen, obwohl es im Geltungsbereich des
+Musters „(symver)GLIBC_2.0“ gehört, da spezielle Symbole vor Mustern Vorrang
+haben.
+
+Bitte beachten Sie, dass Platzhaltermuster im alten Format (angezeigt durch
+„*@version“ im Symbolnamenfeld) zwar noch unterstützt werden, sie aber durch
+die Syntax im neuen Format „(symver|optional)version“ abgelöst
+wurden. Beispielsweise sollte „*@GLIBC_2.0 2.0“ als
+„(symver|optional)GLIBC_2.0 2.0“ geschrieben werden, falls das gleiche
+Verhalten benötigt wird.
+
+=item B<regex>
+
+Muster mit regulären Ausdrücken werden durch die Kennzeichnung I<regex>
+verzeichnet. Sie passen auf den regulären Ausdruck von Perl, der im
+Symbolnamenfeld angegeben ist. Ein regulärer Ausdruck wird wie er ist
+abgeglichen. Denken Sie daher daran, ihn mit dem Zeichen I<^> zu beginnen,
+da er ansonsten auf jeden Teil der Zeichenkette des realen Symbols
+I<name@version> passt. Beispiel:
+
+ libdummy.so.1 libdummy1 #MINVER#
+ (regex)"^mystack_.*@Base$" 1.0
+ (regex|optional)"private" 1.0
+
+Symbole wie „mystack_new@Base“, „mystack_push@Base“, „mystack_pop@Base“
+usw. passen auf das erste Muster, während dies z.B. für
+„ng_mystack_new@Base“ nicht der Fall ist. Das zweite Muster wird auf alle
+Symbole, die die Zeichenkette „private“ in ihren Namen enthalten, passen und
+die abgeglichenen Symbole erben die Kennzeichnung I<optional> vom Muster.
+
+=back
+
+Die oben aufgeführten grundlegenden Muster können - wo es Sinn ergibt -
+kombiniert werden. In diesem Fall werden sie in der Reihenfolge verarbeitet,
+in der die Kennzeichnungen angegeben sind. Im Beispiel
+
+ (c++|regex)"^NSA::ClassA::Private::privmethod\d\(int\)@Base" 1.0
+ (regex|c++)N3NSA6ClassA7Private11privmethod\dEi@Base 1.0
+
+werden die Symbole „_ZN3NSA6ClassA7Private11privmethod1Ei@Base“ und
+„_ZN3NSA6ClassA7Private11privmethod2Ei@Base“ verglichen. Beim Vergleichen
+des ersten Musters wird das rohe Symbol erst als C++-Symbol entworren, dann
+wird der entworrene Name mit den regulären Ausdruck verglichen. Auf der
+anderen Seite wird beim Vergleichen des zweiten Musters der reguläre
+Ausdruck gegen den rohen Symbolnamen verglichen, dann wird das Symbol
+überprüft, ob es ein C++-Symbol ist, indem das Entwirren versucht wird. Ein
+Fehlschlag eines einfachen Musters wird zum Fehlschlag des gesamten Musters
+führen. Daher wird beispielsweise
+„__N3NSA6ClassA7Private11privmethod\dEi@Base“ auf keines der Muster passen,
+da es kein gültiges C++-Symbol ist.
+
+Im Allgemeinen werden die Muster in zwei Kategorien eingeteilt: Aliase
+(grundlegende I<c++>- und I<symver>-Muster) und generische Muster (I<regex>
+und alle Kombinationen grundlegender Muster). Abgleichen von grundlegenden
+alias-basierenden Mustern ist schnell (O(1)), während generische Muster O(N)
+(wobei N die Anzahl der generischen Muster ist) für jedes Symbol ist. Daher
+wird empfohlen, generische Muster nicht zu viel zu verwenden.
+
+Wenn mehrere Muster auf das gleiche Symbol passen, werden Aliase (zuerst
+I<c++>, dann I<symver>) gegenüber den generischen Mustern
+bevorzugt. Generische Muster werden in der Reihenfolge, in der sie in der
+Symboldateivorlage gefunden werden, verglichen, bis zum ersten
+Erfolg. Beachten Sie aber, dass das manuelle Anordnen der
+Vorlagendateieinträge nicht empfohlen wird, da B<dpkg-gensymbols> Diffs
+basierend auf der alphanumerischen Reihenfolge ihrer Namen erstellt.
+
+=head2 Includes verwenden
+
+Wenn der Satz der exportierten Symbole sich zwischen Architekturen
+unterscheidet, kann es ineffizient werden, eine einzige Symboldatei zu
+verwenden. In diesen Fällen kann sich eine Include-Direktive in einer Reihe
+von Arten als nützlich erweisen:
+
+=over
+
+=item *
+
+Sie können den gemeinsamen Teil in eine externe Datei auslagern und diese
+Datei dann in Ihre I<Paket>.symbols.I<Arch>-Datei mit einer
+include-Direktive wie folgt einbinden:
+
+ #include "I<Pakete>.symbols.common"
+
+=item *
+
+Die Include-Direktive kann auch wie jedes Symbol gekennzeichnet werden:
+
+ (Kennzeichen|…|KennzeichenN)#include "einzubindende-Datei"
+
+Als Ergebnis werden alle Symbole aus der I<einzubindende-Datei>
+standardmäßig als mit I<Kennzeichen> … I<KennzeichenN> gekennzeichnet
+betrachtet. Sie können diese Funktionalität benutzen, um eine gemeinsame
+Datei I<Paket>.symbols zu erstellen, die architekturspezifische
+Symboldateien einbindet:
+
+ gemeinsames_Symbol1@Base 1.0
+ (arch=amd64 ia64 alpha)#include "Paket.symbols.64bit"
+ (arch=!amd64 !ia64 !alpha)#include "Paket.symbols.32bit"
+ gemeinsames_Symbol2@Base 1.0
+
+=back
+
+Die Symboldateien werden Zeile für Zeile gelesen und include-Direktiven
+werden bearbeitet, sobald sie erkannt werden. Das bedeutet, dass der Inhalt
+der mit include eingebundenen Datei jeden Inhalt überschreiben kann, der vor
+der Include-Direktive aufgetaucht ist und Inhalt nach der Direktive alles
+aus der eingebundenen Datei überschreiben kann. Jedes Symbol (oder sogar
+weitere #include-Direktiven) in der eingebundenen Datei kann zusätzliche
+Kennzeichnungen spezifizieren oder Werte der vererbten Kennzeichnungen in
+ihrer Kennzeichnungsspezifikation überschreiben. Allerdings gibt es keine
+Möglichkeit für ein Symbol, die ererbten Kennzeichnungen zu überschreiben.
+
+Eine eingebundene Datei kann die Kopfzeile wiederholen, die den SONAME der
+Bibliothek enthält. In diesem Fall überschreibt sie jede vorher gelesene
+Kopfzeile. Allerdings ist es im Allgemeinen am besten, die Wiederholung von
+Kopfzeilen zu vermeiden. Eine Art, dies zu erreichen, ist wie folgt:
+
+ #include "libirgendwas1.symbols.common"
+ arch_spezifisches_Symbol@Base 1.0
+
+=head1 SIEHE AUCH
+
+B<deb-symbols>(5), B<dpkg-shlibdeps>(1), B<dpkg-gensymbols>(1).
+
+
+=head1 ÜBERSETZUNG
+
+Die deutsche Übersetzung wurde 2004, 2006-2020 von Helge Kreutzmann
+<debian@helgefjell.de>, 2007 von Florian Rehnisch <eixman@gmx.de> und
+2008 von Sven Joachim <svenjoac@gmx.de>
+angefertigt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die
+GNU General Public License Version 2 oder neuer für die Kopierbedingungen.
+Es gibt KEINE HAFTUNG.