summaryrefslogtreecommitdiff
path: root/man/de/dpkg-buildflags.1
diff options
context:
space:
mode:
Diffstat (limited to 'man/de/dpkg-buildflags.1')
-rw-r--r--man/de/dpkg-buildflags.1320
1 files changed, 320 insertions, 0 deletions
diff --git a/man/de/dpkg-buildflags.1 b/man/de/dpkg-buildflags.1
new file mode 100644
index 0000000..77d661e
--- /dev/null
+++ b/man/de/dpkg-buildflags.1
@@ -0,0 +1,320 @@
+.\" dpkg manual page - dpkg-buildflags(1)
+.\"
+.\" Copyright © 2010-2011 Raphaël Hertzog <hertzog@debian.org>
+.\" Copyright © 2011 Kees Cook <kees@debian.org>
+.\"
+.\" This is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <http://www.gnu.org/licenses/>.
+.
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH dpkg\-buildflags 1 2012\-04\-03 Debian\-Projekt dpkg\-Programmsammlung
+.SH NAME
+dpkg\-buildflags \- liefert Bauschalter zum Einsatz beim Paketbau
+.
+.SH ÜBERSICHT
+\fBdpkg\-buildflags\fP [\fIOption\fP ?] [\fIBefehl\fP]
+.
+.SH BESCHREIBUNG
+\fBdpkg\-buildflags\fP ist ein Werkzeug, das zum Abfragen der zu verwendenden
+Kompilierungsschalter für den Bau von Debian\-Paketen eingesetzt wird.
+.
+Die Standardschalter werden vom Lieferanten definiert, sie können auf
+mehrere Arten erweitert/überschrieben werden:
+.IP 1.
+systemweit mit \fB/etc/dpkg/buildflags.conf\fP
+.IP 2.
+für den aktuellen Benutzer mit \fB$XDG_CONFIG_HOME/dpkg/buildflags.conf\fP,
+wobei \fB$XDG_CONFIG_HOME\fP standardmäßig auf \fB$HOME/.config\fP gesetzt ist
+.IP 3.
+temporär durch den Benutzer mittels Umgebungsvariablen (siehe Abschnitt
+\fBUMGEBUNG\fP)
+.IP 4.
+dynamisch durch den Paketverwalter mittels Umgebungsvariablen, die über
+\fBdebian/rules\fP gesetzt wurden (siehe Abschnitt \fBUMGEBUNG\fP)
+.P
+Die Konfigurationsdateien können zwei Arten von Direktiven enthalten:
+.TP
+\fBSET\fP\fI Schalter Wert\fP
+Überschreibt den Schalter namens \fISchalter\fP, um den Wert \fIWert\fP zu
+erhalten.
+.TP
+\fBSTRIP\fP\fI Schalter Wert\fP
+Aus dem Schalter namens \fISchalter\fP alle in \fIWert\fP aufgeführten Bauschalter
+entfernen
+.TP
+\fBAPPEND\fP\fI Schalter Wert\fP
+Erweitert den Schalter namens \fISchalter\fP durch Anhängen der in \fIWert\fP
+angegebenen Optionen. Ein Leerzeichen wird vor den angehängten Wert
+vorangestellt, falls der derzeitige Wert nicht leer ist.
+.TP
+\fBPREPEND\fP\fI Schalter Wert\fP
+Erweitert den Schalter namens \fISchalter\fP durch Voranstellen der in \fIWert\fP
+angegebenen Optionen. Ein Leerzeichen wird hinter den vorangestellten Wert
+angehängt, falls der derzeitige Wert nicht leer ist.
+.P
+Die Konfigurationsdateien können Kommentare auf Zeilen enthalten, die mit
+einer Raute (#) beginnen. Leere Zeilen werden auch ignoriert.
+.SH BEFEHLE
+.TP
+\fB\-\-dump\fP
+Auf der Standardausgabe alle Kompilierschalter und ihre Werte ausgeben. Es
+wird ein Schalter pro Zeile ausgegeben, wobei der Werte durch ein
+Gleichheitszeichen (»\fISchalter\fP=\fIWert\fP«) abgetrennt wird. Dies ist die
+Standardaktion.
+.TP
+\fB\-\-list\fP
+Gibt die Liste der vom aktuellen Lieferanten unterstützen Schalter (eine pro
+Zeile) aus. Lesen Sie den Abschnitt \fBUNTERSTÜTZTE SCHALTER\fP für weitere
+Informationen über sie.
+.TP
+\fB\-\-export=\fP\fIFormat\fP
+Auf der Standardausgabe Shell\- (falls \fIFormat\fP \fBsh\fP ist) oder Make\- (falls
+\fIFormat\fP \fBmake\fP ist) Befehle ausgeben, die dazu verwandt werden können,
+alle Kompilierschalter in die Umgebung zu exportieren. Falls \fIFormat\fP
+\fBconfigure\fP lautet, kann die Ausgabe für eine Kommandozeile von
+\&\fB./configure\fP verwandt werden. Falls der Wert von \fIFormat\fP nicht angegeben
+wird, wird \fBsh\fP angenommen. Nur Kompilierschalter, die mit einem
+Großbuchstaben beginnen, werden aufgenommen. Bei allen anderen wird
+angenommen, dass sie für die Umgebung nicht geeignet sind.
+.TP
+\fB\-\-get\fP\fI Schalter\fP
+Gibt den Wert des Schalters auf der Standardausgabe aus. Beendet sich mit 0,
+falls der Schalter bekannt ist, andernfalls mit 1.
+.TP
+\fB\-\-origin\fP\fI Schalter\fP
+Gibt den Ursprung des von \fB\-\-get\fP gelieferten Werts aus. Beendet sich mit
+0, falls der Schalter bekannt ist, andernfalls mit 1. Der Ursprung kann
+einer der folgenden Werte sein:
+.RS
+.TP
+\fBvendor\fP
+der ursprünglich vom Lieferanten gesetzte Schalter wird zurückgeliefert
+.TP
+\fBsystem\fP
+der Schalter wurde durch eine systemweite Konfiguration gesetzt/verändert
+.TP
+\fBuser\fP
+der Schalter wurde durch eine benutzerspezifische Konfiguration
+gesetzt/verändert
+.TP
+\fBenv\fP
+der Schalter wurde durch eine umgebungsspezifische Konfiguration
+gesetzt/verändert
+.RE
+.TP
+\fB\-\-query\-features\fP\fI Bereich\fP
+Gibt die Funktionalitäten, die für den übergebenen Bereich aktiviert sind,
+aus. Der einzige derzeit erkannte Bereich ist \fBhardening\fP. Beendet sich mit
+0, falls der Bereich bekannt ist, andernfalls mit 1.
+.IP
+Das Ausgabeformat ist im Kopfzeilen\-Stil von RFC822, mit einem Abschnitt pro
+Funktionalität. Beispiel:
+.IP
+.nf
+ Feature: pie
+ Enabled: no
+
+ Feature: stackprotector
+ Enabled: yes
+.fi
+.TP
+\fB\-\-help\fP
+Zeige den Bedienungshinweis und beende.
+.TP
+\fB\-\-version\fP
+Gebe die Version aus und beende sich.
+.
+.SH "UNTERSTÜTZTE SCHALTER"
+.TP
+\fBCFLAGS\fP
+Optionen für den C\-Compiler. Der vom Lieferanten gesetzte Standardwert
+enthält \fI\-g\fP und die Standard Optimierungsstufe (normalerweise \fI\-O2\fP oder
+\fI\-O0\fP, falls die Umgebungsvariable \fBDEB_BUILD_OPTIONS\fP \fInoopt\fP definiert.
+.TP
+\fBCPPFLAGS\fP
+Optionen für den C\-Präprozessor. Standardwert: leer
+.TP
+\fBCXXFLAGS\fP
+Optionen für den C++\-Compiler. Identisch zu \fBCFLAGS\fP.
+.TP
+\fBFFLAGS\fP
+Optionen für den Fortran\-Compiler. Identisch zu \fBCFLAGS\fP.
+.TP
+\fBLDFLAGS\fP
+Optionen die beim Linken von Programmen oder Laufzeitbibliotheken an den
+Compiler weitergegeben werden (falls der Linker direkt aufgerufen wird,
+müssen \fB\-Wl\fP und \fB,\fP aus diesen Optionen entfernt werden). Standardmäßig
+leer.
+.
+.SH DATEIEN
+.TP
+\fB/etc/dpkg/buildflags.conf\fP
+Systemweite Konfigurationsdatei
+.TP
+\fB$XDG_CONFIG_HOME/dpkg/buildflags.conf\fP oder \fB$HOME/.config/dpkg/buildflags.conf\fP
+Benutzer\-Konfigurationsdatei
+.SH UMGEBUNG
+Es gibt einen Satz von zwei Umgebungsvariablen, die den gleichen Vorgang
+durchführen. Der erste (DEB_\fISchalter\fP_\fIVorg\fP) sollte niemals innerhalb
+von \fBdebian/rules\fP verwandt werden. Er ist für Benutzer gedacht, die das
+Quellpaket mit anderen Bauschaltern erneut bauen möchten. Der zweite Satz
+(DEB_\fISchalter\fP_MAINT_\fIVorg\fP) sollte nur durch Paketbetreuer in
+\fBdebian/rules\fP verwandt werden, um die entstehenden Bauschalter zu ändern.
+.TP
+\fBDEB_\fP\fISchalter\fP\fB_SET\fP
+.TQ
+\fBDEB_\fP\fISchalter\fP\fB_MAINT_SET\fP
+Diese Variable kann zum Erzwingen des für \fISchalter\fP zurückgegebenen Werts
+verwandt werden.
+.TP
+\fBDEB_\fP\fISchalter\fP\fB_STRIP\fP
+.TQ
+\fBDEB_\fP\fISchalter\fP\fB_MAINT_STRIP\fP
+Diese Variable kann zum Bereitstellen einer durch Leerzeichen getrennten
+Liste von Optionen verwandt werden, die aus dem Satz von \fISchalter\fP
+zurückgelieferten Schaltern entfernt werden.
+.TP
+\fBDEB_\fP\fISchalter\fP\fB_APPEND\fP
+.TQ
+\fBDEB_\fP\fISchalter\fP\fB_MAINT_APPEND\fP
+Diese Variable kann zum Anhängen ergänzender Optionen zum Wert, der von
+\fISchalter\fP zurückgegeben wird, verwandt werden.
+.TP
+\fBDEB_\fP\fISchalter\fP\fB_PREPEND\fP
+.TQ
+\fBDEB_\fP\fISchalter\fP\fB_MAINT_PREPEND\fP
+Diese Variable kann zum Voranstellen ergänzender Optionen zum Wert, der von
+\fISchalter\fP zurückgegeben wird, verwandt werden.
+.TP
+\fBDEB_BUILD_MAINT_OPTIONS\fP
+Diese Variable kann zum Deaktivieren oder Aktivieren verschiedener
+Härtungsbauschalter durch die Option \fBhardening\fP verwandt werden. Lesen Sie
+den Abschnitt \fBHÄRTUNG\fP für weitere Details.
+.
+.SH HÄRTUNG
+Mehrere Kompilierzeit\-Optionen (weiter unten beschrieben) können dazu
+verwandt werden, ein erstelltes Programm gegen Speicherverfälschungsangriffe
+zu härten, oder zusätzliche Warnungsmeldungen während der Übersetzung
+auszugeben. Sie werden für Architekturen, die diese unterstützen,
+standardmäßig aktiviert; die Ausnahmen sind unten angegeben.
+.P
+Jede Härtungsfunktionalität kann durch den entsprechenden \fBHärtungs\-\fP\-Wert
+in der Umgebungsvariablen \fBDEB_BUILD_MAINT_OPTIONS\fP mit den »+«\- und
+»\-«\-Schaltern aktiviert und deaktiviert werden. Soll beispielsweise die
+»pie«\-Funktionalität aktiviert und die »fortify«\-Funktionalität deaktiviert
+werden, können Sie Folgendes in \fBdebian/rules\fP verwenden:
+.P
+ export DEB_BUILD_MAINT_OPTIONS=hardening=+pie,\-fortify
+.P
+Die spezielle Funktionalität \fBall\fP kann dazu verwandt werden, alle
+Härtungsfunktionalitäten auf einmal zu aktivieren oder zu deaktiveren. Um
+daher alles zu deaktiveren und nur »format« und »fortify« zu aktiveren, kann
+Folgendes eingesetzt werden:
+.P
+ export DEB_BUILD_MAINT_OPTIONS=hardening=\-all,+format,+fortify
+.
+.TP
+\fBformat\fP
+Diese Einstellung (standardmäßig aktiviert) fügt \fB\-Wformat
+\-Werror=format\-security\fP zu \fBCFLAGS\fP und \fBCXXFLAGS\fP hinzu. Damit wird über
+inkorrekte Formatzeichenkettenverwendungen gewarnt und zu einem Fehler
+führen, wenn Formatfunktionen deart verwandt werden, dass daraus ein
+mögliches Sicherheitsproblem werden könnte. Derzeit warnt dies über Aufrufe
+auf \fBprintf\fP\- und \fBscanf\fP\-Funktionen, bei denen die Formatzeichenkette
+nicht eine reine Zeichenkette ist und es keine Formatargumente gibt, wie in
+\fBprintf(foo);\fP statt \fBprintf("%s", foo);\fP. Dies könnte ein
+Sicherheitsproblem sein, falls die Formatzeichenkette aus einer
+unvertrauenswürdigen Eingabe stammt und »%n« enthält.
+.
+.TP
+\fBfortify\fP
+Diese Einstellung (standardmäßig aktiviert) fügt \fB\-D_FORTIFY_SOURCE=2\fP zu
+\fBCPPFLAGS\fP hinzu. Während der Code\-Erstellung hat der Compiler umfangreiche
+Informationen über Puffergrößen (wo möglich) und versucht, unsichere
+unbegrenzte Pufferfunktionsaufrufe durch längenbegrenzte zu ersetzen. Das
+ist besonders für alten, verkramten Code nützlich. Zusätzlich werden
+Formatzeichenketten in schreibbarem Speicher, die »%n« enthalten,
+blockiert. Falls eine Anwendung von solchen Formatzeichenketten abhängt,
+müssen dafür andere Lösungsmöglichkeiten gefunden werden.
+
+Beachten Sie, dass die Quellen auch mit \fB\-O1\fP oder höher kompiliert werden
+müssen, damit diese Option einen Effekt hat.
+.TP
+\fBstackprotector\fP
+Diese Einstellung (standardmäßig aktiviert) fügt \fB\-fstack\-protector
+\-\-param=ssp\-buffer\-size=4\fP zu \fBCFLAGS\fP und \fBCXXFLAGS\fP hinzu. Dies fügt
+Sicherheitsprüfungen gegen die Überschreibung des Stapelspeichers (Stacks)
+hinzu. Damit werden viele mögliche Code\-Einfügeangriffe zu
+Abbruchsituationen. Im besten Fall werden damit Code\-Einfügungsangriffe zu
+Diensteverweigerungsangriffen oder zu keinen Problemen (abhängig von der
+Anwendung).
+
+Diese Funktionalität benötigt das Linken mit Glibc (oder einem anderen
+Anbieter von \fB__stack_chk_fail\fP). Sie muss daher deaktiviert werden, wenn
+mit \fB\-nostdlib\fP oder \fB\-ffreestanding\fP oder Ähnlichem gebaut wird.
+.
+.TP
+\fBrelro\fP
+Diese Einstellung (standardmäßig aktiviert) fügt \fB\-Wl,\-z,relro\fP zu
+\fBLDFLAGS\fP hinzu. Während des Ladens des Programms müssen mehrere
+ELF\-Speicherabschnitte vom Binder (Linker) geschrieben werden. Diese
+Einstellung signalisiert dem Ladeprogramm, diese Abschnitte in
+nur\-Lese\-Zugriff zu ändern, bevor die Steuerung an das Programm übergeben
+wird. Insbesondere verhindert dies GOT\-Überschreibeangriffe. Falls diese
+Option deaktiviert ist, wird auch \fBbindnow\fP deaktiviert.
+.
+.TP
+\fBbindnow\fP
+Diese Einstellung (standardmäßig deaktiviert) fügt \fB\-Wl,\-z,now\fP zu
+\fBLDFLAGS\fP hinzu. Während des Ladens des Programms werden alle dynamischen
+Symbole aufgelöst, womit das gesamte PLT nur\-lesend markiert werden kann
+(aufgrund von \fBrelro\fP oben). Diese Option kann nicht aktiviert werden,
+falls \fBrelro\fP nicht aktiviert ist.
+.
+.TP
+\fBpie\fP
+Diese Einstellung (standardmäßig deaktiviert) fügt \fB\-fPIE\fP zu \fBCFLAGS\fP und
+\fBCXXFLAGS\fP sowie \fB\-fPIE \-pie\fP zu \fBLDFLAGS\fP hinzu. »Position Independent
+Executable« (positionsunabhängige Programme) werden benötigt, um »Address
+Space Layout Randomization« (Bereitstellung eines zufälligen
+Adressbereichlayouts) auszunutzen, der von einigen Kernelversionen
+bereitgestellt wird. Während ASLR bereits für Datenbereiche auf dem Stapel
+(Stack) und Heap erzwungen werden kann (brk und mmap), müssen die
+Codebereiche positionsunabhängig übersetzt werden. Laufzeitbibliotheken
+machen dies bereits (\-fPIC), so dass sie ASLR automatisch erhalten, aber
+Programm\-.text\-Regionen müssen mit PIE gebaut werden, um ASLR zu
+erhalten. Wenn dies passiert, sind ROP\- (Return Oriented Programming)
+Angriffe sehr viel schwerer durchzuführen, da es keine statischen Orte mehr
+gibt, zu denen während eines Speicherverfälschungsangriffs hingesprungen
+werden könnte.
+
+Dies ist nicht mit \fB\-fPIC\fP kompatibel, daher muss beim Erstellen von
+Laufzeitbibliotheken Vorsicht angewandt werden.
+
+Zusätzlich können auf einigen Architekturen (am deutlichsten auf i368)
+Leistungsverluste von bis zu 15% in sehr text\-Segment\-lastigen
+Anwendungsfällen auftreten, da PIE über allgemeine Register implementiert
+ist; in den meisten Anwendungsfällen sind dies weniger als 1%. Architekturen
+mit mehr allgemeinen Registern (z.B. Amd64) erfahren nicht diese
+Schlimmstfall\-Strafe.
+.SH ÜBERSETZUNG
+Die deutsche Übersetzung wurde 2004, 2006-2012 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.