summaryrefslogtreecommitdiff
path: root/package/aboot/src/doc/man/de
diff options
context:
space:
mode:
Diffstat (limited to 'package/aboot/src/doc/man/de')
-rw-r--r--package/aboot/src/doc/man/de/Makefile46
-rw-r--r--package/aboot/src/doc/man/de/aboot.conf.sgml108
-rw-r--r--package/aboot/src/doc/man/de/aboot.sgml89
-rw-r--r--package/aboot/src/doc/man/de/abootconf.sgml146
-rw-r--r--package/aboot/src/doc/man/de/docbook2man-de-spec.pl1304
-rw-r--r--package/aboot/src/doc/man/de/e2writeboot.845
-rw-r--r--package/aboot/src/doc/man/de/isomarkboot.sgml92
-rw-r--r--package/aboot/src/doc/man/de/netabootwrap.sgml107
-rw-r--r--package/aboot/src/doc/man/de/sdisklabel.sgml247
-rw-r--r--package/aboot/src/doc/man/de/srmbootfat.sgml86
-rw-r--r--package/aboot/src/doc/man/de/srmbootraw.sgml84
-rw-r--r--package/aboot/src/doc/man/de/swriteboot.861
12 files changed, 2415 insertions, 0 deletions
diff --git a/package/aboot/src/doc/man/de/Makefile b/package/aboot/src/doc/man/de/Makefile
new file mode 100644
index 000000000..22ef583a1
--- /dev/null
+++ b/package/aboot/src/doc/man/de/Makefile
@@ -0,0 +1,46 @@
+all: srmbootraw.de.8 aboot.de.8 aboot.conf.de.5 abootconf.de.8 isomarkboot.de.1 sdisklabel.de.8 srmbootfat.de.1 e2writeboot.de.8 swriteboot.de.8 netabootwrap.de.1
+
+aboot.de.8: aboot.sgml
+ nsgmls aboot.sgml | sgmlspl docbook2man-de-spec.pl
+ mv aboot.8 aboot.de.8
+
+aboot.conf.de.5: aboot.conf.sgml
+ nsgmls aboot.conf.sgml | sgmlspl docbook2man-de-spec.pl
+ mv aboot.conf.5 aboot.conf.de.5
+
+abootconf.de.8: abootconf.sgml
+ nsgmls abootconf.sgml | sgmlspl docbook2man-de-spec.pl
+ mv abootconf.8 abootconf.de.8
+
+netabootwrap.de.1: netabootwrap.sgml
+ nsgmls netabootwrap.sgml | sgmlspl docbook2man-de-spec.pl
+ mv netabootwrap.1 netabootwrap.de.1
+
+isomarkboot.de.1: isomarkboot.sgml
+ nsgmls isomarkboot.sgml | sgmlspl docbook2man-de-spec.pl
+ mv isomarkboot.1 isomarkboot.de.1
+
+sdisklabel.de.8: sdisklabel.sgml
+ nsgmls sdisklabel.sgml | sgmlspl docbook2man-de-spec.pl
+ mv sdisklabel.8 sdisklabel.de.8
+
+srmbootfat.de.1: srmbootfat.sgml
+ nsgmls srmbootfat.sgml | sgmlspl docbook2man-de-spec.pl
+ mv srmbootfat.1 srmbootfat.de.1
+
+srmbootraw.de.8: srmbootraw.sgml
+ nsgmls srmbootraw.sgml | sgmlspl docbook2man-de-spec.pl
+ mv srmbootraw.8 srmbootraw.de.8
+
+e2writeboot.de.8: e2writeboot.8
+ ln -s e2writeboot.8 e2writeboot.de.8
+
+swriteboot.de.8: swriteboot.8
+ ln -s swriteboot.8 swriteboot.de.8
+
+clean :
+ rm -f *.html *.de.? srmbootraw.8 srmbootfat.1 sdisklabel.8 isomarkboot.8 abootconf.8 aboot.conf.5 aboot.8 netabootwrap.1 manpage.links manpage.log manpage.refs
+ rm -rf SRM-HOWTO
+
+
+#.PHONY clean
diff --git a/package/aboot/src/doc/man/de/aboot.conf.sgml b/package/aboot/src/doc/man/de/aboot.conf.sgml
new file mode 100644
index 000000000..5702c70db
--- /dev/null
+++ b/package/aboot/src/doc/man/de/aboot.conf.sgml
@@ -0,0 +1,108 @@
+<!DOCTYPE RefEntry PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
+<refentry id="aboot.conf">
+
+<refmeta>
+<refentrytitle>aboot.conf</refentrytitle>
+<manvolnum>5</manvolnum>
+<refmiscinfo>aboot.conf</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>aboot.conf</refname>
+<refpurpose>Die Konfigurationsdatei für <application>aboot</application>(8)
+</refpurpose>
+</refnamediv>
+
+<refsect1><title>BESCHREIBUNG</title>
+<para>
+<indexterm><primary>aboot.conf</primary></indexterm>
+<filename>aboot.conf</filename> enthält eine Liste von Boot-Einstellungen
+für <application>aboot</application>(8). Jede Boot-Einstellung hat eine
+eindeutige Zahl, die am SRM-Prompt angegeben werden kann.
+<indexterm><primary>SRM</primary></indexterm>.
+</para>
+<para>
+<filename>aboot.conf</filename> muß sich in einem Verzeichnis names
+<filename>etc</filename> auf der <emphasis>gleichen Partition</emphasis>
+wie Ihre Kernel befinden, es sei den, Sie geben explizit die Partition
+für Ihre Kernel an (siehe dazu die Ausführungen weiter unten). Falls Sie
+also eine seperate Boot-Partition (namens <filename>/boot</filename>)
+erzeugen, dann sollte <filename>aboot.conf</filename> in
+<filename>/boot/etc/</filename> liegen.
+</para>
+<para>
+Im folgenden Beispiel liegen die Kernel auf einer anderen Partition (hda4)
+als <filename>/</filename> (hda5), während in der fünften Zeile
+<filename>/boot</filename> auf der gleichen Partition (hda6) wie
+<filename>/</filename> liegt. Daher kann sich <filename>aboot.conf</filename>
+auf einer der drei Partitionen befinden, muß aber <emphasis>immer</emphasis>
+in einem Verzeichnis namens <filename>etc</filename> relativ zur obersten
+Verzeichnisebene auf dieser Partition angelegt sein. Die zu verwendene
+Partition können Sie mittels <application>abootconf</application>(8)
+ändern.
+</para>
+<para><example>
+<title>BEISPIEL <filename>aboot.conf</filename></title>
+<blockquote>
+<literallayout>
+0:4/vmlinuz root=/dev/hda5
+1:4/vmlinuz root=/dev/hda5 single
+2:4/vmlinuz.old ro root=/dev/hda5
+3:4/vmlinuz-2.4.9-32 root=/dev/sdc3 initrd=/initrd-2.4.9-32.img console=tty0
+8:6/boot/vmlinuz ro root=/dev/hda6
+</literallayout>
+</blockquote>
+</example></para>
+<para>
+Die erste Zahl ist ein eindeutige Identifikation für jede Boot-Konfiguration.
+Um eine bestimmte Konfiguration am SRM-Prompt zu booten, geben Sie
+</para>
+<para>
+<command>
+boot <parameter>dka0 -fl "0"</parameter>
+</command>
+</para>
+<para>
+ein, wobei dka0 durch Ihr Boot-Gerät und die 0 durch die zur bootende,
+in <filename>etc/aboot.conf</filename> angegegebene Konfigurationszahl
+ersetzt werden muß.
+</para>
+
+<para>
+Nach dem Doppelpunkt ist die Partition, auf der sich der Kernel befindet,
+angegeben. 1 entspricht der BSD-Partition mit Namen A:, 2 B: und so weiter.
+</para>
+
+<para>
+Nach dem Schrägstrich ist der Name (ggf. inklusive des zugehörigen Pfads)
+des zu bootenden Kernels angegeben. Falls sich Ihr Kernel nicht in einem
+Dateisystem, sondern direkt nach <application>aboot</application>(8) am Anfang
+der Festplatte befindet lassen Sie die Zahl, den Schrägstrich und den
+Kernelnamen weg.
+</para>
+
+<para>
+Als nächstes ist die als <filename>/</filename> zu montierende Partition
+angegeben. Andere benötigte Kernel-Parameter folgen. Wie gezeigt kann auch
+eine initrd angegeben werden.
+</para>
+
+<para>
+Der Inhalt dieser Datei kann vor dem Booten mittels des interaktiven
+Modus -- durch Booten mit dem Paramter "i" --
+von <application>aboot</application>(8) und der Angabe von
+"h" am <application>aboot</application>-Prompt angezeigt werden.
+</para>
+
+</refsect1>
+<refsect1><title>AUTOR</title>
+<para>
+Diese Handbuchseite wurde von Helge Kreutzmann
+<email>debian@helgefjell.de</email> für das Debian GNU/Linux-Projekt
+geschrieben, sie darf aber auch von anderen verwendet werden.
+</para>
+</refsect1>
+<refsect1><title>SIEHE AUCH</title>
+<para><application>aboot</application>(8), <application>abootconf</application>(8), <application>swriteboot</application>(8), HP SRM Handbuch (<ULink URL="http://h18002.www1.hp.com/alphaserver/download/srm_reference.pdf"></ULink>)
+</refsect1>
+</refentry>
diff --git a/package/aboot/src/doc/man/de/aboot.sgml b/package/aboot/src/doc/man/de/aboot.sgml
new file mode 100644
index 000000000..49fa124e6
--- /dev/null
+++ b/package/aboot/src/doc/man/de/aboot.sgml
@@ -0,0 +1,89 @@
+<!DOCTYPE RefEntry PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
+<refentry id="aboot">
+
+<refmeta>
+<refentrytitle>aboot</refentrytitle>
+<manvolnum>8</manvolnum>
+<refmiscinfo>aboot</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>aboot</refname>
+<refpurpose>Der Bootloader (Urlader) der zweiten Stufe auf Linux/Alpha</refpurpose>
+</refnamediv>
+
+<refsect1><title>COPYRIGHT</title>
+<para>
+<application>aboot</application> unterliegt dem Copyright (C) 1996 Linus Torvalds, David Mosberger-Tang und Michael Schwingen
+</para>
+</refsect1>
+
+<refsect1><title>BESCHREIBUNG</title>
+<para>
+<indexterm><primary>aboot</primary></indexterm>
+<application>aboot</application> wird als Bootloader (Urlader) der zweiten
+Stufe benötigt, falls das System via SRM gebootet wird. Er wird normalerweise
+während der Systeminstallation durch
+<application>swriteboot</application>(8) installiert.
+</para>
+<para>
+Um den Bootprozess zu automatisieren können vordefinierte Boot-Konfigurationen
+in <filename>etc/aboot.conf</filename>(5) eingetragen werden.
+</para>
+<para>
+<application>aboot</application> kann durch die Angabe von
+</para>
+<para>
+<command>boot <parameter>dka0 -fl "i"</parameter></command>
+</para>
+<para>
+am SRM-Prompt auch interaktiv verwendet werden, wobei dka0 durch das
+verwendete Gerät ersetzt werden muß.
+</para>
+<para>
+Im interaktiven Modus können Sie das Kommando l zur Anzeige der derzeitigen
+<filename>etc/aboot.conf</filename> verwenden, und durch die Angabe der
+entsprechenden Zahl (oder des kompletten Boot-Kommandos wie bei SRM)
+Linux booten.
+</para>
+<para>
+Falls Sie nicht die von <application>abootconf</application>(8) erstellte
+<filename>etc/aboot.conf</filename> verwenden wollen, können Sie
+<application>aboot</application> explizit angeben, wo es nach der
+<filename>etc/aboot.conf</filename> suchen soll, indem Sie vor die
+Zahl der Konfiguration die passende Partition angeben, d.h. falls
+Ihre <filename>etc/aboot.conf</filename> sich auf Ihrer zweiten Partition
+befindet und Sie den mit 3 benannten Eintrag booten wollen, dann gäben
+Sie an
+</para>
+<para>
+<command>boot <parameter>dqa -fl "2:3"</parameter></command>
+</para>
+<para>
+Beachten Sie, daß dies nur für das Booten von Linux via SRM zutrifft, da
+<ProductName>VMS</ProductName>, <ProductName>Tru64</ProductName>, *BSD und
+<ProductName>Windows NT</ProductName> jeweils über ihren eigenen Bootloader
+für die zweite Stufe verfügen. Desweiteren wird <application>aboot</application>
+nicht benötigt, falls das System mittels <application>milo</application>
+gebootet wird.
+</para>
+</refsect1>
+
+
+<refsect1><title>AUTOR</title>
+<para>
+Diese Handbuchseite wurde von Helge Kreutzmann
+<email>debian@helgefjell.de</email> für das Debian GNU/Linux-Projekt
+geschrieben, sie darf aber auch von anderen verwendet werden.
+</para>
+</refsect1>
+
+<refsect1><title>DATEIEN</title>
+<para><filename>etc/aboot.conf</filename></para>
+</refsect1>
+
+<refsect1><title>SIEHE AUCH</title>
+<para><application>abootconf</application>(8), <filename>aboot.conf</filename>(5),
+<application>swriteboot</application>(8), HP SRM Handbuch (<ULink URL="http://h18002.www1.hp.com/alphaserver/download/srm_reference.pdf"></ULink>)</para>
+</refsect1>
+</refentry>
diff --git a/package/aboot/src/doc/man/de/abootconf.sgml b/package/aboot/src/doc/man/de/abootconf.sgml
new file mode 100644
index 000000000..21cbe5ebf
--- /dev/null
+++ b/package/aboot/src/doc/man/de/abootconf.sgml
@@ -0,0 +1,146 @@
+<!DOCTYPE RefEntry PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
+<refentry id="abootconf">
+
+<refmeta>
+<refentrytitle>abootconf</refentrytitle>
+<manvolnum>8</manvolnum>
+<refmiscinfo>abootconf</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>abootconf</refname>
+<refpurpose>
+Konfiguration des Ortes der Konfigurationsdatei für den Bootloader der zweiten Stufe <application>aboot</application>(8) von Linux/Alpha.
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+ <cmdsynopsis>
+ <command>abootconf</command> <arg choice="plain">/dev/xxx num</arg>
+ </cmdsynopsis>
+</refsynopsisdiv>
+
+<refsect1><title>COPYRIGHT</title>
+<para>
+<application>abootconf</application> unterliegt dem Copyright (C) 1996 Linus Torvalds, David Mosberger-Tang und Michael Schwingen
+</para>
+</refsect1>
+
+<refsect1><title>BESCHREIBUNG</title>
+<para>
+<indexterm><primary>abootconf</primary></indexterm>
+<indexterm><primary>aboot</primary></indexterm>
+<application>abootconf</application> wird zur Änderung der
+Partition<indexterm><primary>partition</primary></indexterm>, in der der Linux
+Boot-Loader (Urlader) <application>aboot</application>(8) nach seiner
+Konfigurationsdatei schaut, verwendet. Die Konfiguration wird in
+<filename>etc/aboot.conf</filename>(5) relativ zur Wurzel des Dateisystems
+auf dieser Partition gespeichert.
+</para>
+<para>
+<application>abootconf</application> benötigt das Boot-Gerät (bspw.
+<filename>/dev/hdb</filename>, <filename>/dev/sda</filename>) und die
+zu verwendende Partition (z.B. 3). Wollen Sie daher von Partition E:
+auf Ihrer zweiten SCSI-Festplatte booten, dann geben Sie</para>
+<para>
+<command>
+abootconf <parameter>/dev/sdb 5</parameter>
+</command>
+</para>
+<para>
+ein.
+</para>
+</refsect1>
+<refsect1><title>HINWEISE</title>
+<para>
+<application>abootconf</application> wird nicht benötigt, wenn Sie Ihr
+alpha-System mittels <application>milo</application> booten.
+</para>
+<para>
+Auf jeder Festplatte kann eine Partition aktiviert werden, die die
+Konfiguration für <application>aboot</application>(8) enthält, welche
+unter <filename>etc/aboot.conf</filename>(5) liegt. Die zu bootende
+Festplatte wird am SRM-Prompt als zweites Argument ausgewählt, also
+beispielsweise
+</para>
+<para>
+<command>
+boot <parameter>dqa</parameter>
+</command>
+</para>
+<para>
+um von der ersten IDE-Festplatte zu booten. Lesen Sie bitte das
+HP SRM-Handbuch und <application>aboot</application>(8) für weitere
+Informationen.
+</para>
+<para>
+<application>aboot</application>(8) kann einen Kernel von einer beliebiegen
+Partition laden und kann soger eine andere Root-Partition verwenden, als die
+zu der <filename>etc/aboot.conf</filename> gehört. Daher sollten Sie
+normalerweise eine <filename>etc/aboot.conf</filename> mit allen Kombinationen
+erstellen und benötigten <application>abootconf</application> außer für
+die Erstinstallation nicht. Sie können dann den gewünschten Linuxkernel über
+die entsprechenden Parameter am SRM-Prompt booten, z.B. um den mit 2
+bezeichneten Eintrag zu booten würden Sie
+</para>
+<para>
+<command>
+boot <parameter>dqa -fl "2"</parameter>
+</command>
+</para>
+<para>
+verwenden. Bitte lesen Sie das HP SRM-Handbuch und
+<filename>aboot.conf</filename>(5) für weitere Informationen.
+</para>
+<para>
+Um die derzeitigen Einstellungen anzuzeigen, lassen Sie einfach das letzte
+Argument fort (d.h. die Partitionsnummer).
+</para>
+<para>
+Beachten Sie, daß Sie <application>abootconf</application> erneut ausführen
+müssen, wenn Sie <application>aboot</application>(8) aktualisiert haben.
+</para>
+<para>
+Streng genommen wird <application>abootconf</application> nicht benötigt,
+da Sie die Partition, auf der <filename>etc/aboot.conf</filename> liegt
+auf dem SRM-Prompt spezifizieren können, indem Sie den Flags-Parameter mit
+der Partitions-Nummer, gefolgt vom einem Doppelpunkt, einleiten, d.h.
+falls <filename>etc/aboot.conf</filename> auf der vierten Partition liegt
+und Sie den Eintrag mit der Nummer 2 booten wollen, dann könnte Sie am
+SRM-Prompt auch
+</para>
+<para>
+<command>
+boot <parameter>dqa -fl "4:2"</parameter>
+</command>
+</para>
+<para>
+eingeben.
+</para>
+<para>
+Beachten Sie, daß dies nur auf Linux zutrifft, da
+<ProductName>VMS</ProductName>, <ProductName>Tru64</ProductName>, *BSD und
+<ProductName>Windows NT</ProductName> jeweils über Ihren eigenen Bootloader
+der zweiten Stufe verfügen.
+</para>
+<para>
+Beachten Sie desweiteren, daß für das erstmalige Aufsetzen auf der Festplatte
+<application>abootconf</application> ebenfalls nicht mehr benötigt wird, da
+<application>swriteboot</application>(8) über die gesamte Funktionalität
+von <application>abootconf</application> verfügt.
+</para>
+</refsect1>
+<refsect1><title>AUTOR</title>
+<para>
+Diese Handbuchseite wurde von Helge Kreutzmann
+<email>debian@helgefjell.de</email> für das Debian GNU/Linux-Projekt
+geschrieben, sie darf aber auch von anderen verwendet werden.
+</para>
+</refsect1>
+<refsect1><title>DATEIEN</title>
+<para><filename>etc/aboot.conf</filename></para>
+</refsect1>
+<refsect1><title>SIEHE AUCH</title>
+<para><application>aboot</application>(8), <application>swriteboot</application>(8), <filename>aboot.conf</filename>(5), HP SRM Handbuch (<ULink URL="http://h18002.www1.hp.com/alphaserver/download/srm_reference.pdf"></ULink>)</para>
+</refsect1>
+</refentry>
diff --git a/package/aboot/src/doc/man/de/docbook2man-de-spec.pl b/package/aboot/src/doc/man/de/docbook2man-de-spec.pl
new file mode 100644
index 000000000..2eed9015e
--- /dev/null
+++ b/package/aboot/src/doc/man/de/docbook2man-de-spec.pl
@@ -0,0 +1,1304 @@
+=head1 NAME
+
+docbook2man-spec - convert DocBook RefEntries to Unix manpages
+
+=head1 SYNOPSIS
+
+The SGMLSpm package from CPAN. This contains the sgmlspl script which
+is used to grok this file. Use it like this:
+
+nsgmls some-docbook-document.sgml | sgmlspl sgmlspl-specs/docbook2man-spec.pl
+
+=head1 OPTIONS
+
+=over 4
+
+=item --section <label>
+
+Use the specified manpage section number,
+if not specified in <MANVOLNUM>. Default is one (1).
+
+=item --date <string>
+
+Use the specified date in the .TH header.
+Default is today.
+
+=item --lowercase | --preserve-case
+
+Convert output file names and cross-references to lower case.
+Default is to convert to upper case.
+
+=head1 DESCRIPTION
+
+This is a sgmlspl spec file that produces Unix-style
+manpages from RefEntry markup.
+
+See the accompanying RefEntry man page for 'plain new' documentation. :)
+
+=head1 LIMITATIONS
+
+Trying docbook2man on non-DocBook or non-conformant SGML results in
+undefined behavior. :-)
+
+This program is a slow, dodgy Perl script.
+
+This program does not come close to supporting all the possible markup
+in DocBook, and will produce wrong output in some cases with supported
+markup.
+
+=head1 TODO
+
+Add new element handling and fix existing handling. Be robust.
+Produce cleanest, readable man output as possible (unlike some
+other converters). Follow Linux man(7) convention.
+If this results in added logic in this script,
+that's okay. The code should still be reasonably organized.
+
+Make it faster. If Perl sucks port it to another language.
+
+=head1 COPYRIGHT
+
+Copyright (C) 1998-1999 Steve Cheng <steve@ggi-project.org>
+
+Copyright (C) 1999 Thomas Lockhart <lockhart@alumni.caltech.edu>
+
+This program 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, or (at your option) any later
+version.
+
+You should have received a copy of the GNU General Public License along with
+this program; see the file COPYING. If not, please write to the Free
+Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+
+=cut
+
+# $Id: docbook2man-de-spec.pl,v 1.1 2004/07/05 09:32:10 kreutzm-guest Exp $
+
+use SGMLS; # Use the SGMLS package.
+use SGMLS::Output; # Use stack-based output.
+use SGMLS::Refs;
+
+
+########################################################################
+# SGMLSPL script produced automatically by the script sgmlspl.pl
+#
+# Document Type: any, but processes only RefEntries
+# Edited by: me :)
+########################################################################
+
+
+$write_manpages = 0;
+$blank_xrefs = 0;
+
+$default_sect = "1";
+$default_date = `date "+%d %B %Y"`; # L10N
+
+while (@ARGV) {
+ my $arg = shift @ARGV;
+ if ($arg eq "--section") {
+ $default_sect = shift @ARGV || die "$arg requires an argument\n"; # L10N
+ } elsif ($arg eq "--date") {
+ $default_date = shift @ARGV || die "$arg requires an argument\n"; # L10N
+ } elsif ($arg eq "--lowercase") {
+ $lowercase_names = 1;
+ } elsif ($arg eq "--preserve-case") {
+ $lowercase_names = 0;
+ } elsif ($arg eq "--help") {
+ print "Usage: $0",
+ " [ --section <label> ]",
+ " [ --date <string> ]",
+ " [ --lowercase | --preserve-case ]",
+ "\n";
+ exit;
+ } else {
+ die "unrecognized switch $arg; try $0 --help\n"; # L10N
+ }
+}
+
+sgml('start', sub {
+ push_output('nul');
+ $raw_cdata = 1; # Makes it a bit faster.
+
+ # Links file
+ open(LINKSFILE, ">manpage.links");
+
+ $Refs = new SGMLS::Refs("manpage.refs", "manpage.log");
+});
+sgml('end', sub {
+ close(LINKSFILE);
+
+ # Explicitly invoke destructor,
+ # otherwise cache file may not get written!
+ # Thomas Lockhart, 1999-08-03, perl-5.004, RedHat5.2
+ undef $Refs;
+
+ if($blank_xrefs) {
+ warn "Warning: output contains unresolved XRefs\n"; # L10N
+ }
+});
+
+
+########################################################################
+#
+# Output helpers
+#
+########################################################################
+
+# Remove leading and trailing blanks.
+
+sub StripString
+{
+ my $str = shift;
+
+ $str = $1 if ($str =~ m#^\s*(\S.*)#);
+ $str = $1 if ($str =~ m#^(.*\S)\s*$#);
+
+ return $str;
+}
+
+# Generate a good file name, for given manpage title and manvolnum
+# (cdata content).
+# Cleanup whitespace and convert to lower case if required.
+
+sub FileInfo
+{
+ my $title = StripString(shift);
+ my $volnum = StripString(shift);
+
+ $title = lc $title if $lowercase_names;
+
+ $title =~ tr/ /_/;
+ $volnum =~ tr/ /_/;
+
+ # The 'package name' part of the section should
+ # not be used when citing it.
+ my $sectcite = $1 if ($volnum =~ /([0-9]*)/);
+
+ return ("$title.$volnum", "$title($sectcite)");
+}
+
+# Our own version of sgml() and output() to allow simple string output
+# to play well with roff's stupid whitespace rules.
+
+sub man_sgml
+{
+ if(ref($_[1]) eq 'CODE') {
+ return &sgml;
+ }
+
+ my $s = $_[1];
+ $s =~ s/\\/\\\\/g;
+ $s =~ s/'/\\'/g;
+
+ sgml($_[0], eval("sub { man_output '$s' }"));
+}
+
+sub man_output
+{
+ if($separator eq 'full') {
+ output "\n" unless $newline_last++;
+ output ".PP\n";
+ $separator = '';
+ }
+
+ $_ = shift;
+ if(s/^\n//) {
+ output "\n" unless $newline_last++;
+ }
+ return if $_ eq '';
+
+ output $_;
+
+ if(@_) {
+ output @_;
+ $newline_last = (pop(@_) =~ /\n$/);
+ } else {
+ $newline_last = ($_ =~ /\n$/)
+ }
+}
+
+# Fold lines into one, quote some characters
+sub fold_string
+{
+ $_ = shift;
+
+ s/\\/\\\\/g;
+ s/"/\\\&"/g;
+
+ # Change tabs and newlines to spaces
+ # The newlines will be swallowed later while trimming
+ tr/[\t\n]/ /;
+
+ # Trim whitespace from beginning and end.
+ s/^ +//;
+ s/ +$//;
+
+ return $_;
+}
+
+sub save_cdata()
+{
+ $raw_cdata++;
+ push_output('string');
+}
+
+sub bold_on()
+{
+ # If the last font is also bold, don't change anything.
+ # Basically this is to just get more readable man output.
+ if($fontstack[$#fontstack] ne 'bold') {
+ if(!$raw_cdata) {
+ output '\fB';
+ #$newline_last = 0;
+ }
+ }
+ push(@fontstack, 'bold');
+}
+
+sub italic_on()
+{
+ # If the last font is also italic, don't change anything.
+ if($fontstack[$#fontstack] ne 'italic') {
+ if(!$raw_cdata) {
+ output '\fI';
+ #$newline_last = 0;
+ }
+ }
+ push(@fontstack, 'italic');
+}
+
+sub font_off()
+{
+ my $thisfont = pop(@fontstack);
+ my $lastfont = $fontstack[$#fontstack];
+
+ # Only output font change if it is different
+ if($thisfont ne $lastfont) {
+ if($raw_cdata) { return; }
+ elsif($lastfont eq 'bold') { output '\fB'; }
+ elsif($lastfont eq 'italic') { output '\fI'; }
+ else { output '\fR'; }
+
+ #$newline_last = 0;
+ }
+}
+
+
+########################################################################
+#
+# Manpage management
+#
+########################################################################
+
+sgml('<REFENTRY>', sub {
+ # This will be overwritten at end of REFMETA, when we know the name of the page.
+ pop_output();
+
+ $write_manpages = 1; # Currently writing manpage.
+
+ $nocollapse_whitespace = 0; # Current whitespace collapse counter.
+ $newline_last = 1; # At beginning of line?
+ # Just a bit of warning, you will see this variable manipulated
+ # manually a lot. It makes the code harder to follow but it
+ # saves you from having to worry about collapsing at the end of
+ # parse, stopping at verbatims, etc.
+ $raw_cdata = 0; # Instructs certain output functions to
+ # leave CDATA alone, so we can assign
+ # it to a string and process it, etc.
+ @fontstack = (); # Fonts being activated.
+
+ $list_nestlevel = 0; # Indent certain nested content.
+
+ # Separator to use between 'elements' in the content of a
+ # paragraph (usually). This makes sure that PCDATA after a list
+ # in a PARA gets a break in between and not become part of the
+ # last listitem. Note that we can't do it after the list ends,
+ # because often the list ends the paragraph and we'll get an
+ # extra break. Anything that changes the separator status from
+ # the default should also save its last state in the parent
+ # element's ext, but I'm not going to explain further. It's a
+ # gross hack and almost guaranteed to fail in unforseen cases.
+ # The only way to avoid all this is to use a tree/grove model, which
+ # we're _not_ doing.
+ $separator = '';
+
+ $manpage_title = ''; # Needed for indexing.
+ $manpage_sect = '';
+ @manpage_names = ();
+
+ $manpage_misc = '';
+});
+sgml('</REFENTRY>', sub {
+ if(!$newline_last) {
+ output "\n";
+ }
+
+ $raw_cdata = 1;
+ push_output('nul');
+
+ $write_manpages = 0;
+});
+
+sgml('</REFMETA>', sub {
+ my ($filename, $citation) =
+ FileInfo($manpage_title, $manpage_sect || $default_sect);
+
+ push_output('file', $filename);
+
+ output <<_END_BANNER;
+.\\" This manpage has been automatically generated by docbook2man-spec
+.\\" from a DocBook document. docbook2man-spec can be found at:
+.\\" <http://shell.ipoline.com/~elmert/hacks/docbook2X/>
+.\\" Please send any bug reports, improvements, comments, patches,
+.\\" etc. to Steve Cheng <steve\@ggi-project.org>.
+_END_BANNER
+
+ my $manpage_date = $_[0]->parent->ext->{'date'} || $default_date;
+
+ output '.TH "';
+
+ # If the title is not mixed-case, convention says to
+ # uppercase the whole title. (The canonical title is
+ # lowercase.)
+ if($manpage_title =~ /[A-Z]/) {
+ output fold_string($manpage_title);
+ } else {
+ output uc(fold_string($manpage_title));
+ }
+
+ output '" "', fold_string($manpage_sect),
+ '" "', fold_string($manpage_date),
+ '" "', $manpage_misc,
+ '" "', $manpage_manual,
+ "\"\n";
+
+ $newline_last = 1;
+
+ # References to this RefEntry.
+ if(defined($_[0]->parent->attribute('ID')->value)) {
+ my $id = $_[0]->parent->attribute('ID')->value;
+
+ # Append XREFLABEL content to citations.
+ if(defined($_[0]->parent->attribute('XREFLABEL')->value)) {
+ $citation = $_[0]->parent->attribute('XREFLABEL')->value .
+ ' [' . $citation . ']';
+ }
+
+ $Refs->put("refentry:$id", $citation);
+ }
+});
+
+sgml('<REFENTRYTITLE>', sub {
+ if($_[0]->in('REFMETA')) {
+ save_cdata();
+ } else {
+ # Manpage citations are in bold.
+ bold_on();
+ }
+});
+sgml('</REFENTRYTITLE>', sub {
+ if($_[0]->in('REFMETA')) {
+ $raw_cdata--;
+ $manpage_title = pop_output();
+ }
+ else { font_off(); }
+
+ if (defined($_[0]->attribute('ID')->value)) {
+ my $id = $_[0]->attribute('ID')->value;
+ my ($name, $citation) = FileInfo($manpage_title, $default_sect);
+
+ $Refs->put("refentrytitle:$id", $citation);
+ }
+});
+
+sgml('<MANVOLNUM>', sub {
+ if($_[0]->in('REFMETA')) {
+ save_cdata();
+ } else {
+ # Manpage citations use ().
+ output '(';
+ }
+});
+sgml('</MANVOLNUM>', sub {
+ if($_[0]->in('REFMETA')) {
+ $raw_cdata--;
+ $manpage_sect = pop_output();
+ }
+ else { output ')' }
+});
+
+sgml('<REFMISCINFO>', \&save_cdata);
+sgml('</REFMISCINFO>', sub {
+ $raw_cdata--;
+ $manpage_misc = fold_string(pop_output());
+});
+
+
+# NAME section
+man_sgml('<REFNAMEDIV>', "\n.SH NAME\n"); # L10N
+
+sgml('<REFNAME>', \&save_cdata);
+sgml('</REFNAME>', sub {
+ $raw_cdata--;
+ push(@manpage_names, pop_output());
+});
+
+sgml('<REFPURPOSE>', \&save_cdata);
+sgml('</REFPURPOSE>', sub {
+ $raw_cdata--;
+ my $manpage_purpose = fold_string(pop_output());
+
+ for(my $i = 0; $i < $#manpage_names; $i++) {
+ output fold_string($manpage_names[$i]), ', ';
+ }
+
+ output fold_string($manpage_names[$#manpage_names]);
+ output " \\- $manpage_purpose\n";
+
+ $newline_last = 1;
+
+ foreach(@manpage_names) {
+ # Don't link to itself
+ if($_ ne $manpage_title) {
+ print LINKSFILE "$manpage_title.$manpage_sect $_.$manpage_sect\n";
+ }
+ }
+});
+
+man_sgml('<REFCLASS>', "\n.sp\n");
+
+#RefDescriptor
+
+
+########################################################################
+#
+# SYNOPSIS section and synopses
+#
+########################################################################
+
+man_sgml('<REFSYNOPSISDIV>', "\n.SH ÜBERSICHT\n"); # L10N
+man_sgml('</REFSYNOPSISDIV>', "\n");
+
+## FIXME! Must be made into block elements!!
+#sgml('<FUNCSYNOPSIS>', \&bold_on);
+#sgml('</FUNCSYNOPSIS>', \&font_off);
+#sgml('<CMDSYNOPSIS>', \&bold_on);
+#sgml('</CMDSYNOPSIS>', \&font_off);
+
+man_sgml('<FUNCSYNOPSIS>', sub {
+ #man_output("\n.sp\n");
+ bold_on();
+});
+man_sgml('</FUNCSYNOPSIS>', sub {
+ font_off();
+ man_output "\n";
+});
+
+man_sgml('<CMDSYNOPSIS>', "\n.sp\n");
+man_sgml('</CMDSYNOPSIS>', "\n");
+
+man_sgml('<FUNCPROTOTYPE>', "\n.sp\n");
+
+# Arguments to functions. This is C convention.
+man_sgml('<PARAMDEF>', '(');
+man_sgml('</PARAMDEF>', ");\n");
+man_sgml('<VOID>', "(void);\n");
+
+
+sub arg_start
+{
+ # my $choice = $_[0]->attribute('CHOICE')->value;
+
+ # The content model for CmdSynopsis doesn't include #PCDATA,
+ # so we won't see any of the whitespace in the source file,
+ # so we have to add it after each component.
+ man_output ' ';
+
+ if($_[0]->attribute('CHOICE')->value =~ /opt/i) {
+ man_output '[ ';
+ }
+ bold_on();
+}
+sub arg_end
+{
+ font_off();
+ if($_[0]->attribute('REP')->value =~ /^Repeat/i) {
+ italic_on();
+ man_output '...';
+ font_off();
+ }
+ if($_[0]->attribute('CHOICE')->value =~ /opt/i) {
+ man_output ' ] ';
+ }
+}
+
+sgml('<ARG>', \&arg_start);
+sgml('</ARG>', \&arg_end);
+sgml('<GROUP>', \&arg_start);
+sgml('</GROUP>', \&arg_end);
+
+sgml('<OPTION>', \&bold_on);
+sgml('</OPTION>', \&font_off);
+
+# FIXME: This is one _blank_ line.
+man_sgml('<SBR>', "\n\n");
+
+
+########################################################################
+#
+# General sections
+#
+########################################################################
+
+# The name of the section is handled by TITLE. This just sets
+# up the roff markup.
+man_sgml('<REFSECT1>', sub { $separator = ''; man_output "\n.SH "});
+man_sgml('<REFSECT2>', sub { $separator = ''; man_output "\n.SS "});
+man_sgml('<REFSECT3>', sub { $separator = ''; man_output "\n.SS "});
+
+
+########################################################################
+#
+# Titles, metadata.
+#
+########################################################################
+
+sgml('<TITLE>', sub {
+ if($_[0]->in('REFERENCE') or $_[0]->in('BOOK')) {
+ $write_manpages = 1;
+ }
+ save_cdata();
+});
+sgml('</TITLE>', sub {
+ my $title = fold_string(pop_output());
+ $raw_cdata--;
+
+ if($_[0]->in('REFERENCE') or $_[0]->in('BOOK')) {
+ # We use TITLE of enclosing Reference or Book as manual name
+ $manpage_manual = $title;
+ $write_manpages = 0;
+ }
+ elsif(exists $_[0]->parent->ext->{'title'}) {
+ # By far the easiest case. Just fold the string as
+ # above, and then set the parent element's variable.
+ $_[0]->parent->ext->{'title'} = $title;
+ }
+ else {
+ # If the parent element's handlers are lazy,
+ # output the folded string for them :)
+ # We assume they want uppercase and a newline.
+ man_output '"', uc($title), "\"\n";
+ }
+
+ if (defined($_[0]->attribute('ID')->value)) {
+ my $id = $_[0]->attribute('ID')->value;
+ my ($name, $citation) = FileInfo($manpage_title, $default_sect);
+
+ $Refs->put("title:$id", $citation);
+ }
+});
+
+sgml('<ATTRIBUTION>', sub {
+ if($_[0]->in('BLOCKQUOTE')) {
+ push_output('string');
+ }
+});
+sgml('</ATTRIBUTION>', sub {
+ if($_[0]->in('BLOCKQUOTE')) {
+ $_[0]->parent->ext->{'attribution'} = pop_output();
+ } else {
+ # For an Epigraph.
+ man_output "\n\n";
+ }
+});
+
+sgml('<DATE>', sub {
+ save_cdata();
+});
+sgml('</DATE>', sub {
+ $_[0]->parent->parent->ext->{'date'} = fold_string(pop_output());
+ $raw_cdata--;
+});
+
+sub ignore_content { push_output 'nul'; }
+sub restore_content { pop_output(); }
+
+sgml('<DOCINFO>', \&ignore_content);
+sgml('</DOCINFO>', \&restore_content);
+sgml('<REFSYNOPSISDIVINFO>', \&ignore_content);
+sgml('</REFSYNOPSISDIVINFO>', \&restore_content);
+sgml('<REFSECT1INFO>', \&ignore_content);
+sgml('</REFSECT1INFO>', \&restore_content);
+sgml('<REFSECT2INFO>', \&ignore_content);
+sgml('</REFSECT2INFO>', \&restore_content);
+sgml('<REFSECT3INFO>', \&ignore_content);
+sgml('</REFSECT3INFO>', \&restore_content);
+
+sgml('<INDEXTERM>', \&ignore_content);
+sgml('</INDEXTERM>', \&restore_content);
+
+sgml('<AUTHORBLURB>', \&ignore_content);
+sgml('</AUTHORBLURB>', \&restore_content);
+
+
+########################################################################
+#
+# Set bold on enclosed content
+#
+########################################################################
+
+sgml('<APPLICATION>', \&bold_on);
+sgml('</APPLICATION>', \&font_off);
+
+sgml('<CLASSNAME>', \&bold_on); sgml('</CLASSNAME>', \&font_off);
+sgml('<STRUCTNAME>', \&bold_on); sgml('</STRUCTNAME>', \&font_off);
+sgml('<STRUCTFIELD>', \&bold_on); sgml('</STRUCTFIELD>', \&font_off);
+sgml('<SYMBOL>', \&bold_on); sgml('</SYMBOL>', \&font_off);
+sgml('<TYPE>', \&bold_on); sgml('</TYPE>', \&font_off);
+
+sgml('<ENVAR>', \&bold_on); sgml('</ENVAR>', \&font_off);
+
+sgml('<FUNCTION>', \&bold_on); sgml('</FUNCTION>', \&font_off);
+
+sgml('<EMPHASIS>', \&bold_on); sgml('</EMPHASIS>', \&font_off);
+
+sgml('<ERRORNAME>', \&bold_on); sgml('</ERRORNAME>', \&font_off);
+# ERRORTYPE
+
+sgml('<COMMAND>', \&bold_on); sgml('</COMMAND>', \&font_off);
+
+sgml('<GUIBUTTON>', \&bold_on); sgml('</GUIBUTTON>', \&font_off);
+sgml('<GUIICON>', \&bold_on); sgml('</GUIICON>', \&font_off);
+# GUILABEL
+# GUIMENU
+# GUIMENUITEM
+# GUISUBMENU
+# MENUCHOICE
+
+sgml('<ACCEL>', \&bold_on); sgml('</ACCEL>', \&font_off);
+# KEYCODE
+# SHORTCUT
+
+
+sgml('<KEYCOMBO>', sub {
+ $separator = 'none';
+ $_[0]->ext->{'separator'} = 'none';
+});
+sgml('</KEYCOMBO>', sub { $separator = $_[0]->parent->ext->{'separator'}; });
+
+sub _keycombo {
+ if($_[0]->in('KEYCOMBO')) {
+ if($separator eq 'none') { $separator = '' }
+ else { man_output "+"; }
+ }
+ bold_on();
+}
+sgml('<KEYCAP>', \&_keycombo); sgml('</KEYCAP>', \&font_off);
+sgml('<KEYSYM>', \&_keycombo); sgml('</KEYSYM>', \&font_off);
+sgml('<MOUSEBUTTON>', \&_keycombo); sgml('</MOUSEBUTTON>', \&font_off);
+
+
+sgml('<USERINPUT>', \&bold_on); sgml('</USERINPUT>', \&font_off);
+
+sgml('<INTERFACEDEFINITION>', \&bold_on);
+sgml('</INTERFACEDEFINITION>', \&font_off);
+
+# May need to look at the CLASS
+sgml('<SYSTEMITEM>', \&bold_on);
+sgml('</SYSTEMITEM>', \&font_off);
+
+
+########################################################################
+#
+# Set italic on enclosed content
+#
+########################################################################
+
+sgml('<FIRSTTERM>', \&italic_on); sgml('</FIRSTTERM>', \&font_off);
+
+sgml('<FILENAME>', \&italic_on); sgml('</FILENAME>', \&font_off);
+sgml('<PARAMETER>', \&italic_on); sgml('</PARAMETER>', \&font_off);
+sgml('<PROPERTY>', \&italic_on); sgml('</PROPERTY>', \&font_off);
+
+sgml('<REPLACEABLE>', sub {
+ italic_on();
+ if($_[0]->in('TOKEN')) {
+ # When tokenizing, follow more 'intuitive' convention
+ output "<";
+ }
+});
+sgml('</REPLACEABLE>', sub {
+ if($_[0]->in('TOKEN')) {
+ output ">";
+ }
+ font_off();
+});
+
+sgml('<CITETITLE>', \&italic_on); sgml('</CITETITLE>', \&font_off);
+sgml('<FOREIGNPHRASE>', \&italic_on); sgml('</FOREIGNPHRASE>', \&font_off);
+
+sgml('<LINEANNOTATION>', \&italic_on); sgml('</LINEANNOTATION>', \&font_off);
+
+
+########################################################################
+#
+# Other 'inline' elements
+#
+########################################################################
+
+man_sgml('<EMAIL>', '<');
+man_sgml('</EMAIL>', '>');
+man_sgml('<OPTIONAL>', '[');
+man_sgml('</OPTIONAL>', ']');
+
+man_sgml('</TRADEMARK>', "\\u\\s-2TM\\s+2\\d"); # L10N
+
+man_sgml('<COMMENT>', "[Kommentar: "); # L10N
+man_sgml('</COMMENT>', "]");
+
+man_sgml('<QUOTE>', "»"); # L10N
+man_sgml('</QUOTE>', "«"); # L10N
+
+#man_sgml('<LITERAL>', '"');
+#man_sgml('</LITERAL>', '"');
+# There doesn't seem to be a good way to represent LITERAL in -man
+# ComputerOutput, SGMLTag, Markup are the same thing.
+
+# These create spaces between content in special elements
+# without PCDATA content.
+man_sgml('</HONORIFIC>', " ");
+man_sgml('</FIRSTNAME>', " ");
+man_sgml('</SURNAME>', " ");
+man_sgml('</LINEAGE>', " ");
+man_sgml('</OTHERNAME>', " ");
+
+man_sgml('<AFFILIATION>', "(");
+man_sgml('</AFFILIATION>', ") ");
+man_sgml('<CONTRIB>', "(");
+man_sgml('</CONTRIB>', ") ");
+
+man_sgml('</STREET>', " ");
+man_sgml('</POB>', " ");
+man_sgml('</POSTCODE>', " ");
+man_sgml('</CITY>', " ");
+man_sgml('</STATE>', " ");
+man_sgml('</COUNTRY>', " ");
+man_sgml('</PHONE>', " ");
+man_sgml('</FAX>', " ");
+man_sgml('</OTHERADDRESS>', " ");
+
+man_sgml('</ALT>', ": ");
+man_sgml('<GRAPHIC>', " [GRAPHIK] "); # L10N
+
+# No special presentation:
+
+# AUTHORINITIALS
+
+# ABBREV
+# ACTION
+# ACRONYM
+# CITATION
+# PHRASE
+# QUOTE
+# WORDASWORD
+
+# PROMPT
+# RETURNVALUE
+# TOKEN
+
+# DATABASE
+# HARDWARE
+# INTERFACE
+# MEDIALABEL
+
+
+########################################################################
+#
+# Paragraph and paragraph-like elements
+#
+########################################################################
+
+sub para_start {
+ if($separator eq '' or $separator eq 'full') {
+ $separator = '';
+ man_output "\n.PP\n";
+ } elsif($separator eq 'blank') {
+ man_output "\n\n";
+ } elsif($separator eq 'none' ) {
+ $_[0]->parent->ext->{'separator'} = 'blank';
+ $separator = 'blank';
+ }
+}
+# Actually applies to a few other block elements as well
+sub para_end {
+ $separator = $_[0]->parent->ext->{'separator'};
+ man_output "\n";
+}
+
+sgml('<PARA>', \&para_start);
+sgml('</PARA>', \&para_end);
+sgml('<SIMPARA>', \&para_start);
+sgml('</SIMPARA>', \&para_end);
+
+# Nothing special, except maybe FIXME set nobreak.
+sgml('<INFORMALEXAMPLE>', \&para_start);
+sgml('</INFORMALEXAMPLE>', \&para_end);
+
+
+########################################################################
+#
+# Blocks using SS sections
+#
+########################################################################
+
+# FIXME: We need to consider the effects of SS
+# in a hanging tag :(
+
+# Complete with the optional-title dilemma (again).
+sgml('<ABSTRACT>', sub {
+ $_[0]->ext->{'title'} = 'ABSTRAKT'; # L10N
+ output "\n" unless $newline_last++;
+ push_output('string');
+});
+sgml('</ABSTRACT>', sub {
+ my $content = pop_output();
+
+ # As ABSTRACT is never on the same level as RefSect1,
+ # this leaves us with only .SS in terms of -man macros.
+ output ".SS \"", uc($_[0]->ext->{'title'}), "\"\n";
+
+ output $content;
+ output "\n" unless $newline_last++;
+});
+
+
+
+# Ah, I needed a break. Example always has a title.
+sgml('<EXAMPLE>', sub { $separator = ''; man_output "\n.SS "});
+sgml('</EXAMPLE>', \&para_end);
+
+# Same with sidebar.
+sgml('<SIDEBAR>', sub { $separator = ''; man_output "\n.SS "});
+sgml('</SIDEBAR>', \&para_end);
+
+sgml('<FORMALPARA>', sub { $separator = ''; man_output "\n.SS "});
+sgml('</FORMALPARA>', \&para_end);
+
+sgml('<FIGURE>', sub { $separator = ''; man_output "\n.SS "});
+sgml('</FIGURE>', \&para_end);
+
+
+
+# NO title. # L10N
+sgml('<HIGHLIGHTS>', sub { $separator = ''; man_output "\n.SS HIGHLIGHTS\n"});
+sgml('</HIGHLIGHTS>', \&para_end);
+
+
+########################################################################
+#
+# Indented 'Block' elements
+#
+########################################################################
+
+sub indent_block_start
+{
+ $separator = '';
+ man_output "\n.sp\n.RS\n";
+}
+sub indent_block_end
+{
+ $separator = $_[0]->parent->ext->{'separator'};
+ man_output "\n.RE\n.sp\n";
+}
+
+sgml('<ADDRESS>', sub {
+ &indent_block_start;
+ if($_[0]->attribute('FORMAT')->type eq 'NOTATION'
+ and $_[0]->attribute('FORMAT')->value->name eq 'LINESPECIFIC') {
+ &verbatim_start;
+ }
+});
+sgml('</ADDRESS>', sub {
+ if($_[0]->attribute('FORMAT')->type eq 'NOTATION'
+ and $_[0]->attribute('FORMAT')->value->name eq 'LINESPECIFIC') {
+ &verbatim_end;
+ }
+ &indent_block_end;
+});
+
+# This element is almost like an admonition (below),
+# only the default title is blank :)
+
+sgml('<BLOCKQUOTE>', sub {
+ $_[0]->ext->{'title'} = '';
+ &indent_block_start;
+ push_output('string');
+});
+sgml('</BLOCKQUOTE>', sub {
+ my $content = pop_output();
+
+ if($_[0]->ext->{'title'}) {
+ output ".B \"", $_[0]->ext->{'title'}, ":\"\n";
+ }
+
+ output $content;
+
+ if($_[0]->ext->{'attribution'}) {
+ man_output "\n\n -- ",
+ $_[0]->ext->{'attribution'}, "\n";
+ }
+
+ &indent_block_end;
+});
+
+# Set off admonitions from the rest of the text by indenting.
+# FIXME: Need to check if this works inside paragraphs, not enclosing them.
+sub admonition_end {
+ my $content = pop_output();
+
+ # When the admonition is only one paragraph,
+ # it looks nicer if the title was inline.
+ my $num_para;
+ while ($content =~ /^\.PP/gm) { $num_para++ }
+ if($num_para==1) {
+ $content =~ s/^\.PP\n//;
+ }
+
+ output ".B \"" . $_[0]->ext->{'title'} . ":\"\n";
+ output $content;
+
+ &indent_block_end;
+}
+
+sgml('<NOTE>', sub {
+ # We can't see right now whether or not there is a TITLE
+ # element, so we have to save the output now and add it back
+ # at the end of this admonition.
+ $_[0]->ext->{'title'} = 'Note'; # L10N
+
+ &indent_block_start;
+
+ push_output('string');
+});
+sgml('</NOTE>', \&admonition_end);
+
+# Same as above.
+sgml('<WARNING>', sub {
+ $_[0]->ext->{'title'} = 'Warnung'; # L10N
+ &indent_block_start;
+ push_output('string');
+});
+sgml('</WARNING>', \&admonition_end);
+
+sgml('<TIP>', sub {
+ $_[0]->ext->{'title'} = 'Tipp'; # L10N
+ &indent_block_start;
+ push_output('string');
+});
+sgml('</TIP>', \&admonition_end);
+sgml('<CAUTION>', sub {
+ $_[0]->ext->{'title'} = 'Caution'; # L10N
+ &indent_block_start;
+ push_output('string');
+});
+sgml('</CAUTION>', \&admonition_end);
+
+sgml('<IMPORTANT>', sub {
+ $_[0]->ext->{'title'} = 'Wichtig'; # L10N
+ &indent_block_start;
+ push_output('string');
+});
+sgml('</IMPORTANT>', \&admonition_end);
+
+
+########################################################################
+#
+# Verbatim displays.
+#
+########################################################################
+
+sub verbatim_start {
+ $separator = '';
+ man_output "\n.sp\n";
+ man_output "\n.nf\n" unless $nocollapse_whitespace++;
+}
+
+sub verbatim_end {
+ man_output "\n.sp\n";
+ man_output "\n.fi\n" unless --$nocollapse_whitespace;
+ $separator = $_[0]->parent->ext->{'separator'};
+}
+
+sgml('<PROGRAMLISTING>', \&verbatim_start);
+sgml('</PROGRAMLISTING>', \&verbatim_end);
+
+sgml('<SCREEN>', \&verbatim_start);
+sgml('</SCREEN>', \&verbatim_end);
+
+sgml('<LITERALLAYOUT>', \&verbatim_start);
+sgml('</LITERALLAYOUT>', \&verbatim_end);
+
+sgml('<SYNOPSIS>', sub {
+ my $format = $_[0]->attribute('FORMAT');
+
+ if($format->type eq 'NOTATION'
+ and $format->value->name eq 'LINESPECIFIC')
+ {
+ &verbatim_start;
+ } else {
+ $separator = '';
+ man_output "\n.sp\n";
+ }
+});
+
+sgml('</SYNOPSIS>', sub {
+ my $format = $_[0]->attribute('FORMAT');
+
+ if($format->type eq 'NOTATION'
+ and $format->value->name eq 'LINESPECIFIC')
+ {
+ &verbatim_end;
+ } else {
+ man_output "\n";
+ $_[0]->parent->ext->{'separator'} = 'full';
+ $separator = 'full';
+ }
+});
+
+
+########################################################################
+#
+# Lists
+#
+########################################################################
+
+# Indent nested lists.
+sub list_start {
+ man_output "\n.RS\n" if $list_nestlevel++;
+}
+sub list_end {
+ man_output "\n.RE\n" if --$list_nestlevel;
+ $_[0]->parent->ext->{'separator'} = 'full';
+ $separator = 'full';
+}
+
+sgml('<VARIABLELIST>', \&list_start);
+sgml('</VARIABLELIST>', \&list_end);
+sgml('<ITEMIZEDLIST>', \&list_start);
+sgml('</ITEMIZEDLIST>', \&list_end);
+sgml('<ORDEREDLIST>', sub {
+ &list_start;
+ $_[0]->ext->{'count'} = 1;
+});
+sgml('</ORDEREDLIST>', \&list_end);
+
+# Output content on one line, bolded.
+sgml('<TERM>', sub {
+ man_output "\n.TP\n";
+ bold_on();
+ push_output('string');
+});
+sgml('</TERM>', sub {
+ my $term = StripString(pop_output());
+ $term =~ tr/\n/ /;
+ output $term;
+ font_off();
+ output "\n";
+ $newline_last = 1;
+});
+
+sgml('<LISTITEM>', sub {
+ # A bulleted list.
+ if($_[0]->in('ITEMIZEDLIST')) {
+ man_output "\n.TP 0.2i\n\\(bu\n";
+ }
+
+ # Need numbers.
+ # Assume Arabic numeration for now.
+ elsif($_[0]->in('ORDEREDLIST')) {
+ man_output "\n.IP ", $_[0]->parent->ext->{'count'}++, ". \n";
+ }
+
+ $_[0]->ext->{'separator'} = 'none';
+ $separator = 'none';
+});
+
+sgml('<SIMPLELIST>', sub {
+ $_[0]->ext->{'first_member'} = 1;
+});
+sgml('<MEMBER>', sub {
+ my $parent = $_[0]->parent;
+
+ if($parent->attribute('TYPE')->value =~ /Inline/i) {
+ if($parent->ext->{'first_member'}) {
+ # If this is the first member don't put any commas
+ $parent->ext->{'first_member'} = 0;
+ } else {
+ man_output ", ";
+ }
+
+ # We don't really have Horiz rendering, so it's the same
+ # as Vert.
+ } else {
+ man_output "\n\n";
+ }
+});
+
+# We implement Procedures as indent and lists
+
+sgml('<PROCEDURE>', sub {
+ $_[0]->ext->{'count'} = 1;
+ &indent_block_start;
+});
+sgml('</PROCEDURE>', sub {
+ &indent_block_end;
+ $_[0]->parent->ext->{'separator'} = 'full';
+ $separator = 'full';
+});
+
+sgml('<STEP>', sub {
+ man_output "\n.IP ", $_[0]->parent->ext->{'count'}++, ". \n";
+ $_[0]->ext->{'separator'} = 'none';
+ $separator = 'none';
+});
+
+
+########################################################################
+#
+# Linkage, cross references
+#
+########################################################################
+
+# Print the URL
+sgml('</ULINK>', sub {
+ man_output ' <URL:', $_[0]->attribute('URL')->value, '>';
+});
+
+# If cross reference target is a RefEntry,
+# output CiteRefEntry-style references.
+sgml('<XREF>', sub {
+ my $id;
+
+ $id = $_[0]->attribute('LINKEND')->value;
+
+ my $manref = $Refs->get("refentry:$id");
+ if(!defined $manref) {
+ $blank_xrefs++ if $write_manpages;
+ man_output "[XRef auf $id]"; # L10N
+ return;
+ }
+
+ # Limited ENDTERM support.
+ if(defined $_[0]->attribute('ENDTERM')->value) {
+ my $content = $Refs->get("title:$id") ||
+ $Refs->get("refentrytitle:$id");
+ man_output $content, ' [';
+ }
+
+ # This also displays the XREFLABEL (as bold)...
+ # It's not worth the bother to fix it though, there
+ # are better tools for this.
+ my ($title, $sect) = ($manref =~ /(.*)(\(.*\))/);
+ bold_on();
+ man_output $title;
+ font_off();
+ man_output $sect;
+
+ if(defined $_[0]->attribute('ENDTERM')->value) {
+ man_output ']';
+ }
+});
+
+# Anchor
+
+
+########################################################################
+#
+# SDATA
+#
+########################################################################
+
+man_sgml('|[lt ]|', '<');
+man_sgml('|[gt ]|', '>');
+man_sgml('|[amp ]|', '&');
+
+man_sgml('|[ndash ]|', '\(en');
+man_sgml('|[mdash ]|', '\(em');
+
+sgml('sdata',sub {
+ man_output "|[", $_[0], "]|";
+ warn "Warning: unrecognized SDATA: please add definition to docbook2man-spec.pl\n"; # L10N
+});
+
+#
+# Default handlers (uncomment these if needed). Right now, these are set
+# up to gag on any unrecognised elements, sdata, processing-instructions,
+# or entities.
+#
+# sgml('start_element',sub { die "Unknown element: " . $_[0]->name; }); # L10N
+# sgml('end_element','');
+
+# This is for weeding out and escaping certain characters.
+# This looks like it's inefficient since it's done on every line, but
+# in reality, SGMLSpm and sgmlspl parsing ESIS takes _much_ longer.
+
+sgml('cdata', sub
+{
+ if(!$write_manpages) { return; }
+ elsif($raw_cdata) { output $_[0]; return; }
+
+ if($separator eq 'full') {
+ output "\n" unless $newline_last++;
+ output ".PP\n";
+ $separator = '';
+ }
+
+ # Escape backslashes
+ $_[0] =~ s/\\/\\\\/g;
+
+ # In non-'pre'-type elements:
+ if(!$nocollapse_whitespace) {
+ # Change tabs to spaces
+ $_[0] =~ tr/\t / /s;
+
+ # Do not allow indents at beginning of line
+ # groff chokes on that.
+ if($newline_last) {
+ $_[0] =~ s/^ //;
+
+ # If the line is all blank, don't do anything.
+ if($_[0] eq '') { return; }
+
+ $_[0] =~ s/^\./\\\&\./;
+
+ # Argh... roff doesn't like ' for some unknown reason
+ $_[0] =~ s/^\'/\\\&\'/;
+ }
+ }
+
+ $newline_last = 0;
+
+ output $_[0];
+});
+
+
+# When in whitespace-collapsing mode, we disallow consecutive newlines.
+
+sgml('re', sub
+{
+ if($nocollapse_whitespace || !$newline_last) {
+ output "\n";
+ }
+
+ $newline_last = 1;
+});
+
+sgml('pi', sub {});
+sgml('entity',sub { die "Unknown external entity: " . $_[0]->name; }); # L10N
+sgml('start_subdoc',sub { die "Unknown subdoc entity: " . $_[0]->name; });# L10N
+sgml('end_subdoc',sub{});
+sgml('conforming',sub{});
+
+1;
+
diff --git a/package/aboot/src/doc/man/de/e2writeboot.8 b/package/aboot/src/doc/man/de/e2writeboot.8
new file mode 100644
index 000000000..1c6b786dd
--- /dev/null
+++ b/package/aboot/src/doc/man/de/e2writeboot.8
@@ -0,0 +1,45 @@
+.\" e2writeboot - Write secondary SRM bootloader to ext2 filesystem.
+.\"
+.\" Translated to German by Helge Kreutzmann <debian@helgefjell.de>
+.TH e2writeboot 8 "27 Juni 2004" "David Mosberger-Tang" ""
+.SH NAME
+e2writeboot \- Schreibt den sekundären Boot-Lader in ein ext2-Dateisystem.
+.SH "ÜBERSICHT"
+\fBe2writeboot\fP <ext2fs> <bootlader>
+.SH BESCHREIBUNG
+
+\fBe2writeboot\fP kann zum Schreiben des sekundären Boot-Laders in ein
+ext2-formatiertes Dateisystem (normalerweise auf einer Diskette) verwendet
+werden. Der Lader ist so geschrieben, daß die SRM-Firmware von diesem
+Dateisystem booten kann (SRM ist die Firmware die auch zu Booten von
+\fBHP Tru64\fP, \fBOpenVMS\fP und *BSD verwendet wird). Insbesondere ist
+der Lader so geschrieben, daß er einen kontinuierlichen Bereich von Sektoren
+belegt und der erste Sektor wird so aktualisiert, daß die SRM-Firmware den
+Boot-Lader finden kann. Der Lader wird immer unter dem Dateinamen
+\fBlinuxboot\fP gespeichert und falls solch eine Datei bereits existiert,
+wird diese ohne Rückfrage überschrieben. Dieser Befehl kann fehlschlagen,
+wenn das Dateisystem stark fragmentiert ist. In diesem Fall reformatieren
+Sie das Dateisystem mit \fBmke2fs\fP(8) (dies wird den derzeitigen
+Inhalt des Dateisystems zerstören, daher mit Vorsicht verwenden).
+
+.P
+Das \fI<ext2fs>\fP-Argument spezifiziert das Dateisystem oder spezielle
+Gerät auf das die \fI<bootlader>\fP-Datei geschrieben werden soll. Die
+Boot-Lader-Datei muß eine ECOFF-Objektdatei sein. Ein typischer Befehl,
+um eine Diskette mit dem \fIaboot\fP(8)-Lader zu machen, ist im folgenden
+gezeigt:
+
+.I »e2writeboot /dev/fd0 aboot«
+
+.nf
+.SH SIEHE AUCH
+.IR aboot (8) ,
+.IR mke2fs (8) ,
+.IR swriteboot (8)
+.nf
+.SH AUTOREN
+.nf
+Jim Paradis <paradis@amt.tay1.dec.com>
+Jay Estabrook <Jay.Estabrook@hp.com>
+David Mosberger-Tang <David.Mosberger@acm.org>
+.fi
diff --git a/package/aboot/src/doc/man/de/isomarkboot.sgml b/package/aboot/src/doc/man/de/isomarkboot.sgml
new file mode 100644
index 000000000..7155bcb82
--- /dev/null
+++ b/package/aboot/src/doc/man/de/isomarkboot.sgml
@@ -0,0 +1,92 @@
+<!DOCTYPE RefEntry PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
+<refentry id="isomarkboot">
+
+<refmeta>
+<refentrytitle>isomarkboot</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo>isomarkboot</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>isomarkboot</refname>
+<refpurpose>
+Erzeugt bootbare CD-ROMs für Linux/Alpha-Systeme.
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+ <cmdsynopsis>
+ <command>isomarkboot</command>
+ <arg choice="plain">/dev/xxx</arg>
+ <arg choice="plain">pfad/zu/bootlx</arg>
+ <arg choice="opt">pfad/zu/root.bin</arg>
+ </cmdsynopsis>
+</refsynopsisdiv>
+
+<refsect1><title>COPYRIGHT</title>
+<para>
+<application>isomarkboot</application> unterliegt dem Copyright (C) 1996 David Mosberger-Tang
+</para>
+</refsect1>
+
+<refsect1><title>BESCHREIBUNG</title>
+<para>
+<indexterm><primary>isomarkboot</primary></indexterm>
+<application>isomarkboot</application>
+befähigt mit <application>mkisofs</application>(8) erstellte oder vom Netz
+heruntergeladene ISO-Images auf Linux/Alpha-Systemen zu booten.
+</para>
+
+<para>
+Zuerst müssen Sie Ihr ISO-Image vorbereiten und über das Loopback-Gerät
+auf <filename>/dev/xxx</filename> (typischerweise
+<filename>/dev/loop0</filename>) montieren (siehe
+<application>mount</application>(8) für Details).
+</para>
+
+<para>
+Als nächstes müssen Sie den aboot-Loader (<filename>bootlx</filename> genannt)
+und das RAM-Disk-Image, das das Wurzelverzeichnisdateisystem enthält,
+welches oft <filename>root.bin</filename> heißt, in Ihrem ISO-Image bestimmen.
+Die Angabe letzterm ist optional, aber oft sinnvoll.
+</para>
+<para>
+Schließlich machen Sie das Image bootbar:
+</para>
+<para>
+<command>
+isomarkboot <parameter>/dev/xxx pfad/zu/bootlx pfad/zu/root.bin</parameter>
+</command>
+</para>
+<para>
+Ein typischer Ort für <filename>bootlx</filename> auf dem Disk-Image ist
+<filename>boot/bootlx</filename>. Die Pfade von <filename>bootlx</filename>
+und <filename>root.bin</filename> sind relativ zur Wurzel des Images. Falls
+Ihr Image nicht montiert ist müssen Sie <filename>/dev/xxx</filename> durch
+dem Pfad zu Ihrem Image ersetzen.
+</para>
+
+</refsect1>
+<refsect1><title>FEHLER</title>
+<para>
+<application>isomarkboot</application> ist auf anderen Architekturen
+(außer Alpha) nicht sehr intensiv getestet, obwohl es (mit kleinen Patches)
+dort übersetzt. Bitte berichten Sie uns von Ihren Erfahrungen.
+</para>
+</refsect1>
+<refsect1><title>ANMERKUNGEN</title>
+<para>
+<application>isomarkboot</application> ist in der Lage, Symlinks im Image
+zu verarbeiten.
+</para>
+</refsect1>
+<refsect1><title>AUTOR</title>
+<para>
+Diese Handbuchseite wurde von Helge Kreutzmann <email>debian@helgefjell.de</email> für das Debian GNU/Linux-Projekt geschrieben; sie darf aber auch von
+anderen verwendet werden.
+</refsect1>
+<refsect1><title>SIEHE AUCH</title>
+<para><application>aboot</application>(8), <application>mkisofs</application>(8)
+</para>
+</refsect1>
+</refentry>
diff --git a/package/aboot/src/doc/man/de/netabootwrap.sgml b/package/aboot/src/doc/man/de/netabootwrap.sgml
new file mode 100644
index 000000000..9ef857674
--- /dev/null
+++ b/package/aboot/src/doc/man/de/netabootwrap.sgml
@@ -0,0 +1,107 @@
+<!DOCTYPE RefEntry PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
+<refentry id="netabootwrap">
+
+<refmeta>
+<refentrytitle>netabootwrap</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo>netabootwrap</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>netabootwrap</refname>
+<refpurpose>
+erzeugt netzbootbare Images für Linux/Alpha
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+ <cmdsynopsis>
+ <command>netabootwrap</command>
+ <arg choice="opt">-t netboot.img</arg>
+ <arg choice="opt">-k vmlinux.gz</arg>
+ <arg choice="opt">-i initrd.gz</arg>
+ <arg choice="opt">-a "einige Kernelparameter"</arg>
+ </cmdsynopsis>
+</refsynopsisdiv>
+
+<refsect1><title>COPYRIGHT</title>
+<para>
+<application>netabootwrap</application> ist (c) 2000 von Soohoon Lee
+<email>soohoon.lee@api-networks.com</email>
+</para>
+</refsect1>
+
+<refsect1><title>BESCHREIBUNG</title>
+<para>
+<indexterm><primary>netabootwrap</primary></indexterm>
+<application>netabootwrap</application> fügt <filename>net_aboot</filename>,
+den Kernel und die initrd Images zusammen, um ein netzbootbares Image für
+Linux/Alpha-Systeme zu erstellen.
+<filename>net_aboot.nh</filename> ist nicht funktionstüchtig, aber
+<application>netabootwrap</application> hat die volle Funktionalität.
+Ohne Optionen schaut es nach <filename>vmlinux.gz</filename>
+und baut <filename>netboot.img</filename>, das ist <filename>net_aboot</filename>
++ <filename>vmlinux.gz</filename>.
+</para>
+
+<para>
+<variablelist>
+<varlistentry><term>-t dateiname</term>
+<listitem><para>
+Setzt den Dateinamen des zu erzeugenden Netboot-Images, standardmäßig ist dies
+<filename>netboot.img</filename>. Diese Datei wird überschrieben falls sie
+existiert.
+</para></listitem></varlistentry>
+<varlistentry><term>-k dateiname</term>
+<listitem><para>
+Setzt den Dateinamen des Kernel-Images, standardmäßig ist dies
+<filename>vmlinux.gz</filename>
+</para></listitem></varlistentry>
+<varlistentry><term>-i dateiname</term>
+<listitem><para>
+Setzt den Dateinamen des anfänglichen RAM-Disk-Images, standardmäßig ist dies <filename>initrd.gz</filename>
+</para></listitem></varlistentry>
+<varlistentry><term>-a "einige Kernelparameter"</term>
+<listitem><para>
+Stellt weitere Kerneloptionen bereit, z.B. -a "root=/dev/sda1 single"
+</variablelist>
+</para>
+
+</refsect1>
+
+<!-- <refsect1><title>FEHLER</title>
+<para>
+</para>
+
+</refsect1> -->
+
+<refsect1><title>HINWEISE</title>
+<para>
+Um das Image zu verwenden, benötigen Sie einen
+<application>tftpd</application>(8)- und einen <application>dhcp</application>(8)-
+oder <application>bootpd</application>(8)-Server.
+Weitere Details finden Sie im SRM-HOWTO:
+(<ULink URL="http://www.alphalinux.org/faq/srm.html"></ULink> oder in
+<filename>/usr/share/doc/aboot/SRM-HOWTO/</filename> auf Debian GNU/Linux-Systemen (und möglicherweise auch anderen))
+</para>
+
+</refsect1>
+
+<refsect1><title>AUTOR</title>
+<para>
+Diese Handbuchseite wurde von Helge Kreutzmann
+<email>debian@helgefjell.de</email> für das Debian GNU/Linux-Projekt geschrieben. Sie darf auch
+von anderen verwendet werden.
+</para>
+</refsect1>
+<refsect1><title>SIEHE AUCH</title>
+<para>
+<application>tftpd</application>(8),
+<application>dhcpd</application>(8),
+<application>bootpd</application>(8),
+<application>aboot</application>(8),
+SRM-HOWTO in <filename>/usr/share/doc/aboot/SRM-HOWTO/</filename> oder <ULink URL="http://www.alphalinux.org/faq/srm.html"></ULink>,
+HP SRM Manual (<ULink URL="http://h18002.www1.hp.com/alphaserver/download/srm_reference.pdf"></ULink>)
+</para>
+</refsect1>
+</refentry>
diff --git a/package/aboot/src/doc/man/de/sdisklabel.sgml b/package/aboot/src/doc/man/de/sdisklabel.sgml
new file mode 100644
index 000000000..e1dbbd67a
--- /dev/null
+++ b/package/aboot/src/doc/man/de/sdisklabel.sgml
@@ -0,0 +1,247 @@
+<!DOCTYPE RefEntry PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
+<refentry id="sdisklabel">
+
+<refmeta>
+<refentrytitle>sdisklabel</refentrytitle>
+<manvolnum>8</manvolnum>
+<refmiscinfo>sdisklabel</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>sdisklabel</refname>
+<refpurpose>
+Erzeugt/verändert Disklabels auf Linux/Alpha-Systemen
+</refpurpose>
+</refnamediv>
+
+<!-- This is the proper SGML way, but somehow doesn't work here -->
+<refsynopsisdiv>
+ <cmdsynopsis>
+ <command>sdisklabel</command>
+ <arg choice="plain">gerät</arg>
+ <group choice="opt"><arg choice="plain">print</arg>
+ <arg choice="plain">zero</arg>
+ <arg choice="plain">sum</arg>
+ </group>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>sdisklabel</command>
+ <arg choice="plain">gerät</arg>
+ <arg choice="plain">size</arg>
+ <arg choice="plain">partitionsgrösse</arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
+ <command>sdisklabel</command>
+ <arg choice="plain">gerät</arg>
+ <arg choice="plain">partnum</arg>
+ <arg choice="plain">offset</arg>
+ <arg choice="plain">größe</arg>
+ <arg choice="plain">parttype</arg>
+ </cmdsynopsis>
+</refsynopsisdiv>
+<!-- <refsect1><title>SYNOPSIS</title>
+<para>sdisklabel <parameter>drive [print|zero|sum]</parameter></para>
+<para>sdisklabel <parameter>drive size partsize</parameter></para>
+<para>sdisklabel <parameter>drive partnum offset size parttype</parameter></para>
+</refsect1> -->
+
+<refsect1><title>COPYRIGHT</title>
+<para>
+<application>sdisklabel</application> unterliegt dem Copyright von Red Hat
+Inc. Der Autor dieser Handbuchseite hat versucht, den Originalautor des
+Programms ausfindig zu machen, was ihm aber nicht gelungen ist. Ein
+abschließender Bugzilla-Eintrag bei Red Hat ergab die folgende Antwort:
+<quote>
+I can't track down a Bob Manson (and I cannot find any record of his association
+with Red Hat in the aboot sources), but any work he did on behalf of Red Hat
+would be property of Red Hat, and you can consider all our changes to be release
+under the GPL the same as the rest of the aboot package.</quote>
+
+</para>
+</refsect1>
+
+<refsect1><title>BESCHREIBUNG</title>
+<para>
+<indexterm><primary>sdisklabel</primary></indexterm>
+<application>sdisklabel</application>
+kann zum Anlegen von Partitionen (genannt Disklabels) auf Linux/Alpha-Systemen
+verwendet werden. Sie <emphasis>müssen</emphasis> Disklabels anstatt des
+<productname>DOS</productname>-artigen Partitionierungsschematas auf jeder
+Festplatte, von der Sie mittels SRM booten, oder welche Sie mit
+<productname>HP Tru64</productname> gemeinsam nutzen wollen, verwenden.
+Falls Sie stattdessen mit <application>milo</application> booten, dann
+dürfen Sie <emphasis>keine</emphasis> Disklabels auf Ihrer
+Boot-Festplatte verwenden.
+</para>
+
+<para>
+Selbst wenn Sie Disklabels verwenden, wird der Einsatz von
+<application>fdisk</application>(8) anstelle von
+<application>sdisklabel</application> empfohlen.
+</para>
+
+<para>
+<application>sdisklabel</application> nimmt desweiteren an, daß Sie
+eine SCSI-Festplatte mit 512 Byte Sektoren haben, obwohl es auch
+problemlos auf IDE-Laufwerken arbeiten sollte. Alle Größenangaben werden
+auf der Kommandozeile in Sektoren angegeben.
+</para>
+
+<para>
+Es gibt insgesamt 8 Partitionen, nummeriert von 0 bis 7. Sie entsprechen
+den BSD Disklabels A bis H. Partitionen müssen sequentiell hinzugefügt
+werden, da <application>sdisklabel</application> im Gegensatz zu vielen anderen
+BSD-Disklabel-Programmen keine leeren Partitionen erlaubt. Falls Sie dies
+möchten (oder falls Sie überlappende Disklabels wollen), verwenden Sie
+stattdessen <application>fdisk</application>(8).
+</para>
+
+<para>
+Zuersteinmal, wenn Sie ein ungültiges Disklabel haben (Sie haben
+<application>sdisklabel</application> auf dieser Festplatte nie zuvor
+verwendet), dann müssen Sie
+</para>
+
+<para>
+<command>
+sdisklabel <parameter>/dev/sda zero</parameter>
+</command>
+</para>
+
+<para>
+eingeben (<filename>/dev/sda</filename> ist das Gerät, das Sie
+partitionieren, passen Sie es entsprechend an).
+</para>
+
+<para>
+Dies überschreibt Ihr Disklabel. Verwenden Sie dies nur, wenn Sie das
+Disklabel wirklich überschreiben wollen. Es macht genau das; es fragt
+nicht, oder warnt nicht, oder sonstwas.
+</para>
+
+<para>
+Das Programm hat wahrscheinlich auch die Größe Ihrer Festplatte in kB
+ausgegeben. Falls dies falsch war, können Sie die »<parameter>size
+xxx</parameter>«-Option zusammen mit den restlichen Kommandos verwenden.
+Die Größe ist nicht kritisch, sie wird nur verwendet, um zu versuchen,
+sie am Überschreiten des Endes der Festplatte zu hindern.
+</para>
+
+<para>
+Als nächstes fügen Sie Ihre erste Partition hinzu. Diese fängt
+<emphasis>nicht</emphasis> bei 0 an, da Sie für den Bootloader und
+anderen Kram Platz lassen müssen. 256 kB (oder 512 Sektoren) sind genug.
+</para>
+
+<para>
+Nehmen wir an, daß Sie eine 250000 kB große Partition, beginnend beim
+Sektor-Offset 512, anlegen wollen:
+</para>
+
+<para>
+<command>
+sdisklabel <parameter>/dev/sda 0 512 500000 8 print</parameter>
+</command>
+</para>
+
+<para>
+Die letzte Zahl ist der Dateisystemtyp, und ist derzeit 8 für ext2fs
+Dateisysteme (Eine andere Zahl würde verwendet, um beispielsweise eine
+<productname>Tru64</productname>-Partition anzugeben).
+</para>
+
+<para>
+Falls alles erfolgreich war, zeigt das Programm die Partition an (das letzte
+Schlüsselwort, »print«, spezifiziert, das es die Partition nach der Veränderung
+mit dem vorhergehenden Befehl anzeigen soll), und Sie sollten etwas ähnlich zu
+</para>
+
+<para>
+<blockquote>
+<literallayout>
+----------------------------------------------------------
+I think your disk is 528870K total size.
+If I'm wrong, override the size with the 'size num' option
+
+partition 0: type 8, starts sector 512, size 500000
+----------------------------------------------------------
+</literallayout>
+</blockquote>
+</para>
+
+<para>
+sehen. Sie können dann die nächste Partition, dies wäre dann Partition 1,
+hinzufügen. Um eine zweite Partition, die 200000 kB lang ist, hinzuzufügen,
+geben Sie
+</para>
+
+<para>
+<command>
+sdisklabel <parameter>/dev/sda 1 512256 400000 8 print</parameter>
+</command>
+</para>
+<para>
+ein und beide Partitionen würden ausgegeben.
+</para>
+
+<para>
+Falls aus irgendeinem Grund die Größe falsch bestimmt worden wäre, würden
+Sie stattdessen
+</para>
+<para>
+<command>
+sdisklabel <parameter>/dev/sda size 528870 0 512 400000 8 print</parameter>
+</command>
+</para>
+
+<para>
+eingeben. Die »size«-Option sollte direkt dem Gerätenamen folgen, und
+die Größe ist die Gesamtanzahl von Sektoren auf diesem Laufwerk.
+</para>
+
+</refsect1>
+<refsect1><title>FEHLER</title>
+<para>
+<application>sdisklabel</application> prüft nicht auf alle Fehler, bitte
+mit Vorsicht benutzen.
+</para>
+</refsect1>
+<refsect1><title>ANMERKUNGEN</title>
+<para>
+Falls Sie die Festplatte mit <productname>HP Tru64</productname>
+(<productname>OSF/1</productname>) gemeinsam nutzen wollen, wird
+empfohlen, die Partitionierungswerkzeuge von <productname>Tru64</productname>
+zu verwenden, um die Festplatte vorzubereiten.
+</para>
+<para>
+Um tatsächlich von der frisch markierten Festplatte zu booten müssen Sie
+ebenfalls einen Urlader (boot strap) installieren, lesen Sie hierzu
+<application>aboot</application>(8) und <application>swriteboot</application>(8)
+für Einzelheiten.
+</para>
+<para>
+Das »print«-Kommando kann vor oder nach jedem anderen Kommando angegeben werden.
+</para>
+<para>
+Falls Sie leere Partitionen erhalten oder Labels, die über das Ende der
+Festplatte hinausreichen, erstellen wollen (z.B. wenn Sie wissen, daß
+<application>sdisklabel</application> eine falsche Größe meldet), dann
+können Sie den <parameter>force</parameter>-Schalter auf der Kommandozeile
+verwenden.
+</para>
+</refsect1>
+<refsect1><title>AUTOR</title>
+<para>
+Diese Handbuchseite wurde von Helge Kreutzmann <email>debian@helgefjell.de</email>
+für das Debian GNU/Linux-Projekt geschrieben; Sie kann aber von
+anderen verwendet werden. Sie basiert wesentlich auf der bei den
+<application>sdisklabel</application>-Quellen mitgelieferten
+<filename>README</filename>-Datei.
+</para>
+</refsect1>
+<refsect1><title>SIEHE AUCH</title>
+<para>
+<application>fdisk</application>(8), <application>aboot</application>(8), <application>swriteboot</application>(8)
+</para>
+</refsect1>
+</refentry>
diff --git a/package/aboot/src/doc/man/de/srmbootfat.sgml b/package/aboot/src/doc/man/de/srmbootfat.sgml
new file mode 100644
index 000000000..5711983b9
--- /dev/null
+++ b/package/aboot/src/doc/man/de/srmbootfat.sgml
@@ -0,0 +1,86 @@
+<!DOCTYPE RefEntry PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
+<refentry id="srmbootfat">
+
+<refmeta>
+<refentrytitle>srmbootfat</refentrytitle>
+<manvolnum>1</manvolnum>
+<refmiscinfo>srmbootfat</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>srmbootfat</refname>
+<refpurpose>
+Linux/Alpha SRM Boot-Block-Ersteller
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+ <cmdsynopsis>
+ <command>srmbootfat</command>
+ <arg choice="plain">dateisystem_image</arg>
+ <arg choice="plain">boot_datei</arg>
+ </cmdsynopsis>
+</refsynopsisdiv>
+
+<!-- <refsect1><title>COPYRIGHT</title>
+<para>
+</para>
+</refsect1> -->
+
+<refsect1><title>BESCHREIBUNG</title>
+<para>
+<indexterm><primary>srmbootfat</primary></indexterm>
+Dieses Werkzeug ist schnell zusammengestrickt und sollte in seiner
+derzeitigen Form nicht lange existieren.
+</para>
+
+<para>
+<application>Srmbootfat</application> findet die <filename>boot_datei</filename>
+im Wurzelverzeichnis des in der Datei
+<filename>dateisystem_image</filename> gespeicherten
+<acronym>FAT</acronym>-Dateisystems und macht dies bootbar indem es den
+geeigneten SRM-Boot-Block in diese Dateisystem-Image-Datei schreibt.
+Dies funktioniert nur mit nicht partitionierten Medien (wie beispielsweise
+Disketten), da andernfalls der Boot-Block in die Partitionstabelle geschrieben
+werden müßte, welche sich außerhalb des Dateisystems befindet. Allerdings ist
+eine Festplatte, die ein FAT-Dateisystem enthält, höchstwahrscheinlich mit der
+PC-Partitionstabelle partitioniert, von der SRM sowieso nicht booten kann.
+</para>
+
+<para>
+Der Boot-Lader (<filename>boot_datei</filename>) muß fortlaufend sein, d.h.
+hintereinanderfolgende Blöcke belegen.
+</para>
+</refsect1>
+
+<refsect1><title>ARGUMENTE</title>
+<para>
+<variablelist>
+<varlistentry><term><filename>dateisystem_image</filename></term>
+<listitem><para>
+Der Name der Datei die das FAT-Dateisystem-Image enthält, bspw.
+<filename>/dev/fd0</filename>.
+</para></listitem></varlistentry>
+<varlistentry><term><filename>boot_datei</filename></term>
+<listitem><para>
+Der Dateiname des Boot-Laders.
+</para></listitem></varlistentry>
+</variablelist>
+</refsect1>
+
+<!-- <refsect1><title>FEHLER</title>
+<para>
+</para>
+</refsect1> -->
+
+<refsect1><title>AUTOR</title>
+<para>
+Nikita Schmidt <email>cetus@snowball.ucd.ie</email>
+</para>
+</refsect1>
+<refsect1><title>SIEHE AUCH</title>
+<para>
+<application>aboot</application>(8), <application>mke2fs</application>(8), <application>e2writeboot</application>(8)
+</para>
+</refsect1>
+</refentry>
diff --git a/package/aboot/src/doc/man/de/srmbootraw.sgml b/package/aboot/src/doc/man/de/srmbootraw.sgml
new file mode 100644
index 000000000..465401ecd
--- /dev/null
+++ b/package/aboot/src/doc/man/de/srmbootraw.sgml
@@ -0,0 +1,84 @@
+<!DOCTYPE RefEntry PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
+<refentry id="srmbootraw">
+
+<refmeta>
+<refentrytitle>srmbootraw</refentrytitle>
+<manvolnum>8</manvolnum>
+<refmiscinfo>srmbootraw</refmiscinfo>
+</refmeta>
+
+<refnamediv Lang="de">
+<refname>srmbootraw</refname>
+<refpurpose>
+Linux/Alpha SRM Bootblock-Ersteller
+</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+ <cmdsynopsis>
+ <command>srmbootraw</command>
+ <arg choice="plain">boot_gerät</arg>
+ <arg choice="plain">boot_datei</arg>
+ </cmdsynopsis>
+</refsynopsisdiv>
+
+<!-- <refsect1><title>COPYRIGHT</title>
+<para>
+</para>
+</refsect1> -->
+
+<refsect1><title>BESCHREIBUNG</title>
+<para>
+<indexterm><primary>srmbootraw</primary></indexterm>
+Dieses Werkzeug ist ein schneller Hack und soll in seinem derzeitigen
+Zustand nicht lange exisitieren.
+</para>
+
+<para>
+<application>Srmbootraw</application> schreibt das Image aus
+<filename>boot_datei</filename>
+mit vorangestelltem SRM Bootblock unter Beibehaltung des disklabels
+in die ersten Blocks des <filename>boot_geräts</filename>.
+Es ist dazu gedacht, wenn Sie eine kleine rohe, für den Bootloader
+dedizierte Partition am Anfang Ihrer Festplatte haben. Falls Sie diese
+nicht haben, wird <application>srmbootraw</application> ohne Fehlermeldung
+Ihr System unbenutzbar machen.
+</para>
+</refsect1>
+
+<refsect1><title>ARGUMENTE</title>
+<para>
+<variablelist>
+<varlistentry><term><filename>boot_gerät</filename></term>
+<listitem><para>
+Das Gerät von dem Sie planen zu booten, bspw. <filename>/dev/sda</filename>.
+Es muß genug Platz am Anfang sein, um den Bootblock und den Bootloader
+aufzunehmen.
+</para></listitem></varlistentry>
+<varlistentry><term><filename>boot_datei</filename></term>
+<listitem><para>
+Der Dateiname des Bootloaders.
+</para></listitem></varlistentry>
+</variablelist>
+</refsect1>
+
+<!-- <refsect1><title>FEHLER</title>
+<para>
+</para>
+</refsect1> -->
+
+<refsect1><title>AUTOR</title>
+<para>
+Nikita Schmidt <email>cetus@snowball.ucd.ie</email>
+</para>
+</refsect1>
+<refsect1><title>SIEHE AUCH</title>
+<para>
+<application>aboot</application>(8),
+<application>mke2fs</application>(8),
+<application>swriteboot</application>(8),
+<application>e2writeboot</application>(8),
+<application>srmbootfat</application>(1)
+</para>
+</refsect1>
+</refentry>
diff --git a/package/aboot/src/doc/man/de/swriteboot.8 b/package/aboot/src/doc/man/de/swriteboot.8
new file mode 100644
index 000000000..69e25e2f9
--- /dev/null
+++ b/package/aboot/src/doc/man/de/swriteboot.8
@@ -0,0 +1,61 @@
+.\" sdisklabel - Write secondary SRM bootloader to harddisk
+.\"
+.\" Translated to german by Helge Kreutzmann <debian@helgefjell.de>
+.TH swriteboot 8 "27 Juni 2004" "David Mosberger" ""
+.SH NAME
+swriteboot \- Schreibt sekundären SRM-Boot-Lader auf Festplatte.
+.SH "ÜBERSICHT"
+\fBswriteboot\fP [-v] [-f#] <gerät> <bootlader> [kernel]
+.SH BESCHREIBUNG
+
+\fBswriteboot\fP kann zum Schreiben des sekundären Boot-Laders und --
+optional -- eines Kernels auf die Festplatte verwendet werden. Das
+Ladeprogramm ist so geschrieben, daß es der SRM-Firmware erlaubt, davon
+zu booten (SRM ist die Firmware, die auch zum Booten von \fBHP Tru64\fP,
+\fBOpenVMS\fP und *BSD verwendet wird). Insbesondere ist das Ladeprogramm
+so geschrieben, daß ein physikalisch kontinuierlicher Bereich von Sektoren,
+beginnend bei Sektor 2 belegt wird und das der erste Sektor so aktualisiert
+wird, daß die SRM-Firmware den Boot-Lader finden kann. \fBswriteboot\fP
+kann versagen, falls der Bootstrap-Lader zu groß ist, um in die reservierten
+Sektoren zu passen. Es wird daher empfohlen, die ersten 512 Sektoren
+einer Festplatte für Boot-Zwecke zu reservieren. Dies läßt 256 kB Platz
+für einen sekundären Bootstrap-Lader, was massig ausreichen sollte (derzeit
+ist der \fBaboot\fP(8) Bootstrap-Lader ungefähr 90 kB groß). Reservieren Sie
+mehr, falls Sie dort auch einen Kernel haben wollen - 2 MB sollte in diesem
+Fall ausreichen.
+
+.P
+Das \fI<gerät>\fP-Argument bestimmt das spezielle Gerät auf das die
+\fI<bootlader>\fP-Datei geschrieben werden soll. Die Boot-Lader-Datei
+muß ein »Header-Less«-Image (keine Objekt-Datei) sein, die den rohen
+Inhalt der Text-, Data- und BSS-Sektionen enthält. Ein typisches Kommando
+um SCSI-Platte 0 bootbar mit dem \fIaboot\fP(8)-Lader zu machen wird im
+folgenden gezeigt:
+
+.I »swriteboot /dev/sda bootlx«
+
+.P
+Die \fI-v\fP Option sorgt für etwas ausführlichere Meldungen von
+\fBswriteboot\fP.
+.P
+Die \fI-f#\fP Option teilt \fBswriteboot\fP mit, einen Überlapp des Bootbereichs
+mit der Partition \fI#\fP zu ignorieren.
+.P
+Die \fI-c#\fP Option teilt \fBswriteboot\fP explizit die Boot-Partition mit.
+Falls dieses Argument fehlt, versucht \fBswriteboot\fP falls möglich die
+Boot-Partition automatisch zu erkennen. Beachten Sie, daß Sie die
+Boot-Partition später ebenfalls mit \fBabootconf\fP(8) setzten können.
+
+.nf
+.SH SIEHE AUCH
+.IR aboot (8) ,
+.IR abootconf (8) ,
+.IR mke2fs (8) ,
+.IR e2writeboot (8)
+.nf
+.SH AUTOREN
+.nf
+Bob Manson <manson@magnus.acs.ohio-state.edu>
+Michael Schwingen <michael@schwingen.org>
+Helge Kreutzmann <debian@helgefjell.de> (Aktualisierung der Handbuchseite)
+.fi