summaryrefslogtreecommitdiffstats
path: root/release/sysinstall
diff options
context:
space:
mode:
Diffstat (limited to 'release/sysinstall')
-rw-r--r--release/sysinstall/Makefile58
-rw-r--r--release/sysinstall/attr.c179
-rw-r--r--release/sysinstall/bteasy17.uu15
-rw-r--r--release/sysinstall/cdrom.c126
-rw-r--r--release/sysinstall/command.c165
-rw-r--r--release/sysinstall/config.c383
-rw-r--r--release/sysinstall/decode.c153
-rw-r--r--release/sysinstall/dev2c.sh80
-rw-r--r--release/sysinstall/devices.c396
-rw-r--r--release/sysinstall/disks.c423
-rw-r--r--release/sysinstall/dist.c438
-rw-r--r--release/sysinstall/dist.h88
-rw-r--r--release/sysinstall/dmenu.c173
-rw-r--r--release/sysinstall/doc.c88
-rw-r--r--release/sysinstall/dos.c109
-rw-r--r--release/sysinstall/floppy.c228
-rw-r--r--release/sysinstall/ftp.c440
-rw-r--r--release/sysinstall/ftp.h29
-rw-r--r--release/sysinstall/ftp_strat.c262
-rw-r--r--release/sysinstall/globals.c78
-rw-r--r--release/sysinstall/help/XF86.hlp500
-rw-r--r--release/sysinstall/help/configure.hlp14
-rw-r--r--release/sysinstall/help/da_DK.ISO8859-1/README98
-rw-r--r--release/sysinstall/help/da_DK.ISO8859-1/configure.hlp16
-rw-r--r--release/sysinstall/help/da_DK.ISO8859-1/language.hlp13
-rw-r--r--release/sysinstall/help/da_DK.ISO8859-1/usage.hlp56
-rw-r--r--release/sysinstall/help/da_DK.ISO_8859-1/README98
-rw-r--r--release/sysinstall/help/da_DK.ISO_8859-1/configure.hlp16
-rw-r--r--release/sysinstall/help/da_DK.ISO_8859-1/language.hlp13
-rw-r--r--release/sysinstall/help/da_DK.ISO_8859-1/usage.hlp56
-rw-r--r--release/sysinstall/help/de_DE.ISO8859-1/README106
-rw-r--r--release/sysinstall/help/de_DE.ISO8859-1/RELNOTES766
-rw-r--r--release/sysinstall/help/de_DE.ISO8859-1/configure.hlp18
-rw-r--r--release/sysinstall/help/de_DE.ISO8859-1/drives.hlp29
-rw-r--r--release/sysinstall/help/de_DE.ISO8859-1/install.hlp450
-rw-r--r--release/sysinstall/help/de_DE.ISO8859-1/language.hlp17
-rw-r--r--release/sysinstall/help/de_DE.ISO8859-1/media.hlp30
-rw-r--r--release/sysinstall/help/de_DE.ISO8859-1/network_device.hlp56
-rw-r--r--release/sysinstall/help/de_DE.ISO8859-1/partition.hlp85
-rw-r--r--release/sysinstall/help/de_DE.ISO8859-1/slice.hlp28
-rw-r--r--release/sysinstall/help/de_DE.ISO8859-1/tcp.hlp32
-rw-r--r--release/sysinstall/help/de_DE.ISO8859-1/usage.hlp57
-rw-r--r--release/sysinstall/help/de_DE.ISO_8859-1/README106
-rw-r--r--release/sysinstall/help/de_DE.ISO_8859-1/RELNOTES766
-rw-r--r--release/sysinstall/help/de_DE.ISO_8859-1/configure.hlp18
-rw-r--r--release/sysinstall/help/de_DE.ISO_8859-1/drives.hlp29
-rw-r--r--release/sysinstall/help/de_DE.ISO_8859-1/install.hlp450
-rw-r--r--release/sysinstall/help/de_DE.ISO_8859-1/language.hlp17
-rw-r--r--release/sysinstall/help/de_DE.ISO_8859-1/media.hlp30
-rw-r--r--release/sysinstall/help/de_DE.ISO_8859-1/network_device.hlp56
-rw-r--r--release/sysinstall/help/de_DE.ISO_8859-1/partition.hlp85
-rw-r--r--release/sysinstall/help/de_DE.ISO_8859-1/slice.hlp28
-rw-r--r--release/sysinstall/help/de_DE.ISO_8859-1/tcp.hlp32
-rw-r--r--release/sysinstall/help/de_DE.ISO_8859-1/usage.hlp57
-rw-r--r--release/sysinstall/help/distributions.hlp88
-rw-r--r--release/sysinstall/help/drives.hlp29
-rw-r--r--release/sysinstall/help/en_US.ISO8859-1/README104
-rw-r--r--release/sysinstall/help/en_US.ISO8859-1/RELNOTES747
-rw-r--r--release/sysinstall/help/en_US.ISO8859-1/XF86.hlp500
-rw-r--r--release/sysinstall/help/en_US.ISO8859-1/configure.hlp14
-rw-r--r--release/sysinstall/help/en_US.ISO8859-1/distributions.hlp88
-rw-r--r--release/sysinstall/help/en_US.ISO8859-1/drives.hlp28
-rw-r--r--release/sysinstall/help/en_US.ISO8859-1/hardware.hlp384
-rw-r--r--release/sysinstall/help/en_US.ISO8859-1/install.hlp447
-rw-r--r--release/sysinstall/help/en_US.ISO8859-1/language.hlp14
-rw-r--r--release/sysinstall/help/en_US.ISO8859-1/media.hlp29
-rw-r--r--release/sysinstall/help/en_US.ISO8859-1/network_device.hlp54
-rw-r--r--release/sysinstall/help/en_US.ISO8859-1/options.hlp95
-rw-r--r--release/sysinstall/help/en_US.ISO8859-1/partition.hlp77
-rw-r--r--release/sysinstall/help/en_US.ISO8859-1/slice.hlp28
-rw-r--r--release/sysinstall/help/en_US.ISO8859-1/tcp.hlp27
-rw-r--r--release/sysinstall/help/en_US.ISO8859-1/usage.hlp54
-rw-r--r--release/sysinstall/help/en_US.ISO_8859-1/README104
-rw-r--r--release/sysinstall/help/en_US.ISO_8859-1/RELNOTES747
-rw-r--r--release/sysinstall/help/en_US.ISO_8859-1/XF86.hlp500
-rw-r--r--release/sysinstall/help/en_US.ISO_8859-1/configure.hlp14
-rw-r--r--release/sysinstall/help/en_US.ISO_8859-1/distributions.hlp88
-rw-r--r--release/sysinstall/help/en_US.ISO_8859-1/drives.hlp28
-rw-r--r--release/sysinstall/help/en_US.ISO_8859-1/hardware.hlp384
-rw-r--r--release/sysinstall/help/en_US.ISO_8859-1/install.hlp447
-rw-r--r--release/sysinstall/help/en_US.ISO_8859-1/language.hlp14
-rw-r--r--release/sysinstall/help/en_US.ISO_8859-1/media.hlp29
-rw-r--r--release/sysinstall/help/en_US.ISO_8859-1/network_device.hlp54
-rw-r--r--release/sysinstall/help/en_US.ISO_8859-1/options.hlp95
-rw-r--r--release/sysinstall/help/en_US.ISO_8859-1/partition.hlp77
-rw-r--r--release/sysinstall/help/en_US.ISO_8859-1/slice.hlp28
-rw-r--r--release/sysinstall/help/en_US.ISO_8859-1/tcp.hlp27
-rw-r--r--release/sysinstall/help/en_US.ISO_8859-1/usage.hlp54
-rw-r--r--release/sysinstall/help/es_ES.ISO8859-1/README108
-rw-r--r--release/sysinstall/help/es_ES.ISO8859-1/configure.hlp18
-rw-r--r--release/sysinstall/help/es_ES.ISO8859-1/language.hlp15
-rw-r--r--release/sysinstall/help/es_ES.ISO8859-1/usage.hlp57
-rw-r--r--release/sysinstall/help/es_ES.ISO_8859-1/README108
-rw-r--r--release/sysinstall/help/es_ES.ISO_8859-1/configure.hlp18
-rw-r--r--release/sysinstall/help/es_ES.ISO_8859-1/language.hlp15
-rw-r--r--release/sysinstall/help/es_ES.ISO_8859-1/usage.hlp57
-rw-r--r--release/sysinstall/help/fr_FR.ISO8859-1/README104
-rw-r--r--release/sysinstall/help/fr_FR.ISO8859-1/configure.hlp16
-rw-r--r--release/sysinstall/help/fr_FR.ISO8859-1/language.hlp13
-rw-r--r--release/sysinstall/help/fr_FR.ISO8859-1/usage.hlp54
-rw-r--r--release/sysinstall/help/fr_FR.ISO_8859-1/README104
-rw-r--r--release/sysinstall/help/fr_FR.ISO_8859-1/configure.hlp16
-rw-r--r--release/sysinstall/help/fr_FR.ISO_8859-1/language.hlp13
-rw-r--r--release/sysinstall/help/fr_FR.ISO_8859-1/usage.hlp54
-rw-r--r--release/sysinstall/help/hardware.hlp390
-rw-r--r--release/sysinstall/help/install.hlp447
-rw-r--r--release/sysinstall/help/it_IT.ISO8859-1/README107
-rw-r--r--release/sysinstall/help/it_IT.ISO8859-1/configure.hlp16
-rw-r--r--release/sysinstall/help/it_IT.ISO8859-1/language.hlp15
-rw-r--r--release/sysinstall/help/it_IT.ISO8859-1/usage.hlp56
-rw-r--r--release/sysinstall/help/it_IT.ISO_8859-1/README107
-rw-r--r--release/sysinstall/help/it_IT.ISO_8859-1/configure.hlp16
-rw-r--r--release/sysinstall/help/it_IT.ISO_8859-1/language.hlp15
-rw-r--r--release/sysinstall/help/it_IT.ISO_8859-1/usage.hlp56
-rw-r--r--release/sysinstall/help/ja_JP.JIS/README97
-rw-r--r--release/sysinstall/help/ja_JP.JIS/configure.hlp13
-rw-r--r--release/sysinstall/help/ja_JP.JIS/language.hlp12
-rw-r--r--release/sysinstall/help/ja_JP.JIS/usage.hlp50
-rw-r--r--release/sysinstall/help/ja_JP.ROMAJI/README105
-rw-r--r--release/sysinstall/help/ja_JP.ROMAJI/configure.hlp16
-rw-r--r--release/sysinstall/help/ja_JP.ROMAJI/language.hlp14
-rw-r--r--release/sysinstall/help/ja_JP.ROMAJI/usage.hlp52
-rw-r--r--release/sysinstall/help/media.hlp29
-rw-r--r--release/sysinstall/help/network_device.hlp54
-rw-r--r--release/sysinstall/help/nl_NL.ISO8859-1/README106
-rw-r--r--release/sysinstall/help/nl_NL.ISO8859-1/configure.hlp16
-rw-r--r--release/sysinstall/help/nl_NL.ISO8859-1/language.hlp15
-rw-r--r--release/sysinstall/help/nl_NL.ISO8859-1/usage.hlp56
-rw-r--r--release/sysinstall/help/nl_NL.ISO_8859-1/README106
-rw-r--r--release/sysinstall/help/nl_NL.ISO_8859-1/configure.hlp16
-rw-r--r--release/sysinstall/help/nl_NL.ISO_8859-1/language.hlp15
-rw-r--r--release/sysinstall/help/nl_NL.ISO_8859-1/usage.hlp56
-rw-r--r--release/sysinstall/help/no_NO.ISO8859-1/README107
-rw-r--r--release/sysinstall/help/no_NO.ISO8859-1/configure.hlp16
-rw-r--r--release/sysinstall/help/no_NO.ISO8859-1/language.hlp13
-rw-r--r--release/sysinstall/help/no_NO.ISO8859-1/usage.hlp56
-rw-r--r--release/sysinstall/help/no_NO.ISO_8859-1/README107
-rw-r--r--release/sysinstall/help/no_NO.ISO_8859-1/configure.hlp16
-rw-r--r--release/sysinstall/help/no_NO.ISO_8859-1/language.hlp13
-rw-r--r--release/sysinstall/help/no_NO.ISO_8859-1/usage.hlp56
-rw-r--r--release/sysinstall/help/options.hlp95
-rw-r--r--release/sysinstall/help/partition.hlp122
-rw-r--r--release/sysinstall/help/readme.hlp104
-rw-r--r--release/sysinstall/help/relnotes.hlp747
-rw-r--r--release/sysinstall/help/ru_SU.KOI8-R/README109
-rw-r--r--release/sysinstall/help/ru_SU.KOI8-R/configure.hlp16
-rw-r--r--release/sysinstall/help/ru_SU.KOI8-R/language.hlp15
-rw-r--r--release/sysinstall/help/ru_SU.KOI8-R/usage.hlp60
-rw-r--r--release/sysinstall/help/slice.hlp28
-rw-r--r--release/sysinstall/help/sv_SE.ISO8859-1/README114
-rw-r--r--release/sysinstall/help/sv_SE.ISO8859-1/configure.hlp15
-rw-r--r--release/sysinstall/help/sv_SE.ISO8859-1/language.hlp14
-rw-r--r--release/sysinstall/help/sv_SE.ISO8859-1/usage.hlp49
-rw-r--r--release/sysinstall/help/sv_SE.ISO_8859-1/README114
-rw-r--r--release/sysinstall/help/sv_SE.ISO_8859-1/configure.hlp15
-rw-r--r--release/sysinstall/help/sv_SE.ISO_8859-1/language.hlp14
-rw-r--r--release/sysinstall/help/sv_SE.ISO_8859-1/usage.hlp49
-rw-r--r--release/sysinstall/help/tcp.hlp27
-rw-r--r--release/sysinstall/help/upgrade.hlp38
-rw-r--r--release/sysinstall/help/usage.hlp54
-rw-r--r--release/sysinstall/index.c569
-rw-r--r--release/sysinstall/install.c518
-rw-r--r--release/sysinstall/installFinal.c244
-rw-r--r--release/sysinstall/installPreconfig.c201
-rw-r--r--release/sysinstall/installUpgrade.c352
-rw-r--r--release/sysinstall/label.c780
-rw-r--r--release/sysinstall/lang.c147
-rw-r--r--release/sysinstall/main.c87
-rw-r--r--release/sysinstall/media.c486
-rw-r--r--release/sysinstall/media_strategy.c838
-rw-r--r--release/sysinstall/menus.c916
-rw-r--r--release/sysinstall/misc.c245
-rw-r--r--release/sysinstall/msg.c353
-rw-r--r--release/sysinstall/network.c219
-rw-r--r--release/sysinstall/nfs.c103
-rw-r--r--release/sysinstall/options.c286
-rw-r--r--release/sysinstall/package.c200
-rw-r--r--release/sysinstall/rtermcap.c15
-rw-r--r--release/sysinstall/sysinstall.h510
-rw-r--r--release/sysinstall/system.c264
-rw-r--r--release/sysinstall/tape.c100
-rw-r--r--release/sysinstall/tcpip.c486
-rw-r--r--release/sysinstall/termcap.c78
-rw-r--r--release/sysinstall/ufs.c62
-rw-r--r--release/sysinstall/variable.c90
-rw-r--r--release/sysinstall/version.h1
-rw-r--r--release/sysinstall/wizard.c232
187 files changed, 27024 insertions, 0 deletions
diff --git a/release/sysinstall/Makefile b/release/sysinstall/Makefile
new file mode 100644
index 0000000..0f0b8fd
--- /dev/null
+++ b/release/sysinstall/Makefile
@@ -0,0 +1,58 @@
+PROG= sysinstall
+NOMAN= yes
+CLEANFILES= makedevs.c rtermcap
+
+.PATH: ${.CURDIR}/../disklabel ${.CURDIR}/../../usr.bin/cksum
+
+SRCS= attr.c cdrom.c command.c config.c decode.c devices.c disks.c dist.c \
+ dmenu.c dos.c floppy.c ftp.c ftp_strat.c globals.c install.c label.c \
+ main.c makedevs.c media.c menus.c misc.c msg.c network.c nfs.c system.c tape.c \
+ tcpip.c termcap.c ufs.c variable.c wizard.c
+
+
+CFLAGS+= -Wall -I${.CURDIR}/../libdisk \
+ -I${.CURDIR}/../../gnu/lib/libdialog
+
+LDADD= -ldialog -lncurses -lmytinfo -lutil
+.if exists(${.CURDIR}/../libdisk/obj)
+LDADD+= -L${.CURDIR}/../libdisk/obj -ldisk
+.else
+LDADD+= -L${.CURDIR}/../libdisk -ldisk
+.endif
+
+DPADD= ${LIBDIALOG} ${LIBNCURSES} ${LIBMYTINFO} ${LIBUTIL}
+
+makedevs.c: Makefile rtermcap
+ rm -f makedevs.tmp
+ echo '#include <sys/types.h>' > makedevs.tmp
+ ./rtermcap cons25 | \
+ file2c 'const char termcap_cons25[] = {' ',0};' \
+ >> makedevs.tmp
+ ./rtermcap cons25-m | \
+ file2c 'const char termcap_cons25_m[] = {' ',0};' \
+ >> makedevs.tmp
+ ./rtermcap cons25r | \
+ file2c 'const char termcap_cons25r[] = {' ',0};' \
+ >> makedevs.tmp
+ ./rtermcap cons25r-m | \
+ file2c 'const char termcap_cons25r_m[] = {' ',0};' \
+ >> makedevs.tmp
+ ./rtermcap cons25l1 | \
+ file2c 'const char termcap_cons25l1[] = {' ',0};' \
+ >> makedevs.tmp
+ ./rtermcap cons25l1-m | \
+ file2c 'const char termcap_cons25l1_m[] = {' ',0};' \
+ >> makedevs.tmp
+ ./rtermcap vt100 | \
+ file2c 'const char termcap_vt100[] = {' ',0};' \
+ >> makedevs.tmp
+ mv makedevs.tmp makedevs.c
+
+rtermcap: ${.CURDIR}/rtermcap.c
+ ${CC} -o rtermcap ${.CURDIR}/rtermcap.c -ltermcap
+
+testftp: ftp.c
+ cc -o testftp -I../libdisk -DSTANDALONE_FTP ftp.c
+
+.include <bsd.prog.mk>
+
diff --git a/release/sysinstall/attr.c b/release/sysinstall/attr.c
new file mode 100644
index 0000000..9f3b246
--- /dev/null
+++ b/release/sysinstall/attr.c
@@ -0,0 +1,179 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last attempt in the `sysinstall' line, the next
+ * generation being slated to essentially a complete rewrite.
+ *
+ * $Id: attr.c,v 1.2.2.4 1995/06/06 00:44:51 jkh Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ * Copyright (c) 1995
+ * Gary J Palmer. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+#include <ctype.h>
+#include <sys/errno.h>
+static int num_attribs;
+
+int
+attr_parse(Attribs **attr, char *file)
+{
+ char hold_n[MAX_NAME+1];
+ char hold_v[MAX_VALUE+1];
+ int n, v, ch = 0;
+ enum { LOOK, COMMENT, NAME, VALUE, COMMIT } state;
+ FILE *fp;
+ static int lno;
+
+ num_attribs = n = v = lno = 0;
+ state = LOOK;
+
+ if ((fp = fopen(file, "r")) == NULL) {
+ msgConfirm("Cannot open the information file `%s': %s (%d)", file, strerror(errno), errno);
+ return 0;
+ }
+
+ while (state == COMMIT || (ch = fgetc(fp)) != EOF) {
+ /* Count lines */
+ if (ch == '\n')
+ ++lno;
+ switch(state) {
+ case LOOK:
+ if (isspace(ch))
+ continue;
+ /* Allow shell or lisp style comments */
+ else if (ch == '#' || ch == ';') {
+ state = COMMENT;
+ continue;
+ }
+ else if (isalpha(ch)) {
+ hold_n[n++] = ch;
+ state = NAME;
+ }
+ else
+ msgFatal("Invalid character '%c' at line %d\n", ch, lno);
+ break;
+
+ case COMMENT:
+ if (ch == '\n')
+ state = LOOK;
+ break;
+
+ case NAME:
+ if (ch == '\n') {
+ hold_n[n] = '\0';
+ hold_v[v = 0] = '\0';
+ state = COMMIT;
+ }
+ else if (isspace(ch))
+ continue;
+ else if (ch == '=') {
+ hold_n[n] = '\0';
+ state = VALUE;
+ }
+ else
+ hold_n[n++] = ch;
+ break;
+
+ case VALUE:
+ if (v == 0 && isspace(ch))
+ continue;
+ else if (ch == '{') {
+ /* multiline value */
+ while ((ch = fgetc(fp)) != '}') {
+ if (ch == EOF)
+ msgFatal("Unexpected EOF on line %d", lno);
+ else {
+ if (v == MAX_VALUE)
+ msgFatal("Value length overflow at line %d", lno);
+ hold_v[v++] = ch;
+ }
+ }
+ hold_v[v] = '\0';
+ state = COMMIT;
+ }
+ else if (ch == '\n') {
+ hold_v[v] = '\0';
+ state = COMMIT;
+ }
+ else {
+ if (v == MAX_VALUE)
+ msgFatal("Value length overflow at line %d", lno);
+ else
+ hold_v[v++] = ch;
+ }
+ break;
+
+ case COMMIT:
+ (*attr)[num_attribs].name = strdup(hold_n);
+ (*attr)[num_attribs++].value = strdup(hold_v);
+ state = LOOK;
+ v = n = 0;
+ break;
+
+ default:
+ msgFatal("Unknown state at line %d??\n", lno);
+ }
+ }
+ fclose(fp);
+ return 1;
+}
+
+const char *
+attr_match(Attribs *attr, char *name)
+{
+ int n = 0;
+
+ if (isDebug())
+ msgDebug("Trying to match attribute `%s'\n", name);
+
+ while ((n < num_attribs) && (strcasecmp(attr[n].name, name) != 0)) {
+ if (isDebug())
+ msgDebug("Skipping attribute %u\n", n);
+ n++;
+ }
+
+ if (isDebug())
+ msgDebug("Stopped on attribute %u\n", n);
+
+ if (n < num_attribs) {
+ if (isDebug())
+ msgDebug("Returning `%s'\n", attr[n].value);
+ return((const char *) attr[n].value);
+ }
+
+ return NULL;
+}
diff --git a/release/sysinstall/bteasy17.uu b/release/sysinstall/bteasy17.uu
new file mode 100644
index 0000000..2cc05b2
--- /dev/null
+++ b/release/sysinstall/bteasy17.uu
@@ -0,0 +1,15 @@
+begin 664 bteasy17
+M,\".P([8CM"\`'S\B_2_``:Y``'RI>I@!@``B]58HD@'/#5T'+00]N0%K@26
+M]D0$_W0^Q@2`Z-H`BG0!BTP"ZPCHSP"Y`0`RT;L`?+@!`LT3<AZ!O_X!5:IU
+M%NH`?```@/J!=`*R@(OJ0H#RLX@6.@>_O@>Y!`#&!BT',3+VB"V*100\`'0C
+M/`5T'_[&OBH'Z'$`OD@'1D:+'`K_=`4R?01U\XVW<@?H6@"#QQ#^!BT'XLN`
+M/G4$`G0+OCL'"O9U"LT8ZZR^*@?H.0#H-@`RY,T:B]J#PV"T`<T6M`!U"\T:
+M.]-R\J!(!^L*S1:*Q#P<=/,$]CPQ<M8\-7?24+XH![L;!E/\K%`D?[0.S1!8
+MJ(!T\L-6N`$#NP`&N0$`,O;-$U[&!D@'/\,-B@T*1C`@+B`N("Z@9&ES:R`Q
+M#0H*1&5F875L=#H@1C^@``$`!``&`P<'"@IC#F0.912`%($9@AZ3)*4GGRMU
+M+U(OVS)`-_(]`&1O\TA01M-/<[)5;FGX3F]V96SL36EN:?A,:6YU^$%M;V5B
+MX4)3Q$)31.E00TG80U#-5F5N:?A$;W-S9>,_OP``````````````````````
+M````````````````````````````````````````````````````````````
+1````````````````````5:H`
+`
+end
diff --git a/release/sysinstall/cdrom.c b/release/sysinstall/cdrom.c
new file mode 100644
index 0000000..03cef9f
--- /dev/null
+++ b/release/sysinstall/cdrom.c
@@ -0,0 +1,126 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last attempt in the `sysinstall' line, the next
+ * generation being slated to essentially a complete rewrite.
+ *
+ * $Id: cdrom.c,v 1.7.2.2 1995/07/21 11:45:32 rgrimes Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ * Copyright (c) 1995
+ * Gary J Palmer. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+/* These routines deal with getting things off of CDROM media */
+
+#include "sysinstall.h"
+#include <sys/stat.h>
+#include <sys/errno.h>
+#include <sys/param.h>
+#include <sys/wait.h>
+#include <unistd.h>
+#include <grp.h>
+#include <fcntl.h>
+
+#define CD9660
+#include <sys/mount.h>
+#undef CD9660
+
+static Boolean cdromMounted;
+
+Boolean
+mediaInitCDROM(Device *dev)
+{
+ struct iso_args args;
+ struct stat sb;
+
+ if (!RunningAsInit || cdromMounted)
+ return TRUE;
+
+ if (Mkdir("/cdrom", NULL))
+ return FALSE;
+
+ bzero(&args, sizeof(args));
+ args.fspec = dev->devname;
+ args.flags = 0;
+
+ if (mount(MOUNT_CD9660, "/cdrom", MNT_RDONLY, (caddr_t) &args) == -1) {
+ msgConfirm("Error mounting %s on /cdrom: %s (%u)\n", dev, strerror(errno), errno);
+ return FALSE;
+ }
+
+ /*
+ * Do a very simple check to see if this looks roughly like a 2.0.5 CDROM
+ * Unfortunately FreeBSD won't let us read the ``label'' AFAIK, which is one
+ * sure way of telling the disc version :-(
+ */
+ if (stat("/cdrom/dists", &sb)) {
+ if (errno == ENOENT) {
+ msgConfirm("Couldn't locate the directory `dists' on the CD.\nIs this a FreeBSD CDROM?\n");
+ return FALSE;
+ }
+ else {
+ msgConfirm("Couldn't stat directory %s: %s", "/cdrom/dists", strerror(errno));
+ return FALSE;
+ }
+ }
+ cdromMounted = TRUE;
+ return TRUE;
+}
+
+int
+mediaGetCDROM(Device *dev, char *file, Attribs *dist_attrs)
+{
+ char buf[PATH_MAX];
+
+ snprintf(buf, PATH_MAX, "/cdrom/%s", file);
+ if (!access(buf,R_OK))
+ return open(buf, O_RDONLY);
+ snprintf(buf, PATH_MAX, "/cdrom/dists/%s", file);
+ return open(buf, O_RDONLY);
+}
+
+void
+mediaShutdownCDROM(Device *dev)
+{
+ if (!RunningAsInit || !cdromMounted)
+ return;
+ msgDebug("Unmounting /cdrom\n");
+ if (unmount("/cdrom", MNT_FORCE) != 0)
+ msgConfirm("Could not unmount the CDROM: %s\n", strerror(errno));
+ msgDebug("Unmount returned\n");
+ cdromMounted = FALSE;
+ return;
+}
diff --git a/release/sysinstall/command.c b/release/sysinstall/command.c
new file mode 100644
index 0000000..1fad8d2
--- /dev/null
+++ b/release/sysinstall/command.c
@@ -0,0 +1,165 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last program in the `sysinstall' line - the next
+ * generation being essentially a complete rewrite.
+ *
+ * $Id: command.c,v 1.11.4.1 1995/07/21 11:45:35 rgrimes Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+
+#define MAX_NUM_COMMANDS 10
+
+typedef struct {
+ char key[FILENAME_MAX];
+ struct {
+ enum { CMD_SHELL, CMD_FUNCTION } type;
+ void *ptr, *data;
+ } cmds[MAX_NUM_COMMANDS];
+ int ncmds;
+} Command;
+
+#define MAX_CMDS 200
+static Command *commandStack[MAX_CMDS];
+int numCommands;
+
+/* Nuke the command stack */
+void
+command_clear(void)
+{
+ int i, j;
+
+ for (i = 0; i < numCommands; i++)
+ for (j = 0; j < commandStack[i]->ncmds; j++)
+ if (commandStack[i]->cmds[j].type == CMD_SHELL)
+ free(commandStack[i]->cmds[j].ptr);
+ free(commandStack[i]);
+ numCommands = 0;
+}
+
+static void
+addit(char *key, int type, void *cmd, void *data)
+{
+ int i;
+
+ /* First, look for the key already present and add a command to it */
+ for (i = 0; i < numCommands; i++) {
+ if (!strcmp(commandStack[i]->key, key)) {
+ if (commandStack[i]->ncmds == MAX_NUM_COMMANDS)
+ msgFatal("More than %d commands stacked up behind %s??", MAX_NUM_COMMANDS, key);
+ commandStack[i]->cmds[commandStack[i]->ncmds].type = type;
+ commandStack[i]->cmds[commandStack[i]->ncmds].ptr = cmd;
+ commandStack[i]->cmds[commandStack[i]->ncmds].data = data;
+ ++(commandStack[i]->ncmds);
+ return;
+ }
+ }
+ if (numCommands == MAX_CMDS)
+ msgFatal("More than %d commands accumulated??", MAX_CMDS);
+
+ /* If we fell to here, it's a new key */
+ commandStack[numCommands] = safe_malloc(sizeof(Command));
+ strcpy(commandStack[numCommands]->key, key);
+ commandStack[numCommands]->ncmds = 1;
+ commandStack[numCommands]->cmds[0].type = type;
+ commandStack[numCommands]->cmds[0].ptr = cmd;
+ commandStack[numCommands++]->cmds[0].data = data;
+}
+
+/* Add a shell command under a given key */
+void
+command_shell_add(char *key, char *fmt, ...)
+{
+ va_list args;
+ char *cmd;
+
+ cmd = (char *)safe_malloc(1024);
+ va_start(args, fmt);
+ vsnprintf(cmd, 1024, fmt, args);
+ va_end(args);
+
+ addit(key, CMD_SHELL, cmd, NULL);
+}
+
+/* Add a shell command under a given key */
+void
+command_func_add(char *key, commandFunc func, void *data)
+{
+ addit(key, CMD_FUNCTION, func, data);
+}
+
+/* arg to sort */
+static int
+sort_compare(const void *p1, const void *p2)
+{
+ return strcmp(((Command *)p1)->key, ((Command *)p2)->key);
+}
+
+void
+command_sort(void)
+{
+ qsort(commandStack, numCommands, sizeof(Command *), sort_compare);
+}
+
+/* Run all accumulated commands in sorted order */
+void
+command_execute(void)
+{
+ int i, j, ret;
+ commandFunc func;
+
+ for (i = 0; i < numCommands; i++) {
+ for (j = 0; j < commandStack[i]->ncmds; j++) {
+ /* If it's a shell command, run system on it */
+ if (commandStack[i]->cmds[j].type == CMD_SHELL) {
+ msgNotify("Doing %s", commandStack[i]->cmds[j].ptr);
+ ret = vsystem((char *)commandStack[i]->cmds[j].ptr);
+ if (isDebug())
+ msgDebug("Command `%s' returns status %d\n", commandStack[i]->cmds[j].ptr, ret);
+ }
+ else {
+ /* It's a function pointer - call it with the key and the data */
+ func = (commandFunc)commandStack[i]->cmds[j].ptr;
+ msgNotify("%x: Execute(%s, %s)", func, commandStack[i]->key, commandStack[i]->cmds[j].data);
+ ret = (*func)(commandStack[i]->key, commandStack[i]->cmds[j].data);
+ if (isDebug())
+ msgDebug("Function @ %x returns status %d\n", commandStack[i]->cmds[j].ptr, ret);
+ }
+ }
+ }
+}
diff --git a/release/sysinstall/config.c b/release/sysinstall/config.c
new file mode 100644
index 0000000..75f0f9c
--- /dev/null
+++ b/release/sysinstall/config.c
@@ -0,0 +1,383 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last program in the `sysinstall' line - the next
+ * generation being essentially a complete rewrite.
+ *
+ * $Id: config.c,v 1.16.2.2 1995/07/21 11:45:36 rgrimes Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+#include <sys/disklabel.h>
+#include <sys/wait.h>
+
+static Chunk *chunk_list[MAX_CHUNKS];
+static int nchunks;
+
+/* arg to sort */
+static int
+chunk_compare(const void *p1, const void *p2)
+{
+ Chunk *c1, *c2;
+
+ c1 = (Chunk *)p1;
+ c2 = (Chunk *)p2;
+ if (!c1->private && !c2->private)
+ return 0;
+ else if (c1->private && !c2->private)
+ return -1;
+ else if (!c1->private && c2->private)
+ return 1;
+ else
+ return strcmp(((PartInfo *)c1->private)->mountpoint, ((PartInfo *)c2->private)->mountpoint);
+}
+
+static char *
+nameof(Chunk *c1)
+{
+ static char rootname[64];
+
+ /* Our boot blocks can't deal with root partitions on slices - need the compatbility name */
+ if (c1->type == part && c1->flags & CHUNK_IS_ROOT) {
+ sprintf(rootname, "%sa", c1->disk->name);
+ return rootname;
+ }
+ else
+ return c1->name;
+}
+
+static char *
+mount_point(Chunk *c1)
+{
+ if (c1->type == part && c1->subtype == FS_SWAP)
+ return "none";
+ else if (c1->type == part || c1->type == fat)
+ return ((PartInfo *)c1->private)->mountpoint;
+ return "/bogus";
+}
+
+static char *
+fstype(Chunk *c1)
+{
+ if (c1->type == fat)
+ return "msdos";
+ else if (c1->type == part) {
+ if (c1->subtype != FS_SWAP)
+ return "ufs";
+ else
+ return "swap";
+ }
+ return "bogus";
+}
+
+static char *
+fstype_short(Chunk *c1)
+{
+ if (c1->type == part) {
+ if (c1->subtype != FS_SWAP)
+ return "rw";
+ else
+ return "sw";
+ }
+ else if (c1->type == fat)
+ return "ro";
+ return "bog";
+}
+
+static int
+seq_num(Chunk *c1)
+{
+ if (c1->type == part && c1->subtype != FS_SWAP)
+ return 1;
+ return 0;
+}
+
+void
+configFstab(void)
+{
+ Device **devs;
+ Disk *disk;
+ FILE *fstab;
+ int i, cnt;
+ Chunk *c1, *c2;
+
+ if (!RunningAsInit) {
+ if (file_readable("/etc/fstab"))
+ return;
+ else
+ msgConfirm("Attempting to rebuild your /etc/fstab file.\nWarning: If you had any CD devices in use before running\nsysinstall then they may NOT be found in this run!");
+ }
+ devs = deviceFind(NULL, DEVICE_TYPE_DISK);
+ if (!devs) {
+ msgConfirm("No disks found!");
+ return;
+ }
+
+ /* Record all the chunks */
+ nchunks = 0;
+ for (i = 0; devs[i]; i++) {
+ if (!devs[i]->enabled)
+ continue;
+ disk = (Disk *)devs[i]->private;
+ if (!disk->chunks)
+ msgFatal("No chunk list found for %s!", disk->name);
+ for (c1 = disk->chunks->part; c1; c1 = c1->next) {
+ if (c1->type == freebsd) {
+ for (c2 = c1->part; c2; c2 = c2->next) {
+ if (c2->type == part && (c2->subtype == FS_SWAP || c2->private))
+ chunk_list[nchunks++] = c2;
+ }
+ }
+ else if (c1->type == fat && c1->private)
+ chunk_list[nchunks++] = c1;
+ }
+ }
+
+ /* Sort them puppies! */
+ qsort(chunk_list, nchunks, sizeof(Chunk *), chunk_compare);
+
+ fstab = fopen("/etc/fstab", "w");
+ if (!fstab) {
+ msgConfirm("Unable to create a new /etc/fstab file!\nManual intervention will be required.");
+ return;
+ }
+
+ /* Go for the burn */
+ msgDebug("Generating /etc/fstab file\n");
+ for (i = 0; i < nchunks; i++)
+ fprintf(fstab, "/dev/%s\t\t\t%s\t\t%s\t%s %d %d\n", nameof(chunk_list[i]), mount_point(chunk_list[i]),
+ fstype(chunk_list[i]), fstype_short(chunk_list[i]), seq_num(chunk_list[i]), seq_num(chunk_list[i]));
+ Mkdir("/proc", NULL);
+ fprintf(fstab, "proc\t\t\t\t/proc\t\tprocfs\trw 0 0\n");
+
+ /* Now look for the CDROMs */
+ devs = deviceFind(NULL, DEVICE_TYPE_CDROM);
+ cnt = deviceCount(devs);
+
+ /* Write the first one out as /cdrom */
+ if (cnt) {
+ Mkdir("/cdrom", NULL);
+ fprintf(fstab, "/dev/%s\t\t\t/cdrom\t\tcd9660\tro 0 0\n", devs[0]->name);
+ }
+
+ /* Write the others out as /cdrom<n> */
+ for (i = 1; i < cnt; i++) {
+ char cdname[10];
+
+ sprintf(cdname, "/cdrom%d", i);
+ Mkdir(cdname, NULL);
+ fprintf(fstab, "/dev/%s\t\t\t%s\t\tcd9660\tro 0 0\n", devs[i]->name, cdname);
+ }
+ fclose(fstab);
+ if (isDebug())
+ msgDebug("Wrote out /etc/fstab file\n");
+}
+
+/*
+ * This sucks in /etc/sysconfig, substitutes anything needing substitution, then
+ * writes it all back out. It's pretty gross and needs re-writing at some point.
+ */
+void
+configSysconfig(void)
+{
+ FILE *fp;
+ char *lines[5001]; /* Some big number we're not likely to ever reach - I'm being really lazy here, I know */
+ char line[256];
+ Variable *v;
+ int i, nlines = 0;
+
+ fp = fopen("/etc/sysconfig", "r");
+ if (!fp) {
+ msgConfirm("Unable to open /etc/sysconfig file! Things may work\nrather strangely as a result of this.");
+ return;
+ }
+ for (i = 0; i < 5000; i++) {
+ if (!fgets(line, 255, fp))
+ break;
+ lines[nlines++] = strdup(line);
+ }
+ lines[nlines] = NULL;
+ fclose(fp);
+ for (v = VarHead; v; v = v->next) {
+ for (i = 0; i < nlines; i++) {
+ char modify[256], *cp;
+
+ if (lines[i][0] == '#' || lines[i][0] == ';')
+ continue;
+ strncpy(modify, lines[i], 255);
+ cp = index(modify, '=');
+ if (!cp)
+ continue;
+ *(cp++) = '\0';
+ if (!strcmp(modify, v->name)) {
+ free(lines[i]);
+ lines[i] = (char *)malloc(strlen(v->name) + strlen(v->value) + 3);
+ sprintf(lines[i], "%s=\"%s\"\n", v->name, v->value);
+ }
+
+ }
+ }
+ fp = fopen("/etc/sysconfig", "w");
+ if (!fp) {
+ msgConfirm("Unable to re-write /etc/sysconfig file! Things may work\nrather strangely as a result of this.");
+ return;
+ }
+ for (i = 0; i < nlines; i++) {
+ fprintf(fp, lines[i]);
+ free(lines[i]);
+
+ /* Stand by for bogus special case handling - we try to dump the interface specs here */
+ if (!strncmp(lines[i], VAR_INTERFACES, strlen(VAR_INTERFACES))) {
+ Device **devp;
+ int j, cnt;
+
+ devp = deviceFind(NULL, DEVICE_TYPE_NETWORK);
+ cnt = deviceCount(devp);
+ for (j = 0; j < cnt; j++) {
+ if (devp[j]->private && strncmp(devp[j]->name, "cuaa", 4)) {
+ char iname[64];
+
+ snprintf(iname, 64, "%s%s", VAR_IFCONFIG, devp[j]->name);
+ if (getenv(iname))
+ fprintf(fp, "%s=\"%s\"\n", iname, getenv(iname));
+ }
+ }
+ }
+ }
+ fclose(fp);
+
+ /* If we're an NFS server, we need an exports file */
+ if (getenv("nfs_server") && !file_readable("/etc/exports")) {
+ msgConfirm("You have chosen to be an NFS server but have not yet configured\nthe /etc/exports file. The format for an exports entry is:\n <mountpoint> <opts> <host [..host]>\nWhere <mounpoint> is the name of a filesystem as specified\nin the Label editor, <opts> is a list of special options we\nwon't concern ourselves with here (``man exports'' when the\nsystem is fully installed) and <host> is one or more host\nnames who are allowed to mount this file system. Press\n[ENTER] now to invoke the editor on /etc/exports");
+ systemExecute("vi /etc/exports");
+ }
+}
+
+int
+configSaverTimeout(char *str)
+{
+ char *val;
+
+ val = msgGetInput("60", "Enter time-out period in seconds for screen saver");
+ if (val)
+ variable_set2("blanktime", val);
+ return 0;
+}
+
+int
+configNTP(char *str)
+{
+ char *val;
+
+ val = msgGetInput(NULL, "Enter the name of an NTP server");
+ if (val)
+ variable_set2("ntpdate", val);
+ return 0;
+}
+
+void
+configResolv(void)
+{
+ FILE *fp;
+ char *cp;
+
+ if (!RunningAsInit && file_readable("/etc/resolv.conf"))
+ return;
+
+ if (!getenv(VAR_NAMESERVER)) {
+ if (mediaDevice && (mediaDevice->type == DEVICE_TYPE_NFS || mediaDevice->type == DEVICE_TYPE_FTP))
+ msgConfirm("Warning: Missing name server value - network operations\nmay fail as a result!");
+ goto skip;
+ }
+ Mkdir("/etc", NULL);
+ fp = fopen("/etc/resolv.conf", "w");
+ if (!fp) {
+ msgConfirm("Unable to open /etc/resolv.conf! You will need to do this manually.");
+ return;
+ }
+ if (getenv(VAR_DOMAINNAME))
+ fprintf(fp, "domain\t%s\n", getenv(VAR_DOMAINNAME));
+ fprintf(fp, "nameserver\t%s\n", getenv(VAR_NAMESERVER));
+ fclose(fp);
+ if (isDebug())
+ msgDebug("Wrote out /etc/resolv.conf\n");
+
+skip:
+ /* Tack ourselves at the end of /etc/hosts */
+ cp = getenv(VAR_IPADDR);
+ if (cp && *cp != '0' && getenv(VAR_HOSTNAME)) {
+ fp = fopen("/etc/hosts", "a");
+ fprintf(fp, "%s\t\t%s\n", cp, getenv(VAR_HOSTNAME));
+ fclose(fp);
+ if (isDebug())
+ msgDebug("Appended entry for %s to /etc/hosts\n", cp);
+ }
+}
+
+int
+configRoutedFlags(char *str)
+{
+ char *val;
+
+ val = msgGetInput("-q", "Specify the flags for routed; -q is the default, -s is\na good choice for gateway machines.");
+ if (val)
+ variable_set2("routedflags", val);
+ return 0;
+}
+
+int
+configPackages(char *str)
+{
+ Boolean onCD;
+
+ /* If we're running as init, we know that a CD in the drive is probably ours */
+ onCD = file_readable("/cdrom/packages");
+ if (!onCD && RunningAsInit) {
+ if (mediaSetCDROM(NULL)) {
+ if ((*mediaDevice->init)(mediaDevice))
+ onCD = TRUE;
+ }
+ }
+ /* XXX Construct some sort of menu here using an INDEX file from /cdrom/packages XXX */
+ return 0;
+}
+
+int
+configPorts(char *str)
+{
+ return 0;
+}
diff --git a/release/sysinstall/decode.c b/release/sysinstall/decode.c
new file mode 100644
index 0000000..2302796
--- /dev/null
+++ b/release/sysinstall/decode.c
@@ -0,0 +1,153 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last program in the `sysinstall' line - the next
+ * generation being essentially a complete rewrite.
+ *
+ * $Id: decode.c,v 1.5.2.3 1995/06/02 15:30:47 jkh Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+
+DMenuItem *
+decode(DMenu *menu, char *name)
+{
+ DMenuItem *tmp;
+
+ for (tmp = menu->items; tmp->title; tmp++)
+ if (!strcmp(name, tmp->title))
+ break;
+ if (!tmp->title)
+ return NULL;
+ return tmp;
+}
+
+Boolean
+dispatch(DMenuItem *tmp, char *name)
+{
+ Boolean failed = FALSE;
+
+ switch (tmp->type) {
+ /* We want to simply display a file */
+ case DMENU_DISPLAY_FILE:
+ systemDisplayFile((char *)tmp->ptr);
+ break;
+
+ /* It's a sub-menu; recurse on it */
+ case DMENU_SUBMENU:
+ (void)dmenuOpenSimple((DMenu *)tmp->ptr);
+ break;
+
+ /* Execute it as a system command */
+ case DMENU_SYSTEM_COMMAND:
+ (void)systemExecute((char *)tmp->ptr);
+ break;
+
+ /* Same as above, but execute it in a prgbox */
+ case DMENU_SYSTEM_COMMAND_BOX:
+ use_helpfile(NULL);
+ use_helpline("Select OK to dismiss this dialog");
+ dialog_prgbox(tmp->title, (char *)tmp->ptr, 22, 76, 1, 1);
+ dialog_clear();
+ break;
+
+ case DMENU_CALL:
+ failed = (((int (*)())tmp->ptr)(name));
+ break;
+
+ case DMENU_CANCEL:
+ return TRUE;
+
+ case DMENU_SET_VARIABLE:
+ variable_set((char *)tmp->ptr);
+ break;
+
+ case DMENU_SET_FLAG:
+ *((unsigned int *)tmp->ptr) |= tmp->parm;
+ break;
+
+ case DMENU_SET_VALUE:
+ *((unsigned int *)tmp->ptr) = tmp->parm;
+ break;
+
+ case DMENU_NOP:
+ break;
+
+ default:
+ msgFatal("Don't know how to deal with menu type %d", tmp->type);
+ }
+ return failed;
+}
+
+Boolean
+decode_and_dispatch_multiple(DMenu *menu, char *names)
+{
+ DMenuItem *tmp;
+ int errors = 0;
+
+ string_prune(names);
+ names = string_skipwhite(names);
+
+ /* KLUDGE ALERT:
+ * To make multi-choice flag arrays work this assumes that ALL items in
+ * a menu appear in the same mask!! If you need mixed masks, use
+ * submenus.
+ */
+ if (menu->items[0].type == DMENU_SET_FLAG)
+ *((unsigned int *)menu->items[0].ptr) = 0;
+
+ while (names) {
+ char *cp;
+
+ cp = index(names, '\n');
+ if (cp)
+ *cp++ = 0;
+ /* Were no options actually selected? */
+ if (!*names)
+ return FALSE;
+ if ((tmp = decode(menu, names)) != NULL) {
+ if (dispatch(tmp, names))
+ ++errors;
+ }
+ else
+ msgFatal("Couldn't find a handler for item `%s' in menu `%s'!",
+ names, menu->title);
+ names = cp;
+ }
+ return errors ? TRUE : FALSE;
+}
+
diff --git a/release/sysinstall/dev2c.sh b/release/sysinstall/dev2c.sh
new file mode 100644
index 0000000..cbd2e71
--- /dev/null
+++ b/release/sysinstall/dev2c.sh
@@ -0,0 +1,80 @@
+:
+#
+# ----------------------------------------------------------------------------
+# "THE BEER-WARE LICENSE" (Revision 42):
+# <phk@login.dknet.dk> wrote this file. As long as you retain this notice you
+# can do whatever you want with this stuff. If we meet some day, and you think
+# this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
+# ----------------------------------------------------------------------------
+#
+# $Id: dev2c.sh,v 1.1 1994/10/26 02:53:08 phk Exp $
+#
+# During installation, we suffer badly of we have to run MAKEDEV. MAKEDEV
+# need sh, ln, chown, mknod, awk, rm, test and probably emacs too when
+# we come down to it. So instead this script will make a C-procedure which
+# makes all the B & C nodes of a specified directory.
+#
+# Poul-Henning
+
+(cd $1; ls -li ) | sed 's/,//' | awk '
+BEGIN {
+ while (getline < "/etc/passwd") {
+ split($0,a,":")
+ uid[a[1]] = a[3]
+ }
+ while (getline < "/etc/group") {
+ split($0,a,":")
+ gid[a[1]] = a[3]
+ }
+ printf("/*\n");
+ printf(" * This file is generated from the contents of /dev\n");
+ printf(" */\n");
+ printf("#define CHK(foo) {i = foo;}\n");
+ printf("#include <unistd.h>\n");
+ printf("#include <sys/types.h>\n");
+ printf("#include <sys/stat.h>\n");
+ printf("int makedevs()\n{\n\tint i=0;\n");
+ }
+ {
+ printf ("/* %s */\n",$0)
+ $4 = uid[$4]
+ $5 = gid[$5]
+ if (substr($2,1,1) == "b") {
+ k="S_IFBLK"
+ } else if (substr($2,1,1) == "c") {
+ k="S_IFCHR"
+ } else if (substr($2,1,1) == "d") {
+ next
+ } else if (substr($2,1,1) == "-") {
+ next
+ } else {
+ next
+ }
+ m = 0;
+ if (substr($2,2,1) == "r") m += 400;
+ if (substr($2,3,1) == "w") m += 200;
+ if (substr($2,4,1) == "x") m += 100;
+ if (substr($2,5,1) == "r") m += 40;
+ if (substr($2,6,1) == "w") m += 20;
+ if (substr($2,7,1) == "x") m += 10;
+ if (substr($2,8,1) == "r") m += 4;
+ if (substr($2,9,1) == "w") m += 2;
+ if (substr($2,10,1) == "x") m += 1;
+
+ if (a[$1] != 0) {
+ printf ("\tCHK(link(\"%s\",\"%s\"));\n", \
+ a[$1],$11)
+ } else {
+ printf ("\tCHK(mknod(\"%s\",%s,makedev(%d,%d)));\n", \
+ $11, k, $6, $7)
+ printf ("\tCHK(chmod(\"%s\",0%d));\n", \
+ $11, m)
+ printf ("\tCHK(chown(\"%s\",%d,%d));\n", \
+ $11, $4,$5)
+ a[$1] = $11
+ }
+ }
+END {
+ printf("\treturn i;\n}\n");
+ }
+'
diff --git a/release/sysinstall/devices.c b/release/sysinstall/devices.c
new file mode 100644
index 0000000..b1b91d7
--- /dev/null
+++ b/release/sysinstall/devices.c
@@ -0,0 +1,396 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last program in the `sysinstall' line - the next
+ * generation being essentially a complete rewrite.
+ *
+ * $Id: devices.c,v 1.35.2.9 1995/06/05 12:03:46 jkh Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+
+#include <sys/fcntl.h>
+#include <sys/param.h>
+#include <sys/socket.h>
+#include <sys/ioctl.h>
+
+#include <net/if.h>
+#include <net/if_dl.h>
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <arpa/inet.h>
+
+#define NSIP
+#include <netns/ns.h>
+#include <netns/ns_if.h>
+#include <netdb.h>
+
+#define EON
+#include <netiso/iso.h>
+#include <netiso/iso_var.h>
+#include <sys/protosw.h>
+
+#include <ctype.h>
+
+static Device *Devices[DEV_MAX];
+static int numDevs;
+
+static struct {
+ DeviceType type;
+ char *name;
+ char *description;
+} device_names[] = {
+ { DEVICE_TYPE_CDROM, "cd0a", "SCSI CDROM drive" },
+ { DEVICE_TYPE_CDROM, "cd1a", "SCSI CDROM drive (2nd unit)" },
+ { DEVICE_TYPE_CDROM, "mcd0a", "Mitsumi (old model) CDROM drive" },
+ { DEVICE_TYPE_CDROM, "mcd1a", "Mitsumi (old model) CDROM drive (2nd unit)" },
+ { DEVICE_TYPE_CDROM, "scd0a", "Sony CDROM drive - CDU31/33A type", },
+ { DEVICE_TYPE_CDROM, "scd1a", "Sony CDROM drive - CDU31/33A type (2nd unit)" },
+ { DEVICE_TYPE_CDROM, "matcd0a", "Matsushita CDROM ('sound blaster' type)" },
+ { DEVICE_TYPE_CDROM, "matcd1a", "Matsushita CDROM (2nd unit)" },
+ { DEVICE_TYPE_TAPE, "rst0", "SCSI tape drive" },
+ { DEVICE_TYPE_TAPE, "rst1", "SCSI tape drive (2nd unit)" },
+ { DEVICE_TYPE_TAPE, "ft0", "Floppy tape drive (QIC-02)" },
+ { DEVICE_TYPE_TAPE, "wt0", "Wangtek tape drive" },
+ { DEVICE_TYPE_DISK, "sd", "SCSI disk device" },
+ { DEVICE_TYPE_DISK, "wd", "IDE/ESDI/MFM/ST506 disk device" },
+ { DEVICE_TYPE_FLOPPY, "fd0", "floppy drive unit A" },
+ { DEVICE_TYPE_FLOPPY, "fd1", "floppy drive unit B" },
+ { DEVICE_TYPE_NETWORK, "cuaa0", "Serial port (COM1) - possible PPP/SLIP device" },
+ { DEVICE_TYPE_NETWORK, "cuaa1", "Serial port (COM2) - possible PPP/SLIP device" },
+ { DEVICE_TYPE_NETWORK, "lp0", "Parallel Port IP (PLIP) using laplink cable" },
+ { DEVICE_TYPE_NETWORK, "lo", "Loop-back (local) network interface" },
+ { DEVICE_TYPE_NETWORK, "sl", "Serial-line IP (SLIP) interface" },
+ { DEVICE_TYPE_NETWORK, "ppp", "Point-to-Point Protocol (PPP) interface" },
+ { DEVICE_TYPE_NETWORK, "de", "DEC DE435 PCI NIC or other DC21040-AA based card" },
+ { DEVICE_TYPE_NETWORK, "ed", "WD/SMC 80xx; Novell NE1000/2000; 3Com 3C503 cards" },
+ { DEVICE_TYPE_NETWORK, "ep", "3Com 3C509 ethernet card" },
+ { DEVICE_TYPE_NETWORK, "el", "3Com 3C501 ethernet card" },
+ { DEVICE_TYPE_NETWORK, "fe", "Fujitsu MB86960A/MB86965A ethernet card" },
+ { DEVICE_TYPE_NETWORK, "ie", "AT&T StarLAN 10 and EN100; 3Com 3C507; NI5210" },
+ { DEVICE_TYPE_NETWORK, "ix", "Intel Etherexpress ethernet card" },
+ { DEVICE_TYPE_NETWORK, "le", "DEC EtherWorks 2 or 3 ethernet card" },
+ { DEVICE_TYPE_NETWORK, "lnc", "Lance/PCnet (Isolan/Novell NE2100/NE32-VL) ethernet" },
+ { DEVICE_TYPE_NETWORK, "ze", "IBM/National Semiconductor PCMCIA ethernet card" },
+ { DEVICE_TYPE_NETWORK, "zp", "3Com Etherlink III PCMCIA ethernet card" },
+ { NULL },
+};
+
+Device *
+new_device(char *name)
+{
+ Device *dev;
+
+ dev = safe_malloc(sizeof(Device));
+ bzero(dev, sizeof(Device));
+ if (name)
+ strcpy(dev->name, name);
+ return dev;
+}
+
+/* Stubs for unimplemented strategy routines */
+Boolean
+dummyInit(Device *dev)
+{
+ return TRUE;
+}
+
+int
+dummyGet(Device *dev, char *dist, Attribs *dist_attrs)
+{
+ return -1;
+}
+
+Boolean
+dummyClose(Device *dev, int fd)
+{
+ if (!close(fd))
+ return TRUE;
+ return FALSE;
+}
+
+void
+dummyShutdown(Device *dev)
+{
+ return;
+}
+
+static int
+deviceTry(char *name, char *try)
+{
+ int fd;
+
+ snprintf(try, FILENAME_MAX, "/dev/%s", name);
+ fd = open(try, O_RDWR);
+ if (fd > 0)
+ return fd;
+ snprintf(try, FILENAME_MAX, "/mnt/dev/%s", name);
+ fd = open(try, O_RDWR);
+ return fd;
+}
+
+/* Register a new device in the devices array */
+Device *
+deviceRegister(char *name, char *desc, char *devname, DeviceType type, Boolean enabled,
+ Boolean (*init)(Device *), int (*get)(Device *, char *, Attribs *),
+ Boolean (*close)(Device *, int), void (*shutdown)(Device *), void *private)
+{
+ Device *newdev;
+
+ if (numDevs == DEV_MAX)
+ msgFatal("Too many devices found!");
+ newdev = new_device(name);
+ newdev->description = desc;
+ newdev->devname = devname;
+ newdev->type = type;
+ newdev->enabled = enabled;
+ newdev->init = init ? init : dummyInit;
+ newdev->get = get ? get : dummyGet;
+ newdev->close = close ? close : dummyClose;
+ newdev->shutdown = shutdown ? shutdown : dummyShutdown;
+ newdev->private = private;
+ Devices[numDevs] = newdev;
+ Devices[++numDevs] = NULL;
+ return newdev;
+}
+
+/* Get all device information for devices we have attached */
+void
+deviceGetAll(void)
+{
+ int i, fd, s;
+ struct ifconf ifc;
+ struct ifreq *ifptr, *end;
+ int ifflags;
+ char buffer[INTERFACE_MAX * sizeof(struct ifreq)];
+ char **names;
+
+ /* Try and get the disks first */
+ if ((names = Disk_Names()) != NULL) {
+ int i;
+
+ for (i = 0; names[i]; i++) {
+ Chunk *c1;
+ Disk *d;
+
+ d = Open_Disk(names[i]);
+ if (!d)
+ msgFatal("Unable to open disk %s", names[i]);
+
+ (void)deviceRegister(names[i], names[i], d->name, DEVICE_TYPE_DISK, FALSE, NULL, NULL, NULL, NULL, d);
+ msgDebug("Found a device of type disk named: %s\n", names[i]);
+
+ /* Look for existing DOS partitions to register */
+ for (c1 = d->chunks->part; c1; c1 = c1->next) {
+ if (c1->type == fat) {
+ Device *dev;
+ char devname[80];
+
+ /* Got one! */
+ sprintf(devname, "/dev/%s", c1->name);
+ dev = deviceRegister(c1->name, c1->name, strdup(devname), DEVICE_TYPE_DOS, TRUE,
+ mediaInitDOS, mediaGetDOS, NULL, mediaShutdownDOS, NULL);
+ dev->private = c1;
+ msgDebug("Found a DOS partition %s on drive %s\n", c1->name, d->name);
+ }
+ }
+ }
+ free(names);
+ }
+
+ /*
+ * Try to get all the types of devices it makes sense to get at the
+ * second stage of the installation.
+ */
+ for (i = 0; device_names[i].name; i++) {
+ char try[FILENAME_MAX];
+
+ switch(device_names[i].type) {
+ case DEVICE_TYPE_CDROM:
+ fd = deviceTry(device_names[i].name, try);
+ if (fd >= 0) {
+ close(fd);
+ (void)deviceRegister(device_names[i].name, device_names[i].description, strdup(try),
+ DEVICE_TYPE_CDROM, TRUE, mediaInitCDROM, mediaGetCDROM, NULL,
+ mediaShutdownCDROM, NULL);
+ msgDebug("Found a device of type CDROM named: %s\n", device_names[i].name);
+ }
+ break;
+
+ case DEVICE_TYPE_TAPE:
+ fd = deviceTry(device_names[i].name, try);
+ if (fd >= 0) {
+ close(fd);
+ deviceRegister(device_names[i].name, device_names[i].description, strdup(try),
+ DEVICE_TYPE_TAPE, TRUE, mediaInitTape, mediaGetTape, NULL, mediaShutdownTape, NULL);
+ msgDebug("Found a device of type TAPE named: %s\n", device_names[i].name);
+ }
+ break;
+
+ case DEVICE_TYPE_FLOPPY:
+ fd = deviceTry(device_names[i].name, try);
+ if (fd >= 0) {
+ close(fd);
+ deviceRegister(device_names[i].name, device_names[i].description, strdup(try),
+ DEVICE_TYPE_FLOPPY, TRUE, mediaInitFloppy, mediaGetFloppy, NULL,
+ mediaShutdownFloppy, NULL);
+ msgDebug("Found a device of type floppy named: %s\n", device_names[i].name);
+ }
+ break;
+
+ case DEVICE_TYPE_NETWORK:
+ fd = deviceTry(device_names[i].name, try);
+ if (fd >= 0) {
+ close(fd);
+ /* The only network devices that have fds associated are serial ones */
+ deviceRegister(device_names[i].name, device_names[i].description, strdup(try), DEVICE_TYPE_NETWORK,
+ TRUE, mediaInitNetwork, NULL, NULL, mediaShutdownNetwork, NULL);
+ msgDebug("Found a device of type network named: %s\n", device_names[i].name);
+ }
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ /* Now go for the (other) network interfaces dynamically. Stolen shamelessly from ifconfig! */
+ ifc.ifc_len = sizeof(buffer);
+ ifc.ifc_buf = buffer;
+
+ s = socket(AF_INET, SOCK_DGRAM, 0);
+ if (s < 0) {
+ msgConfirm("ifconfig: socket");
+ return;
+ }
+ if (ioctl(s, SIOCGIFCONF, (char *) &ifc) < 0) {
+ msgConfirm("ifconfig (SIOCGIFCONF)");
+ return;
+ }
+ ifflags = ifc.ifc_req->ifr_flags;
+ end = (struct ifreq *) (ifc.ifc_buf + ifc.ifc_len);
+ for (ifptr = ifc.ifc_req; ifptr < end; ifptr++) {
+ /* If it's not a link entry, forget it */
+ if (ifptr->ifr_ifru.ifru_addr.sa_family != AF_LINK)
+ continue;
+ /* Eliminate network devices that don't make sense */
+ if (!strncmp(ifptr->ifr_name, "tun", 3)
+ || !strncmp(ifptr->ifr_name, "lo0", 3))
+ continue;
+ deviceRegister(ifptr->ifr_name, ifptr->ifr_name, ifptr->ifr_name, DEVICE_TYPE_NETWORK, TRUE,
+ mediaInitNetwork, NULL, NULL, mediaShutdownNetwork, NULL);
+ msgDebug("Found a device of type network named: %s\n", ifptr->ifr_name);
+ close(s);
+ if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
+ msgConfirm("ifconfig: socket");
+ continue;
+ }
+ if (ifptr->ifr_addr.sa_len) /* I'm not sure why this is here - it's inherited */
+ ifptr = (struct ifreq *)((caddr_t)ifptr + ifptr->ifr_addr.sa_len - sizeof(struct sockaddr));
+ }
+}
+
+/*
+ * Find all devices that match the criteria, allowing "wildcarding" as well
+ * by allowing NULL or ANY values to match all. The array returned is static
+ * and may be used until the next invocation of deviceFind().
+ */
+Device **
+deviceFind(char *name, DeviceType class)
+{
+ static Device *found[DEV_MAX];
+ int i, j;
+
+ for (i = 0, j = 0; i < numDevs; i++) {
+ if ((!name || !strcmp(Devices[i]->name, name))
+ && (class == DEVICE_TYPE_ANY || class == Devices[i]->type))
+ found[j++] = Devices[i];
+ }
+ found[j] = NULL;
+ return j ? found : NULL;
+}
+
+int
+deviceCount(Device **devs)
+{
+ int i;
+
+ if (!devs)
+ return 0;
+ for (i = 0; devs[i]; i++);
+ return i;
+}
+
+/*
+ * Create a menu listing all the devices of a certain type in the system.
+ * The passed-in menu is expected to be a "prototype" from which the new
+ * menu is cloned.
+ */
+DMenu *
+deviceCreateMenu(DMenu *menu, DeviceType type, int (*hook)())
+{
+ Device **devs;
+ int numdevs;
+ DMenu *tmp = NULL;
+ int i, j;
+
+ devs = deviceFind(NULL, type);
+ if (!devs)
+ return NULL;
+
+ for (numdevs = 0; devs[numdevs]; numdevs++);
+ tmp = (DMenu *)safe_malloc(sizeof(DMenu) + (sizeof(DMenuItem) * (numdevs + 1)));
+ bcopy(menu, tmp, sizeof(DMenu));
+ for (i = 0; devs[i]; i++) {
+ tmp->items[i].title = devs[i]->name;
+ for (j = 0; device_names[j].name; j++) {
+ if (!strncmp(devs[i]->name, device_names[j].name, strlen(device_names[j].name))) {
+ tmp->items[i].prompt = device_names[j].description;
+ break;
+ }
+ }
+ if (!device_names[j].name)
+ tmp->items[i].prompt = "<unknown device type>";
+ tmp->items[i].type = DMENU_CALL;
+ tmp->items[i].ptr = hook;
+ tmp->items[i].disabled = FALSE;
+ tmp->items[i].check = NULL;
+ }
+ tmp->items[i].type = DMENU_NOP;
+ tmp->items[i].title = NULL;
+ return tmp;
+}
diff --git a/release/sysinstall/disks.c b/release/sysinstall/disks.c
new file mode 100644
index 0000000..c5ec295
--- /dev/null
+++ b/release/sysinstall/disks.c
@@ -0,0 +1,423 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last program in the `sysinstall' line - the next
+ * generation being essentially a complete rewrite.
+ *
+ * $Id: disks.c,v 1.31.2.2 1995/07/21 11:45:38 rgrimes Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+#include <ctype.h>
+#include <sys/disklabel.h>
+
+/* Where we start displaying chunk information on the screen */
+#define CHUNK_START_ROW 5
+
+/* Where we keep track of MBR chunks */
+static struct chunk *chunk_info[10];
+static int current_chunk;
+
+static void
+record_chunks(Disk *d)
+{
+ struct chunk *c1;
+ int i = 0;
+ int last_free = 0;
+ if (!d->chunks)
+ msgFatal("No chunk list found for %s!", d->name);
+ c1 = d->chunks->part;
+ current_chunk = 0;
+ while (c1) {
+ if (c1->type == unused && c1->size > last_free) {
+ last_free = c1->size;
+ current_chunk = i;
+ }
+ chunk_info[i++] = c1;
+ c1 = c1->next;
+ }
+ chunk_info[i] = NULL;
+}
+
+static void
+print_chunks(Disk *d)
+{
+ int row;
+ int i;
+
+ if ((!d->bios_cyl || d->bios_cyl > 65536) || (!d->bios_hd || d->bios_hd > 256) || (!d->bios_sect || d->bios_sect >= 64))
+ msgConfirm("WARNING: The detected geometry is incorrect! Please adjust it to\nthe correct values manually with the (G)eometry command. If you are\nunsure about the correct geometry (which may be \"translated\"), please\nconsult the Hardware Guide in the Documentation submenu.");
+
+ attrset(A_NORMAL);
+ mvaddstr(0, 0, "Disk name:\t");
+ clrtobot();
+ attrset(A_REVERSE); addstr(d->name); attrset(A_NORMAL);
+ attrset(A_REVERSE); mvaddstr(0, 55, "FDISK Partition Editor"); attrset(A_NORMAL);
+ mvprintw(1, 0,
+ "BIOS Geometry:\t%lu cyls/%lu heads/%lu sectors",
+ d->bios_cyl, d->bios_hd, d->bios_sect);
+ mvprintw(3, 1, "%10s %10s %10s %8s %8s %8s %8s %8s",
+ "Offset", "Size", "End", "Name", "PType", "Desc",
+ "Subtype", "Flags");
+ for (i = 0, row = CHUNK_START_ROW; chunk_info[i]; i++, row++) {
+ if (i == current_chunk)
+ attrset(A_REVERSE);
+ mvprintw(row, 2, "%10ld %10lu %10lu %8s %8d %8s %8d\t%-6s",
+ chunk_info[i]->offset, chunk_info[i]->size,
+ chunk_info[i]->end, chunk_info[i]->name,
+ chunk_info[i]->type, chunk_n[chunk_info[i]->type],
+ chunk_info[i]->subtype, ShowChunkFlags(chunk_info[i]));
+ if (i == current_chunk)
+ attrset(A_NORMAL);
+ }
+}
+
+static void
+print_command_summary()
+{
+ mvprintw(14, 0, "The following commands are supported (in upper or lower case):");
+ mvprintw(16, 0, "A = Use Entire Disk B = Bad Block Scan C = Create Partition");
+ mvprintw(17, 0, "D = Delete Partition G = Set BIOS Geometry S = Set Bootable");
+ mvprintw(18, 0, "U = Undo All Changes Q = Finish W = Write Changes");
+ mvprintw(20, 0, "The currently selected partition is displayed in ");
+ attrset(A_REVERSE); addstr("reverse"); attrset(A_NORMAL); addstr(" video.");
+ mvprintw(21, 0, "Use F1 or ? to get more help, arrow keys to move.");
+ move(0, 0);
+}
+
+static Disk *
+diskPartition(Disk *d)
+{
+ char *p;
+ int key = 0;
+ Boolean chunking;
+ char *msg = NULL;
+ char name[40];
+
+ chunking = TRUE;
+ strncpy(name, d->name, 40);
+ keypad(stdscr, TRUE);
+
+ clear();
+ record_chunks(d);
+ while (chunking) {
+ print_chunks(d);
+ print_command_summary();
+ if (msg) {
+ standout(); mvprintw(23, 0, msg); standend();
+ beep();
+ msg = NULL;
+ }
+
+ key = toupper(getch());
+ switch (key) {
+
+ case '\014': /* ^L */
+ clear();
+ continue;
+
+ case KEY_UP:
+ case '-':
+ if (current_chunk != 0)
+ --current_chunk;
+ break;
+
+ case KEY_DOWN:
+ case '+':
+ case '\r':
+ case '\n':
+ if (chunk_info[current_chunk + 1])
+ ++current_chunk;
+ break;
+
+ case KEY_HOME:
+ current_chunk = 0;
+ break;
+
+ case KEY_END:
+ while (chunk_info[current_chunk + 1])
+ ++current_chunk;
+ break;
+
+ case KEY_F(1):
+ case '?':
+ systemDisplayFile("slice.hlp");
+ break;
+
+ case 'A':
+ All_FreeBSD(d);
+ record_chunks(d);
+ break;
+
+ case 'B':
+ if (chunk_info[current_chunk]->type != freebsd)
+ msg = "Can only scan for bad blocks in FreeBSD partition.";
+ else if (strncmp(name, "sd", 2) ||
+ !msgYesNo("This typically makes sense only for ESDI, IDE or MFM drives.\nAre you sure you want to do this on a SCSI disk?"))
+ if (chunk_info[current_chunk]->flags & CHUNK_BAD144)
+ chunk_info[current_chunk]->flags &= ~CHUNK_BAD144;
+ else
+ chunk_info[current_chunk]->flags |= CHUNK_BAD144;
+ break;
+
+ case 'C':
+ if (chunk_info[current_chunk]->type != unused)
+ msg = "Partition in use, delete it first or move to an unused one.";
+ else {
+ char *val, tmp[20], *cp;
+ int size;
+
+ snprintf(tmp, 20, "%d", chunk_info[current_chunk]->size);
+ val = msgGetInput(tmp, "Please specify the size for new FreeBSD partition in blocks, or append\na trailing `M' for megabytes (e.g. 20M).");
+ if (val && (size = strtol(val, &cp, 0)) > 0) {
+ if (*cp && toupper(*cp) == 'M')
+ size *= 2048;
+ Create_Chunk(d, chunk_info[current_chunk]->offset, size, freebsd, 3,
+ (chunk_info[current_chunk]->flags & CHUNK_ALIGN));
+ record_chunks(d);
+ }
+ }
+ break;
+
+ case 'D':
+ if (chunk_info[current_chunk]->type == unused)
+ msg = "Partition is already unused!";
+ else {
+ Delete_Chunk(d, chunk_info[current_chunk]);
+ record_chunks(d);
+ }
+ break;
+
+ case 'G': {
+ char *val, geometry[80];
+
+ snprintf(geometry, 80, "%lu/%lu/%lu", d->bios_cyl, d->bios_hd, d->bios_sect);
+ val = msgGetInput(geometry,
+"Please specify the new geometry in cyl/hd/sect format.\nDon't forget to use the two slash (/) separator characters!\nIt's not possible to parse the field without them.");
+ if (val) {
+ d->bios_cyl = strtol(val, &val, 0);
+ d->bios_hd = strtol(val + 1, &val, 0);
+ d->bios_sect = strtol(val + 1, 0, 0);
+ }
+ }
+ break;
+
+ case 'S':
+ /* Set Bootable */
+ chunk_info[current_chunk]->flags |= CHUNK_ACTIVE;
+ break;
+
+ case 'U':
+ Free_Disk(d);
+ d = Open_Disk(name);
+ if (!d)
+ msgFatal("Can't reopen disk %s!", name);
+ record_chunks(d);
+ break;
+
+ case 'W':
+ if (!msgYesNo("Are you sure you want to write this now? You do also\nhave the option of not modifying the disk until *all*\nconfiguration information has been entered, at which\npoint you can do it all at once. If you're unsure, then\nchoose No at this dialog."))
+ diskPartitionWrite(NULL);
+ break;
+
+ case '|':
+ if (!msgYesNo("Are you sure you want to go into Wizard mode?\nNo seat belts whatsoever are provided!")) {
+ dialog_clear();
+ end_dialog();
+ DialogActive = FALSE;
+ slice_wizard(d);
+ dialog_clear();
+ DialogActive = TRUE;
+ record_chunks(d);
+ }
+ else
+ msg = "Wise choice!";
+ break;
+
+ case 'Q':
+ chunking = FALSE;
+ break;
+
+ default:
+ beep();
+ msg = "Type F1 or ? for help";
+ break;
+ }
+ }
+ p = CheckRules(d);
+ if (p) {
+ msgConfirm(p);
+ free(p);
+ }
+ dialog_clear();
+ variable_set2(DISK_PARTITIONED, "yes");
+ return d;
+}
+
+static int
+partitionHook(char *str)
+{
+ Device **devs = NULL;
+
+ /* Clip garbage off the ends */
+ string_prune(str);
+ str = string_skipwhite(str);
+ /* Try and open all the disks */
+ while (str) {
+ char *cp;
+
+ cp = index(str, '\n');
+ if (cp)
+ *cp++ = 0;
+ if (!*str) {
+ beep();
+ return 0;
+ }
+ devs = deviceFind(str, DEVICE_TYPE_DISK);
+ if (!devs) {
+ msgConfirm("Unable to find disk %s!", str);
+ return 0;
+ }
+ else if (devs[1])
+ msgConfirm("Bizarre multiple match for %s!", str);
+ devs[0]->private = diskPartition((Disk *)devs[0]->private);
+ devs[0]->enabled = TRUE;
+ str = cp;
+ }
+ return devs ? 1 : 0;
+}
+
+int
+diskPartitionEditor(char *str)
+{
+ DMenu *menu;
+ Device **devs;
+ int cnt;
+
+ devs = deviceFind(NULL, DEVICE_TYPE_DISK);
+ cnt = deviceCount(devs);
+ if (!cnt) {
+ msgConfirm("No disks found! Please verify that your disk controller is being\nproperly probed at boot time. See the Hardware Guide on the Documentation menu\nfor clues on diagnosing this type of problem.");
+ return 0;
+ }
+ else if (cnt == 1) {
+ devs[0]->private = diskPartition((Disk *)devs[0]->private);
+ devs[0]->enabled = TRUE;
+ }
+ else {
+ menu = deviceCreateMenu(&MenuDiskDevices, DEVICE_TYPE_DISK, partitionHook);
+ if (!menu)
+ msgConfirm("No devices suitable for installation found!\n\nPlease verify that your disk controller (and attached drives) were detected properly. This can be done by selecting the ``Bootmsg'' option on the main menu and reviewing the boot messages carefully.");
+ else {
+ dmenuOpenSimple(menu);
+ free(menu);
+ }
+ }
+ return 0;
+}
+
+static u_char *
+getBootMgr(void)
+{
+ extern u_char mbr[], bteasy17[];
+
+ /* Figure out what kind of MBR the user wants */
+ if (dmenuOpenSimple(&MenuMBRType)) {
+ switch (BootMgr) {
+ case 0:
+ return bteasy17;
+
+ case 1:
+ return mbr;
+
+ case 2:
+ default:
+ break;
+ }
+ }
+ return NULL;
+}
+
+int
+diskPartitionWrite(char *str)
+{
+ extern u_char boot1[], boot2[];
+ u_char *mbrContents;
+ Device **devs;
+ int i;
+
+ mbrContents = getBootMgr();
+ devs = deviceFind(NULL, DEVICE_TYPE_DISK);
+ if (!devs) {
+ msgConfirm("Unable to find any disks to write to??");
+ return 0;
+ }
+
+ for (i = 0; devs[i]; i++) {
+ Chunk *c1;
+ Disk *d = (Disk *)devs[i]->private;
+
+ if (!devs[i]->enabled)
+ continue;
+
+ /* Do it once so that it only goes on the first drive */
+ if (mbrContents) {
+ Set_Boot_Mgr(d, mbrContents);
+ mbrContents = NULL;
+ }
+
+ Set_Boot_Blocks(d, boot1, boot2);
+ msgNotify("Writing partition information to drive %s", d->name);
+ Write_Disk(d);
+
+ /* Now scan for bad blocks, if necessary */
+ for (c1 = d->chunks->part; c1; c1 = c1->next) {
+ if (c1->flags & CHUNK_BAD144) {
+ int ret;
+
+ msgNotify("Running bad block scan on partition %s", c1->name);
+ ret = vsystem("bad144 -v /dev/r%s 1234", c1->name);
+ if (ret)
+ msgConfirm("Bad144 init on %s returned status of %d!", c1->name, ret);
+ ret = vsystem("bad144 -v -s /dev/r%s", c1->name);
+ if (ret)
+ msgConfirm("Bad144 scan on %s returned status of %d!", c1->name, ret);
+ }
+ }
+ }
+ return 0;
+}
diff --git a/release/sysinstall/dist.c b/release/sysinstall/dist.c
new file mode 100644
index 0000000..539fc61
--- /dev/null
+++ b/release/sysinstall/dist.c
@@ -0,0 +1,438 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last program in the `sysinstall' line - the next
+ * generation being essentially a complete rewrite.
+ *
+ * $Id: dist.c,v 1.36.2.1 1995/07/21 10:53:48 rgrimes Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+
+unsigned int Dists;
+unsigned int DESDists;
+unsigned int SrcDists;
+unsigned int XF86Dists;
+unsigned int XF86ServerDists;
+unsigned int XF86FontDists;
+
+typedef struct _dist {
+ char *my_name;
+ char *my_dir;
+ unsigned int *my_mask;
+ unsigned int my_bit;
+ struct _dist *my_dist;
+} Distribution;
+
+extern Distribution DistTable[];
+extern Distribution DESDistTable[];
+extern Distribution SrcDistTable[];
+extern Distribution XF86DistTable[];
+extern Distribution XF86FontDistTable[];
+extern Distribution XF86ServerDistTable[];
+
+/* The top-level distribution categories */
+static Distribution DistTable[] = {
+{ "bin", "/", &Dists, DIST_BIN, NULL },
+{ "games", "/", &Dists, DIST_GAMES, NULL },
+{ "help", NULL, &Dists, DIST_HELP, NULL },
+{ "manpages", "/", &Dists, DIST_MANPAGES, NULL },
+{ "proflibs", "/", &Dists, DIST_PROFLIBS, NULL },
+{ "dict", "/", &Dists, DIST_DICT, NULL },
+{ "info", "/", &Dists, DIST_INFO, NULL },
+{ "src", "/", &Dists, DIST_SRC, SrcDistTable },
+{ "des", "/", &Dists, DIST_DES, DESDistTable },
+{ "compat1x", "/", &Dists, DIST_COMPAT1X, NULL },
+{ "compat20", "/", &Dists, DIST_COMPAT20, NULL },
+{ "commerce", "/usr/local", &Dists, DIST_COMMERCIAL, NULL },
+{ "xperimnt", "/usr/local", &Dists, DIST_EXPERIMENTAL, NULL },
+{ "XF86311", "/usr", &Dists, DIST_XF86, XF86DistTable },
+{ NULL },
+};
+
+/* The DES distribution (not for export!) */
+static Distribution DESDistTable[] = {
+{ "des", "/", &DESDists, DIST_DES_DES, NULL },
+{ "krb", "/", &DESDists, DIST_DES_KERBEROS, NULL },
+{ "ssecure", "/usr/src", &DESDists, DIST_DES_SSECURE, NULL },
+{ "sebones", "/usr/src", &DESDists, DIST_DES_SEBONES, NULL },
+{ NULL },
+};
+
+/* The /usr/src distribution */
+static Distribution SrcDistTable[] = {
+{ "sbase", "/usr/src", &SrcDists, DIST_SRC_BASE, NULL },
+{ "sgnu", "/usr/src", &SrcDists, DIST_SRC_GNU, NULL },
+{ "setc", "/usr/src", &SrcDists, DIST_SRC_ETC, NULL },
+{ "sgames", "/usr/src", &SrcDists, DIST_SRC_GAMES, NULL },
+{ "sinclude", "/usr/src", &SrcDists, DIST_SRC_INCLUDE, NULL },
+{ "slib", "/usr/src", &SrcDists, DIST_SRC_LIB, NULL },
+{ "slibexec", "/usr/src", &SrcDists, DIST_SRC_LIBEXEC, NULL },
+{ "slkm", "/usr/src", &SrcDists, DIST_SRC_LKM, NULL },
+{ "srelease", "/usr/src", &SrcDists, DIST_SRC_RELEASE, NULL },
+{ "sbin", "/usr/src", &SrcDists, DIST_SRC_BIN, NULL },
+{ "ssbin", "/usr/src", &SrcDists, DIST_SRC_SBIN, NULL },
+{ "sshare", "/usr/src", &SrcDists, DIST_SRC_SHARE, NULL },
+{ "ssys", "/usr/src", &SrcDists, DIST_SRC_SYS, NULL },
+{ "subin", "/usr/src", &SrcDists, DIST_SRC_UBIN, NULL },
+{ "susbin", "/usr/src", &SrcDists, DIST_SRC_USBIN, NULL },
+{ NULL },
+};
+
+/* The XFree86 distribution */
+static Distribution XF86DistTable[] = {
+{ "X311bin", "/usr", &XF86Dists, DIST_XF86_BIN, NULL },
+{ "X311lib", "/usr", &XF86Dists, DIST_XF86_LIB, NULL },
+{ "X311doc", "/usr", &XF86Dists, DIST_XF86_DOC, NULL },
+{ "XF86311", "/usr", &XF86Dists, DIST_XF86_FONTS, XF86FontDistTable },
+{ "X311man", "/usr", &XF86Dists, DIST_XF86_MAN, NULL },
+{ "X311prog", "/usr", &XF86Dists, DIST_XF86_PROG, NULL },
+{ "X311link", "/usr", &XF86Dists, DIST_XF86_LINK, NULL },
+{ "X311pex", "/usr", &XF86Dists, DIST_XF86_PEX, NULL },
+{ "X311lbx", "/usr", &XF86Dists, DIST_XF86_LBX, NULL },
+{ "X311xicf", "/usr", &XF86Dists, DIST_XF86_XINIT, NULL },
+{ "X311xdcf", "/usr", &XF86Dists, DIST_XF86_XDMCF, NULL },
+{ "XF86311", "/usr", &XF86Dists, DIST_XF86_SERVER, XF86ServerDistTable },
+{ "XF86-xc", "/usr/X11R6/src", &XF86Dists, DIST_XF86_SRC, NULL },
+{ "XF86-co", "/usr/X11R6/src", &XF86Dists, DIST_XF86_SRC, NULL },
+{ NULL },
+};
+
+/* The XFree86 server distribution */
+static Distribution XF86ServerDistTable[] = {
+{ "X3118514", "/usr", &XF86ServerDists, DIST_XF86_SERVER_8514, NULL },
+{ "X311AGX", "/usr", &XF86ServerDists, DIST_XF86_SERVER_AGX, NULL },
+{ "X311Ma8", "/usr", &XF86ServerDists, DIST_XF86_SERVER_MACH8, NULL },
+{ "X311Ma32", "/usr", &XF86ServerDists, DIST_XF86_SERVER_MACH32,NULL },
+{ "X311Ma64", "/usr", &XF86ServerDists, DIST_XF86_SERVER_MACH64,NULL },
+{ "X311Mono", "/usr", &XF86ServerDists, DIST_XF86_SERVER_MONO, NULL },
+{ "X311P9K", "/usr", &XF86ServerDists, DIST_XF86_SERVER_P9000, NULL },
+{ "X311S3", "/usr", &XF86ServerDists, DIST_XF86_SERVER_S3, NULL },
+{ "X311SVGA", "/usr", &XF86ServerDists, DIST_XF86_SERVER_SVGA, NULL },
+{ "X311VG16", "/usr", &XF86ServerDists, DIST_XF86_SERVER_VGA16, NULL },
+{ "X311W32", "/usr", &XF86ServerDists, DIST_XF86_SERVER_W32, NULL },
+{ "X311nest", "/usr", &XF86ServerDists, DIST_XF86_SERVER_NEST, NULL },
+{ NULL },
+};
+
+/* The XFree86 font distribution */
+static Distribution XF86FontDistTable[] = {
+{ "X311fnts", "/usr", &XF86FontDists, DIST_XF86_FONTS_MISC, NULL },
+{ "X311f100", "/usr", &XF86FontDists, DIST_XF86_FONTS_100, NULL },
+{ "X311fscl", "/usr", &XF86FontDists, DIST_XF86_FONTS_SCALE, NULL },
+{ "X311fnon", "/usr", &XF86FontDists, DIST_XF86_FONTS_NON, NULL },
+{ "X311fsrv", "/usr", &XF86FontDists, DIST_XF86_FONTS_SERVER, NULL },
+{ NULL },
+};
+
+int
+distReset(char *str)
+{
+ Dists = 0;
+ SrcDists = 0;
+ XF86Dists = 0;
+ XF86ServerDists = 0;
+ XF86FontDists = 0;
+ return 0;
+}
+
+int
+distSetDeveloper(char *str)
+{
+ distReset(NULL);
+ Dists = _DIST_DEVELOPER;
+ SrcDists = DIST_SRC_ALL;
+ return 0;
+}
+
+int
+distSetXDeveloper(char *str)
+{
+ distReset(NULL);
+ Dists = _DIST_DEVELOPER | DIST_XF86;
+ SrcDists = DIST_SRC_ALL;
+ XF86Dists = DIST_XF86_BIN | DIST_XF86_LIB | DIST_XF86_PROG | DIST_XF86_MAN | DIST_XF86_SERVER | DIST_XF86_FONTS;
+ XF86ServerDists = DIST_XF86_SERVER_SVGA;
+ XF86FontDists = DIST_XF86_FONTS_MISC;
+ distSetXF86(NULL);
+ return 0;
+}
+
+int
+distSetKernDeveloper(char *str)
+{
+ distReset(NULL);
+ Dists = _DIST_DEVELOPER;
+ SrcDists = DIST_SRC_SYS;
+ return 0;
+}
+
+int
+distSetUser(char *str)
+{
+ distReset(NULL);
+ Dists = _DIST_USER;
+ return 0;
+}
+
+int
+distSetXUser(char *str)
+{
+ distReset(NULL);
+ Dists = _DIST_USER;
+ XF86Dists = DIST_XF86_BIN | DIST_XF86_LIB | DIST_XF86_MAN | DIST_XF86_SERVER | DIST_XF86_FONTS;
+ XF86ServerDists = DIST_XF86_SERVER_SVGA;
+ XF86FontDists = DIST_XF86_FONTS_MISC;
+ distSetXF86(NULL);
+ return 0;
+}
+
+int
+distSetMinimum(char *str)
+{
+ distReset(NULL);
+ Dists = DIST_BIN;
+ return 0;
+}
+
+int
+distSetEverything(char *str)
+{
+ Dists = DIST_ALL;
+ SrcDists = DIST_SRC_ALL;
+ XF86Dists = DIST_XF86_ALL;
+ XF86ServerDists = DIST_XF86_SERVER_ALL;
+ XF86FontDists = DIST_XF86_FONTS_ALL;
+ return 0;
+}
+
+int
+distSetDES(char *str)
+{
+ dmenuOpenSimple(&MenuDESDistributions);
+ if (DESDists)
+ Dists |= DIST_DES;
+ return 0;
+}
+
+int
+distSetSrc(char *str)
+{
+ dmenuOpenSimple(&MenuSrcDistributions);
+ if (SrcDists)
+ Dists |= DIST_SRC;
+ return 0;
+}
+
+int
+distSetXF86(char *str)
+{
+ dmenuOpenSimple(&MenuXF86Select);
+ if (XF86ServerDists)
+ XF86Dists |= DIST_XF86_SERVER;
+ if (XF86FontDists)
+ XF86Dists |= DIST_XF86_FONTS;
+ if (XF86Dists)
+ Dists |= DIST_XF86;
+ if (isDebug())
+ msgDebug("SetXF86 Masks: Server: %0x, Fonts: %0x, XDists: %0x, Dists: %0x\n",
+ XF86ServerDists, XF86FontDists, XF86Dists, Dists);
+ return 0;
+}
+
+static Boolean
+distExtract(char *parent, Distribution *me)
+{
+ int i, status;
+ int cpid, zpid, fd, fd2, chunk, numchunks;
+ char *path, *dist, buf[10240];
+ const char *tmp;
+ Attribs *dist_attr;
+
+ status = TRUE;
+ if (isDebug())
+ msgDebug("distExtract: parent: %s, me: %s\n", parent ? parent : "(none)", me->my_name);
+
+ /* Loop through to see if we're in our parent's plans */
+ for (i = 0; me[i].my_name; i++) {
+ dist = me[i].my_name;
+ path = parent ? parent : dist;
+
+ /* If our bit isn't set, go to the next */
+ if (!(me[i].my_bit & *(me[i].my_mask)))
+ continue;
+
+ /* This is shorthand for "dist currently disabled" */
+ if (!me[i].my_dir) {
+ *(me[i].my_mask) &= ~(me[i].my_bit);
+ continue;
+ }
+
+ /* Recurse if actually have a sub-distribution */
+ if (me[i].my_dist) {
+ status = distExtract(dist, me[i].my_dist);
+ goto done;
+ }
+
+ /* First try to get the distribution as a single file */
+ snprintf(buf, 512, "%s/%s.tgz", path, dist);
+ if (isDebug())
+ msgDebug("Trying to get large piece: %s\n", buf);
+ /* Set it as an "exploratory get" so that we don't loop unnecessarily on it */
+ mediaDevice->flags |= OPT_EXPLORATORY_GET;
+ fd = (*mediaDevice->get)(mediaDevice, buf, NULL);
+ mediaDevice->flags &= ~OPT_EXPLORATORY_GET;
+ if (fd >= 0) {
+ msgNotify("Extracting %s into %s directory...", me[i].my_name, me[i].my_dir);
+ status = mediaExtractDist(me[i].my_dir, fd);
+ (*mediaDevice->close)(mediaDevice, fd);
+ goto done;
+ }
+ else if (fd == -2) /* Hard error, can't continue */
+ return FALSE;
+
+ /* If we couldn't get it as one file then we need to get multiple pieces; get info file telling us how many */
+ snprintf(buf, sizeof buf, "/stand/info/%s/%s.inf", path, dist);
+ if (!access(buf, R_OK)) {
+ if (isDebug())
+ msgDebug("Parsing attributes file for %s\n", dist);
+ dist_attr = safe_malloc(sizeof(Attribs) * MAX_ATTRIBS);
+ if (attr_parse(&dist_attr, buf) == 0) {
+ msgConfirm("Cannot load information file for %s distribution!\nPlease verify that your media is valid and try again.", dist);
+ return FALSE;
+ }
+
+ if (isDebug())
+ msgDebug("Looking for attribute `pieces'\n");
+ tmp = attr_match(dist_attr, "pieces");
+ if (tmp)
+ numchunks = strtol(tmp, 0, 0);
+ else
+ numchunks = 0;
+ }
+ else {
+ if (isDebug())
+ msgDebug("Couldn't open attributes file: %s\n", buf);
+ numchunks = 0;
+ }
+ if (!numchunks)
+ continue;
+
+ if (isDebug())
+ msgDebug("Attempting to extract distribution from %u chunks.\n", numchunks);
+
+ /* We have one or more chunks, go pick them up */
+ mediaExtractDistBegin(me[i].my_dir, &fd2, &zpid, &cpid);
+ dialog_clear();
+ for (chunk = 0; chunk < numchunks; chunk++) {
+ int n, retval;
+ char prompt[80];
+
+ snprintf(buf, 512, "%s/%s.%c%c", path, dist, (chunk / 26) + 'a', (chunk % 26) + 'a');
+ if (isDebug())
+ msgDebug("trying for piece %d of %d: %s\n", chunk, numchunks, buf);
+ fd = (*mediaDevice->get)(mediaDevice, buf, dist_attr);
+ if (fd < 0) {
+ dialog_clear();
+ msgConfirm("failed to retreive piece file %s!\nAborting the transfer", buf);
+ goto punt;
+ }
+ snprintf(prompt, 80, "Extracting %s into %s directory...", me[i].my_name, me[i].my_dir);
+ dialog_gauge("Progress", prompt, 8, 15, 6, 50, (int)((float)(chunk + 1) / numchunks * 100));
+ while ((n = read(fd, buf, sizeof buf)) > 0) {
+ retval = write(fd2, buf, n);
+ if (retval != n) {
+ if (mediaDevice->close)
+ (*mediaDevice->close)(mediaDevice, fd);
+ else
+ close(fd);
+ msgConfirm("Write failure on transfer! (wrote %d bytes of %d bytes)", retval, n);
+ goto punt;
+ }
+ }
+ (*mediaDevice->close)(mediaDevice, fd);
+ }
+ close(fd2);
+ status = mediaExtractDistEnd(zpid, cpid);
+ goto done;
+
+ punt:
+ close(fd2);
+ mediaExtractDistEnd(zpid, cpid);
+ status = FALSE;
+
+ done:
+ if (!status) {
+ if (OptFlags & OPT_NO_CONFIRM)
+ status = TRUE;
+ else {
+ if (me[i].my_dist) {
+ msgConfirm("Unable to transfer all components of the %s distribution.\nIf this is a CDROM install, it may be because export restrictions prohibit\nDES code from being shipped from the U.S. Try to get this code from a\nlocal FTP site instead!");
+ status = TRUE;
+ }
+ else
+ status = msgYesNo("Unable to transfer the %s distribution from %s.\nDo you want to try to retrieve it again?", me[i].my_name, mediaDevice->name);
+ }
+ }
+ /* Extract was successful, remove ourselves from further consideration */
+ if (status)
+ *(me[i].my_mask) &= ~(me[i].my_bit);
+ }
+ return status;
+}
+
+int
+distExtractAll(char *unused)
+{
+ int retries = 0;
+
+ /* First try to initialize the state of things */
+ if (!(*mediaDevice->init)(mediaDevice))
+ return 0;
+
+ /* Try for 3 times around the loop, then give up. */
+ while (Dists && ++retries < 3)
+ distExtract(NULL, DistTable);
+
+ /* Anything left? */
+ if (Dists)
+ msgConfirm("Couldn't extract all of the distributions. This may\nbe because the specified distributions are not available from the\ninstallation media you've chosen (residue: %0x)", Dists);
+
+ /* Close up shop and go home */
+ (*mediaDevice->shutdown)(mediaDevice);
+ return 0;
+}
diff --git a/release/sysinstall/dist.h b/release/sysinstall/dist.h
new file mode 100644
index 0000000..eaab90b
--- /dev/null
+++ b/release/sysinstall/dist.h
@@ -0,0 +1,88 @@
+#ifndef _DIST_H_INCLUDE
+#define _DIST_H_INCLUDE
+
+/* Bitfields for distributions - hope we never have more than 32! :-) */
+#define DIST_BIN 0x0001
+#define DIST_GAMES 0x0002
+#define DIST_MANPAGES 0x0004
+#define DIST_PROFLIBS 0x0008
+#define DIST_DICT 0x0010
+#define DIST_SRC 0x0020
+#define DIST_HELP 0x0040 /* Not yet used; reserved */
+#define DIST_INFO 0x0080
+#define DIST_COMPAT1X 0x0100
+#define DIST_COMPAT20 0x0200
+#define DIST_XF86 0x0400
+#define DIST_COMMERCIAL 0x0800
+#define DIST_DES 0x1000
+#define DIST_EXPERIMENTAL 0x2000
+#define DIST_ALL 0x0FFF
+
+/* Canned distribution sets */
+#define _DIST_DEVELOPER \
+ (DIST_BIN | DIST_MANPAGES | DIST_DICT | DIST_PROFLIBS | DIST_INFO | DIST_SRC)
+
+#define _DIST_USER \
+ (DIST_BIN | DIST_MANPAGES | DIST_DICT | DIST_COMPAT1X | DIST_COMPAT20)
+
+/* Subtypes for DES distribution */
+#define DIST_DES_DES 0x0001
+#define DIST_DES_SEBONES 0x0002
+#define DIST_DES_SSECURE 0x0004
+#define DIST_DES_KERBEROS 0x0008
+
+/* Subtypes for SRC distribution */
+#define DIST_SRC_BASE 0x0001
+#define DIST_SRC_GNU 0x0002
+#define DIST_SRC_ETC 0x0004
+#define DIST_SRC_GAMES 0x0008
+#define DIST_SRC_INCLUDE 0x0010
+#define DIST_SRC_LIB 0x0020
+#define DIST_SRC_LIBEXEC 0x0040
+#define DIST_SRC_LKM 0x0080
+#define DIST_SRC_RELEASE 0x0100
+#define DIST_SRC_SBIN 0x0200
+#define DIST_SRC_SHARE 0x0400
+#define DIST_SRC_SYS 0x0800
+#define DIST_SRC_UBIN 0x1000
+#define DIST_SRC_USBIN 0x2000
+#define DIST_SRC_BIN 0x4000
+#define DIST_SRC_ALL 0xFFFF
+
+/* Subtypes for XFree86 distribution */
+#define DIST_XF86_BIN 0x0001
+#define DIST_XF86_LIB 0x0002
+#define DIST_XF86_DOC 0x0004
+#define DIST_XF86_MAN 0x0008
+#define DIST_XF86_PROG 0x0010
+#define DIST_XF86_LINK 0x0020
+#define DIST_XF86_PEX 0x0040
+#define DIST_XF86_LBX 0x0080
+#define DIST_XF86_XINIT 0x0100
+#define DIST_XF86_XDMCF 0x0200
+#define DIST_XF86_SRC 0x0400
+#define DIST_XF86_SERVER 0x0800
+#define DIST_XF86_SERVER_8514 0x0001
+#define DIST_XF86_SERVER_AGX 0x0002
+#define DIST_XF86_SERVER_MACH8 0x0004
+#define DIST_XF86_SERVER_MACH32 0x0008
+#define DIST_XF86_SERVER_MACH64 0x0010
+#define DIST_XF86_SERVER_MONO 0x0020
+#define DIST_XF86_SERVER_P9000 0x0040
+#define DIST_XF86_SERVER_S3 0x0080
+#define DIST_XF86_SERVER_SVGA 0x0100
+#define DIST_XF86_SERVER_VGA16 0x0200
+#define DIST_XF86_SERVER_W32 0x0400
+#define DIST_XF86_SERVER_NEST 0x0800
+#define DIST_XF86_SERVER_ALL 0x0FFF
+#define DIST_XF86_FONTS 0x1000
+#define DIST_XF86_FONTS_MISC 0x0001
+#define DIST_XF86_FONTS_100 0x0002
+#define DIST_XF86_FONTS_SCALE 0x0004
+#define DIST_XF86_FONTS_NON 0x0008
+#define DIST_XF86_FONTS_SERVER 0x0010
+#define DIST_XF86_FONTS_ALL 0x00FF
+#define DIST_XF86_ALL 0xFFFF
+
+#endif
+/* _DIST_H_INCLUDE */
diff --git a/release/sysinstall/dmenu.c b/release/sysinstall/dmenu.c
new file mode 100644
index 0000000..ff059c7
--- /dev/null
+++ b/release/sysinstall/dmenu.c
@@ -0,0 +1,173 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last attempt in the `sysinstall' line, the next
+ * generation being slated for what's essentially a complete rewrite.
+ *
+ * $Id: dmenu.c,v 1.11.2.11 1995/06/10 19:44:54 jkh Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+#include <sys/types.h>
+
+#define MAX_MENU 8
+
+/* Traverse menu but give user no control over positioning */
+Boolean
+dmenuOpenSimple(DMenu *menu)
+{
+ int choice, scroll, curr, max;
+
+ choice = scroll = curr = max = 0;
+ return dmenuOpen(menu, &choice, &scroll, &curr, &max);
+}
+
+/* Work functions for the state hook */
+char *
+dmenuFlagCheck(DMenuItem *item)
+{
+ if (*((unsigned int *)item->ptr) & item->parm)
+ return "ON";
+ return "OFF";
+}
+
+char *
+dmenuVarCheck(DMenuItem *item)
+{
+ char *cp, *cp2, tmp[256];
+
+ strncpy(tmp, (char *)item->ptr, 256);
+ if ((cp = index(tmp, '=')) != NULL) {
+ *(cp++) = '\0';
+ cp2 = getenv(tmp);
+ if (cp2)
+ return !strcmp(cp, cp2) ? "ON" : "OFF";
+ else
+ return "OFF";
+ }
+ else
+ return getenv(tmp) ? "ON" : "OFF";
+}
+
+char *
+dmenuRadioCheck(DMenuItem *item)
+{
+ if (*((unsigned int *)item->ptr) == item->parm)
+ return "ON";
+ return "OFF";
+}
+
+static char *
+checkHookVal(DMenuItem *item)
+{
+
+ if (!item->check)
+ return "OFF";
+ return (*item->check)(item);
+}
+
+/* Traverse over an internal menu */
+Boolean
+dmenuOpen(DMenu *menu, int *choice, int *scroll, int *curr, int *max)
+{
+ char result[FILENAME_MAX];
+ char **nitems = NULL;
+ DMenuItem *tmp;
+ int rval = 0, n = 0;
+
+ /* First, construct the menu */
+ for (tmp = menu->items; tmp->title; tmp++) {
+ if (!tmp->disabled) {
+ nitems = item_add_pair(nitems, tmp->title, tmp->prompt, curr, max);
+ if (menu->options & (DMENU_RADIO_TYPE | DMENU_MULTIPLE_TYPE))
+ nitems = item_add(nitems, checkHookVal(tmp), curr, max);
+ ++n;
+ }
+ }
+ nitems = item_add(nitems, NULL, curr, max); /* Terminate it */
+
+ while (1) {
+ char buf[FILENAME_MAX];
+
+ /* Any helpful hints, put 'em up! */
+ use_helpline(menu->helpline);
+ use_helpfile(systemHelpFile(menu->helpfile, buf));
+
+ /* Pop up that dialog! */
+ if (menu->options & DMENU_NORMAL_TYPE) {
+ rval = dialog_menu((u_char *)menu->title, (u_char *)menu->prompt, -1, -1,
+ n > MAX_MENU ? MAX_MENU : n, n, (u_char **)nitems, (u_char *)result, choice, scroll);
+ }
+ else if (menu->options & DMENU_RADIO_TYPE) {
+ rval = dialog_radiolist((u_char *)menu->title, (u_char *)menu->prompt, -1, -1,
+ n > MAX_MENU ? MAX_MENU : n, n, (u_char **)nitems, (u_char *)result);
+ }
+ else if (menu->options & DMENU_MULTIPLE_TYPE) {
+ rval = dialog_checklist((u_char *)menu->title, (u_char *)menu->prompt, -1, -1,
+ n > MAX_MENU ? MAX_MENU : n, n, (u_char **)nitems, (u_char *)result);
+ }
+
+ /* This seems to be the only technique that works for getting the display to look right */
+ dialog_clear();
+
+ if (!rval) {
+ if (menu->options & DMENU_MULTIPLE_TYPE) {
+ if (menu->options & DMENU_CALL_FIRST)
+ tmp = &(menu->items[0]);
+ else {
+ if (decode_and_dispatch_multiple(menu, result) ||
+ menu->options & DMENU_SELECTION_RETURNS) {
+ items_free(nitems, curr, max);
+ return TRUE;
+ }
+ }
+ }
+ else {
+ if ((tmp = decode(menu, result)) == NULL)
+ return FALSE;
+ }
+ if (dispatch(tmp, result) || (menu->options & DMENU_SELECTION_RETURNS)) {
+ items_free(nitems, curr, max);
+ return TRUE;
+ }
+ }
+ else {
+ items_free(nitems, curr, max);
+ return FALSE;
+ }
+ }
+}
diff --git a/release/sysinstall/doc.c b/release/sysinstall/doc.c
new file mode 100644
index 0000000..49fe798
--- /dev/null
+++ b/release/sysinstall/doc.c
@@ -0,0 +1,88 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last program in the `sysinstall' line - the next
+ * generation being essentially a complete rewrite.
+ *
+ * $Id: doc.c,v 1.2 1995/10/20 14:24:41 jkh Exp $
+ *
+ * Jordan Hubbard
+ *
+ * My contributions are in the public domain.
+ *
+ * Parts of this file are also blatently stolen from Poul-Henning Kamp's
+ * previous version of sysinstall, and as such fall under his "BEERWARE license"
+ * so buy him a beer if you like it! Buy him a beer for me, too!
+ * Heck, get him completely drunk and send me pictures! :-)
+ */
+
+#include "sysinstall.h"
+
+/*
+ * This is called from the main menu. Try to find a copy of Lynx from somewhere
+ * and fire it up on the first copy of the handbook we can find.
+ */
+int
+docBrowser(char *junk)
+{
+ char *browser = variable_get(VAR_BROWSER_PACKAGE);
+
+ /* Make sure we were started at a reasonable time */
+ if (!strcmp(variable_get(SYSTEM_STATE), "init")) {
+ msgConfirm("Sorry, it's not possible to invoke the browser until the system\n"
+ "is installed completely enough to support a copy of %s.", browser);
+ return RET_FAIL;
+ }
+
+ if (!mediaVerify())
+ return RET_FAIL;
+
+ /* First, make sure we have whatever browser we've chosen is here */
+ if (package_extract(mediaDevice, browser) != RET_SUCCESS) {
+ msgConfirm("Unable to install the %s HTML browser package. You may\n"
+ "wish to verify that your media is configured correctly and\n"
+ "try again.", browser);
+ return RET_FAIL;
+ }
+ if (!file_executable(variable_get(VAR_BROWSER_BINARY))) {
+ if (!msgYesNo("Hmmm. The %s package claims to have installed, but I can't\n"
+ "find its binary in %s! You may wish to try a different\n"
+ "location to load the package from (go to Media menu) and see if that\n"
+ "makes a difference.\n\n"
+ "I suggest that we remove the version that was extracted since it does\n"
+ "not appear to be correct. Would you like me to do that now?"))
+ vsystem("pkg_delete %s %s", !strcmp(variable_get(VAR_CPIO_VERBOSITY), "high") ? "-v" : "", browser);
+ return RET_FAIL;
+ }
+
+ /* Run browser on the appropriate doc */
+ dmenuOpenSimple(&MenuHTMLDoc);
+ return RET_SUCCESS;
+}
+
+/* Try to show one of the documents requested from the HTML doc menu */
+int
+docShowDocument(char *str)
+{
+ char *browser = variable_get(VAR_BROWSER_BINARY);
+
+ if (!file_executable(browser)) {
+ msgConfirm("Can't find the browser in %s! Please ensure that it's\n"
+ "properly set in the Options editor.", browser);
+ return RET_FAIL;
+ }
+ if (!strcmp(str, "Home"))
+ vsystem("%s http://www.freebsd.org", browser);
+ else if (!strcmp(str, "Other")) {
+ }
+ else {
+ char target[512];
+
+ sprintf(target, "/usr/share/doc/%s/%s.html", str, str);
+ if (file_readable(target))
+ vsystem("%s file:%s", browser, target);
+ else
+ vsystem("%s http://www.freebsd.org/%s");
+ }
+ return RET_SUCCESS;
+}
diff --git a/release/sysinstall/dos.c b/release/sysinstall/dos.c
new file mode 100644
index 0000000..d4a19a4
--- /dev/null
+++ b/release/sysinstall/dos.c
@@ -0,0 +1,109 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last attempt in the `sysinstall' line, the next
+ * generation being slated to essentially a complete rewrite.
+ *
+ * $Id: dos.c,v 1.6.2.1 1995/07/21 10:53:52 rgrimes Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ * Copyright (c) 1995
+ * Gary J Palmer. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+#include <sys/stat.h>
+#include <sys/errno.h>
+#include <sys/param.h>
+#include <sys/wait.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <grp.h>
+
+#define MSDOSFS
+#include <sys/mount.h>
+#undef MSDOSFS
+
+static Boolean DOSMounted;
+
+Boolean
+mediaInitDOS(Device *dev)
+{
+ struct msdosfs_args args;
+
+ if (!RunningAsInit || DOSMounted)
+ return TRUE;
+
+ if (Mkdir("/dos", NULL))
+ return FALSE;
+
+ memset(&args, 0, sizeof(args));
+ args.fspec = dev->devname;
+ args.uid = args.gid = 0;
+ args.mask = 0777;
+
+ if (mount(MOUNT_MSDOS, "/dos", MNT_RDONLY, (caddr_t)&args) == -1) {
+ msgConfirm("Error mounting %s on /dos: %s (%u)\n", args.fspec, strerror(errno), errno);
+ return FALSE;
+ }
+ DOSMounted = TRUE;
+ return TRUE;
+}
+
+int
+mediaGetDOS(Device *dev, char *file, Attribs *dist_attrs)
+{
+ char buf[PATH_MAX];
+
+ snprintf(buf, PATH_MAX, "/dos/freebsd/%s", file);
+ if (!access(buf, R_OK))
+ return open(buf, O_RDONLY);
+ snprintf(buf, PATH_MAX, "/dos/freebsd/dists/%s", file);
+ return open(buf, O_RDONLY);
+}
+
+void
+mediaShutdownDOS(Device *dev)
+{
+ if (!RunningAsInit || !DOSMounted)
+ return;
+ msgDebug("Unmounting /dos\n");
+ if (unmount("/dos", MNT_FORCE) != 0)
+ msgConfirm("Could not unmount the DOS partition: %s\n", strerror(errno));
+ if (isDebug())
+ msgDebug("Unmount returned\n");
+ DOSMounted = FALSE;
+ return;
+}
diff --git a/release/sysinstall/floppy.c b/release/sysinstall/floppy.c
new file mode 100644
index 0000000..cf847de
--- /dev/null
+++ b/release/sysinstall/floppy.c
@@ -0,0 +1,228 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last attempt in the `sysinstall' line, the next
+ * generation being slated to essentially a complete rewrite.
+ *
+ * $Id: floppy.c,v 1.6.2.17 1995/06/10 09:14:51 jkh Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ * Copyright (c) 1995
+ * Gary J Palmer. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+/* These routines deal with getting things off of floppy media */
+
+#include "sysinstall.h"
+#include <sys/fcntl.h>
+#include <sys/stat.h>
+#include <sys/errno.h>
+#include <sys/param.h>
+#include <sys/wait.h>
+#include <unistd.h>
+#include <grp.h>
+
+#define MSDOSFS
+#include <sys/mount.h>
+#undef MSDOSFS
+
+static Device *floppyDev;
+static Boolean floppyMounted;
+
+static char *distWanted;
+
+/* For finding floppies */
+static int
+floppyChoiceHook(char *str)
+{
+ Device **devs;
+
+ /* Clip garbage off the ends */
+ string_prune(str);
+ str = string_skipwhite(str);
+ if (!*str)
+ return 0;
+ devs = deviceFind(str, DEVICE_TYPE_FLOPPY);
+ if (devs)
+ floppyDev = devs[0];
+ return devs ? 1 : 0;
+}
+
+/* Our last-ditch routine for getting ROOT from a floppy */
+int
+getRootFloppy(void)
+{
+ int fd = -1;
+
+ while (floppyDev == NULL || fd == -1) {
+ Device **devs;
+ int cnt;
+
+ devs = deviceFind(NULL, DEVICE_TYPE_FLOPPY);
+ cnt = deviceCount(devs);
+ if (!cnt) {
+ msgConfirm("No floppy devices found! Something is seriously wrong!");
+ return -1;
+ }
+ else if (cnt == 1) {
+ floppyDev = devs[0];
+ msgConfirm("Please insert the ROOT floppy in %s and press [ENTER]", floppyDev->description);
+ }
+ else {
+ DMenu *menu;
+
+ menu = deviceCreateMenu(&MenuMediaFloppy, DEVICE_TYPE_FLOPPY, floppyChoiceHook);
+ menu->title = "Please insert the ROOT floppy";
+ if (!dmenuOpenSimple(menu))
+ return -1;
+ }
+ if (!floppyDev)
+ continue;
+ fd = open(floppyDev->devname, O_RDONLY);
+ if (isDebug())
+ msgDebug("getRootFloppy on %s yields fd of %d\n", floppyDev->devname, fd);
+ }
+ return fd;
+}
+
+Boolean
+mediaInitFloppy(Device *dev)
+{
+ struct msdosfs_args dosargs;
+
+ if (floppyMounted)
+ return TRUE;
+
+ if (Mkdir("/mnt", NULL)) {
+ msgConfirm("Unable to make directory mountpoint for %s!", dev->devname);
+ return FALSE;
+ }
+ if (!distWanted)
+ msgConfirm("Please insert next floppy into %s", dev->description);
+ else {
+ msgConfirm("Please insert floppy containing %s into %s", distWanted, dev->description);
+ distWanted = NULL;
+ }
+ memset(&dosargs, 0, sizeof dosargs);
+ dosargs.fspec = dev->devname;
+ dosargs.uid = dosargs.gid = 0;
+ dosargs.mask = 0777;
+ if (mount(MOUNT_MSDOS, "/mnt", 0, (caddr_t)&dosargs) == -1) {
+ msgConfirm("Error mounting floppy %s (%s) on /mnt : %s", dev->name, dev->devname, strerror(errno));
+ return FALSE;
+ }
+ if (isDebug())
+ msgDebug("initFloppy: mounted floppy %s successfully on /mnt\n", dev->devname);
+ floppyMounted = TRUE;
+ return TRUE;
+}
+
+int
+mediaGetFloppy(Device *dev, char *file, Attribs *dist_attrs)
+{
+ char buf[PATH_MAX];
+#ifdef DO_CRC_CHECK
+ char *extn, *var;
+ const char *val;
+ char attrib[10];
+ u_long cval1, clen1, cval2, clen2;
+#endif
+ int fd;
+ int nretries = 5;
+
+ snprintf(buf, PATH_MAX, "/mnt/%s", file);
+
+ if (access(buf, R_OK)) {
+ if (dev->flags & OPT_EXPLORATORY_GET)
+ return -1;
+ else {
+ while (access(buf, R_OK) != 0) {
+ if (!--nretries) {
+ msgConfirm("GetFloppy: Failed to get %s after retries;\ngiving up.", file);
+ return -1;
+ }
+ distWanted = buf;
+ (*dev->shutdown)(dev);
+ if (!(dev->init)(dev))
+ return -1;
+ }
+ }
+ }
+
+ fd = open(buf, O_RDONLY);
+#ifdef DO_CRC_CHECK
+ if (dist_attrs != NULL && fd != -1) {
+ extn = rindex(buf, '.');
+ snprintf(attrib, 10, "cksum%s", extn);
+ val = attr_match(dist_attrs, attrib);
+ if (val != NULL) {
+ if (isDebug())
+ msgDebug("attr_match(%s,%s) returned `%s'\n", dist_attrs, attrib, val);
+ var = strdup(val);
+
+ cval1 = strtol(var, &extn, 10);
+ clen1 = strtol(extn, NULL, 10);
+
+ if (crc(fd, &cval2, &clen2) != 0) {
+ msgConfirm("crc() of file `%s' failed!", file);
+ close(fd);
+ return -1;
+ }
+ if ((cval1 != cval2) || (clen1 != clen2)) {
+ msgConfirm("Invalid file `%s' (checksum `%u %u' should be %s)", file, cval2, clen2, var);
+ close(fd);
+ return -1;
+ }
+ lseek(fd, 0, 0);
+ }
+ else
+ msgNotify("No checksum information for file %s..", file);
+ }
+#endif
+ return fd;
+}
+
+void
+mediaShutdownFloppy(Device *dev)
+{
+ if (floppyMounted) {
+ if (unmount("/mnt", MNT_FORCE) != 0)
+ msgDebug("Umount of floppy on /mnt failed: %s (%d)\n", strerror(errno), errno);
+ else {
+ floppyMounted = FALSE;
+ msgConfirm("You may remove the floppy from %s", dev->description);
+ }
+ }
+}
diff --git a/release/sysinstall/ftp.c b/release/sysinstall/ftp.c
new file mode 100644
index 0000000..59ffb6f
--- /dev/null
+++ b/release/sysinstall/ftp.c
@@ -0,0 +1,440 @@
+/*
+ * ----------------------------------------------------------------------------
+ * "THE BEER-WARE LICENSE" (Revision 42):
+ * <phk@login.dknet.dk> wrote this file. As long as you retain this notice you
+ * can do whatever you want with this stuff. If we meet some day, and you think
+ * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
+ * ----------------------------------------------------------------------------
+ *
+ * $Id: ftp.c,v 1.13.2.9 1995/06/05 18:34:15 jkh Exp $
+ *
+ * Return values have been sanitized:
+ * -1 error, but you (still) have a session.
+ * -2 error, your session is dead.
+ *
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <netdb.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <stdarg.h>
+#include <string.h>
+#include <errno.h>
+#include <ctype.h>
+#include "ftp.h"
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+
+/* Handy global for us to stick the port # */
+int FtpPort;
+
+#ifndef STANDALONE_FTP
+#include "sysinstall.h"
+#endif /*STANDALONE_FTP*/
+
+static void
+debug(FTP_t ftp, const char *fmt, ...)
+{
+ char p[BUFSIZ];
+ va_list ap;
+ va_start(ap, fmt);
+#ifdef STANDALONE_FTP
+ strcpy(p,"LIBFTP: ");
+ (void) vsnprintf(p+strlen(p), sizeof p - strlen(p), fmt, ap);
+ va_end(ap);
+ write(ftp->fd_debug,p,strlen(p));
+#else
+ if (isDebug()) {
+ (void) vsnprintf(p, sizeof p - strlen(p), fmt, ap);
+ msgDebug(p);
+ }
+#endif
+}
+
+static int
+writes(int fd, char *s)
+{
+ int i = strlen(s);
+ if (i != write(fd,s,i))
+ return -2;
+ return 0;
+}
+
+static __inline char*
+get_a_line(FTP_t ftp)
+{
+ static char buf[BUFSIZ];
+ int i,j;
+
+ for(i=0;i<BUFSIZ;) {
+ j = read(ftp->fd_ctrl,buf+i,1);
+ if (j != 1)
+ return 0;
+ if (buf[i] == '\r' || buf[i] == '\n') {
+ if (!i)
+ continue;
+ buf[i] = '\0';
+ debug(ftp, "received <%s>\n",buf);
+ return buf;
+ }
+ i++;
+ }
+ return buf;
+}
+
+static int
+get_a_number(FTP_t ftp, char **q)
+{
+ char *p;
+ int i = -1,j;
+
+ while(1) {
+ p = get_a_line(ftp);
+ if (!p)
+ return -2;
+ if (!(isdigit(p[0]) && isdigit(p[1]) && isdigit(p[2])))
+ continue;
+ if (i == -1 && p[3] == '-') {
+ i = strtol(p, 0, 0);
+ continue;
+ }
+ if (p[3] != ' ' && p[3] != '\t')
+ continue;
+ j = strtol(p, 0, 0);
+ if (i == -1) {
+ if (q) *q = p+4;
+ return j;
+ } else if (j == i) {
+ if (q) *q = p+4;
+ return j;
+ }
+ }
+}
+
+static int
+zap(FTP_t ftp)
+{
+ int i;
+
+ i = writes(ftp->fd_ctrl,"QUIT\r\n");
+ if (isDebug())
+ msgDebug("Zapping ftp connection on %d returns %d\n", ftp->fd_ctrl, i);
+ close(ftp->fd_ctrl); ftp->fd_ctrl = -1;
+ close(ftp->fd_xfer); ftp->fd_xfer = -1;
+ ftp->state = init;
+ return -2;
+}
+
+static int
+botch(FTP_t ftp, char *func, char *state)
+{
+ debug(ftp, "Botch: %s called outside state %s\n",func,state);
+ return -2;
+}
+
+static int
+cmd(FTP_t ftp, const char *fmt, ...)
+{
+ char p[BUFSIZ];
+ int i;
+
+ va_list ap;
+ va_start(ap, fmt);
+ (void) vsnprintf(p, sizeof p, fmt, ap);
+ va_end(ap);
+
+ debug(ftp, "send <%s>\n",p);
+ strcat(p,"\r\n");
+ if (writes(ftp->fd_ctrl,p))
+ return -2;
+ i = get_a_number(ftp,0);
+ return i;
+}
+
+FTP_t
+FtpInit()
+{
+ FTP_t ftp;
+
+ ftp = malloc(sizeof *ftp);
+ if (!ftp)
+ return ftp;
+ memset(ftp, 0, sizeof *ftp);
+ ftp->fd_ctrl = -1;
+ ftp->fd_xfer = -1;
+ ftp->fd_debug = -1;
+ ftp->state = init;
+ return ftp;
+}
+
+#ifdef STANDALONE_FTP
+void
+FtpDebug(FTP_t ftp, int i)
+{
+ ftp->fd_debug = i;
+}
+#endif
+
+int
+FtpOpen(FTP_t ftp, char *host, char *user, char *passwd)
+{
+ struct hostent *he = NULL;
+ struct sockaddr_in sin;
+ int s;
+ unsigned long temp;
+ int i;
+
+ if (ftp->state != init)
+ return botch(ftp,"FtpOpen","init");
+
+ if (!user)
+ user = "ftp";
+
+ if (!passwd)
+ passwd = "??@??(FreeBSD:libftp)"; /* XXX */
+
+ debug(ftp, "FtpOpen(ftp, %s, %s, %s)\n", host, user, passwd);
+
+ temp = inet_addr(host);
+ if (temp != INADDR_NONE) {
+ debug(ftp, "Using dotted IP address `%s'\n", host);
+ ftp->addrtype = sin.sin_family = AF_INET;
+ sin.sin_addr.s_addr = temp;
+ }
+ else {
+ debug(ftp, "Trying to resolve `%s'\n", host);
+ he = gethostbyname(host);
+ if (!he) {
+ debug(ftp, "Lookup of `%s' failed!\n", host);
+ return zap(ftp);
+ }
+ ftp->addrtype = sin.sin_family = he->h_addrtype;
+ bcopy(he->h_addr, (char *)&sin.sin_addr, he->h_length);
+ }
+
+ sin.sin_port = htons(FtpPort ? FtpPort : 21);
+
+ if ((s = socket(ftp->addrtype, SOCK_STREAM, 0)) < 0)
+ {
+ debug(ftp, "Socket open failed: %s (%i)\n", strerror(errno), errno);
+ return zap(ftp);
+ }
+
+ if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
+ debug(ftp,"Connection failed: %s (%i)\n", strerror(errno), errno);
+ (void)close(s);
+ return zap(ftp);
+ }
+
+ ftp->fd_ctrl = s;
+
+ debug(ftp, "open (%d)\n",get_a_number(ftp,0));
+
+ i = cmd(ftp,"USER %s",user);
+ if (i >= 300 && i < 400)
+ i = cmd(ftp,"PASS %s",passwd);
+ if (i >= 299 || i < 0) {
+ close(ftp->fd_ctrl); ftp->fd_ctrl = -1;
+ return zap(ftp);
+ }
+ ftp->state = isopen;
+ return 0;
+}
+
+void
+FtpClose(FTP_t ftp)
+{
+ if (ftp->state != init)
+ return;
+
+ if (ftp->state != isopen)
+ botch(ftp,"FtpClose","open or init");
+
+ debug(ftp, "FtpClose(ftp)\n");
+ zap(ftp);
+}
+
+int
+FtpChdir(FTP_t ftp, char *dir)
+{
+ int i;
+ if (ftp->state != isopen)
+ return botch(ftp,"FtpChdir","open");
+ i = cmd(ftp,"CWD %s",dir);
+ if (i < 0)
+ return i;
+ else if (i != 250)
+ return -1;
+ return 0;
+}
+
+int
+FtpGet(FTP_t ftp, char *file)
+{
+ int i,s;
+ char *q;
+ unsigned char addr[64];
+ struct sockaddr_in sin;
+ u_long a;
+
+ debug(ftp, "FtpGet(ftp,%s)\n",file);
+ if (ftp->state != isopen)
+ return botch(ftp,"FtpGet","open");
+ if(ftp->binary) {
+ i = cmd(ftp,"TYPE I");
+ if (i < 0)
+ return zap(ftp);
+ if (i > 299)
+ return -1;
+ } else {
+ return -1;
+ }
+
+ if ((s = socket(ftp->addrtype, SOCK_STREAM, 0)) < 0)
+ return zap(ftp);
+
+ if (ftp->passive) {
+ debug(ftp, "send <%s>\n","PASV");
+ if (writes(ftp->fd_ctrl,"PASV\r\n"))
+ return zap(ftp);
+ i = get_a_number(ftp,&q);
+ if (i < 0)
+ return zap(ftp);
+ if (i != 227)
+ return zap(ftp);
+ while (*q && !isdigit(*q))
+ q++;
+ if (!*q)
+ return zap(ftp);
+ q--;
+ for(i=0;i<6;i++) {
+ q++;
+ addr[i] = strtol(q,&q,10);
+ }
+
+ sin.sin_family = ftp->addrtype;
+ bcopy(addr, (char *)&sin.sin_addr, 4);
+ bcopy(addr+4, (char *)&sin.sin_port, 2);
+ debug(ftp, "Opening active socket to %s : %u\n", inet_ntoa(sin.sin_addr), htons(sin.sin_port));
+
+ debug(ftp, "Connecting to %s:%u\n", inet_ntoa(sin.sin_addr), htons(sin.sin_port));
+ if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
+ (void)close(s);
+ debug(ftp, "connect: %s (%d)\n", strerror(errno), errno);
+ return -1;
+ }
+ ftp->fd_xfer = s;
+ i = cmd(ftp,"RETR %s",file);
+ if (i < 0) {
+ close(s);
+ return zap(ftp);
+ }
+ else if (i > 299) {
+ if (isDebug())
+ msgDebug("FTP: No such file %s, moving on.\n", file);
+ close(s);
+ return -1;
+ }
+ ftp->state = xfer;
+ return s;
+ } else {
+ i = sizeof sin;
+ getsockname(ftp->fd_ctrl,(struct sockaddr *)&sin,&i);
+ sin.sin_port = 0;
+ i = sizeof sin;
+ if (bind(s,(struct sockaddr *)&sin, i) < 0) {
+ close (s);
+ debug(ftp,"bind failed %d\n",errno);
+ return zap(ftp);
+ }
+ getsockname(s,(struct sockaddr *)&sin,&i);
+ if (listen(s,1) < 0) {
+ close (s);
+ debug(ftp,"listen failed %d\n",errno);
+ return zap(ftp);
+ }
+ a = ntohl(sin.sin_addr.s_addr);
+ i = cmd(ftp,"PORT %d,%d,%d,%d,%d,%d",
+ (a >> 24) & 0xff,
+ (a >> 16) & 0xff,
+ (a >> 8) & 0xff,
+ a & 0xff,
+ (ntohs(sin.sin_port) >> 8) & 0xff,
+ ntohs(sin.sin_port) & 0xff);
+ if (i != 200)
+ return -1;
+ i = cmd(ftp,"RETR %s",file);
+ if (i < 0) {
+ close(s);
+ return zap(ftp);
+ }
+ else if (i > 299) {
+ if (isDebug())
+ msgDebug("FTP: No such file %s, moving on.\n", file);
+ close(s);
+ return -1;
+ }
+ ftp->fd_xfer = accept(s, 0, 0);
+ if (ftp->fd_xfer < 0) {
+ close(s);
+ return zap(ftp);
+ }
+ ftp->state = xfer;
+ close(s);
+ return(ftp->fd_xfer);
+ }
+}
+
+int
+FtpEOF(FTP_t ftp)
+{
+ int i;
+
+ if (ftp->state != xfer)
+ return botch(ftp,"FtpEOF","xfer");
+ debug(ftp, "FtpEOF(ftp)\n");
+ close(ftp->fd_xfer); ftp->fd_xfer = -1;
+ ftp->state = isopen;
+ i = get_a_number(ftp,0);
+ if (i < 0)
+ return zap(ftp);
+ else if (i != 250 && i != 226)
+ return -1;
+ else
+ return 0;
+}
+
+#ifdef STANDALONE_FTP
+
+/* main.c */
+int
+main(int argc, char **argv)
+{
+ FTP_t ftp;
+ int i;
+ char c;
+
+ ftp = FtpInit();
+ if (!ftp)
+ err(1, "FtpInit()");
+
+ FtpDebug(ftp, 1);
+ i = FtpOpen(ftp, "freefall.cdrom.com", "ftp", "phk-libftp@");
+ FtpBinary(ftp, 1);
+ FtpPassive(ftp, 0);
+ FtpChdir(ftp, "/pub");
+ FtpChdir(ftp, "FreeBSD");
+ i = FtpGet(ftp, "README");
+ while (1 == read(i, &c, 1))
+ putchar(c);
+ FtpEOF(ftp);
+ return 0;
+}
+
+#endif /*STANDALONE_FTP*/
diff --git a/release/sysinstall/ftp.h b/release/sysinstall/ftp.h
new file mode 100644
index 0000000..f1e35d6
--- /dev/null
+++ b/release/sysinstall/ftp.h
@@ -0,0 +1,29 @@
+#ifndef _FTP_H_INCLUDE
+#define _FTP_H_INCLUDE
+
+typedef struct {
+ enum {init, isopen, xfer} state;
+ int fd_ctrl;
+ int fd_xfer;
+ int fd_debug;
+ int binary;
+ int passive;
+ int addrtype;
+ char *host;
+ char *file;
+} *FTP_t;
+
+FTP_t FtpInit();
+int FtpOpen(FTP_t, char *host, char *user, char *passwd);
+#define FtpBinary(ftp,bool) { (ftp)->binary = (bool); }
+#define FtpPassive(ftp,bool) { (ftp)->passive = (bool); }
+#ifndef STANDALONE_FTP
+#define FtpDebug(ftp, bool) { (ftp)->fd_debug = (bool); }
+#endif
+int FtpChdir(FTP_t, char *);
+int FtpGet(FTP_t, char *);
+int FtpEOF(FTP_t);
+void FtpClose(FTP_t);
+
+#endif
+/* _FTP_H_INCLUDE */
diff --git a/release/sysinstall/ftp_strat.c b/release/sysinstall/ftp_strat.c
new file mode 100644
index 0000000..fe017fe
--- /dev/null
+++ b/release/sysinstall/ftp_strat.c
@@ -0,0 +1,262 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last attempt in the `sysinstall' line, the next
+ * generation being slated to essentially a complete rewrite.
+ *
+ * $Id: ftp_strat.c,v 1.6.2.25 1995/06/07 09:53:14 jkh Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ * Copyright (c) 1995
+ * Gary J Palmer. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <sys/param.h>
+#include <sys/wait.h>
+#include <netdb.h>
+#include "ftp.h"
+
+Boolean ftpInitted;
+static FTP_t ftp;
+extern int FtpPort;
+
+int
+mediaSetFtpUserPass(char *str)
+{
+ char *user, *pass;
+
+ dialog_clear();
+ if ((user = msgGetInput(getenv(FTP_USER), "Please enter the username you wish to login as")) != NULL)
+ variable_set2(FTP_USER, user);
+ if ((pass = msgGetInput(getenv(FTP_PASS), "Please enter the password for this user.\nWARNING: This password will echo on the screen!")) != NULL)
+ variable_set2(FTP_PASS, pass);
+ dialog_clear();
+ return 0;
+}
+
+static Boolean
+get_new_host(Device *dev)
+{
+ Boolean i;
+ char *oldTitle = MenuMediaFTP.title;
+ Device *netDev = dev->private;
+
+ MenuMediaFTP.title = "Connection timed out - please select another site";
+ i = mediaSetFTP(NULL);
+ MenuMediaFTP.title = oldTitle;
+ if (i) {
+ char *cp = getenv(FTP_USER);
+
+ if (cp && *cp)
+ (void)mediaSetFtpUserPass(NULL);
+ netDev->flags |= OPT_LEAVE_NETWORK_UP;
+ (*dev->shutdown)(dev);
+ i = (*dev->init)(dev);
+ netDev->flags &= ~OPT_LEAVE_NETWORK_UP;
+ }
+ return i;
+}
+
+static Boolean HasDistsDir;
+
+Boolean
+mediaInitFTP(Device *dev)
+{
+ int i, retries, max_retries = MAX_FTP_RETRIES;
+ char *cp, *hostname, *dir;
+ char *user, *login_name, password[80], url[BUFSIZ];
+ Device *netDevice = (Device *)dev->private;
+
+ if (ftpInitted)
+ return TRUE;
+
+ if (!(*netDevice->init)(netDevice))
+ return FALSE;
+
+ if ((ftp = FtpInit()) == NULL) {
+ msgConfirm("FTP initialisation failed!");
+ goto punt;
+ }
+ if (isDebug())
+ msgDebug("Initialized FTP library.\n");
+
+ cp = getenv("ftp");
+ if (!cp)
+ goto punt;
+ if (isDebug())
+ msgDebug("Attempting to open connection for: %s\n", cp);
+ hostname = getenv(VAR_HOSTNAME);
+ if (strncmp("ftp://", cp, 6) != NULL) {
+ msgConfirm("Invalid URL: %s\n(A URL must start with `ftp://' here)", cp);
+ goto punt;
+ }
+ strncpy(url, cp, BUFSIZ);
+ if (isDebug())
+ msgDebug("Using URL `%s'\n", url);
+ hostname = url + 6;
+ if ((cp = index(hostname, ':')) != NULL) {
+ *(cp++) = '\0';
+ FtpPort = strtol(cp, 0, 0);
+ }
+ else
+ FtpPort = 21;
+ if ((dir = index(cp ? cp : hostname, '/')) != NULL)
+ *(dir++) = '\0';
+ if (isDebug()) {
+ msgDebug("hostname = `%s'\n", hostname);
+ msgDebug("dir = `%s'\n", dir ? dir : "/");
+ msgDebug("port # = `%d'\n", FtpPort);
+ }
+ msgNotify("Looking up host %s..", hostname);
+ if ((gethostbyname(hostname) == NULL) && (inet_addr(hostname) == INADDR_NONE)) {
+ msgConfirm("Cannot resolve hostname `%s'! Are you sure that your\nname server, gateway and network interface are configured?", hostname);
+ goto punt;
+ }
+ user = getenv(FTP_USER);
+ if (!user || !*user) {
+ snprintf(password, BUFSIZ, "installer@%s", hostname);
+ login_name = "anonymous";
+ }
+ else {
+ login_name = user;
+ strcpy(password, getenv(FTP_PASS) ? getenv(FTP_PASS) : login_name);
+ }
+ retries = i = 0;
+ if (OptFlags & (OPT_FTP_RESELECT + OPT_FTP_ABORT))
+ max_retries = 0;
+retry:
+ if (i && ++retries > max_retries) {
+ if ((OptFlags & OPT_FTP_ABORT) || !get_new_host(dev))
+ return FALSE;
+ retries = 0;
+ }
+ msgNotify("Logging in as %s..", login_name);
+ if ((i = FtpOpen(ftp, hostname, login_name, password)) != 0) {
+ if (OptFlags & OPT_NO_CONFIRM)
+ msgNotify("Couldn't open FTP connection to %s\n", hostname);
+ else
+ msgConfirm("Couldn't open FTP connection to %s\n", hostname);
+ goto retry;
+ }
+
+ FtpPassive(ftp, (OptFlags & OPT_FTP_PASSIVE) ? 1 : 0);
+ FtpBinary(ftp, 1);
+ if (dir && *dir != '\0') {
+ msgNotify("CD to distribution in ~ftp/%s", dir);
+ if ((i = FtpChdir(ftp, dir)) == -2)
+ goto retry;
+ }
+ if (!FtpChdir(ftp, "dists")) {
+ HasDistsDir = TRUE;
+ FtpChdir(ftp, ".."); /* Hope this works! :-( */
+ }
+ else
+ HasDistsDir = FALSE;
+ if (isDebug())
+ msgDebug("leaving mediaInitFTP!\n");
+ ftpInitted = TRUE;
+ return TRUE;
+
+punt:
+ FtpClose(ftp);
+ ftp = NULL;
+ (*netDevice->shutdown)(netDevice);
+ return FALSE;
+}
+
+int
+mediaGetFTP(Device *dev, char *file, Attribs *dist_attrs)
+{
+ int fd;
+ int nretries = 0, max_retries = MAX_FTP_RETRIES;
+ Boolean inDists = FALSE;
+
+ if (OptFlags & (OPT_FTP_RESELECT + OPT_FTP_ABORT) || dev->flags & OPT_EXPLORATORY_GET)
+ max_retries = 1;
+
+ while ((fd = FtpGet(ftp, file)) < 0) {
+ /* If a hard fail, try to "bounce" the ftp server to clear it */
+ if (fd == -2 || ++nretries > max_retries) {
+ if ((OptFlags & OPT_FTP_ABORT) || (dev->flags & OPT_EXPLORATORY_GET))
+ return -1;
+ else if (!get_new_host(dev))
+ return -2;
+ nretries = 0;
+ continue;
+ }
+ if (HasDistsDir) {
+ if (!inDists) {
+ FtpChdir(ftp, "dists");
+ inDists = TRUE;
+ }
+ else {
+ FtpChdir(ftp, "..");
+ inDists = FALSE;
+ }
+ }
+ }
+ if (inDists)
+ FtpChdir(ftp, "..");
+ return fd;
+}
+
+Boolean
+mediaCloseFTP(Device *dev, int fd)
+{
+ FtpEOF(ftp);
+ if (!close(fd))
+ return (TRUE);
+ return FALSE;
+}
+
+void
+mediaShutdownFTP(Device *dev)
+{
+ Device *netdev = (Device *)dev->private;
+
+ if (!ftpInitted)
+ return;
+
+ if (ftp != NULL) {
+ FtpClose(ftp);
+ ftp = NULL;
+ }
+ (*netdev->shutdown)(netdev);
+ ftpInitted = FALSE;
+}
diff --git a/release/sysinstall/globals.c b/release/sysinstall/globals.c
new file mode 100644
index 0000000..2041024
--- /dev/null
+++ b/release/sysinstall/globals.c
@@ -0,0 +1,78 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last program in the `sysinstall' line - the next
+ * generation being essentially a complete rewrite.
+ *
+ * $Id: globals.c,v 1.9.2.2 1995/06/05 03:15:38 jkh Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+
+/*
+ * Various global variables and an initialization hook to set them to
+ * whatever values we feel are appropriate.
+ */
+
+int DebugFD; /* Where diagnostic output goes */
+Boolean RunningAsInit; /* Are we running as init? */
+Boolean DialogActive;
+Boolean ColorDisplay;
+Boolean OnVTY;
+Variable *VarHead; /* The head of the variable chain */
+Device *mediaDevice; /* Where we're installing from */
+unsigned int OptFlags; /* Option flags */
+int BootMgr;
+char *InstallPrefix; /* Always install under here */
+
+/*
+ * Yes, I know some of these are already automatically initialized as
+ * globals. I simply find it clearer to set everything explicitly.
+ */
+void
+globalsInit(void)
+{
+ DebugFD = -1;
+ ColorDisplay = FALSE;
+ OnVTY = FALSE;
+ DialogActive = FALSE;
+ VarHead = NULL;
+ mediaDevice = NULL;
+ RunningAsInit = FALSE;
+ OptFlags = 0;
+ InstallPrefix = NULL;
+}
diff --git a/release/sysinstall/help/XF86.hlp b/release/sysinstall/help/XF86.hlp
new file mode 100644
index 0000000..c789eaa
--- /dev/null
+++ b/release/sysinstall/help/XF86.hlp
@@ -0,0 +1,500 @@
+README for XFree86 3.1.1u1 on FreeBSD 2.0.5
+Rich Murphey, David Dawes
+20 January 1995
+
+1. What and Where is XFree86?
+------------------------------
+
+XFree86 is a port of X11R6 that supports several versions of Intel-
+based Unix. It is derived from X386 1.2, which was the X server
+distributed with X11R5. This release consists of many new features
+and performance improvements as well as many bug fixes. The release
+is available as source patches against the X Consortium X11R6 code, as
+well as binary distributions for many architectures.
+
+See the Copyright Notice (COPYRIGHT.html).
+
+The sources for XFree86 are available as part of the FreeBSD 2.0.5
+distribution, or by anonymous ftp from:
+
+ftp.XFree86.org:/pub/XFree86/current
+(ftp://ftp.XFree86.org/pub/XFree86/current)
+
+
+Binaries for XFree86 on FreeBSD are also available as part of
+2.0.5 or from:
+
+ftp.XFree86.org:/pub/XFree86/current/binaries/FreeBSD-2.0
+(ftp://ftp.XFree86.org/pub/XFree86/current/binaries/FreeBSD-2.0)
+
+XFree86.cdrom.com:/pub/XFree86/current/binaries/FreeBSD-2.0
+(ftp://XFree86.cdrom.com/pub/XFree86/current/binaries/FreeBSD-2.0)
+
+Send email to Rich-Murphey@Rice.edu or XFree86@XFree86.org if you have
+comments or suggestions about this file and we'll revise it.
+
+
+2. Installing the Binaries
+---------------------------
+
+In the FreeBSD 2.0.5 distribution, XFree86 comes in 3 major sections:
+"basic" distributions, fonts and servers. At the minimum, you will
+need the binaries and libraries from the basic distribution, the
+"misc" fonts collection and at least one server. The smallest usable
+distribution is around 9MB.
+
+If you can't decide what to pick and you have 52Mb of disk
+space, it's safe to unpack everything.
+
+What follows is a description of the various distribution files
+comprising XFree86. If you are installing this as part of FreeBSD
+2.0.5 then there's no need to use these files directly: You may
+simply check the desired components off the installation menus
+provided for that purpose. If you're installing this manually,
+then the following information should prove useful:
+
+ Required (6.7Mb):
+
+ X311bin.tgz
+ all the executable X client applications and shared libs
+
+ X311fnts.tgz
+ the misc and 75 dpi fonts
+
+ X311lib.tgz
+ data files needed at runtime
+
+
+ Required unless you have already customized your configuration
+ files:
+
+ X311xicf.tgz
+ customizable xinit runtime configuration file
+
+ X311xdcf.tgz
+ customizable xdm runtime configuration file
+
+ Choose at least one server ( 2.3Mb):
+
+ X3118514.tgz
+ 8-bit color for IBM 8514 and true compatibles.
+
+ X311AGX.tgz
+ 8-bit color for AGX boards.
+
+ X311Mch3.tgz
+ 8 and 16-bit color for ATI Mach32 boards.
+
+ X311Mch8.tgz
+ 8-bit color for ATI Mach8 boards.
+
+ X311Mono.tgz
+ 1-bit monochrome for VGA, Super-VGA, Hercules, and others.
+
+ X311P9K.tgz
+ 8, 16, and 24-bit color for Weitek P9000 boards (Diamond
+ Viper).
+
+ X311S3.tgz
+ 8, 16 and 24-bit color for S3 boards (#9 GXE, Actix GE32,
+ SPEA Mercury, STB Pegasus)
+
+ X311SVGA.tgz
+ 8-bit color for Super-VGA cards.
+
+ X311VG16.tgz
+ 4-bit color for VGA and Super-VGA cards
+
+ X311W32.tgz
+ 8-bit Color for ET4000/W32, /W32i and /W32p cards.
+
+ X311nest.tgz
+ A nested server running as a client window on another
+ display.
+
+ Optional:
+
+ X311doc.tgz
+ (.5Mb) READMEs and XFree86 specific man pages
+
+ X311man.tgz
+ (1.7Mb) man pages except XFree86 specific ones in etc archive
+
+ X311f100.tgz
+ (1.8Mb) 100dpi fonts
+
+ X311fscl.tgz
+ (1.6Mb) Speedo and Type1 fonts
+
+ X311fnon.tgz
+ (3.3Mb) Japanese, Chinese and other non-English fonts
+
+ X311fsrv.tgz
+ (.3Mb) the font server and it's man page
+
+ X311prog.tgz
+ (3.9Mb) config, lib*.a and *.h files needed only for
+ compiling
+
+ X311link.tgz
+ (7.8Mb) X server reconfiguration kit
+
+ X311pex.tgz
+ (.5Mb) PEX fonts and shared libs needed by PEX applications.
+
+ X311lbx.tgz
+ (.2Mb) low bandwidth X proxy server and libraries.
+
+Note that there is no longer a separate xdm archive. FreeBSD 2.0
+and later handles this in shared libraries now, so that the xdm
+binary does not itself contain des and there is no more need for
+us to provide separate tar balls.
+
+
+2.1. Full Install:
+-------------------
+
+[ Note: Unless you're installing XFree86 3.1.1u1 manually, that is
+ to say not as part of the FreeBSD 2.0.5 installation, you may skip
+ to section 2.3 ]
+
+ 1. You must be logged in as root to unpack the archives because
+ several executables are set-user-id. Otherwise the server may
+ abort if you unpack it as an ordinary user. You must also use a
+ ``umask'' value of 022 because the X server requires special
+ permissions.
+
+ % su
+ # umask 022
+
+
+ 2. If you have 52Mb free in the /usr partition ``cd /usr'' and skip
+ to no. 3. Otherwise, create a directory on another partition
+ and sym link it into /usr:
+
+ # cd /usr/local
+ # mkdir X11R6
+ # ln -s /usr/local/X11R6 /usr/X11R6
+
+
+ 3. Unpack everything:
+
+ If you are using sh (as root usually does):
+
+ # for i in X311*.tgz; do
+ # tar -xzf $i
+ # done
+
+
+ Else, if you are using csh:
+
+ % foreach i (X311*.tgz)
+ % tar -xzf $i
+ % end
+
+
+ 4. Create a symbolic link ``X'' that points to the server that
+ matches your video card. The XF86_* man pages list which vga
+ chip sets are supported by each server. For example, if you
+ have an ET4000 based card you will use the XF86_SVGA server:
+
+ # cd /usr/X11R6/bin; rm X; ln -s XF86_SVGA X
+
+
+2.2. Minimal Install:
+----------------------
+
+First do numbers 1 and 2 above. Then unpack the required archives:
+
+ # for i in bin fnts lib xicf; do
+ # tar -xzf X311$i.tgz
+ # done
+
+
+Then unpack a server archive corresponding to your vga card. The
+server man pages, X11R6/man/man1/XF86_*, list the vga chip sets
+supported by each server. For example, if you have an ET4000 based
+card you will use the XF86_SVGA server:
+
+ # tar -xzf X311SVGA.tgz
+ # cd /usr/X11R6/bin; rm X; ln -s XF86_SVGA X
+
+
+2.3. After either Full or Minimal Install above:
+-------------------------------------------------
+
+Add /usr/X11R6/bin to the default path for sh in /etc/profile and for
+csh in /etc/csh.login if they are not already there:
+
+ # echo 'set path = ($path /usr/X11R6/bin)' >>/etc/csh.login
+ # echo 'PATH=$PATH:/usr/X11R6/bin' >>/etc/profile
+
+
+Or make sure all who use X put /usr/X11R6/bin in their shell's
+``path'' variable.
+
+Next either reboot or invoke ldconfig as root to put the shared
+libraries in ld.so's cache:
+
+ # ldconfig /usr/lib /usr/local/lib /usr/X11R6/lib
+
+
+If you had already configured X11R6/lib/X11/xinit/xinitrc or
+X11R6/lib/X11/xdm/* omit the xinit-config or xdm-config archive or
+unpack it separately and merge in your customizations.
+
+The fscl and f100 archives are optional and can be omitted if you are
+short on space. The optional link archive allows you to reconfigure
+and customize a X server binary. The optional prog archive is needed
+only for writing or compiling X applications. The optional pex
+archive contains pex clients and libraries for building 3D graphics
+applications.
+
+ NOTE: You don't need to uncompress the font files, but if
+ you uncompress them anyway you must run mkfontdir in the
+ corresponding font directory; otherwise your server will
+ abort with the message ``could not open default font
+ 'fixed'''.
+
+
+3. Installing The Display Manager (xdm)
+----------------------------------------
+
+The display manager makes your PC look like an X terminal. That is,
+it presents you with a login screen that runs under X.
+
+The easiest way to automatically start the display manager on boot is
+to add a line in /etc/ttys to start it on one of the unoccupied
+virtual terminals:
+
+ ttyv4 "/usr/X11R6/bin/xdm -nodaemon" xterm on secure
+
+You should also make sure that /usr/X11R6/bin/X is a symbolic link to
+the Xserver that matches your video card or edit the file Xservers in
+/usr/X11R6/lib/X11/xdm to specify the pathname of the X server.
+
+The change to /etc/ttys won't take effect until you either reboot or
+``kill -HUP 1'' to force initd to reread /etc/ttys. You can also test
+the display manager manually by loging in as root on the console and
+typing ``xdm -nodaemon''.
+
+
+4. Configuring X for Your Hardware
+-----------------------------------
+
+The XF86Config file tells the X server what kind of monitor, video
+card and mouse you have. You must create it to tell the server what
+specific hardware you have.
+
+XFree86 3.1 uses a new configuration file format. Consult the
+XF86Config man page and the general INSTALL (INSTALL.html) file for
+instructions.
+
+If you have a Xconfig file for XFree86 2.x, use reconfig to translate
+part of it into the new format:
+
+ # reconfig <Xconfig >XF86Config
+
+and complete the rest according to the XF86Config man page and the
+XF86Config.sample file as a template.
+
+In order to protect your hardware from damage, the server no longer
+will read XF86Config files from a user's home directory, but requires
+that it be in /etc/XF86Config, /usr/X11R6/lib/X11/XF86Config.hostname
+or /usr/X11R6/lib/X11/XF86Config.
+
+You'll need info on your hardware:
+
+ o Your mouse type, baud rate and it's /dev entry.
+
+ o The video card's chipset (e.g. ET4000, S3, etc).
+
+ o Your monitor's sync frequencies.
+
+The easiest way to find which device your mouse is plugged into is to
+use ``cat'' or ``kermit'' to look at the output of the mouse. Connect
+to it and just make sure that it generates output when the mouse is
+moved or clicked:
+
+ % cat < /dev/cuaa0
+
+If you can't find the right mouse device then use ``dmesg|grep sio''
+to get a list of devices that were detected upon booting:
+
+ % dmesg|grep sio
+ sio0 at 0x3f8-0x3ff irq 4 on isa
+
+Then double check the /dev entries corresponding to these devices.
+Use the script /dev/MAKEDEV to create entries if they don't already
+exist:
+
+ % cd /dev
+ % sh MAKEDEV cuaa0
+
+If you plan to fine tune the screen size or position on your monitor
+you'll need the specs for sync frequencies from your monitor's manual.
+
+
+5. Running X
+-------------
+
+8mb of memory is a recommended minimum for running X. The server,
+window manager, display manager and an xterm take about 8Mb of virtual
+memory themselves. Even if their resident set size is smaller, on a
+8Mb system that leaves very space for other applications such as gcc
+that expect a few meg free. The R6 X servers may work with 4Mb of
+memory, but in practice compilation while running X can take 5 or 10
+times as long due to constant paging.
+
+The easiest way for new users to start X windows is to type ``startx
+>& startx.log''. Error messages are lost unless you redirect them
+because the server takes over the screen.
+
+To get out of X windows, type: ``exit'' in the console xterm. You can
+customize your X by creating .xinitrc, .xserverrc, and .twmrc files in
+your home directory as described in the xinit and startx man pages.
+
+
+6. Rebuilding Kernels for X
+----------------------------
+
+The GENERIC FreeBSD 2.0 kernel supports XFree86 without any
+modifications required. You do not need to make any changes to the
+GENERIC kernel or any kernel configuration which is a superset.
+
+For a general description of BSD kernel configuration get
+smm.02.config.ps.Z
+(ftp://gatekeeper.dec.com/pub/BSD/manuals/smm.02.config.ps.Z). It is
+a ready-to-print postscript copy of the kernel configuration chapter
+from the system maintainers manual.
+
+If you do decide to reduce your kernel configuration file, do not
+remove the two lines below (in /sys/arch/i386/conf). They are both
+required for X support:
+
+ options XSERVER #Xserver
+ options UCONSOLE #X Console support
+
+The generic FreeBSD 2.0 kernel is configured by default with the
+syscons driver. To configure your kernel similarly it should have a
+line like this in /usr/src/sys/i386/conf/GENERIC:
+
+ device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr
+
+The maximum number of virtual consoles can be set using the MAXCONS
+option:
+
+ options "MAXCONS=4" #4 virtual consoles
+
+
+Otherwise, the default without a line like this is 12. You must have
+more VTs than gettys as described in the end of section 3, and 4 is a
+reasonable minimum.
+
+The server supports several console drivers: pccons, syscons and pcvt.
+The syscons driver is the default in FreeBSD 1.1.5 and higher. They
+are detected at runtime and no configuration of the server itself is
+required.
+
+The pcvt console driver is bundled into FreeBSD and may be enabled
+by changing the `sc0' line in your kernel configuration file to
+`vt0'. See /sys/i386/conf/LINT for more details.
+
+The XFree86 servers include support for the MIT-SHM extension. The
+GENERIC kernel does not support this, so if you want to make use of
+this, you will need a kernel configured with SYSV shared memory
+support. To do this, add the following line to your kernel config
+file:
+
+ options SYSVSHM # System V shared memory
+ options SYSVSEM # System V semaphores
+ options SYSVMSG # System V message queues
+
+
+If you are using a SoundBlaster 16 on IRQ 2 (9), then you need a patch
+for sb16_dsp.c. Otherwise a kernel configured with the SoundBlaster
+driver will claim interrupt 9 doesn't exist and X server will lock up.
+
+S3 cards and serial port COM 4 cannot be installed together on a
+system because the I/O port addresses overlap.
+
+
+7. Rebuilding XFree86
+----------------------
+
+The server link kit allows you to build an X server using a minimum
+amount of disk space. Just unpack it, make the appropriate changes to
+site.def, type ``./mkmf' and ``make'' to link the server. See
+README.LinkKit (LinkKit.html) for more info.
+
+The source tree takes about 114Mb before compiling and an additional
+100Mb after ``make World''. You should configure the distribution by
+editing xf86site.def and site.def in xc/config/cf before compiling.
+By default, the config files are set up to build shared libraries. If
+you are running a version of FreeBSD that doesn't include shared
+library support, add the following line to site.def:
+
+ #define BuildBsdSharedLibs NO
+
+If your system doesn't have support or SYSV shared memory (for
+example, if you don't have the <sys/shm.h> header), you should disable
+the MIT-SHM extension by adding the following line to site.def:
+
+ #define HasShm NO
+
+To compile the sources on FreeBSD 1.1 and later, type:
+
+ make World
+
+
+8. Building Other X Clients
+----------------------------
+
+The easiest way to build a new client (X application) is to use xmkmf
+if an Imakefile is included with it. Type ``xmkmf -a'' to create the
+Makefiles, then type ``make''. Whenever you install additional man
+pages you should update whatis.db by running ``makewhatis
+/usr/X11R6/man''.
+
+Note: Starting with XFree86 2.1 and FreeBSD 1.1, the symbol __386BSD__
+no longer gets defined either by the compiler or via the X config
+files for FreeBSD systems. When porting clients to BSD systems, make
+use of the symbol BSD for code which is truly BSD-specific. The value
+of the symbol can be used to distinguish different BSD releases. For
+example, code specific to the Net-2 and later releases can use:
+
+ #if (BSD >= 199103)
+
+To ensure that this symbol is correctly defined, include <sys/param.h>
+in the source that requires it. Note that the symbol CSRG_BASED is
+defined for *BSD systems in XFree86 3.1.1 and later. This should be
+used to protect the inclusion of <sys/param.h>.
+
+For code that really is specific to a particular i386 BSD port, use
+__FreeBSD__ for FreeBSD, __NetBSD__ for NetBSD, __386BSD__ for 386BSD,
+and __bsdi__ for BSD/386.
+
+
+9. Thanks
+----------
+
+Many thanks to:
+
+ o Pace Willison for providing initial *BSD support.
+
+ o Amancio Hasty for 386BSD kernel and S3 chipset support.
+
+ o David Greenman, Nate Williams, Jordan Hubbard for FreeBSD kernel
+ support.
+
+ o Rod Grimes, Jordan Hubbard and Jack Velte for the use of Walnut
+ Creek Cdrom's hardware.
+
+ o Orest Zborowski, Simon Cooper and Dirk Hohndel for ideas from
+ the Linux distribution.
+
+$XConsortium: FreeBSD.sgml,v 1.3 95/01/23 15:34:41 kaleb Exp $
+Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/FreeBSD.sgml,v 3.10 1995/01/28 16:01:28 dawes Exp $
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/READ.FreeBSD,v 3.12 1995/01/28 16:19:37 dawes Exp $
diff --git a/release/sysinstall/help/configure.hlp b/release/sysinstall/help/configure.hlp
new file mode 100644
index 0000000..49980d4
--- /dev/null
+++ b/release/sysinstall/help/configure.hlp
@@ -0,0 +1,14 @@
+This menu allows you to configure your system after the installation
+process is complete. At the minimum, you should probably set the
+system manager's password and the system time zone.
+
+For extra goodies like bash, emacs, pascal, etc., you should look at
+the Packages item in this menu. Currently, the Packages option is
+only useful if you have a CDROM or an existing packages collection
+somewhere in the file system hierarchy where the package management
+tool can locate it. The automatic transfer of packages via FTP is not
+yet supported!
+
+For setting the timezone after the system is installed, type
+``tzsetup''. For more information on the general system
+configuration, see the ``/etc/sysconfig'' file.
diff --git a/release/sysinstall/help/da_DK.ISO8859-1/README b/release/sysinstall/help/da_DK.ISO8859-1/README
new file mode 100644
index 0000000..42b16ae
--- /dev/null
+++ b/release/sysinstall/help/da_DK.ISO8859-1/README
@@ -0,0 +1,98 @@
+ -------------------------------------------
+ FreeBSD 2.0.5 --- RELEASE Versionen , ,
+ ------------------------------------------- /( )`
+ \ \___ / |
+Velkommen til 2.0.5 releasen af FreeBSD. 2.0.5 er /- _ `-/ '
+en mellem release af FreeBSD, der udfylder det (/\/ \ \ /\
+tidsmæssigt store hul mellem 2.0R (fra november / / | ` \
+'94) og 2.1R, som kommer i slutningen af juli O O ) / |
+'95. FreeBSD 2.0.5 indeholder mange væsentlige `-^--'`< '
+forbedringer i forhold til 2.0R. 2.0.5 er (_.) _ ) /
+væsentligt mere stabil, indeholder adskillige `.___/` /
+nye ting, og har et væsentligt forbedret `-----' /
+installationsprogram. Release noterne <----. __ / __ \
+indeholder flere detaljer om nyhederne <----|====O)))==) \) /====
+i FreeBSD 2.0.5! <----' `--' `.__,' \
+ | |
+ \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+
+Hvad er FreeBSD? FreeBSD er et operativsystem baseret på 4.4 BSD Lite,
+og kører på Intel, Cyrix eller NexGen "x86" baseret PC hardware. FreeBSD
+understøtter en bred vifte af PC udstyr og PC konfigurationer. Det kan
+bruges til alt fra softwareudvikling til at udbyde Internet opkobling.
+Den travleste maskine på nettet - ftp.cdrom.com - er en FreeBSD maskine.
+
+Denne release af FreeBSD indeholder alt, hvad du behøver for at lave et
+sådant system, samt fuld kildetekst til det hele. Med kildeteksten
+installeret kan du bogstaveligt talt rekompilere hele systemet fra bunden
+med een komando. Dette er ideelt for studerende, forskere samt folk, der
+blot ønsker at se, hvordan det hele hænger sammen.
+
+En stor samling tredje parts software (kaldet "the ports collection")
+medfølger ligeledes, således at det er enkelt for dig at få og installere
+alle dine favorit UNIX programmer sammen med FreeBSD. Over 270 programmer
+fra editorer over programmeringssprog til grafikprogrammer gør FreeBSD til
+et stærkt og altomfattende system, der ligger på linje med mange store
+workstations med hensyn til brugbarhed og styrke.
+
+
+Hvis du ønsker mere dokumentation til systemet, vil vi anbefale, at du
+køber 4.4BSD dokumentationen ("the 4.4BSD Document Set") fra O'Reilly
+Associates og USENIX Association (ISBN 1-56592-082-1). Vi har ingen
+forbindelse til O'Reilly, vi er blot tilfredse kunder!
+
+Det vil være en god ide at læse hardware guiden *før* du fortsætter med
+installationen. At konfigurere en PC til at køre andet end DOS/Windows
+(som egentlig ikke stiller nogen særlige krav til den underliggende
+hardware), er i praksis væsentligt sværere end det ser ud til, og hvis du
+mener at forstå PCere, så har du tydeligvis ikke anvendt dem længe nok :-)
+Denne guide vil give dig nogle tips til at konfigurere din hardware, og
+hvilke symptomer du skal holde øje med i tilfælde af problemer. Guiden
+er tilgængelig i dokumentations menuen på FreeBSD boot disketten.
+
+BEMÆRK: Selvom gruppen bag FreeBSD har gjort sit bedste for at forhindre
+datatab, så er der stadig en reel mulighed for at DU KOMMER TIL AT SLETTE
+HELE DIN HARDDISK under installationen. Lad være med at fortsætte til den
+endelige FreeBSD installations-menu medmindre at du har lavet en sikkerheds-
+kopi af alle vigtige data (det er også en god ide at check-læse sikkerheds-
+kopien). Dette er ikke for sjov, vi er dybt seriøse på dette punkt.
+
+Tekniske kommentarer til denne release sendes (på engelsk!) til:
+
+ hackers@FreeBSD.org
+
+
+Fejl-rapporter bør sendes ved hjælp af `send-pr' kommandoen, hvis du fik
+installeret systemet. Ellers sendes de (ligeledes på engelsk) til:
+
+ bugs@FreeBSD.org
+
+Husk at gøre opmærksom på HVILKEN VERSION af FreeBSD du kører i alle fejl-
+rapporter.
+
+Generelle spørgsmål kan (på engelsk) sendes til:
+
+ questions@FreeBSD.org
+
+Vær venligst tålmodig, hvis dine spørgsmål ikke bliver besvaret umiddelbart.
+Dette er en specielt travl tid for os, og alle vores (frivillige) resourcer
+bliver udnyttet til grænsen. Alle fejl-rapporter, der bliver sendt med
+send-pr kommandoen, bliver logget og holdt øje med i vores fejl database,
+og du vil blive holdt informeret om alle ændringer af status for fejlen
+gennem hele fejlens levetid. Det samme gælder for ønsker om forbedringer.
+
+Vores WEB adresse - http://www.freebsd.org - er ligeledes et godt sted at
+kigge efter opdateret information, og giver flere faciliteter for avanceret
+dokumentation. Du kan benytte BSDI versionen af Netscape til at køre World
+Wide Web direkte fra FreeBSD.
+
+Du kan også kigge i /usr/share/FAQ og /usr/share/doc efter yderligere
+information om systemet.
+
+
+Tak for at du tog dig tid til at læse alt dette. Vi håber oprigtigt at
+du får glæde af denne release af FreeBSD!
diff --git a/release/sysinstall/help/da_DK.ISO8859-1/configure.hlp b/release/sysinstall/help/da_DK.ISO8859-1/configure.hlp
new file mode 100644
index 0000000..b698b6d
--- /dev/null
+++ b/release/sysinstall/help/da_DK.ISO8859-1/configure.hlp
@@ -0,0 +1,16 @@
+Denne menu lader dig foretage små ændringer af konfigurationen,
+efter at systemet er installeret. Som et minimum bør du sætte
+password'et for system operatøren og systemets tidszone.
+
+For at installere ekstra software såsom bash, emacs, pascal etc.
+bør du kigge i Packages objektet i denne menu. Bemærk at for
+nærværende er dette kun reelt nyttigt, hvis du har en CD-ROM eller
+en eksisterende pakke samling et sted i dit filsystem, hvor pakke
+administrator programmet kan se den. Automatisk overførsel af
+pakker via FTP er endnu ikke supporteret.
+
+Hvis du ønsker at bruge pakke installations programmet efter at
+du har forladt system installationen, så hedder kommandoen
+``pkg_manage''. Hvis du vil sætte tidszonen - tast ``tzsetup''.
+Se ``/etc/sysconfig'' filen for mere information om den generelle
+system konfiguration.
diff --git a/release/sysinstall/help/da_DK.ISO8859-1/language.hlp b/release/sysinstall/help/da_DK.ISO8859-1/language.hlp
new file mode 100644
index 0000000..e7464c6
--- /dev/null
+++ b/release/sysinstall/help/da_DK.ISO8859-1/language.hlp
@@ -0,0 +1,13 @@
+Benyt denne menu til at vælge dit foretrukne sprog. For nærværende
+vil dette kun sætte default sproget, for de forskellige hjælpefiler
+der vises.
+
+I senere udgaver vil dette også ændre opsætningen/udlægningen af
+tastaturet, skærm karakter-sæt, NLS opsætning (sysinstall vil selv
+benytte tekst kataloger, således at alle menuer er på det ønskede sprog)
+og implementere andre I18N funktioner for at imødekomme diverse standarder.
+
+Indtil disse forbedringer er lavet, vil du sikkert finde, at det er lettere
+at ændre /etc/sysconfig filen i hånden, når systemet er fuldt installeret.
+Der er kommentarer i filen, som beskriver præsis, hvad der skal ændres, samt
+eksempler på enkelte eksisterende ikke engelske opsætninger.
diff --git a/release/sysinstall/help/da_DK.ISO8859-1/usage.hlp b/release/sysinstall/help/da_DK.ISO8859-1/usage.hlp
new file mode 100644
index 0000000..fd242f1
--- /dev/null
+++ b/release/sysinstall/help/da_DK.ISO8859-1/usage.hlp
@@ -0,0 +1,56 @@
+BRUG AF DETTE SYSTEM
+====================
+
+TAST FUNKTION
+---- --------
+PIL OP Flyt til foregående objekt (eller op, i et tekstfelt).
+PIL NED Flyt til næste objekt (eller ned, i et tekstfelt).
+TAB Flyt til næste objekt eller gruppe.
+HØJRE PIL Flyt til næste objekt eller gruppe (det samme som TAB).
+SHIFT-TAB Flyt til foregående objekt eller gruppe.
+VENSTRE PIL Flyt til foregående objekt eller gruppe (det samme som
+ SHIFT-TAB).
+RETUR Vælg objekt.
+PAGE UP Gå en side op, i et tekstfelt.
+PAGE DOWN Gå en side ned, i et tekstfelt.
+MELLEMRUM I en "radio" eller flervalgs menu, skift status for det
+ nuværende objekt.
+F1 Hjælp (i skærme, der har denne funktionalitet).
+
+Hvis du også ser små "^(-)" eller "v(+)" symboler i kanten af en menu, betyder
+det, at der er flere linjer ovenover eller nedenunder de nuværende, som ikke
+vises (fordi der ikke er nok plads på skærmen). Ved hjælp af pil-op og pil-ned
+kan menuen rulles op og ned. Når et af symbolerne forsvinder, betyder det at
+du er i toppen (eller bunden) af menuen.
+
+I tekstfelter vil mængden af tekst over den nuværende position blive vist som
+en procentdel i det nedre højre hjørne. 100% betyder at du er i bunden af
+feltet.
+
+Valg af OK i en menu vil vælge/bekræfte det som menuen omhandler.
+Valg af Cancel vil afbryde en operation, og generelt returnere dig til den
+foregående menu.
+
+
+SPECIAL-FUNKTIONER
+==================
+
+Det er muligt at vælge et objekt i en menu ved at taste den første karakter
+af navnet (hvis unikt). Disse "accelerator" karakterer vil være specielt
+fremhævet i objekt navnet.
+
+Konsol driveren indeholder en buffer, der gør det muligt at bladre tilbage
+og se information, der er rullet op over toppen af skærmen. For at aktivere
+denne funktion, tryk på "Scroll Lock" tasten og brug piletasterne eller
+Page Up/Page Down tasterne til at bladre gennem den gemte tekst. Funktionen
+forlades ved igen at trykke på "Scroll Lock" tasten. Denne funktion er mest
+brugbar i forbindelse med sub-shells og andre specialfunktioner, der ikke
+bruger menuer.
+
+Når systemet er fuldt installeret og kører i "multi-user" tilstand, vil du
+bemærke, at du har flere "virtuelle konsoller", der kan benyttes til at have
+flere aktive sessioner samtidigt. Brug ALT-F<n> til at skifte mellem dem
+(hvor `F<n>' er den funktionstast, der svarer til den skærm, som du ønsker
+at se). Systemet er standard installeret med 3 virtuelle konsoller. Du kan
+lave flere ved at editere /etc/ttys filen når systemet er oppe (maximum er
+12).
diff --git a/release/sysinstall/help/da_DK.ISO_8859-1/README b/release/sysinstall/help/da_DK.ISO_8859-1/README
new file mode 100644
index 0000000..42b16ae
--- /dev/null
+++ b/release/sysinstall/help/da_DK.ISO_8859-1/README
@@ -0,0 +1,98 @@
+ -------------------------------------------
+ FreeBSD 2.0.5 --- RELEASE Versionen , ,
+ ------------------------------------------- /( )`
+ \ \___ / |
+Velkommen til 2.0.5 releasen af FreeBSD. 2.0.5 er /- _ `-/ '
+en mellem release af FreeBSD, der udfylder det (/\/ \ \ /\
+tidsmæssigt store hul mellem 2.0R (fra november / / | ` \
+'94) og 2.1R, som kommer i slutningen af juli O O ) / |
+'95. FreeBSD 2.0.5 indeholder mange væsentlige `-^--'`< '
+forbedringer i forhold til 2.0R. 2.0.5 er (_.) _ ) /
+væsentligt mere stabil, indeholder adskillige `.___/` /
+nye ting, og har et væsentligt forbedret `-----' /
+installationsprogram. Release noterne <----. __ / __ \
+indeholder flere detaljer om nyhederne <----|====O)))==) \) /====
+i FreeBSD 2.0.5! <----' `--' `.__,' \
+ | |
+ \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+
+Hvad er FreeBSD? FreeBSD er et operativsystem baseret på 4.4 BSD Lite,
+og kører på Intel, Cyrix eller NexGen "x86" baseret PC hardware. FreeBSD
+understøtter en bred vifte af PC udstyr og PC konfigurationer. Det kan
+bruges til alt fra softwareudvikling til at udbyde Internet opkobling.
+Den travleste maskine på nettet - ftp.cdrom.com - er en FreeBSD maskine.
+
+Denne release af FreeBSD indeholder alt, hvad du behøver for at lave et
+sådant system, samt fuld kildetekst til det hele. Med kildeteksten
+installeret kan du bogstaveligt talt rekompilere hele systemet fra bunden
+med een komando. Dette er ideelt for studerende, forskere samt folk, der
+blot ønsker at se, hvordan det hele hænger sammen.
+
+En stor samling tredje parts software (kaldet "the ports collection")
+medfølger ligeledes, således at det er enkelt for dig at få og installere
+alle dine favorit UNIX programmer sammen med FreeBSD. Over 270 programmer
+fra editorer over programmeringssprog til grafikprogrammer gør FreeBSD til
+et stærkt og altomfattende system, der ligger på linje med mange store
+workstations med hensyn til brugbarhed og styrke.
+
+
+Hvis du ønsker mere dokumentation til systemet, vil vi anbefale, at du
+køber 4.4BSD dokumentationen ("the 4.4BSD Document Set") fra O'Reilly
+Associates og USENIX Association (ISBN 1-56592-082-1). Vi har ingen
+forbindelse til O'Reilly, vi er blot tilfredse kunder!
+
+Det vil være en god ide at læse hardware guiden *før* du fortsætter med
+installationen. At konfigurere en PC til at køre andet end DOS/Windows
+(som egentlig ikke stiller nogen særlige krav til den underliggende
+hardware), er i praksis væsentligt sværere end det ser ud til, og hvis du
+mener at forstå PCere, så har du tydeligvis ikke anvendt dem længe nok :-)
+Denne guide vil give dig nogle tips til at konfigurere din hardware, og
+hvilke symptomer du skal holde øje med i tilfælde af problemer. Guiden
+er tilgængelig i dokumentations menuen på FreeBSD boot disketten.
+
+BEMÆRK: Selvom gruppen bag FreeBSD har gjort sit bedste for at forhindre
+datatab, så er der stadig en reel mulighed for at DU KOMMER TIL AT SLETTE
+HELE DIN HARDDISK under installationen. Lad være med at fortsætte til den
+endelige FreeBSD installations-menu medmindre at du har lavet en sikkerheds-
+kopi af alle vigtige data (det er også en god ide at check-læse sikkerheds-
+kopien). Dette er ikke for sjov, vi er dybt seriøse på dette punkt.
+
+Tekniske kommentarer til denne release sendes (på engelsk!) til:
+
+ hackers@FreeBSD.org
+
+
+Fejl-rapporter bør sendes ved hjælp af `send-pr' kommandoen, hvis du fik
+installeret systemet. Ellers sendes de (ligeledes på engelsk) til:
+
+ bugs@FreeBSD.org
+
+Husk at gøre opmærksom på HVILKEN VERSION af FreeBSD du kører i alle fejl-
+rapporter.
+
+Generelle spørgsmål kan (på engelsk) sendes til:
+
+ questions@FreeBSD.org
+
+Vær venligst tålmodig, hvis dine spørgsmål ikke bliver besvaret umiddelbart.
+Dette er en specielt travl tid for os, og alle vores (frivillige) resourcer
+bliver udnyttet til grænsen. Alle fejl-rapporter, der bliver sendt med
+send-pr kommandoen, bliver logget og holdt øje med i vores fejl database,
+og du vil blive holdt informeret om alle ændringer af status for fejlen
+gennem hele fejlens levetid. Det samme gælder for ønsker om forbedringer.
+
+Vores WEB adresse - http://www.freebsd.org - er ligeledes et godt sted at
+kigge efter opdateret information, og giver flere faciliteter for avanceret
+dokumentation. Du kan benytte BSDI versionen af Netscape til at køre World
+Wide Web direkte fra FreeBSD.
+
+Du kan også kigge i /usr/share/FAQ og /usr/share/doc efter yderligere
+information om systemet.
+
+
+Tak for at du tog dig tid til at læse alt dette. Vi håber oprigtigt at
+du får glæde af denne release af FreeBSD!
diff --git a/release/sysinstall/help/da_DK.ISO_8859-1/configure.hlp b/release/sysinstall/help/da_DK.ISO_8859-1/configure.hlp
new file mode 100644
index 0000000..b698b6d
--- /dev/null
+++ b/release/sysinstall/help/da_DK.ISO_8859-1/configure.hlp
@@ -0,0 +1,16 @@
+Denne menu lader dig foretage små ændringer af konfigurationen,
+efter at systemet er installeret. Som et minimum bør du sætte
+password'et for system operatøren og systemets tidszone.
+
+For at installere ekstra software såsom bash, emacs, pascal etc.
+bør du kigge i Packages objektet i denne menu. Bemærk at for
+nærværende er dette kun reelt nyttigt, hvis du har en CD-ROM eller
+en eksisterende pakke samling et sted i dit filsystem, hvor pakke
+administrator programmet kan se den. Automatisk overførsel af
+pakker via FTP er endnu ikke supporteret.
+
+Hvis du ønsker at bruge pakke installations programmet efter at
+du har forladt system installationen, så hedder kommandoen
+``pkg_manage''. Hvis du vil sætte tidszonen - tast ``tzsetup''.
+Se ``/etc/sysconfig'' filen for mere information om den generelle
+system konfiguration.
diff --git a/release/sysinstall/help/da_DK.ISO_8859-1/language.hlp b/release/sysinstall/help/da_DK.ISO_8859-1/language.hlp
new file mode 100644
index 0000000..e7464c6
--- /dev/null
+++ b/release/sysinstall/help/da_DK.ISO_8859-1/language.hlp
@@ -0,0 +1,13 @@
+Benyt denne menu til at vælge dit foretrukne sprog. For nærværende
+vil dette kun sætte default sproget, for de forskellige hjælpefiler
+der vises.
+
+I senere udgaver vil dette også ændre opsætningen/udlægningen af
+tastaturet, skærm karakter-sæt, NLS opsætning (sysinstall vil selv
+benytte tekst kataloger, således at alle menuer er på det ønskede sprog)
+og implementere andre I18N funktioner for at imødekomme diverse standarder.
+
+Indtil disse forbedringer er lavet, vil du sikkert finde, at det er lettere
+at ændre /etc/sysconfig filen i hånden, når systemet er fuldt installeret.
+Der er kommentarer i filen, som beskriver præsis, hvad der skal ændres, samt
+eksempler på enkelte eksisterende ikke engelske opsætninger.
diff --git a/release/sysinstall/help/da_DK.ISO_8859-1/usage.hlp b/release/sysinstall/help/da_DK.ISO_8859-1/usage.hlp
new file mode 100644
index 0000000..fd242f1
--- /dev/null
+++ b/release/sysinstall/help/da_DK.ISO_8859-1/usage.hlp
@@ -0,0 +1,56 @@
+BRUG AF DETTE SYSTEM
+====================
+
+TAST FUNKTION
+---- --------
+PIL OP Flyt til foregående objekt (eller op, i et tekstfelt).
+PIL NED Flyt til næste objekt (eller ned, i et tekstfelt).
+TAB Flyt til næste objekt eller gruppe.
+HØJRE PIL Flyt til næste objekt eller gruppe (det samme som TAB).
+SHIFT-TAB Flyt til foregående objekt eller gruppe.
+VENSTRE PIL Flyt til foregående objekt eller gruppe (det samme som
+ SHIFT-TAB).
+RETUR Vælg objekt.
+PAGE UP Gå en side op, i et tekstfelt.
+PAGE DOWN Gå en side ned, i et tekstfelt.
+MELLEMRUM I en "radio" eller flervalgs menu, skift status for det
+ nuværende objekt.
+F1 Hjælp (i skærme, der har denne funktionalitet).
+
+Hvis du også ser små "^(-)" eller "v(+)" symboler i kanten af en menu, betyder
+det, at der er flere linjer ovenover eller nedenunder de nuværende, som ikke
+vises (fordi der ikke er nok plads på skærmen). Ved hjælp af pil-op og pil-ned
+kan menuen rulles op og ned. Når et af symbolerne forsvinder, betyder det at
+du er i toppen (eller bunden) af menuen.
+
+I tekstfelter vil mængden af tekst over den nuværende position blive vist som
+en procentdel i det nedre højre hjørne. 100% betyder at du er i bunden af
+feltet.
+
+Valg af OK i en menu vil vælge/bekræfte det som menuen omhandler.
+Valg af Cancel vil afbryde en operation, og generelt returnere dig til den
+foregående menu.
+
+
+SPECIAL-FUNKTIONER
+==================
+
+Det er muligt at vælge et objekt i en menu ved at taste den første karakter
+af navnet (hvis unikt). Disse "accelerator" karakterer vil være specielt
+fremhævet i objekt navnet.
+
+Konsol driveren indeholder en buffer, der gør det muligt at bladre tilbage
+og se information, der er rullet op over toppen af skærmen. For at aktivere
+denne funktion, tryk på "Scroll Lock" tasten og brug piletasterne eller
+Page Up/Page Down tasterne til at bladre gennem den gemte tekst. Funktionen
+forlades ved igen at trykke på "Scroll Lock" tasten. Denne funktion er mest
+brugbar i forbindelse med sub-shells og andre specialfunktioner, der ikke
+bruger menuer.
+
+Når systemet er fuldt installeret og kører i "multi-user" tilstand, vil du
+bemærke, at du har flere "virtuelle konsoller", der kan benyttes til at have
+flere aktive sessioner samtidigt. Brug ALT-F<n> til at skifte mellem dem
+(hvor `F<n>' er den funktionstast, der svarer til den skærm, som du ønsker
+at se). Systemet er standard installeret med 3 virtuelle konsoller. Du kan
+lave flere ved at editere /etc/ttys filen når systemet er oppe (maximum er
+12).
diff --git a/release/sysinstall/help/de_DE.ISO8859-1/README b/release/sysinstall/help/de_DE.ISO8859-1/README
new file mode 100644
index 0000000..8ce9c18
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO8859-1/README
@@ -0,0 +1,106 @@
+
+ -----------------------------------------
+ FreeBSD 2.0.5 --- RELEASE Version , ,
+ ----------------------------------------- /( )`
+ \ \___ / |
+Willkommen zum Release 2.0.5 von FreeBSD, einem /- _ `-/ '
+Zwischen-Release von FreeBSD, das eine eine Lücke (/\/ \ \ /\
+füllt zwischen 2.0R (das im Nov. 94 erschien) und / / | ` \
+2.1R, das Ende Juli '95 erscheinen wird, die oft O O ) / |
+beklagt wurde. FreeBSD 2.0.5 enthält wesentliche `-^--'`< '
+Verbesserungen gegenüber 2.0R, deren wichtigste (_.) _ ) /
+eine erhöhte Systemstabilität (wesentlich besser), `.___/` /
+Dutzende neuer Features und ein stark `-----' /
+verbessertes Installationsprogramm <----. __ / __ \
+sind. Die Release Notes enthalten <----|====O)))==) \) /====
+weitere Details bzgl. der Neuheiten <----' `--' `.__,' \
+in FreeBSD 2.0.5. | |
+ \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+
+
+Was ist FreeBSD? FreeBSD ist ein 4.4BSD-Lite-basiertes Betriebssystem für
+Intel, AMD, Cyrix oder NexGen "x86"-PC-Hardware. Es arbeitet mit einer
+großen Anzahl von PC-Peripherie und -Konfigurationen zusammen. Es kann für
+die Software-Entwicklung bis hin zum Anbieten von Internet-Diensten
+eingesetzt werden; der meist genutzte Rechner im Internet, ftp.cdrom.com,
+ist ein FreeBSD-Rechner.
+
+Dieses FreeBSD-Release enthält alles, was man zur Nutzung eines solchen
+Systems braucht; zusätzlich erhält man den kompletten Quellcode. Wenn man
+den Quellcode installiert hat, kann man das ganze Betriebssystem von Grund
+auf mit einem einzigen Befehl übersetzen; dies eignet es in idealer Weise
+für Studenten, Forscher oder einfach Leute, die sehen wollen, wie alles
+funktioniert.
+
+Es gibt ebenfalls eine große Anzahl portierter Dritt-Software (die "ports
+collection"), um die Verfügbarkeit und die Installation traditioneller
+Lieblings-UNIX-Utilities für FreeBSD zu erleichtern. Über 270 Portierun-
+gen, von Editoren über Programmiersprachen bis zu Grafikanwendungen, machen
+FreeBSD zu einem mächtigen und umfassenden Betriebssystem, das keinen
+Vergleich zu dem großer Workstations scheut.
+
+Als weitere Dokumentation zu diesem System empfehlen wir die 4.4BSD-
+Dokumentation von O'Reilly Associates und der USENIX Association, ISBN
+1-56592-082-1. Wir haben nichts mit O'Reilly zu tun, außer daß wir
+zufriedene Kunden sind!
+
+Wir empfehlen, die HARDWARE-ANLEITUNG *vor* jeglicher Fortführung der
+Installation zu lesen. PC-Hardware für irgend etwas anderes als DOS/
+Windows (das keine großen Anforderungen an die Hardware stellt) zu
+konfigurieren, ist schwieriger, als es zunächst aussieht. Und wenn man
+glaubt, PCs zu verstehen, dann hat man diese nur noch nicht lange genug
+benutzt. :) Diese Anleitung gibt einige Tips zur Hardwarekonfiguration und
+sagt, auf welche Symptome man bei Schwierigkeiten achten muß. Die Anlei-
+tung ist im Dokumentations-Menü der FreeBSD-Bootfloppy verfügbar.
+
+VORBEHALT: Obwohl FreeBSD alles versucht, vorhandene Daten gegen versehent-
+lichen Verlust zu schützen, ist es mit dieser Installation mehr als nur
+möglich, DIE GESAMTE FESTPLATTE ZU LÖSCHEN! Bitte nicht mit der endgül-
+tigen Installation von FreeBSD fortfahren, ohne zuerst alle wichtigen Daten
+angemessen gesichert zu haben! Wir empfehlen es eindringlichst!
+
+Technische Kommentare zu diesem Release sollten an:
+
+ hackers@FreeBSD.org
+
+gesandt werden (wenn möglich, in englisch).
+
+Fehlermeldungen sollten bei erfolgreicher Installation mittels des
+`send-pr'-Kommandos, ansonsten an:
+
+ bugs@FreeBSD.org
+
+gesandt werden.
+
+Bitte in jeder Fehlermeldung die genutzte FreeBSD-VERSION nennen!
+
+Allgemeine Fragen sollten an:
+
+ questions@FreeBSD.org
+
+gesandt werden.
+
+Wir bitten um Geduld, wenn die Fragen nicht sofort beantwortet werden -
+dieses sind besonders arbeitsintensive Zeiten für uns, und unsere Resourcen
+(auf freiwilliger Basis) sind oft bis an die Grenzen ausgereizt! Mittels
+send-pr verschickte Fehlermeldungen werden registriert und in unserer
+Datenbank verfolgt. Über Statusänderungen wird über die gesamte Lebensdauer
+des Fehlers (oder der Forderung nach einem Feature) informiert.
+
+Unsere WEB Site, http://www.freebsd.org, ist ebenfalls eine gute Quelle
+für neue Informationen und enthält einige weitere, fortführende Infor-
+mationen. Man kann die BSDI-Version von Netscape zum Browsen (Blättern)
+im World Wide Web direkt aus FreeBSD heraus nutzen.
+
+Wir empfehlen auch in /usr/share/FAQ und /usr/share/doc zu weiteren
+Informationen zum System nachzuschauen.
+
+Wir danken für die Aufmerksamkeit und hoffen, daß dieses Release von
+FreeBSD viel Freude bereitet.
+
+ Jordan Hubbard,
+ für das FreeBSD Projekt
diff --git a/release/sysinstall/help/de_DE.ISO8859-1/RELNOTES b/release/sysinstall/help/de_DE.ISO8859-1/RELNOTES
new file mode 100644
index 0000000..c3d2aa6
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO8859-1/RELNOTES
@@ -0,0 +1,766 @@
+ RELEASE NOTES
+ FreeBSD
+ Release 2.0.5
+
+1. Technischer Überblick
+------------------------
+
+FreeBSD ist eine im Quellcode frei verfügbare Version eines 4.4-Lite-
+basierten Betriebssystems für PC's auf der Basis von Intel-i386/i486/
+Pentium-Prozessoren (oder kompatiblen). Es basiert hauptsächlich auf
+Software der Computer-Gruppe (CSRG) der Universität Kalifornien Berkeley
+mit einigen Erweiterungen aus den Systemen NetBSD, 386BSD und von der
+Free Software Foundation.
+
+Seit der Freigabe unserer Version FreeBSD 2.0 vor etwa 8 Monaten hat sich
+die Leistungsfähigkeit, der Funktionsumfang und die Stabilität von
+FreeBSD dramatisch verbessert. Die umfangreichste Änderung ist das neu
+gefaßte System der virtuellen Speicherverwaltung (VM) mit einem vereinig-
+ten VM/Dateipuffer, wodurch sich nicht nur die Leistungsfähigkeit verbes-
+sert, sondern auch der Mindestspeicherbedarf von FreeBSD reduziert werden
+konnte, so daß auch Konfigurationen mit nur 4 MB Hauptspeicher wieder
+akzeptabel werden können. Unter den weiteren Verbesserungen befinden
+sich volle Unterstützung für NIS sowohl auf Client- als auch Serverseite,
+,,Transaction TCP'', PPP mit automatischer Leitungswahl bei Bedarf, ein
+verbessertes SCSI-Subsystem, anfängliche ISDN-Unterstützung, Treiber für
+FDDI- und "Fast Ethernet"-Adapter (100 MBit/s), verbesserter Unter-
+stützung der Adaptec 2940-SCSI-Adapter (sowohl WIDE- als auch
+Normal-SCSI) sowie viele hunderte Bugfixes.
+
+Zuzüglich zur Basis-Distribution bietet FreeBSD nun eine neue Sammlung
+portierter Software an mit etwa 270 häufig gewünschten Programmen. Die
+Liste der ,,Ports'' reicht dabei von HTTP-(WWW-)Servern, Spielen, Pro-
+grammiersprachen, Editoren und so gut wie allem, was dazwischenliegt.
+Die komplette Port-Sammlung benötigt nun nur noch 10 MB Speicherplatz, da
+alle Ports als ,,Deltas'' gegenüber ihren originalen Quellen ausgedrückt
+werden. Das macht es uns einfacher, die Ports auf dem Laufenden zu
+halten, und es reduziert gegenüber der Ports-Sammlung aus Version 1.0
+drastisch den Speicherbedarf. Um einen Port zu übersetzen, wechselt man
+einfach ins Verzeichnis des gewünschten Ports, tippt ,,make'' ein, und
+läßt das System den Rest vornehmen. Es wird dabei automatisch die komp-
+lette Original-Quelle von der CDROM oder einem lokalen FTP-Server geholt,
+so daß man lediglich hinreichend Plattenplatz benötigt, um die gewünsch-
+ten Ports zu übersetzen. (Fast) jeder Port wird auch als vorübersetztes
+,,Package'' zur Verfügung gestellt, das man mit einem einfachen Kommando
+(pkg_add) installieren kann, wenn man nicht von der originalen Quelle
+übersetzen möchte. All dies ist in der Datei
+ /usr/share/FAQ/Text/ports.FAQ
+genauer beschrieben.
+
+Seit unserer ersten Version FreeBSD 1.0 vor etwa zwei Jahren hat sich
+FreeBSD fast vollständig geändert. Eine neue Portierung wurde vorge-
+nommen, ausgehend vom 4.4-Lite-Code der Universität Berkeley, womit der
+rechtliche Status des Systems einwandfrei geworden ist, einschließlich
+einer ,Absegnung' durch Novell (dem neuen Eigentümer der USL und des
+Warenzeichens UNIX). Die 4.4-Portierung brachte gleichzeitig eine Menge
+neuer Eigenschaften, Dateisysteme und verbesserte Treiber. Mit der
+geklärten Rechtslage haben wir nun allen Grund zur Hoffnung, daß wir ohne
+künftige juristische Querelen auch weiterhin ein Betriebssystem von guter
+Qualität regelmäßig herausgeben können.
+
+FreeBSD 2.0.5 representiert die zweijährige Arbeit eines internationalen
+Entwicklerteams, das viele tausend Mann-Stunden eingebracht hat. Wir
+hoffen sehr, daß es Anklang findet!
+
+Eine Reihe weiterer Dokumente, die während der Installation und im Betrieb
+von FreeBSD hilfreich sein können, befindet sich im Verzeichnis ,,FAQ'',
+entweder in einem installierten System unter /usr/share/FAQ, oder aber in
+der obersten Ebene der CDROM- oder FTP-Distribution, in der ebendiese Datei
+zu finden ist. Ein Überblick der im FAQ-Verzeichnis enthaltenen Dokumen-
+tation befindet sich in der Datei FAQ/Text/ROADMAP.
+
+Eine Liste all derjenigen, die zum Projekt beigetragen haben, verbunden
+mit einer allgemeinen Beschreibung des Projektes selbst, befindet sich in
+der Datei ,,CONTRIB.FreeBSD'' in der Binär-Distribution.
+
+Die Datei ,,REGISTER.FreeBSD'' enthält eine Beschreibung, wie man sich
+beim "Free BSD user counter" registrieren läßt. Dieser Zähler ist für
+ALLE freien BSD-Derivate, nicht nur FreeBSD, und wir legen jedem die
+Anmeldung dort nahe.
+
+Die Kerndistribution von FreeBSD enthält keinen DES-Code, weil dies ihren
+Export außerhalb der USA verhindern würde. Es existiert ein Zusatzpaket,
+das nur in den USA verwendet werden darf und die Programme zusammenfaßt,
+die normalerweise DES benutzen. Alle anderen zusätzlich angebotenen
+Pakete können von jedermann genutzt werden. Eine freie und (aus Sicht
+von außerhalb der USA) exportierbare Distribution für Nicht-US-Benutzer
+existiert aber auch. Sie ist in der FreeBSD-FAQ beschrieben.
+
+Soweit jedoch die Paßwortsicherheit alles ist, was gewünscht wird, und
+kein Bedarf besteht, die verschlüsselten Paßwörter zwischen verschiedenen
+Architekturen (Sun's, DEC-Maschinen usw.) auszutauschen, ist das von
+FreeBSD benutzte, auf einer MD5-Verschlüsselung aufsetzende Sicherheits-
+system völlig ausreichend! Wir sind der Meinung, daß unser standard-
+mäßiges Sicherheitsmodell mehr als ein Ausgleich für DES ist, und das,
+ohne daß wir uns mit ärgerlichen Exportbeschränkungen herumschlagen
+müßten. Es ist einen Versuch wert, für alle außerhalb (oder sogar auch
+innerhalb) der USA! (Anm.: MD5 implementiert keine Verschlüsselung im
+Sinne der amerikanischen Exportbestimmungen, sondern kann ausschließ-
+lich zur Zugangskontrolle verwendet werden. Damit fällt es nicht unter
+die Exportbeschränkungen der USA. -- Jörg)
+
+
+1.1 Was ist neu in 2.0.5?
+-------------------------
+
+Die folgenden Funktionen wurden im Zeitraum zwischen der Freigabe von
+Version 2.0 und dieser Version 2.0.5 entweder hinzugefügt oder grundle-
+gend verbessert. Um eine bessere Kommunikation zu ermöglichen, ist die
+Person (oder die Personen), die für die jeweilige Verbesserung verant-
+wortlich ist, aufgelistet. Jegliche Fragen bezüglich der neuen Funkiona-
+lität sollte zuerst an denjenigen gerichtet werden.
+
+
+KERNEL:
+
+Vereinigter VM/Dateipuffer-Cache
+--------------------------------
+Der Entwurf eines vereinten VM/Dateipuffer-Caches verbessert die gesamte
+Leistungsfähigkeit des Systems erheblich und erlaubt eine Reihe optimier-
+ter Speicherbelegungsstrategien, die vorher unmöglich waren.
+
+Verantwortlich: David Greenman (davidg@FreeBSD.org) and
+ John Dyson (dyson@implode.root.com)
+
+
+Optimierter Hash-Algorithmus für Netzwerk-Protokollsteuerblöcke (PCB's)
+-----------------------------------------------------------------------
+Für Systeme mit einer großen Anzahl aktiver TCP-Verbindungen (z. B.
+WEB- und FTP-Server) wird dadurch die Suche für ein ankommendes Paket
+nach der dazugehörigen Verbindung erheblich beschleunigt.
+
+Verantwortlich: David Greenman (davidg@FreeBSD.org)
+
+
+Optimierung des Dateinamen-Caches
+---------------------------------
+Der Namens-Cache faßt nunmehr alle gleichen Namen im gleichen Speicher-
+block zusammen, so daß z. B. alle ,,..''-Einträge im gleichen Block
+landen. Die Version für das Elternverzeichnis wurde einbezogen, um
+den Hash durcheinanderzubringen, und die Cache-Verwaltung wurde ver-
+bessert, da gerade an diesem Teil gearbeitet wurde.
+
+Verantwortlich: Poul-Henning Kamp (phk@FreeBSD.org)
+ David Greenman (davidg@FreeBSD.org)
+
+
+Weniger einschränkende Konfigurierung von Swap-Bereichen
+--------------------------------------------------------
+Die Notwendigkeit, die Namen der Swap-Geräte in den Kernel zu kompilie-
+ren, wurde beseitigt. ,swapon' akzeptiert numehr jedes Block-Gerät bis
+zur Maximalzahl der in den Kernel konfigurierten Swap-Geräte.
+
+Verantwortlich: Poul-Henning Kamp (phk@FreeBSD.org)
+ David Greenman (davidg@FreeBSD.org)
+
+
+,,Vorverdrahtete'' SCSI-Geräte
+------------------------------
+FreeBSD-Versionen vor 2.0.5 haben die Gerätenummernzuweisung für SCSI-
+Geräte ausschließlich dynamisch vorgenommen in der Reihenfolge, wie die
+Geräte gefunden wurden, so daß infolge Fehlfunktion eines SCSI-Gerätes
+sich möglicherweise die Gerätenummer ändern konnte. Dieses hatte zur
+Folge, daß selbst die Zuordnung der Dateisysteme auf den noch funktio-
+nierenden Geräten nicht mehr möglich war und die Dateisysteme nicht
+gemountet werden konnten. Durch ,,Vorverdrahtung'' ist es jetzt möglich,
+statisch die Zuordnung zwischen Gerätenummern (und damit Gerätenamen) und
+SCSI-Geräten vorzunehmen, wobei die SCSI-ID und die Nummer des SCSI-
+Busses als Basis dienen. Diese Zuordnung wird in der Konfigurations-
+datei des Kernels vorgenommen und ist sowohl in der Manual-Seite scsi(4)
+als auch in der LINT-Beispielkonfiguration dokumentiert.
+
+Verantwortlich: Peter Dufault (dufault@hda.com)
+Betroffene Dateien: sys/scsi/* usr.sbin/config/*
+
+
+Unterstützung für ,,Slices''
+----------------------------
+FreeBSD unterstützt nunmehr die Abstraktion von ,,Slices'' (globalen
+Platten-Partitionen), so daß die Zusammenarbeit mit Partitionen anderer
+Betriebssysteme verbessert wird. Damit ist es FreeBSD möglich, vor-
+handene DOS-Partitionen (ohne weitere Vorkehrungen) mitzunutzen.
+
+Verantwortlich: Bruce Evans (bde@FreeBSD.org)
+Betroffene Dateien: sys/disklabel.h sys/diskslice.h sys/dkbad.h
+ kern/subr_diskslice.c kern/subr_dkbad.c
+ i386/isa/diskslice_machdep.c
+ i386/isa/wd.c scsi/sd.c dev/vn/vn.c
+
+
+Unterstützung für Version 6.0 des OnTrack Disk-Managers
+-------------------------------------------------------
+Es wurde die Möglichkeit geschaffen, Platten zu nutzen, die durch den
+OnTrack Disk-Manager verwaltet werden. Das fdisk-Programm jedoch weiß
+darüber noch nichts, so daß alle Änderungen entweder im Installations-
+programm der Bootdiskette (boot.flp) oder aber im OnTrack Disk-Manager
+aus DOS heraus vorgenommen werden müssen.
+
+Verantwortlich: Poul-Henning Kamp (phk@FreeBSD.org)
+
+
+Bad144 ist wieder da und funktioniert
+-------------------------------------
+Bad144 funktioniert wieder. Die Semantik jedoch hat sich gegenüber
+früher geringfügig geändert. Die Fehlerstellen werden nunmehr relativ
+zur ,,Slice'' gezählt und nicht mehr absolut bezüglich der ganzen
+Platte.
+
+Verantwortlich: Bruce Evans (bde@FreeBSD.org)
+ Poul-Henning Kamp (phk@FreeBSD.org)
+
+
+UNTERSTÜTZUNG NEUER GERÄTE:
+
+ SCSI- und CDROM-Geräte
+
+Matsushita/Panasonic (Creative) CD-ROM-Treiber
+----------------------------------------------
+Die Laufwerke Matsushita/Panasonic CR-562 und CR-563 werden nunmehr
+unterstützt, wenn sie an einen SoundBlaster- oder 100% kompatiblen
+Hostadapter angeschlossen sind. Bis zu vier Hostadapter sind möglich, so
+daß maximal 16 CD-ROM-Laufwerke angeschlossen werden können. Die
+Audio-Funktionen sind ebenfalls unterstützt einschließlich des ,,Karoke
+variable speed playback''.
+
+Verantwortlich: Frank Durda IV bsdmail@nemesis.lonestar.org
+Betroffene Dateien: isa/matcd
+
+
+Adaptec 2742/2842/2940 SCSI-Treiber
+-----------------------------------
+Der originale Treiber für 274X-/284X-Adapter wurde gegenüber der Version
+2.0 beträchtlich geändert. Nunmehr gibt es auch volle Unterstützung der
+2940-Serie sowie der ,,Wide-SCSI''-Modelle dieser Karten. Der Bug in der
+Bus-Arbitrierung (sowie viele weitere) wurde beseitigt, der Treiberprob-
+leme mit schnellen SCSI-Geräten verursacht hat. Es existiert sogar eine
+experimentelle Unterstützung für ,,tagged queuing'' (Kernel-Option
+,,AHC_TAGENABLE''). Weiterhin hat John Aycock den Code für den Sequen-
+cer nunmehr mit einem ,,Berkeley''-Copyright freigegeben, so daß die
+Restriktionen der GPL nicht mehr auf den Treiber zutreffen.
+
+Verantwortlich: Justin Gibbs (gibbs@FreeBSD.org)
+Betroffene Dateien: isa/aic7770.c pci/aic7870.c i386/scsi/*
+ sys/dev/aic7xxx/*
+
+
+NCR5380/NCR53400 SCSI ("ProAudio Spectrum") Treiber
+---------------------------------------------------
+Verantwortlich: Core-Team
+Eingereicht von: Serge Vakulenko (vak@cronyx.ru)
+Betroffene Dateien: isa/ncr5380.c
+
+
+Sony CDROM-Treiber
+------------------
+Verantwortlich: Core-Team
+Eingereicht von: Mikael Hybsch (micke@dynas.se)
+Betroffene Dateien: isa/scd.c
+
+
+ Serielle Geräte
+
+Treiber für SDL Communications Riscom/8 Serial Board
+----------------------------------------------------
+Verantwortlich: Andrey Chernov (ache@FreeBSD.org)
+Betroffene Dateien: isa/rc.c isa/rcreg.h
+
+
+Treiber für Cyclades Cyclom-y Serial Board
+------------------------------------------
+Verantwortlich: Bruce Evans (bde@FreeBSD.org)
+Eingereicht von: Andrew Werple (andrew@werple.apana.org.au) and
+ Heikki Suonsivu (hsu@cs.hut.fi)
+Entnommen aus: NetBSD
+Betroffene Dateien: isa/cy.c
+
+
+Serieller Treiber Cronyx/Sigma sync/async-Geräte
+------------------------------------------------
+Verantwortlich: Core-Team
+Eingereicht von: Serge Vakulenko
+Betroffene Dateien: isa/cronyx.c
+
+
+
+ Netzwerk
+
+Plattenloses Booten
+-------------------
+Das plattenlose Booten wurde in Version 2.0.5 stark verbessert. Das
+Boot-Programm befindet sich in src/sys/i386/boot/netboot und kann sowohl
+von MSDOS aus gestartet als auch in einen EPROM gebrannt werden. Lokales
+Swappen ist ebenfalls möglich. Gegenwärtig werden Ethernet-Karten von
+WD, SMC, 3Com und Novell unterstützt.
+
+
+Treiber für DEC DC21140 ,,Fast Ethernet''-Adapter
+-------------------------------------------------
+Dieser Treiber unterstützt die zahlreichen Netzwerkadapter auf Basis
+des DEC DC21140-Chipsatzes einschließlich der 100 MBit/s DEC-500-XA und
+SMC 9332.
+
+Verantwortlich: Core-Team
+Eingereicht von: Matt Thomas (thomas@lkg.dec.com)
+Betroffene Dateien: pci/if_de.c pci/dc21040.h
+
+Treiber für DEC FDDI (DEFPA/DEFEA)
+----------------------------------
+Verantwortlich: Core-Team
+Eingereicht von: Matt Thomas (thomas@lkg.dec.com)
+Betroffene Dateien: pci/if_pdq.c pci/pdq.c pci/pdq_os.h pci/pdqreg.h
+
+
+Treiber für 3Com 3c505 (Etherlink/+) Karten
+-------------------------------------------
+Verantwortlich: Core-Team
+Eingereicht von: Dean Huxley (dean@fsa.ca)
+Entnommen aus: NetBSD
+Betroffene Dateien: isa/if_eg.c
+
+
+Treiber für die Fujitsu-MB86960A-Netzwerkkarten-Familie
+-------------------------------------------------------
+Verantwortlich: Core-Team
+Eingereicht von: M.S. (seki@sysrap.cs.fujitsu.co.jp)
+Betroffene Dateien: isa/if_fe.c
+
+
+Treiber für Intel EtherExpress
+------------------------------
+Verantwortlich: Rodney W. Grimes (rgrimes@FreeBSD.org)
+Betroffene Dateien: isa/if_ix.c isa/if_ixreg.h
+
+
+Treiber für 3Com 3c589
+----------------------
+Verantwortlich: Core-Team
+Eingereicht von: "HOSOKAWA Tatsumi" (hosokawa@mt.cs.keio.ac.jp),
+ Seiji Murata (seiji@mt.cs.keio.ac.jp) and
+ Noriyuki Takahashi (hor@aecl.ntt.jp)
+Betroffene Dateien: isa/if_zp.c
+
+
+Treiber für IBM-Kreditkarten
+----------------------------
+Verantwortlich: Core-Team
+Eingereicht von: "HOSOKAWA Tatsumi" (hosokawa@mt.cs.keio.ac.jp)
+Betroffene Dateien: isa/pcic.c isa/pcic.h
+
+
+Treiber für EDSS1- und 1TR6-ISDN-Interface
+------------------------------------------
+Verantwortlich: Core-Team
+Eingereicht von: Dietmar Friede (dfriede@drnhh.neuhaus.de) and
+ Juergen Krause (jkr@saarlink.de)
+Betroffene Dateien: gnu/isdn/*
+
+
+ Diverse Treiber
+
+Treiber für Joystick
+--------------------
+Verantwortlich: Jean-Marc Zucconi (jmz@FreeBSD.org)
+Betroffene Dateien: isa/joy.c
+
+
+Treiber für National Instruments "LabPC"
+----------------------------------------
+Verantwortlich: Peter Dufault (dufault@hda.com)
+Betroffene Dateien: isa/labpc.c
+
+
+Treiber für WD7000
+------------------
+Verantwortlich: Olof Johansson (offe@ludd.luth.se)
+
+
+Pcvt-Console-Treiber
+--------------------
+Verantwortlich: Jörg Wunsch (joerg@FreeBSD.org)
+Eingereicht von: Hellmuth Michaelis (hm@altona.hamburg.com)
+Betroffene Dateien: isa/pcvt/* usr.sbin/pcvt/*
+
+
+BSD-audio Emulator für den VAT-Treiber
+--------------------------------------
+Verantwortlich: Amancio Hasty (ahasty@FreeBSD.org) and
+ Paul Traina (pst@FreeBSD.org)
+Betroffene Dateien: isa/sound/vat_audio.c isa/sound/vat_audioio.h
+
+
+Treiber für National Instruments AT-GPIB and AT-GPIB/TNT GPIB
+-------------------------------------------------------------
+Verantwortlich: Core-Team
+Eingereicht von: Fred Cawthorne (fcawth@delphi.umd.edu)
+Betroffene Dateien: isa/gpib.c isa/gpib.h isa/gpibreg.h
+
+
+Treiber für Genius GS-4500 Handscanner
+--------------------------------------
+Verantwortlich: Core-Team
+Eingereicht von: Gunther Schadow (gusw@fub46.zedat.fu-berlin.de)
+Betroffene Dateien: isa/gsc.c isa/gscreg.h
+
+
+CORTEX-I Frame Grabber
+----------------------
+Verantwortlich: Core-Team
+Eingereicht von: Paul S. LaFollette, Jr.
+Betroffene Dateien: isa/ctx.c isa/ctxreg.h
+
+
+Video Spigot video capture card
+-------------------------------
+Verantwortlich: Jim Lowe
+
+
+
+1.2 Experimentelle Funktionalität
+---------------------------------
+
+Von den Dateisystemen unionfs und LFS ist bekannt, daß sie in Version
+2.0.5 stark mangelhaft sind. Das ist teilweise alten Bugs geschuldet, zu
+deren Beseitigung wir noch keine Zeit gefunden haben, sowie der noch
+ausstehenden Umstellung auf das neue VM-System. Wir hoffen, daß wir
+diese Probleme ein einer späteren Version von FreeBSD beseitigen können.
+
+FreeBSD kann nunmehr Binaries laufen lassen, die dem iBCS2-Standard ge-
+nügen. (SCO UNIX 3.2.2 & 3.2.4 und ISC 2.2 COFF-Format sind gegenwärtig
+unterstützt.) Der iBCS2-Emulator befindet sich noch in seinen Anfängen,
+aber er funktioniert. Wir haben noch keine erschöpfenden Tests vornehmen
+können (mangels kommerzieller Applikationen), aber beinahe alle Binaries
+für SCO 3.2.2 laufen, so z. B. ein altes INFORMIX-2.10 für SCO. Zur
+Vervollständigung dieses Projektes sind weitere Tests nötig. Es sind
+weiterhin Arbeiten im Gange, um ELF- und XOUT-Programme starten zu kön-
+nen. Der Großteil der ,,system call wrapper'' für SVR4 ist bereits ge-
+schrieben.
+
+FreeBSD implementiert mittlerweile auch genügend Linux-Kompatibilität,
+um DOOM laufen zu lassen! Für eine vollständige Dokumentation, wie
+dies einzurichten ist, kann man im Verzeichnis ,,xperimnt'' (auf dem
+lokalen FTP-Server oder der CDROM) nachsehen.
+
+Verantwortlich: Søren Schmidt (sos) & Sean Eric Fagan (sef)
+Betroffene Dateien: sys/i386/ibcs2/* sowie diverse Kernelmodifikationen
+=======
+
+
+2. Unterstützte Konfigurationen
+-------------------------------
+
+FreeBSD läuft derzeit auf einer großen Vielfalt von ISA-, VLB-, EISA- und
+PCI-Bus-basierten PC's, beginnend beim 386sx bis hin zu Maschinen der
+Pentium-Klasse (obwohl der 386sx nicht zu empfehlen ist). Es gibt Unter-
+stützung für allgemeine IDE- oder ESDI-Laufwerke, verschiedene SCSI-
+Controller, Netzwerk- und serielle Karten.
+
+Nachfolgend eine Liste aller Platten-Controller und Ethernet-Karten, von
+denen gegenwärtig bekannt ist, daß sie mit FreeBSD zusammenarbeiten.
+Andere Konfigurationen können ebenfalls funktionieren, wir haben ledig-
+lich darüber noch nichts erfahren.
+
+
+2.1. Platten-Controller
+
+WD1003 (beliebige MFM/RLL)
+WD1007 (beliebige IDE/ESDI)
+WD7000
+IDE
+ATA
+
+Adaptec 152x Serie ISA SCSI-Controller
+Adaptec 154x Serie ISA SCSI-Controller
+Adaptec 174x Serie EISA SCSI-Controller, Standard und ,,Enhanced'' Mode.
+Adaptec 274X/284X/2940 (Narrow/Wide/Twin) Serie ISA/EISA/PCI SCSI-Controller
+Adaptec AIC-6260- und AIC-6360-basierte Karten, einschließlich AHA-152x
+und SoundBlaster SCSI-Karten.
+
+** Anmerkung: Von den Soundblaster-Karten kann nicht gebootet werden, da
+sie kein BIOS besitzen, was Voraussetzung wäre, um das Boot-Gerät in das
+System-BIOS abzubilden. Sie sind jedoch ohne weiteres benutzbar für
+externe Bandlaufwerke, CDROM's usw. Gleiches trifft auf AIC-6x60-
+basierte Karten ohne Boot-ROM zu. Manche dieser Karten besitzen jedoch
+einen Boot-ROM, was man allgemein an irgendeiner Mitteilung beim System-
+start nach dem Einschalten oder einem Reset erkennen kann. Im Zweifels-
+falle sollte man die Systemdokumentation konsultieren.
+
+[Hinweis: Buslogic nannte sich früher ,,Bustec'']
+Buslogic 545S & 545c
+Buslogic 445S/445c VLB SCSI-Controller
+Buslogic 742A, 747S, 747c EISA SCSI-Controller.
+Buslogic 946c PCI SCSI-Controller
+Buslogic 956c PCI SCSI-Controller
+
+NCR 53C810 und 53C825 PCI SCSI-Controller.
+NCR5380/NCR53400 ("ProAudio Spectrum") SCSI-Controller.
+
+DTC 3290 EISA SCSI-Controller in 1542 Emulations-Mode.
+
+UltraStor 14F, 24F und 34F SCSI-Controller.
+
+Seagate ST01/02 SCSI-Controller.
+
+Future Domain 8xx/950 Serie SCSI-Controller.
+
+Für alle unterstützten SCSI-Controller wird volle Unterstützung für alle
+SCSI-I- und SCSI-II-Peripherie gewährt, einschließlich Platten, Bandlauf-
+werke (auch DAT) und CD-ROM-Laufwerke.
+
+Folgende CD-ROM-Systeme sind derzeit unterstützt:
+
+(cd) SCSI (auch ProAudio Spectrum und SoundBlaster SCSI)
+(mcd) Mitsumi Interface-Karte
+(matcd) Matsushita/Panasonic (Creative) Interface-Karte
+(scd) Sony Interface-Karte
+
+Hinweis: CD-Laufwerke mit IDE-Interface sind derzeit noch nicht unter-
+stützt.
+
+Einige Controller sind hinsichtlich ihrer Kommunikation mit mehr als 16
+MB Hauptspeicher eingeschränkt, da der ISA-Bus nur 24 Bit Adreßraum
+besitzt und folglich nur 16 MB adressieren kann. Dies trifft selbst auf
+einige EISA-Adapter zu (die an sich 32 Bit Adreßraum haben), wenn sie auf
+ISA-Emulation geschaltet werden, weil sie dies dann in *jeder* Hinsicht
+tun. Diese Probleme treten nicht mit IDE-Adaptern auf (da sie kein DMA
+vornehmen), echten EISA-Controllern (wie UltraStor, Adaptec 1742A oder
+Adaptec 2742) sowie den meisten VLB-(Local-Bus)-Controllern. Sowie es
+notwendig wird, belegt das System ,,bounce buffer'', um mit den Adaptern
+zu kommunizieren, so daß es dennoch möglich ist, mehr als 16 MB Haupt-
+speicher problemlos zu nutzen.
+
+
+2.2 Ethernet-Karten
+
+SMC Elite 16 WD8013 Ethernet-Interfaces, sowie die meisten anderen
+WD8003E-, WD8003EBT-, WD8003W-, WD8013W-, WD8003S-, WD8003SBT- and
+WD8013EBT-basierten Clones. SMC Elite Ultra wird ebenfalls unterstützt.
+
+DEC EtherWORKS III NICs (DE203, DE204, and DE205)
+DEC EtherWORKS II NICs (DE200, DE201, DE202, and DE422)
+DEC DC21140 based NICs (SMC???? DE???)
+DEC FDDI (DEFPA/DEFEA) NICs
+
+Fujitsu MB86960A Familie
+
+Intel EtherExpress
+
+Isolan AT 4141-0 (16 bit)
+Isolink 4110 (8 bit)
+
+Novell NE1000, NE2000, und NE2100 Ethernet-Interface.
+
+3Com 3C501 Karten
+
+3Com 3C503 Etherlink II
+
+3Com 3c505 Etherlink/+
+
+3Com 3C507 Etherlink 16/TP
+
+3Com 3C509, 3C579, 3C589 (PCMCIA) Etherlink III
+
+Toshiba Ethernet-Karten
+
+PCMCIA Ethernet-Karten von IBM und National Semiconductor werden
+ebenfalls unterstützt.
+
+
+2.3. Verschiedenes
+
+AST 4-Port serielle Karten unter Nutzung von ,,shared interrupt''.
+
+ARNET 8-Port serielle Karten unter Nutzung von ,,shared interrupt''.
+
+BOCA ATIO66 6-Port serielle Karten unter Nutzung von ,,shared interrupt''.
+
+Cyclades Cyclom-y Serial Board.
+
+STB 4-Port serielle Karten unter Nutzung von ,,shared interrupt''.
+
+Mitsumi (alle Modelle) CDROM-Interface und -Laufwerk.
+
+SDL Communications Riscom/8 Serial Board.
+
+Soundblaster SCSI und ProAudio Spectrum SCSI CDROM-Interface und -Laufwerk.
+
+Matsushita/Panasonic (Creative SoundBlaster) CDROM-Interface und -Laufwerk.
+
+Adlib, SoundBlaster, SoundBlaster Pro, ProAudioSpectrum, Gravis UltraSound
+und Roland MPU-401 Sound-Karten.
+
+FreeBSD unterstützt derzeit KEINE IBM-Microchannel (MCA) Bussysteme,
+jedoch ist die Unterstützung nahe an der Fertigstellung. Einzelheiten
+werden gepostet sowie sich die Situation entwickelt.
+
+
+3. Wie kann man FreeBSD bekommen?
+---------------------------------
+
+FreeBSD kann man in einer Vielzahl von Möglichkeiten erhalten:
+
+1. FTP/Mail
+
+FreeBSD selbst oder all seine wahlfreien Pakete können per ftp von
+,ftp.freebsd.org' bezogen werden -- der offiziellen Vertriebsstelle von
+FreeBSD.
+
+Server, die diese Site spiegeln, sind in der Datei MIRROR.SITES aufge-
+listtet. Es wird darum gebeten, die Distribution von der netzwerkmäßig
+nächstgelegenen Site zu beziehen.
+
+Für diejenigen ohne direkten Internetzugang, aber mit der Möglichkeit,
+eMail zu empfangen, steht der Weg über ,ftpmail@decwrl.dec.com' offen.
+Einfach das Schlüsselwort ,,help'' als Mail dorthin schicken, und man
+bekommt eine genaue Information, wie man Dateien von ,ftp.freebsd.org'
+beziehen kann. Achtung: diese Variante führt zum Versenden einiger *zehn
+Megabyte* über Mail und sollte daher wirklich nur als allerletzte
+Möglichkeit in Betracht gezogen werden!
+
+
+2. CDROM
+
+FreeBSD 2.0.5 kann man auf CDROM bestellen bei:
+
+ Walnut Creek CDROM
+ 4041 Pike Lane, Suite D
+ Concord CA 94520
+ +1-510-674-0783, +1-510-674-0821 (Fax)
+
+Oder über Internet bei orders@cdrom.com oder http://www.cdrom.com.
+Der aktuelle Katalog kann mittels FTP bezogen werden als
+ ftp://ftp.cdrom.com/cdrom/catalog.
+
+Die CDROM kostet US-$ 39.95. Der Versand kostet (pro Bestellung, nicht
+pro CD) US-$ 10.00. Visa, Mastercard und American Express werden in
+Zahlung genommen.
+
+Die CD's können bei Nichtgefallen bedingungslos zurückgegeben werden.
+
+
+Berichten von Bugs, Verbesserungsvorschläge, Einreichen von Code
+----------------------------------------------------------------
+
+Jegliche Fehlerberichte und Beiträge von Code sind herzlich willkommen.
+Fehler sollten in jedem Falle gemeldet werden (nach Möglichkeit mit einem
+,Fix').
+
+Die wünschenswerte Methode zum Einsenden eines Problemberichtes von einer
+Maschine mit Internet-Mailzugang ist die Nutzung des Programmes send-pr.
+Diese Berichte werden sorgfältig von unserem Bugfile-Programm regi-
+striert, und es wird alles getan, so schnell wie möglich darauf zu
+antworten.
+
+Ist es aus irgendeinem Grunde nicht möglich, das Programm ,,send-pr''
+zu nutzen, so können Fehlerberichte auch direkt an
+
+ bugs@FreeBSD.org
+
+gesandt werden. Außerdem steht die Liste
+
+ questions@FreeBSD.org
+
+für allgemeine Fragen zur Verfügung.
+
+(Bitte, wenn möglich, an diese Listen in englischer Sprache schreiben.)
+
+Selbstverständlich sind wir, da all unsere Arbeit auf der Basis von Frei-
+willigkeit geschieht, jederzeit über zusätzliche Helfer erfreut -- es
+gibt jetzt schon mehr zu tun, als wir jemals zu tun in der Lage sein
+werden! Technische Diskussionsbeiträge oder Hilfsangebote können an
+
+ hackers@FreeBSD.org
+
+gesandt werden. Diese Listen verursachen in der Regel ein beträcht-
+liches Mailaufkommen. Für diejenigen, die einen langsamen oder teuren
+Mailanschluß haben und nur an den Ankündigungen wichtiger Ereignisse
+interessiert sind, mag daher
+
+ announce@FreeBSD.org
+
+interessant sein.
+
+
+All diesen Gruppen mit Ausnahme von freebsd-bugs kann jeder Interessierte
+jederzeit beitreten. Eine Mail an ,,MajorDomo@FreeBSD.org'' geschickt,
+mit lediglich dem Schlüsselwort ,,help'' auf einer eigenen Zeile in der
+Nachricht, wird mit der Information über die vorhandenen Listen und
+Teilnahmemöglichkeiten beantwortet. Neben den hier genannten Listen
+existieren noch weitere, die auf bestimmte Interessengruppen ausgerichtet
+sind, so daß die Anfrage durchaus lohnt!
+
+
+6. Würdigungen
+--------------
+
+FreeBSD verkörpert die Arbeit vieler Dutzender, wenn nicht Hunderte,
+Einzelner aus der ganzen Welt, die hart gearbeitet haben, um diese
+Version fertigzustellen. Es wäre sehr schwierig oder schier unmöglich,
+jeden aufzuzählen, der in irgendeiner Form zu FreeBSD beigetragen hat.
+Nichtsdestotrotz soll der Versuch unternommen werden (natürlich in
+alphabetischer Reihenfolge). Sollte ein Name fehlen, so ist dieses
+ausschließlich ein Versehen.
+
+
+Die Computer Systems Research Group (CSRG), U.C. Berkeley.
+
+Bill Jolitz, für seine ersten Arbeiten am 386BSD.
+
+Das FreeBSD-Core-Team
+(in alphabetischer Reihenfolge der Vornamen):
+
+ Andreas Schulz <ats@FreeBSD.org>
+ Andrey A. Chernov <ache@FreeBSD.org>
+ Bruce Evans <bde@FreeBSD.org>
+ David Greenman <davidg@FreeBSD.org>
+ Garrett A. Wollman <wollman@FreeBSD.org>
+ Gary Palmer <gpalmer@FreeBSD.org>
+ Geoff Rehmet <csgr@FreeBSD.org>
+ Jack Vogel <jackv@FreeBSD.org>
+ John Dyson <dyson@FreeBSD.org>
+ Jordan K. Hubbard <jkh@FreeBSD.org>
+ Justin Gibbs <gibbs@FreeBSD.org>
+ Paul Richards <paul@FreeBSD.org>
+ Poul-Henning Kamp <phk@FreeBSD.org>
+ Rich Murphey <rich@FreeBSD.org>
+ Rodney W. Grimes <rgrimes@FreeBSD.org>
+ Satoshi Asami <asami@FreeBSD.org>
+ Søren Schmidt <sos@FreeBSD.org>
+
+Besondere Erwähnung verdienen:
+
+ Walnut Creek CDROM, ohne deren Hilfe und ständige Unterstützung
+ diese Ausgabe nie möglich geworden wäre.
+
+ Dermot McDonnell für seine Bereitstellung eines Toshiba XM3401B
+ CDROM-Laufwerkes.
+
+ Weitere Helfer und Beta-Tester von FreeBSD:
+
+ J.T. Conklin Julian Elischer
+ Frank Durda IV Peter Dufault
+ Sean Eric Fagan Jeffrey Hsu
+ Terry Lambert L Jonas Olsson
+ Chris Provenzano Dave Rivers
+ Guido van Rooij Steven Wallace
+ Atsushi Murai Scott Mace
+ Nate Williams
+
+ sowie alle an der Montana State University für ihre anfängliche
+ Unterstützung.
+
+
+Jordan möchte weiterhin besonders Poul-Henning Kamp und Gary Palmer
+danken, die ihm beide in vielstündiger Arbeit geholfen haben, das neue
+Installationssystem zusammenzustellen. Poul, kürzlich stolzer Vater
+geworden, hat es trotz seines enormen Zeitdrucks immer noch geschafft,
+eine beträchtliche Menge an Arbeit in das Projekt zu investieren. Diese
+Version wäre ohne ihn nicht geworden! Dank Euch Beiden!
+
+Weiterhing geht Dank an all diejenigen, die mitgeholfen haben, besonders
+auch an alle Nichtgenannten. Wir hoffen, daß diese Ausgabe von FreeBSD
+allgemeinen Anklang findet!
+
+ Das FreeBSD Core-Team
+
+$Id: RELNOTES,v 1.2 1995/06/07 05:51:03 jkh Exp $
+=======================================================================
diff --git a/release/sysinstall/help/de_DE.ISO8859-1/configure.hlp b/release/sysinstall/help/de_DE.ISO8859-1/configure.hlp
new file mode 100644
index 0000000..468c1b5
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO8859-1/configure.hlp
@@ -0,0 +1,18 @@
+Mit diesem Menü kann man das System nach der Installation ein wenig
+konfigurieren. Es sollten wenigstens das Paßwort für den System-
+verwalter gesetzt sowie die Zeitzone eingestellt werden.
+
+Für zusätzliche ,,Rosinen'' wie bash, emacs, pascal usw. ist es wohl
+immer notwendig, einen Blick auf den Menüpunkt ,,Packages'' zu werfen.
+Dies ist gegenwärtig nur sinnvoll, wenn man entweder von einer CDROM
+installiert oder aber die Package-Sammlung irgendwo in der Datei-
+systemhierarchie bereits vorhanden ist, so daß die Package-Verwaltung
+darauf zugreifen kann. Eine automatische Übertragung der Packages
+mittels FTP ist derzeit noch nicht vorgesehen.
+
+Soll das Installationsprogramm für die Packages nach Beenden der
+Systeminstallation nochmals aufgerufen werden, der Kommandoname
+dafür ist ,,pkg_manage''. Das Einstellen der Zeitzone geschieht
+mit dem Kommando ,,tzsetup''. Weitere Informationen bezüglich der
+allgemeinen Systemkonfiguration befinden sich in der Datei
+,,/etc/sysconfig''.
diff --git a/release/sysinstall/help/de_DE.ISO8859-1/drives.hlp b/release/sysinstall/help/de_DE.ISO8859-1/drives.hlp
new file mode 100644
index 0000000..41681f0
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO8859-1/drives.hlp
@@ -0,0 +1,29 @@
+Sowie die ernsthafte Absicht besteht, wirklich irgendetwas von FreeBSD
+auf einem Laufwerk zu instellieren, sollte man sich UNBEDINGT VERSICHERN,
+daß die vom Partition-Editor berichtete Geometrie (siehe Installations-
+Menü) auch die richtige für die Kombination aus Laufwerk und Controller
+ist!
+
+IDE-Laufwerke ,,lernen'' oftmals ihre Geometrie über das Setup des BIOS,
+oder (für größere Laufwerke), ihre Geometrie wird entweder vom IDE-
+Controller oder aber einem speziellen Werkzeug, das zur Bootzeit geladen
+wird, wie dem OnTrack Systems Disk- Manager, uminterpretiert (,,remap-
+ped''). In solchen Fällen ist das Erkennen der richtigen Geometrie noch
+schwerer, da man nicht einfach auf dem Laufwerk oder im BIOS-Setup
+nachsehen kann. Dann ist es das Beste, ein DOS zu booten (von der
+Festplatte, nicht von einer Diskette!) und mittels des im tools/-Ver-
+zeichnis auf der FreeBSD-CDROM oder auf einem FTP-Server bereitgestellten
+Programmes ,,pfdisk'' die Geometrie zu vergleichen. Dieses Programm
+berichtet die Geometrie, wie DOS sie sieht, die allgemein als die
+richtige angenommen werden kann.
+
+Falls gar keine DOS-Partition gewünscht wird, kann es sich dennoch als
+sinnvoll erweisen, eine solche (sehr kleine) vorerst einzurichten, um
+sich über die Laufwerksgeometrie zu informieren. Sie kann dann später
+wieder gelöscht werden.
+
+Es ist aber tatsächlich gar nicht so schlecht (ob man's glaubt oder
+nicht), eine bootfähige DOS-Partition auf der Platte zu haben: falls die
+Maschine später instabil wird oder einfach ,,spinnt'', so kann man von da
+aus bequem eines der kommerziell erhältlichen System-Diagnose-Programme
+laufen lassen.
diff --git a/release/sysinstall/help/de_DE.ISO8859-1/install.hlp b/release/sysinstall/help/de_DE.ISO8859-1/install.hlp
new file mode 100644
index 0000000..420eb95
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO8859-1/install.hlp
@@ -0,0 +1,450 @@
+ INSTALLATIONSANLEITUNG FÜR FreeBSD 2.0.5
+
+Diese Beschreibung dokumentiert die Installation von FreeBSD 2.0.5 auf der
+Maschine. Vor dem Beginn ist es ratsam, die Hardware-Anleitung zu studie-
+ren, um sich über die hardware-spezifischen Installationshinweise zu in-
+formieren (Konfiguration der Hardware, worauf man achten sollte usw.).
+
+
+Inhalt:
+=======
+
+1.0 Fragen und Antworten für DOS-Benutzer
+ 1.1 Wie schaffe ich Platz für FreeBSD?
+ 1.2 Kann ich von FreeBSD aus komprimierte DOS-Dateisysteme nutzen?
+ 1.3 Kann ich erweiterte DOS-Partitions nutzen?
+ 1.4 Kann ich DOS-Programme unter FreeBSD laufen lassen?
+
+2.0 Vorbereitung der Installation
+ 2.1 Vor dem Installieren von CDROM
+ 2.2 Vor dem Installieren von Diskette
+ 2.3 Vor dem Installieren von einer DOS-Partition
+ 2.4 Vor dem Installieren von einem QIC- oder SCSI-Bandlaufwerk
+ 2.5 Vor dem Installieren über Netz
+ 2.5.1 Vorbereiten einer NFS-Installation
+ 2.5.2 Vorbereiten einer FTP-Installation
+
+3.0 Installieren von FreeBSD
+
+
+
+1.0 Fragen und Antworten für DOS-Benutzer
+=== =====================================
+
+1.1 Hilfe! Kein Platz mehr! Muß ich nun erst alles löschen?
+
+Wenn auf der Maschine bereits ein DOS installiert ist und nun nur noch
+wenig oder gar kein freier Platz mehr für eine FreeBSD-Installation bleibt,
+so muß man nicht gleich alle Hoffnung aufgeben! Das Hilfsprogramm FIPS,
+das sich im Unterverzeichnis tools/ auf der FreeBSD-CDROM oder auf den
+verschiedenen FreeBSD-FTP-Servern befindet, kann sich hier als sehr nütz-
+lich erweisen.
+
+FIPS erlaubt die Aufteilung einer bestehenden DOS-Partition in zwei Teile,
+wobei der ursprüngliche Inhalt der Originalpartition erhalten bleibt und
+das zweite Stück zum Installieren von FreeBSD verfügbar wird. Man defrag-
+mentiert die Partition zuerst mittels des Programmes ,,DEFRAG'' von DOS 6
+oder mittels der Norton Disk Tools und läßt anschließend FIPS laufen. Das
+Programm erfragt dann den Rest der benötigten Informationen. Danach kann
+man neu booten und FreeBSD in der freigewordenen ,Slice' installieren. Im
+Menüpunkt ,,Distributions'' kann man eine Abschätzung vornehmen, wieviel
+freien Platz man für die gewünschte Installation etwa benötigt.
+
+
+1.2 Kann ich von FreeBSD aus komprimierte DOS-Dateisysteme nehmen?
+
+Nein. Wenn man ein Programm wie Stacker (TM) oder DoubleSpace (TM) be-
+nutzt, so kann FreeBSD nur den Bereich des (DOS-)Dateisystems nutzen, der
+nicht komprimiert worden ist. Der Rest erscheint dann als eine einzige
+große Datei (die Stacker- oder DoubleSpace-Datei). DIESE DATEI UNTER
+KEINEN UMSTÄNDEN LÖSCHEN! Das würde man nachher bereuen!
+
+
+1.3 Kann ich erweiterte DOS-Partitions nehmen?
+
+Diese Möglichkeit bietet FreeBSD 2.0.5 noch nicht, aber sie ist für Version
+2.1 vorgesehen. Die Grundlagen dafür sind bereits geschaffen, es ist nur
+noch 1 % an Restarbeit nötig.
+
+
+1.4 Kann ich DOS-Programme unter FreeBSD laufen lassen?
+
+Noch nicht. Wir hätten das gern irgendwann, aber bisher hat sich noch
+niemand gefunden, der die Arbeit machen würde. Die voranschreitenden
+Arbeiten mit dem Linux-DOSEMU-Programm bringen uns aber näher ans Ziel.
+Diejenigen, die sich an der Arbeit beteiligen möchten, können sich mittels
+einer Mail an hackers@freebsd.org gern melden!
+
+Es gibt jedoch in der ,,Ports collection'' ein nettes Programm namens
+,,pcemu''. Es emuliert einen 8088 sowie ausreichend BIOS-Dienste, um
+DOS-Programme im Textmode laufen zu lassen. Es benötigt ein X-Window-
+System zum Arbeiten.
+
+
+
+2.0 Vorbereitung der Installation
+=== =============================
+
+2.1 Vor dem Installieren von CDROM:
+
+Wenn es sich bei dem CDROM-Laufwerk um eins handelt, was nicht unterstützt
+wird (z. B. ein IDE-CDROM-Laufwerk), dann bitte bei Punkt 2.3 (,,Vor dem
+Installieren von einer DOS-Partition'') weiterlesen.
+
+Es bedarf keiner großen Vorbereitungen, um von einer der FreeBSD-CDROMs von
+Walnut Creek zu installieren. (Andere CDROM-Distributionen können genauso
+einfach zu nutzen zu sein, aber da wir keinerlei Einfluß auf deren Gestal-
+tung haben, können wir darüber nichts aussagen.) Man kann entweder mittels
+des von Walnut Creek gelieferten Scriptes ,,install.bat'' direkt die CDROM
+booten, oder aber man fertigt sich mittels ,,makeflp.bat'' eine Boot-Dis-
+kette an.
+
+Der allereinfachste Weg (von DOS aus) ist, einfach ,,go'' einzutippen. Es
+erscheint ein kleines DOS-Menü, das einen durch die verfügbaren Möglich-
+keiten geleitet.
+
+Will man die Bootdiskette von einem Unix-System aus erstellen, so führt
+vielleicht ein Kommando wie ,,dd if=floppies/boot.flp of=/dev/rfd0'' oder
+aber ,,dd if=floppies/boot.flp of=/dev/floppy'' zum Ziel, abhängig von der
+verwendeten Hardware und dem Betriebssystem.
+
+Sowie man von DOS oder einer Diskette aus gebootet hat, kann man sich im
+Menüpunkt ,,Media menu'' des Installationsprogrammes die CDROM als Medium
+aussuchen und die komplette Distribution davon laden. Es werden keine
+weiteren Medien benötigt.
+
+Nachdem das System installiert ist und man von der Festplatte neu gebootet
+hat, müßte die CD im Verzeichnis /cdrom gemountet sein. Das Hilfsprogramm
+,lndir', das zusammen mit der XFree86-Distribution kommt, kann hier sehr
+nützlich sein: man kann damit einen Baum von symbolischen Links aufbauen,
+der das nicht beschreibbare Medium CDROM auf der Festplatte spiegelt. Als
+kleines Beispiel:
+
+ mkdir /usr/ports
+ lndir /cdrom/ports /usr/ports
+
+Danach kann man dann ,,cd /usr/ports; make'' eintippen, alle Quellen werden
+von der CD gelesen, aber alle Zwischendateien werden unterhalb /usr/ports
+angelegt, das sich zweckmäßig auf einem besser beschreibbaren Medium befin-
+den sollte! :-)
+
+WICHTIGER HINWEIS: Vor Beginn der Installation unbedingt davon überzeugen,
+daß die CDROM im Laufwerk ist, so daß sie beim Test gefunden wird! Dies
+ist auch nötig, wenn man gern die CDROM automatisch während der Installa-
+tion in die Standard-Konfiguration aufgenommen haben möchte (unabhängig
+davon, ob die Installation selbst von CDROM erfolgt). Dies wird sich in
+Version 2.1 ändern, aber gegenwärtig ist dies eine einfache Methode um
+festzustellen, daß die CDROM tatsächlich zugreifbar ist.
+
+Schließlich ist es ein Leichtes, wenn man es anderen ermöglichen will,
+FreeBSD direkt von der CDROM in der eigenen Maschine mittels FTP installie-
+ren zu lassen. Es ist lediglich nach Vollenden der Installation nötig,
+folgende Zeile in die Datei /etc/master.passwd aufzunehmen (bitte mit dem
+Kommando ,,vipw''):
+
+ ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent
+
+Mehr ist nicht nötig. Alle anderen können nun in ihrem Installationsmenü
+,,FTP'' als Medium auswählen und als Servernamen (über den Menüpunkt
+,,Other'') eintragen: ftp://<Adresse dieser Maschine>!
+
+
+2.2 Vor dem Installieren von Diskette
+
+Wenn man von Disketten installieren will, weil z. B. die Hardware nicht
+anders unterstützt wird oder aber für diejenigen, die schwierige Wege
+mögen, so muß man zuerst einige Installationsdisketten vorbereiten.
+
+Die erste Diskette, die man (außer der Bootdiskette) benötigt, ist die
+,,floppies/root.flp''. Sie ist insofern etwas Besonderes, daß es sich
+nicht um eine Diskette mit DOS-Dateisystem handelt, sondern um ein Abbild
+(,image') binärer Daten (genauer gesagt, um ein mit ,gzip' komprimiertes
+cpio-Archiv). Man kann dieses Abbild entweder unter DOS mittels des
+Programmes ,,rawrite.exe'' auf die Diskette bringen, oder unter Unix mit
+dem ,,dd''-Kommando (siehe Bemerkungen in Punkt 2.1 für die Datei
+,,floppies/boot.flp''). Nachdem diese Diskette fertig ist, kann es mit den
+Distributions-Disketten weitergehen.
+
+Man benötigt mindestens so viele 1.44-MB- oder 1.2-MB-Disketten, wie nötig
+sind, um die Dateien im Verzeichnis ,bin' (Binärdistribution) aufzunehmen.
+DIESE Disketten *müssen* DOS-formatiert sein, entweder mit dem Kommando
+,,FORMAT'' in DOS oder dem Dateimanager in Microsoft Windows (TM). Man
+sollte vorformatierten Disketten nicht trauen und sie sicherheitshalber
+nochmals selbst formatieren!
+
+In der Vergangenheit wurden wiederholt Probleme mit mangelhaft formatier-
+ten Datenträgern berichtet, daher hier nochmals obiger Hinweis!
+
+Nach dem Formatieren der Disketten müssen nun die Dateien darauf über-
+tragen werden. Die Distributions-Dateien sind in Stücke zerlegt, von denen
+5 auf eine gewöhnliche 1.44-MB-Diskette passen. Man packt einfach alle
+vorhandenen Dateien auf die Disketten, so viele, wie auf jede draufpassen,
+bis das Ende erreicht ist. Jede Distribution muß dabei in einem eigenen
+Untervezeichnis auf den Disketten abgelegt werden, also z. B.:
+a:\bin\bin.aa, a:\bin\bin.ab, ...
+
+Sowie im Installationsprogramm der Menüpunkt zur Medienauswahl erreicht
+wird, wählt man ,,Floppy'' aus - der Rest wird dann abgefragt.
+
+
+2.3 Vor dem Installieren von einer DOS-Partition
+
+In Vorbereitung der Installation von einer DOS-Partition kopiert man
+einfach alle Dateien der Distribution(en) in ein Verzeichnis, das
+,,FREEBSD'' heißen soll. Um also eine Minimalinstallation von FreeBSD
+vorzunehmen, wobei man die Dateien von der CDROM auf die DOS-Partition
+kopiert:
+
+ C> MD C:\FREEBSD
+ C> XCOPY /S E:\DISTS\BIN C:\FREEBSD
+ C> XCOPY /S E:\FLOPPIES C:\FREEBSD
+
+...in der Annahme, daß auf ,C:' der nötige freie Platz ist und die CDROM
+,E:' genannt wird. Es ist wesentlich, daß auch das Verzeichnis FLOPPIES
+mit kopiert wird, da die Datei ,root.flp' daraus während einer Installation
+von einer DOS-Partition automatisch entnommen wird.
+
+Man kann all die gewünschten ,DISTS' unterhalb ,C:\FREEBSD' plazieren - die
+,BIN'-Distribution ist lediglich das notwendige Minimum.
+
+
+2.4 Vor dem Installieren von einem QIC- oder SCSI-Bandlaufwerk
+
+Die Installation von einem Bandlaufwerk ist wohl die einfachste Variante,
+wenn man keine Online-FTP-Installation oder Installation von CDROM vorneh-
+men kann. Das Installationsprogramm erwartet die Distributions-Dateien
+einfach im tar-Format auf dem Band. Nachdem man also alle interessierenden
+Dateien geholt hat, kann man das Band einfach mit folgenden Kommandos er-
+stellen:
+
+ cd /freebsd/distdir
+ tar cvf /dev/rwt0 (or /dev/rst0) dist1 .. dist2
+
+Das Verzeichnis ,floppies/' muß als eine der ,dist's in obigem Beispiel mit
+angegeben worden sein, da das Installationsprogram vom Band die Datei
+,floppies/root.flp' lesen muß.
+
+Während der Installation muß es auch gewährleistet sein, daß man genügend
+Platz in einem Zwischenverzeichnis besitzt (der Name dafür wird abgefragt),
+um den KOMPLETTEN Inhalt des erzeugten Installationsbandes dort ablegen zu
+können. Da sich Bänder nicht wahlfrei zugreifen lassen, benötigt man
+vorübergehend die gleiche Menge an Plattenplatz zusätzlich, die auch auf
+das Band geschrieben worden ist!
+
+WICHTIGER HINWEIS: Zu Beginn der Installation muß sich das Band bereits im
+Laufwerk befinden, *bevor* man die Bootdiskette startet. Damit wird
+sichergestellt, daß der Test während der Installation das Band auch
+wirklich erkennt.
+
+
+2.5 Vor dem Installieren über Netz
+
+Netzwerkinstallationen kann man über drei verschiedene Kommunikations-
+medien vornehmen:
+
+ Serieller port: SLIP oder PPP
+ Parallelport: PLIP (mittels ,Laplink'-Kabel)
+ Ethernet: mittels Standard-Ethernet-Adapter (einschließlich
+ einiger PCMCIA-Adapter).
+
+SLIP-Unterstützung ist eher primitiv und auf festverdrahtete Verbindungen
+beschränkt (beispielsweise ein serielles Kabel zwischen einem Laptop und
+einem anderen Computer). Die Festverdrahtung ist nötig, da die Installa-
+tion über SLIP derzeit keien Möglichkeiten zum Aufbau einer Wählverbindung
+anbietet; letzteres kann man aber mittels PPP machen, das man ohnehin
+soweit möglich dem SLIP vorziehen sollte.
+
+Bei Benutzung eines Modems ist PPP sicherlich die einzige Chance. Man
+sollte sich rechtzeitig die Informationen des Internet-Dienstanbieters
+bereitlegen, da sie früh innerhalb des Installationsprozesses abge-
+fragt werden. Minimal wird die IP-Adresse des Dienstanbieters sowie
+die eigene benötigt (die aber auch freigelassen werden kann, so daß
+PPP sie mit der Gegenseite aushandelt). Auch ist Kenntnis der ver-
+schiedenen ,,AT''-Kommandos des benutzten Modems nötig, da das Wähl-
+programm für PPP keine Kenntnisse über Modems besitzt.
+
+Falls eine Festverbindung zu einer anderen FreeBSD-Maschine (mit Ver-
+sion 2.0R oder höher) benutzt wird, so kann man auch die Variante mit
+einem ,,Laplink''-Kabel über den Parallelport in Betracht ziehen. Die
+typische Datenrate über einen Parallelport ist um einiges größer als
+das, was sich über serielle Leitungen erzielen läßt; Geschwindigkeiten
+um die 50 KB/s sind nicht ungewöhnlich.
+
+Schließlich ist für eine schnellstmögliche Installation ein Ethernet-
+Adapter natürlich eine gute Variante! FreeBSD unterstützt die meisten
+gängigen Ethernet-Karten, wobei sich im Hardware-Wegweiser (im Menü-
+punkt ,,documentation'' auf der Bootdiskette) eine Tabelle der nötigen
+Einstellungen findet. Bei Nutzung eines der unterstützten PCMCIA-
+Adapter muß sichergestellt sein, daß sie _vor_ dem Einschalten des
+Laptops eingesteckt sind! Leider unterstützt FreeBSD gegenwärtig
+keinen Austausch von PCMCIA-Karten im Betrieb.
+
+Natürlich benötigt man auch noch die IP-Adresse im Netzwerk, die
+,,Netzwerkmaske'' für das gewählte Netzwerk, sowie den Maschinennamen.
+Der lokale Systemverwalter oder Netzwerkverantwortliche kann über
+diese Angaben informieren. Für den Zugriff auf andere Hosts über
+Namen anstatt unhandlicher IP-Adressen ist auch noch die Adresse eines
+Name-Servers und ggf. eines Gateways vonnöten (bei PPP in der Regel
+der Internet-Dienstanbieter). All diese Angaben sollten man _vor_
+Beginn der Installation vom zuständigen System- oder Netzwerkverwalter
+einholen.
+
+Sowie man auf irgendeine Weise eine Netzwerkanbindung aufgebaut hat, kann
+man die Installation über NFS oder FTP fortsetzen.
+
+
+2.5.1 Vorbereiten einer NFS-Installation
+
+ Eine Installation über NFS ist recht einfach: man kopiert die
+ gewünschten FreeBSD-Distributions-Dateien irgendwo auf einen
+ Server und gibt deren Standort in der NFS-Medienauswahl an.
+
+ Falls dieser Server nur Zugriffe über einen ,,privilegierten''
+ Port erlaubt (wie allgemein bein Sun-Workstations üblich), so
+ muß man die entsprechende Option im ,,Options''-Menü setzen,
+ bevor man weitermacht.
+
+ Falls man nur eine schlechte Ethernet-Karte besitzt, die sehr
+ langsam arbeitet, so sollte man ebenfalls die entsprechende
+ Option einschalten.
+
+ Damit eine NFS-Installation funktioniert, muß der Server das
+ Mounten von Unterverzeichnissen erlauben; hat man also beispiels-
+ weise die Distribution von FreeBSD 2.0.5 im Verzeichnis
+ ziggy:/usr/archive/stuff/FreeBSD untergebracht, so muß der Server
+ das direkte Mounten von /usr/archive/stuff/FreeBSD erlauben, nicht
+ nur /usr oder /usr/archive/stuff.
+
+ In FreeBSD's /etc/export-Datei wird dies mittels der Option
+ ``-alldirs'' gesteuert. Andere NFS-Server haben dafür andere
+ Konventionen. Wenn man während der Installation Meldungen vom
+ Server bekommt, die ,,Permission denied'' heißen, so ist dies
+ wahrscheinlich das Problem!
+
+
+2.5.2 Vorbereiten einer FTP-Installation
+
+ Eine Installation über FTP kann man von jedem Server vornehmen, der
+ eine einigermaßen aktuelle Kopie der FreeBSD-Version 2.0.5 gespie-
+ gelt hält. Das Menü ,,FTP sites'' enthält eine gute Auswahl von
+ FTP-Servern aus der ganzen Welt.
+
+ Wenn man von einem anderen Server installieren will, der nicht
+ aufgeführt ist, oder Probleme mit der Konfiguration des Name-
+ Servers hat, so kann man durch Auswahl des Menüpunktes ,,Other'' in
+ diesem Menü auch seine eigene URL eingeben. Da eine URL auch eine
+ numerische IP-Adresse enthalten kann, kann man bei Fehlen eines
+ Name-Servers also auch eingeben:
+
+ ftp://192.216.222.4/pub/FreeBSD/2.0.5-RELEASE
+
+ Wenn man mittels FTP in einer Umgebung installiert, die hinter
+ einem ,,Firewall'' gelegen ist, so sollte man ,,Passive mode'' FTP
+ benutzen (was bereits standardmäßig eingestellt ist). Falls man
+ aus irgendeinem Grunde auf einen Server angewiesen ist, der keinen
+ Passiv-Modus unterstützt, kann man im ,,Options''-Menü stattdessen
+ Aktiv-Modus auswählen.
+
+
+3.0 Installieren von FreeBSD
+--- ------------------------
+
+Nachdem man die entsprechenden Vorbereitungen getroffen hat, sollte die
+Installation von FreeBSD ohne Schwierigkeiten vor sich gehen.
+
+Falls dies doch nicht zutrifft, so hat man vielleicht einen wichtigen
+Hinweis bei der Vorbereitung der Installationsmedien verpaßt (siehe
+Abschnit 2.X) und sollte nochmals dort nachlesen? Im Falle von Hardware-
+problemen (oder wenn FreeBSD gar nicht erst bootet) kann die Hardware-
+Anleitung auf der Boot-Diskette Hinweise zur Problembeseitigung geben.
+
+Die FreeBSD-Bootdiskette enthält alle benötigte Online-Dokumentation, damit
+man sich in der Installation zurechtfindet. Falls dies nicht der Fall ist,
+so hätten wir gern gewußt, an welcher Stelle die Probleme auftauchen! Es
+ist das Ziel von FreeBSD's Installationsprogramm (sysinstall), ausreichend
+selbstdokumentierend zu sein, um langwierige ,,Schritt für Schritt''-
+Anleitungen hinfällig werden zu lassen. Wir werden sicher noch ein wenig
+brauchen, bis dieses Ziel erreicht ist -- aber es ist das Ziel!
+
+Unterdessen mag die folgende ,,typische Bootreihenfolge'' ganz nützlich
+sein:
+
+o Die Diskette booten. Nach einer Folge von Boot-Schritten, die je nach
+ der Hardware zwischen 30 Sekunden und 3 Minuten dauern kann, sollte das
+ Anfangsmenü erscheinen. Wenn die Diskette gar nicht bootet oder das
+ System während des Bootens hängenbleibt, sollte man den Abschnitt mit
+ ,,Fragen und Antworten'' in der Hardware-Anleitung hinsichtlich möglicher
+ Ursachen konsultieren.
+
+o Taste F1 drücken. Es folgen einige grundlegende Hinweise über die
+ Nutzung des Menüsystems. Alle diejenigen, die dieses Menüsystem noch
+ nicht zuvor genutzt haben, sollten sich das BITTE sorgfältig durchlesen!
+
+o Für diejenigen, die Englisch nicht als Muttersprache sprechen, sei die
+ Auswahl einer anderen Sprache im Menüpunkt ,,Language'' empfohlen (was ja
+ ganz offensichtlich geschehen ist :). Ein Teil der Dokumentation wird
+ dann in der gewählten Sprache anstatt in Englisch angeboten.
+
+o Auswahl der Sonderwünsche im Menüpunkt ,,Options''.
+
+o ,,Proceed'' anwählen, um mit dem Istallationsmenü fortzusetzen.
+
+Das Installationsmenü:
+
+o Man kann in diesem Menü alles vornehmen, ohne am bestehenden System
+ irgendetwas zu ändern, solange man nicht ,,Commit'' auswählt; erst damit
+ werden alle angeforderten Änderungen auch tatsächlich ausgeführt.
+
+ Wenn an irgendeiner Stelle Probleme auftauchen, so bringt die Taste F1
+ normalerweise die richtigen Hinweise für das Bild, in dem man sich gerade
+ befindet.
+
+ o Der erste Schritt ist normalerweise ,Partition', bei dem man
+ die von FreeBSD zu nutzenden Plattenlaufwerke auswählen kann.
+
+ o Danach kann man mit dem ,Label'-Editor den für FreeBSD vorge-
+ sehenen Platz aufteilen oder aber eine nicht-FreeBSD-Partition
+ (z. B. DOS) ins System einbinden.
+
+ o Danach wählt man im ,Media'-Menü das gewünschte Installations-
+ medium. Sowie alle benötigten Informationen für die Installation
+ beisammen sind, beendet sich dieses Menü selbst; andernfalls
+ werden weitere Fragen gestellt (abhängig vom Medium).
+
+ o Schließlich bestätigt man mit dem ,Commit'-Menüpunkt auf einmal
+ alle ausgewählten Aktionen (ohne diese Bestätigung wurde noch
+ nichts auf die Festplatte geschrieben). Es werden alle Infor-
+ mationen über neue oder geänderte Partitions geschrieben, die
+ Dateisysteme angelegt oder zerstörungsfrei neu markiert (abhängig
+ von der ,,newfs''-Markierung im Label-Editor) und schließlich
+ alle gewünschten Distributions ausgepackt.
+
+ o Über das ,Configure'-Menü kann man die FreeBSD-Installation
+ weiter konfigurieren. Man kann hier menügesteuert die einzelnen
+ Vorgabewerte für Systemparameter einstellen. Einige Punkte, wie
+ z. B. die Netzwerkparameter, sind besonders wesentlich, wenn man
+ von CDROM/Band/Diskette installiert hat und daher den Netzwerk-
+ zugang noch nicht konfiguriert hat (sofern vorhanden). Wenn man
+ hier bereits das Netzwerk richtig konfiguriert, so hat man schon
+ beim ersten Neustart von der Festplatte einen funktionierenden
+ Zugriff zum Netz.
+
+ o Mittels ,Exit' gelangt man wieder zum Hauptmenü.
+
+
+An dieser Stelle hat man seine Arbeit mit dem sysinstall-Programm beendet.
+Man kann schließlich ,Quit' anwählen. Wurde sysinstall als Erstinstalla-
+tionsprogramm benutzt (bevor das System also eingerichtet war), so erfolgt
+an dieser Stelle ein Neustart. Hatte man einen Boot-Manager ausgewählt, so
+erscheint dann ein kleines Boot-Menü mit den Zeichen ,,F?'' als Eingabe-
+aufforderung. Nachdem man die entsprechende Funktionstaste für FreeBSD
+gedrückt hat (wird angezeigt), sollte FreeBSD von der Festplatte aus ge-
+startet werden.
+
+Falls dies aus irgendeinem Grunde nicht klappt, sei wiederum auf den
+Abschnitt ,,Fragen und Antworten'' in der Hardware-Anleitung verwiesen!
+
+ Jordan (für die Anleitung)
+ Jörg (für die deutsche Übersetzung)
+
+---- Ende der Installations-Anleitung ---
diff --git a/release/sysinstall/help/de_DE.ISO8859-1/language.hlp b/release/sysinstall/help/de_DE.ISO8859-1/language.hlp
new file mode 100644
index 0000000..cd7a834
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO8859-1/language.hlp
@@ -0,0 +1,17 @@
+In diesem Menü kann man die Vorzugssprache einstellen. Vorerst wird
+damit nur die Sprache ausgewählt, in der die diversen Hilfedateien
+angezeigt werden.
+
+In späteren Versionen werden davon auch das Tastaturlayout, der Bild-
+schirmzeichensatz und verschiedene NLS-Einstellungen betroffen sein
+(sysinstall selbst wird dann auch ,,message catalogs'' benutzen, so
+daß alle Menüs automatisch in der richtigen Sprache erscheinen). Auch
+sind weitere Internationalisierungsmaßnahmen vorgesehen, so daß die
+entsprechenden Standards eingehalten werden.
+
+Solange diese Verbesserungen noch nicht vorgenommen sind, mag es
+einfacher erscheinen, die Datei ,,/etc/sysconfig'' mit der Hand zu
+editieren, sobald das System erstmals vollständig installiert ist.
+Diese Datei enthält eine Anzahl (allerdings englischer) Kommentare,
+die die jeweiligen Änderungen beschreiben, sowie auch einige Beispiele
+nicht-englischer Voreinstellungen.
diff --git a/release/sysinstall/help/de_DE.ISO8859-1/media.hlp b/release/sysinstall/help/de_DE.ISO8859-1/media.hlp
new file mode 100644
index 0000000..a591468
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO8859-1/media.hlp
@@ -0,0 +1,30 @@
+Von den folgenden Medien kann man installieren:
+
+ CDROM - eines der folgenden Laufwerke ist nötig:
+
+ Sony CDU 31/33A
+ Matushita/Panasonic "Sound Blaster" CDROM.
+ Mitsumi FX-001{A-D} (alte nicht-IDE Laufwerke).
+ SCSI - Jedes beliebige Standard-SCSI-CDROM-Laufwerk, das
+ an einen unterstützten Controller angeschlossen ist
+ (siehe auch Hardware-Wegweiser).
+
+ DOS - eine primäre DOS-Partition, auf die die notwendigen
+ FreeBSD-Distribution-Dataien kopiert worden sind (also
+ z. B. (C:\FREEBSD\).
+
+ FS - setzt ein existierendes FreeBSD-System voraus, in dem
+ die Dateien der neuen Distribution abgelegt worden sind.
+
+ Diskette - Entnahme der Distributions-Dateien von einer oder
+ mehreren DOS-formatierten Disketten.
+
+ FTP - Entnahme der Distributions-Dateien von einem anonymen
+ FTP-Server (eine Liste wird angeboten).
+
+ NFS - Einlesen der Distributions-Dateien über einen irgendwo
+ gelegenen NFS-Server (dessen Zugriffsrechte dies natür-
+ lich erlauben müssen!)
+
+ Tape - Einlesen der Distributions-Dateien in ein Zwischenver-
+ zeichnis und Auspacken von dort.
diff --git a/release/sysinstall/help/de_DE.ISO8859-1/network_device.hlp b/release/sysinstall/help/de_DE.ISO8859-1/network_device.hlp
new file mode 100644
index 0000000..1d4e498
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO8859-1/network_device.hlp
@@ -0,0 +1,56 @@
+Eine Netzwerkinstallation kann über eine von drei verschiedenen Arten
+von Verbindungen vorgenommen werden:
+
+ Serielle Ports: SLIP / PPP
+ Parallelport: PLIP (benötigt ein ,,Laplink''-Kabel)
+ Ethernet: von einem Standard-Ethernet-Controller (ein-
+ schließlich einiger PCMCIA-Controller)
+
+Unterstützung für SLIP ist eher primitiv und auf festverdrahtete Ver-
+bindungen beschränkt, wie z. B. eine serielle Leitung zwischen einem
+Laptop und einem anderen PC. Es existiert gegenwärtig keine Möglich-
+keit, eine Wählverbindung über ein Modem herzustellen. Dies kann je-
+doch mittels des PPP-Programmes vorgenommen werden, was soweit möglich
+stets dem SLIP vorgezogen werden sollte. Bei der Auswahl eines
+seriellen Ports wird später die Möglichkeit geboten, die Parameter für
+das slattach-Kommando anzugeben. Es wird davon ausgegangen, daß in
+diesem Moment entweder slattach oder ein anderes geeignetes Kommando
+auf der Gegenseite der Verbindung gestartet worden ist, um die Verbin-
+dung aufzubauen. FreeBSD wird dann über diesen Anschluß installiert,
+wobei die Geschwindigkeit bis zu 115.2 kBaud betragen kann (was die
+empfehlenswerte Geschwindigkeit für eine festverdrahtete Leitung ist).
+
+Bei Benutzung eines Modems ist PPP sicherlich die einzige Chance. Man
+sollte sich rechtzeitig die Informationen des Internet-Dienstanbieters
+bereitlegen, da sie früh innerhalb des Installationsprozesses abge-
+fragt werden. Minimal wird die IP-Adresse des Dienstanbieters sowie
+die eigene benötigt (die aber auch freigelassen werden kann, so daß
+PPP sie mit der Gegenseite aushandelt). Auch ist Kenntnis der ver-
+schiedenen ,,AT''-Kommandos des benutzten Modems nötig, da das Wähl-
+programm für PPP keine Kenntnisse über Modems besitzt.
+
+Falls eine Festverbindung zu einer anderen FreeBSD-Maschine (mit Ver-
+sion 2.0R oder höher) benutzt wird, so kann man auch die Variante mit
+einem ,,Laplink''-Kabel über den Parallelport in Betracht ziehen. Die
+typische Datenrate über einen Parallelport ist um einiges größer als
+das, was sich über serielle Leitungen erzielen läßt; Geschwindigkeiten
+um die 50 KB/s sind nicht ungewöhnlich.
+
+Schließlich ist für eine schnellstmögliche Installation ein Ethernet-
+Adapter natürlich eine gute Variante! FreeBSD unterstützt die meisten
+gängigen Ethernet-Karten, wobei sich im Hardware-Wegweiser (im Menü-
+punkt ,,documentation'' auf der Bootdiskette) eine Tabelle der nötigen
+Einstellungen findet. Bei Nutzung eines der unterstützten PCMCIA-
+Adapter muß sichergestellt sein, daß sie _vor_ dem Einschalten des
+Laptops eingesteckt sind! Leider unterstützt FreeBSD gegenwärtig
+keinen Austausch von PCMCIA-Karten im Betrieb.
+
+Natürlich benötigt man auch noch die IP-Adresse im Netzwerk, die
+,,Netzwerkmaske'' für das gewählte Netzwerk, sowie den Maschinennamen.
+Der lokale Systemverwalter oder Netzwerkverantwortliche kann über
+diese Angaben informieren. Für den Zugriff auf andere Hosts über
+Namen anstatt unhandlicher IP-Adressen ist auch noch die Adresse eines
+Name-Servers und ggf. eines Gateways vonnöten (bei PPP in der Regel
+der Internet-Dienstanbieter). All diese Angaben sollten man _vor_
+Beginn der Installation vom zuständigen System- oder Netzwerkverwalter
+einholen.
diff --git a/release/sysinstall/help/de_DE.ISO8859-1/partition.hlp b/release/sysinstall/help/de_DE.ISO8859-1/partition.hlp
new file mode 100644
index 0000000..90041c0
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO8859-1/partition.hlp
@@ -0,0 +1,85 @@
+Dies ist der DiskLabel-Editor von FreeBSD.
+
+Für Neulinge in dieser Installation ist es zuerst wichtig, FreeBSD's neues
+Prinzip der ,,Slices'' zu verstehen, das auf die Plattenspeicher angewandt
+wird. Es ist nicht sehr schwer. Ein ,,vollständig angegebener Slice-
+Name'', d. h. der Name der Gerätedatei, die unterhalb von /dev angespro-
+chen wird, um mit dem Gerät zu kommunizieren, läßt sich wahlweise in
+3 Teile zerlegen:
+
+ Das erste ist der Name der Platte. In der Annahme, daß ein
+ System zwei SCSI-Platten haben möge, wären das ,sd0' und
+ ,sd1'.
+
+ Das nächste ist die ,,Slice''- (oder ,,primäre Partition''-)
+ Nummer. Wenn sd0 also z. B. zwei solche Partitions hat, eine
+ für FreeBSD und eine für DOS, so ergibt das sd0s1 und sd0s2.
+ Ist dann weiterhin sd1 völlig für FreeBSD reserviert, so hat
+ sie nur die Slice sd1s1.
+
+ Wenn dann weiterhin eine Slice vom FreeBSD-Typ ist, so besitzt
+ diese eine Reihe (verwirrenderweise auch so genannter) ,,Par-
+ titions''. Diese FreeBSD-Partitions bilden die Grundlage für
+ die verschiedenen Dateisysteme oder den Swap-Bereich. Für die
+ genannte hypothetische Maschine könnte das Layout für sd0 etwa
+ so aussehen:
+
+ Name Mountpunkt
+ ---- ----------
+ sd0s1a /
+ sd0s1b <Swap-Bereich>
+ sd0s1e /usr
+
+ Aus historischen Gründen existiert auch noch ein Kurzschluß,
+ eine ,,Kompatibilitäts-Slice'', mit der man einfacher auf die
+ erste FreeBSD-Slice einer Platte zugreifen kann. Damit
+ arbeiten auch die Programme, die mit dem Slice-Schema noch
+ nicht zurechtkommen, wie gehabt. Die Kompatibilitäts-Slice
+ für genannte Platte würde dann so aussehen:
+
+ Name Mountpoint
+ ---- ----------
+ sd0a /
+ sd0b <Swap-Bereich>
+ sd0e /usr
+
+ Die Zuordnung der Kompatibilitäts-Slice zur ersten gefundenen
+ FreeBSD-Slice (in diesem Falle sd0s1) erfolgt automatisch. Es
+ kann mehrere FreeBSD-Slices auf einer Platte geben, aber nur
+ die erste wird als Kompatibilitäts-Slice zugeordnet!
+
+ Möglicherweise wird die Kompatibilitäts-Slice später elimi-
+ niert, aber gegenwärtig ist sie noch aus folgenden Gründen
+ nötig:
+
+ 1. Wie bereits erwähnt, kennen einige Programme noch
+ nicht das Slice-Prinzip und benötigen noch Zeit,
+ bis sie überarbeitet worden sind.
+
+ 2. Im Moment sind die Bootblöcke von FreeBSD noch
+ nicht in der Lage, von irgendeinem Root-Dateisystem
+ außer dem in der Kompatibilitäts-Slice zu booten.
+ Daher wird die Root also immer auf ,,sd0a'' er-
+ scheinen (bezogen auf das Beispiel), auch wenn sie
+ sich eigentlich auf sd0s1a befindet und ansonsten
+ über den vollen Slice-Namen angesprochen wird.
+
+Sowie man diese Prinzipien verstanden hat, ist die Benutzung des Disk-
+label-Editors eigentlich einfach. Entweder, man teilt die FreeBSD-
+Slices, wie sie oben auf dem Bildschirm angezeigt werden, in kleinere
+Stücke auf (in der Mitte des Schirmes zu sehen) und plaziert dann
+später FreeBSD-Dateisysteme darauf, oder aber man mountet existierende
+Slices/Partitions in die Dateisystemhierarchie; dieser Editor erlaubt
+beides. Da eine DOS-Partition aus FreeBSD-Sicht auch nur eine weitere
+Slice ist, kann man sie mit diesem Editor auch ganz einfach in die
+Dateisystemhierarchie eingliedern. Für FreeBSD-Partitions kann man
+auch noch den ,,newfs''-Status umschalten, so daß die Partitions ent-
+weder von Grund auf neu-/wiedererzeugt werden oder aber einfach nur
+überprüft und gemountet (wobei ihr Inhalt erhalten bleibt).
+
+Wenn man fertig ist, beendet man den Editor mit ,,Q''.
+
+Es werden keinerlei Änderungen auf die Platte geschrieben, solange man
+nicht mittels ,,(C)ommit'' aus dem Installationsmenü alles bestätigt
+hat! Der Disklabel-Editor (und der ,,FDISK Partition''-Editor) ar-
+beiten mit einer Art Kopie der Disklabels.
diff --git a/release/sysinstall/help/de_DE.ISO8859-1/slice.hlp b/release/sysinstall/help/de_DE.ISO8859-1/slice.hlp
new file mode 100644
index 0000000..c2c92e2
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO8859-1/slice.hlp
@@ -0,0 +1,28 @@
+Dies ist der Editor für die primären Partitions (oder ,,Slices'').
+
+Unten werden die möglichen Kommandos angezeigt, ober der Inhalt des Master
+Boot Records. Man kann mit den Pfeiltasten nach oben und unten fahren und
+mittels ,,(C)reate'' eine neue Partition anlegen, wenn sich der ,Balken'
+über einer Partition befindet, deren Status als ,,unused'' markiert ist.
+
+Hier die Zeichenerklärung für das Feld ,,flags'':
+
+ '=' -- Partition ist ordnungsgemäß ausgerichtet.
+ '>' -- Die Partition endet nicht unterhalb von Zylinder 1024.
+ 'R' -- Ist markiert, das Root-Dateisystem zu enthalten.
+ 'B' -- Partition benutzt Fehlersektorenbehandlung nach Bad144.
+ 'C' -- Dies ist die FreeBSD-2.0-Kompatibilitätspartition.
+ 'A' -- Die Partition ist als ,aktiv' (bootfähig) markiert.
+
+Bei der Auswahl einer Partition für Bad144-Behandlung wird diese vor
+Erzeugung der Dateisystem auf fehlerhafte Stellen untersucht.
+
+Wenn keine Partition als ,aktiv' markiert ist, so muß man entweder einen
+Boot-Manager installieren (dies wird später im Installationsprozeß ange-
+boten) oder aber eine als ,aktiv' markieren, bevor man dieses Menü wieder
+verläßt.
+
+Es werden keinerlei Änderungen auf die Platte geschrieben, solange man
+nicht mittels ,,(C)ommit'' aus dem Installationsmenü alles bestätigt hat!
+Der ,,FDISK Partition''-Editor (und der Disklabel-Editor) arbeiten mit
+einer Art Kopie der Disklabels.
diff --git a/release/sysinstall/help/de_DE.ISO8859-1/tcp.hlp b/release/sysinstall/help/de_DE.ISO8859-1/tcp.hlp
new file mode 100644
index 0000000..d2a3b27
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO8859-1/tcp.hlp
@@ -0,0 +1,32 @@
+In diesem Menü kann man sowohl die allgemeinen Netzwerkparameter ein-
+stellen (Hostname, Domainname, DNS-Server usw.) als auch die Parameter für
+ein bestimmtes Interface (das vom zuvor angezeigten Menü ausgewählt worden
+ist).
+
+Man kann zwischen den Feldern mittels der Tasten TAB, Rückwärts-TAB (Shift+
+TAB) und RETURN hin- und herspringen. Mittels DELETE oder BACKSPACE kann
+man ein Feld editieren. Mittels ^A (control-A) gelangt man an den Anfang
+einer Zeile, mittels ^E (control-E) ans Ende. ^F (control-F) geht ein
+Zeichen nach vorn, ^B (control-B) eins nach hinten; ^D (control-D) löscht
+das Zeichen unter dem Cursor, und ^K (control-K) löscht alles bis zum Zei-
+lenende. Im Prinzip handelt es sich um die wesentlichsten Emacs-Editier-
+kommandos.
+
+Das Feld ,,Extra options to ifconfig'' ist ein wenig besonders (oder auch:
+ein Hack :-).
+
+Damit kann man beispielsweise die Gegenseite einer SLIP- oder PLIP-Ver-
+bindung angeben (einfach die numerische IP-Adresse eingeben), oder aber
+einen bestimmten Steckverbinder einer Ethernetkarte auswählen, falls
+mehrere zur Auswahl sind (z. B. AUI, 10BaseT [twisted pair], 10Base2 [BNC]
+usw.). Die folgenden Steckverbinder werden akzeptiert:
+
+ link0 - AUI * höchste Wertigkeit
+ link1 - BNC
+ link2 - UTP * niedrigste Wertigkeit
+
+Man kann also eins der Worte ,,link0'', ,,link1'' oder ,,link2'' in das
+,,Extra options''-Feld eintragen.
+
+Am Ende einfach ,,OK'' anwählen.
+
diff --git a/release/sysinstall/help/de_DE.ISO8859-1/usage.hlp b/release/sysinstall/help/de_DE.ISO8859-1/usage.hlp
new file mode 100644
index 0000000..a8beada
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO8859-1/usage.hlp
@@ -0,0 +1,57 @@
+BENUTZUNG DES SYSTEMS
+=====================
+
+TASTE WIRKUNG
+----- -------
+PFEIL NACH OBEN Zum vorherigen Feld (oder eine Zeile nach oben im Text).
+PFEIL NACH UNTEN Zum nächsten Feld (oder eine Zeile nach unten im Text).
+TAB Zum nächsten Feld oder zur nächsten Gruppe.
+PFEIL NACH RECHTS Zum nächsten Feld oder zur nächsten Gruppe (wie TAB).
+SHIFT-TAB Zum vorherigen Feld oder zur vorherigen Gruppe.
+PFEIL NACH LINKS Zum vorherigen Feld oder zur vorherigen Gruppe (wie SH-TAB).
+RETURN Menüpunkt auswählen.
+BILD NACH OBEN Innerhalb von Textkästen: eine Seite zurück.
+BILD NACH UNTEN Innerhalb von Textkästen: eine Seite vor.
+LEERTASTE In Menüs mit mehreren Auswahlmöglichkeiten: umschalten.
+F1 Hilfe (sofern unterstützt).
+
+Wenn an den Seiten eines Menüs kleine "^(-)"- oder "v(+)"-Symbole zu
+sehen sind, so bedeutet das, daß weitere Menüpunkte ober- oder unter-
+halb des aktuellen Punktes existieren, die (infolge fehlenden Platzes
+auf dem Bildschirm) gerade nicht dargestellt werden können. Mittels
+der Pfeiltasten (nach oben oder unten) kann man das Menü rollen las-
+sen. Sowie eins der Symbole verschwindet heißt das, daß man ganz oben
+oder unten im Menü ist.
+
+In Textkästen wird die Stelle, an der man sich befindet, als Prozent-
+zahl in der rechten unteren Ecke angezeigt. 100 % bedeuten, daß man
+sich am Ende befindet.
+
+Die Auswahl von ,,OK'' in einem Menü bewirkt die durch dieses Menü
+ausgelöste Handlung. Die Auswahl von ,,Cancel'' bewirkt einen Abbruch
+und die Rückkehr zum vorherigen Menü.
+
+BESONDERE EIGENSCHAFTEN
+=======================
+
+Menüpunkte können auch durch Eintippen des ersten Zeichens ihres
+Namens ausgewählt werden, sofern dies eindeutig ist. In diesem Falle
+werden die entsprechenden Zeichen hervorgehoben.
+
+Der Bildschirmtreiber enthält auch einen Puffer, mit dem man sich die
+Sachen ansehen kann, die bereits herausgerollt worden sind. Um diese
+Funktion zu nutzen, muß man die ,,ScrollLock''-Taste (,,Rollen V'')
+drücken und danach die Pfeiltasten oder die Bild-auf/ab-Tasten.
+Dieser Modus wird durch nochmaliges Drücken der ,,ScrollLock''-Taste
+wieder verlassen. Diese Möglichkeit ist vor allem nützlich für
+Subshells oder andere ,,Expertenmodi'', die keine Menüs nutzen.
+
+Sowie das System vollständig installiert ist und im Multi-User-Modus
+läuft, werden mehrere ,,virtuelle Terminals'' aktiviert, auf denen man
+parallel mehrere aktive Sessions bedienen kann. Mittels ALT-F<n> kann
+zwischen diesen umgeschaltet werden, wobei ,,F<n>'' die Funktionstaste
+(F-Taste) ist, die der Nummer des gewünschten Bildschirms entspricht.
+Das System kommt vorkonfiguriert mit 3 virtuellen Terminals. Wenn
+mehr davon gewünscht werden, so kann dies nach dem Hochfahren des
+Systems geschehen, indem man sie in der Datei /etc/ttys freischaltet.
+Die maximale Anzahl ist 12.
diff --git a/release/sysinstall/help/de_DE.ISO_8859-1/README b/release/sysinstall/help/de_DE.ISO_8859-1/README
new file mode 100644
index 0000000..8ce9c18
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO_8859-1/README
@@ -0,0 +1,106 @@
+
+ -----------------------------------------
+ FreeBSD 2.0.5 --- RELEASE Version , ,
+ ----------------------------------------- /( )`
+ \ \___ / |
+Willkommen zum Release 2.0.5 von FreeBSD, einem /- _ `-/ '
+Zwischen-Release von FreeBSD, das eine eine Lücke (/\/ \ \ /\
+füllt zwischen 2.0R (das im Nov. 94 erschien) und / / | ` \
+2.1R, das Ende Juli '95 erscheinen wird, die oft O O ) / |
+beklagt wurde. FreeBSD 2.0.5 enthält wesentliche `-^--'`< '
+Verbesserungen gegenüber 2.0R, deren wichtigste (_.) _ ) /
+eine erhöhte Systemstabilität (wesentlich besser), `.___/` /
+Dutzende neuer Features und ein stark `-----' /
+verbessertes Installationsprogramm <----. __ / __ \
+sind. Die Release Notes enthalten <----|====O)))==) \) /====
+weitere Details bzgl. der Neuheiten <----' `--' `.__,' \
+in FreeBSD 2.0.5. | |
+ \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+
+
+Was ist FreeBSD? FreeBSD ist ein 4.4BSD-Lite-basiertes Betriebssystem für
+Intel, AMD, Cyrix oder NexGen "x86"-PC-Hardware. Es arbeitet mit einer
+großen Anzahl von PC-Peripherie und -Konfigurationen zusammen. Es kann für
+die Software-Entwicklung bis hin zum Anbieten von Internet-Diensten
+eingesetzt werden; der meist genutzte Rechner im Internet, ftp.cdrom.com,
+ist ein FreeBSD-Rechner.
+
+Dieses FreeBSD-Release enthält alles, was man zur Nutzung eines solchen
+Systems braucht; zusätzlich erhält man den kompletten Quellcode. Wenn man
+den Quellcode installiert hat, kann man das ganze Betriebssystem von Grund
+auf mit einem einzigen Befehl übersetzen; dies eignet es in idealer Weise
+für Studenten, Forscher oder einfach Leute, die sehen wollen, wie alles
+funktioniert.
+
+Es gibt ebenfalls eine große Anzahl portierter Dritt-Software (die "ports
+collection"), um die Verfügbarkeit und die Installation traditioneller
+Lieblings-UNIX-Utilities für FreeBSD zu erleichtern. Über 270 Portierun-
+gen, von Editoren über Programmiersprachen bis zu Grafikanwendungen, machen
+FreeBSD zu einem mächtigen und umfassenden Betriebssystem, das keinen
+Vergleich zu dem großer Workstations scheut.
+
+Als weitere Dokumentation zu diesem System empfehlen wir die 4.4BSD-
+Dokumentation von O'Reilly Associates und der USENIX Association, ISBN
+1-56592-082-1. Wir haben nichts mit O'Reilly zu tun, außer daß wir
+zufriedene Kunden sind!
+
+Wir empfehlen, die HARDWARE-ANLEITUNG *vor* jeglicher Fortführung der
+Installation zu lesen. PC-Hardware für irgend etwas anderes als DOS/
+Windows (das keine großen Anforderungen an die Hardware stellt) zu
+konfigurieren, ist schwieriger, als es zunächst aussieht. Und wenn man
+glaubt, PCs zu verstehen, dann hat man diese nur noch nicht lange genug
+benutzt. :) Diese Anleitung gibt einige Tips zur Hardwarekonfiguration und
+sagt, auf welche Symptome man bei Schwierigkeiten achten muß. Die Anlei-
+tung ist im Dokumentations-Menü der FreeBSD-Bootfloppy verfügbar.
+
+VORBEHALT: Obwohl FreeBSD alles versucht, vorhandene Daten gegen versehent-
+lichen Verlust zu schützen, ist es mit dieser Installation mehr als nur
+möglich, DIE GESAMTE FESTPLATTE ZU LÖSCHEN! Bitte nicht mit der endgül-
+tigen Installation von FreeBSD fortfahren, ohne zuerst alle wichtigen Daten
+angemessen gesichert zu haben! Wir empfehlen es eindringlichst!
+
+Technische Kommentare zu diesem Release sollten an:
+
+ hackers@FreeBSD.org
+
+gesandt werden (wenn möglich, in englisch).
+
+Fehlermeldungen sollten bei erfolgreicher Installation mittels des
+`send-pr'-Kommandos, ansonsten an:
+
+ bugs@FreeBSD.org
+
+gesandt werden.
+
+Bitte in jeder Fehlermeldung die genutzte FreeBSD-VERSION nennen!
+
+Allgemeine Fragen sollten an:
+
+ questions@FreeBSD.org
+
+gesandt werden.
+
+Wir bitten um Geduld, wenn die Fragen nicht sofort beantwortet werden -
+dieses sind besonders arbeitsintensive Zeiten für uns, und unsere Resourcen
+(auf freiwilliger Basis) sind oft bis an die Grenzen ausgereizt! Mittels
+send-pr verschickte Fehlermeldungen werden registriert und in unserer
+Datenbank verfolgt. Über Statusänderungen wird über die gesamte Lebensdauer
+des Fehlers (oder der Forderung nach einem Feature) informiert.
+
+Unsere WEB Site, http://www.freebsd.org, ist ebenfalls eine gute Quelle
+für neue Informationen und enthält einige weitere, fortführende Infor-
+mationen. Man kann die BSDI-Version von Netscape zum Browsen (Blättern)
+im World Wide Web direkt aus FreeBSD heraus nutzen.
+
+Wir empfehlen auch in /usr/share/FAQ und /usr/share/doc zu weiteren
+Informationen zum System nachzuschauen.
+
+Wir danken für die Aufmerksamkeit und hoffen, daß dieses Release von
+FreeBSD viel Freude bereitet.
+
+ Jordan Hubbard,
+ für das FreeBSD Projekt
diff --git a/release/sysinstall/help/de_DE.ISO_8859-1/RELNOTES b/release/sysinstall/help/de_DE.ISO_8859-1/RELNOTES
new file mode 100644
index 0000000..c3d2aa6
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO_8859-1/RELNOTES
@@ -0,0 +1,766 @@
+ RELEASE NOTES
+ FreeBSD
+ Release 2.0.5
+
+1. Technischer Überblick
+------------------------
+
+FreeBSD ist eine im Quellcode frei verfügbare Version eines 4.4-Lite-
+basierten Betriebssystems für PC's auf der Basis von Intel-i386/i486/
+Pentium-Prozessoren (oder kompatiblen). Es basiert hauptsächlich auf
+Software der Computer-Gruppe (CSRG) der Universität Kalifornien Berkeley
+mit einigen Erweiterungen aus den Systemen NetBSD, 386BSD und von der
+Free Software Foundation.
+
+Seit der Freigabe unserer Version FreeBSD 2.0 vor etwa 8 Monaten hat sich
+die Leistungsfähigkeit, der Funktionsumfang und die Stabilität von
+FreeBSD dramatisch verbessert. Die umfangreichste Änderung ist das neu
+gefaßte System der virtuellen Speicherverwaltung (VM) mit einem vereinig-
+ten VM/Dateipuffer, wodurch sich nicht nur die Leistungsfähigkeit verbes-
+sert, sondern auch der Mindestspeicherbedarf von FreeBSD reduziert werden
+konnte, so daß auch Konfigurationen mit nur 4 MB Hauptspeicher wieder
+akzeptabel werden können. Unter den weiteren Verbesserungen befinden
+sich volle Unterstützung für NIS sowohl auf Client- als auch Serverseite,
+,,Transaction TCP'', PPP mit automatischer Leitungswahl bei Bedarf, ein
+verbessertes SCSI-Subsystem, anfängliche ISDN-Unterstützung, Treiber für
+FDDI- und "Fast Ethernet"-Adapter (100 MBit/s), verbesserter Unter-
+stützung der Adaptec 2940-SCSI-Adapter (sowohl WIDE- als auch
+Normal-SCSI) sowie viele hunderte Bugfixes.
+
+Zuzüglich zur Basis-Distribution bietet FreeBSD nun eine neue Sammlung
+portierter Software an mit etwa 270 häufig gewünschten Programmen. Die
+Liste der ,,Ports'' reicht dabei von HTTP-(WWW-)Servern, Spielen, Pro-
+grammiersprachen, Editoren und so gut wie allem, was dazwischenliegt.
+Die komplette Port-Sammlung benötigt nun nur noch 10 MB Speicherplatz, da
+alle Ports als ,,Deltas'' gegenüber ihren originalen Quellen ausgedrückt
+werden. Das macht es uns einfacher, die Ports auf dem Laufenden zu
+halten, und es reduziert gegenüber der Ports-Sammlung aus Version 1.0
+drastisch den Speicherbedarf. Um einen Port zu übersetzen, wechselt man
+einfach ins Verzeichnis des gewünschten Ports, tippt ,,make'' ein, und
+läßt das System den Rest vornehmen. Es wird dabei automatisch die komp-
+lette Original-Quelle von der CDROM oder einem lokalen FTP-Server geholt,
+so daß man lediglich hinreichend Plattenplatz benötigt, um die gewünsch-
+ten Ports zu übersetzen. (Fast) jeder Port wird auch als vorübersetztes
+,,Package'' zur Verfügung gestellt, das man mit einem einfachen Kommando
+(pkg_add) installieren kann, wenn man nicht von der originalen Quelle
+übersetzen möchte. All dies ist in der Datei
+ /usr/share/FAQ/Text/ports.FAQ
+genauer beschrieben.
+
+Seit unserer ersten Version FreeBSD 1.0 vor etwa zwei Jahren hat sich
+FreeBSD fast vollständig geändert. Eine neue Portierung wurde vorge-
+nommen, ausgehend vom 4.4-Lite-Code der Universität Berkeley, womit der
+rechtliche Status des Systems einwandfrei geworden ist, einschließlich
+einer ,Absegnung' durch Novell (dem neuen Eigentümer der USL und des
+Warenzeichens UNIX). Die 4.4-Portierung brachte gleichzeitig eine Menge
+neuer Eigenschaften, Dateisysteme und verbesserte Treiber. Mit der
+geklärten Rechtslage haben wir nun allen Grund zur Hoffnung, daß wir ohne
+künftige juristische Querelen auch weiterhin ein Betriebssystem von guter
+Qualität regelmäßig herausgeben können.
+
+FreeBSD 2.0.5 representiert die zweijährige Arbeit eines internationalen
+Entwicklerteams, das viele tausend Mann-Stunden eingebracht hat. Wir
+hoffen sehr, daß es Anklang findet!
+
+Eine Reihe weiterer Dokumente, die während der Installation und im Betrieb
+von FreeBSD hilfreich sein können, befindet sich im Verzeichnis ,,FAQ'',
+entweder in einem installierten System unter /usr/share/FAQ, oder aber in
+der obersten Ebene der CDROM- oder FTP-Distribution, in der ebendiese Datei
+zu finden ist. Ein Überblick der im FAQ-Verzeichnis enthaltenen Dokumen-
+tation befindet sich in der Datei FAQ/Text/ROADMAP.
+
+Eine Liste all derjenigen, die zum Projekt beigetragen haben, verbunden
+mit einer allgemeinen Beschreibung des Projektes selbst, befindet sich in
+der Datei ,,CONTRIB.FreeBSD'' in der Binär-Distribution.
+
+Die Datei ,,REGISTER.FreeBSD'' enthält eine Beschreibung, wie man sich
+beim "Free BSD user counter" registrieren läßt. Dieser Zähler ist für
+ALLE freien BSD-Derivate, nicht nur FreeBSD, und wir legen jedem die
+Anmeldung dort nahe.
+
+Die Kerndistribution von FreeBSD enthält keinen DES-Code, weil dies ihren
+Export außerhalb der USA verhindern würde. Es existiert ein Zusatzpaket,
+das nur in den USA verwendet werden darf und die Programme zusammenfaßt,
+die normalerweise DES benutzen. Alle anderen zusätzlich angebotenen
+Pakete können von jedermann genutzt werden. Eine freie und (aus Sicht
+von außerhalb der USA) exportierbare Distribution für Nicht-US-Benutzer
+existiert aber auch. Sie ist in der FreeBSD-FAQ beschrieben.
+
+Soweit jedoch die Paßwortsicherheit alles ist, was gewünscht wird, und
+kein Bedarf besteht, die verschlüsselten Paßwörter zwischen verschiedenen
+Architekturen (Sun's, DEC-Maschinen usw.) auszutauschen, ist das von
+FreeBSD benutzte, auf einer MD5-Verschlüsselung aufsetzende Sicherheits-
+system völlig ausreichend! Wir sind der Meinung, daß unser standard-
+mäßiges Sicherheitsmodell mehr als ein Ausgleich für DES ist, und das,
+ohne daß wir uns mit ärgerlichen Exportbeschränkungen herumschlagen
+müßten. Es ist einen Versuch wert, für alle außerhalb (oder sogar auch
+innerhalb) der USA! (Anm.: MD5 implementiert keine Verschlüsselung im
+Sinne der amerikanischen Exportbestimmungen, sondern kann ausschließ-
+lich zur Zugangskontrolle verwendet werden. Damit fällt es nicht unter
+die Exportbeschränkungen der USA. -- Jörg)
+
+
+1.1 Was ist neu in 2.0.5?
+-------------------------
+
+Die folgenden Funktionen wurden im Zeitraum zwischen der Freigabe von
+Version 2.0 und dieser Version 2.0.5 entweder hinzugefügt oder grundle-
+gend verbessert. Um eine bessere Kommunikation zu ermöglichen, ist die
+Person (oder die Personen), die für die jeweilige Verbesserung verant-
+wortlich ist, aufgelistet. Jegliche Fragen bezüglich der neuen Funkiona-
+lität sollte zuerst an denjenigen gerichtet werden.
+
+
+KERNEL:
+
+Vereinigter VM/Dateipuffer-Cache
+--------------------------------
+Der Entwurf eines vereinten VM/Dateipuffer-Caches verbessert die gesamte
+Leistungsfähigkeit des Systems erheblich und erlaubt eine Reihe optimier-
+ter Speicherbelegungsstrategien, die vorher unmöglich waren.
+
+Verantwortlich: David Greenman (davidg@FreeBSD.org) and
+ John Dyson (dyson@implode.root.com)
+
+
+Optimierter Hash-Algorithmus für Netzwerk-Protokollsteuerblöcke (PCB's)
+-----------------------------------------------------------------------
+Für Systeme mit einer großen Anzahl aktiver TCP-Verbindungen (z. B.
+WEB- und FTP-Server) wird dadurch die Suche für ein ankommendes Paket
+nach der dazugehörigen Verbindung erheblich beschleunigt.
+
+Verantwortlich: David Greenman (davidg@FreeBSD.org)
+
+
+Optimierung des Dateinamen-Caches
+---------------------------------
+Der Namens-Cache faßt nunmehr alle gleichen Namen im gleichen Speicher-
+block zusammen, so daß z. B. alle ,,..''-Einträge im gleichen Block
+landen. Die Version für das Elternverzeichnis wurde einbezogen, um
+den Hash durcheinanderzubringen, und die Cache-Verwaltung wurde ver-
+bessert, da gerade an diesem Teil gearbeitet wurde.
+
+Verantwortlich: Poul-Henning Kamp (phk@FreeBSD.org)
+ David Greenman (davidg@FreeBSD.org)
+
+
+Weniger einschränkende Konfigurierung von Swap-Bereichen
+--------------------------------------------------------
+Die Notwendigkeit, die Namen der Swap-Geräte in den Kernel zu kompilie-
+ren, wurde beseitigt. ,swapon' akzeptiert numehr jedes Block-Gerät bis
+zur Maximalzahl der in den Kernel konfigurierten Swap-Geräte.
+
+Verantwortlich: Poul-Henning Kamp (phk@FreeBSD.org)
+ David Greenman (davidg@FreeBSD.org)
+
+
+,,Vorverdrahtete'' SCSI-Geräte
+------------------------------
+FreeBSD-Versionen vor 2.0.5 haben die Gerätenummernzuweisung für SCSI-
+Geräte ausschließlich dynamisch vorgenommen in der Reihenfolge, wie die
+Geräte gefunden wurden, so daß infolge Fehlfunktion eines SCSI-Gerätes
+sich möglicherweise die Gerätenummer ändern konnte. Dieses hatte zur
+Folge, daß selbst die Zuordnung der Dateisysteme auf den noch funktio-
+nierenden Geräten nicht mehr möglich war und die Dateisysteme nicht
+gemountet werden konnten. Durch ,,Vorverdrahtung'' ist es jetzt möglich,
+statisch die Zuordnung zwischen Gerätenummern (und damit Gerätenamen) und
+SCSI-Geräten vorzunehmen, wobei die SCSI-ID und die Nummer des SCSI-
+Busses als Basis dienen. Diese Zuordnung wird in der Konfigurations-
+datei des Kernels vorgenommen und ist sowohl in der Manual-Seite scsi(4)
+als auch in der LINT-Beispielkonfiguration dokumentiert.
+
+Verantwortlich: Peter Dufault (dufault@hda.com)
+Betroffene Dateien: sys/scsi/* usr.sbin/config/*
+
+
+Unterstützung für ,,Slices''
+----------------------------
+FreeBSD unterstützt nunmehr die Abstraktion von ,,Slices'' (globalen
+Platten-Partitionen), so daß die Zusammenarbeit mit Partitionen anderer
+Betriebssysteme verbessert wird. Damit ist es FreeBSD möglich, vor-
+handene DOS-Partitionen (ohne weitere Vorkehrungen) mitzunutzen.
+
+Verantwortlich: Bruce Evans (bde@FreeBSD.org)
+Betroffene Dateien: sys/disklabel.h sys/diskslice.h sys/dkbad.h
+ kern/subr_diskslice.c kern/subr_dkbad.c
+ i386/isa/diskslice_machdep.c
+ i386/isa/wd.c scsi/sd.c dev/vn/vn.c
+
+
+Unterstützung für Version 6.0 des OnTrack Disk-Managers
+-------------------------------------------------------
+Es wurde die Möglichkeit geschaffen, Platten zu nutzen, die durch den
+OnTrack Disk-Manager verwaltet werden. Das fdisk-Programm jedoch weiß
+darüber noch nichts, so daß alle Änderungen entweder im Installations-
+programm der Bootdiskette (boot.flp) oder aber im OnTrack Disk-Manager
+aus DOS heraus vorgenommen werden müssen.
+
+Verantwortlich: Poul-Henning Kamp (phk@FreeBSD.org)
+
+
+Bad144 ist wieder da und funktioniert
+-------------------------------------
+Bad144 funktioniert wieder. Die Semantik jedoch hat sich gegenüber
+früher geringfügig geändert. Die Fehlerstellen werden nunmehr relativ
+zur ,,Slice'' gezählt und nicht mehr absolut bezüglich der ganzen
+Platte.
+
+Verantwortlich: Bruce Evans (bde@FreeBSD.org)
+ Poul-Henning Kamp (phk@FreeBSD.org)
+
+
+UNTERSTÜTZUNG NEUER GERÄTE:
+
+ SCSI- und CDROM-Geräte
+
+Matsushita/Panasonic (Creative) CD-ROM-Treiber
+----------------------------------------------
+Die Laufwerke Matsushita/Panasonic CR-562 und CR-563 werden nunmehr
+unterstützt, wenn sie an einen SoundBlaster- oder 100% kompatiblen
+Hostadapter angeschlossen sind. Bis zu vier Hostadapter sind möglich, so
+daß maximal 16 CD-ROM-Laufwerke angeschlossen werden können. Die
+Audio-Funktionen sind ebenfalls unterstützt einschließlich des ,,Karoke
+variable speed playback''.
+
+Verantwortlich: Frank Durda IV bsdmail@nemesis.lonestar.org
+Betroffene Dateien: isa/matcd
+
+
+Adaptec 2742/2842/2940 SCSI-Treiber
+-----------------------------------
+Der originale Treiber für 274X-/284X-Adapter wurde gegenüber der Version
+2.0 beträchtlich geändert. Nunmehr gibt es auch volle Unterstützung der
+2940-Serie sowie der ,,Wide-SCSI''-Modelle dieser Karten. Der Bug in der
+Bus-Arbitrierung (sowie viele weitere) wurde beseitigt, der Treiberprob-
+leme mit schnellen SCSI-Geräten verursacht hat. Es existiert sogar eine
+experimentelle Unterstützung für ,,tagged queuing'' (Kernel-Option
+,,AHC_TAGENABLE''). Weiterhin hat John Aycock den Code für den Sequen-
+cer nunmehr mit einem ,,Berkeley''-Copyright freigegeben, so daß die
+Restriktionen der GPL nicht mehr auf den Treiber zutreffen.
+
+Verantwortlich: Justin Gibbs (gibbs@FreeBSD.org)
+Betroffene Dateien: isa/aic7770.c pci/aic7870.c i386/scsi/*
+ sys/dev/aic7xxx/*
+
+
+NCR5380/NCR53400 SCSI ("ProAudio Spectrum") Treiber
+---------------------------------------------------
+Verantwortlich: Core-Team
+Eingereicht von: Serge Vakulenko (vak@cronyx.ru)
+Betroffene Dateien: isa/ncr5380.c
+
+
+Sony CDROM-Treiber
+------------------
+Verantwortlich: Core-Team
+Eingereicht von: Mikael Hybsch (micke@dynas.se)
+Betroffene Dateien: isa/scd.c
+
+
+ Serielle Geräte
+
+Treiber für SDL Communications Riscom/8 Serial Board
+----------------------------------------------------
+Verantwortlich: Andrey Chernov (ache@FreeBSD.org)
+Betroffene Dateien: isa/rc.c isa/rcreg.h
+
+
+Treiber für Cyclades Cyclom-y Serial Board
+------------------------------------------
+Verantwortlich: Bruce Evans (bde@FreeBSD.org)
+Eingereicht von: Andrew Werple (andrew@werple.apana.org.au) and
+ Heikki Suonsivu (hsu@cs.hut.fi)
+Entnommen aus: NetBSD
+Betroffene Dateien: isa/cy.c
+
+
+Serieller Treiber Cronyx/Sigma sync/async-Geräte
+------------------------------------------------
+Verantwortlich: Core-Team
+Eingereicht von: Serge Vakulenko
+Betroffene Dateien: isa/cronyx.c
+
+
+
+ Netzwerk
+
+Plattenloses Booten
+-------------------
+Das plattenlose Booten wurde in Version 2.0.5 stark verbessert. Das
+Boot-Programm befindet sich in src/sys/i386/boot/netboot und kann sowohl
+von MSDOS aus gestartet als auch in einen EPROM gebrannt werden. Lokales
+Swappen ist ebenfalls möglich. Gegenwärtig werden Ethernet-Karten von
+WD, SMC, 3Com und Novell unterstützt.
+
+
+Treiber für DEC DC21140 ,,Fast Ethernet''-Adapter
+-------------------------------------------------
+Dieser Treiber unterstützt die zahlreichen Netzwerkadapter auf Basis
+des DEC DC21140-Chipsatzes einschließlich der 100 MBit/s DEC-500-XA und
+SMC 9332.
+
+Verantwortlich: Core-Team
+Eingereicht von: Matt Thomas (thomas@lkg.dec.com)
+Betroffene Dateien: pci/if_de.c pci/dc21040.h
+
+Treiber für DEC FDDI (DEFPA/DEFEA)
+----------------------------------
+Verantwortlich: Core-Team
+Eingereicht von: Matt Thomas (thomas@lkg.dec.com)
+Betroffene Dateien: pci/if_pdq.c pci/pdq.c pci/pdq_os.h pci/pdqreg.h
+
+
+Treiber für 3Com 3c505 (Etherlink/+) Karten
+-------------------------------------------
+Verantwortlich: Core-Team
+Eingereicht von: Dean Huxley (dean@fsa.ca)
+Entnommen aus: NetBSD
+Betroffene Dateien: isa/if_eg.c
+
+
+Treiber für die Fujitsu-MB86960A-Netzwerkkarten-Familie
+-------------------------------------------------------
+Verantwortlich: Core-Team
+Eingereicht von: M.S. (seki@sysrap.cs.fujitsu.co.jp)
+Betroffene Dateien: isa/if_fe.c
+
+
+Treiber für Intel EtherExpress
+------------------------------
+Verantwortlich: Rodney W. Grimes (rgrimes@FreeBSD.org)
+Betroffene Dateien: isa/if_ix.c isa/if_ixreg.h
+
+
+Treiber für 3Com 3c589
+----------------------
+Verantwortlich: Core-Team
+Eingereicht von: "HOSOKAWA Tatsumi" (hosokawa@mt.cs.keio.ac.jp),
+ Seiji Murata (seiji@mt.cs.keio.ac.jp) and
+ Noriyuki Takahashi (hor@aecl.ntt.jp)
+Betroffene Dateien: isa/if_zp.c
+
+
+Treiber für IBM-Kreditkarten
+----------------------------
+Verantwortlich: Core-Team
+Eingereicht von: "HOSOKAWA Tatsumi" (hosokawa@mt.cs.keio.ac.jp)
+Betroffene Dateien: isa/pcic.c isa/pcic.h
+
+
+Treiber für EDSS1- und 1TR6-ISDN-Interface
+------------------------------------------
+Verantwortlich: Core-Team
+Eingereicht von: Dietmar Friede (dfriede@drnhh.neuhaus.de) and
+ Juergen Krause (jkr@saarlink.de)
+Betroffene Dateien: gnu/isdn/*
+
+
+ Diverse Treiber
+
+Treiber für Joystick
+--------------------
+Verantwortlich: Jean-Marc Zucconi (jmz@FreeBSD.org)
+Betroffene Dateien: isa/joy.c
+
+
+Treiber für National Instruments "LabPC"
+----------------------------------------
+Verantwortlich: Peter Dufault (dufault@hda.com)
+Betroffene Dateien: isa/labpc.c
+
+
+Treiber für WD7000
+------------------
+Verantwortlich: Olof Johansson (offe@ludd.luth.se)
+
+
+Pcvt-Console-Treiber
+--------------------
+Verantwortlich: Jörg Wunsch (joerg@FreeBSD.org)
+Eingereicht von: Hellmuth Michaelis (hm@altona.hamburg.com)
+Betroffene Dateien: isa/pcvt/* usr.sbin/pcvt/*
+
+
+BSD-audio Emulator für den VAT-Treiber
+--------------------------------------
+Verantwortlich: Amancio Hasty (ahasty@FreeBSD.org) and
+ Paul Traina (pst@FreeBSD.org)
+Betroffene Dateien: isa/sound/vat_audio.c isa/sound/vat_audioio.h
+
+
+Treiber für National Instruments AT-GPIB and AT-GPIB/TNT GPIB
+-------------------------------------------------------------
+Verantwortlich: Core-Team
+Eingereicht von: Fred Cawthorne (fcawth@delphi.umd.edu)
+Betroffene Dateien: isa/gpib.c isa/gpib.h isa/gpibreg.h
+
+
+Treiber für Genius GS-4500 Handscanner
+--------------------------------------
+Verantwortlich: Core-Team
+Eingereicht von: Gunther Schadow (gusw@fub46.zedat.fu-berlin.de)
+Betroffene Dateien: isa/gsc.c isa/gscreg.h
+
+
+CORTEX-I Frame Grabber
+----------------------
+Verantwortlich: Core-Team
+Eingereicht von: Paul S. LaFollette, Jr.
+Betroffene Dateien: isa/ctx.c isa/ctxreg.h
+
+
+Video Spigot video capture card
+-------------------------------
+Verantwortlich: Jim Lowe
+
+
+
+1.2 Experimentelle Funktionalität
+---------------------------------
+
+Von den Dateisystemen unionfs und LFS ist bekannt, daß sie in Version
+2.0.5 stark mangelhaft sind. Das ist teilweise alten Bugs geschuldet, zu
+deren Beseitigung wir noch keine Zeit gefunden haben, sowie der noch
+ausstehenden Umstellung auf das neue VM-System. Wir hoffen, daß wir
+diese Probleme ein einer späteren Version von FreeBSD beseitigen können.
+
+FreeBSD kann nunmehr Binaries laufen lassen, die dem iBCS2-Standard ge-
+nügen. (SCO UNIX 3.2.2 & 3.2.4 und ISC 2.2 COFF-Format sind gegenwärtig
+unterstützt.) Der iBCS2-Emulator befindet sich noch in seinen Anfängen,
+aber er funktioniert. Wir haben noch keine erschöpfenden Tests vornehmen
+können (mangels kommerzieller Applikationen), aber beinahe alle Binaries
+für SCO 3.2.2 laufen, so z. B. ein altes INFORMIX-2.10 für SCO. Zur
+Vervollständigung dieses Projektes sind weitere Tests nötig. Es sind
+weiterhin Arbeiten im Gange, um ELF- und XOUT-Programme starten zu kön-
+nen. Der Großteil der ,,system call wrapper'' für SVR4 ist bereits ge-
+schrieben.
+
+FreeBSD implementiert mittlerweile auch genügend Linux-Kompatibilität,
+um DOOM laufen zu lassen! Für eine vollständige Dokumentation, wie
+dies einzurichten ist, kann man im Verzeichnis ,,xperimnt'' (auf dem
+lokalen FTP-Server oder der CDROM) nachsehen.
+
+Verantwortlich: Søren Schmidt (sos) & Sean Eric Fagan (sef)
+Betroffene Dateien: sys/i386/ibcs2/* sowie diverse Kernelmodifikationen
+=======
+
+
+2. Unterstützte Konfigurationen
+-------------------------------
+
+FreeBSD läuft derzeit auf einer großen Vielfalt von ISA-, VLB-, EISA- und
+PCI-Bus-basierten PC's, beginnend beim 386sx bis hin zu Maschinen der
+Pentium-Klasse (obwohl der 386sx nicht zu empfehlen ist). Es gibt Unter-
+stützung für allgemeine IDE- oder ESDI-Laufwerke, verschiedene SCSI-
+Controller, Netzwerk- und serielle Karten.
+
+Nachfolgend eine Liste aller Platten-Controller und Ethernet-Karten, von
+denen gegenwärtig bekannt ist, daß sie mit FreeBSD zusammenarbeiten.
+Andere Konfigurationen können ebenfalls funktionieren, wir haben ledig-
+lich darüber noch nichts erfahren.
+
+
+2.1. Platten-Controller
+
+WD1003 (beliebige MFM/RLL)
+WD1007 (beliebige IDE/ESDI)
+WD7000
+IDE
+ATA
+
+Adaptec 152x Serie ISA SCSI-Controller
+Adaptec 154x Serie ISA SCSI-Controller
+Adaptec 174x Serie EISA SCSI-Controller, Standard und ,,Enhanced'' Mode.
+Adaptec 274X/284X/2940 (Narrow/Wide/Twin) Serie ISA/EISA/PCI SCSI-Controller
+Adaptec AIC-6260- und AIC-6360-basierte Karten, einschließlich AHA-152x
+und SoundBlaster SCSI-Karten.
+
+** Anmerkung: Von den Soundblaster-Karten kann nicht gebootet werden, da
+sie kein BIOS besitzen, was Voraussetzung wäre, um das Boot-Gerät in das
+System-BIOS abzubilden. Sie sind jedoch ohne weiteres benutzbar für
+externe Bandlaufwerke, CDROM's usw. Gleiches trifft auf AIC-6x60-
+basierte Karten ohne Boot-ROM zu. Manche dieser Karten besitzen jedoch
+einen Boot-ROM, was man allgemein an irgendeiner Mitteilung beim System-
+start nach dem Einschalten oder einem Reset erkennen kann. Im Zweifels-
+falle sollte man die Systemdokumentation konsultieren.
+
+[Hinweis: Buslogic nannte sich früher ,,Bustec'']
+Buslogic 545S & 545c
+Buslogic 445S/445c VLB SCSI-Controller
+Buslogic 742A, 747S, 747c EISA SCSI-Controller.
+Buslogic 946c PCI SCSI-Controller
+Buslogic 956c PCI SCSI-Controller
+
+NCR 53C810 und 53C825 PCI SCSI-Controller.
+NCR5380/NCR53400 ("ProAudio Spectrum") SCSI-Controller.
+
+DTC 3290 EISA SCSI-Controller in 1542 Emulations-Mode.
+
+UltraStor 14F, 24F und 34F SCSI-Controller.
+
+Seagate ST01/02 SCSI-Controller.
+
+Future Domain 8xx/950 Serie SCSI-Controller.
+
+Für alle unterstützten SCSI-Controller wird volle Unterstützung für alle
+SCSI-I- und SCSI-II-Peripherie gewährt, einschließlich Platten, Bandlauf-
+werke (auch DAT) und CD-ROM-Laufwerke.
+
+Folgende CD-ROM-Systeme sind derzeit unterstützt:
+
+(cd) SCSI (auch ProAudio Spectrum und SoundBlaster SCSI)
+(mcd) Mitsumi Interface-Karte
+(matcd) Matsushita/Panasonic (Creative) Interface-Karte
+(scd) Sony Interface-Karte
+
+Hinweis: CD-Laufwerke mit IDE-Interface sind derzeit noch nicht unter-
+stützt.
+
+Einige Controller sind hinsichtlich ihrer Kommunikation mit mehr als 16
+MB Hauptspeicher eingeschränkt, da der ISA-Bus nur 24 Bit Adreßraum
+besitzt und folglich nur 16 MB adressieren kann. Dies trifft selbst auf
+einige EISA-Adapter zu (die an sich 32 Bit Adreßraum haben), wenn sie auf
+ISA-Emulation geschaltet werden, weil sie dies dann in *jeder* Hinsicht
+tun. Diese Probleme treten nicht mit IDE-Adaptern auf (da sie kein DMA
+vornehmen), echten EISA-Controllern (wie UltraStor, Adaptec 1742A oder
+Adaptec 2742) sowie den meisten VLB-(Local-Bus)-Controllern. Sowie es
+notwendig wird, belegt das System ,,bounce buffer'', um mit den Adaptern
+zu kommunizieren, so daß es dennoch möglich ist, mehr als 16 MB Haupt-
+speicher problemlos zu nutzen.
+
+
+2.2 Ethernet-Karten
+
+SMC Elite 16 WD8013 Ethernet-Interfaces, sowie die meisten anderen
+WD8003E-, WD8003EBT-, WD8003W-, WD8013W-, WD8003S-, WD8003SBT- and
+WD8013EBT-basierten Clones. SMC Elite Ultra wird ebenfalls unterstützt.
+
+DEC EtherWORKS III NICs (DE203, DE204, and DE205)
+DEC EtherWORKS II NICs (DE200, DE201, DE202, and DE422)
+DEC DC21140 based NICs (SMC???? DE???)
+DEC FDDI (DEFPA/DEFEA) NICs
+
+Fujitsu MB86960A Familie
+
+Intel EtherExpress
+
+Isolan AT 4141-0 (16 bit)
+Isolink 4110 (8 bit)
+
+Novell NE1000, NE2000, und NE2100 Ethernet-Interface.
+
+3Com 3C501 Karten
+
+3Com 3C503 Etherlink II
+
+3Com 3c505 Etherlink/+
+
+3Com 3C507 Etherlink 16/TP
+
+3Com 3C509, 3C579, 3C589 (PCMCIA) Etherlink III
+
+Toshiba Ethernet-Karten
+
+PCMCIA Ethernet-Karten von IBM und National Semiconductor werden
+ebenfalls unterstützt.
+
+
+2.3. Verschiedenes
+
+AST 4-Port serielle Karten unter Nutzung von ,,shared interrupt''.
+
+ARNET 8-Port serielle Karten unter Nutzung von ,,shared interrupt''.
+
+BOCA ATIO66 6-Port serielle Karten unter Nutzung von ,,shared interrupt''.
+
+Cyclades Cyclom-y Serial Board.
+
+STB 4-Port serielle Karten unter Nutzung von ,,shared interrupt''.
+
+Mitsumi (alle Modelle) CDROM-Interface und -Laufwerk.
+
+SDL Communications Riscom/8 Serial Board.
+
+Soundblaster SCSI und ProAudio Spectrum SCSI CDROM-Interface und -Laufwerk.
+
+Matsushita/Panasonic (Creative SoundBlaster) CDROM-Interface und -Laufwerk.
+
+Adlib, SoundBlaster, SoundBlaster Pro, ProAudioSpectrum, Gravis UltraSound
+und Roland MPU-401 Sound-Karten.
+
+FreeBSD unterstützt derzeit KEINE IBM-Microchannel (MCA) Bussysteme,
+jedoch ist die Unterstützung nahe an der Fertigstellung. Einzelheiten
+werden gepostet sowie sich die Situation entwickelt.
+
+
+3. Wie kann man FreeBSD bekommen?
+---------------------------------
+
+FreeBSD kann man in einer Vielzahl von Möglichkeiten erhalten:
+
+1. FTP/Mail
+
+FreeBSD selbst oder all seine wahlfreien Pakete können per ftp von
+,ftp.freebsd.org' bezogen werden -- der offiziellen Vertriebsstelle von
+FreeBSD.
+
+Server, die diese Site spiegeln, sind in der Datei MIRROR.SITES aufge-
+listtet. Es wird darum gebeten, die Distribution von der netzwerkmäßig
+nächstgelegenen Site zu beziehen.
+
+Für diejenigen ohne direkten Internetzugang, aber mit der Möglichkeit,
+eMail zu empfangen, steht der Weg über ,ftpmail@decwrl.dec.com' offen.
+Einfach das Schlüsselwort ,,help'' als Mail dorthin schicken, und man
+bekommt eine genaue Information, wie man Dateien von ,ftp.freebsd.org'
+beziehen kann. Achtung: diese Variante führt zum Versenden einiger *zehn
+Megabyte* über Mail und sollte daher wirklich nur als allerletzte
+Möglichkeit in Betracht gezogen werden!
+
+
+2. CDROM
+
+FreeBSD 2.0.5 kann man auf CDROM bestellen bei:
+
+ Walnut Creek CDROM
+ 4041 Pike Lane, Suite D
+ Concord CA 94520
+ +1-510-674-0783, +1-510-674-0821 (Fax)
+
+Oder über Internet bei orders@cdrom.com oder http://www.cdrom.com.
+Der aktuelle Katalog kann mittels FTP bezogen werden als
+ ftp://ftp.cdrom.com/cdrom/catalog.
+
+Die CDROM kostet US-$ 39.95. Der Versand kostet (pro Bestellung, nicht
+pro CD) US-$ 10.00. Visa, Mastercard und American Express werden in
+Zahlung genommen.
+
+Die CD's können bei Nichtgefallen bedingungslos zurückgegeben werden.
+
+
+Berichten von Bugs, Verbesserungsvorschläge, Einreichen von Code
+----------------------------------------------------------------
+
+Jegliche Fehlerberichte und Beiträge von Code sind herzlich willkommen.
+Fehler sollten in jedem Falle gemeldet werden (nach Möglichkeit mit einem
+,Fix').
+
+Die wünschenswerte Methode zum Einsenden eines Problemberichtes von einer
+Maschine mit Internet-Mailzugang ist die Nutzung des Programmes send-pr.
+Diese Berichte werden sorgfältig von unserem Bugfile-Programm regi-
+striert, und es wird alles getan, so schnell wie möglich darauf zu
+antworten.
+
+Ist es aus irgendeinem Grunde nicht möglich, das Programm ,,send-pr''
+zu nutzen, so können Fehlerberichte auch direkt an
+
+ bugs@FreeBSD.org
+
+gesandt werden. Außerdem steht die Liste
+
+ questions@FreeBSD.org
+
+für allgemeine Fragen zur Verfügung.
+
+(Bitte, wenn möglich, an diese Listen in englischer Sprache schreiben.)
+
+Selbstverständlich sind wir, da all unsere Arbeit auf der Basis von Frei-
+willigkeit geschieht, jederzeit über zusätzliche Helfer erfreut -- es
+gibt jetzt schon mehr zu tun, als wir jemals zu tun in der Lage sein
+werden! Technische Diskussionsbeiträge oder Hilfsangebote können an
+
+ hackers@FreeBSD.org
+
+gesandt werden. Diese Listen verursachen in der Regel ein beträcht-
+liches Mailaufkommen. Für diejenigen, die einen langsamen oder teuren
+Mailanschluß haben und nur an den Ankündigungen wichtiger Ereignisse
+interessiert sind, mag daher
+
+ announce@FreeBSD.org
+
+interessant sein.
+
+
+All diesen Gruppen mit Ausnahme von freebsd-bugs kann jeder Interessierte
+jederzeit beitreten. Eine Mail an ,,MajorDomo@FreeBSD.org'' geschickt,
+mit lediglich dem Schlüsselwort ,,help'' auf einer eigenen Zeile in der
+Nachricht, wird mit der Information über die vorhandenen Listen und
+Teilnahmemöglichkeiten beantwortet. Neben den hier genannten Listen
+existieren noch weitere, die auf bestimmte Interessengruppen ausgerichtet
+sind, so daß die Anfrage durchaus lohnt!
+
+
+6. Würdigungen
+--------------
+
+FreeBSD verkörpert die Arbeit vieler Dutzender, wenn nicht Hunderte,
+Einzelner aus der ganzen Welt, die hart gearbeitet haben, um diese
+Version fertigzustellen. Es wäre sehr schwierig oder schier unmöglich,
+jeden aufzuzählen, der in irgendeiner Form zu FreeBSD beigetragen hat.
+Nichtsdestotrotz soll der Versuch unternommen werden (natürlich in
+alphabetischer Reihenfolge). Sollte ein Name fehlen, so ist dieses
+ausschließlich ein Versehen.
+
+
+Die Computer Systems Research Group (CSRG), U.C. Berkeley.
+
+Bill Jolitz, für seine ersten Arbeiten am 386BSD.
+
+Das FreeBSD-Core-Team
+(in alphabetischer Reihenfolge der Vornamen):
+
+ Andreas Schulz <ats@FreeBSD.org>
+ Andrey A. Chernov <ache@FreeBSD.org>
+ Bruce Evans <bde@FreeBSD.org>
+ David Greenman <davidg@FreeBSD.org>
+ Garrett A. Wollman <wollman@FreeBSD.org>
+ Gary Palmer <gpalmer@FreeBSD.org>
+ Geoff Rehmet <csgr@FreeBSD.org>
+ Jack Vogel <jackv@FreeBSD.org>
+ John Dyson <dyson@FreeBSD.org>
+ Jordan K. Hubbard <jkh@FreeBSD.org>
+ Justin Gibbs <gibbs@FreeBSD.org>
+ Paul Richards <paul@FreeBSD.org>
+ Poul-Henning Kamp <phk@FreeBSD.org>
+ Rich Murphey <rich@FreeBSD.org>
+ Rodney W. Grimes <rgrimes@FreeBSD.org>
+ Satoshi Asami <asami@FreeBSD.org>
+ Søren Schmidt <sos@FreeBSD.org>
+
+Besondere Erwähnung verdienen:
+
+ Walnut Creek CDROM, ohne deren Hilfe und ständige Unterstützung
+ diese Ausgabe nie möglich geworden wäre.
+
+ Dermot McDonnell für seine Bereitstellung eines Toshiba XM3401B
+ CDROM-Laufwerkes.
+
+ Weitere Helfer und Beta-Tester von FreeBSD:
+
+ J.T. Conklin Julian Elischer
+ Frank Durda IV Peter Dufault
+ Sean Eric Fagan Jeffrey Hsu
+ Terry Lambert L Jonas Olsson
+ Chris Provenzano Dave Rivers
+ Guido van Rooij Steven Wallace
+ Atsushi Murai Scott Mace
+ Nate Williams
+
+ sowie alle an der Montana State University für ihre anfängliche
+ Unterstützung.
+
+
+Jordan möchte weiterhin besonders Poul-Henning Kamp und Gary Palmer
+danken, die ihm beide in vielstündiger Arbeit geholfen haben, das neue
+Installationssystem zusammenzustellen. Poul, kürzlich stolzer Vater
+geworden, hat es trotz seines enormen Zeitdrucks immer noch geschafft,
+eine beträchtliche Menge an Arbeit in das Projekt zu investieren. Diese
+Version wäre ohne ihn nicht geworden! Dank Euch Beiden!
+
+Weiterhing geht Dank an all diejenigen, die mitgeholfen haben, besonders
+auch an alle Nichtgenannten. Wir hoffen, daß diese Ausgabe von FreeBSD
+allgemeinen Anklang findet!
+
+ Das FreeBSD Core-Team
+
+$Id: RELNOTES,v 1.2 1995/06/07 05:51:03 jkh Exp $
+=======================================================================
diff --git a/release/sysinstall/help/de_DE.ISO_8859-1/configure.hlp b/release/sysinstall/help/de_DE.ISO_8859-1/configure.hlp
new file mode 100644
index 0000000..468c1b5
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO_8859-1/configure.hlp
@@ -0,0 +1,18 @@
+Mit diesem Menü kann man das System nach der Installation ein wenig
+konfigurieren. Es sollten wenigstens das Paßwort für den System-
+verwalter gesetzt sowie die Zeitzone eingestellt werden.
+
+Für zusätzliche ,,Rosinen'' wie bash, emacs, pascal usw. ist es wohl
+immer notwendig, einen Blick auf den Menüpunkt ,,Packages'' zu werfen.
+Dies ist gegenwärtig nur sinnvoll, wenn man entweder von einer CDROM
+installiert oder aber die Package-Sammlung irgendwo in der Datei-
+systemhierarchie bereits vorhanden ist, so daß die Package-Verwaltung
+darauf zugreifen kann. Eine automatische Übertragung der Packages
+mittels FTP ist derzeit noch nicht vorgesehen.
+
+Soll das Installationsprogramm für die Packages nach Beenden der
+Systeminstallation nochmals aufgerufen werden, der Kommandoname
+dafür ist ,,pkg_manage''. Das Einstellen der Zeitzone geschieht
+mit dem Kommando ,,tzsetup''. Weitere Informationen bezüglich der
+allgemeinen Systemkonfiguration befinden sich in der Datei
+,,/etc/sysconfig''.
diff --git a/release/sysinstall/help/de_DE.ISO_8859-1/drives.hlp b/release/sysinstall/help/de_DE.ISO_8859-1/drives.hlp
new file mode 100644
index 0000000..41681f0
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO_8859-1/drives.hlp
@@ -0,0 +1,29 @@
+Sowie die ernsthafte Absicht besteht, wirklich irgendetwas von FreeBSD
+auf einem Laufwerk zu instellieren, sollte man sich UNBEDINGT VERSICHERN,
+daß die vom Partition-Editor berichtete Geometrie (siehe Installations-
+Menü) auch die richtige für die Kombination aus Laufwerk und Controller
+ist!
+
+IDE-Laufwerke ,,lernen'' oftmals ihre Geometrie über das Setup des BIOS,
+oder (für größere Laufwerke), ihre Geometrie wird entweder vom IDE-
+Controller oder aber einem speziellen Werkzeug, das zur Bootzeit geladen
+wird, wie dem OnTrack Systems Disk- Manager, uminterpretiert (,,remap-
+ped''). In solchen Fällen ist das Erkennen der richtigen Geometrie noch
+schwerer, da man nicht einfach auf dem Laufwerk oder im BIOS-Setup
+nachsehen kann. Dann ist es das Beste, ein DOS zu booten (von der
+Festplatte, nicht von einer Diskette!) und mittels des im tools/-Ver-
+zeichnis auf der FreeBSD-CDROM oder auf einem FTP-Server bereitgestellten
+Programmes ,,pfdisk'' die Geometrie zu vergleichen. Dieses Programm
+berichtet die Geometrie, wie DOS sie sieht, die allgemein als die
+richtige angenommen werden kann.
+
+Falls gar keine DOS-Partition gewünscht wird, kann es sich dennoch als
+sinnvoll erweisen, eine solche (sehr kleine) vorerst einzurichten, um
+sich über die Laufwerksgeometrie zu informieren. Sie kann dann später
+wieder gelöscht werden.
+
+Es ist aber tatsächlich gar nicht so schlecht (ob man's glaubt oder
+nicht), eine bootfähige DOS-Partition auf der Platte zu haben: falls die
+Maschine später instabil wird oder einfach ,,spinnt'', so kann man von da
+aus bequem eines der kommerziell erhältlichen System-Diagnose-Programme
+laufen lassen.
diff --git a/release/sysinstall/help/de_DE.ISO_8859-1/install.hlp b/release/sysinstall/help/de_DE.ISO_8859-1/install.hlp
new file mode 100644
index 0000000..420eb95
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO_8859-1/install.hlp
@@ -0,0 +1,450 @@
+ INSTALLATIONSANLEITUNG FÜR FreeBSD 2.0.5
+
+Diese Beschreibung dokumentiert die Installation von FreeBSD 2.0.5 auf der
+Maschine. Vor dem Beginn ist es ratsam, die Hardware-Anleitung zu studie-
+ren, um sich über die hardware-spezifischen Installationshinweise zu in-
+formieren (Konfiguration der Hardware, worauf man achten sollte usw.).
+
+
+Inhalt:
+=======
+
+1.0 Fragen und Antworten für DOS-Benutzer
+ 1.1 Wie schaffe ich Platz für FreeBSD?
+ 1.2 Kann ich von FreeBSD aus komprimierte DOS-Dateisysteme nutzen?
+ 1.3 Kann ich erweiterte DOS-Partitions nutzen?
+ 1.4 Kann ich DOS-Programme unter FreeBSD laufen lassen?
+
+2.0 Vorbereitung der Installation
+ 2.1 Vor dem Installieren von CDROM
+ 2.2 Vor dem Installieren von Diskette
+ 2.3 Vor dem Installieren von einer DOS-Partition
+ 2.4 Vor dem Installieren von einem QIC- oder SCSI-Bandlaufwerk
+ 2.5 Vor dem Installieren über Netz
+ 2.5.1 Vorbereiten einer NFS-Installation
+ 2.5.2 Vorbereiten einer FTP-Installation
+
+3.0 Installieren von FreeBSD
+
+
+
+1.0 Fragen und Antworten für DOS-Benutzer
+=== =====================================
+
+1.1 Hilfe! Kein Platz mehr! Muß ich nun erst alles löschen?
+
+Wenn auf der Maschine bereits ein DOS installiert ist und nun nur noch
+wenig oder gar kein freier Platz mehr für eine FreeBSD-Installation bleibt,
+so muß man nicht gleich alle Hoffnung aufgeben! Das Hilfsprogramm FIPS,
+das sich im Unterverzeichnis tools/ auf der FreeBSD-CDROM oder auf den
+verschiedenen FreeBSD-FTP-Servern befindet, kann sich hier als sehr nütz-
+lich erweisen.
+
+FIPS erlaubt die Aufteilung einer bestehenden DOS-Partition in zwei Teile,
+wobei der ursprüngliche Inhalt der Originalpartition erhalten bleibt und
+das zweite Stück zum Installieren von FreeBSD verfügbar wird. Man defrag-
+mentiert die Partition zuerst mittels des Programmes ,,DEFRAG'' von DOS 6
+oder mittels der Norton Disk Tools und läßt anschließend FIPS laufen. Das
+Programm erfragt dann den Rest der benötigten Informationen. Danach kann
+man neu booten und FreeBSD in der freigewordenen ,Slice' installieren. Im
+Menüpunkt ,,Distributions'' kann man eine Abschätzung vornehmen, wieviel
+freien Platz man für die gewünschte Installation etwa benötigt.
+
+
+1.2 Kann ich von FreeBSD aus komprimierte DOS-Dateisysteme nehmen?
+
+Nein. Wenn man ein Programm wie Stacker (TM) oder DoubleSpace (TM) be-
+nutzt, so kann FreeBSD nur den Bereich des (DOS-)Dateisystems nutzen, der
+nicht komprimiert worden ist. Der Rest erscheint dann als eine einzige
+große Datei (die Stacker- oder DoubleSpace-Datei). DIESE DATEI UNTER
+KEINEN UMSTÄNDEN LÖSCHEN! Das würde man nachher bereuen!
+
+
+1.3 Kann ich erweiterte DOS-Partitions nehmen?
+
+Diese Möglichkeit bietet FreeBSD 2.0.5 noch nicht, aber sie ist für Version
+2.1 vorgesehen. Die Grundlagen dafür sind bereits geschaffen, es ist nur
+noch 1 % an Restarbeit nötig.
+
+
+1.4 Kann ich DOS-Programme unter FreeBSD laufen lassen?
+
+Noch nicht. Wir hätten das gern irgendwann, aber bisher hat sich noch
+niemand gefunden, der die Arbeit machen würde. Die voranschreitenden
+Arbeiten mit dem Linux-DOSEMU-Programm bringen uns aber näher ans Ziel.
+Diejenigen, die sich an der Arbeit beteiligen möchten, können sich mittels
+einer Mail an hackers@freebsd.org gern melden!
+
+Es gibt jedoch in der ,,Ports collection'' ein nettes Programm namens
+,,pcemu''. Es emuliert einen 8088 sowie ausreichend BIOS-Dienste, um
+DOS-Programme im Textmode laufen zu lassen. Es benötigt ein X-Window-
+System zum Arbeiten.
+
+
+
+2.0 Vorbereitung der Installation
+=== =============================
+
+2.1 Vor dem Installieren von CDROM:
+
+Wenn es sich bei dem CDROM-Laufwerk um eins handelt, was nicht unterstützt
+wird (z. B. ein IDE-CDROM-Laufwerk), dann bitte bei Punkt 2.3 (,,Vor dem
+Installieren von einer DOS-Partition'') weiterlesen.
+
+Es bedarf keiner großen Vorbereitungen, um von einer der FreeBSD-CDROMs von
+Walnut Creek zu installieren. (Andere CDROM-Distributionen können genauso
+einfach zu nutzen zu sein, aber da wir keinerlei Einfluß auf deren Gestal-
+tung haben, können wir darüber nichts aussagen.) Man kann entweder mittels
+des von Walnut Creek gelieferten Scriptes ,,install.bat'' direkt die CDROM
+booten, oder aber man fertigt sich mittels ,,makeflp.bat'' eine Boot-Dis-
+kette an.
+
+Der allereinfachste Weg (von DOS aus) ist, einfach ,,go'' einzutippen. Es
+erscheint ein kleines DOS-Menü, das einen durch die verfügbaren Möglich-
+keiten geleitet.
+
+Will man die Bootdiskette von einem Unix-System aus erstellen, so führt
+vielleicht ein Kommando wie ,,dd if=floppies/boot.flp of=/dev/rfd0'' oder
+aber ,,dd if=floppies/boot.flp of=/dev/floppy'' zum Ziel, abhängig von der
+verwendeten Hardware und dem Betriebssystem.
+
+Sowie man von DOS oder einer Diskette aus gebootet hat, kann man sich im
+Menüpunkt ,,Media menu'' des Installationsprogrammes die CDROM als Medium
+aussuchen und die komplette Distribution davon laden. Es werden keine
+weiteren Medien benötigt.
+
+Nachdem das System installiert ist und man von der Festplatte neu gebootet
+hat, müßte die CD im Verzeichnis /cdrom gemountet sein. Das Hilfsprogramm
+,lndir', das zusammen mit der XFree86-Distribution kommt, kann hier sehr
+nützlich sein: man kann damit einen Baum von symbolischen Links aufbauen,
+der das nicht beschreibbare Medium CDROM auf der Festplatte spiegelt. Als
+kleines Beispiel:
+
+ mkdir /usr/ports
+ lndir /cdrom/ports /usr/ports
+
+Danach kann man dann ,,cd /usr/ports; make'' eintippen, alle Quellen werden
+von der CD gelesen, aber alle Zwischendateien werden unterhalb /usr/ports
+angelegt, das sich zweckmäßig auf einem besser beschreibbaren Medium befin-
+den sollte! :-)
+
+WICHTIGER HINWEIS: Vor Beginn der Installation unbedingt davon überzeugen,
+daß die CDROM im Laufwerk ist, so daß sie beim Test gefunden wird! Dies
+ist auch nötig, wenn man gern die CDROM automatisch während der Installa-
+tion in die Standard-Konfiguration aufgenommen haben möchte (unabhängig
+davon, ob die Installation selbst von CDROM erfolgt). Dies wird sich in
+Version 2.1 ändern, aber gegenwärtig ist dies eine einfache Methode um
+festzustellen, daß die CDROM tatsächlich zugreifbar ist.
+
+Schließlich ist es ein Leichtes, wenn man es anderen ermöglichen will,
+FreeBSD direkt von der CDROM in der eigenen Maschine mittels FTP installie-
+ren zu lassen. Es ist lediglich nach Vollenden der Installation nötig,
+folgende Zeile in die Datei /etc/master.passwd aufzunehmen (bitte mit dem
+Kommando ,,vipw''):
+
+ ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent
+
+Mehr ist nicht nötig. Alle anderen können nun in ihrem Installationsmenü
+,,FTP'' als Medium auswählen und als Servernamen (über den Menüpunkt
+,,Other'') eintragen: ftp://<Adresse dieser Maschine>!
+
+
+2.2 Vor dem Installieren von Diskette
+
+Wenn man von Disketten installieren will, weil z. B. die Hardware nicht
+anders unterstützt wird oder aber für diejenigen, die schwierige Wege
+mögen, so muß man zuerst einige Installationsdisketten vorbereiten.
+
+Die erste Diskette, die man (außer der Bootdiskette) benötigt, ist die
+,,floppies/root.flp''. Sie ist insofern etwas Besonderes, daß es sich
+nicht um eine Diskette mit DOS-Dateisystem handelt, sondern um ein Abbild
+(,image') binärer Daten (genauer gesagt, um ein mit ,gzip' komprimiertes
+cpio-Archiv). Man kann dieses Abbild entweder unter DOS mittels des
+Programmes ,,rawrite.exe'' auf die Diskette bringen, oder unter Unix mit
+dem ,,dd''-Kommando (siehe Bemerkungen in Punkt 2.1 für die Datei
+,,floppies/boot.flp''). Nachdem diese Diskette fertig ist, kann es mit den
+Distributions-Disketten weitergehen.
+
+Man benötigt mindestens so viele 1.44-MB- oder 1.2-MB-Disketten, wie nötig
+sind, um die Dateien im Verzeichnis ,bin' (Binärdistribution) aufzunehmen.
+DIESE Disketten *müssen* DOS-formatiert sein, entweder mit dem Kommando
+,,FORMAT'' in DOS oder dem Dateimanager in Microsoft Windows (TM). Man
+sollte vorformatierten Disketten nicht trauen und sie sicherheitshalber
+nochmals selbst formatieren!
+
+In der Vergangenheit wurden wiederholt Probleme mit mangelhaft formatier-
+ten Datenträgern berichtet, daher hier nochmals obiger Hinweis!
+
+Nach dem Formatieren der Disketten müssen nun die Dateien darauf über-
+tragen werden. Die Distributions-Dateien sind in Stücke zerlegt, von denen
+5 auf eine gewöhnliche 1.44-MB-Diskette passen. Man packt einfach alle
+vorhandenen Dateien auf die Disketten, so viele, wie auf jede draufpassen,
+bis das Ende erreicht ist. Jede Distribution muß dabei in einem eigenen
+Untervezeichnis auf den Disketten abgelegt werden, also z. B.:
+a:\bin\bin.aa, a:\bin\bin.ab, ...
+
+Sowie im Installationsprogramm der Menüpunkt zur Medienauswahl erreicht
+wird, wählt man ,,Floppy'' aus - der Rest wird dann abgefragt.
+
+
+2.3 Vor dem Installieren von einer DOS-Partition
+
+In Vorbereitung der Installation von einer DOS-Partition kopiert man
+einfach alle Dateien der Distribution(en) in ein Verzeichnis, das
+,,FREEBSD'' heißen soll. Um also eine Minimalinstallation von FreeBSD
+vorzunehmen, wobei man die Dateien von der CDROM auf die DOS-Partition
+kopiert:
+
+ C> MD C:\FREEBSD
+ C> XCOPY /S E:\DISTS\BIN C:\FREEBSD
+ C> XCOPY /S E:\FLOPPIES C:\FREEBSD
+
+...in der Annahme, daß auf ,C:' der nötige freie Platz ist und die CDROM
+,E:' genannt wird. Es ist wesentlich, daß auch das Verzeichnis FLOPPIES
+mit kopiert wird, da die Datei ,root.flp' daraus während einer Installation
+von einer DOS-Partition automatisch entnommen wird.
+
+Man kann all die gewünschten ,DISTS' unterhalb ,C:\FREEBSD' plazieren - die
+,BIN'-Distribution ist lediglich das notwendige Minimum.
+
+
+2.4 Vor dem Installieren von einem QIC- oder SCSI-Bandlaufwerk
+
+Die Installation von einem Bandlaufwerk ist wohl die einfachste Variante,
+wenn man keine Online-FTP-Installation oder Installation von CDROM vorneh-
+men kann. Das Installationsprogramm erwartet die Distributions-Dateien
+einfach im tar-Format auf dem Band. Nachdem man also alle interessierenden
+Dateien geholt hat, kann man das Band einfach mit folgenden Kommandos er-
+stellen:
+
+ cd /freebsd/distdir
+ tar cvf /dev/rwt0 (or /dev/rst0) dist1 .. dist2
+
+Das Verzeichnis ,floppies/' muß als eine der ,dist's in obigem Beispiel mit
+angegeben worden sein, da das Installationsprogram vom Band die Datei
+,floppies/root.flp' lesen muß.
+
+Während der Installation muß es auch gewährleistet sein, daß man genügend
+Platz in einem Zwischenverzeichnis besitzt (der Name dafür wird abgefragt),
+um den KOMPLETTEN Inhalt des erzeugten Installationsbandes dort ablegen zu
+können. Da sich Bänder nicht wahlfrei zugreifen lassen, benötigt man
+vorübergehend die gleiche Menge an Plattenplatz zusätzlich, die auch auf
+das Band geschrieben worden ist!
+
+WICHTIGER HINWEIS: Zu Beginn der Installation muß sich das Band bereits im
+Laufwerk befinden, *bevor* man die Bootdiskette startet. Damit wird
+sichergestellt, daß der Test während der Installation das Band auch
+wirklich erkennt.
+
+
+2.5 Vor dem Installieren über Netz
+
+Netzwerkinstallationen kann man über drei verschiedene Kommunikations-
+medien vornehmen:
+
+ Serieller port: SLIP oder PPP
+ Parallelport: PLIP (mittels ,Laplink'-Kabel)
+ Ethernet: mittels Standard-Ethernet-Adapter (einschließlich
+ einiger PCMCIA-Adapter).
+
+SLIP-Unterstützung ist eher primitiv und auf festverdrahtete Verbindungen
+beschränkt (beispielsweise ein serielles Kabel zwischen einem Laptop und
+einem anderen Computer). Die Festverdrahtung ist nötig, da die Installa-
+tion über SLIP derzeit keien Möglichkeiten zum Aufbau einer Wählverbindung
+anbietet; letzteres kann man aber mittels PPP machen, das man ohnehin
+soweit möglich dem SLIP vorziehen sollte.
+
+Bei Benutzung eines Modems ist PPP sicherlich die einzige Chance. Man
+sollte sich rechtzeitig die Informationen des Internet-Dienstanbieters
+bereitlegen, da sie früh innerhalb des Installationsprozesses abge-
+fragt werden. Minimal wird die IP-Adresse des Dienstanbieters sowie
+die eigene benötigt (die aber auch freigelassen werden kann, so daß
+PPP sie mit der Gegenseite aushandelt). Auch ist Kenntnis der ver-
+schiedenen ,,AT''-Kommandos des benutzten Modems nötig, da das Wähl-
+programm für PPP keine Kenntnisse über Modems besitzt.
+
+Falls eine Festverbindung zu einer anderen FreeBSD-Maschine (mit Ver-
+sion 2.0R oder höher) benutzt wird, so kann man auch die Variante mit
+einem ,,Laplink''-Kabel über den Parallelport in Betracht ziehen. Die
+typische Datenrate über einen Parallelport ist um einiges größer als
+das, was sich über serielle Leitungen erzielen läßt; Geschwindigkeiten
+um die 50 KB/s sind nicht ungewöhnlich.
+
+Schließlich ist für eine schnellstmögliche Installation ein Ethernet-
+Adapter natürlich eine gute Variante! FreeBSD unterstützt die meisten
+gängigen Ethernet-Karten, wobei sich im Hardware-Wegweiser (im Menü-
+punkt ,,documentation'' auf der Bootdiskette) eine Tabelle der nötigen
+Einstellungen findet. Bei Nutzung eines der unterstützten PCMCIA-
+Adapter muß sichergestellt sein, daß sie _vor_ dem Einschalten des
+Laptops eingesteckt sind! Leider unterstützt FreeBSD gegenwärtig
+keinen Austausch von PCMCIA-Karten im Betrieb.
+
+Natürlich benötigt man auch noch die IP-Adresse im Netzwerk, die
+,,Netzwerkmaske'' für das gewählte Netzwerk, sowie den Maschinennamen.
+Der lokale Systemverwalter oder Netzwerkverantwortliche kann über
+diese Angaben informieren. Für den Zugriff auf andere Hosts über
+Namen anstatt unhandlicher IP-Adressen ist auch noch die Adresse eines
+Name-Servers und ggf. eines Gateways vonnöten (bei PPP in der Regel
+der Internet-Dienstanbieter). All diese Angaben sollten man _vor_
+Beginn der Installation vom zuständigen System- oder Netzwerkverwalter
+einholen.
+
+Sowie man auf irgendeine Weise eine Netzwerkanbindung aufgebaut hat, kann
+man die Installation über NFS oder FTP fortsetzen.
+
+
+2.5.1 Vorbereiten einer NFS-Installation
+
+ Eine Installation über NFS ist recht einfach: man kopiert die
+ gewünschten FreeBSD-Distributions-Dateien irgendwo auf einen
+ Server und gibt deren Standort in der NFS-Medienauswahl an.
+
+ Falls dieser Server nur Zugriffe über einen ,,privilegierten''
+ Port erlaubt (wie allgemein bein Sun-Workstations üblich), so
+ muß man die entsprechende Option im ,,Options''-Menü setzen,
+ bevor man weitermacht.
+
+ Falls man nur eine schlechte Ethernet-Karte besitzt, die sehr
+ langsam arbeitet, so sollte man ebenfalls die entsprechende
+ Option einschalten.
+
+ Damit eine NFS-Installation funktioniert, muß der Server das
+ Mounten von Unterverzeichnissen erlauben; hat man also beispiels-
+ weise die Distribution von FreeBSD 2.0.5 im Verzeichnis
+ ziggy:/usr/archive/stuff/FreeBSD untergebracht, so muß der Server
+ das direkte Mounten von /usr/archive/stuff/FreeBSD erlauben, nicht
+ nur /usr oder /usr/archive/stuff.
+
+ In FreeBSD's /etc/export-Datei wird dies mittels der Option
+ ``-alldirs'' gesteuert. Andere NFS-Server haben dafür andere
+ Konventionen. Wenn man während der Installation Meldungen vom
+ Server bekommt, die ,,Permission denied'' heißen, so ist dies
+ wahrscheinlich das Problem!
+
+
+2.5.2 Vorbereiten einer FTP-Installation
+
+ Eine Installation über FTP kann man von jedem Server vornehmen, der
+ eine einigermaßen aktuelle Kopie der FreeBSD-Version 2.0.5 gespie-
+ gelt hält. Das Menü ,,FTP sites'' enthält eine gute Auswahl von
+ FTP-Servern aus der ganzen Welt.
+
+ Wenn man von einem anderen Server installieren will, der nicht
+ aufgeführt ist, oder Probleme mit der Konfiguration des Name-
+ Servers hat, so kann man durch Auswahl des Menüpunktes ,,Other'' in
+ diesem Menü auch seine eigene URL eingeben. Da eine URL auch eine
+ numerische IP-Adresse enthalten kann, kann man bei Fehlen eines
+ Name-Servers also auch eingeben:
+
+ ftp://192.216.222.4/pub/FreeBSD/2.0.5-RELEASE
+
+ Wenn man mittels FTP in einer Umgebung installiert, die hinter
+ einem ,,Firewall'' gelegen ist, so sollte man ,,Passive mode'' FTP
+ benutzen (was bereits standardmäßig eingestellt ist). Falls man
+ aus irgendeinem Grunde auf einen Server angewiesen ist, der keinen
+ Passiv-Modus unterstützt, kann man im ,,Options''-Menü stattdessen
+ Aktiv-Modus auswählen.
+
+
+3.0 Installieren von FreeBSD
+--- ------------------------
+
+Nachdem man die entsprechenden Vorbereitungen getroffen hat, sollte die
+Installation von FreeBSD ohne Schwierigkeiten vor sich gehen.
+
+Falls dies doch nicht zutrifft, so hat man vielleicht einen wichtigen
+Hinweis bei der Vorbereitung der Installationsmedien verpaßt (siehe
+Abschnit 2.X) und sollte nochmals dort nachlesen? Im Falle von Hardware-
+problemen (oder wenn FreeBSD gar nicht erst bootet) kann die Hardware-
+Anleitung auf der Boot-Diskette Hinweise zur Problembeseitigung geben.
+
+Die FreeBSD-Bootdiskette enthält alle benötigte Online-Dokumentation, damit
+man sich in der Installation zurechtfindet. Falls dies nicht der Fall ist,
+so hätten wir gern gewußt, an welcher Stelle die Probleme auftauchen! Es
+ist das Ziel von FreeBSD's Installationsprogramm (sysinstall), ausreichend
+selbstdokumentierend zu sein, um langwierige ,,Schritt für Schritt''-
+Anleitungen hinfällig werden zu lassen. Wir werden sicher noch ein wenig
+brauchen, bis dieses Ziel erreicht ist -- aber es ist das Ziel!
+
+Unterdessen mag die folgende ,,typische Bootreihenfolge'' ganz nützlich
+sein:
+
+o Die Diskette booten. Nach einer Folge von Boot-Schritten, die je nach
+ der Hardware zwischen 30 Sekunden und 3 Minuten dauern kann, sollte das
+ Anfangsmenü erscheinen. Wenn die Diskette gar nicht bootet oder das
+ System während des Bootens hängenbleibt, sollte man den Abschnitt mit
+ ,,Fragen und Antworten'' in der Hardware-Anleitung hinsichtlich möglicher
+ Ursachen konsultieren.
+
+o Taste F1 drücken. Es folgen einige grundlegende Hinweise über die
+ Nutzung des Menüsystems. Alle diejenigen, die dieses Menüsystem noch
+ nicht zuvor genutzt haben, sollten sich das BITTE sorgfältig durchlesen!
+
+o Für diejenigen, die Englisch nicht als Muttersprache sprechen, sei die
+ Auswahl einer anderen Sprache im Menüpunkt ,,Language'' empfohlen (was ja
+ ganz offensichtlich geschehen ist :). Ein Teil der Dokumentation wird
+ dann in der gewählten Sprache anstatt in Englisch angeboten.
+
+o Auswahl der Sonderwünsche im Menüpunkt ,,Options''.
+
+o ,,Proceed'' anwählen, um mit dem Istallationsmenü fortzusetzen.
+
+Das Installationsmenü:
+
+o Man kann in diesem Menü alles vornehmen, ohne am bestehenden System
+ irgendetwas zu ändern, solange man nicht ,,Commit'' auswählt; erst damit
+ werden alle angeforderten Änderungen auch tatsächlich ausgeführt.
+
+ Wenn an irgendeiner Stelle Probleme auftauchen, so bringt die Taste F1
+ normalerweise die richtigen Hinweise für das Bild, in dem man sich gerade
+ befindet.
+
+ o Der erste Schritt ist normalerweise ,Partition', bei dem man
+ die von FreeBSD zu nutzenden Plattenlaufwerke auswählen kann.
+
+ o Danach kann man mit dem ,Label'-Editor den für FreeBSD vorge-
+ sehenen Platz aufteilen oder aber eine nicht-FreeBSD-Partition
+ (z. B. DOS) ins System einbinden.
+
+ o Danach wählt man im ,Media'-Menü das gewünschte Installations-
+ medium. Sowie alle benötigten Informationen für die Installation
+ beisammen sind, beendet sich dieses Menü selbst; andernfalls
+ werden weitere Fragen gestellt (abhängig vom Medium).
+
+ o Schließlich bestätigt man mit dem ,Commit'-Menüpunkt auf einmal
+ alle ausgewählten Aktionen (ohne diese Bestätigung wurde noch
+ nichts auf die Festplatte geschrieben). Es werden alle Infor-
+ mationen über neue oder geänderte Partitions geschrieben, die
+ Dateisysteme angelegt oder zerstörungsfrei neu markiert (abhängig
+ von der ,,newfs''-Markierung im Label-Editor) und schließlich
+ alle gewünschten Distributions ausgepackt.
+
+ o Über das ,Configure'-Menü kann man die FreeBSD-Installation
+ weiter konfigurieren. Man kann hier menügesteuert die einzelnen
+ Vorgabewerte für Systemparameter einstellen. Einige Punkte, wie
+ z. B. die Netzwerkparameter, sind besonders wesentlich, wenn man
+ von CDROM/Band/Diskette installiert hat und daher den Netzwerk-
+ zugang noch nicht konfiguriert hat (sofern vorhanden). Wenn man
+ hier bereits das Netzwerk richtig konfiguriert, so hat man schon
+ beim ersten Neustart von der Festplatte einen funktionierenden
+ Zugriff zum Netz.
+
+ o Mittels ,Exit' gelangt man wieder zum Hauptmenü.
+
+
+An dieser Stelle hat man seine Arbeit mit dem sysinstall-Programm beendet.
+Man kann schließlich ,Quit' anwählen. Wurde sysinstall als Erstinstalla-
+tionsprogramm benutzt (bevor das System also eingerichtet war), so erfolgt
+an dieser Stelle ein Neustart. Hatte man einen Boot-Manager ausgewählt, so
+erscheint dann ein kleines Boot-Menü mit den Zeichen ,,F?'' als Eingabe-
+aufforderung. Nachdem man die entsprechende Funktionstaste für FreeBSD
+gedrückt hat (wird angezeigt), sollte FreeBSD von der Festplatte aus ge-
+startet werden.
+
+Falls dies aus irgendeinem Grunde nicht klappt, sei wiederum auf den
+Abschnitt ,,Fragen und Antworten'' in der Hardware-Anleitung verwiesen!
+
+ Jordan (für die Anleitung)
+ Jörg (für die deutsche Übersetzung)
+
+---- Ende der Installations-Anleitung ---
diff --git a/release/sysinstall/help/de_DE.ISO_8859-1/language.hlp b/release/sysinstall/help/de_DE.ISO_8859-1/language.hlp
new file mode 100644
index 0000000..cd7a834
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO_8859-1/language.hlp
@@ -0,0 +1,17 @@
+In diesem Menü kann man die Vorzugssprache einstellen. Vorerst wird
+damit nur die Sprache ausgewählt, in der die diversen Hilfedateien
+angezeigt werden.
+
+In späteren Versionen werden davon auch das Tastaturlayout, der Bild-
+schirmzeichensatz und verschiedene NLS-Einstellungen betroffen sein
+(sysinstall selbst wird dann auch ,,message catalogs'' benutzen, so
+daß alle Menüs automatisch in der richtigen Sprache erscheinen). Auch
+sind weitere Internationalisierungsmaßnahmen vorgesehen, so daß die
+entsprechenden Standards eingehalten werden.
+
+Solange diese Verbesserungen noch nicht vorgenommen sind, mag es
+einfacher erscheinen, die Datei ,,/etc/sysconfig'' mit der Hand zu
+editieren, sobald das System erstmals vollständig installiert ist.
+Diese Datei enthält eine Anzahl (allerdings englischer) Kommentare,
+die die jeweiligen Änderungen beschreiben, sowie auch einige Beispiele
+nicht-englischer Voreinstellungen.
diff --git a/release/sysinstall/help/de_DE.ISO_8859-1/media.hlp b/release/sysinstall/help/de_DE.ISO_8859-1/media.hlp
new file mode 100644
index 0000000..a591468
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO_8859-1/media.hlp
@@ -0,0 +1,30 @@
+Von den folgenden Medien kann man installieren:
+
+ CDROM - eines der folgenden Laufwerke ist nötig:
+
+ Sony CDU 31/33A
+ Matushita/Panasonic "Sound Blaster" CDROM.
+ Mitsumi FX-001{A-D} (alte nicht-IDE Laufwerke).
+ SCSI - Jedes beliebige Standard-SCSI-CDROM-Laufwerk, das
+ an einen unterstützten Controller angeschlossen ist
+ (siehe auch Hardware-Wegweiser).
+
+ DOS - eine primäre DOS-Partition, auf die die notwendigen
+ FreeBSD-Distribution-Dataien kopiert worden sind (also
+ z. B. (C:\FREEBSD\).
+
+ FS - setzt ein existierendes FreeBSD-System voraus, in dem
+ die Dateien der neuen Distribution abgelegt worden sind.
+
+ Diskette - Entnahme der Distributions-Dateien von einer oder
+ mehreren DOS-formatierten Disketten.
+
+ FTP - Entnahme der Distributions-Dateien von einem anonymen
+ FTP-Server (eine Liste wird angeboten).
+
+ NFS - Einlesen der Distributions-Dateien über einen irgendwo
+ gelegenen NFS-Server (dessen Zugriffsrechte dies natür-
+ lich erlauben müssen!)
+
+ Tape - Einlesen der Distributions-Dateien in ein Zwischenver-
+ zeichnis und Auspacken von dort.
diff --git a/release/sysinstall/help/de_DE.ISO_8859-1/network_device.hlp b/release/sysinstall/help/de_DE.ISO_8859-1/network_device.hlp
new file mode 100644
index 0000000..1d4e498
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO_8859-1/network_device.hlp
@@ -0,0 +1,56 @@
+Eine Netzwerkinstallation kann über eine von drei verschiedenen Arten
+von Verbindungen vorgenommen werden:
+
+ Serielle Ports: SLIP / PPP
+ Parallelport: PLIP (benötigt ein ,,Laplink''-Kabel)
+ Ethernet: von einem Standard-Ethernet-Controller (ein-
+ schließlich einiger PCMCIA-Controller)
+
+Unterstützung für SLIP ist eher primitiv und auf festverdrahtete Ver-
+bindungen beschränkt, wie z. B. eine serielle Leitung zwischen einem
+Laptop und einem anderen PC. Es existiert gegenwärtig keine Möglich-
+keit, eine Wählverbindung über ein Modem herzustellen. Dies kann je-
+doch mittels des PPP-Programmes vorgenommen werden, was soweit möglich
+stets dem SLIP vorgezogen werden sollte. Bei der Auswahl eines
+seriellen Ports wird später die Möglichkeit geboten, die Parameter für
+das slattach-Kommando anzugeben. Es wird davon ausgegangen, daß in
+diesem Moment entweder slattach oder ein anderes geeignetes Kommando
+auf der Gegenseite der Verbindung gestartet worden ist, um die Verbin-
+dung aufzubauen. FreeBSD wird dann über diesen Anschluß installiert,
+wobei die Geschwindigkeit bis zu 115.2 kBaud betragen kann (was die
+empfehlenswerte Geschwindigkeit für eine festverdrahtete Leitung ist).
+
+Bei Benutzung eines Modems ist PPP sicherlich die einzige Chance. Man
+sollte sich rechtzeitig die Informationen des Internet-Dienstanbieters
+bereitlegen, da sie früh innerhalb des Installationsprozesses abge-
+fragt werden. Minimal wird die IP-Adresse des Dienstanbieters sowie
+die eigene benötigt (die aber auch freigelassen werden kann, so daß
+PPP sie mit der Gegenseite aushandelt). Auch ist Kenntnis der ver-
+schiedenen ,,AT''-Kommandos des benutzten Modems nötig, da das Wähl-
+programm für PPP keine Kenntnisse über Modems besitzt.
+
+Falls eine Festverbindung zu einer anderen FreeBSD-Maschine (mit Ver-
+sion 2.0R oder höher) benutzt wird, so kann man auch die Variante mit
+einem ,,Laplink''-Kabel über den Parallelport in Betracht ziehen. Die
+typische Datenrate über einen Parallelport ist um einiges größer als
+das, was sich über serielle Leitungen erzielen läßt; Geschwindigkeiten
+um die 50 KB/s sind nicht ungewöhnlich.
+
+Schließlich ist für eine schnellstmögliche Installation ein Ethernet-
+Adapter natürlich eine gute Variante! FreeBSD unterstützt die meisten
+gängigen Ethernet-Karten, wobei sich im Hardware-Wegweiser (im Menü-
+punkt ,,documentation'' auf der Bootdiskette) eine Tabelle der nötigen
+Einstellungen findet. Bei Nutzung eines der unterstützten PCMCIA-
+Adapter muß sichergestellt sein, daß sie _vor_ dem Einschalten des
+Laptops eingesteckt sind! Leider unterstützt FreeBSD gegenwärtig
+keinen Austausch von PCMCIA-Karten im Betrieb.
+
+Natürlich benötigt man auch noch die IP-Adresse im Netzwerk, die
+,,Netzwerkmaske'' für das gewählte Netzwerk, sowie den Maschinennamen.
+Der lokale Systemverwalter oder Netzwerkverantwortliche kann über
+diese Angaben informieren. Für den Zugriff auf andere Hosts über
+Namen anstatt unhandlicher IP-Adressen ist auch noch die Adresse eines
+Name-Servers und ggf. eines Gateways vonnöten (bei PPP in der Regel
+der Internet-Dienstanbieter). All diese Angaben sollten man _vor_
+Beginn der Installation vom zuständigen System- oder Netzwerkverwalter
+einholen.
diff --git a/release/sysinstall/help/de_DE.ISO_8859-1/partition.hlp b/release/sysinstall/help/de_DE.ISO_8859-1/partition.hlp
new file mode 100644
index 0000000..90041c0
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO_8859-1/partition.hlp
@@ -0,0 +1,85 @@
+Dies ist der DiskLabel-Editor von FreeBSD.
+
+Für Neulinge in dieser Installation ist es zuerst wichtig, FreeBSD's neues
+Prinzip der ,,Slices'' zu verstehen, das auf die Plattenspeicher angewandt
+wird. Es ist nicht sehr schwer. Ein ,,vollständig angegebener Slice-
+Name'', d. h. der Name der Gerätedatei, die unterhalb von /dev angespro-
+chen wird, um mit dem Gerät zu kommunizieren, läßt sich wahlweise in
+3 Teile zerlegen:
+
+ Das erste ist der Name der Platte. In der Annahme, daß ein
+ System zwei SCSI-Platten haben möge, wären das ,sd0' und
+ ,sd1'.
+
+ Das nächste ist die ,,Slice''- (oder ,,primäre Partition''-)
+ Nummer. Wenn sd0 also z. B. zwei solche Partitions hat, eine
+ für FreeBSD und eine für DOS, so ergibt das sd0s1 und sd0s2.
+ Ist dann weiterhin sd1 völlig für FreeBSD reserviert, so hat
+ sie nur die Slice sd1s1.
+
+ Wenn dann weiterhin eine Slice vom FreeBSD-Typ ist, so besitzt
+ diese eine Reihe (verwirrenderweise auch so genannter) ,,Par-
+ titions''. Diese FreeBSD-Partitions bilden die Grundlage für
+ die verschiedenen Dateisysteme oder den Swap-Bereich. Für die
+ genannte hypothetische Maschine könnte das Layout für sd0 etwa
+ so aussehen:
+
+ Name Mountpunkt
+ ---- ----------
+ sd0s1a /
+ sd0s1b <Swap-Bereich>
+ sd0s1e /usr
+
+ Aus historischen Gründen existiert auch noch ein Kurzschluß,
+ eine ,,Kompatibilitäts-Slice'', mit der man einfacher auf die
+ erste FreeBSD-Slice einer Platte zugreifen kann. Damit
+ arbeiten auch die Programme, die mit dem Slice-Schema noch
+ nicht zurechtkommen, wie gehabt. Die Kompatibilitäts-Slice
+ für genannte Platte würde dann so aussehen:
+
+ Name Mountpoint
+ ---- ----------
+ sd0a /
+ sd0b <Swap-Bereich>
+ sd0e /usr
+
+ Die Zuordnung der Kompatibilitäts-Slice zur ersten gefundenen
+ FreeBSD-Slice (in diesem Falle sd0s1) erfolgt automatisch. Es
+ kann mehrere FreeBSD-Slices auf einer Platte geben, aber nur
+ die erste wird als Kompatibilitäts-Slice zugeordnet!
+
+ Möglicherweise wird die Kompatibilitäts-Slice später elimi-
+ niert, aber gegenwärtig ist sie noch aus folgenden Gründen
+ nötig:
+
+ 1. Wie bereits erwähnt, kennen einige Programme noch
+ nicht das Slice-Prinzip und benötigen noch Zeit,
+ bis sie überarbeitet worden sind.
+
+ 2. Im Moment sind die Bootblöcke von FreeBSD noch
+ nicht in der Lage, von irgendeinem Root-Dateisystem
+ außer dem in der Kompatibilitäts-Slice zu booten.
+ Daher wird die Root also immer auf ,,sd0a'' er-
+ scheinen (bezogen auf das Beispiel), auch wenn sie
+ sich eigentlich auf sd0s1a befindet und ansonsten
+ über den vollen Slice-Namen angesprochen wird.
+
+Sowie man diese Prinzipien verstanden hat, ist die Benutzung des Disk-
+label-Editors eigentlich einfach. Entweder, man teilt die FreeBSD-
+Slices, wie sie oben auf dem Bildschirm angezeigt werden, in kleinere
+Stücke auf (in der Mitte des Schirmes zu sehen) und plaziert dann
+später FreeBSD-Dateisysteme darauf, oder aber man mountet existierende
+Slices/Partitions in die Dateisystemhierarchie; dieser Editor erlaubt
+beides. Da eine DOS-Partition aus FreeBSD-Sicht auch nur eine weitere
+Slice ist, kann man sie mit diesem Editor auch ganz einfach in die
+Dateisystemhierarchie eingliedern. Für FreeBSD-Partitions kann man
+auch noch den ,,newfs''-Status umschalten, so daß die Partitions ent-
+weder von Grund auf neu-/wiedererzeugt werden oder aber einfach nur
+überprüft und gemountet (wobei ihr Inhalt erhalten bleibt).
+
+Wenn man fertig ist, beendet man den Editor mit ,,Q''.
+
+Es werden keinerlei Änderungen auf die Platte geschrieben, solange man
+nicht mittels ,,(C)ommit'' aus dem Installationsmenü alles bestätigt
+hat! Der Disklabel-Editor (und der ,,FDISK Partition''-Editor) ar-
+beiten mit einer Art Kopie der Disklabels.
diff --git a/release/sysinstall/help/de_DE.ISO_8859-1/slice.hlp b/release/sysinstall/help/de_DE.ISO_8859-1/slice.hlp
new file mode 100644
index 0000000..c2c92e2
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO_8859-1/slice.hlp
@@ -0,0 +1,28 @@
+Dies ist der Editor für die primären Partitions (oder ,,Slices'').
+
+Unten werden die möglichen Kommandos angezeigt, ober der Inhalt des Master
+Boot Records. Man kann mit den Pfeiltasten nach oben und unten fahren und
+mittels ,,(C)reate'' eine neue Partition anlegen, wenn sich der ,Balken'
+über einer Partition befindet, deren Status als ,,unused'' markiert ist.
+
+Hier die Zeichenerklärung für das Feld ,,flags'':
+
+ '=' -- Partition ist ordnungsgemäß ausgerichtet.
+ '>' -- Die Partition endet nicht unterhalb von Zylinder 1024.
+ 'R' -- Ist markiert, das Root-Dateisystem zu enthalten.
+ 'B' -- Partition benutzt Fehlersektorenbehandlung nach Bad144.
+ 'C' -- Dies ist die FreeBSD-2.0-Kompatibilitätspartition.
+ 'A' -- Die Partition ist als ,aktiv' (bootfähig) markiert.
+
+Bei der Auswahl einer Partition für Bad144-Behandlung wird diese vor
+Erzeugung der Dateisystem auf fehlerhafte Stellen untersucht.
+
+Wenn keine Partition als ,aktiv' markiert ist, so muß man entweder einen
+Boot-Manager installieren (dies wird später im Installationsprozeß ange-
+boten) oder aber eine als ,aktiv' markieren, bevor man dieses Menü wieder
+verläßt.
+
+Es werden keinerlei Änderungen auf die Platte geschrieben, solange man
+nicht mittels ,,(C)ommit'' aus dem Installationsmenü alles bestätigt hat!
+Der ,,FDISK Partition''-Editor (und der Disklabel-Editor) arbeiten mit
+einer Art Kopie der Disklabels.
diff --git a/release/sysinstall/help/de_DE.ISO_8859-1/tcp.hlp b/release/sysinstall/help/de_DE.ISO_8859-1/tcp.hlp
new file mode 100644
index 0000000..d2a3b27
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO_8859-1/tcp.hlp
@@ -0,0 +1,32 @@
+In diesem Menü kann man sowohl die allgemeinen Netzwerkparameter ein-
+stellen (Hostname, Domainname, DNS-Server usw.) als auch die Parameter für
+ein bestimmtes Interface (das vom zuvor angezeigten Menü ausgewählt worden
+ist).
+
+Man kann zwischen den Feldern mittels der Tasten TAB, Rückwärts-TAB (Shift+
+TAB) und RETURN hin- und herspringen. Mittels DELETE oder BACKSPACE kann
+man ein Feld editieren. Mittels ^A (control-A) gelangt man an den Anfang
+einer Zeile, mittels ^E (control-E) ans Ende. ^F (control-F) geht ein
+Zeichen nach vorn, ^B (control-B) eins nach hinten; ^D (control-D) löscht
+das Zeichen unter dem Cursor, und ^K (control-K) löscht alles bis zum Zei-
+lenende. Im Prinzip handelt es sich um die wesentlichsten Emacs-Editier-
+kommandos.
+
+Das Feld ,,Extra options to ifconfig'' ist ein wenig besonders (oder auch:
+ein Hack :-).
+
+Damit kann man beispielsweise die Gegenseite einer SLIP- oder PLIP-Ver-
+bindung angeben (einfach die numerische IP-Adresse eingeben), oder aber
+einen bestimmten Steckverbinder einer Ethernetkarte auswählen, falls
+mehrere zur Auswahl sind (z. B. AUI, 10BaseT [twisted pair], 10Base2 [BNC]
+usw.). Die folgenden Steckverbinder werden akzeptiert:
+
+ link0 - AUI * höchste Wertigkeit
+ link1 - BNC
+ link2 - UTP * niedrigste Wertigkeit
+
+Man kann also eins der Worte ,,link0'', ,,link1'' oder ,,link2'' in das
+,,Extra options''-Feld eintragen.
+
+Am Ende einfach ,,OK'' anwählen.
+
diff --git a/release/sysinstall/help/de_DE.ISO_8859-1/usage.hlp b/release/sysinstall/help/de_DE.ISO_8859-1/usage.hlp
new file mode 100644
index 0000000..a8beada
--- /dev/null
+++ b/release/sysinstall/help/de_DE.ISO_8859-1/usage.hlp
@@ -0,0 +1,57 @@
+BENUTZUNG DES SYSTEMS
+=====================
+
+TASTE WIRKUNG
+----- -------
+PFEIL NACH OBEN Zum vorherigen Feld (oder eine Zeile nach oben im Text).
+PFEIL NACH UNTEN Zum nächsten Feld (oder eine Zeile nach unten im Text).
+TAB Zum nächsten Feld oder zur nächsten Gruppe.
+PFEIL NACH RECHTS Zum nächsten Feld oder zur nächsten Gruppe (wie TAB).
+SHIFT-TAB Zum vorherigen Feld oder zur vorherigen Gruppe.
+PFEIL NACH LINKS Zum vorherigen Feld oder zur vorherigen Gruppe (wie SH-TAB).
+RETURN Menüpunkt auswählen.
+BILD NACH OBEN Innerhalb von Textkästen: eine Seite zurück.
+BILD NACH UNTEN Innerhalb von Textkästen: eine Seite vor.
+LEERTASTE In Menüs mit mehreren Auswahlmöglichkeiten: umschalten.
+F1 Hilfe (sofern unterstützt).
+
+Wenn an den Seiten eines Menüs kleine "^(-)"- oder "v(+)"-Symbole zu
+sehen sind, so bedeutet das, daß weitere Menüpunkte ober- oder unter-
+halb des aktuellen Punktes existieren, die (infolge fehlenden Platzes
+auf dem Bildschirm) gerade nicht dargestellt werden können. Mittels
+der Pfeiltasten (nach oben oder unten) kann man das Menü rollen las-
+sen. Sowie eins der Symbole verschwindet heißt das, daß man ganz oben
+oder unten im Menü ist.
+
+In Textkästen wird die Stelle, an der man sich befindet, als Prozent-
+zahl in der rechten unteren Ecke angezeigt. 100 % bedeuten, daß man
+sich am Ende befindet.
+
+Die Auswahl von ,,OK'' in einem Menü bewirkt die durch dieses Menü
+ausgelöste Handlung. Die Auswahl von ,,Cancel'' bewirkt einen Abbruch
+und die Rückkehr zum vorherigen Menü.
+
+BESONDERE EIGENSCHAFTEN
+=======================
+
+Menüpunkte können auch durch Eintippen des ersten Zeichens ihres
+Namens ausgewählt werden, sofern dies eindeutig ist. In diesem Falle
+werden die entsprechenden Zeichen hervorgehoben.
+
+Der Bildschirmtreiber enthält auch einen Puffer, mit dem man sich die
+Sachen ansehen kann, die bereits herausgerollt worden sind. Um diese
+Funktion zu nutzen, muß man die ,,ScrollLock''-Taste (,,Rollen V'')
+drücken und danach die Pfeiltasten oder die Bild-auf/ab-Tasten.
+Dieser Modus wird durch nochmaliges Drücken der ,,ScrollLock''-Taste
+wieder verlassen. Diese Möglichkeit ist vor allem nützlich für
+Subshells oder andere ,,Expertenmodi'', die keine Menüs nutzen.
+
+Sowie das System vollständig installiert ist und im Multi-User-Modus
+läuft, werden mehrere ,,virtuelle Terminals'' aktiviert, auf denen man
+parallel mehrere aktive Sessions bedienen kann. Mittels ALT-F<n> kann
+zwischen diesen umgeschaltet werden, wobei ,,F<n>'' die Funktionstaste
+(F-Taste) ist, die der Nummer des gewünschten Bildschirms entspricht.
+Das System kommt vorkonfiguriert mit 3 virtuellen Terminals. Wenn
+mehr davon gewünscht werden, so kann dies nach dem Hochfahren des
+Systems geschehen, indem man sie in der Datei /etc/ttys freischaltet.
+Die maximale Anzahl ist 12.
diff --git a/release/sysinstall/help/distributions.hlp b/release/sysinstall/help/distributions.hlp
new file mode 100644
index 0000000..b81efbf
--- /dev/null
+++ b/release/sysinstall/help/distributions.hlp
@@ -0,0 +1,88 @@
+An ``X-'' prefixed before a distribution set means that the XFree86
+3.1.1u1 base distribution, libraries, manual pages, SVGA server and a
+set of default fonts will be selected in addition to the set itself.
+
+If you select such a set, you will also be presented with a set of
+menus for customizing the selections to your desired X Window System
+setup.
+
+N.B. All references in this document to `complete source' mean the
+complete source tree minus any legally encumbered cryptography code.
+
+The current "canned" installations are as follows:
+
+Developer: Base ("bin") distribution, man pages, dictionary
+ files, profiling libraries and the complete source tree.
+
+
+Kern-Developer: As above, but with only kernel sources instead of
+ the complete source tree.
+
+
+User: The base distribution, man pages, dictionary files and
+ the FreeBSD 1.x and 2.0 compatibility sets.
+
+
+Minimal: Only the base distribution.
+
+
+Everything: The base distribution, man pages, dictionary files,
+ profiling libraries, the FreeBSD 1.x and the FreeBSD 2.0
+ compatibility libraries, the complete source tree,
+ games and your choice of XFree86 distribution components.
+ N.B. Still no cryptocraphy source code!
+
+
+Custom: Allows you to modify or create your distribution set on
+ a piece-by-piece basis.
+
+
+Reset: Clear all currently selected distributions.
+
+
+---
+
+When using Custom, most of the sub-distribution choices are fairly
+obvious, though two possible exceptions may be the "commerce" and
+"xperimnt" distributions:
+
+ * The "commerce" directory, as its name implies, is devoted to
+ commercial offerings. This includes commercial products released
+ under special arrangement, limited functionality demos, shareware
+ products (you like it, you buy it), etc.
+
+ At the time of this writing, there are unfortunately not enough
+ commercial offerings to justify a fully split distribution set,
+ so each product is available both as a subdirectory and as part
+ of one large archive file. If you select "commerce" from the
+ distributions submenus then you'll get the big file containing
+ the entire collection copied to your hard disk. Don't do this
+ unless you've got at least 10MB to devote to it!
+
+
+ * The "xperimnt" directory contains, not surprisingly, experimental
+ offerings. Unfinished (or work-in-progress) features, special
+ purpose drivers and packages, strange proof-of-concept stuff,
+ it's a mixed bag! Select this item on a distribution menu and
+ you'll get the whole collection (between 10 and 30MB).
+
+
+ If you're installing from CDROM then all of the commercial and
+ "experimental" offerings are also easily available in their
+ individual subdirectories and can be copied to hard disk at
+ any time.
+
+
+You may also notice that certain distributions, like "des" and "krb",
+are marked "NOT FOR EXPORT!" This is because it's illegal to
+export them from the United States (or any other country which
+considers encryption technology to be on its restricted export
+list). Since breaking this law only gets the _originating_ site
+(US!) in trouble, please do not load these distributions from U.S.
+servers!
+
+A number of "foreign" servers do exist for the benefit of
+non-U.S. sites, one of which is "skeleton.mikom.csir.co.za".
+
+Please get all such export restricted software from there
+if you are outside the U.S., thanks!
diff --git a/release/sysinstall/help/drives.hlp b/release/sysinstall/help/drives.hlp
new file mode 100644
index 0000000..ef1c4fe
--- /dev/null
+++ b/release/sysinstall/help/drives.hlp
@@ -0,0 +1,29 @@
+If you are going to actually install some portion of FreeBSD on a
+drive then PLEASE BE VERY CERTAIN that the Geometry reported in the
+Partition Editor (see Installation Menu) is the correct one for your
+drive and controller combination!
+
+IDE drives often have a certain geometry set during the PC BIOS setup,
+or (in the case of larger IDE drives) have their geometry "remapped"
+by either the IDE controller or a special boot-sector translation
+utility such as that by OnTrack Systems. In these cases, knowing the
+correct geometry gets even more complicated as it's not something you
+can easily tell by looking at the drive or the PC BIOS setup. The
+best way of verifying that your geometry is being correctly calculated
+in such situations is to boot DOS (from the hard disk, not a floppy!)
+and run the ``pfdisk'' utility provided in the tools/ subdirectory of
+the FreeBSD CDROM or FTP site. It will report the geometry that DOS
+sees, which is generally the correct one.
+
+If you have no DOS partition sharing the disk at all, then you may
+find that you have better luck with Geometry detection if you create a
+very small DOS partition first, before installing FreeBSD. Once
+FreeBSD is installed you can always delete it again if you need the
+space.
+
+It's actually not a bad idea (believe it or not) to have a small bootable
+DOS partition on your FreeBSD machine anyway: Should the machine become
+unstable or exhibit strange behavior at some point in the future (which
+is not uncommon behavior for PC hardware!) you can then at least use
+DOS for installing and running one of the commercially available system
+diagnostic utilities.
diff --git a/release/sysinstall/help/en_US.ISO8859-1/README b/release/sysinstall/help/en_US.ISO8859-1/README
new file mode 100644
index 0000000..c166e26
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO8859-1/README
@@ -0,0 +1,104 @@
+ -----------------------------------------
+ FreeBSD 2.0.5 --- RELEASE Version , ,
+ ----------------------------------------- /( )`
+ \ \___ / |
+Welcome to the 2.0.5 release of FreeBSD! 2.0.5 is /- _ `-/ '
+an interim release of FreeBSD, filling a critical (/\/ \ \ /\
+gap during the period between 2.0R (which was / / | ` \
+released in Nov 94) and 2.1R, which will be O O ) / |
+released in late July of '95. FreeBSD 2.0.5 `-^--'`< '
+contains many substantial improvements from 2.0R, (_.) _ ) /
+not least of which is greater stability (by `.___/` /
+a considerable margin), dozens of new `-----' /
+features and a greatly enhanced <----. __ / __ \
+installation program. See the release <----|====O)))==) \) /====
+notes for more details on what's new in <----' `--' `.__,' \
+FreeBSD 2.0.5! | |
+ \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+
+What is FreeBSD? FreeBSD is an operating system based on 4.4 BSD Lite
+for Intel, AMD, Cyrix or NexGen "x86" based PC hardware. It works
+with a very wide variety of PC peripherals and configurations and can
+be used for everything from software development to Internet Service
+Provision; the busiest site on the Internet, ftp.cdrom.com, is a
+FreeBSD machine!
+
+This release of FreeBSD contains everything you need to run such a
+system, plus full source code for everything. With the source
+distribution installed you can literally recompile the entire system
+from scratch with one command, making it ideal for students,
+researchers or folks who simply want to see how it all works.
+
+A large collection of 3rd party ported software (the "ports
+collection") is also provided to make it easier for you to obtain and
+install all your favorite traditional UNIX utilities for FreeBSD.
+Over 270 ports, from editors to programming languages to graphical
+applications, make FreeBSD a powerful and comprehensive operating
+environment that rivals that of many large workstations for general utility
+and power.
+
+
+For more documentation on this system, it is recommended that you
+purchase the 4.4BSD Document Set from O'Reilly Associates and the
+USENIX Association, ISBN 1-56592-082-1. We have no connection with
+O'Reilly, we're just satisfied customers!
+
+You may also wish to read the HARDWARE GUIDE *before* proceeding any
+further with the installation. Configuring PC hardware for anything
+other than DOS/Windows (which don't actually make very significant
+demands on the hardware) is actually quite a bit harder than it looks,
+and if you think you understand PCs then you clearly haven't been
+using them for long enough! :) This guide will give you some tips on
+how to configure your hardware and what symptoms to watch for in case
+of trouble. This guide is available in the Documentation menu of the
+FreeBSD boot floppy.
+
+DISCLAIMER: While FreeBSD does its best to safeguard against accidental
+loss of data, it's still more than possible to WIPE OUT YOUR ENTIRE DISK
+with this installation! Please do not proceed to the final FreeBSD
+installation menu unless you've adequately backed up any important
+data first! We really mean it!
+
+Technical comments on this release should be sent (in English!) to:
+
+ hackers@FreeBSD.org
+
+
+Bug reports should be sent using the `send-pr' command, if you were
+able to get the system installed, otherwise to:
+
+ bugs@FreeBSD.org
+
+Please be sure to indicate WHICH VERSION of FreeBSD you're running in
+any bug reports!
+
+
+General questions should be sent to:
+
+ questions@FreeBSD.org
+
+Please have patience if your questions are not answered right away -
+this is an especially busy time for us, and our volunteer resources
+are often strained to the limit! Bug reports submitted with the
+send-pr command are logged and tracked in our bugs database, and
+you'll be kept informed of any changes in status during the life of
+the bug (or feature request).
+
+Our WEB site, http://www.freebsd.org, is also a very good source for
+updated information and provides a number of advanced documentation
+facilities. You may use the BSDI version of Netscape for browsing the
+World Wide Web directly from FreeBSD.
+
+You may also wish to look in /usr/share/FAQ and /usr/share/doc for
+further information on the system.
+
+
+Thanks for reading all of this, and we sincerely hope you enjoy this
+release of FreeBSD!
+
+ Jordan Hubbard,
+ for The FreeBSD Project
diff --git a/release/sysinstall/help/en_US.ISO8859-1/RELNOTES b/release/sysinstall/help/en_US.ISO8859-1/RELNOTES
new file mode 100644
index 0000000..9d6284f
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO8859-1/RELNOTES
@@ -0,0 +1,747 @@
+ RELEASE NOTES
+ FreeBSD
+ Release 2.0.5
+
+1. Technical overview
+---------------------
+
+FreeBSD is a freely available, full source 4.4 BSD Lite based release
+for Intel i386/i486/Pentium (or compatible) based PC's. It is based
+primarily on software from U.C. Berkeley's CSRG group, with some
+enhancements from NetBSD, 386BSD, and the Free Software Foundation.
+
+Since our release of FreeBSD 2.0 some 8 months ago, the performance,
+feature set, and stability of FreeBSD has improved dramatically. The
+largest change is a revamped VM system with a merged VM/file buffer
+cache that not only increases performance, but reduces FreeBSD's
+memory footprint, making a 4MB configuration a more acceptable
+minimum. Other enhancements include full NIS client and server
+support, transaction TCP support, dial-on-demand PPP, an improved SCSI
+subsystem, early ISDN support, support for FDDI and Fast Ethernet
+(100Mbit) adapters, improved support for the Adaptec 2940 (WIDE and
+narrow) and many hundreds of bug fixes.
+
+We've also taken the comments and suggestions of many of our users to
+heart and have attempted to provide what we hope is a more sane and
+easily understood installation process. Your feedback on this
+(constantly evolving) process is especially welcome!
+
+In addition to the base distributions, FreeBSD offers a new ported
+software collection with some 270 commonly sought-after programs. The
+list of ports ranges from http (WWW) servers, to games, languages,
+editors and almost everything in between. The entire ports collection
+requires only 10MB of storage, all ports being expressed as "deltas"
+to their original sources. This makes it much easier for us to update
+ports, and greatly reduces the disk space demands made by the older
+1.0 ports collection. To compile a port, you simply change to the
+directory of the program you wish to install, type make and let the
+system do the rest. The full original distribution for each port you
+build is retrieved dynamically off of CDROM or a local ftp site, so
+you need only enough disk space to build the ports you want. (Almost)
+every port is also provided as a pre-compiled "package" which can be
+installed with a simple command (pkg_add) by those who do not wish to
+compile their own ports from source. See the file:
+ /usr/share/FAQ/Text/ports.FAQ
+for a more complete description of the ports collection.
+
+
+Since our first release of FreeBSD 1.0 nearly two years ago, FreeBSD
+has changed almost entirely. A new port from the Berkeley 4.4 code
+base was done, which brought the legal status of the system out of the
+shadows with the blessing of Novell (the new owners of USL and UNIX). The
+port to 4.4 has also brought in a host of new features, filesystems
+and enhanced driver support. With our new unencumbered code base, we
+have every reason to hope that we'll be able to release quality
+operating systems without further legal encumbrance for some time to
+come!
+
+FreeBSD 2.0.5 represents the culmination of 2 years of work and many
+thousands of man hours put in by an international development team.
+We hope you enjoy it!
+
+A number of additional documents which you may find very helpful in
+the process of installing and using FreeBSD may also be found in
+the "FAQ" directory, either under /usr/share/FAQ on an installed
+system or at the top level of the CDROM or FTP distribution from
+where you're reading this file. Please consult FAQ/Text/ROADMAP
+for a brief description of the resources provided by the FAQ directory.
+
+For a list of contributors and a general project description, please see
+the file "CONTRIB.FreeBSD" which should be bundled with your binary
+distribution.
+
+Also see the "REGISTER.FreeBSD" file for information on registering
+with the "Free BSD user counter". This counter is for ALL freely
+available variants of BSD, not just FreeBSD, and we urge you to register
+yourself with it.
+
+The core of FreeBSD does not contain DES code which would inhibit its
+being exported outside the United States. There is an add-on package
+to the core distribution, for use only in the United States, that
+contains the programs that normally use DES. The auxiliary packages
+provided separately can be used by anyone. A freely (from outside the
+U.S.) exportable European distribution of DES for our non-U.S. users also
+exists and is described in the FreeBSD FAQ.
+
+If password security for FreeBSD is all you need, and you have no
+requirement for copying encrypted passwords from different hosts
+(Suns, DEC machines, etc) into FreeBSD password entries, then
+FreeBSD's MD5 based security may be all you require! We feel that our
+default security model is more than a match for DES, and without any
+messy export issues to deal with. If you're outside (or even inside)
+the U.S., give it a try!
+
+
+1.1 What's new in 2.0.5?
+------------------------
+
+The following features were added or substantially improved between
+the release of 2.0 and this 2.0.5 release. In order to facilitate
+better communication, the person, or persons, responsible for each
+enhancement is noted. Any questions regarding the new functionality
+should be directed to them first.
+
+KERNEL:
+
+Merged VM-File Buffer Cache
+---------------------------
+A merged VM/buffer cache design greatly enhances overall system
+performance and makes it possible to do a number of more optimal
+memory allocation strategies that were not possible before.
+
+Owner: David Greenman (davidg@FreeBSD.org) and
+ John Dyson (dyson@implode.root.com)
+
+
+Network PCB hash optimization
+-----------------------------
+For systems with a great number of active TCP connections (WEB and ftp
+servers, for example), this greatly speeds up the lookup time required
+to match an incoming packet up to its associated connection.
+
+Owner: David Greenman (davidg@FreeBSD.org)
+
+
+Name cache optimization
+-----------------------
+The name-cache would cache all files of the same name to the same bucket,
+which would put for instance all ".." entries in the same bucket. We added
+the parent directory version to frustrate the hash, and improved the
+management of the cache in various other ways while we were at it.
+
+Owner: Poul-Henning Kamp (phk@FreeBSD.org)
+ David Greenman (davidg@FreeBSD.org)
+
+
+Less restrictive swap-spaces
+----------------------------
+The need to compile the names of the swap devices into the kernel has been
+removed. Now swapon will accept any block devices, up to the maximum
+number of swap devices configured in the kernel.
+
+Owner: Poul-Henning Kamp (phk@FreeBSD.org)
+ David Greenman (davidg@FreeBSD.org)
+
+
+Hard Wired SCSI Devices
+-----------------------
+Prior to 2.0.5, FreeBSD performed dynamic assignment of unit numbers
+to SCSI devices as they were probed, allowing a SCSI device failure to
+possibly change unit number assignment and prevent filesystems on
+still functioning disks from mounting. Hard wiring allows static
+allocation of unit numbers (and hence device names) to scsi devices
+based on SCSI ID and bus. SCSI configuration occurs in the kernel
+config file. Samples of the configuration syntax can be found in the
+scsi(4) man page or the LINT kernel config file.
+
+Owner: Peter Dufault (dufault@hda.com)
+Sources involved: sys/scsi/* usr.sbin/config/*
+
+
+Slice Support
+-------------
+FreeBSD now supports a "slice" abstraction which makes it more
+completely interoperable with other operating system partitions. This
+support will allow FreeBSD to inhabit DOS extended partitions.
+
+Owner: Bruce Evans (bde@FreeBSD.org)
+Sources involved: sys/disklabel.h sys/diskslice.h sys/dkbad.h
+ kern/subr_diskslice.c kern/subr_dkbad.c
+ i386/isa/diskslice_machdep.c
+ i386/isa/wd.c scsi/sd.c dev/vn/vn.c
+
+
+Support for Ontrack Disk Manager Version 6.0
+--------------------------------------------
+Support has been added for disks which use Ontrack Disk Manager. The
+fdisk program does NOT know about it however, so make all changes
+using the install program on the boot.flp or the Ontrack Disk Manager
+tool under DOS.
+
+Owner: Poul-Henning Kamp (phk@FreeBSD.org)
+
+
+Bad144 is back and working
+--------------------------
+Bad144 works again, though the semantics are slightly different than
+before in that the bad-spots are kept relative to the slice rather
+than absolute on the disk.
+
+Owner: Bruce Evans (bde@FreeBSD.org)
+ Poul-Henning Kamp (phk@FreeBSD.org)
+
+
+NEW DEVICE SUPPORT:
+
+ SCSI and CDROM Devices
+
+Matsushita/Panasonic (Creative) CD-ROM driver
+---------------------------------------------
+The Matsushita/Panasonic CR-562 and CR-563 drives are now supported
+when connected to a Sound Blaster or 100% compatible host adapter. Up
+to four host adapters are supported for a total of 16 CD-ROM drives.
+The audio functions are supported, along with access to the raw (2352 byte)
+data frames of any compact disc. Audio discs may be played using Karoke
+variable speed functions.
+
+Owner: Frank Durda IV bsdmail@nemesis.lonestar.org
+Sources involved: isa/matcd
+
+
+Adaptec 2742/2842/2940 SCSI driver
+----------------------------------
+The original 274x/284x driver has evolved considerably since the 2.0
+release. We now offer full support for the 2940 series as well as the
+Wide models of these cards. The arbitration bug (as well as many
+others) that caused the driver problems with fast devices has been
+corrected and there is even experimental tagged queuing support
+(kernel option "AHC_TAGENABLE"). John Aycock has also released the
+sequencer code under a "Berkeley style" copyright making the driver
+entirely clean of the GPL.
+
+Owner: Justin Gibbs (gibbs@FreeBSD.org)
+Sources involved: isa/aic7770.c pci/aic7870.c i386/scsi/*
+ sys/dev/aic7xxx/*
+
+
+NCR5380/NCR53400 SCSI ("ProAudio Spectrum") driver
+--------------------------------------------------
+Owner: core
+Submitted by: Serge Vakulenko (vak@cronyx.ru)
+Sources involved: isa/ncr5380.c
+
+
+Sony CDROM driver
+-----------------
+Owner: core
+Submitted by: Mikael Hybsch (micke@dynas.se)
+Sources involved: isa/scd.c
+
+
+ Serial Devices
+
+SDL Communications Riscom/8 Serial Board Driver
+-----------------------------------------------
+Owner: Andrey Chernov (ache@FreeBSD.org)
+Sources involved: isa/rc.c isa/rcreg.h
+
+
+Cyclades Cyclom-y Serial Board Driver
+-------------------------------------
+Owner: Bruce Evans (bde@FreeBSD.org)
+Submitted by: Andrew Werple (andrew@werple.apana.org.au) and
+ Heikki Suonsivu (hsu@cs.hut.fi)
+Obtained from: NetBSD
+Sources involved: isa/cy.c
+
+
+Cronyx/Sigma sync/async serial driver
+-------------------------------------
+Owner: core
+Submitted by: Serge Vakulenko
+Sources involved: isa/cronyx.c
+
+
+
+ Networking
+
+Diskless booting
+----------------
+Diskless booting in 2.0.5 is much improved. The boot-program is in
+src/sys/i386/boot/netboot, and can be run from an MSDOS system or
+burned into an EPROM. Local swapping is also possible. WD, SMC, 3COM
+and Novell ethernet cards are currently supported.
+
+
+DEC DC21140 Fast Ethernet driver
+--------------------------------
+This driver supports any of the numerous NICs using the DC21140 chipset
+including the 100Mb DEC DE-500-XA and SMC 9332.
+
+Owner: core
+Submitted by: Matt Thomas (thomas@lkg.dec.com)
+Sources involved: pci/if_de.c pci/dc21040.h
+
+
+DEC FDDI (DEFPA/DEFEA) driver
+-----------------------------
+Owner: core
+Submitted by: Matt Thomas (thomas@lkg.dec.com)
+Sources involved: pci/if_pdq.c pci/pdq.c pci/pdq_os.h pci/pdqreg.h
+
+
+3Com 3c505 (Etherlink/+) NIC driver
+-----------------------------------
+Owner: core
+Submitted by: Dean Huxley (dean@fsa.ca)
+Obtained from: NetBSD
+Sources involved: isa/if_eg.c
+
+
+Fujitsu MB86960A family of NICs driver
+-------------------------------------
+Owner: core
+Submitted by: M.S. (seki@sysrap.cs.fujitsu.co.jp)
+Sources involved: isa/if_fe.c
+
+
+Intel EtherExpress driver
+-------------------------
+Owner: Rodney W. Grimes (rgrimes@FreeBSD.org)
+Sources involved: isa/if_ix.c isa/if_ixreg.h
+
+
+3Com 3c589 driver
+-----------------
+Owner: core
+Submitted by: "HOSOKAWA Tatsumi" (hosokawa@mt.cs.keio.ac.jp),
+ Seiji Murata (seiji@mt.cs.keio.ac.jp) and
+ Noriyuki Takahashi (hor@aecl.ntt.jp)
+Sources involved: isa/if_zp.c
+
+
+IBM Credit Card Adapter driver
+------------------------------
+Owner: core
+Submitted by: "HOSOKAWA Tatsumi" (hosokawa@mt.cs.keio.ac.jp),
+Sources involved: isa/pcic.c isa/pcic.h
+
+
+EDSS1 and 1TR6 ISDN interface driver
+------------------------------------
+Owner: core
+Submitted by: Dietmar Friede (dfriede@drnhh.neuhaus.de) and
+ Juergen Krause (jkr@saarlink.de)
+Sources involved: gnu/isdn/*
+
+
+ Miscellaneous Drivers
+
+Joystick driver
+---------------
+Owner: Jean-Marc Zucconi (jmz@FreeBSD.org)
+Sources involved: isa/joy.c
+
+
+National Instruments "LabPC" driver
+-----------------------------------
+Owner: Peter Dufault (dufault@hda.com)
+Sources involved: isa/labpc.c
+
+
+WD7000 driver
+-------------
+Owner: Olof Johansson (offe@ludd.luth.se)
+
+
+Pcvt Console driver
+-------------------
+Owner: Joerg Wunsch (joerg@FreeBSD.org)
+Submitted by: Hellmuth Michaelis (hm@altona.hamburg.com)
+Sources involved: isa/pcvt/* usr.sbin/pcvt/*
+
+
+BSD-audio emulator for VAT driver
+---------------------------------
+Owner: Amancio Hasty (ahasty@FreeBSD.org) and
+ Paul Traina (pst@FreeBSD.org)
+Sources involved: isa/sound/vat_audio.c isa/sound/vat_audioio.h
+
+
+National Instruments AT-GPIB and AT-GPIB/TNT GPIB driver
+--------------------------------------------------------
+Owner: core
+Submitted by: Fred Cawthorne (fcawth@delphi.umd.edu)
+Sources involved: isa/gpib.c isa/gpib.h isa/gpibreg.h
+
+
+Genius GS-4500 hand scanner driver
+----------------------------------
+Owner: core
+Submitted by: Gunther Schadow (gusw@fub46.zedat.fu-berlin.de)
+Sources involved: isa/gsc.c isa/gscreg.h
+
+
+CORTEX-I Frame Grabber
+----------------------
+Owner: core
+Submitted by: Paul S. LaFollette, Jr.
+Sources involved: isa/ctx.c isa/ctxreg.h
+
+
+Video Spigot video capture card
+-------------------------------
+Owner: Jim Lowe
+
+
+
+1.2 Experimental features
+-------------------------
+
+The unionfs and LFS file systems are known to be severely broken in
+2.0.5. This is in part due to old bugs that we haven't had time to
+resolve yet and the need to update these file systems to deal with the
+new VM system. We hope to address these issues in a later release of
+FreeBSD.
+
+FreeBSD now supports running iBCS2 compatible binaries (currently SCO
+UNIX 3.2.2 & 3.2.4 and ISC 2.2 COFF format are supported). The iBCS2
+emulator is in its early stages, but it is functional, we haven't been
+able to do exhaustive testing (lack of commercial apps), but almost
+all of SCO's 3.2.2 binaries are working, so is an old INFORMIX-2.10
+for SCO. Further testing is nessesary to complete this project. There
+is also work under way for ELF & XOUT loaders, and most of the svr4
+syscall wrappers have been written.
+
+FreeBSD also implements enough of its Linux compatibility that we
+can now run Linux DOOM! See the ``xperimnt'' directory (on your local
+FTP server or CDROM) for full docs on how to set this up.
+
+Owner: Soren Schmidt (sos) & Sean Eric Fagan (sef)
+Sources involved: sys/i386/ibcs2/* + misc kernel changes.
+
+
+2. Supported Configurations
+---------------------------
+
+FreeBSD currently runs on a wide variety of ISA, VLB, EISA and PCI bus
+based PC's, ranging from 386sx to Pentium class machines (though the
+386sx is not recommended). Support for generic IDE or ESDI drive
+configurations, various SCSI controller, network and serial cards is
+also provided.
+
+Following is a list of all disk controllers and ethernet cards currently
+known to work with FreeBSD. Other configurations may very well work, and
+we have simply not received any indication of this.
+
+
+2.1. Disk Controllers
+---------------------
+
+WD1003 (any generic MFM/RLL)
+WD1007 (any generic IDE/ESDI)
+IDE
+ATA
+
+Adaptec 152x series ISA SCSI controllers
+Adaptec 154x series ISA SCSI controllers
+Adaptec 174x series EISA SCSI controller in standard and enhanced mode.
+Adaptec 274X/284X/2940 (Narrow/Wide/Twin) series ISA/EISA/PCI SCSI controllers
+Adaptec AIC-6260 and AIC-6360 based boards, which includes
+the AHA-152x and SoundBlaster SCSI cards.
+
+** Note: You cannot boot from the SoundBlaster cards as they have no
+ on-board BIOS, which is necessary for mapping the boot device into the
+ system BIOS I/O vectors. They're perfectly usable for external tapes,
+ CDROMs, etc, however. The same goes for any other AIC-6x60 based card
+ without a boot ROM. Some systems DO have a boot ROM, which is generally
+ indicated by some sort of message when the system is first powered up
+ or reset. Check your system/board documentation for more details.
+
+[Note that Buslogic was formerly known as "Bustec"]
+Buslogic 545S & 545c
+Buslogic 445S/445c VLB SCSI controller
+Buslogic 742A, 747S, 747c EISA SCSI controller.
+Buslogic 946c PCI SCSI controller
+Buslogic 956c PCI SCSI controller
+
+NCR 53C810 and 53C825 PCI SCSI controller.
+NCR5380/NCR53400 ("ProAudio Spectrum") SCSI controller.
+
+DTC 3290 EISA SCSI controller in 1542 emulation mode.
+
+UltraStor 14F, 24F and 34F SCSI controllers.
+
+Seagate ST01/02 SCSI controllers.
+
+Future Domain 8xx/950 series SCSI controllers.
+
+WD7000 SCSI controller.
+
+With all supported SCSI controllers, full support is provided for
+SCSI-I & SCSI-II peripherals, including Disks, tape drives (including
+DAT) and CD ROM drives.
+
+The following CD-ROM type systems are supported at this time:
+(cd) SCSI (also includes ProAudio Spectrum and SoundBlaster SCSI)
+(mcd) Mitsumi proprietary interface
+(matcd) Matsushita/Panasonic (Creative) proprietary interface
+(scd) Sony proprietary interface
+
+Note: CD-Drives with IDE interfaces are not supported at this time.
+
+Some controllers have limitations with the way they deal with >16MB of
+memory, due to the fact that the ISA bus only has a DMA address space
+of 24 bits. If you do your arithmetic, you'll see that this makes it
+impossible to do direct DMA to any address >16MB. This limitation is
+even true of some EISA controllers (which are normally 32 bit) when
+they're configured to emulate an ISA card, which they then do in *all*
+respects. This problem is avoided entirely by IDE controllers (which
+do not use DMA), true EISA controllers (like the UltraStor, Adaptec
+1742A or Adaptec 2742) and most VLB (local bus) controllers. In the
+cases where it's necessary, the system will use "bounce buffers" to
+talk to the controller so that you can still use more than 16Mb of
+memory without difficulty.
+
+
+2.2. Ethernet cards
+-------------------
+
+Allied-Telesis AT1700 and RE2000 cards
+SMC Elite 16 WD8013 ethernet interface, and most other WD8003E,
+WD8003EBT, WD8003W, WD8013W, WD8003S, WD8003SBT and WD8013EBT
+based clones. SMC Elite Ultra is also supported.
+
+DEC EtherWORKS III NICs (DE203, DE204, and DE205)
+DEC EtherWORKS II NICs (DE200, DE201, DE202, and DE422)
+DEC DC21140 based NICs (SMC???? DE???)
+DEC FDDI (DEFPA/DEFEA) NICs
+
+Fujitsu FMV-181 and FMV-182
+
+Intel EtherExpress
+
+Isolan AT 4141-0 (16 bit)
+Isolink 4110 (8 bit)
+
+Novell NE1000, NE2000, and NE2100 ethernet interface.
+
+3Com 3C501 cards
+
+3Com 3C503 Etherlink II
+
+3Com 3c505 Etherlink/+
+
+3Com 3C507 Etherlink 16/TP
+
+3Com 3C509, 3C579, 3C589 (PCMCIA) Etherlink III
+
+Toshiba ethernet cards
+
+PCMCIA ethernet cards from IBM and National Semiconductor are also
+supported.
+
+
+2.3. Misc
+---------
+
+AST 4 port serial card using shared IRQ.
+
+ARNET 8 port serial card using shared IRQ.
+
+BOCA ATIO66 6 port serial card using shared IRQ.
+
+Cyclades Cyclom-y Serial Board.
+
+STB 4 port card using shared IRQ.
+
+Mitsumi (all models) CDROM interface and drive.
+
+SDL Communications Riscom/8 Serial Board.
+
+SoundBlaster SCSI and ProAudio Spectrum SCSI CDROM interface and drive.
+
+Matsushita/Panasonic (Creative SoundBlaster) CDROM interface and drive.
+
+Adlib, SoundBlaster, SoundBlaster Pro, ProAudioSpectrum, Gravis UltraSound
+and Roland MPU-401 sound cards.
+
+FreeBSD currently does NOT support IBM's microchannel (MCA) bus, but
+support is apparently close to materializing. Details will be posted
+as the situation develops.
+
+
+3. Obtaining FreeBSD
+--------------------
+
+You may obtain FreeBSD in a variety of ways:
+
+1. FTP/Mail
+
+You can ftp FreeBSD and any or all of its optional packages from
+`ftp.freebsd.org' - the official FreeBSD release site.
+
+For other locations that mirror the FreeBSD software see the file
+MIRROR.SITES. Please ftp the distribution from the nearest site
+to you netwise.
+
+If you do not have access to the internet and electronic mail is your
+only recourse, then you may still fetch the files by sending mail to
+`ftpmail@decwrl.dec.com' - putting the keyword "help" in your message
+to get more information on how to fetch files from ftp.freebsd.org.
+Note: This approach will end up sending many *tens of megabytes*
+through the mail, and should only be employed as an absolute LAST
+resort!
+
+
+2. CDROM
+
+FreeBSD 2.0.5 may be ordered on CDROM from:
+
+ Walnut Creek CDROM
+ 4041 Pike Lane, Suite D
+ Concord CA 94520
+ 1-800-786-9907, +1-510-674-0783, +1-510-674-0821 (fax)
+
+Or via the internet from orders@cdrom.com or http://www.cdrom.com.
+Their current catalog can be obtained via ftp as:
+ ftp://ftp.cdrom.com/cdrom/catalog.
+
+Cost per CD is $39.95, or $24.95 with a FreeBSD subscription. With
+a subscription, you will automatically receive updates as they
+are released. Your credit card will be billed when each disk is shipped
+and you may cancel your subscription at any time without further obligation.
+
+Walnut Creek CDROM also sells a full line of FreeBSD related merchandise such
+as T-shirts ($14.95, available in "child", Large and XL sizes), coffee mugs
+($9.95), tattoos ($0.25 each) and posters ($3.00).
+
+Shipping (per order not per disc) is $5 in the US, Canada or
+Mexico and $9.00 overseas. They accept Visa, Mastercard, Discover,
+American Express or checks in U.S. Dollars and ship COD within the
+United States. California residents please add 8.25% sales tax.
+
+Should you be dissatisfied for any reason, the CD comes with an
+unconditional return policy.
+
+
+Reporting problems, making suggestions, submitting code
+-------------------------------------------------------
+
+Your suggestions, bug reports and contributions of code are always
+valued - please do not hesitate to report any problems you may find
+(preferably with a fix attached if you can!).
+
+The preferred method to submit bug reports from a machine with
+internet mail connectivity is to use the send-pr command. Bug reports
+will be dutifully filed by our faithful bugfiler program and you can
+be sure that we'll do our best to respond to all reported bugs as soon
+as possible.
+
+If, for some reason, you are unable to use the send-pr command to
+submit a bug report, you can try to send it to:
+
+ bugs@FreeBSD.org
+
+
+Otherwise, for any questions or suggestions, please send mail to:
+
+ questions@FreeBSD.org
+
+Additionally, being a volunteer effort, we are always happy to have
+extra hands willing to help - there are already far more enhancements
+to be done than we can ever manage to do by ourselves! To contact us
+on technical matters, or with offers of help, you may send mail to:
+
+ hackers@FreeBSD.org
+
+Since these mailing lists can experience significant amounts of
+traffic, if you have slow or expensive mail access and you are
+only interested in keeping up with significant FreeBSD events, you may
+find it preferable to subscribe to:
+
+ announce@FreeBSD.org
+
+
+All but the freebsd-bugs groups can be freely joined by anyone wishing
+to do so. Send mail to MajorDomo@FreeBSD.org and include the keyword
+`help' on a line by itself somewhere in the body of the message. This
+will give you more information on joining the various lists, accessing
+archives, etc. There are a number of mailing lists targeted at
+special interest groups not mentioned here, so send mail to majordomo
+and ask about them!
+
+
+6. Acknowledgements
+-------------------
+
+FreeBSD represents the cumulative work of many dozens, if not
+hundreds, of individuals from around the world who have worked very
+hard to bring you this release. It would be very difficult, if not
+impossible, to enumerate everyone who's contributed to FreeBSD, but
+nonetheless we shall try (in alphabetical order, of course). If your
+name is not mentioned, please be assured that its omission is entirely
+accidental.
+
+
+The Computer Systems Research Group (CSRG), U.C. Berkeley.
+
+Bill Jolitz, for his initial work with 386BSD.
+
+The FreeBSD Core Team
+(in alphabetical order by first name):
+
+ Andreas Schulz <ats@FreeBSD.org>
+ Andrey A. Chernov <ache@FreeBSD.org>
+ Bruce Evans <bde@FreeBSD.org>
+ David Greenman <davidg@FreeBSD.org>
+ Garrett A. Wollman <wollman@FreeBSD.org>
+ Gary Palmer <gpalmer@FreeBSD.org>
+ Geoff Rehmet <csgr@FreeBSD.org>
+ Jack Vogel <jackv@FreeBSD.org>
+ John Dyson <dyson@FreeBSD.org>
+ Jordan K. Hubbard <jkh@FreeBSD.org>
+ Justin Gibbs <gibbs@FreeBSD.org>
+ Paul Richards <paul@FreeBSD.org>
+ Poul-Henning Kamp <phk@FreeBSD.org>
+ Rich Murphey <rich@FreeBSD.org>
+ Rodney W. Grimes <rgrimes@FreeBSD.org>
+ Satoshi Asami <asami@FreeBSD.org>
+ Søren Schmidt <sos@FreeBSD.org>
+
+Special mention to:
+
+ Walnut Creek CDROM, without whose help (and continuing support)
+ this release would never have been possible.
+
+ Dermot McDonnell for his donation of a Toshiba XM3401B CDROM
+ drive.
+
+ Additional FreeBSD helpers and beta testers:
+
+ J.T. Conklin Julian Elischer
+ Frank Durda IV Peter Dufault
+ Sean Eric Fagan Jeffrey Hsu
+ Terry Lambert L Jonas Olsson
+ Chris Provenzano Dave Rivers
+ Guido van Rooij Steven Wallace
+ Atsushi Murai Scott Mace
+ Nate Williams
+
+ And everyone at Montana State University for their initial support.
+
+
+Jordan would also like to give special thanks to Poul-Henning Kamp and
+Gary Palmer, both of whom put in long hours helping him to construct
+the new installation utility. Poul, being a proud new father, was
+especially pressed for time and yet somehow managed to put in
+a significant amount of effort anyway. This release could not have
+happened without him! Thank you both!
+
+Thanks also to everyone else who helped, especially those not
+mentioned, and we sincerely hope you enjoy this release of FreeBSD!
+
+
+ The FreeBSD Core Team
+
+$Id: RELNOTES,v 1.9 1995/06/10 02:40:11 jkh Exp $
diff --git a/release/sysinstall/help/en_US.ISO8859-1/XF86.hlp b/release/sysinstall/help/en_US.ISO8859-1/XF86.hlp
new file mode 100644
index 0000000..c789eaa
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO8859-1/XF86.hlp
@@ -0,0 +1,500 @@
+README for XFree86 3.1.1u1 on FreeBSD 2.0.5
+Rich Murphey, David Dawes
+20 January 1995
+
+1. What and Where is XFree86?
+------------------------------
+
+XFree86 is a port of X11R6 that supports several versions of Intel-
+based Unix. It is derived from X386 1.2, which was the X server
+distributed with X11R5. This release consists of many new features
+and performance improvements as well as many bug fixes. The release
+is available as source patches against the X Consortium X11R6 code, as
+well as binary distributions for many architectures.
+
+See the Copyright Notice (COPYRIGHT.html).
+
+The sources for XFree86 are available as part of the FreeBSD 2.0.5
+distribution, or by anonymous ftp from:
+
+ftp.XFree86.org:/pub/XFree86/current
+(ftp://ftp.XFree86.org/pub/XFree86/current)
+
+
+Binaries for XFree86 on FreeBSD are also available as part of
+2.0.5 or from:
+
+ftp.XFree86.org:/pub/XFree86/current/binaries/FreeBSD-2.0
+(ftp://ftp.XFree86.org/pub/XFree86/current/binaries/FreeBSD-2.0)
+
+XFree86.cdrom.com:/pub/XFree86/current/binaries/FreeBSD-2.0
+(ftp://XFree86.cdrom.com/pub/XFree86/current/binaries/FreeBSD-2.0)
+
+Send email to Rich-Murphey@Rice.edu or XFree86@XFree86.org if you have
+comments or suggestions about this file and we'll revise it.
+
+
+2. Installing the Binaries
+---------------------------
+
+In the FreeBSD 2.0.5 distribution, XFree86 comes in 3 major sections:
+"basic" distributions, fonts and servers. At the minimum, you will
+need the binaries and libraries from the basic distribution, the
+"misc" fonts collection and at least one server. The smallest usable
+distribution is around 9MB.
+
+If you can't decide what to pick and you have 52Mb of disk
+space, it's safe to unpack everything.
+
+What follows is a description of the various distribution files
+comprising XFree86. If you are installing this as part of FreeBSD
+2.0.5 then there's no need to use these files directly: You may
+simply check the desired components off the installation menus
+provided for that purpose. If you're installing this manually,
+then the following information should prove useful:
+
+ Required (6.7Mb):
+
+ X311bin.tgz
+ all the executable X client applications and shared libs
+
+ X311fnts.tgz
+ the misc and 75 dpi fonts
+
+ X311lib.tgz
+ data files needed at runtime
+
+
+ Required unless you have already customized your configuration
+ files:
+
+ X311xicf.tgz
+ customizable xinit runtime configuration file
+
+ X311xdcf.tgz
+ customizable xdm runtime configuration file
+
+ Choose at least one server ( 2.3Mb):
+
+ X3118514.tgz
+ 8-bit color for IBM 8514 and true compatibles.
+
+ X311AGX.tgz
+ 8-bit color for AGX boards.
+
+ X311Mch3.tgz
+ 8 and 16-bit color for ATI Mach32 boards.
+
+ X311Mch8.tgz
+ 8-bit color for ATI Mach8 boards.
+
+ X311Mono.tgz
+ 1-bit monochrome for VGA, Super-VGA, Hercules, and others.
+
+ X311P9K.tgz
+ 8, 16, and 24-bit color for Weitek P9000 boards (Diamond
+ Viper).
+
+ X311S3.tgz
+ 8, 16 and 24-bit color for S3 boards (#9 GXE, Actix GE32,
+ SPEA Mercury, STB Pegasus)
+
+ X311SVGA.tgz
+ 8-bit color for Super-VGA cards.
+
+ X311VG16.tgz
+ 4-bit color for VGA and Super-VGA cards
+
+ X311W32.tgz
+ 8-bit Color for ET4000/W32, /W32i and /W32p cards.
+
+ X311nest.tgz
+ A nested server running as a client window on another
+ display.
+
+ Optional:
+
+ X311doc.tgz
+ (.5Mb) READMEs and XFree86 specific man pages
+
+ X311man.tgz
+ (1.7Mb) man pages except XFree86 specific ones in etc archive
+
+ X311f100.tgz
+ (1.8Mb) 100dpi fonts
+
+ X311fscl.tgz
+ (1.6Mb) Speedo and Type1 fonts
+
+ X311fnon.tgz
+ (3.3Mb) Japanese, Chinese and other non-English fonts
+
+ X311fsrv.tgz
+ (.3Mb) the font server and it's man page
+
+ X311prog.tgz
+ (3.9Mb) config, lib*.a and *.h files needed only for
+ compiling
+
+ X311link.tgz
+ (7.8Mb) X server reconfiguration kit
+
+ X311pex.tgz
+ (.5Mb) PEX fonts and shared libs needed by PEX applications.
+
+ X311lbx.tgz
+ (.2Mb) low bandwidth X proxy server and libraries.
+
+Note that there is no longer a separate xdm archive. FreeBSD 2.0
+and later handles this in shared libraries now, so that the xdm
+binary does not itself contain des and there is no more need for
+us to provide separate tar balls.
+
+
+2.1. Full Install:
+-------------------
+
+[ Note: Unless you're installing XFree86 3.1.1u1 manually, that is
+ to say not as part of the FreeBSD 2.0.5 installation, you may skip
+ to section 2.3 ]
+
+ 1. You must be logged in as root to unpack the archives because
+ several executables are set-user-id. Otherwise the server may
+ abort if you unpack it as an ordinary user. You must also use a
+ ``umask'' value of 022 because the X server requires special
+ permissions.
+
+ % su
+ # umask 022
+
+
+ 2. If you have 52Mb free in the /usr partition ``cd /usr'' and skip
+ to no. 3. Otherwise, create a directory on another partition
+ and sym link it into /usr:
+
+ # cd /usr/local
+ # mkdir X11R6
+ # ln -s /usr/local/X11R6 /usr/X11R6
+
+
+ 3. Unpack everything:
+
+ If you are using sh (as root usually does):
+
+ # for i in X311*.tgz; do
+ # tar -xzf $i
+ # done
+
+
+ Else, if you are using csh:
+
+ % foreach i (X311*.tgz)
+ % tar -xzf $i
+ % end
+
+
+ 4. Create a symbolic link ``X'' that points to the server that
+ matches your video card. The XF86_* man pages list which vga
+ chip sets are supported by each server. For example, if you
+ have an ET4000 based card you will use the XF86_SVGA server:
+
+ # cd /usr/X11R6/bin; rm X; ln -s XF86_SVGA X
+
+
+2.2. Minimal Install:
+----------------------
+
+First do numbers 1 and 2 above. Then unpack the required archives:
+
+ # for i in bin fnts lib xicf; do
+ # tar -xzf X311$i.tgz
+ # done
+
+
+Then unpack a server archive corresponding to your vga card. The
+server man pages, X11R6/man/man1/XF86_*, list the vga chip sets
+supported by each server. For example, if you have an ET4000 based
+card you will use the XF86_SVGA server:
+
+ # tar -xzf X311SVGA.tgz
+ # cd /usr/X11R6/bin; rm X; ln -s XF86_SVGA X
+
+
+2.3. After either Full or Minimal Install above:
+-------------------------------------------------
+
+Add /usr/X11R6/bin to the default path for sh in /etc/profile and for
+csh in /etc/csh.login if they are not already there:
+
+ # echo 'set path = ($path /usr/X11R6/bin)' >>/etc/csh.login
+ # echo 'PATH=$PATH:/usr/X11R6/bin' >>/etc/profile
+
+
+Or make sure all who use X put /usr/X11R6/bin in their shell's
+``path'' variable.
+
+Next either reboot or invoke ldconfig as root to put the shared
+libraries in ld.so's cache:
+
+ # ldconfig /usr/lib /usr/local/lib /usr/X11R6/lib
+
+
+If you had already configured X11R6/lib/X11/xinit/xinitrc or
+X11R6/lib/X11/xdm/* omit the xinit-config or xdm-config archive or
+unpack it separately and merge in your customizations.
+
+The fscl and f100 archives are optional and can be omitted if you are
+short on space. The optional link archive allows you to reconfigure
+and customize a X server binary. The optional prog archive is needed
+only for writing or compiling X applications. The optional pex
+archive contains pex clients and libraries for building 3D graphics
+applications.
+
+ NOTE: You don't need to uncompress the font files, but if
+ you uncompress them anyway you must run mkfontdir in the
+ corresponding font directory; otherwise your server will
+ abort with the message ``could not open default font
+ 'fixed'''.
+
+
+3. Installing The Display Manager (xdm)
+----------------------------------------
+
+The display manager makes your PC look like an X terminal. That is,
+it presents you with a login screen that runs under X.
+
+The easiest way to automatically start the display manager on boot is
+to add a line in /etc/ttys to start it on one of the unoccupied
+virtual terminals:
+
+ ttyv4 "/usr/X11R6/bin/xdm -nodaemon" xterm on secure
+
+You should also make sure that /usr/X11R6/bin/X is a symbolic link to
+the Xserver that matches your video card or edit the file Xservers in
+/usr/X11R6/lib/X11/xdm to specify the pathname of the X server.
+
+The change to /etc/ttys won't take effect until you either reboot or
+``kill -HUP 1'' to force initd to reread /etc/ttys. You can also test
+the display manager manually by loging in as root on the console and
+typing ``xdm -nodaemon''.
+
+
+4. Configuring X for Your Hardware
+-----------------------------------
+
+The XF86Config file tells the X server what kind of monitor, video
+card and mouse you have. You must create it to tell the server what
+specific hardware you have.
+
+XFree86 3.1 uses a new configuration file format. Consult the
+XF86Config man page and the general INSTALL (INSTALL.html) file for
+instructions.
+
+If you have a Xconfig file for XFree86 2.x, use reconfig to translate
+part of it into the new format:
+
+ # reconfig <Xconfig >XF86Config
+
+and complete the rest according to the XF86Config man page and the
+XF86Config.sample file as a template.
+
+In order to protect your hardware from damage, the server no longer
+will read XF86Config files from a user's home directory, but requires
+that it be in /etc/XF86Config, /usr/X11R6/lib/X11/XF86Config.hostname
+or /usr/X11R6/lib/X11/XF86Config.
+
+You'll need info on your hardware:
+
+ o Your mouse type, baud rate and it's /dev entry.
+
+ o The video card's chipset (e.g. ET4000, S3, etc).
+
+ o Your monitor's sync frequencies.
+
+The easiest way to find which device your mouse is plugged into is to
+use ``cat'' or ``kermit'' to look at the output of the mouse. Connect
+to it and just make sure that it generates output when the mouse is
+moved or clicked:
+
+ % cat < /dev/cuaa0
+
+If you can't find the right mouse device then use ``dmesg|grep sio''
+to get a list of devices that were detected upon booting:
+
+ % dmesg|grep sio
+ sio0 at 0x3f8-0x3ff irq 4 on isa
+
+Then double check the /dev entries corresponding to these devices.
+Use the script /dev/MAKEDEV to create entries if they don't already
+exist:
+
+ % cd /dev
+ % sh MAKEDEV cuaa0
+
+If you plan to fine tune the screen size or position on your monitor
+you'll need the specs for sync frequencies from your monitor's manual.
+
+
+5. Running X
+-------------
+
+8mb of memory is a recommended minimum for running X. The server,
+window manager, display manager and an xterm take about 8Mb of virtual
+memory themselves. Even if their resident set size is smaller, on a
+8Mb system that leaves very space for other applications such as gcc
+that expect a few meg free. The R6 X servers may work with 4Mb of
+memory, but in practice compilation while running X can take 5 or 10
+times as long due to constant paging.
+
+The easiest way for new users to start X windows is to type ``startx
+>& startx.log''. Error messages are lost unless you redirect them
+because the server takes over the screen.
+
+To get out of X windows, type: ``exit'' in the console xterm. You can
+customize your X by creating .xinitrc, .xserverrc, and .twmrc files in
+your home directory as described in the xinit and startx man pages.
+
+
+6. Rebuilding Kernels for X
+----------------------------
+
+The GENERIC FreeBSD 2.0 kernel supports XFree86 without any
+modifications required. You do not need to make any changes to the
+GENERIC kernel or any kernel configuration which is a superset.
+
+For a general description of BSD kernel configuration get
+smm.02.config.ps.Z
+(ftp://gatekeeper.dec.com/pub/BSD/manuals/smm.02.config.ps.Z). It is
+a ready-to-print postscript copy of the kernel configuration chapter
+from the system maintainers manual.
+
+If you do decide to reduce your kernel configuration file, do not
+remove the two lines below (in /sys/arch/i386/conf). They are both
+required for X support:
+
+ options XSERVER #Xserver
+ options UCONSOLE #X Console support
+
+The generic FreeBSD 2.0 kernel is configured by default with the
+syscons driver. To configure your kernel similarly it should have a
+line like this in /usr/src/sys/i386/conf/GENERIC:
+
+ device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr
+
+The maximum number of virtual consoles can be set using the MAXCONS
+option:
+
+ options "MAXCONS=4" #4 virtual consoles
+
+
+Otherwise, the default without a line like this is 12. You must have
+more VTs than gettys as described in the end of section 3, and 4 is a
+reasonable minimum.
+
+The server supports several console drivers: pccons, syscons and pcvt.
+The syscons driver is the default in FreeBSD 1.1.5 and higher. They
+are detected at runtime and no configuration of the server itself is
+required.
+
+The pcvt console driver is bundled into FreeBSD and may be enabled
+by changing the `sc0' line in your kernel configuration file to
+`vt0'. See /sys/i386/conf/LINT for more details.
+
+The XFree86 servers include support for the MIT-SHM extension. The
+GENERIC kernel does not support this, so if you want to make use of
+this, you will need a kernel configured with SYSV shared memory
+support. To do this, add the following line to your kernel config
+file:
+
+ options SYSVSHM # System V shared memory
+ options SYSVSEM # System V semaphores
+ options SYSVMSG # System V message queues
+
+
+If you are using a SoundBlaster 16 on IRQ 2 (9), then you need a patch
+for sb16_dsp.c. Otherwise a kernel configured with the SoundBlaster
+driver will claim interrupt 9 doesn't exist and X server will lock up.
+
+S3 cards and serial port COM 4 cannot be installed together on a
+system because the I/O port addresses overlap.
+
+
+7. Rebuilding XFree86
+----------------------
+
+The server link kit allows you to build an X server using a minimum
+amount of disk space. Just unpack it, make the appropriate changes to
+site.def, type ``./mkmf' and ``make'' to link the server. See
+README.LinkKit (LinkKit.html) for more info.
+
+The source tree takes about 114Mb before compiling and an additional
+100Mb after ``make World''. You should configure the distribution by
+editing xf86site.def and site.def in xc/config/cf before compiling.
+By default, the config files are set up to build shared libraries. If
+you are running a version of FreeBSD that doesn't include shared
+library support, add the following line to site.def:
+
+ #define BuildBsdSharedLibs NO
+
+If your system doesn't have support or SYSV shared memory (for
+example, if you don't have the <sys/shm.h> header), you should disable
+the MIT-SHM extension by adding the following line to site.def:
+
+ #define HasShm NO
+
+To compile the sources on FreeBSD 1.1 and later, type:
+
+ make World
+
+
+8. Building Other X Clients
+----------------------------
+
+The easiest way to build a new client (X application) is to use xmkmf
+if an Imakefile is included with it. Type ``xmkmf -a'' to create the
+Makefiles, then type ``make''. Whenever you install additional man
+pages you should update whatis.db by running ``makewhatis
+/usr/X11R6/man''.
+
+Note: Starting with XFree86 2.1 and FreeBSD 1.1, the symbol __386BSD__
+no longer gets defined either by the compiler or via the X config
+files for FreeBSD systems. When porting clients to BSD systems, make
+use of the symbol BSD for code which is truly BSD-specific. The value
+of the symbol can be used to distinguish different BSD releases. For
+example, code specific to the Net-2 and later releases can use:
+
+ #if (BSD >= 199103)
+
+To ensure that this symbol is correctly defined, include <sys/param.h>
+in the source that requires it. Note that the symbol CSRG_BASED is
+defined for *BSD systems in XFree86 3.1.1 and later. This should be
+used to protect the inclusion of <sys/param.h>.
+
+For code that really is specific to a particular i386 BSD port, use
+__FreeBSD__ for FreeBSD, __NetBSD__ for NetBSD, __386BSD__ for 386BSD,
+and __bsdi__ for BSD/386.
+
+
+9. Thanks
+----------
+
+Many thanks to:
+
+ o Pace Willison for providing initial *BSD support.
+
+ o Amancio Hasty for 386BSD kernel and S3 chipset support.
+
+ o David Greenman, Nate Williams, Jordan Hubbard for FreeBSD kernel
+ support.
+
+ o Rod Grimes, Jordan Hubbard and Jack Velte for the use of Walnut
+ Creek Cdrom's hardware.
+
+ o Orest Zborowski, Simon Cooper and Dirk Hohndel for ideas from
+ the Linux distribution.
+
+$XConsortium: FreeBSD.sgml,v 1.3 95/01/23 15:34:41 kaleb Exp $
+Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/FreeBSD.sgml,v 3.10 1995/01/28 16:01:28 dawes Exp $
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/READ.FreeBSD,v 3.12 1995/01/28 16:19:37 dawes Exp $
diff --git a/release/sysinstall/help/en_US.ISO8859-1/configure.hlp b/release/sysinstall/help/en_US.ISO8859-1/configure.hlp
new file mode 100644
index 0000000..2d14031
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO8859-1/configure.hlp
@@ -0,0 +1,14 @@
+This menu allows you to configure your system after the installation process
+is complete. At the minimum, you should probably set the system manager's
+password and the system time zone.
+
+For extra goodies like bash, emacs, pascal, etc., you should look at the
+Packages item in this menu. Currently, the Packages option is only useful
+if you have a CDROM or an existing packages collection somewhere in the
+file system hierarchy where the package management tool can locate it.
+The automatic transfer of packages via FTP is not yet supported!
+
+If you wish to re-invoke the package installation tool after leaving
+the system installation, the command is ``pkg_manage''. For setting
+the timezone, type ``tzsetup''. For more information on the general
+system configuration, see the ``/etc/sysconfig'' file.
diff --git a/release/sysinstall/help/en_US.ISO8859-1/distributions.hlp b/release/sysinstall/help/en_US.ISO8859-1/distributions.hlp
new file mode 100644
index 0000000..b81efbf
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO8859-1/distributions.hlp
@@ -0,0 +1,88 @@
+An ``X-'' prefixed before a distribution set means that the XFree86
+3.1.1u1 base distribution, libraries, manual pages, SVGA server and a
+set of default fonts will be selected in addition to the set itself.
+
+If you select such a set, you will also be presented with a set of
+menus for customizing the selections to your desired X Window System
+setup.
+
+N.B. All references in this document to `complete source' mean the
+complete source tree minus any legally encumbered cryptography code.
+
+The current "canned" installations are as follows:
+
+Developer: Base ("bin") distribution, man pages, dictionary
+ files, profiling libraries and the complete source tree.
+
+
+Kern-Developer: As above, but with only kernel sources instead of
+ the complete source tree.
+
+
+User: The base distribution, man pages, dictionary files and
+ the FreeBSD 1.x and 2.0 compatibility sets.
+
+
+Minimal: Only the base distribution.
+
+
+Everything: The base distribution, man pages, dictionary files,
+ profiling libraries, the FreeBSD 1.x and the FreeBSD 2.0
+ compatibility libraries, the complete source tree,
+ games and your choice of XFree86 distribution components.
+ N.B. Still no cryptocraphy source code!
+
+
+Custom: Allows you to modify or create your distribution set on
+ a piece-by-piece basis.
+
+
+Reset: Clear all currently selected distributions.
+
+
+---
+
+When using Custom, most of the sub-distribution choices are fairly
+obvious, though two possible exceptions may be the "commerce" and
+"xperimnt" distributions:
+
+ * The "commerce" directory, as its name implies, is devoted to
+ commercial offerings. This includes commercial products released
+ under special arrangement, limited functionality demos, shareware
+ products (you like it, you buy it), etc.
+
+ At the time of this writing, there are unfortunately not enough
+ commercial offerings to justify a fully split distribution set,
+ so each product is available both as a subdirectory and as part
+ of one large archive file. If you select "commerce" from the
+ distributions submenus then you'll get the big file containing
+ the entire collection copied to your hard disk. Don't do this
+ unless you've got at least 10MB to devote to it!
+
+
+ * The "xperimnt" directory contains, not surprisingly, experimental
+ offerings. Unfinished (or work-in-progress) features, special
+ purpose drivers and packages, strange proof-of-concept stuff,
+ it's a mixed bag! Select this item on a distribution menu and
+ you'll get the whole collection (between 10 and 30MB).
+
+
+ If you're installing from CDROM then all of the commercial and
+ "experimental" offerings are also easily available in their
+ individual subdirectories and can be copied to hard disk at
+ any time.
+
+
+You may also notice that certain distributions, like "des" and "krb",
+are marked "NOT FOR EXPORT!" This is because it's illegal to
+export them from the United States (or any other country which
+considers encryption technology to be on its restricted export
+list). Since breaking this law only gets the _originating_ site
+(US!) in trouble, please do not load these distributions from U.S.
+servers!
+
+A number of "foreign" servers do exist for the benefit of
+non-U.S. sites, one of which is "skeleton.mikom.csir.co.za".
+
+Please get all such export restricted software from there
+if you are outside the U.S., thanks!
diff --git a/release/sysinstall/help/en_US.ISO8859-1/drives.hlp b/release/sysinstall/help/en_US.ISO8859-1/drives.hlp
new file mode 100644
index 0000000..d924f8d
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO8859-1/drives.hlp
@@ -0,0 +1,28 @@
+If you are going to actually install some portion of FreeBSD on a
+drive then PLEASE BE VERY CERTAIN that the Geometry reported in the
+Partition Editor (see Installation Menu) is the correct one for your
+drive and controller combination!
+
+IDE drives often have a certain geometry set during the PC BIOS setup,
+or (in the case of larger IDE drives) have their geometry "remapped"
+by either the IDE controller or a special boot-sector translation
+utility such as that by OnTrack Systems. In these cases, knowing
+the correct geometry gets even more complicated as it's not something
+you can easily tell by looking at the drive or the PC BIOS setup. The
+best way of verifying that your geometry is being correctly calculated
+in such situations is to boot DOS (from the hard disk, not a floppy!)
+and run the ``pfdisk'' utility provided in the tools/ subdirectory of the
+FreeBSD CDROM or FTP site. It will report the geometry that DOS sees,
+which is generally the correct one.
+
+If you have no DOS partition sharing the disk at all, then you may find that
+you have better luck with Geometry detection if you create a very small
+DOS partition first, before installing FreeBSD. Once FreeBSD is installed
+you can always delete it again if you need the space.
+
+It's actually not a bad idea (believe it or not) to have a small bootable
+DOS partition on your FreeBSD machine anyway: Should the machine become
+unstable or exhibit strange behavior at some point in the future (which
+is not uncommon behavior for PC hardware!) you can then at least use
+DOS for installing and running one of the commercially available system
+diagnostic utilities.
diff --git a/release/sysinstall/help/en_US.ISO8859-1/hardware.hlp b/release/sysinstall/help/en_US.ISO8859-1/hardware.hlp
new file mode 100644
index 0000000..fba5633
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO8859-1/hardware.hlp
@@ -0,0 +1,384 @@
+Hardware Documentation Guide: $Id: hardware.hlp,v 1.11 1995/06/09 13:29:19 jkh Exp $
+
+Table of Contents
+-----------------
+
+0. Document Conventions
+1. Using UserConfig to change FreeBSD kernel settings
+2. Default Configuration (GENERIC kernel)
+3. LINT - other possible configurations.
+4. Known Hardware Problems.
+
+=========================================================================
+
+0. Document Conventions
+-- --------------------
+
+We have `underlined' text which represents user input with `-'
+symbols throughout this document to differentiate it from
+the machine output.
+
+1. Using UserConfig to change FreeBSD kernel settings
+-- --------------------------------------------------
+
+The UserConfig utility allows you to override various settings of
+the FreeBSD kernel before the system has booted. This allows you to
+make minor adjustments to the various drivers in the system without
+necessarily having to recompile the kernel.
+
+UserConfig is activated by specifying the `-c' flag at the initial
+boot prompt. For example:
+
+ >> FreeBSD BOOT @ 0x10000: 640/7168 k of memory
+ Use hd(1,a)/kernel to boot sd0 when wd0 is also installed.
+ Usage: [[wd(0,a)]/kernel][-abcCdhrsv]
+ Use ? for file list or press Enter for defaults
+
+ Boot: -c
+ --
+
+This command causes the system to boot the default kernel ("/kernel") and
+the UserConfig utility to be started once the kernel is loaded into memory.
+
+The `-c' flag follows any of the other parameters you may need to provide
+for the system to boot properly. For example, to boot off the second of
+two SCSI drives installed and run UserConfig, you would type:
+
+ Boot: sd(1,a)/kernel -c
+ -----------------
+
+As always, the kernel will report some information on your processor
+and how much memory your system has. Then UserConfig will be invoked
+and you will see the prompt:
+
+ config>
+
+To see the list of commands that UserConfig accepts, you may type '?' and
+press [ENTER]. The help message looks something like this:
+
+Command Description
+------- -----------
+attach <devname> Return results of device attach
+ls List currently configured devices
+port <devname> <addr> Set device port (i/o address)
+irq <devname> <number> Set device irq
+drq <devname> <number> Set device drq (DMA Request)
+iomem <devname> <addr> Set device maddr (memory address)
+iosize <devname> <size> Set device memory size
+flags <devname> <mask> Set device flags
+enable <devname> Enable device
+probe <devname> Return results of device probe
+disable <devname> Disable device (will not be probed)
+quit Exit this configuration utility
+help This message
+
+
+You may alter nearly all of the default settings present in the FreeBSD
+generic kernel. This includes reassigning IRQs, disabling troublesome
+devices (or drivers that conflict with the hardware your system has),
+setting special device flags, etc.
+
+The most common use of UserConfig is to adjust or disable a driver
+which is causing trouble. The "ls" command displays the current
+settings for all the drivers present in the booted kernel, and
+once you have located an entry of interest you may use the displayed
+device name to change its settings or even disable the driver completely.
+
+For example, to change the memory address of network adapter 'ed0' to
+the address 0xd4000, you would type
+
+ config> iomem ed0 0xd4000
+ -----------------
+
+To entirely disable a device driver you are not using, use the
+"disable" command. In this example, you would disable device
+`ie0' by typing:
+
+ config> disable ie0
+ -----------
+
+You can use the "ls" command to verify your changes and correct
+any other problems before continuing the boot process.
+
+Once you are happy with a given configuration you may type: "quit"
+
+This will cause the kernel to boot with the new settings you
+have chosen.
+
+Once you have a fully installed system (e.g. the `bin' distribution
+has been successfully extracted), any changes you make in UserConfig
+are permanently stored in the `/kernel' file on the root filesystem.
+This action is performed by the `dset' utility, which will ensure that
+these settings remain in effect until you replace the kernel with
+a new one. If you do not want your changes to be permanently
+stored like this, remove `dset' from the /etc/rc file before you
+make any changes.
+
+If you accidentally change a setting for a device that you did not mean
+to change, the safest thing to do is to reset the computer and start
+over. Do not allow the boot to proceed (e.g. do not type "quit") with
+bad settings as these may be permanently stored by dset and
+leave your system in a state where it will no longer run properly.
+
+We suggest as a general rule that you disable any drivers that are not
+used by your particular hardware configuration. There are known problems
+with certain device drivers (see section 4.0) that can cause conflicts
+with other devices if they're also not disabled. You should move or
+disable any device that resides at the same port or IRQ as a device
+you actually have!
+
+You can also remove drivers that are not needed by building yourself a
+custom kernel that contains only the device drivers which your system
+really needs (see section 6.0 of the FreeBSD.FAQ). If your system has
+sufficient free disk space to store and compile the kernel sources,
+this is the option we most highly recommend.
+
+
+
+2. Default (GENERIC) Configuration
+-- -------------------------------
+
+The following table contains a list of all of the devices that are present
+in the GENERIC kernel, which is the kernel (the operating system) that was
+placed on your computer during the FreeBSD installation process.
+(A compressed version of the GENERIC kernel is also used on the
+installation floppy diskettes.)
+
+The table describes the various parameters used by the driver to communicate
+with the hardware in your system. There are four parameters in the
+table, but not all are used by each device. They are:
+
+ Port the starting I/O port used by the device, shown in hexadecimal.
+
+ IOMem the lowest (or starting) memory address used by the device,
+ also shown in hexadecimal.
+
+ IRQ the interrupt the device uses to alert the driver to an event,
+ given in decimal.
+
+ DRQ the DMA (direct memory access) channel the device uses to move
+ data to and from main memory, also given in decimal.
+
+If an entry in the table has `n/a' for the value, it means that the
+parameter does not apply to that device. A value of `dyn' means that the
+correct value should be determined automatically by the kernel when the
+system boots.
+
+
+FreeBSD GENERIC kernel:
+
+ Port IRQ DRQ IOMem Description
+ ---- --- --- ----- ---------------------------------
+fdc0 3f0 6 2 n/a Floppy disk controller
+wdc0 1f0 14 n/a n/a IDE/MFM/RLL disk controller
+wdc1 170 15 n/a n/a IDE/MFM/RLL disk controller
+
+ncr0 n/a n/a n/a n/a NCR PCI SCSI controller
+ahc0 n/a n/a n/a n/a Adaptec 294x PCI SCSI controller
+bt0 330 dyn dyn dyn Buslogic SCSI controller
+uha0 330 dyn 6 dyn Ultrastore 14f
+ahc1 dyn dyn dyn dyn Adaptec 274x/284x SCSI controller
+ahb0 dyn dyn dyn dyn Adaptec 174x SCSI controller
+aha0 330 dyn 5 dyn Adaptec 154x SCSI controller
+aic0 340 11 dyn dyn Adaptec 152x/AIC-6360 SCSI
+ controller
+nca0 1f88 10 dyn dyn ProAudioSpectrum cards
+nca1 350 5 dyn dyn ProAudioSpectrum cards
+sea0 dyn 5 dyn c8000 Seagate ST01/02 8 bit controller
+
+wt0 300 5 1 dyn Wangtek and Archive QIC-02/QIC-36
+
+mcd0 300 10 n/a n/a Mitsumi CD-ROM
+mcd1 340 11 n/a n/a Mitsumi CD-ROM
+
+matcd0 dyn n/a n/a n/a Matsushita/Panasonic CD-ROM
+
+scd0 230 n/a n/a n/a Sony CD-ROM
+
+sio0 3f8 4 n/a n/a Serial Port 0 (COM1)
+sio1 2f8 3 n/a n/a Serial Port 1 (COM2)
+sio2 3e8 5 n/a n/a Serial Port 2 (COM3)
+sio3 2e8 9 n/a n/a Serial Port 3 (COM4)
+
+lpt0 dyn 7 n/a n/a Printer Port 0
+lpt1 dyn dyn n/a n/a Printer Port 1
+lpt2 dyn dyn n/a n/a Printer Port 2
+
+de0 DEC DC21x40 PCI based cards
+ (including 21140 100bT cards)
+ed0 280 5 dyn d8000 WD & SMC 80xx; Novell NE1000 &
+ NE2000; 3Com 3C503
+ed1 300 5 dyn d8000 Same as ed0
+eg0 310 5 dyn dyn 3Com 3C505
+ep0 300 10 dyn dyn 3Com 3C509
+ie0 360 7 dyn d0000 AT&T StarLAN 10 and EN100;
+ 3Com 3C507; NI5210
+ix0 300 10 dyn d0000 Intel EtherExpress cards
+le0 300 5 dyn d0000 Digital Equipment EtherWorks
+ 2 and EtherWorks 3
+lnc0 280 10 n/a dyn Lance/PCnet cards
+ (Isolan, Novell NE2100, NE32-VL)
+lnc1 300 10 n/a dyn See lnc0
+ze0 300 5 dyn d8000 IBM/National Semiconductor
+ PCMCIA Ethernet Controller
+zp0 300 10 dyn d8000 3Com PCMCIA Etherlink III
+ Ethernet Controller
+--- End of table ---
+
+
+If the hardware in your computer is not set to the same settings as
+those shown in this table and the item is not marked 'dyn', you will
+have to either reconfigure your hardware, or use UserConfig ('-c' boot
+option) to reconfigure the kernel to match the way your hardware is
+currently set (see section 1.0).
+
+If the settings do not match, the kernel may be unable to locate
+or reliably access the devices in your system.
+
+
+
+3. LINT - other possible configurations
+-- ------------------------------------
+
+The following drivers are not in the GENERIC kernel but remain
+available to those who do not mind compiling a custom kernel (see
+section 6 of FreeBSD.FAQ). The LINT configuration file
+(/sys/i386/conf/LINT) also contains prototype entries for just about
+every device supported by FreeBSD and is a good general reference.
+
+The device names and a short description of each are listed below. The port
+numbers, etc, are not meaningful here since you will need to compile a
+custom kernel to gain access to these devices anyway and can thus
+adjust the addresses to match the hardware in your computer in the process.
+The LINT file contains prototype entries for all of the below which you
+can easily cut-and-paste into your own file (or simply copy LINT and edit
+it to taste):
+
+apm: Laptop Advanced Power Management (experimental)
+ctx: Cortex-I frame grabber
+cx: Cronyx/Sigma multiport sync/async
+cy: Cyclades high-speed serial driver
+el: 3Com 3C501
+fe: Fujitsu MB86960A/MB86965A Ethernet cards
+fea: DEV DEFEA EISA FDDI adater
+fpa: DEC DEFPA PCI FDDI adapter
+gp: National Instruments AT-GPIB and AT-GPIB/TNT board
+gsc: Genius GS-4500 hand scanner
+gus: Gravis Ultrasound - Ultrasound, Ultrasound 16, Ultrasound MAX
+gusmax: Gravis Ultrasound MAX (currently broken)
+gusxvi: Gravis Ultrasound 16-bit PCM
+joy: Joystick
+labpc: National Instrument's Lab-PC and Lab-PC+
+mpu: Roland MPU-401 stand-alone card
+mse: Logitech & ATI InPort bus mouse ports
+mss: Microsoft Sound System
+nic: Dr Neuhaus NICCY 3008, 3009 & 5000 ISDN cards
+opl: Yamaha OPL-2 and OPL-3 FM - SB, SB Pro, SB 16, ProAudioSpectrum
+pas: ProAudioSpectrum PCM and MIDI
+pca: PCM audio ("/dev/audio") through your PC speaker
+psm: PS/2 mouse port
+rc: RISCom/8 multiport card
+sb: SoundBlaster PCM - SoundBlaster, SB Pro, SB16, ProAudioSpectrum
+sbmidi: SoundBlaster 16 MIDI interface
+sbxvi: SoundBlaster 16
+spigot: Create Labs Video Spigot video-acquisition board
+uart: Stand-alone 6850 UART for MIDI
+wds: Western Digital WD7000 IDE
+
+--- end of list ---
+
+
+4. Known Hardware Problems, Q & A:
+-- -------------------------------
+
+Q: mcd0 keeps thinking that it has found a device and this stops my Intel
+ EtherExpress card from working.
+
+A: Use the UserConfig utility (see section 1.0) and disable the probing of
+ the mcd0 and mcd1 devices. Generally speaking, you should only leave
+ the devices that you will be using enabled in your kernel.
+
+
+Q: The system finds my ed network card, but I keep getting device
+ timeout errors.
+
+A: Your card is probably on a different IRQ from what is specified in the
+ kernel configuration. The ed driver will no longer use the `soft'
+ configuration by default (values entered using EZSETUP in DOS), but it
+ will use the software configuration if you specify `?' in the IRQ field
+ of your kernel config file. The reason for the change is because the
+ ed driver used to read and try to use the soft configuration information
+ even when the card was jumpered to use a hard configuration, and this
+ caused problems.
+
+ Either move the jumper on the card to a hard configuration setting
+ (altering the kernel settings if necessary), or specify the IRQ as
+ `-1' in UserConfig or `?' in your kernel config file. This will
+ tell the kernel to use the soft configuration.
+
+ Another possibility is that your card is at IRQ 9, which is shared
+ by IRQ 2 and frequently a cause of problems (especially when you
+ have a VGA card using 2! :). You should not use IRQ 2 or 9 if at
+ all possible.
+
+
+Q: I go to boot from the hard disk for the first time after installing
+ FreeBSD, but the Boot Manager prompt just prints `F?' at the boot menu
+ each time but the boot won't go any further.
+
+A: The hard disk geometry was set incorrectly in the Partition editor when
+ you installed FreeBSD. Go back into the partition editor and specify
+ the actual geometry of your hard disk. You must reinstall FreeBSD
+ again from the beginning with the correct geometry.
+
+ If you are failing entirely in figuring out the correct geometry for
+ your machine, here's a tip: Install a small DOS partition at the
+ beginning of the disk and install FreeBSD after that. The install
+ program will see the DOS partition and try to infer the correct
+ geometry from it, which usually works.
+
+
+Q: I have a Matsushita/Panasonic CD-ROM drive but it isn't recognized
+ by the system, even if I use UserConfig to change the Port address to
+ 630, which is what my card uses.
+
+A: Not all of the companies that sell the Matsushita/Panasonic CR-562
+ and CR-563 drives use the same I/O ports and interface that the
+ matcd driver in FreeBSD expects. The only adapters that are supported
+ at this time are those that are 100% compatible with the Creative
+ Labs (SoundBlaster) host interface. See matcd.4 documentation for a
+ list of host adapters that are known to work.
+
+
+Q: I'm trying to install from a tape drive but all I get is something like:
+ st0(aha0:1:0) NOT READY csi 40,0,0,0
+ on the screen. Help!
+
+A: There's a limitation in the current sysinstall that the tape MUST
+ be in the drive while sysinstall is started or it won't be detected.
+ Try again with the tape in the drive the whole time.
+
+
+Q: I've installed FreeBSD onto my system, but it hangs when booting from
+ the hard drive with the message: ``Changing root to /dev/sd0a''.
+
+A: This problem may occur in a system with a 3com 3c509 ethernet adaptor.
+ The ep0 device driver appears to be sensitive to probes for other
+ devices that also use address 0x300. Boot your FreeBSD system by power
+ cycling the machine (turn off and on). At the ``Boot:'' prompt specify
+ the ``-c''. This will invoke UserConfig (see Section 1. above). Use
+ the ``disable'' command to disable the device probes for all devices
+ at address 0x300 except the ep0 driver. On exit, your machine should
+ successfully boot FreeBSD.
+
+
+Q: My system hangs during boot, right after the "fd0: [my floppy drive]"
+ line.
+
+A: This is not actually a hang, simply a very LONG "wdc0" probe that
+ often takes a long time to complete on certain systems (where there
+ usually _isn't_ a WD controller). Be patient, your system will boot!
+ To eliminate the problem, boot with the -c flag and eliminate the wdc0
+ device, or compile a custom kernel.
+
+[ Please add more hardware tips to this Q&A section! ]
diff --git a/release/sysinstall/help/en_US.ISO8859-1/install.hlp b/release/sysinstall/help/en_US.ISO8859-1/install.hlp
new file mode 100644
index 0000000..945c81b
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO8859-1/install.hlp
@@ -0,0 +1,447 @@
+ INSTALLATION GUIDE FOR FreeBSD 2.0.5
+
+This manual documents the process of installing FreeBSD on your
+machine. Please also see the Hardware Guide for hardware-specific
+installation instructions (how to configure your hardware, what sorts
+of things to watch out for, etc) before starting a new installation.
+
+
+Table of Contents:
+==================
+
+1.0 DOS User's Q&A section.
+ 1.1 How do I make space for FreeBSD?
+ 1.2 Can I use compressed DOS filesystems from FreeBSD?
+ 1.3 Can I use DOS extended partitions?
+ 1.4 Can I run DOS executables under FreeBSD?
+
+2.0 Preparing for the installation.
+ 2.1 Before installing from CDROM
+ 2.2 Before installing from Floppy
+ 2.3 Before installing from a DOS partition
+ 2.4 Before installing from QIC/SCSI tape
+ 2.5 Before installing over a network
+ 2.5.1 Preparing for NFS Installation
+ 2.5.2 Preparing for FTP Installation
+
+3.0 Installing FreeBSD.
+
+
+
+1.0 DOS user's Question and Answer section
+=== ======================================
+
+1.1 Help! I have no space! Do I need to delete everything first?
+
+If your machine is already running DOS and has little or no free space
+available for FreeBSD's installation, all is not lost! You may find
+the "FIPS" utility, provided in the tools/ subdirectory on the FreeBSD
+CDROM or on the various FreeBSD ftp sites, to be quite useful.
+
+FIPS allows you to split an existing DOS partition into two pieces,
+preserving the original partition and allowing you to install onto the
+second free piece. You first "defrag" your DOS partition, using the
+DOS 6.xx "DEFRAG" utility or the Norton Disk tools, then run FIPS. It
+will prompt you for the rest of the information it needs. Afterwards,
+you can reboot and install FreeBSD on the new free slice. See the
+Distributions menu for an estimation of how much free space you'll
+need for the kind of installation you want.
+
+
+1.2 Can I use compressed DOS filesystems from FreeBSD?
+
+No. If you are using a utility such as Stacker(tm) or DoubleSpace(tm),
+FreeBSD will only be able to use whatever portion of the filesystem
+you leave uncompressed. The rest of the filesystem will show up as
+one large file (the stacked/dblspaced file!). DO NOT REMOVE THAT
+FILE! You will probably regret it greatly!
+
+It is probably better to create another uncompressed DOS primary
+partition and use this for communications between DOS and FreeBSD.
+
+
+1.3 Can I mount my DOS extended partitions?
+
+This feature isn't in FreeBSD 2.0.5 but should be in 2.1. We've laid
+all the groundwork for making this happen, now we just need to do the
+last 1% of the work involved.
+
+
+1.4 Can I run DOS binaries under FreeBSD?
+
+Not yet! We'd like to add support for this someday, but are still
+lacking anyone to actually do the work. Ongoing work with Linux's
+DOSEMU utility may bring this much closer to being a reality sometime
+soon. Send mail to hackers@freebsd.org if you're interested in
+joining this effort!
+
+However, there is a neat utility called "pcemu" in the ports collection
+which emulates an 8088 and enough BIOS services to run DOS text mode
+applications. It requires the X Window System (provided as
+XFree86 3.1.1u1).
+
+
+
+2.0 Preparing for the installation
+=== ==============================
+
+2.1 Before installing from CDROM:
+
+If your CDROM is of an unsupported type, such as an IDE CDROM, then
+please skip to section 2.3: Before installing from a DOS partition.
+
+There is not a lot of preparatory work that needs to be done to
+successfully install from one of Walnut Creek's FreeBSD CDROMs (other
+CDROM distributions may work as well, we simply cannot say as we
+have no hand or say in their creation). You can either boot into the
+CD installation directly from DOS using Walnut Creek's supplied
+``install.bat'' batch file or you can make a boot floppy with
+the ``makeflp.bat'' command.
+
+For the easiest interface of all (from DOS), type "go". This
+will bring up a DOS menu utility that leads you through all
+the available options.
+
+If you're creating the boot floppy from a UNIX machine, you may find
+that ``dd if=floppies/boot.flp of=/dev/rfd0'' or
+``dd if=floppies/boot.flp of=/dev/floppy'' works well, depending on
+your hardware and operating system environment.
+
+Once you've booted from DOS or floppy, you should then be able to select
+CDROM as the media type in the Media menu and load the entire
+distribution from CDROM. No other types of installation media should
+be required.
+
+After your system is fully installed and you have rebooted from the
+hard disk, you should find the CD mounted on the directory /cdrom. A
+utility called `lndir' comes with the XFree86 distribution which you
+may also find useful: It allows you to create "link tree" directories
+to things on Read-Only media like CDROM. One example might be
+something like this:
+
+ mkdir /usr/ports
+ lndir /cdrom/ports /usr/ports
+
+Which would allow you to then "cd /usr/ports; make" and get all the
+sources from the CD, but yet create all the intermediate files in
+/usr/ports, which is presumably on a more writable media! :-)
+
+SPECIAL NOTE: Before invoking the installation, be sure that the
+CDROM is in the drive so that the "probe" can find it!
+This is also true if you wish the CDROM to be added to the default
+system configuration automatically during the install (whether or
+not you actually use it as the installation media). This will be
+fixed for 2.1, but for now this simple work-around will ensure that
+your CDROM is detected properly.
+
+Finally, if you would like people to be able to FTP install
+FreeBSD directly from the CDROM in your machine, you'll find
+it quite easy. After the machine is fully installed, you simply
+need to add the following line to the password file (using
+the vipw command):
+
+ ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent
+
+No further work is necessary. The other installers will now be able
+to chose a Media type of FTP and type in: ftp://<your machine>
+after picking "Other" in the ftp sites menu!
+
+
+2.2 Before installing from Floppy:
+
+If you must install from floppy disks, either due to unsupported
+hardware or just because you enjoy doing things the hard way, you must
+first prepare some floppies for the install.
+
+The first floppy you'll need is ``floppies/root.flp'', which is
+somewhat special in that it's not a DOS filesystem floppy at all, but
+rather an "image" floppy (it's actually a gzip'd cpio file). You can
+use the rawrite.exe program to do this under DOS, or ``dd'' to do it
+on a UNIX Workstation (see notes in section 2.1 concerning the
+``floppies/boot.flp'' image). Once this floppy is made, go on
+to make the distribution set floppies:
+
+You will need, at minimum, as many 1.44MB or 1.2MB floppies as it takes
+to hold all files in the bin (binary distribution) directory. THESE
+floppies *must* be formatted using MS-DOS, using the FORMAT command in
+MS-DOS or the File Manager format command in Microsoft Windows(tm).
+Don't trust Factory Preformatted floppies! Format them again yourself,
+just to make sure!
+
+Many problems reported by our users in the past have resulted from the
+use of improperly formatted media, so we simply take special care to
+mention it here!
+
+After you've DOS formatted the floppies, you'll need to copy the files
+onto them. The distribution files are split into chunks conveniently
+sized so that 5 of them will fit on a conventional 1.44MB floppy. Go
+through all your floppies, packing as many files as will fit on each
+one, until you've got all the distributions you want packed up in this
+fashion. Each distribution should go into a subdirectory on the
+floppy, e.g.: a:\bin\bin.aa, a:\bin\bin.ab, ...
+
+Once you come to the Media screen of the install, select
+"Floppy" and you'll be prompted for the rest.
+
+
+2.3 Before installing from a DOS partition:
+
+To prepare for installation from an MS-DOS partition you should
+simply copy the files from the distribution into a directory called
+"FREEBSD". For example, to do a minimal installation of FreeBSD from
+DOS using files copied from the CDROM, you might do something like
+this:
+
+ C> MD C:\FREEBSD
+ C> XCOPY /S E:\DISTS\BIN C:\FREEBSD
+ C> XCOPY /S E:\FLOPPIES C:\FREEBSD
+
+Asssuming that `C:' was where you had free space and `E:' was where
+your CD was mounted. Note that you need the FLOPPIES directory
+because the `root.flp' image is automatically looked for there when
+you're doing a DOS installation.
+
+For as many `DISTS' as you wish to install from DOS (and you have free
+space for), install each one under `C:\FREEBSD' - the BIN dist is only
+the minimal requirement.
+
+
+2.4 Before installing from QIC/SCSI Tape:
+
+Installing from tape is probably the easiest method, short of an
+on-line install using FTP or a CDROM install. The installation program
+expects the files to be simply tar'ed onto the tape, so after getting
+all of the files for distribution you're interested in, simply tar
+them onto the tape with a command like:
+
+ cd /freebsd/distdir
+ tar cvf /dev/rwt0 (or /dev/rst0) dist1 .. dist2
+
+Make sure that the `floppies/' directory is one of the "dists" given
+above, since the installation will look for `floppies/root.flp' on
+the tape.
+
+When you go to do the installation, you should also make sure that you
+leave enough room in some temporary directory (which you'll be allowed
+to choose) to accommodate the FULL contents of the tape you've
+created. Due to the non-random access nature of tapes, this method of
+installation requires quite a bit of temporary storage! You should
+expect to require as much temporary storage as you have stuff written
+on tape.
+
+SPECIAL NOTE: When going to do the installation, the tape must be in
+the drive *before* booting from the boot floppy. The installation
+"probe" may otherwise fail to find it.
+
+
+2.5 Before installing over a network:
+
+You can do network installations over 3 types of communications links:
+
+ Serial port: SLIP / PPP
+ Parallel port: PLIP (laplink cable)
+ Ethernet: A standard ethernet controller (includes some PCMCIA).
+
+SLIP support is rather primitive, and limited primarily to hard-wired
+links, such as a serial cable running between a laptop computer and
+another computer. The link should be hard-wired as the SLIP
+installation doesn't currently offer a dialing capability; that
+facility is provided with the PPP utility, which should be used in
+preference to SLIP whenever possible.
+
+If you're using a modem, then PPP is almost certainly your only
+choice. Make sure that you have your service provider's information
+handy as you'll need to know it fairly soon in the installation
+process. You will need to know, at the minimum, your service
+provider's IP address and possibly your own (though you can also leave
+it blank and allow PPP to negotiate it with your ISP). You also need
+to know how to use the various "AT commands" to dial the ISP with your
+particular modem as the PPP dialer provides only a very simple
+terminal emulator.
+
+If a hard-wired connection to another FreeBSD (2.0R or later) machine
+is available, you might also consider installing over a "laplink"
+parallel port cable. The data rate over the parallel port is much
+higher than what is typically possible over a serial line (up to
+50k/sec), thus resulting in a quicker installation.
+
+Finally, for the fastest possible network installation, an ethernet
+adaptor is always a good choice! FreeBSD supports most common PC
+ethernet cards, a table of supported cards (and their required
+settings) is provided as part of the FreeBSD Hardware Guide - see the
+Documentation menu on the boot floppy. If you are using one of the
+supported PCMCIA ethernet cards, also be sure that it's plugged in
+_before_ the laptop is powered on! FreeBSD does not, unfortunately,
+currently support "hot insertion" of PCMCIA cards.
+
+You will also need to know your IP address on the network, the
+"netmask" value for your address class, and the name of your machine.
+Your system administrator can tell you which values to use for your
+particular network setup. If you will be referring to other hosts by
+name rather than IP address, you'll also need a name server and
+possibly the address of a gateway (if you're using PPP, it's your
+provider's IP address) to use in talking to it. If you do not know
+the answers to all or most of these questions, then you should
+really probably talk to your system administrator _first_ before
+trying this type of installation!
+
+Once you have a network link of some sort working, the installation
+can continue over NFS or FTP.
+
+2.5.1 Preparing for NFS installation:
+
+ NFS installation is fairly straight-forward: Simply copy the
+ FreeBSD distribution files you want onto a server somewhere
+ and then point the NFS media selection at it.
+
+ If this server supports only "privileged port" access (as is
+ generally the default for Sun workstations), you will need to set
+ this option in the Options menu before installation can proceed.
+
+ If you have a poor quality ethernet card which suffers from very
+ slow transfer rates, you may also wish to toggle the appropriate
+ Options flag.
+
+ In order for NFS installation to work, the server must support
+ "subdir mounts"; e.g., if your FreeBSD 2.0.5 distribution directory
+ lives on: ziggy:/usr/archive/stuff/FreeBSD
+ Then ziggy will have to allow the direct mounting of
+ /usr/archive/stuff/FreeBSD, not just /usr or /usr/archive/stuff.
+
+ In FreeBSD's /etc/exports file, this is controlled by the
+ ``-alldirs'' option. Other NFS servers may have different
+ conventions. If you are getting `Permission Denied' messages
+ from the server then it's likely that you don't have this
+ enabled properly!
+
+
+2.5.2 Preparing for FTP Installation
+
+ FTP installation may be done from any mirror site containing a
+ reasonably up-to-date version of FreeBSD 2.0.5. A full menu of
+ reasonable choices from almost anywhere in the world is provided
+ by the FTP site menu.
+
+ If you are installing from some other FTP site not listed in this
+ menu, or you are having troubles getting your name server configured
+ properly, you can also specify your own URL by selecting the ``Other''
+ choice in that menu. A URL can also be a direct IP address, so
+ the following would work in the absence of a name server:
+
+ ftp://192.216.222.4/pub/FreeBSD/2.0.5-RELEASE
+
+ [Substitute "ALPHA" for "RELEASE" during the ALPHA test period!]
+
+ If you are installing through a firewall then you should probably
+ select ``Passive mode'' ftp, which is the default. If you are
+ talking to a server which does not support passive mode for some
+ reason, see the Options menu to select Active mode transfers.
+
+
+3. Installing FreeBSD
+-- ------------------
+
+Once you've taken note of the appropriate preinstallation steps, you
+should be able to install FreeBSD without any further trouble.
+
+Should this not be true, then you may wish to go back and re-read the
+relevant preparation section (section 2.x) for the installation media
+type you're trying to use - perhaps there's a helpful hint there that
+you missed the first time? If you're having hardware trouble, or
+FreeBSD refuses to boot at all, read the Hardware Guide provided on
+the boot floppy for a list of possible solutions.
+
+The FreeBSD boot floppy contains all the on-line documentation you
+should need to be able to navigate through an installation and if it
+doesn't then I'd like to know what you found most confusing! It is
+the objective of the FreeBSD installation program (sysinstall) to be
+self-documenting enough that painful "step-by-step" guides are no
+longer necessary. It may take us a little while to reach that
+objective, but that's the objective!
+
+Meanwhile, you may also find the following "typical installation sequence"
+to be helpful:
+
+o Boot the boot floppy. After a boot sequence which can take
+ anywhere from from 30 seconds to 3 minutes, depending on your
+ hardware, you should be presented with a menu of initial
+ choices. If the floppy doesn't boot at all, or the boot
+ hangs at some stage, go read the Q&A section of the Hardware
+ Guide for possible causes.
+
+o Press F1. You should see some basic usage instructions on
+ the menu system and general navigation. If you haven't used this
+ menu system before then PLEASE read this thoroughly!
+
+o If English is not your native language, you may wish to proceed
+ directly to the Language option and set your preferred language.
+ This will bring up some of the documentation in that language
+ instead of english.
+
+o Select the Options item and set any special preferences you
+ may have.
+
+o Select Proceed, bringing you to the Installation Menu.
+
+Installation Menu:
+
+o You can do anything you like in this menu without altering
+ your system _except_ for "Commit", which will perform any
+ requests to alter your system you may have made.
+
+ If you're confused at any point, the F1 key usually pulls
+ up the right information for the screen you're in.
+
+ o The first step is generally `Partition', which allows
+ you to chose how your drives will be used for FreeBSD.
+
+ o Next, with the `Label' editor, you can specify how the space
+ in any allocated FreeBSD partitions should be used by FreeBSD,
+ or where to mount a non-FreeBSD partition (such as DOS).
+
+ o Next, the `Distributions' menu allows you to specify which
+ parts of FreeBSD you wish to load. A good choice is
+ "User" for a small system or "Developer" for someone
+ wanting a bit more out of FreeBSD. If none of the existing
+ collections sound applicable, select Custom.
+
+ o Next, the `Media' menu allows you to specify what kind of
+ media you wish to install from. If a desired media choice is
+ found and configured automatically then this menu will simply
+ return, otherwise you'll be asked for additional details on
+ the media device type.
+
+ o Finally, the Commit command will actually perform all the
+ actions at once (nothing has been written to your disk
+ so far, nor will it until you give the final confirmation).
+ All new or changed partition information will be written
+ out, file systems will be created and/or non-destructively
+ labelled (depending on how you set their newfs flags in the
+ Label editor) and all selected distributions will be
+ extracted.
+
+ o The Configure menu choice allows you to furthur configure your
+ FreeBSD installation by giving you menu-driven access to
+ various system defaults. Some items, like networking, may
+ be especially important if you did a CDROM/Tape/Floppy
+ installation and have not yet configured your network
+ interfaces (assuming you have some). Properly configuring
+ your network here will allow FreeBSD to come up on the network
+ when you first reboot from the hard disk.
+
+ o Exit returns you to the top menu.
+
+
+ At this point, you're generally done with the sysinstall utility and
+can select the final `Quit'. If you're running it as an installer
+(e.g., before the system is all the way up) then the system will now
+reboot. If you selected the boot manager option, you will see a small
+boot menu with an `F?' prompt. Press the function key for BSD (it
+will be shown) and you should boot up into FreeBSD off the hard disk.
+
+ If this fails to happen for some reason, see the Q & A section
+of the Hardware Guide for possible clues!
+
+ Jordan
+
+---- End of Installation Guide ---
diff --git a/release/sysinstall/help/en_US.ISO8859-1/language.hlp b/release/sysinstall/help/en_US.ISO8859-1/language.hlp
new file mode 100644
index 0000000..23f176b
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO8859-1/language.hlp
@@ -0,0 +1,14 @@
+Use this menu to select your preferred language. For now, this only
+sets the default language in which various help files are displayed.
+
+In later releases this will also change the keyboard layout, screen
+map, NLS settings (sysinstall itself will also use message catalogs so
+that all menus are in the appropriate language) and implement other
+I18N features to meet various standards.
+
+Until these improvements are made, you may find it easier to simply
+edit the /etc/sysconfig file yourself once the system is fully
+installed. There are a number of comments in that file that detail
+just what should be changed, as well as a few examples of existing
+non-english setups.
+
diff --git a/release/sysinstall/help/en_US.ISO8859-1/media.hlp b/release/sysinstall/help/en_US.ISO8859-1/media.hlp
new file mode 100644
index 0000000..8b081bc
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO8859-1/media.hlp
@@ -0,0 +1,29 @@
+You can install from the following types of media:
+
+ CDROM - requires one of the following supported CDROM drives:
+
+ Sony CDU 31/33A
+ Matushita/Panasonic "Sound Blaster" CDROM.
+ Mitsumi FX-001{A-D} (older non-IDE drives).
+ SCSI - Any standard SCSI CDROM drive hooked to
+ a supported controller (see Hardware Guide).
+
+ DOS - A DOS primary partition with the required FreeBSD
+ distribution files copied onto it (e.g. C:\FREEBSD\)
+
+ FS - Assuming a disk or partition with an existing
+ FreeBSD file system and distribution set on it,
+ get the distribution files from there.
+
+ Floppy - Get distribution files from one or more DOS formatted
+ floppies.
+
+ FTP - Get the distribution files from an anonymous ftp server
+ (you will be presented with a list).
+
+ NFS - Get the distribution files from an NFS server somewhere
+ (make sure that permissions on the server allow this!)
+
+ Tape - Extract distribution files from tape into a temporary
+ directory and install from there.
+
diff --git a/release/sysinstall/help/en_US.ISO8859-1/network_device.hlp b/release/sysinstall/help/en_US.ISO8859-1/network_device.hlp
new file mode 100644
index 0000000..95c42ae
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO8859-1/network_device.hlp
@@ -0,0 +1,54 @@
+You can do network installations over 3 types of communications links:
+
+ Serial port: SLIP / PPP
+ Parallel port: PLIP (laplink cable)
+ Ethernet: A standard ethernet controller (includes some PCMCIA).
+
+SLIP support is rather primitive and limited primarily to hard-wired
+links, such as a serial cable running between a laptop computer and
+another PC. The link must be hard-wired as the SLIP installation
+doesn't currently offer a dialing capability; that facility is provided
+with the PPP utility, which should be used in preference to SLIP
+whenever possible. When you choose a serial port device, you'll
+be given the option later to edit the slattach command before it's
+run on the serial line. It is expected that you'll run slattach
+(or some equivalent) on the other end of the link at this time and
+bring up the line. FreeBSD will then install itself over the link
+at speeds of up to 115.2K/baud (the recommended speed for a hardwired
+cable).
+
+If you're using a modem then PPP is almost certainly your only
+choice. Make sure that you have your service provider's information
+handy as you'll need to know it fairly early in the installation
+process. You will need to know, at the minimum, your service
+provider's IP address and possibly your own (though you can also leave
+it blank and allow PPP to negotiate it with your ISP). You will also
+need to know how to use the various "AT commands" to dial the ISP with
+your particular brand of modem as the PPP dialer provides only a very
+simple terminal emulator and has no "modem capabilities database".
+
+If a hard-wired connection to another FreeBSD (2.0R or later) machine
+is available, you might also consider installing over a "laplink"
+parallel port cable. The data rate over the parallel port is much
+higher than what is typically possible over a serial line with
+speeds of up to 50k/sec.
+
+Finally, for the fastest possible network installation, an ethernet
+adaptor is always a good choice! FreeBSD supports most common PC
+ethernet cards, a table of which is provided in the FreeBSD
+Hardware Guide (see the Documentation menu on the boot floppy).
+If you are using one of the supported PCMCIA ethernet cards, also be
+sure that it's plugged in _before_ the laptop is powered on! FreeBSD
+does not, unfortunately, currently support "hot insertion" of PCMCIA
+cards.
+
+You will also need to know your IP address on the network, the "netmask"
+value for your address class, and the name of your machine.
+Your system administrator can tell you which values to use for your
+particular network setup. If you will be referring to other hosts by
+name rather than IP address, you'll also need a name server and
+possibly the address of a gateway (if you're using PPP, it's your
+provider's IP address) to use in talking to it. If you do not know
+the answers to all or most of these questions, then you should
+really probably talk to your system administrator _first_ before
+trying this type of installation!
diff --git a/release/sysinstall/help/en_US.ISO8859-1/options.hlp b/release/sysinstall/help/en_US.ISO8859-1/options.hlp
new file mode 100644
index 0000000..c30180c
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO8859-1/options.hlp
@@ -0,0 +1,95 @@
+The following options may be set from this screen:
+
+NFS Secure: NFS server talks only on a secure port
+
+ This is most commonly used when talking to Sun workstations, which
+ will not talk NFS over "non priviledged" ports.
+
+
+NFS Slow: User is using a slow PC or ethernet card
+
+ Use this option if you have a slow PC (386) or an ethernet card
+ with poor performance being "fed" by NFS on a higher-performance
+ workstation. This will throttle the workstation back to prevent
+ the PC from becoming swamped with data.
+
+
+FTP Abort: On transfer failure, abort
+
+ This is pretty self-explanatory. If you're transfering from a
+ host that drops the connection or cannot provide a file, abort
+ the installation of that piece.
+
+
+FTP Reselect: On transfer failure, ask for another host
+
+ This is more useful to someone doing an interactive installation.
+ If the current host stops working, ask for a new ftp server to
+ resume the installation from. The install will attempt to pick
+ up from where it left off on the other server, if at all possible.
+
+
+FTP Active: Use "active mode" for standard FTP
+
+ For all FTP transfers, use "Active" mode. This will not work
+ through firewalls, but will often work with older ftp servers
+ that do not support passive mode. If your connection hangs
+ with passive mode (the default), try active!
+
+
+FTP Passive: Use "passive mode" for firewalled FTP
+
+ For all FTP transfers, use "Passive" mode. This allows the user
+ to pass through firewalls that do not allow incoming connections
+ on random port addresses.
+
+ NOTE: ACTIVE AND PASSIVE MODES ARE NOT THE SAME AS A `PROXY'
+ CONNECTION, WHERE A PROXY FTP SERVER IS LISTENING ON A DIFFERENT
+ PORT!
+
+ In such situations, you should specify the URL as something like:
+
+ ftp://foo.bar.com:1234/pub/FreeBSD
+
+ Where "1234" is the port number of the proxy ftp server.
+
+
+Debugging: Turn on the extra debugging flag
+
+ This turns on a lot of extra noise over on the second screen
+ (ALT-F2 to see it, ALT-F1 to switch back). If your installation
+ should fail for any reason, PLEASE turn this flag on when
+ attempting to reproduce the problem. It will provide a lot of
+ extra debugging at the failure point and may be very helpful to
+ the developers in tracking such problems down!
+
+
+Yes To All: Assume "Yes" answers to all non-critical dialogs
+
+ This flag should be used with caution. It will essentially
+ decide NOT to ask the user about any "boundry" conditions that
+ might not constitute actual errors but may be warnings indicative
+ of other problems.
+
+
+FTP userpass: Specify username and password instead of anonymous.
+
+ By default, the installation attempts to log in as the
+ anonymous user. If you wish to log in as someone else,
+ specify the username and password with this option.
+
+
+Clear: Clear All Option Flags
+
+ Reset all option flags back to their default values.
+
+----
+
+Some of these items, like "FTP Active" or "FTP Passive", are actually
+mutually-exclusive even though you can turn all of them on or off at
+once. This is a limitation of the menuing system, and is compensated
+for by checks that ensure that the various flags are not in conflict.
+If you re-enter the Options menu again after leaving it, you'll see
+the settings it's actually using after checking for any possible
+conflicts.
+
diff --git a/release/sysinstall/help/en_US.ISO8859-1/partition.hlp b/release/sysinstall/help/en_US.ISO8859-1/partition.hlp
new file mode 100644
index 0000000..fd16a45
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO8859-1/partition.hlp
@@ -0,0 +1,77 @@
+This is the FreeBSD DiskLabel Editor.
+
+If you're new to this installation, then you should first understand
+how FreeBSD 2.0.5's new "slices" paradigm for looking at disk storage
+works. It's not very hard to understand. A "fully qualified slice name",
+that is the name of the file we open in /dev to talk to the slice,
+is optionally broken into 3 parts:
+
+ First you have the disk name. Assume we have two SCSI
+ drives in our system, which gives us `sd0' and `sd1'.
+
+ Next you have the "Slice" (or "FDISK Partition") number,
+ as seen in the Partition Editor. Assume that our sd0 contains
+ two slices, a FreeBSD slice and a DOS slice. This gives us
+ sd0s1 and sd0s2. Let's also say that sd1 is completely devoted
+ to FreeBSD, so we have only one slice there: sd1s1.
+
+ Next, if a slice is a FreeBSD slice, you have a number of
+ (confusingly named) "partitions" you can put inside of it.
+ These FreeBSD partitions are where various filesystems or swap
+ areas live, and using our hypothetical two-SCSI-disk machine
+ again, we might have something like the following layout on sd0:
+
+ Name Mountpoint
+ ---- ----------
+ sd0s1a /
+ sd0s1b <swap space>
+ sd0s1e /usr
+
+ Because of historical convention, there is also a short-cut,
+ or "compatibility slice", that is maintained for easy access
+ to the first FreeBSD slice on a disk for those programs which
+ still don't know how to deal with the new slice scheme.
+ The compatibility slice names for our filesystem above would
+ look like:
+
+ Name Mountpoint
+ ---- ----------
+ sd0a /
+ sd0b <swap space>
+ sd0e /usr
+
+ FreeBSD automatically maps the compatibility slice to the first
+ FreeBSD slice it finds (in this case, sd0s1). You may have multiple
+ FreeBSD slices on a drive, but only the first one may be the
+ compatibility slice!
+
+ The compatibility slice will eventually be phased out, but
+ it is still important right now for several reasons:
+
+ 1. Some programs, as mentioned before, still don't work
+ with the slice paradigm and need time to catch up.
+
+ 2. The FreeBSD boot blocks are unable to look for
+ a root file system in anything but a compatibility
+ slice right now. This means that our root will always
+ show up on "sd0a" in the above scenario, even though
+ it really lives over on sd0s1a and would otherwise be
+ referred to by its full slice name.
+
+Once you understand all this, then the label editor becomes fairly
+simple. You're either carving up the FreeBSD slices displayed at the
+top of the screen into smaller pieces (displayed in the middle of the
+screen) and then putting FreeBSD file systems on them, Or you're just
+mounting existing partitions/slices into your filesystem hierarchy;
+this editor lets you do both. Since a DOS partition is also just
+another slice as far as FreeBSD is concerned, you can mount one into
+in your filesystem hierarchy just as easily with this editor. For
+FreeBSD partitions you can also toggle the "newfs" state so that
+the partitions are either (re)created from scratch or simply checked
+and mounted (the contents are preserved).
+
+When you're done, type `Q' to exit.
+
+No actual changes will be made to the disk until you (C)ommit from the
+Install menu! You're working with what is essentially a copy of
+the disk label(s), both here and in the FDISK Partition Editor.
diff --git a/release/sysinstall/help/en_US.ISO8859-1/slice.hlp b/release/sysinstall/help/en_US.ISO8859-1/slice.hlp
new file mode 100644
index 0000000..e055ca4
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO8859-1/slice.hlp
@@ -0,0 +1,28 @@
+This is the Main Partition (or ``Slice'') Editor.
+
+Possible commands are printed at the bottom, and the Master Boot Record
+contents are at the top. You can move up and down with the arrow keys
+and can (C)reate a new partition whenever the "bar" is over a partition
+whose type is set to "unused".
+
+The flags field has the following legend:
+
+ '=' -- Partition is properly aligned.
+ '>' -- The partition doesn't end before cylinder 1024
+ 'R' -- Has been marked as containing the root (/) filesystem
+ 'B' -- Partition employs BAD144 bad-spot handling
+ 'C' -- This is the FreeBSD 2.0-compatibility partition (default)
+ 'A' -- This partition is marked active.
+
+If you select a partition for Bad144 handling, it will be scanned
+for bad blocks before any new filesystems are made on it.
+
+If no partition is marked Active, you will need to either install
+a Boot Manager (the option for which will be presented later in the
+installation) or set one Active before leaving this screen.
+
+To leave this screen, type `Q'.
+
+No actual changes will be made to the disk until you (C)ommit from the
+Install menu! You're working with what is essentially a copy of
+the disk label(s), both here and in the Label Editor.
diff --git a/release/sysinstall/help/en_US.ISO8859-1/tcp.hlp b/release/sysinstall/help/en_US.ISO8859-1/tcp.hlp
new file mode 100644
index 0000000..3ab5d7c
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO8859-1/tcp.hlp
@@ -0,0 +1,27 @@
+This screen allows you to set up your general network parameters
+(hostname, domain name, DNS server, etc) as well as the settings for a
+given interface (which was selected from the menu before this screen).
+
+You can move through the fields with the TAB, BACK-TAB and RETURN
+keys. To edit a field, use DELETE or BACKSPACE. You may also use ^A
+(control-A) to go to the beginning of the line, ^E (control-E) to go
+to the end, ^F (control-F) to go forward a character, ^B (control-B)
+to go backward one character, ^D (control-D) to delete the character
+under the cursor and ^K (control-K) to delete to the end of the line.
+Basically, the standard EMACS motion sequences.
+
+The ``Extra options to ifconfig'' is kind of special (read: a hack :-).
+
+You can use it for specifying the foreign side of a PLIP or SLIP line
+(simply type the foreign address in) as well as selecting a given
+"link" on an ethernet card that has more than one (e.g. AUI, 10BT,
+10B2, etc). The following links are recognised:
+
+ link0 - AUI * highest precedence
+ link1 - BNC
+ link2 - UTP * lowest precedence
+
+That is to say that you can enter one of "link0", "link1" or "link2"
+into the `Extra options' field to select a different link.
+
+When you're done with this form, select OK.
diff --git a/release/sysinstall/help/en_US.ISO8859-1/usage.hlp b/release/sysinstall/help/en_US.ISO8859-1/usage.hlp
new file mode 100644
index 0000000..b01a94b
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO8859-1/usage.hlp
@@ -0,0 +1,54 @@
+HOW TO USE THIS SYSTEM
+======================
+
+KEY ACTION
+--- ------
+UP ARROW Move to previous item (or up, in a text field).
+DOWN ARROW Move to next item (or down, in a text field).
+TAB Move to next item or group.
+RIGHT ARROW Move to next item or group (same as TAB).
+SHIFT-TAB Move to previous item or group.
+LEFT ARROW Move to previous item or group (same as SHIFT-TAB).
+RETURN Select item.
+PAGE UP In text boxes, scrolls up one page.
+PAGE DOWN In text boxes, scrolls down one page.
+SPACE In "radio" or multiple choice menus, toggle the current item.
+F1 Help (in screens that provide it).
+
+If you also see small "^(-)" or "v(+)" symbols at the edges of a menu,
+it means that there are more items above or below the current one that
+aren't being shown (due to insufficient screen space). Using the
+up/down arrow keys will cause the menu to scroll. When a symbol
+disappears, it means you are at the top (or bottom) of the menu.
+
+In text fields, the amount of text above the current point will be
+displayed as a percentage in the lower right corner. 100% means
+you're at the bottom of the field.
+
+Selecting OK in a menu will confirm whatever action it's controlling.
+Selecting Cancel will cancel the operation and generally return you to
+the previous menu.
+
+
+SPECIAL FEATURES:
+=================
+
+It is also possible to select a menu item by typing the first
+character of its name, if unique. Such "accelerator" characters will
+be specially highlighted in the item name.
+
+The console driver also contains a scroll-back buffer for reviewing
+things that may have scrolled off the screen. To use scroll-back,
+press the "Scroll Lock" key on your keyboard and use the arrow or
+Page Up/Page Down keys to move through the saved text. To leave
+scroll-back mode, press the Scroll Lock key again. This feature
+is most useful for dealing with sub-shells or other "wizard modes"
+that don't use menus.
+
+Once the system is fully installed and running "multi-user", you will
+also find that you have multiple "virtual consoles" and can use them to
+have several active sessions at once. Use ALT-F<n> to switch between
+them, where `F<n>' is the function key corresponding to the screen you
+wish to see. By default, the system comes with 3 virtual consoles enabled.
+You can create more by editing the /etc/ttys file, once the system is up,
+for a maximum of 12.
diff --git a/release/sysinstall/help/en_US.ISO_8859-1/README b/release/sysinstall/help/en_US.ISO_8859-1/README
new file mode 100644
index 0000000..c166e26
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO_8859-1/README
@@ -0,0 +1,104 @@
+ -----------------------------------------
+ FreeBSD 2.0.5 --- RELEASE Version , ,
+ ----------------------------------------- /( )`
+ \ \___ / |
+Welcome to the 2.0.5 release of FreeBSD! 2.0.5 is /- _ `-/ '
+an interim release of FreeBSD, filling a critical (/\/ \ \ /\
+gap during the period between 2.0R (which was / / | ` \
+released in Nov 94) and 2.1R, which will be O O ) / |
+released in late July of '95. FreeBSD 2.0.5 `-^--'`< '
+contains many substantial improvements from 2.0R, (_.) _ ) /
+not least of which is greater stability (by `.___/` /
+a considerable margin), dozens of new `-----' /
+features and a greatly enhanced <----. __ / __ \
+installation program. See the release <----|====O)))==) \) /====
+notes for more details on what's new in <----' `--' `.__,' \
+FreeBSD 2.0.5! | |
+ \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+
+What is FreeBSD? FreeBSD is an operating system based on 4.4 BSD Lite
+for Intel, AMD, Cyrix or NexGen "x86" based PC hardware. It works
+with a very wide variety of PC peripherals and configurations and can
+be used for everything from software development to Internet Service
+Provision; the busiest site on the Internet, ftp.cdrom.com, is a
+FreeBSD machine!
+
+This release of FreeBSD contains everything you need to run such a
+system, plus full source code for everything. With the source
+distribution installed you can literally recompile the entire system
+from scratch with one command, making it ideal for students,
+researchers or folks who simply want to see how it all works.
+
+A large collection of 3rd party ported software (the "ports
+collection") is also provided to make it easier for you to obtain and
+install all your favorite traditional UNIX utilities for FreeBSD.
+Over 270 ports, from editors to programming languages to graphical
+applications, make FreeBSD a powerful and comprehensive operating
+environment that rivals that of many large workstations for general utility
+and power.
+
+
+For more documentation on this system, it is recommended that you
+purchase the 4.4BSD Document Set from O'Reilly Associates and the
+USENIX Association, ISBN 1-56592-082-1. We have no connection with
+O'Reilly, we're just satisfied customers!
+
+You may also wish to read the HARDWARE GUIDE *before* proceeding any
+further with the installation. Configuring PC hardware for anything
+other than DOS/Windows (which don't actually make very significant
+demands on the hardware) is actually quite a bit harder than it looks,
+and if you think you understand PCs then you clearly haven't been
+using them for long enough! :) This guide will give you some tips on
+how to configure your hardware and what symptoms to watch for in case
+of trouble. This guide is available in the Documentation menu of the
+FreeBSD boot floppy.
+
+DISCLAIMER: While FreeBSD does its best to safeguard against accidental
+loss of data, it's still more than possible to WIPE OUT YOUR ENTIRE DISK
+with this installation! Please do not proceed to the final FreeBSD
+installation menu unless you've adequately backed up any important
+data first! We really mean it!
+
+Technical comments on this release should be sent (in English!) to:
+
+ hackers@FreeBSD.org
+
+
+Bug reports should be sent using the `send-pr' command, if you were
+able to get the system installed, otherwise to:
+
+ bugs@FreeBSD.org
+
+Please be sure to indicate WHICH VERSION of FreeBSD you're running in
+any bug reports!
+
+
+General questions should be sent to:
+
+ questions@FreeBSD.org
+
+Please have patience if your questions are not answered right away -
+this is an especially busy time for us, and our volunteer resources
+are often strained to the limit! Bug reports submitted with the
+send-pr command are logged and tracked in our bugs database, and
+you'll be kept informed of any changes in status during the life of
+the bug (or feature request).
+
+Our WEB site, http://www.freebsd.org, is also a very good source for
+updated information and provides a number of advanced documentation
+facilities. You may use the BSDI version of Netscape for browsing the
+World Wide Web directly from FreeBSD.
+
+You may also wish to look in /usr/share/FAQ and /usr/share/doc for
+further information on the system.
+
+
+Thanks for reading all of this, and we sincerely hope you enjoy this
+release of FreeBSD!
+
+ Jordan Hubbard,
+ for The FreeBSD Project
diff --git a/release/sysinstall/help/en_US.ISO_8859-1/RELNOTES b/release/sysinstall/help/en_US.ISO_8859-1/RELNOTES
new file mode 100644
index 0000000..9d6284f
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO_8859-1/RELNOTES
@@ -0,0 +1,747 @@
+ RELEASE NOTES
+ FreeBSD
+ Release 2.0.5
+
+1. Technical overview
+---------------------
+
+FreeBSD is a freely available, full source 4.4 BSD Lite based release
+for Intel i386/i486/Pentium (or compatible) based PC's. It is based
+primarily on software from U.C. Berkeley's CSRG group, with some
+enhancements from NetBSD, 386BSD, and the Free Software Foundation.
+
+Since our release of FreeBSD 2.0 some 8 months ago, the performance,
+feature set, and stability of FreeBSD has improved dramatically. The
+largest change is a revamped VM system with a merged VM/file buffer
+cache that not only increases performance, but reduces FreeBSD's
+memory footprint, making a 4MB configuration a more acceptable
+minimum. Other enhancements include full NIS client and server
+support, transaction TCP support, dial-on-demand PPP, an improved SCSI
+subsystem, early ISDN support, support for FDDI and Fast Ethernet
+(100Mbit) adapters, improved support for the Adaptec 2940 (WIDE and
+narrow) and many hundreds of bug fixes.
+
+We've also taken the comments and suggestions of many of our users to
+heart and have attempted to provide what we hope is a more sane and
+easily understood installation process. Your feedback on this
+(constantly evolving) process is especially welcome!
+
+In addition to the base distributions, FreeBSD offers a new ported
+software collection with some 270 commonly sought-after programs. The
+list of ports ranges from http (WWW) servers, to games, languages,
+editors and almost everything in between. The entire ports collection
+requires only 10MB of storage, all ports being expressed as "deltas"
+to their original sources. This makes it much easier for us to update
+ports, and greatly reduces the disk space demands made by the older
+1.0 ports collection. To compile a port, you simply change to the
+directory of the program you wish to install, type make and let the
+system do the rest. The full original distribution for each port you
+build is retrieved dynamically off of CDROM or a local ftp site, so
+you need only enough disk space to build the ports you want. (Almost)
+every port is also provided as a pre-compiled "package" which can be
+installed with a simple command (pkg_add) by those who do not wish to
+compile their own ports from source. See the file:
+ /usr/share/FAQ/Text/ports.FAQ
+for a more complete description of the ports collection.
+
+
+Since our first release of FreeBSD 1.0 nearly two years ago, FreeBSD
+has changed almost entirely. A new port from the Berkeley 4.4 code
+base was done, which brought the legal status of the system out of the
+shadows with the blessing of Novell (the new owners of USL and UNIX). The
+port to 4.4 has also brought in a host of new features, filesystems
+and enhanced driver support. With our new unencumbered code base, we
+have every reason to hope that we'll be able to release quality
+operating systems without further legal encumbrance for some time to
+come!
+
+FreeBSD 2.0.5 represents the culmination of 2 years of work and many
+thousands of man hours put in by an international development team.
+We hope you enjoy it!
+
+A number of additional documents which you may find very helpful in
+the process of installing and using FreeBSD may also be found in
+the "FAQ" directory, either under /usr/share/FAQ on an installed
+system or at the top level of the CDROM or FTP distribution from
+where you're reading this file. Please consult FAQ/Text/ROADMAP
+for a brief description of the resources provided by the FAQ directory.
+
+For a list of contributors and a general project description, please see
+the file "CONTRIB.FreeBSD" which should be bundled with your binary
+distribution.
+
+Also see the "REGISTER.FreeBSD" file for information on registering
+with the "Free BSD user counter". This counter is for ALL freely
+available variants of BSD, not just FreeBSD, and we urge you to register
+yourself with it.
+
+The core of FreeBSD does not contain DES code which would inhibit its
+being exported outside the United States. There is an add-on package
+to the core distribution, for use only in the United States, that
+contains the programs that normally use DES. The auxiliary packages
+provided separately can be used by anyone. A freely (from outside the
+U.S.) exportable European distribution of DES for our non-U.S. users also
+exists and is described in the FreeBSD FAQ.
+
+If password security for FreeBSD is all you need, and you have no
+requirement for copying encrypted passwords from different hosts
+(Suns, DEC machines, etc) into FreeBSD password entries, then
+FreeBSD's MD5 based security may be all you require! We feel that our
+default security model is more than a match for DES, and without any
+messy export issues to deal with. If you're outside (or even inside)
+the U.S., give it a try!
+
+
+1.1 What's new in 2.0.5?
+------------------------
+
+The following features were added or substantially improved between
+the release of 2.0 and this 2.0.5 release. In order to facilitate
+better communication, the person, or persons, responsible for each
+enhancement is noted. Any questions regarding the new functionality
+should be directed to them first.
+
+KERNEL:
+
+Merged VM-File Buffer Cache
+---------------------------
+A merged VM/buffer cache design greatly enhances overall system
+performance and makes it possible to do a number of more optimal
+memory allocation strategies that were not possible before.
+
+Owner: David Greenman (davidg@FreeBSD.org) and
+ John Dyson (dyson@implode.root.com)
+
+
+Network PCB hash optimization
+-----------------------------
+For systems with a great number of active TCP connections (WEB and ftp
+servers, for example), this greatly speeds up the lookup time required
+to match an incoming packet up to its associated connection.
+
+Owner: David Greenman (davidg@FreeBSD.org)
+
+
+Name cache optimization
+-----------------------
+The name-cache would cache all files of the same name to the same bucket,
+which would put for instance all ".." entries in the same bucket. We added
+the parent directory version to frustrate the hash, and improved the
+management of the cache in various other ways while we were at it.
+
+Owner: Poul-Henning Kamp (phk@FreeBSD.org)
+ David Greenman (davidg@FreeBSD.org)
+
+
+Less restrictive swap-spaces
+----------------------------
+The need to compile the names of the swap devices into the kernel has been
+removed. Now swapon will accept any block devices, up to the maximum
+number of swap devices configured in the kernel.
+
+Owner: Poul-Henning Kamp (phk@FreeBSD.org)
+ David Greenman (davidg@FreeBSD.org)
+
+
+Hard Wired SCSI Devices
+-----------------------
+Prior to 2.0.5, FreeBSD performed dynamic assignment of unit numbers
+to SCSI devices as they were probed, allowing a SCSI device failure to
+possibly change unit number assignment and prevent filesystems on
+still functioning disks from mounting. Hard wiring allows static
+allocation of unit numbers (and hence device names) to scsi devices
+based on SCSI ID and bus. SCSI configuration occurs in the kernel
+config file. Samples of the configuration syntax can be found in the
+scsi(4) man page or the LINT kernel config file.
+
+Owner: Peter Dufault (dufault@hda.com)
+Sources involved: sys/scsi/* usr.sbin/config/*
+
+
+Slice Support
+-------------
+FreeBSD now supports a "slice" abstraction which makes it more
+completely interoperable with other operating system partitions. This
+support will allow FreeBSD to inhabit DOS extended partitions.
+
+Owner: Bruce Evans (bde@FreeBSD.org)
+Sources involved: sys/disklabel.h sys/diskslice.h sys/dkbad.h
+ kern/subr_diskslice.c kern/subr_dkbad.c
+ i386/isa/diskslice_machdep.c
+ i386/isa/wd.c scsi/sd.c dev/vn/vn.c
+
+
+Support for Ontrack Disk Manager Version 6.0
+--------------------------------------------
+Support has been added for disks which use Ontrack Disk Manager. The
+fdisk program does NOT know about it however, so make all changes
+using the install program on the boot.flp or the Ontrack Disk Manager
+tool under DOS.
+
+Owner: Poul-Henning Kamp (phk@FreeBSD.org)
+
+
+Bad144 is back and working
+--------------------------
+Bad144 works again, though the semantics are slightly different than
+before in that the bad-spots are kept relative to the slice rather
+than absolute on the disk.
+
+Owner: Bruce Evans (bde@FreeBSD.org)
+ Poul-Henning Kamp (phk@FreeBSD.org)
+
+
+NEW DEVICE SUPPORT:
+
+ SCSI and CDROM Devices
+
+Matsushita/Panasonic (Creative) CD-ROM driver
+---------------------------------------------
+The Matsushita/Panasonic CR-562 and CR-563 drives are now supported
+when connected to a Sound Blaster or 100% compatible host adapter. Up
+to four host adapters are supported for a total of 16 CD-ROM drives.
+The audio functions are supported, along with access to the raw (2352 byte)
+data frames of any compact disc. Audio discs may be played using Karoke
+variable speed functions.
+
+Owner: Frank Durda IV bsdmail@nemesis.lonestar.org
+Sources involved: isa/matcd
+
+
+Adaptec 2742/2842/2940 SCSI driver
+----------------------------------
+The original 274x/284x driver has evolved considerably since the 2.0
+release. We now offer full support for the 2940 series as well as the
+Wide models of these cards. The arbitration bug (as well as many
+others) that caused the driver problems with fast devices has been
+corrected and there is even experimental tagged queuing support
+(kernel option "AHC_TAGENABLE"). John Aycock has also released the
+sequencer code under a "Berkeley style" copyright making the driver
+entirely clean of the GPL.
+
+Owner: Justin Gibbs (gibbs@FreeBSD.org)
+Sources involved: isa/aic7770.c pci/aic7870.c i386/scsi/*
+ sys/dev/aic7xxx/*
+
+
+NCR5380/NCR53400 SCSI ("ProAudio Spectrum") driver
+--------------------------------------------------
+Owner: core
+Submitted by: Serge Vakulenko (vak@cronyx.ru)
+Sources involved: isa/ncr5380.c
+
+
+Sony CDROM driver
+-----------------
+Owner: core
+Submitted by: Mikael Hybsch (micke@dynas.se)
+Sources involved: isa/scd.c
+
+
+ Serial Devices
+
+SDL Communications Riscom/8 Serial Board Driver
+-----------------------------------------------
+Owner: Andrey Chernov (ache@FreeBSD.org)
+Sources involved: isa/rc.c isa/rcreg.h
+
+
+Cyclades Cyclom-y Serial Board Driver
+-------------------------------------
+Owner: Bruce Evans (bde@FreeBSD.org)
+Submitted by: Andrew Werple (andrew@werple.apana.org.au) and
+ Heikki Suonsivu (hsu@cs.hut.fi)
+Obtained from: NetBSD
+Sources involved: isa/cy.c
+
+
+Cronyx/Sigma sync/async serial driver
+-------------------------------------
+Owner: core
+Submitted by: Serge Vakulenko
+Sources involved: isa/cronyx.c
+
+
+
+ Networking
+
+Diskless booting
+----------------
+Diskless booting in 2.0.5 is much improved. The boot-program is in
+src/sys/i386/boot/netboot, and can be run from an MSDOS system or
+burned into an EPROM. Local swapping is also possible. WD, SMC, 3COM
+and Novell ethernet cards are currently supported.
+
+
+DEC DC21140 Fast Ethernet driver
+--------------------------------
+This driver supports any of the numerous NICs using the DC21140 chipset
+including the 100Mb DEC DE-500-XA and SMC 9332.
+
+Owner: core
+Submitted by: Matt Thomas (thomas@lkg.dec.com)
+Sources involved: pci/if_de.c pci/dc21040.h
+
+
+DEC FDDI (DEFPA/DEFEA) driver
+-----------------------------
+Owner: core
+Submitted by: Matt Thomas (thomas@lkg.dec.com)
+Sources involved: pci/if_pdq.c pci/pdq.c pci/pdq_os.h pci/pdqreg.h
+
+
+3Com 3c505 (Etherlink/+) NIC driver
+-----------------------------------
+Owner: core
+Submitted by: Dean Huxley (dean@fsa.ca)
+Obtained from: NetBSD
+Sources involved: isa/if_eg.c
+
+
+Fujitsu MB86960A family of NICs driver
+-------------------------------------
+Owner: core
+Submitted by: M.S. (seki@sysrap.cs.fujitsu.co.jp)
+Sources involved: isa/if_fe.c
+
+
+Intel EtherExpress driver
+-------------------------
+Owner: Rodney W. Grimes (rgrimes@FreeBSD.org)
+Sources involved: isa/if_ix.c isa/if_ixreg.h
+
+
+3Com 3c589 driver
+-----------------
+Owner: core
+Submitted by: "HOSOKAWA Tatsumi" (hosokawa@mt.cs.keio.ac.jp),
+ Seiji Murata (seiji@mt.cs.keio.ac.jp) and
+ Noriyuki Takahashi (hor@aecl.ntt.jp)
+Sources involved: isa/if_zp.c
+
+
+IBM Credit Card Adapter driver
+------------------------------
+Owner: core
+Submitted by: "HOSOKAWA Tatsumi" (hosokawa@mt.cs.keio.ac.jp),
+Sources involved: isa/pcic.c isa/pcic.h
+
+
+EDSS1 and 1TR6 ISDN interface driver
+------------------------------------
+Owner: core
+Submitted by: Dietmar Friede (dfriede@drnhh.neuhaus.de) and
+ Juergen Krause (jkr@saarlink.de)
+Sources involved: gnu/isdn/*
+
+
+ Miscellaneous Drivers
+
+Joystick driver
+---------------
+Owner: Jean-Marc Zucconi (jmz@FreeBSD.org)
+Sources involved: isa/joy.c
+
+
+National Instruments "LabPC" driver
+-----------------------------------
+Owner: Peter Dufault (dufault@hda.com)
+Sources involved: isa/labpc.c
+
+
+WD7000 driver
+-------------
+Owner: Olof Johansson (offe@ludd.luth.se)
+
+
+Pcvt Console driver
+-------------------
+Owner: Joerg Wunsch (joerg@FreeBSD.org)
+Submitted by: Hellmuth Michaelis (hm@altona.hamburg.com)
+Sources involved: isa/pcvt/* usr.sbin/pcvt/*
+
+
+BSD-audio emulator for VAT driver
+---------------------------------
+Owner: Amancio Hasty (ahasty@FreeBSD.org) and
+ Paul Traina (pst@FreeBSD.org)
+Sources involved: isa/sound/vat_audio.c isa/sound/vat_audioio.h
+
+
+National Instruments AT-GPIB and AT-GPIB/TNT GPIB driver
+--------------------------------------------------------
+Owner: core
+Submitted by: Fred Cawthorne (fcawth@delphi.umd.edu)
+Sources involved: isa/gpib.c isa/gpib.h isa/gpibreg.h
+
+
+Genius GS-4500 hand scanner driver
+----------------------------------
+Owner: core
+Submitted by: Gunther Schadow (gusw@fub46.zedat.fu-berlin.de)
+Sources involved: isa/gsc.c isa/gscreg.h
+
+
+CORTEX-I Frame Grabber
+----------------------
+Owner: core
+Submitted by: Paul S. LaFollette, Jr.
+Sources involved: isa/ctx.c isa/ctxreg.h
+
+
+Video Spigot video capture card
+-------------------------------
+Owner: Jim Lowe
+
+
+
+1.2 Experimental features
+-------------------------
+
+The unionfs and LFS file systems are known to be severely broken in
+2.0.5. This is in part due to old bugs that we haven't had time to
+resolve yet and the need to update these file systems to deal with the
+new VM system. We hope to address these issues in a later release of
+FreeBSD.
+
+FreeBSD now supports running iBCS2 compatible binaries (currently SCO
+UNIX 3.2.2 & 3.2.4 and ISC 2.2 COFF format are supported). The iBCS2
+emulator is in its early stages, but it is functional, we haven't been
+able to do exhaustive testing (lack of commercial apps), but almost
+all of SCO's 3.2.2 binaries are working, so is an old INFORMIX-2.10
+for SCO. Further testing is nessesary to complete this project. There
+is also work under way for ELF & XOUT loaders, and most of the svr4
+syscall wrappers have been written.
+
+FreeBSD also implements enough of its Linux compatibility that we
+can now run Linux DOOM! See the ``xperimnt'' directory (on your local
+FTP server or CDROM) for full docs on how to set this up.
+
+Owner: Soren Schmidt (sos) & Sean Eric Fagan (sef)
+Sources involved: sys/i386/ibcs2/* + misc kernel changes.
+
+
+2. Supported Configurations
+---------------------------
+
+FreeBSD currently runs on a wide variety of ISA, VLB, EISA and PCI bus
+based PC's, ranging from 386sx to Pentium class machines (though the
+386sx is not recommended). Support for generic IDE or ESDI drive
+configurations, various SCSI controller, network and serial cards is
+also provided.
+
+Following is a list of all disk controllers and ethernet cards currently
+known to work with FreeBSD. Other configurations may very well work, and
+we have simply not received any indication of this.
+
+
+2.1. Disk Controllers
+---------------------
+
+WD1003 (any generic MFM/RLL)
+WD1007 (any generic IDE/ESDI)
+IDE
+ATA
+
+Adaptec 152x series ISA SCSI controllers
+Adaptec 154x series ISA SCSI controllers
+Adaptec 174x series EISA SCSI controller in standard and enhanced mode.
+Adaptec 274X/284X/2940 (Narrow/Wide/Twin) series ISA/EISA/PCI SCSI controllers
+Adaptec AIC-6260 and AIC-6360 based boards, which includes
+the AHA-152x and SoundBlaster SCSI cards.
+
+** Note: You cannot boot from the SoundBlaster cards as they have no
+ on-board BIOS, which is necessary for mapping the boot device into the
+ system BIOS I/O vectors. They're perfectly usable for external tapes,
+ CDROMs, etc, however. The same goes for any other AIC-6x60 based card
+ without a boot ROM. Some systems DO have a boot ROM, which is generally
+ indicated by some sort of message when the system is first powered up
+ or reset. Check your system/board documentation for more details.
+
+[Note that Buslogic was formerly known as "Bustec"]
+Buslogic 545S & 545c
+Buslogic 445S/445c VLB SCSI controller
+Buslogic 742A, 747S, 747c EISA SCSI controller.
+Buslogic 946c PCI SCSI controller
+Buslogic 956c PCI SCSI controller
+
+NCR 53C810 and 53C825 PCI SCSI controller.
+NCR5380/NCR53400 ("ProAudio Spectrum") SCSI controller.
+
+DTC 3290 EISA SCSI controller in 1542 emulation mode.
+
+UltraStor 14F, 24F and 34F SCSI controllers.
+
+Seagate ST01/02 SCSI controllers.
+
+Future Domain 8xx/950 series SCSI controllers.
+
+WD7000 SCSI controller.
+
+With all supported SCSI controllers, full support is provided for
+SCSI-I & SCSI-II peripherals, including Disks, tape drives (including
+DAT) and CD ROM drives.
+
+The following CD-ROM type systems are supported at this time:
+(cd) SCSI (also includes ProAudio Spectrum and SoundBlaster SCSI)
+(mcd) Mitsumi proprietary interface
+(matcd) Matsushita/Panasonic (Creative) proprietary interface
+(scd) Sony proprietary interface
+
+Note: CD-Drives with IDE interfaces are not supported at this time.
+
+Some controllers have limitations with the way they deal with >16MB of
+memory, due to the fact that the ISA bus only has a DMA address space
+of 24 bits. If you do your arithmetic, you'll see that this makes it
+impossible to do direct DMA to any address >16MB. This limitation is
+even true of some EISA controllers (which are normally 32 bit) when
+they're configured to emulate an ISA card, which they then do in *all*
+respects. This problem is avoided entirely by IDE controllers (which
+do not use DMA), true EISA controllers (like the UltraStor, Adaptec
+1742A or Adaptec 2742) and most VLB (local bus) controllers. In the
+cases where it's necessary, the system will use "bounce buffers" to
+talk to the controller so that you can still use more than 16Mb of
+memory without difficulty.
+
+
+2.2. Ethernet cards
+-------------------
+
+Allied-Telesis AT1700 and RE2000 cards
+SMC Elite 16 WD8013 ethernet interface, and most other WD8003E,
+WD8003EBT, WD8003W, WD8013W, WD8003S, WD8003SBT and WD8013EBT
+based clones. SMC Elite Ultra is also supported.
+
+DEC EtherWORKS III NICs (DE203, DE204, and DE205)
+DEC EtherWORKS II NICs (DE200, DE201, DE202, and DE422)
+DEC DC21140 based NICs (SMC???? DE???)
+DEC FDDI (DEFPA/DEFEA) NICs
+
+Fujitsu FMV-181 and FMV-182
+
+Intel EtherExpress
+
+Isolan AT 4141-0 (16 bit)
+Isolink 4110 (8 bit)
+
+Novell NE1000, NE2000, and NE2100 ethernet interface.
+
+3Com 3C501 cards
+
+3Com 3C503 Etherlink II
+
+3Com 3c505 Etherlink/+
+
+3Com 3C507 Etherlink 16/TP
+
+3Com 3C509, 3C579, 3C589 (PCMCIA) Etherlink III
+
+Toshiba ethernet cards
+
+PCMCIA ethernet cards from IBM and National Semiconductor are also
+supported.
+
+
+2.3. Misc
+---------
+
+AST 4 port serial card using shared IRQ.
+
+ARNET 8 port serial card using shared IRQ.
+
+BOCA ATIO66 6 port serial card using shared IRQ.
+
+Cyclades Cyclom-y Serial Board.
+
+STB 4 port card using shared IRQ.
+
+Mitsumi (all models) CDROM interface and drive.
+
+SDL Communications Riscom/8 Serial Board.
+
+SoundBlaster SCSI and ProAudio Spectrum SCSI CDROM interface and drive.
+
+Matsushita/Panasonic (Creative SoundBlaster) CDROM interface and drive.
+
+Adlib, SoundBlaster, SoundBlaster Pro, ProAudioSpectrum, Gravis UltraSound
+and Roland MPU-401 sound cards.
+
+FreeBSD currently does NOT support IBM's microchannel (MCA) bus, but
+support is apparently close to materializing. Details will be posted
+as the situation develops.
+
+
+3. Obtaining FreeBSD
+--------------------
+
+You may obtain FreeBSD in a variety of ways:
+
+1. FTP/Mail
+
+You can ftp FreeBSD and any or all of its optional packages from
+`ftp.freebsd.org' - the official FreeBSD release site.
+
+For other locations that mirror the FreeBSD software see the file
+MIRROR.SITES. Please ftp the distribution from the nearest site
+to you netwise.
+
+If you do not have access to the internet and electronic mail is your
+only recourse, then you may still fetch the files by sending mail to
+`ftpmail@decwrl.dec.com' - putting the keyword "help" in your message
+to get more information on how to fetch files from ftp.freebsd.org.
+Note: This approach will end up sending many *tens of megabytes*
+through the mail, and should only be employed as an absolute LAST
+resort!
+
+
+2. CDROM
+
+FreeBSD 2.0.5 may be ordered on CDROM from:
+
+ Walnut Creek CDROM
+ 4041 Pike Lane, Suite D
+ Concord CA 94520
+ 1-800-786-9907, +1-510-674-0783, +1-510-674-0821 (fax)
+
+Or via the internet from orders@cdrom.com or http://www.cdrom.com.
+Their current catalog can be obtained via ftp as:
+ ftp://ftp.cdrom.com/cdrom/catalog.
+
+Cost per CD is $39.95, or $24.95 with a FreeBSD subscription. With
+a subscription, you will automatically receive updates as they
+are released. Your credit card will be billed when each disk is shipped
+and you may cancel your subscription at any time without further obligation.
+
+Walnut Creek CDROM also sells a full line of FreeBSD related merchandise such
+as T-shirts ($14.95, available in "child", Large and XL sizes), coffee mugs
+($9.95), tattoos ($0.25 each) and posters ($3.00).
+
+Shipping (per order not per disc) is $5 in the US, Canada or
+Mexico and $9.00 overseas. They accept Visa, Mastercard, Discover,
+American Express or checks in U.S. Dollars and ship COD within the
+United States. California residents please add 8.25% sales tax.
+
+Should you be dissatisfied for any reason, the CD comes with an
+unconditional return policy.
+
+
+Reporting problems, making suggestions, submitting code
+-------------------------------------------------------
+
+Your suggestions, bug reports and contributions of code are always
+valued - please do not hesitate to report any problems you may find
+(preferably with a fix attached if you can!).
+
+The preferred method to submit bug reports from a machine with
+internet mail connectivity is to use the send-pr command. Bug reports
+will be dutifully filed by our faithful bugfiler program and you can
+be sure that we'll do our best to respond to all reported bugs as soon
+as possible.
+
+If, for some reason, you are unable to use the send-pr command to
+submit a bug report, you can try to send it to:
+
+ bugs@FreeBSD.org
+
+
+Otherwise, for any questions or suggestions, please send mail to:
+
+ questions@FreeBSD.org
+
+Additionally, being a volunteer effort, we are always happy to have
+extra hands willing to help - there are already far more enhancements
+to be done than we can ever manage to do by ourselves! To contact us
+on technical matters, or with offers of help, you may send mail to:
+
+ hackers@FreeBSD.org
+
+Since these mailing lists can experience significant amounts of
+traffic, if you have slow or expensive mail access and you are
+only interested in keeping up with significant FreeBSD events, you may
+find it preferable to subscribe to:
+
+ announce@FreeBSD.org
+
+
+All but the freebsd-bugs groups can be freely joined by anyone wishing
+to do so. Send mail to MajorDomo@FreeBSD.org and include the keyword
+`help' on a line by itself somewhere in the body of the message. This
+will give you more information on joining the various lists, accessing
+archives, etc. There are a number of mailing lists targeted at
+special interest groups not mentioned here, so send mail to majordomo
+and ask about them!
+
+
+6. Acknowledgements
+-------------------
+
+FreeBSD represents the cumulative work of many dozens, if not
+hundreds, of individuals from around the world who have worked very
+hard to bring you this release. It would be very difficult, if not
+impossible, to enumerate everyone who's contributed to FreeBSD, but
+nonetheless we shall try (in alphabetical order, of course). If your
+name is not mentioned, please be assured that its omission is entirely
+accidental.
+
+
+The Computer Systems Research Group (CSRG), U.C. Berkeley.
+
+Bill Jolitz, for his initial work with 386BSD.
+
+The FreeBSD Core Team
+(in alphabetical order by first name):
+
+ Andreas Schulz <ats@FreeBSD.org>
+ Andrey A. Chernov <ache@FreeBSD.org>
+ Bruce Evans <bde@FreeBSD.org>
+ David Greenman <davidg@FreeBSD.org>
+ Garrett A. Wollman <wollman@FreeBSD.org>
+ Gary Palmer <gpalmer@FreeBSD.org>
+ Geoff Rehmet <csgr@FreeBSD.org>
+ Jack Vogel <jackv@FreeBSD.org>
+ John Dyson <dyson@FreeBSD.org>
+ Jordan K. Hubbard <jkh@FreeBSD.org>
+ Justin Gibbs <gibbs@FreeBSD.org>
+ Paul Richards <paul@FreeBSD.org>
+ Poul-Henning Kamp <phk@FreeBSD.org>
+ Rich Murphey <rich@FreeBSD.org>
+ Rodney W. Grimes <rgrimes@FreeBSD.org>
+ Satoshi Asami <asami@FreeBSD.org>
+ Søren Schmidt <sos@FreeBSD.org>
+
+Special mention to:
+
+ Walnut Creek CDROM, without whose help (and continuing support)
+ this release would never have been possible.
+
+ Dermot McDonnell for his donation of a Toshiba XM3401B CDROM
+ drive.
+
+ Additional FreeBSD helpers and beta testers:
+
+ J.T. Conklin Julian Elischer
+ Frank Durda IV Peter Dufault
+ Sean Eric Fagan Jeffrey Hsu
+ Terry Lambert L Jonas Olsson
+ Chris Provenzano Dave Rivers
+ Guido van Rooij Steven Wallace
+ Atsushi Murai Scott Mace
+ Nate Williams
+
+ And everyone at Montana State University for their initial support.
+
+
+Jordan would also like to give special thanks to Poul-Henning Kamp and
+Gary Palmer, both of whom put in long hours helping him to construct
+the new installation utility. Poul, being a proud new father, was
+especially pressed for time and yet somehow managed to put in
+a significant amount of effort anyway. This release could not have
+happened without him! Thank you both!
+
+Thanks also to everyone else who helped, especially those not
+mentioned, and we sincerely hope you enjoy this release of FreeBSD!
+
+
+ The FreeBSD Core Team
+
+$Id: RELNOTES,v 1.9 1995/06/10 02:40:11 jkh Exp $
diff --git a/release/sysinstall/help/en_US.ISO_8859-1/XF86.hlp b/release/sysinstall/help/en_US.ISO_8859-1/XF86.hlp
new file mode 100644
index 0000000..c789eaa
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO_8859-1/XF86.hlp
@@ -0,0 +1,500 @@
+README for XFree86 3.1.1u1 on FreeBSD 2.0.5
+Rich Murphey, David Dawes
+20 January 1995
+
+1. What and Where is XFree86?
+------------------------------
+
+XFree86 is a port of X11R6 that supports several versions of Intel-
+based Unix. It is derived from X386 1.2, which was the X server
+distributed with X11R5. This release consists of many new features
+and performance improvements as well as many bug fixes. The release
+is available as source patches against the X Consortium X11R6 code, as
+well as binary distributions for many architectures.
+
+See the Copyright Notice (COPYRIGHT.html).
+
+The sources for XFree86 are available as part of the FreeBSD 2.0.5
+distribution, or by anonymous ftp from:
+
+ftp.XFree86.org:/pub/XFree86/current
+(ftp://ftp.XFree86.org/pub/XFree86/current)
+
+
+Binaries for XFree86 on FreeBSD are also available as part of
+2.0.5 or from:
+
+ftp.XFree86.org:/pub/XFree86/current/binaries/FreeBSD-2.0
+(ftp://ftp.XFree86.org/pub/XFree86/current/binaries/FreeBSD-2.0)
+
+XFree86.cdrom.com:/pub/XFree86/current/binaries/FreeBSD-2.0
+(ftp://XFree86.cdrom.com/pub/XFree86/current/binaries/FreeBSD-2.0)
+
+Send email to Rich-Murphey@Rice.edu or XFree86@XFree86.org if you have
+comments or suggestions about this file and we'll revise it.
+
+
+2. Installing the Binaries
+---------------------------
+
+In the FreeBSD 2.0.5 distribution, XFree86 comes in 3 major sections:
+"basic" distributions, fonts and servers. At the minimum, you will
+need the binaries and libraries from the basic distribution, the
+"misc" fonts collection and at least one server. The smallest usable
+distribution is around 9MB.
+
+If you can't decide what to pick and you have 52Mb of disk
+space, it's safe to unpack everything.
+
+What follows is a description of the various distribution files
+comprising XFree86. If you are installing this as part of FreeBSD
+2.0.5 then there's no need to use these files directly: You may
+simply check the desired components off the installation menus
+provided for that purpose. If you're installing this manually,
+then the following information should prove useful:
+
+ Required (6.7Mb):
+
+ X311bin.tgz
+ all the executable X client applications and shared libs
+
+ X311fnts.tgz
+ the misc and 75 dpi fonts
+
+ X311lib.tgz
+ data files needed at runtime
+
+
+ Required unless you have already customized your configuration
+ files:
+
+ X311xicf.tgz
+ customizable xinit runtime configuration file
+
+ X311xdcf.tgz
+ customizable xdm runtime configuration file
+
+ Choose at least one server ( 2.3Mb):
+
+ X3118514.tgz
+ 8-bit color for IBM 8514 and true compatibles.
+
+ X311AGX.tgz
+ 8-bit color for AGX boards.
+
+ X311Mch3.tgz
+ 8 and 16-bit color for ATI Mach32 boards.
+
+ X311Mch8.tgz
+ 8-bit color for ATI Mach8 boards.
+
+ X311Mono.tgz
+ 1-bit monochrome for VGA, Super-VGA, Hercules, and others.
+
+ X311P9K.tgz
+ 8, 16, and 24-bit color for Weitek P9000 boards (Diamond
+ Viper).
+
+ X311S3.tgz
+ 8, 16 and 24-bit color for S3 boards (#9 GXE, Actix GE32,
+ SPEA Mercury, STB Pegasus)
+
+ X311SVGA.tgz
+ 8-bit color for Super-VGA cards.
+
+ X311VG16.tgz
+ 4-bit color for VGA and Super-VGA cards
+
+ X311W32.tgz
+ 8-bit Color for ET4000/W32, /W32i and /W32p cards.
+
+ X311nest.tgz
+ A nested server running as a client window on another
+ display.
+
+ Optional:
+
+ X311doc.tgz
+ (.5Mb) READMEs and XFree86 specific man pages
+
+ X311man.tgz
+ (1.7Mb) man pages except XFree86 specific ones in etc archive
+
+ X311f100.tgz
+ (1.8Mb) 100dpi fonts
+
+ X311fscl.tgz
+ (1.6Mb) Speedo and Type1 fonts
+
+ X311fnon.tgz
+ (3.3Mb) Japanese, Chinese and other non-English fonts
+
+ X311fsrv.tgz
+ (.3Mb) the font server and it's man page
+
+ X311prog.tgz
+ (3.9Mb) config, lib*.a and *.h files needed only for
+ compiling
+
+ X311link.tgz
+ (7.8Mb) X server reconfiguration kit
+
+ X311pex.tgz
+ (.5Mb) PEX fonts and shared libs needed by PEX applications.
+
+ X311lbx.tgz
+ (.2Mb) low bandwidth X proxy server and libraries.
+
+Note that there is no longer a separate xdm archive. FreeBSD 2.0
+and later handles this in shared libraries now, so that the xdm
+binary does not itself contain des and there is no more need for
+us to provide separate tar balls.
+
+
+2.1. Full Install:
+-------------------
+
+[ Note: Unless you're installing XFree86 3.1.1u1 manually, that is
+ to say not as part of the FreeBSD 2.0.5 installation, you may skip
+ to section 2.3 ]
+
+ 1. You must be logged in as root to unpack the archives because
+ several executables are set-user-id. Otherwise the server may
+ abort if you unpack it as an ordinary user. You must also use a
+ ``umask'' value of 022 because the X server requires special
+ permissions.
+
+ % su
+ # umask 022
+
+
+ 2. If you have 52Mb free in the /usr partition ``cd /usr'' and skip
+ to no. 3. Otherwise, create a directory on another partition
+ and sym link it into /usr:
+
+ # cd /usr/local
+ # mkdir X11R6
+ # ln -s /usr/local/X11R6 /usr/X11R6
+
+
+ 3. Unpack everything:
+
+ If you are using sh (as root usually does):
+
+ # for i in X311*.tgz; do
+ # tar -xzf $i
+ # done
+
+
+ Else, if you are using csh:
+
+ % foreach i (X311*.tgz)
+ % tar -xzf $i
+ % end
+
+
+ 4. Create a symbolic link ``X'' that points to the server that
+ matches your video card. The XF86_* man pages list which vga
+ chip sets are supported by each server. For example, if you
+ have an ET4000 based card you will use the XF86_SVGA server:
+
+ # cd /usr/X11R6/bin; rm X; ln -s XF86_SVGA X
+
+
+2.2. Minimal Install:
+----------------------
+
+First do numbers 1 and 2 above. Then unpack the required archives:
+
+ # for i in bin fnts lib xicf; do
+ # tar -xzf X311$i.tgz
+ # done
+
+
+Then unpack a server archive corresponding to your vga card. The
+server man pages, X11R6/man/man1/XF86_*, list the vga chip sets
+supported by each server. For example, if you have an ET4000 based
+card you will use the XF86_SVGA server:
+
+ # tar -xzf X311SVGA.tgz
+ # cd /usr/X11R6/bin; rm X; ln -s XF86_SVGA X
+
+
+2.3. After either Full or Minimal Install above:
+-------------------------------------------------
+
+Add /usr/X11R6/bin to the default path for sh in /etc/profile and for
+csh in /etc/csh.login if they are not already there:
+
+ # echo 'set path = ($path /usr/X11R6/bin)' >>/etc/csh.login
+ # echo 'PATH=$PATH:/usr/X11R6/bin' >>/etc/profile
+
+
+Or make sure all who use X put /usr/X11R6/bin in their shell's
+``path'' variable.
+
+Next either reboot or invoke ldconfig as root to put the shared
+libraries in ld.so's cache:
+
+ # ldconfig /usr/lib /usr/local/lib /usr/X11R6/lib
+
+
+If you had already configured X11R6/lib/X11/xinit/xinitrc or
+X11R6/lib/X11/xdm/* omit the xinit-config or xdm-config archive or
+unpack it separately and merge in your customizations.
+
+The fscl and f100 archives are optional and can be omitted if you are
+short on space. The optional link archive allows you to reconfigure
+and customize a X server binary. The optional prog archive is needed
+only for writing or compiling X applications. The optional pex
+archive contains pex clients and libraries for building 3D graphics
+applications.
+
+ NOTE: You don't need to uncompress the font files, but if
+ you uncompress them anyway you must run mkfontdir in the
+ corresponding font directory; otherwise your server will
+ abort with the message ``could not open default font
+ 'fixed'''.
+
+
+3. Installing The Display Manager (xdm)
+----------------------------------------
+
+The display manager makes your PC look like an X terminal. That is,
+it presents you with a login screen that runs under X.
+
+The easiest way to automatically start the display manager on boot is
+to add a line in /etc/ttys to start it on one of the unoccupied
+virtual terminals:
+
+ ttyv4 "/usr/X11R6/bin/xdm -nodaemon" xterm on secure
+
+You should also make sure that /usr/X11R6/bin/X is a symbolic link to
+the Xserver that matches your video card or edit the file Xservers in
+/usr/X11R6/lib/X11/xdm to specify the pathname of the X server.
+
+The change to /etc/ttys won't take effect until you either reboot or
+``kill -HUP 1'' to force initd to reread /etc/ttys. You can also test
+the display manager manually by loging in as root on the console and
+typing ``xdm -nodaemon''.
+
+
+4. Configuring X for Your Hardware
+-----------------------------------
+
+The XF86Config file tells the X server what kind of monitor, video
+card and mouse you have. You must create it to tell the server what
+specific hardware you have.
+
+XFree86 3.1 uses a new configuration file format. Consult the
+XF86Config man page and the general INSTALL (INSTALL.html) file for
+instructions.
+
+If you have a Xconfig file for XFree86 2.x, use reconfig to translate
+part of it into the new format:
+
+ # reconfig <Xconfig >XF86Config
+
+and complete the rest according to the XF86Config man page and the
+XF86Config.sample file as a template.
+
+In order to protect your hardware from damage, the server no longer
+will read XF86Config files from a user's home directory, but requires
+that it be in /etc/XF86Config, /usr/X11R6/lib/X11/XF86Config.hostname
+or /usr/X11R6/lib/X11/XF86Config.
+
+You'll need info on your hardware:
+
+ o Your mouse type, baud rate and it's /dev entry.
+
+ o The video card's chipset (e.g. ET4000, S3, etc).
+
+ o Your monitor's sync frequencies.
+
+The easiest way to find which device your mouse is plugged into is to
+use ``cat'' or ``kermit'' to look at the output of the mouse. Connect
+to it and just make sure that it generates output when the mouse is
+moved or clicked:
+
+ % cat < /dev/cuaa0
+
+If you can't find the right mouse device then use ``dmesg|grep sio''
+to get a list of devices that were detected upon booting:
+
+ % dmesg|grep sio
+ sio0 at 0x3f8-0x3ff irq 4 on isa
+
+Then double check the /dev entries corresponding to these devices.
+Use the script /dev/MAKEDEV to create entries if they don't already
+exist:
+
+ % cd /dev
+ % sh MAKEDEV cuaa0
+
+If you plan to fine tune the screen size or position on your monitor
+you'll need the specs for sync frequencies from your monitor's manual.
+
+
+5. Running X
+-------------
+
+8mb of memory is a recommended minimum for running X. The server,
+window manager, display manager and an xterm take about 8Mb of virtual
+memory themselves. Even if their resident set size is smaller, on a
+8Mb system that leaves very space for other applications such as gcc
+that expect a few meg free. The R6 X servers may work with 4Mb of
+memory, but in practice compilation while running X can take 5 or 10
+times as long due to constant paging.
+
+The easiest way for new users to start X windows is to type ``startx
+>& startx.log''. Error messages are lost unless you redirect them
+because the server takes over the screen.
+
+To get out of X windows, type: ``exit'' in the console xterm. You can
+customize your X by creating .xinitrc, .xserverrc, and .twmrc files in
+your home directory as described in the xinit and startx man pages.
+
+
+6. Rebuilding Kernels for X
+----------------------------
+
+The GENERIC FreeBSD 2.0 kernel supports XFree86 without any
+modifications required. You do not need to make any changes to the
+GENERIC kernel or any kernel configuration which is a superset.
+
+For a general description of BSD kernel configuration get
+smm.02.config.ps.Z
+(ftp://gatekeeper.dec.com/pub/BSD/manuals/smm.02.config.ps.Z). It is
+a ready-to-print postscript copy of the kernel configuration chapter
+from the system maintainers manual.
+
+If you do decide to reduce your kernel configuration file, do not
+remove the two lines below (in /sys/arch/i386/conf). They are both
+required for X support:
+
+ options XSERVER #Xserver
+ options UCONSOLE #X Console support
+
+The generic FreeBSD 2.0 kernel is configured by default with the
+syscons driver. To configure your kernel similarly it should have a
+line like this in /usr/src/sys/i386/conf/GENERIC:
+
+ device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr
+
+The maximum number of virtual consoles can be set using the MAXCONS
+option:
+
+ options "MAXCONS=4" #4 virtual consoles
+
+
+Otherwise, the default without a line like this is 12. You must have
+more VTs than gettys as described in the end of section 3, and 4 is a
+reasonable minimum.
+
+The server supports several console drivers: pccons, syscons and pcvt.
+The syscons driver is the default in FreeBSD 1.1.5 and higher. They
+are detected at runtime and no configuration of the server itself is
+required.
+
+The pcvt console driver is bundled into FreeBSD and may be enabled
+by changing the `sc0' line in your kernel configuration file to
+`vt0'. See /sys/i386/conf/LINT for more details.
+
+The XFree86 servers include support for the MIT-SHM extension. The
+GENERIC kernel does not support this, so if you want to make use of
+this, you will need a kernel configured with SYSV shared memory
+support. To do this, add the following line to your kernel config
+file:
+
+ options SYSVSHM # System V shared memory
+ options SYSVSEM # System V semaphores
+ options SYSVMSG # System V message queues
+
+
+If you are using a SoundBlaster 16 on IRQ 2 (9), then you need a patch
+for sb16_dsp.c. Otherwise a kernel configured with the SoundBlaster
+driver will claim interrupt 9 doesn't exist and X server will lock up.
+
+S3 cards and serial port COM 4 cannot be installed together on a
+system because the I/O port addresses overlap.
+
+
+7. Rebuilding XFree86
+----------------------
+
+The server link kit allows you to build an X server using a minimum
+amount of disk space. Just unpack it, make the appropriate changes to
+site.def, type ``./mkmf' and ``make'' to link the server. See
+README.LinkKit (LinkKit.html) for more info.
+
+The source tree takes about 114Mb before compiling and an additional
+100Mb after ``make World''. You should configure the distribution by
+editing xf86site.def and site.def in xc/config/cf before compiling.
+By default, the config files are set up to build shared libraries. If
+you are running a version of FreeBSD that doesn't include shared
+library support, add the following line to site.def:
+
+ #define BuildBsdSharedLibs NO
+
+If your system doesn't have support or SYSV shared memory (for
+example, if you don't have the <sys/shm.h> header), you should disable
+the MIT-SHM extension by adding the following line to site.def:
+
+ #define HasShm NO
+
+To compile the sources on FreeBSD 1.1 and later, type:
+
+ make World
+
+
+8. Building Other X Clients
+----------------------------
+
+The easiest way to build a new client (X application) is to use xmkmf
+if an Imakefile is included with it. Type ``xmkmf -a'' to create the
+Makefiles, then type ``make''. Whenever you install additional man
+pages you should update whatis.db by running ``makewhatis
+/usr/X11R6/man''.
+
+Note: Starting with XFree86 2.1 and FreeBSD 1.1, the symbol __386BSD__
+no longer gets defined either by the compiler or via the X config
+files for FreeBSD systems. When porting clients to BSD systems, make
+use of the symbol BSD for code which is truly BSD-specific. The value
+of the symbol can be used to distinguish different BSD releases. For
+example, code specific to the Net-2 and later releases can use:
+
+ #if (BSD >= 199103)
+
+To ensure that this symbol is correctly defined, include <sys/param.h>
+in the source that requires it. Note that the symbol CSRG_BASED is
+defined for *BSD systems in XFree86 3.1.1 and later. This should be
+used to protect the inclusion of <sys/param.h>.
+
+For code that really is specific to a particular i386 BSD port, use
+__FreeBSD__ for FreeBSD, __NetBSD__ for NetBSD, __386BSD__ for 386BSD,
+and __bsdi__ for BSD/386.
+
+
+9. Thanks
+----------
+
+Many thanks to:
+
+ o Pace Willison for providing initial *BSD support.
+
+ o Amancio Hasty for 386BSD kernel and S3 chipset support.
+
+ o David Greenman, Nate Williams, Jordan Hubbard for FreeBSD kernel
+ support.
+
+ o Rod Grimes, Jordan Hubbard and Jack Velte for the use of Walnut
+ Creek Cdrom's hardware.
+
+ o Orest Zborowski, Simon Cooper and Dirk Hohndel for ideas from
+ the Linux distribution.
+
+$XConsortium: FreeBSD.sgml,v 1.3 95/01/23 15:34:41 kaleb Exp $
+Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/FreeBSD.sgml,v 3.10 1995/01/28 16:01:28 dawes Exp $
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/READ.FreeBSD,v 3.12 1995/01/28 16:19:37 dawes Exp $
diff --git a/release/sysinstall/help/en_US.ISO_8859-1/configure.hlp b/release/sysinstall/help/en_US.ISO_8859-1/configure.hlp
new file mode 100644
index 0000000..2d14031
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO_8859-1/configure.hlp
@@ -0,0 +1,14 @@
+This menu allows you to configure your system after the installation process
+is complete. At the minimum, you should probably set the system manager's
+password and the system time zone.
+
+For extra goodies like bash, emacs, pascal, etc., you should look at the
+Packages item in this menu. Currently, the Packages option is only useful
+if you have a CDROM or an existing packages collection somewhere in the
+file system hierarchy where the package management tool can locate it.
+The automatic transfer of packages via FTP is not yet supported!
+
+If you wish to re-invoke the package installation tool after leaving
+the system installation, the command is ``pkg_manage''. For setting
+the timezone, type ``tzsetup''. For more information on the general
+system configuration, see the ``/etc/sysconfig'' file.
diff --git a/release/sysinstall/help/en_US.ISO_8859-1/distributions.hlp b/release/sysinstall/help/en_US.ISO_8859-1/distributions.hlp
new file mode 100644
index 0000000..b81efbf
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO_8859-1/distributions.hlp
@@ -0,0 +1,88 @@
+An ``X-'' prefixed before a distribution set means that the XFree86
+3.1.1u1 base distribution, libraries, manual pages, SVGA server and a
+set of default fonts will be selected in addition to the set itself.
+
+If you select such a set, you will also be presented with a set of
+menus for customizing the selections to your desired X Window System
+setup.
+
+N.B. All references in this document to `complete source' mean the
+complete source tree minus any legally encumbered cryptography code.
+
+The current "canned" installations are as follows:
+
+Developer: Base ("bin") distribution, man pages, dictionary
+ files, profiling libraries and the complete source tree.
+
+
+Kern-Developer: As above, but with only kernel sources instead of
+ the complete source tree.
+
+
+User: The base distribution, man pages, dictionary files and
+ the FreeBSD 1.x and 2.0 compatibility sets.
+
+
+Minimal: Only the base distribution.
+
+
+Everything: The base distribution, man pages, dictionary files,
+ profiling libraries, the FreeBSD 1.x and the FreeBSD 2.0
+ compatibility libraries, the complete source tree,
+ games and your choice of XFree86 distribution components.
+ N.B. Still no cryptocraphy source code!
+
+
+Custom: Allows you to modify or create your distribution set on
+ a piece-by-piece basis.
+
+
+Reset: Clear all currently selected distributions.
+
+
+---
+
+When using Custom, most of the sub-distribution choices are fairly
+obvious, though two possible exceptions may be the "commerce" and
+"xperimnt" distributions:
+
+ * The "commerce" directory, as its name implies, is devoted to
+ commercial offerings. This includes commercial products released
+ under special arrangement, limited functionality demos, shareware
+ products (you like it, you buy it), etc.
+
+ At the time of this writing, there are unfortunately not enough
+ commercial offerings to justify a fully split distribution set,
+ so each product is available both as a subdirectory and as part
+ of one large archive file. If you select "commerce" from the
+ distributions submenus then you'll get the big file containing
+ the entire collection copied to your hard disk. Don't do this
+ unless you've got at least 10MB to devote to it!
+
+
+ * The "xperimnt" directory contains, not surprisingly, experimental
+ offerings. Unfinished (or work-in-progress) features, special
+ purpose drivers and packages, strange proof-of-concept stuff,
+ it's a mixed bag! Select this item on a distribution menu and
+ you'll get the whole collection (between 10 and 30MB).
+
+
+ If you're installing from CDROM then all of the commercial and
+ "experimental" offerings are also easily available in their
+ individual subdirectories and can be copied to hard disk at
+ any time.
+
+
+You may also notice that certain distributions, like "des" and "krb",
+are marked "NOT FOR EXPORT!" This is because it's illegal to
+export them from the United States (or any other country which
+considers encryption technology to be on its restricted export
+list). Since breaking this law only gets the _originating_ site
+(US!) in trouble, please do not load these distributions from U.S.
+servers!
+
+A number of "foreign" servers do exist for the benefit of
+non-U.S. sites, one of which is "skeleton.mikom.csir.co.za".
+
+Please get all such export restricted software from there
+if you are outside the U.S., thanks!
diff --git a/release/sysinstall/help/en_US.ISO_8859-1/drives.hlp b/release/sysinstall/help/en_US.ISO_8859-1/drives.hlp
new file mode 100644
index 0000000..d924f8d
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO_8859-1/drives.hlp
@@ -0,0 +1,28 @@
+If you are going to actually install some portion of FreeBSD on a
+drive then PLEASE BE VERY CERTAIN that the Geometry reported in the
+Partition Editor (see Installation Menu) is the correct one for your
+drive and controller combination!
+
+IDE drives often have a certain geometry set during the PC BIOS setup,
+or (in the case of larger IDE drives) have their geometry "remapped"
+by either the IDE controller or a special boot-sector translation
+utility such as that by OnTrack Systems. In these cases, knowing
+the correct geometry gets even more complicated as it's not something
+you can easily tell by looking at the drive or the PC BIOS setup. The
+best way of verifying that your geometry is being correctly calculated
+in such situations is to boot DOS (from the hard disk, not a floppy!)
+and run the ``pfdisk'' utility provided in the tools/ subdirectory of the
+FreeBSD CDROM or FTP site. It will report the geometry that DOS sees,
+which is generally the correct one.
+
+If you have no DOS partition sharing the disk at all, then you may find that
+you have better luck with Geometry detection if you create a very small
+DOS partition first, before installing FreeBSD. Once FreeBSD is installed
+you can always delete it again if you need the space.
+
+It's actually not a bad idea (believe it or not) to have a small bootable
+DOS partition on your FreeBSD machine anyway: Should the machine become
+unstable or exhibit strange behavior at some point in the future (which
+is not uncommon behavior for PC hardware!) you can then at least use
+DOS for installing and running one of the commercially available system
+diagnostic utilities.
diff --git a/release/sysinstall/help/en_US.ISO_8859-1/hardware.hlp b/release/sysinstall/help/en_US.ISO_8859-1/hardware.hlp
new file mode 100644
index 0000000..fba5633
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO_8859-1/hardware.hlp
@@ -0,0 +1,384 @@
+Hardware Documentation Guide: $Id: hardware.hlp,v 1.11 1995/06/09 13:29:19 jkh Exp $
+
+Table of Contents
+-----------------
+
+0. Document Conventions
+1. Using UserConfig to change FreeBSD kernel settings
+2. Default Configuration (GENERIC kernel)
+3. LINT - other possible configurations.
+4. Known Hardware Problems.
+
+=========================================================================
+
+0. Document Conventions
+-- --------------------
+
+We have `underlined' text which represents user input with `-'
+symbols throughout this document to differentiate it from
+the machine output.
+
+1. Using UserConfig to change FreeBSD kernel settings
+-- --------------------------------------------------
+
+The UserConfig utility allows you to override various settings of
+the FreeBSD kernel before the system has booted. This allows you to
+make minor adjustments to the various drivers in the system without
+necessarily having to recompile the kernel.
+
+UserConfig is activated by specifying the `-c' flag at the initial
+boot prompt. For example:
+
+ >> FreeBSD BOOT @ 0x10000: 640/7168 k of memory
+ Use hd(1,a)/kernel to boot sd0 when wd0 is also installed.
+ Usage: [[wd(0,a)]/kernel][-abcCdhrsv]
+ Use ? for file list or press Enter for defaults
+
+ Boot: -c
+ --
+
+This command causes the system to boot the default kernel ("/kernel") and
+the UserConfig utility to be started once the kernel is loaded into memory.
+
+The `-c' flag follows any of the other parameters you may need to provide
+for the system to boot properly. For example, to boot off the second of
+two SCSI drives installed and run UserConfig, you would type:
+
+ Boot: sd(1,a)/kernel -c
+ -----------------
+
+As always, the kernel will report some information on your processor
+and how much memory your system has. Then UserConfig will be invoked
+and you will see the prompt:
+
+ config>
+
+To see the list of commands that UserConfig accepts, you may type '?' and
+press [ENTER]. The help message looks something like this:
+
+Command Description
+------- -----------
+attach <devname> Return results of device attach
+ls List currently configured devices
+port <devname> <addr> Set device port (i/o address)
+irq <devname> <number> Set device irq
+drq <devname> <number> Set device drq (DMA Request)
+iomem <devname> <addr> Set device maddr (memory address)
+iosize <devname> <size> Set device memory size
+flags <devname> <mask> Set device flags
+enable <devname> Enable device
+probe <devname> Return results of device probe
+disable <devname> Disable device (will not be probed)
+quit Exit this configuration utility
+help This message
+
+
+You may alter nearly all of the default settings present in the FreeBSD
+generic kernel. This includes reassigning IRQs, disabling troublesome
+devices (or drivers that conflict with the hardware your system has),
+setting special device flags, etc.
+
+The most common use of UserConfig is to adjust or disable a driver
+which is causing trouble. The "ls" command displays the current
+settings for all the drivers present in the booted kernel, and
+once you have located an entry of interest you may use the displayed
+device name to change its settings or even disable the driver completely.
+
+For example, to change the memory address of network adapter 'ed0' to
+the address 0xd4000, you would type
+
+ config> iomem ed0 0xd4000
+ -----------------
+
+To entirely disable a device driver you are not using, use the
+"disable" command. In this example, you would disable device
+`ie0' by typing:
+
+ config> disable ie0
+ -----------
+
+You can use the "ls" command to verify your changes and correct
+any other problems before continuing the boot process.
+
+Once you are happy with a given configuration you may type: "quit"
+
+This will cause the kernel to boot with the new settings you
+have chosen.
+
+Once you have a fully installed system (e.g. the `bin' distribution
+has been successfully extracted), any changes you make in UserConfig
+are permanently stored in the `/kernel' file on the root filesystem.
+This action is performed by the `dset' utility, which will ensure that
+these settings remain in effect until you replace the kernel with
+a new one. If you do not want your changes to be permanently
+stored like this, remove `dset' from the /etc/rc file before you
+make any changes.
+
+If you accidentally change a setting for a device that you did not mean
+to change, the safest thing to do is to reset the computer and start
+over. Do not allow the boot to proceed (e.g. do not type "quit") with
+bad settings as these may be permanently stored by dset and
+leave your system in a state where it will no longer run properly.
+
+We suggest as a general rule that you disable any drivers that are not
+used by your particular hardware configuration. There are known problems
+with certain device drivers (see section 4.0) that can cause conflicts
+with other devices if they're also not disabled. You should move or
+disable any device that resides at the same port or IRQ as a device
+you actually have!
+
+You can also remove drivers that are not needed by building yourself a
+custom kernel that contains only the device drivers which your system
+really needs (see section 6.0 of the FreeBSD.FAQ). If your system has
+sufficient free disk space to store and compile the kernel sources,
+this is the option we most highly recommend.
+
+
+
+2. Default (GENERIC) Configuration
+-- -------------------------------
+
+The following table contains a list of all of the devices that are present
+in the GENERIC kernel, which is the kernel (the operating system) that was
+placed on your computer during the FreeBSD installation process.
+(A compressed version of the GENERIC kernel is also used on the
+installation floppy diskettes.)
+
+The table describes the various parameters used by the driver to communicate
+with the hardware in your system. There are four parameters in the
+table, but not all are used by each device. They are:
+
+ Port the starting I/O port used by the device, shown in hexadecimal.
+
+ IOMem the lowest (or starting) memory address used by the device,
+ also shown in hexadecimal.
+
+ IRQ the interrupt the device uses to alert the driver to an event,
+ given in decimal.
+
+ DRQ the DMA (direct memory access) channel the device uses to move
+ data to and from main memory, also given in decimal.
+
+If an entry in the table has `n/a' for the value, it means that the
+parameter does not apply to that device. A value of `dyn' means that the
+correct value should be determined automatically by the kernel when the
+system boots.
+
+
+FreeBSD GENERIC kernel:
+
+ Port IRQ DRQ IOMem Description
+ ---- --- --- ----- ---------------------------------
+fdc0 3f0 6 2 n/a Floppy disk controller
+wdc0 1f0 14 n/a n/a IDE/MFM/RLL disk controller
+wdc1 170 15 n/a n/a IDE/MFM/RLL disk controller
+
+ncr0 n/a n/a n/a n/a NCR PCI SCSI controller
+ahc0 n/a n/a n/a n/a Adaptec 294x PCI SCSI controller
+bt0 330 dyn dyn dyn Buslogic SCSI controller
+uha0 330 dyn 6 dyn Ultrastore 14f
+ahc1 dyn dyn dyn dyn Adaptec 274x/284x SCSI controller
+ahb0 dyn dyn dyn dyn Adaptec 174x SCSI controller
+aha0 330 dyn 5 dyn Adaptec 154x SCSI controller
+aic0 340 11 dyn dyn Adaptec 152x/AIC-6360 SCSI
+ controller
+nca0 1f88 10 dyn dyn ProAudioSpectrum cards
+nca1 350 5 dyn dyn ProAudioSpectrum cards
+sea0 dyn 5 dyn c8000 Seagate ST01/02 8 bit controller
+
+wt0 300 5 1 dyn Wangtek and Archive QIC-02/QIC-36
+
+mcd0 300 10 n/a n/a Mitsumi CD-ROM
+mcd1 340 11 n/a n/a Mitsumi CD-ROM
+
+matcd0 dyn n/a n/a n/a Matsushita/Panasonic CD-ROM
+
+scd0 230 n/a n/a n/a Sony CD-ROM
+
+sio0 3f8 4 n/a n/a Serial Port 0 (COM1)
+sio1 2f8 3 n/a n/a Serial Port 1 (COM2)
+sio2 3e8 5 n/a n/a Serial Port 2 (COM3)
+sio3 2e8 9 n/a n/a Serial Port 3 (COM4)
+
+lpt0 dyn 7 n/a n/a Printer Port 0
+lpt1 dyn dyn n/a n/a Printer Port 1
+lpt2 dyn dyn n/a n/a Printer Port 2
+
+de0 DEC DC21x40 PCI based cards
+ (including 21140 100bT cards)
+ed0 280 5 dyn d8000 WD & SMC 80xx; Novell NE1000 &
+ NE2000; 3Com 3C503
+ed1 300 5 dyn d8000 Same as ed0
+eg0 310 5 dyn dyn 3Com 3C505
+ep0 300 10 dyn dyn 3Com 3C509
+ie0 360 7 dyn d0000 AT&T StarLAN 10 and EN100;
+ 3Com 3C507; NI5210
+ix0 300 10 dyn d0000 Intel EtherExpress cards
+le0 300 5 dyn d0000 Digital Equipment EtherWorks
+ 2 and EtherWorks 3
+lnc0 280 10 n/a dyn Lance/PCnet cards
+ (Isolan, Novell NE2100, NE32-VL)
+lnc1 300 10 n/a dyn See lnc0
+ze0 300 5 dyn d8000 IBM/National Semiconductor
+ PCMCIA Ethernet Controller
+zp0 300 10 dyn d8000 3Com PCMCIA Etherlink III
+ Ethernet Controller
+--- End of table ---
+
+
+If the hardware in your computer is not set to the same settings as
+those shown in this table and the item is not marked 'dyn', you will
+have to either reconfigure your hardware, or use UserConfig ('-c' boot
+option) to reconfigure the kernel to match the way your hardware is
+currently set (see section 1.0).
+
+If the settings do not match, the kernel may be unable to locate
+or reliably access the devices in your system.
+
+
+
+3. LINT - other possible configurations
+-- ------------------------------------
+
+The following drivers are not in the GENERIC kernel but remain
+available to those who do not mind compiling a custom kernel (see
+section 6 of FreeBSD.FAQ). The LINT configuration file
+(/sys/i386/conf/LINT) also contains prototype entries for just about
+every device supported by FreeBSD and is a good general reference.
+
+The device names and a short description of each are listed below. The port
+numbers, etc, are not meaningful here since you will need to compile a
+custom kernel to gain access to these devices anyway and can thus
+adjust the addresses to match the hardware in your computer in the process.
+The LINT file contains prototype entries for all of the below which you
+can easily cut-and-paste into your own file (or simply copy LINT and edit
+it to taste):
+
+apm: Laptop Advanced Power Management (experimental)
+ctx: Cortex-I frame grabber
+cx: Cronyx/Sigma multiport sync/async
+cy: Cyclades high-speed serial driver
+el: 3Com 3C501
+fe: Fujitsu MB86960A/MB86965A Ethernet cards
+fea: DEV DEFEA EISA FDDI adater
+fpa: DEC DEFPA PCI FDDI adapter
+gp: National Instruments AT-GPIB and AT-GPIB/TNT board
+gsc: Genius GS-4500 hand scanner
+gus: Gravis Ultrasound - Ultrasound, Ultrasound 16, Ultrasound MAX
+gusmax: Gravis Ultrasound MAX (currently broken)
+gusxvi: Gravis Ultrasound 16-bit PCM
+joy: Joystick
+labpc: National Instrument's Lab-PC and Lab-PC+
+mpu: Roland MPU-401 stand-alone card
+mse: Logitech & ATI InPort bus mouse ports
+mss: Microsoft Sound System
+nic: Dr Neuhaus NICCY 3008, 3009 & 5000 ISDN cards
+opl: Yamaha OPL-2 and OPL-3 FM - SB, SB Pro, SB 16, ProAudioSpectrum
+pas: ProAudioSpectrum PCM and MIDI
+pca: PCM audio ("/dev/audio") through your PC speaker
+psm: PS/2 mouse port
+rc: RISCom/8 multiport card
+sb: SoundBlaster PCM - SoundBlaster, SB Pro, SB16, ProAudioSpectrum
+sbmidi: SoundBlaster 16 MIDI interface
+sbxvi: SoundBlaster 16
+spigot: Create Labs Video Spigot video-acquisition board
+uart: Stand-alone 6850 UART for MIDI
+wds: Western Digital WD7000 IDE
+
+--- end of list ---
+
+
+4. Known Hardware Problems, Q & A:
+-- -------------------------------
+
+Q: mcd0 keeps thinking that it has found a device and this stops my Intel
+ EtherExpress card from working.
+
+A: Use the UserConfig utility (see section 1.0) and disable the probing of
+ the mcd0 and mcd1 devices. Generally speaking, you should only leave
+ the devices that you will be using enabled in your kernel.
+
+
+Q: The system finds my ed network card, but I keep getting device
+ timeout errors.
+
+A: Your card is probably on a different IRQ from what is specified in the
+ kernel configuration. The ed driver will no longer use the `soft'
+ configuration by default (values entered using EZSETUP in DOS), but it
+ will use the software configuration if you specify `?' in the IRQ field
+ of your kernel config file. The reason for the change is because the
+ ed driver used to read and try to use the soft configuration information
+ even when the card was jumpered to use a hard configuration, and this
+ caused problems.
+
+ Either move the jumper on the card to a hard configuration setting
+ (altering the kernel settings if necessary), or specify the IRQ as
+ `-1' in UserConfig or `?' in your kernel config file. This will
+ tell the kernel to use the soft configuration.
+
+ Another possibility is that your card is at IRQ 9, which is shared
+ by IRQ 2 and frequently a cause of problems (especially when you
+ have a VGA card using 2! :). You should not use IRQ 2 or 9 if at
+ all possible.
+
+
+Q: I go to boot from the hard disk for the first time after installing
+ FreeBSD, but the Boot Manager prompt just prints `F?' at the boot menu
+ each time but the boot won't go any further.
+
+A: The hard disk geometry was set incorrectly in the Partition editor when
+ you installed FreeBSD. Go back into the partition editor and specify
+ the actual geometry of your hard disk. You must reinstall FreeBSD
+ again from the beginning with the correct geometry.
+
+ If you are failing entirely in figuring out the correct geometry for
+ your machine, here's a tip: Install a small DOS partition at the
+ beginning of the disk and install FreeBSD after that. The install
+ program will see the DOS partition and try to infer the correct
+ geometry from it, which usually works.
+
+
+Q: I have a Matsushita/Panasonic CD-ROM drive but it isn't recognized
+ by the system, even if I use UserConfig to change the Port address to
+ 630, which is what my card uses.
+
+A: Not all of the companies that sell the Matsushita/Panasonic CR-562
+ and CR-563 drives use the same I/O ports and interface that the
+ matcd driver in FreeBSD expects. The only adapters that are supported
+ at this time are those that are 100% compatible with the Creative
+ Labs (SoundBlaster) host interface. See matcd.4 documentation for a
+ list of host adapters that are known to work.
+
+
+Q: I'm trying to install from a tape drive but all I get is something like:
+ st0(aha0:1:0) NOT READY csi 40,0,0,0
+ on the screen. Help!
+
+A: There's a limitation in the current sysinstall that the tape MUST
+ be in the drive while sysinstall is started or it won't be detected.
+ Try again with the tape in the drive the whole time.
+
+
+Q: I've installed FreeBSD onto my system, but it hangs when booting from
+ the hard drive with the message: ``Changing root to /dev/sd0a''.
+
+A: This problem may occur in a system with a 3com 3c509 ethernet adaptor.
+ The ep0 device driver appears to be sensitive to probes for other
+ devices that also use address 0x300. Boot your FreeBSD system by power
+ cycling the machine (turn off and on). At the ``Boot:'' prompt specify
+ the ``-c''. This will invoke UserConfig (see Section 1. above). Use
+ the ``disable'' command to disable the device probes for all devices
+ at address 0x300 except the ep0 driver. On exit, your machine should
+ successfully boot FreeBSD.
+
+
+Q: My system hangs during boot, right after the "fd0: [my floppy drive]"
+ line.
+
+A: This is not actually a hang, simply a very LONG "wdc0" probe that
+ often takes a long time to complete on certain systems (where there
+ usually _isn't_ a WD controller). Be patient, your system will boot!
+ To eliminate the problem, boot with the -c flag and eliminate the wdc0
+ device, or compile a custom kernel.
+
+[ Please add more hardware tips to this Q&A section! ]
diff --git a/release/sysinstall/help/en_US.ISO_8859-1/install.hlp b/release/sysinstall/help/en_US.ISO_8859-1/install.hlp
new file mode 100644
index 0000000..945c81b
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO_8859-1/install.hlp
@@ -0,0 +1,447 @@
+ INSTALLATION GUIDE FOR FreeBSD 2.0.5
+
+This manual documents the process of installing FreeBSD on your
+machine. Please also see the Hardware Guide for hardware-specific
+installation instructions (how to configure your hardware, what sorts
+of things to watch out for, etc) before starting a new installation.
+
+
+Table of Contents:
+==================
+
+1.0 DOS User's Q&A section.
+ 1.1 How do I make space for FreeBSD?
+ 1.2 Can I use compressed DOS filesystems from FreeBSD?
+ 1.3 Can I use DOS extended partitions?
+ 1.4 Can I run DOS executables under FreeBSD?
+
+2.0 Preparing for the installation.
+ 2.1 Before installing from CDROM
+ 2.2 Before installing from Floppy
+ 2.3 Before installing from a DOS partition
+ 2.4 Before installing from QIC/SCSI tape
+ 2.5 Before installing over a network
+ 2.5.1 Preparing for NFS Installation
+ 2.5.2 Preparing for FTP Installation
+
+3.0 Installing FreeBSD.
+
+
+
+1.0 DOS user's Question and Answer section
+=== ======================================
+
+1.1 Help! I have no space! Do I need to delete everything first?
+
+If your machine is already running DOS and has little or no free space
+available for FreeBSD's installation, all is not lost! You may find
+the "FIPS" utility, provided in the tools/ subdirectory on the FreeBSD
+CDROM or on the various FreeBSD ftp sites, to be quite useful.
+
+FIPS allows you to split an existing DOS partition into two pieces,
+preserving the original partition and allowing you to install onto the
+second free piece. You first "defrag" your DOS partition, using the
+DOS 6.xx "DEFRAG" utility or the Norton Disk tools, then run FIPS. It
+will prompt you for the rest of the information it needs. Afterwards,
+you can reboot and install FreeBSD on the new free slice. See the
+Distributions menu for an estimation of how much free space you'll
+need for the kind of installation you want.
+
+
+1.2 Can I use compressed DOS filesystems from FreeBSD?
+
+No. If you are using a utility such as Stacker(tm) or DoubleSpace(tm),
+FreeBSD will only be able to use whatever portion of the filesystem
+you leave uncompressed. The rest of the filesystem will show up as
+one large file (the stacked/dblspaced file!). DO NOT REMOVE THAT
+FILE! You will probably regret it greatly!
+
+It is probably better to create another uncompressed DOS primary
+partition and use this for communications between DOS and FreeBSD.
+
+
+1.3 Can I mount my DOS extended partitions?
+
+This feature isn't in FreeBSD 2.0.5 but should be in 2.1. We've laid
+all the groundwork for making this happen, now we just need to do the
+last 1% of the work involved.
+
+
+1.4 Can I run DOS binaries under FreeBSD?
+
+Not yet! We'd like to add support for this someday, but are still
+lacking anyone to actually do the work. Ongoing work with Linux's
+DOSEMU utility may bring this much closer to being a reality sometime
+soon. Send mail to hackers@freebsd.org if you're interested in
+joining this effort!
+
+However, there is a neat utility called "pcemu" in the ports collection
+which emulates an 8088 and enough BIOS services to run DOS text mode
+applications. It requires the X Window System (provided as
+XFree86 3.1.1u1).
+
+
+
+2.0 Preparing for the installation
+=== ==============================
+
+2.1 Before installing from CDROM:
+
+If your CDROM is of an unsupported type, such as an IDE CDROM, then
+please skip to section 2.3: Before installing from a DOS partition.
+
+There is not a lot of preparatory work that needs to be done to
+successfully install from one of Walnut Creek's FreeBSD CDROMs (other
+CDROM distributions may work as well, we simply cannot say as we
+have no hand or say in their creation). You can either boot into the
+CD installation directly from DOS using Walnut Creek's supplied
+``install.bat'' batch file or you can make a boot floppy with
+the ``makeflp.bat'' command.
+
+For the easiest interface of all (from DOS), type "go". This
+will bring up a DOS menu utility that leads you through all
+the available options.
+
+If you're creating the boot floppy from a UNIX machine, you may find
+that ``dd if=floppies/boot.flp of=/dev/rfd0'' or
+``dd if=floppies/boot.flp of=/dev/floppy'' works well, depending on
+your hardware and operating system environment.
+
+Once you've booted from DOS or floppy, you should then be able to select
+CDROM as the media type in the Media menu and load the entire
+distribution from CDROM. No other types of installation media should
+be required.
+
+After your system is fully installed and you have rebooted from the
+hard disk, you should find the CD mounted on the directory /cdrom. A
+utility called `lndir' comes with the XFree86 distribution which you
+may also find useful: It allows you to create "link tree" directories
+to things on Read-Only media like CDROM. One example might be
+something like this:
+
+ mkdir /usr/ports
+ lndir /cdrom/ports /usr/ports
+
+Which would allow you to then "cd /usr/ports; make" and get all the
+sources from the CD, but yet create all the intermediate files in
+/usr/ports, which is presumably on a more writable media! :-)
+
+SPECIAL NOTE: Before invoking the installation, be sure that the
+CDROM is in the drive so that the "probe" can find it!
+This is also true if you wish the CDROM to be added to the default
+system configuration automatically during the install (whether or
+not you actually use it as the installation media). This will be
+fixed for 2.1, but for now this simple work-around will ensure that
+your CDROM is detected properly.
+
+Finally, if you would like people to be able to FTP install
+FreeBSD directly from the CDROM in your machine, you'll find
+it quite easy. After the machine is fully installed, you simply
+need to add the following line to the password file (using
+the vipw command):
+
+ ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent
+
+No further work is necessary. The other installers will now be able
+to chose a Media type of FTP and type in: ftp://<your machine>
+after picking "Other" in the ftp sites menu!
+
+
+2.2 Before installing from Floppy:
+
+If you must install from floppy disks, either due to unsupported
+hardware or just because you enjoy doing things the hard way, you must
+first prepare some floppies for the install.
+
+The first floppy you'll need is ``floppies/root.flp'', which is
+somewhat special in that it's not a DOS filesystem floppy at all, but
+rather an "image" floppy (it's actually a gzip'd cpio file). You can
+use the rawrite.exe program to do this under DOS, or ``dd'' to do it
+on a UNIX Workstation (see notes in section 2.1 concerning the
+``floppies/boot.flp'' image). Once this floppy is made, go on
+to make the distribution set floppies:
+
+You will need, at minimum, as many 1.44MB or 1.2MB floppies as it takes
+to hold all files in the bin (binary distribution) directory. THESE
+floppies *must* be formatted using MS-DOS, using the FORMAT command in
+MS-DOS or the File Manager format command in Microsoft Windows(tm).
+Don't trust Factory Preformatted floppies! Format them again yourself,
+just to make sure!
+
+Many problems reported by our users in the past have resulted from the
+use of improperly formatted media, so we simply take special care to
+mention it here!
+
+After you've DOS formatted the floppies, you'll need to copy the files
+onto them. The distribution files are split into chunks conveniently
+sized so that 5 of them will fit on a conventional 1.44MB floppy. Go
+through all your floppies, packing as many files as will fit on each
+one, until you've got all the distributions you want packed up in this
+fashion. Each distribution should go into a subdirectory on the
+floppy, e.g.: a:\bin\bin.aa, a:\bin\bin.ab, ...
+
+Once you come to the Media screen of the install, select
+"Floppy" and you'll be prompted for the rest.
+
+
+2.3 Before installing from a DOS partition:
+
+To prepare for installation from an MS-DOS partition you should
+simply copy the files from the distribution into a directory called
+"FREEBSD". For example, to do a minimal installation of FreeBSD from
+DOS using files copied from the CDROM, you might do something like
+this:
+
+ C> MD C:\FREEBSD
+ C> XCOPY /S E:\DISTS\BIN C:\FREEBSD
+ C> XCOPY /S E:\FLOPPIES C:\FREEBSD
+
+Asssuming that `C:' was where you had free space and `E:' was where
+your CD was mounted. Note that you need the FLOPPIES directory
+because the `root.flp' image is automatically looked for there when
+you're doing a DOS installation.
+
+For as many `DISTS' as you wish to install from DOS (and you have free
+space for), install each one under `C:\FREEBSD' - the BIN dist is only
+the minimal requirement.
+
+
+2.4 Before installing from QIC/SCSI Tape:
+
+Installing from tape is probably the easiest method, short of an
+on-line install using FTP or a CDROM install. The installation program
+expects the files to be simply tar'ed onto the tape, so after getting
+all of the files for distribution you're interested in, simply tar
+them onto the tape with a command like:
+
+ cd /freebsd/distdir
+ tar cvf /dev/rwt0 (or /dev/rst0) dist1 .. dist2
+
+Make sure that the `floppies/' directory is one of the "dists" given
+above, since the installation will look for `floppies/root.flp' on
+the tape.
+
+When you go to do the installation, you should also make sure that you
+leave enough room in some temporary directory (which you'll be allowed
+to choose) to accommodate the FULL contents of the tape you've
+created. Due to the non-random access nature of tapes, this method of
+installation requires quite a bit of temporary storage! You should
+expect to require as much temporary storage as you have stuff written
+on tape.
+
+SPECIAL NOTE: When going to do the installation, the tape must be in
+the drive *before* booting from the boot floppy. The installation
+"probe" may otherwise fail to find it.
+
+
+2.5 Before installing over a network:
+
+You can do network installations over 3 types of communications links:
+
+ Serial port: SLIP / PPP
+ Parallel port: PLIP (laplink cable)
+ Ethernet: A standard ethernet controller (includes some PCMCIA).
+
+SLIP support is rather primitive, and limited primarily to hard-wired
+links, such as a serial cable running between a laptop computer and
+another computer. The link should be hard-wired as the SLIP
+installation doesn't currently offer a dialing capability; that
+facility is provided with the PPP utility, which should be used in
+preference to SLIP whenever possible.
+
+If you're using a modem, then PPP is almost certainly your only
+choice. Make sure that you have your service provider's information
+handy as you'll need to know it fairly soon in the installation
+process. You will need to know, at the minimum, your service
+provider's IP address and possibly your own (though you can also leave
+it blank and allow PPP to negotiate it with your ISP). You also need
+to know how to use the various "AT commands" to dial the ISP with your
+particular modem as the PPP dialer provides only a very simple
+terminal emulator.
+
+If a hard-wired connection to another FreeBSD (2.0R or later) machine
+is available, you might also consider installing over a "laplink"
+parallel port cable. The data rate over the parallel port is much
+higher than what is typically possible over a serial line (up to
+50k/sec), thus resulting in a quicker installation.
+
+Finally, for the fastest possible network installation, an ethernet
+adaptor is always a good choice! FreeBSD supports most common PC
+ethernet cards, a table of supported cards (and their required
+settings) is provided as part of the FreeBSD Hardware Guide - see the
+Documentation menu on the boot floppy. If you are using one of the
+supported PCMCIA ethernet cards, also be sure that it's plugged in
+_before_ the laptop is powered on! FreeBSD does not, unfortunately,
+currently support "hot insertion" of PCMCIA cards.
+
+You will also need to know your IP address on the network, the
+"netmask" value for your address class, and the name of your machine.
+Your system administrator can tell you which values to use for your
+particular network setup. If you will be referring to other hosts by
+name rather than IP address, you'll also need a name server and
+possibly the address of a gateway (if you're using PPP, it's your
+provider's IP address) to use in talking to it. If you do not know
+the answers to all or most of these questions, then you should
+really probably talk to your system administrator _first_ before
+trying this type of installation!
+
+Once you have a network link of some sort working, the installation
+can continue over NFS or FTP.
+
+2.5.1 Preparing for NFS installation:
+
+ NFS installation is fairly straight-forward: Simply copy the
+ FreeBSD distribution files you want onto a server somewhere
+ and then point the NFS media selection at it.
+
+ If this server supports only "privileged port" access (as is
+ generally the default for Sun workstations), you will need to set
+ this option in the Options menu before installation can proceed.
+
+ If you have a poor quality ethernet card which suffers from very
+ slow transfer rates, you may also wish to toggle the appropriate
+ Options flag.
+
+ In order for NFS installation to work, the server must support
+ "subdir mounts"; e.g., if your FreeBSD 2.0.5 distribution directory
+ lives on: ziggy:/usr/archive/stuff/FreeBSD
+ Then ziggy will have to allow the direct mounting of
+ /usr/archive/stuff/FreeBSD, not just /usr or /usr/archive/stuff.
+
+ In FreeBSD's /etc/exports file, this is controlled by the
+ ``-alldirs'' option. Other NFS servers may have different
+ conventions. If you are getting `Permission Denied' messages
+ from the server then it's likely that you don't have this
+ enabled properly!
+
+
+2.5.2 Preparing for FTP Installation
+
+ FTP installation may be done from any mirror site containing a
+ reasonably up-to-date version of FreeBSD 2.0.5. A full menu of
+ reasonable choices from almost anywhere in the world is provided
+ by the FTP site menu.
+
+ If you are installing from some other FTP site not listed in this
+ menu, or you are having troubles getting your name server configured
+ properly, you can also specify your own URL by selecting the ``Other''
+ choice in that menu. A URL can also be a direct IP address, so
+ the following would work in the absence of a name server:
+
+ ftp://192.216.222.4/pub/FreeBSD/2.0.5-RELEASE
+
+ [Substitute "ALPHA" for "RELEASE" during the ALPHA test period!]
+
+ If you are installing through a firewall then you should probably
+ select ``Passive mode'' ftp, which is the default. If you are
+ talking to a server which does not support passive mode for some
+ reason, see the Options menu to select Active mode transfers.
+
+
+3. Installing FreeBSD
+-- ------------------
+
+Once you've taken note of the appropriate preinstallation steps, you
+should be able to install FreeBSD without any further trouble.
+
+Should this not be true, then you may wish to go back and re-read the
+relevant preparation section (section 2.x) for the installation media
+type you're trying to use - perhaps there's a helpful hint there that
+you missed the first time? If you're having hardware trouble, or
+FreeBSD refuses to boot at all, read the Hardware Guide provided on
+the boot floppy for a list of possible solutions.
+
+The FreeBSD boot floppy contains all the on-line documentation you
+should need to be able to navigate through an installation and if it
+doesn't then I'd like to know what you found most confusing! It is
+the objective of the FreeBSD installation program (sysinstall) to be
+self-documenting enough that painful "step-by-step" guides are no
+longer necessary. It may take us a little while to reach that
+objective, but that's the objective!
+
+Meanwhile, you may also find the following "typical installation sequence"
+to be helpful:
+
+o Boot the boot floppy. After a boot sequence which can take
+ anywhere from from 30 seconds to 3 minutes, depending on your
+ hardware, you should be presented with a menu of initial
+ choices. If the floppy doesn't boot at all, or the boot
+ hangs at some stage, go read the Q&A section of the Hardware
+ Guide for possible causes.
+
+o Press F1. You should see some basic usage instructions on
+ the menu system and general navigation. If you haven't used this
+ menu system before then PLEASE read this thoroughly!
+
+o If English is not your native language, you may wish to proceed
+ directly to the Language option and set your preferred language.
+ This will bring up some of the documentation in that language
+ instead of english.
+
+o Select the Options item and set any special preferences you
+ may have.
+
+o Select Proceed, bringing you to the Installation Menu.
+
+Installation Menu:
+
+o You can do anything you like in this menu without altering
+ your system _except_ for "Commit", which will perform any
+ requests to alter your system you may have made.
+
+ If you're confused at any point, the F1 key usually pulls
+ up the right information for the screen you're in.
+
+ o The first step is generally `Partition', which allows
+ you to chose how your drives will be used for FreeBSD.
+
+ o Next, with the `Label' editor, you can specify how the space
+ in any allocated FreeBSD partitions should be used by FreeBSD,
+ or where to mount a non-FreeBSD partition (such as DOS).
+
+ o Next, the `Distributions' menu allows you to specify which
+ parts of FreeBSD you wish to load. A good choice is
+ "User" for a small system or "Developer" for someone
+ wanting a bit more out of FreeBSD. If none of the existing
+ collections sound applicable, select Custom.
+
+ o Next, the `Media' menu allows you to specify what kind of
+ media you wish to install from. If a desired media choice is
+ found and configured automatically then this menu will simply
+ return, otherwise you'll be asked for additional details on
+ the media device type.
+
+ o Finally, the Commit command will actually perform all the
+ actions at once (nothing has been written to your disk
+ so far, nor will it until you give the final confirmation).
+ All new or changed partition information will be written
+ out, file systems will be created and/or non-destructively
+ labelled (depending on how you set their newfs flags in the
+ Label editor) and all selected distributions will be
+ extracted.
+
+ o The Configure menu choice allows you to furthur configure your
+ FreeBSD installation by giving you menu-driven access to
+ various system defaults. Some items, like networking, may
+ be especially important if you did a CDROM/Tape/Floppy
+ installation and have not yet configured your network
+ interfaces (assuming you have some). Properly configuring
+ your network here will allow FreeBSD to come up on the network
+ when you first reboot from the hard disk.
+
+ o Exit returns you to the top menu.
+
+
+ At this point, you're generally done with the sysinstall utility and
+can select the final `Quit'. If you're running it as an installer
+(e.g., before the system is all the way up) then the system will now
+reboot. If you selected the boot manager option, you will see a small
+boot menu with an `F?' prompt. Press the function key for BSD (it
+will be shown) and you should boot up into FreeBSD off the hard disk.
+
+ If this fails to happen for some reason, see the Q & A section
+of the Hardware Guide for possible clues!
+
+ Jordan
+
+---- End of Installation Guide ---
diff --git a/release/sysinstall/help/en_US.ISO_8859-1/language.hlp b/release/sysinstall/help/en_US.ISO_8859-1/language.hlp
new file mode 100644
index 0000000..23f176b
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO_8859-1/language.hlp
@@ -0,0 +1,14 @@
+Use this menu to select your preferred language. For now, this only
+sets the default language in which various help files are displayed.
+
+In later releases this will also change the keyboard layout, screen
+map, NLS settings (sysinstall itself will also use message catalogs so
+that all menus are in the appropriate language) and implement other
+I18N features to meet various standards.
+
+Until these improvements are made, you may find it easier to simply
+edit the /etc/sysconfig file yourself once the system is fully
+installed. There are a number of comments in that file that detail
+just what should be changed, as well as a few examples of existing
+non-english setups.
+
diff --git a/release/sysinstall/help/en_US.ISO_8859-1/media.hlp b/release/sysinstall/help/en_US.ISO_8859-1/media.hlp
new file mode 100644
index 0000000..8b081bc
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO_8859-1/media.hlp
@@ -0,0 +1,29 @@
+You can install from the following types of media:
+
+ CDROM - requires one of the following supported CDROM drives:
+
+ Sony CDU 31/33A
+ Matushita/Panasonic "Sound Blaster" CDROM.
+ Mitsumi FX-001{A-D} (older non-IDE drives).
+ SCSI - Any standard SCSI CDROM drive hooked to
+ a supported controller (see Hardware Guide).
+
+ DOS - A DOS primary partition with the required FreeBSD
+ distribution files copied onto it (e.g. C:\FREEBSD\)
+
+ FS - Assuming a disk or partition with an existing
+ FreeBSD file system and distribution set on it,
+ get the distribution files from there.
+
+ Floppy - Get distribution files from one or more DOS formatted
+ floppies.
+
+ FTP - Get the distribution files from an anonymous ftp server
+ (you will be presented with a list).
+
+ NFS - Get the distribution files from an NFS server somewhere
+ (make sure that permissions on the server allow this!)
+
+ Tape - Extract distribution files from tape into a temporary
+ directory and install from there.
+
diff --git a/release/sysinstall/help/en_US.ISO_8859-1/network_device.hlp b/release/sysinstall/help/en_US.ISO_8859-1/network_device.hlp
new file mode 100644
index 0000000..95c42ae
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO_8859-1/network_device.hlp
@@ -0,0 +1,54 @@
+You can do network installations over 3 types of communications links:
+
+ Serial port: SLIP / PPP
+ Parallel port: PLIP (laplink cable)
+ Ethernet: A standard ethernet controller (includes some PCMCIA).
+
+SLIP support is rather primitive and limited primarily to hard-wired
+links, such as a serial cable running between a laptop computer and
+another PC. The link must be hard-wired as the SLIP installation
+doesn't currently offer a dialing capability; that facility is provided
+with the PPP utility, which should be used in preference to SLIP
+whenever possible. When you choose a serial port device, you'll
+be given the option later to edit the slattach command before it's
+run on the serial line. It is expected that you'll run slattach
+(or some equivalent) on the other end of the link at this time and
+bring up the line. FreeBSD will then install itself over the link
+at speeds of up to 115.2K/baud (the recommended speed for a hardwired
+cable).
+
+If you're using a modem then PPP is almost certainly your only
+choice. Make sure that you have your service provider's information
+handy as you'll need to know it fairly early in the installation
+process. You will need to know, at the minimum, your service
+provider's IP address and possibly your own (though you can also leave
+it blank and allow PPP to negotiate it with your ISP). You will also
+need to know how to use the various "AT commands" to dial the ISP with
+your particular brand of modem as the PPP dialer provides only a very
+simple terminal emulator and has no "modem capabilities database".
+
+If a hard-wired connection to another FreeBSD (2.0R or later) machine
+is available, you might also consider installing over a "laplink"
+parallel port cable. The data rate over the parallel port is much
+higher than what is typically possible over a serial line with
+speeds of up to 50k/sec.
+
+Finally, for the fastest possible network installation, an ethernet
+adaptor is always a good choice! FreeBSD supports most common PC
+ethernet cards, a table of which is provided in the FreeBSD
+Hardware Guide (see the Documentation menu on the boot floppy).
+If you are using one of the supported PCMCIA ethernet cards, also be
+sure that it's plugged in _before_ the laptop is powered on! FreeBSD
+does not, unfortunately, currently support "hot insertion" of PCMCIA
+cards.
+
+You will also need to know your IP address on the network, the "netmask"
+value for your address class, and the name of your machine.
+Your system administrator can tell you which values to use for your
+particular network setup. If you will be referring to other hosts by
+name rather than IP address, you'll also need a name server and
+possibly the address of a gateway (if you're using PPP, it's your
+provider's IP address) to use in talking to it. If you do not know
+the answers to all or most of these questions, then you should
+really probably talk to your system administrator _first_ before
+trying this type of installation!
diff --git a/release/sysinstall/help/en_US.ISO_8859-1/options.hlp b/release/sysinstall/help/en_US.ISO_8859-1/options.hlp
new file mode 100644
index 0000000..c30180c
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO_8859-1/options.hlp
@@ -0,0 +1,95 @@
+The following options may be set from this screen:
+
+NFS Secure: NFS server talks only on a secure port
+
+ This is most commonly used when talking to Sun workstations, which
+ will not talk NFS over "non priviledged" ports.
+
+
+NFS Slow: User is using a slow PC or ethernet card
+
+ Use this option if you have a slow PC (386) or an ethernet card
+ with poor performance being "fed" by NFS on a higher-performance
+ workstation. This will throttle the workstation back to prevent
+ the PC from becoming swamped with data.
+
+
+FTP Abort: On transfer failure, abort
+
+ This is pretty self-explanatory. If you're transfering from a
+ host that drops the connection or cannot provide a file, abort
+ the installation of that piece.
+
+
+FTP Reselect: On transfer failure, ask for another host
+
+ This is more useful to someone doing an interactive installation.
+ If the current host stops working, ask for a new ftp server to
+ resume the installation from. The install will attempt to pick
+ up from where it left off on the other server, if at all possible.
+
+
+FTP Active: Use "active mode" for standard FTP
+
+ For all FTP transfers, use "Active" mode. This will not work
+ through firewalls, but will often work with older ftp servers
+ that do not support passive mode. If your connection hangs
+ with passive mode (the default), try active!
+
+
+FTP Passive: Use "passive mode" for firewalled FTP
+
+ For all FTP transfers, use "Passive" mode. This allows the user
+ to pass through firewalls that do not allow incoming connections
+ on random port addresses.
+
+ NOTE: ACTIVE AND PASSIVE MODES ARE NOT THE SAME AS A `PROXY'
+ CONNECTION, WHERE A PROXY FTP SERVER IS LISTENING ON A DIFFERENT
+ PORT!
+
+ In such situations, you should specify the URL as something like:
+
+ ftp://foo.bar.com:1234/pub/FreeBSD
+
+ Where "1234" is the port number of the proxy ftp server.
+
+
+Debugging: Turn on the extra debugging flag
+
+ This turns on a lot of extra noise over on the second screen
+ (ALT-F2 to see it, ALT-F1 to switch back). If your installation
+ should fail for any reason, PLEASE turn this flag on when
+ attempting to reproduce the problem. It will provide a lot of
+ extra debugging at the failure point and may be very helpful to
+ the developers in tracking such problems down!
+
+
+Yes To All: Assume "Yes" answers to all non-critical dialogs
+
+ This flag should be used with caution. It will essentially
+ decide NOT to ask the user about any "boundry" conditions that
+ might not constitute actual errors but may be warnings indicative
+ of other problems.
+
+
+FTP userpass: Specify username and password instead of anonymous.
+
+ By default, the installation attempts to log in as the
+ anonymous user. If you wish to log in as someone else,
+ specify the username and password with this option.
+
+
+Clear: Clear All Option Flags
+
+ Reset all option flags back to their default values.
+
+----
+
+Some of these items, like "FTP Active" or "FTP Passive", are actually
+mutually-exclusive even though you can turn all of them on or off at
+once. This is a limitation of the menuing system, and is compensated
+for by checks that ensure that the various flags are not in conflict.
+If you re-enter the Options menu again after leaving it, you'll see
+the settings it's actually using after checking for any possible
+conflicts.
+
diff --git a/release/sysinstall/help/en_US.ISO_8859-1/partition.hlp b/release/sysinstall/help/en_US.ISO_8859-1/partition.hlp
new file mode 100644
index 0000000..fd16a45
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO_8859-1/partition.hlp
@@ -0,0 +1,77 @@
+This is the FreeBSD DiskLabel Editor.
+
+If you're new to this installation, then you should first understand
+how FreeBSD 2.0.5's new "slices" paradigm for looking at disk storage
+works. It's not very hard to understand. A "fully qualified slice name",
+that is the name of the file we open in /dev to talk to the slice,
+is optionally broken into 3 parts:
+
+ First you have the disk name. Assume we have two SCSI
+ drives in our system, which gives us `sd0' and `sd1'.
+
+ Next you have the "Slice" (or "FDISK Partition") number,
+ as seen in the Partition Editor. Assume that our sd0 contains
+ two slices, a FreeBSD slice and a DOS slice. This gives us
+ sd0s1 and sd0s2. Let's also say that sd1 is completely devoted
+ to FreeBSD, so we have only one slice there: sd1s1.
+
+ Next, if a slice is a FreeBSD slice, you have a number of
+ (confusingly named) "partitions" you can put inside of it.
+ These FreeBSD partitions are where various filesystems or swap
+ areas live, and using our hypothetical two-SCSI-disk machine
+ again, we might have something like the following layout on sd0:
+
+ Name Mountpoint
+ ---- ----------
+ sd0s1a /
+ sd0s1b <swap space>
+ sd0s1e /usr
+
+ Because of historical convention, there is also a short-cut,
+ or "compatibility slice", that is maintained for easy access
+ to the first FreeBSD slice on a disk for those programs which
+ still don't know how to deal with the new slice scheme.
+ The compatibility slice names for our filesystem above would
+ look like:
+
+ Name Mountpoint
+ ---- ----------
+ sd0a /
+ sd0b <swap space>
+ sd0e /usr
+
+ FreeBSD automatically maps the compatibility slice to the first
+ FreeBSD slice it finds (in this case, sd0s1). You may have multiple
+ FreeBSD slices on a drive, but only the first one may be the
+ compatibility slice!
+
+ The compatibility slice will eventually be phased out, but
+ it is still important right now for several reasons:
+
+ 1. Some programs, as mentioned before, still don't work
+ with the slice paradigm and need time to catch up.
+
+ 2. The FreeBSD boot blocks are unable to look for
+ a root file system in anything but a compatibility
+ slice right now. This means that our root will always
+ show up on "sd0a" in the above scenario, even though
+ it really lives over on sd0s1a and would otherwise be
+ referred to by its full slice name.
+
+Once you understand all this, then the label editor becomes fairly
+simple. You're either carving up the FreeBSD slices displayed at the
+top of the screen into smaller pieces (displayed in the middle of the
+screen) and then putting FreeBSD file systems on them, Or you're just
+mounting existing partitions/slices into your filesystem hierarchy;
+this editor lets you do both. Since a DOS partition is also just
+another slice as far as FreeBSD is concerned, you can mount one into
+in your filesystem hierarchy just as easily with this editor. For
+FreeBSD partitions you can also toggle the "newfs" state so that
+the partitions are either (re)created from scratch or simply checked
+and mounted (the contents are preserved).
+
+When you're done, type `Q' to exit.
+
+No actual changes will be made to the disk until you (C)ommit from the
+Install menu! You're working with what is essentially a copy of
+the disk label(s), both here and in the FDISK Partition Editor.
diff --git a/release/sysinstall/help/en_US.ISO_8859-1/slice.hlp b/release/sysinstall/help/en_US.ISO_8859-1/slice.hlp
new file mode 100644
index 0000000..e055ca4
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO_8859-1/slice.hlp
@@ -0,0 +1,28 @@
+This is the Main Partition (or ``Slice'') Editor.
+
+Possible commands are printed at the bottom, and the Master Boot Record
+contents are at the top. You can move up and down with the arrow keys
+and can (C)reate a new partition whenever the "bar" is over a partition
+whose type is set to "unused".
+
+The flags field has the following legend:
+
+ '=' -- Partition is properly aligned.
+ '>' -- The partition doesn't end before cylinder 1024
+ 'R' -- Has been marked as containing the root (/) filesystem
+ 'B' -- Partition employs BAD144 bad-spot handling
+ 'C' -- This is the FreeBSD 2.0-compatibility partition (default)
+ 'A' -- This partition is marked active.
+
+If you select a partition for Bad144 handling, it will be scanned
+for bad blocks before any new filesystems are made on it.
+
+If no partition is marked Active, you will need to either install
+a Boot Manager (the option for which will be presented later in the
+installation) or set one Active before leaving this screen.
+
+To leave this screen, type `Q'.
+
+No actual changes will be made to the disk until you (C)ommit from the
+Install menu! You're working with what is essentially a copy of
+the disk label(s), both here and in the Label Editor.
diff --git a/release/sysinstall/help/en_US.ISO_8859-1/tcp.hlp b/release/sysinstall/help/en_US.ISO_8859-1/tcp.hlp
new file mode 100644
index 0000000..3ab5d7c
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO_8859-1/tcp.hlp
@@ -0,0 +1,27 @@
+This screen allows you to set up your general network parameters
+(hostname, domain name, DNS server, etc) as well as the settings for a
+given interface (which was selected from the menu before this screen).
+
+You can move through the fields with the TAB, BACK-TAB and RETURN
+keys. To edit a field, use DELETE or BACKSPACE. You may also use ^A
+(control-A) to go to the beginning of the line, ^E (control-E) to go
+to the end, ^F (control-F) to go forward a character, ^B (control-B)
+to go backward one character, ^D (control-D) to delete the character
+under the cursor and ^K (control-K) to delete to the end of the line.
+Basically, the standard EMACS motion sequences.
+
+The ``Extra options to ifconfig'' is kind of special (read: a hack :-).
+
+You can use it for specifying the foreign side of a PLIP or SLIP line
+(simply type the foreign address in) as well as selecting a given
+"link" on an ethernet card that has more than one (e.g. AUI, 10BT,
+10B2, etc). The following links are recognised:
+
+ link0 - AUI * highest precedence
+ link1 - BNC
+ link2 - UTP * lowest precedence
+
+That is to say that you can enter one of "link0", "link1" or "link2"
+into the `Extra options' field to select a different link.
+
+When you're done with this form, select OK.
diff --git a/release/sysinstall/help/en_US.ISO_8859-1/usage.hlp b/release/sysinstall/help/en_US.ISO_8859-1/usage.hlp
new file mode 100644
index 0000000..b01a94b
--- /dev/null
+++ b/release/sysinstall/help/en_US.ISO_8859-1/usage.hlp
@@ -0,0 +1,54 @@
+HOW TO USE THIS SYSTEM
+======================
+
+KEY ACTION
+--- ------
+UP ARROW Move to previous item (or up, in a text field).
+DOWN ARROW Move to next item (or down, in a text field).
+TAB Move to next item or group.
+RIGHT ARROW Move to next item or group (same as TAB).
+SHIFT-TAB Move to previous item or group.
+LEFT ARROW Move to previous item or group (same as SHIFT-TAB).
+RETURN Select item.
+PAGE UP In text boxes, scrolls up one page.
+PAGE DOWN In text boxes, scrolls down one page.
+SPACE In "radio" or multiple choice menus, toggle the current item.
+F1 Help (in screens that provide it).
+
+If you also see small "^(-)" or "v(+)" symbols at the edges of a menu,
+it means that there are more items above or below the current one that
+aren't being shown (due to insufficient screen space). Using the
+up/down arrow keys will cause the menu to scroll. When a symbol
+disappears, it means you are at the top (or bottom) of the menu.
+
+In text fields, the amount of text above the current point will be
+displayed as a percentage in the lower right corner. 100% means
+you're at the bottom of the field.
+
+Selecting OK in a menu will confirm whatever action it's controlling.
+Selecting Cancel will cancel the operation and generally return you to
+the previous menu.
+
+
+SPECIAL FEATURES:
+=================
+
+It is also possible to select a menu item by typing the first
+character of its name, if unique. Such "accelerator" characters will
+be specially highlighted in the item name.
+
+The console driver also contains a scroll-back buffer for reviewing
+things that may have scrolled off the screen. To use scroll-back,
+press the "Scroll Lock" key on your keyboard and use the arrow or
+Page Up/Page Down keys to move through the saved text. To leave
+scroll-back mode, press the Scroll Lock key again. This feature
+is most useful for dealing with sub-shells or other "wizard modes"
+that don't use menus.
+
+Once the system is fully installed and running "multi-user", you will
+also find that you have multiple "virtual consoles" and can use them to
+have several active sessions at once. Use ALT-F<n> to switch between
+them, where `F<n>' is the function key corresponding to the screen you
+wish to see. By default, the system comes with 3 virtual consoles enabled.
+You can create more by editing the /etc/ttys file, once the system is up,
+for a maximum of 12.
diff --git a/release/sysinstall/help/es_ES.ISO8859-1/README b/release/sysinstall/help/es_ES.ISO8859-1/README
new file mode 100644
index 0000000..27020bf
--- /dev/null
+++ b/release/sysinstall/help/es_ES.ISO8859-1/README
@@ -0,0 +1,108 @@
+ ------------------------------------------
+ FreeBSD 2.0.5 --- Versión DEFINITIVA , ,
+ ------------------------------------------ /( )`
+ \ \___ / |
+¡Bienvenido a la versión 2.0.5 de FreeBSD! 2.0.5 es /- _ `-/ '
+una versión intermedia de FreeBSD que rellena el (/\/ \ \ /\
+hueco existente entre 2.0R (publicada en Noviembre / / | ` \
+de 1994) y 2.1R, que se publicará a finales de O O ) / |
+Julio de 1995. FreeBSD 2.0.5 contiene gran `-^--'`< '
+cantidad de mejoras significativas respecto de (_.) _ ) /
+2.0R, entre las que destacan una mayor estabilidad `.___/` /
+(por un considerable margen), docenas de `-----' /
+características nuevas y un programa <----. __ / __ \
+de instalación muy mejorado. Vea las <----|====O)))==) \) /====
+notas a la versión para más detalles <----' `--' `.__,' \
+sobre las novedades de FreeBSD 2.0.5. | |
+ \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+
+¿Qué es FreeBSD? FreeBSD es un sistema operativo basado en 4.4 BSD Lite
+para hardware PC basado en "x86" de Intel, AMD, Cyrix o NexGen. Funciona
+con un abanico muy amplio de periféricos y configuraciones de PC y se
+puede utilizar para todo tipo de actividades, desde el desarrollo de
+software hasta la provisión de servicios de Internet; ¡el lugar más
+concurrido de la Internet, ftp.cdrom.com, es una máquina con FreeBSD!
+
+Esta versión de FreeBSD contiene todo lo que necesita para montar
+un sistema así, además del código fuente completo. Con la distribución
+de las fuentes instalada, puede recompilar literalmente el sistema
+entero desde cero con un solo comando, lo que lo hace ideal para
+estudiantes, investigadores o quienes simplemente deseen ver cómo
+funciona todo.
+
+También se proporciona una gran recopilación de software de terceros
+adaptado (la "colección de adaptaciones") para facilitarle la
+obtención e instalación de todas sus utilidades tradicionales de UNIX
+favoritas bajo FreeBSD. Son más de 270 adaptaciones, que abarcan desde
+editores hasta lenguajes de programación o aplicaciones gráficas, lo
+cual hace de FreeBSD un potente y completo entorno de trabajo, capaz de
+rivalizar en utilización general y potencia con el de muchas estaciones
+de trabajo grandes.
+
+
+Para obtener más documentación sobre este sistema, se recomienda que
+adquiera el juego de publicaciones sobre 4.4BSD de O'Reilly Associates
+y la asociación USENIX, ISBN 1-56592-082-1. No tenemos ninguna conexión
+con O'Reilly, ¡simplemente somos consumidores satisfechos!
+
+Quizá también desee leer la GUIA DEL HARDWARE *antes* de avanzar más
+con la instalación. La configuración del hardware del PC para algo que
+no sea DOS/Windows (los cuales en realidad no exigen demasiado al
+hardware) es realmente un poco más complicada de lo que parece, y si
+cree que comprende los PC, está claro que aún no los ha utilizado
+durante el tiempo suficiente. :) Esta guía le proporcionará algunos
+consejos sobre cómo configurar el hardware, así como los síntomas que hay
+que buscar en caso de problema. Esta guía está disponible en el menú
+Documentación del disquete de arranque de FreeBSD.
+
+ADVERTENCIA: Aunque FreeBSD hace todo lo posible para prevenir la pérdida
+accidental de datos, ¡sigue siendo más que posible BORRAR EL DISCO ENTERO
+con esta instalación! Por favor, ¡no pase al menú final de la instalación
+de FreeBSD hasta haber realizado primero una copia de seguridad adecuada
+de todos los datos importantes! ¡Lo decimos en serio!
+
+Los comentarios técnicos sobre esta versión deben enviarse (en inglés) a:
+
+ hackers@FreeBSD.org
+
+
+Los informes sobre errores deben enviarse mediante el comando 'send-pr',
+si fue posible instalar el sistema, o en otro caso a:
+
+ bugs@FreeBSD.org
+
+Por favor, asegúrese de indicar QUE VERSION de FreeBSD utiliza en todos
+los informes sobre errores.
+
+
+Las preguntas generales deben enviarse a:
+
+ questions@FreeBSD.org
+
+Por favor sea paciente si no se responde a sus preguntas de inmediato,
+pues este es un momento especialmente atareado para nosotros y nuestros
+recursos voluntarios a menudo están copados hasta el límite. Los informes
+sobre errores enviados con el comando send-pr se registran y se siguen en
+nuestra base de datos de errores y se le mantendrá informado sobre todos
+los cambios en su estado durante la vida del error (o de la petición de
+nuevas características).
+
+Nuestro nodo del WEB, http://www.freebsd.org, también es una fuente muy
+buena de información actualizada y proporciona una serie de facilidades
+avanzadas de documentación. Puede utilizar la versión de Netscape para
+BSDI para ojear el World Wide Web directamente desde FreeBSD.
+
+Puede que también desee inspeccionar /usr/share/FAQ y /usr/share/doc para
+más información sobre el sistema.
+
+
+Gracias por leer todo esto; ¡esperamos sinceramente que disfrute esta
+versión de FreeBSD!
+
+ Jordan Hubbard,
+ para El Proyecto FreeBSD
+
diff --git a/release/sysinstall/help/es_ES.ISO8859-1/configure.hlp b/release/sysinstall/help/es_ES.ISO8859-1/configure.hlp
new file mode 100644
index 0000000..608c691
--- /dev/null
+++ b/release/sysinstall/help/es_ES.ISO8859-1/configure.hlp
@@ -0,0 +1,18 @@
+Este menú le permite configurar un poco el sistema después de
+haberlo instalado. Como mínimo, probablemente deberá establecer
+la contraseña del administrador del sistema y el huso horario
+del sistema.
+
+Para otras cosas extra como bash, emacs, pascal, etc. es muy
+probable que también tenga que activar la opción Packages (Paquetes)
+de este menú. Observe que actualmente esto sólo tiene alguna utilidad
+si dispone de un CDROM o de una colección existente de paquetes en
+algún lugar de la jerarquía del sistema de ficheros a donde pueda
+acceder la herramienta de gestión de paquetes. La transferencia
+automática de paquetes por FTP aún no está soportada.
+
+Si desea volver a invocar la herramienta de instalación de paquetes
+después de salir de la instalación del sistema, el comando es
+``pkg_manage''. Para establecer el huso horario, escriba ``tzsetup''.
+Para más información sobre la configuración general del sistema, vea
+el fichero ``/etc/sysconfig''.
diff --git a/release/sysinstall/help/es_ES.ISO8859-1/language.hlp b/release/sysinstall/help/es_ES.ISO8859-1/language.hlp
new file mode 100644
index 0000000..a76895b
--- /dev/null
+++ b/release/sysinstall/help/es_ES.ISO8859-1/language.hlp
@@ -0,0 +1,15 @@
+Utilice este menú para seleccionar el idioma deseado. Por el momento,
+esto únicamente sirve para establecer el idioma por defecto con que
+se visualizan diversos ficheros de ayuda.
+
+En versiones posteriores también cambiará la disposición del teclado,
+el mapa de pantalla, los ajustes de NLS (el propio sysinstall usará
+catálogos de mensajes, de forma que todos los menús estén en el
+idioma adecuado) e implementará otras características I18N para
+ajustarse a diversos estándares.
+
+Hasta que se efectúen dichas mejoras, puede que encuentre más sencillo
+editar por su cuenta el fichero /etc/sysconfig una vez que el sistema
+esté totalmente instalado. Hay un buen número de comentarios en ese
+fichero que detallan lo que debería cambiarse, así como unos pocos
+ejemplos de configuraciones no inglesas.
diff --git a/release/sysinstall/help/es_ES.ISO8859-1/usage.hlp b/release/sysinstall/help/es_ES.ISO8859-1/usage.hlp
new file mode 100644
index 0000000..762c358
--- /dev/null
+++ b/release/sysinstall/help/es_ES.ISO8859-1/usage.hlp
@@ -0,0 +1,57 @@
+COMO USAR ESTE SISTEMA
+======================
+
+TECLA ACCIO'N
+----- -------
+FLECHA ARRIBA Ir al elemento anterior (o superior, en un campo de texto).
+FLECHA ABAJO Ir al elemento siguiente (o inferior, en un campo de texto).
+TAB Ir al siguiente elemento o grupo.
+FLECHA DERECHA Ir al siguiente elemento o grupo (Ide'ntico a TAB).
+MAYUSCULAS-TAB Ir al elemento anterior o grupo.
+FLECHA IZQ. Ir al elemento anterior o grupo (Ide'ntico a MAYUSCULAS-TAB).
+RETORNO Seleccionar el elemento.
+PAGINA ARRIBA Regresa una pa'gina, en a'reas de texto.
+PAGINA ABAJO Presenta la siguiente pa'gina, en areas de texto.
+ESPACIO En menus de opcio'n mu'ltiple (radio), cambia el elemento actual
+F1 Ayuda (en pantallas que la tengan disponible).
+
+En caso de que vea pequen~os si'mbolos "^(-)" o "v(+)" al margen de un menu',
+significa que hay ma's elementos arriba o abajo del elemento actual, los
+cuales no se presentan actualmente (debido a falta de espacio en la pantalla).
+El menu' se puede recorrer haciendo uso de las flechas arriba/abajo. Cuando
+el si'mbolo desaparezca, significa que ha llegado al inicio (o final) del
+menu'.
+
+En campos de texto, la cantidad de texto arriba de su posicio'n en el mensaje
+sera' mostrada como un porcentaje en la esquina inferior izquierda. 100%
+significa que esta' al final del campo.
+
+Al seleccionar OK en un menu', confirmara' cualquier accio'n que e'ste
+controle. El seleccionar Cancel interrumpira' la operacio'n, y generalmente
+le regresara' al menu' anterior.
+
+
+CARACTERI'STICAS ESPECIALES:
+============================
+
+Es posible tambie'n seleccionar un elemento del menu' oprimiendo el primer
+caracter de su nombre, si e'ste es u'nico. Dichos caracteres "aceleradores"
+estara'n remarcados especialmente en el nombre del elemento.
+
+El manejador de la consola tambie'n contiene una memoria de retorno, que le
+permitira' regresar y revisar cosas que ya hayan salido de la pantalla.
+Para usar el retorno, oprima la tecla "Bloqueo Despliegue" en su teclado,
+y use las flechas o las teclas "Pa'gina anterior/Pa'gina siguiente" para
+moverse a trave's del texto grabado. Para abandonar el modo de retorno,
+oprima la tecla "Bloqueo Despliegue" nuevamente. Esta caracteri'stica es
+muy u'til cuando se trabaja con sub-inte'rpretes de comandos, y otros
+modos para usuarios avanzados o "magos" que no usan menu'es.
+
+Una vez que el sistema este' completamente instalado y funcionando en modo
+"multi-usuario", encontrara' que tiene varias "consolas virtuales" y puede
+utilizarlas para tener varias sesiones activas al mismo tiempo. Use la
+combinacio'n ALT-F<n> para cambiar la sesio'n activa, 'F<n>' es la tecla
+de funcio'n que corresponde a la pantalla que desee ver. El sistema viene
+normalmente con 3 consolas virtuales habilitadas. Puede crear ma's editando
+el archivo /etc/ttys una vez que el sistema este instalado, hasta un ma'ximo
+de 12.
diff --git a/release/sysinstall/help/es_ES.ISO_8859-1/README b/release/sysinstall/help/es_ES.ISO_8859-1/README
new file mode 100644
index 0000000..27020bf
--- /dev/null
+++ b/release/sysinstall/help/es_ES.ISO_8859-1/README
@@ -0,0 +1,108 @@
+ ------------------------------------------
+ FreeBSD 2.0.5 --- Versión DEFINITIVA , ,
+ ------------------------------------------ /( )`
+ \ \___ / |
+¡Bienvenido a la versión 2.0.5 de FreeBSD! 2.0.5 es /- _ `-/ '
+una versión intermedia de FreeBSD que rellena el (/\/ \ \ /\
+hueco existente entre 2.0R (publicada en Noviembre / / | ` \
+de 1994) y 2.1R, que se publicará a finales de O O ) / |
+Julio de 1995. FreeBSD 2.0.5 contiene gran `-^--'`< '
+cantidad de mejoras significativas respecto de (_.) _ ) /
+2.0R, entre las que destacan una mayor estabilidad `.___/` /
+(por un considerable margen), docenas de `-----' /
+características nuevas y un programa <----. __ / __ \
+de instalación muy mejorado. Vea las <----|====O)))==) \) /====
+notas a la versión para más detalles <----' `--' `.__,' \
+sobre las novedades de FreeBSD 2.0.5. | |
+ \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+
+¿Qué es FreeBSD? FreeBSD es un sistema operativo basado en 4.4 BSD Lite
+para hardware PC basado en "x86" de Intel, AMD, Cyrix o NexGen. Funciona
+con un abanico muy amplio de periféricos y configuraciones de PC y se
+puede utilizar para todo tipo de actividades, desde el desarrollo de
+software hasta la provisión de servicios de Internet; ¡el lugar más
+concurrido de la Internet, ftp.cdrom.com, es una máquina con FreeBSD!
+
+Esta versión de FreeBSD contiene todo lo que necesita para montar
+un sistema así, además del código fuente completo. Con la distribución
+de las fuentes instalada, puede recompilar literalmente el sistema
+entero desde cero con un solo comando, lo que lo hace ideal para
+estudiantes, investigadores o quienes simplemente deseen ver cómo
+funciona todo.
+
+También se proporciona una gran recopilación de software de terceros
+adaptado (la "colección de adaptaciones") para facilitarle la
+obtención e instalación de todas sus utilidades tradicionales de UNIX
+favoritas bajo FreeBSD. Son más de 270 adaptaciones, que abarcan desde
+editores hasta lenguajes de programación o aplicaciones gráficas, lo
+cual hace de FreeBSD un potente y completo entorno de trabajo, capaz de
+rivalizar en utilización general y potencia con el de muchas estaciones
+de trabajo grandes.
+
+
+Para obtener más documentación sobre este sistema, se recomienda que
+adquiera el juego de publicaciones sobre 4.4BSD de O'Reilly Associates
+y la asociación USENIX, ISBN 1-56592-082-1. No tenemos ninguna conexión
+con O'Reilly, ¡simplemente somos consumidores satisfechos!
+
+Quizá también desee leer la GUIA DEL HARDWARE *antes* de avanzar más
+con la instalación. La configuración del hardware del PC para algo que
+no sea DOS/Windows (los cuales en realidad no exigen demasiado al
+hardware) es realmente un poco más complicada de lo que parece, y si
+cree que comprende los PC, está claro que aún no los ha utilizado
+durante el tiempo suficiente. :) Esta guía le proporcionará algunos
+consejos sobre cómo configurar el hardware, así como los síntomas que hay
+que buscar en caso de problema. Esta guía está disponible en el menú
+Documentación del disquete de arranque de FreeBSD.
+
+ADVERTENCIA: Aunque FreeBSD hace todo lo posible para prevenir la pérdida
+accidental de datos, ¡sigue siendo más que posible BORRAR EL DISCO ENTERO
+con esta instalación! Por favor, ¡no pase al menú final de la instalación
+de FreeBSD hasta haber realizado primero una copia de seguridad adecuada
+de todos los datos importantes! ¡Lo decimos en serio!
+
+Los comentarios técnicos sobre esta versión deben enviarse (en inglés) a:
+
+ hackers@FreeBSD.org
+
+
+Los informes sobre errores deben enviarse mediante el comando 'send-pr',
+si fue posible instalar el sistema, o en otro caso a:
+
+ bugs@FreeBSD.org
+
+Por favor, asegúrese de indicar QUE VERSION de FreeBSD utiliza en todos
+los informes sobre errores.
+
+
+Las preguntas generales deben enviarse a:
+
+ questions@FreeBSD.org
+
+Por favor sea paciente si no se responde a sus preguntas de inmediato,
+pues este es un momento especialmente atareado para nosotros y nuestros
+recursos voluntarios a menudo están copados hasta el límite. Los informes
+sobre errores enviados con el comando send-pr se registran y se siguen en
+nuestra base de datos de errores y se le mantendrá informado sobre todos
+los cambios en su estado durante la vida del error (o de la petición de
+nuevas características).
+
+Nuestro nodo del WEB, http://www.freebsd.org, también es una fuente muy
+buena de información actualizada y proporciona una serie de facilidades
+avanzadas de documentación. Puede utilizar la versión de Netscape para
+BSDI para ojear el World Wide Web directamente desde FreeBSD.
+
+Puede que también desee inspeccionar /usr/share/FAQ y /usr/share/doc para
+más información sobre el sistema.
+
+
+Gracias por leer todo esto; ¡esperamos sinceramente que disfrute esta
+versión de FreeBSD!
+
+ Jordan Hubbard,
+ para El Proyecto FreeBSD
+
diff --git a/release/sysinstall/help/es_ES.ISO_8859-1/configure.hlp b/release/sysinstall/help/es_ES.ISO_8859-1/configure.hlp
new file mode 100644
index 0000000..608c691
--- /dev/null
+++ b/release/sysinstall/help/es_ES.ISO_8859-1/configure.hlp
@@ -0,0 +1,18 @@
+Este menú le permite configurar un poco el sistema después de
+haberlo instalado. Como mínimo, probablemente deberá establecer
+la contraseña del administrador del sistema y el huso horario
+del sistema.
+
+Para otras cosas extra como bash, emacs, pascal, etc. es muy
+probable que también tenga que activar la opción Packages (Paquetes)
+de este menú. Observe que actualmente esto sólo tiene alguna utilidad
+si dispone de un CDROM o de una colección existente de paquetes en
+algún lugar de la jerarquía del sistema de ficheros a donde pueda
+acceder la herramienta de gestión de paquetes. La transferencia
+automática de paquetes por FTP aún no está soportada.
+
+Si desea volver a invocar la herramienta de instalación de paquetes
+después de salir de la instalación del sistema, el comando es
+``pkg_manage''. Para establecer el huso horario, escriba ``tzsetup''.
+Para más información sobre la configuración general del sistema, vea
+el fichero ``/etc/sysconfig''.
diff --git a/release/sysinstall/help/es_ES.ISO_8859-1/language.hlp b/release/sysinstall/help/es_ES.ISO_8859-1/language.hlp
new file mode 100644
index 0000000..a76895b
--- /dev/null
+++ b/release/sysinstall/help/es_ES.ISO_8859-1/language.hlp
@@ -0,0 +1,15 @@
+Utilice este menú para seleccionar el idioma deseado. Por el momento,
+esto únicamente sirve para establecer el idioma por defecto con que
+se visualizan diversos ficheros de ayuda.
+
+En versiones posteriores también cambiará la disposición del teclado,
+el mapa de pantalla, los ajustes de NLS (el propio sysinstall usará
+catálogos de mensajes, de forma que todos los menús estén en el
+idioma adecuado) e implementará otras características I18N para
+ajustarse a diversos estándares.
+
+Hasta que se efectúen dichas mejoras, puede que encuentre más sencillo
+editar por su cuenta el fichero /etc/sysconfig una vez que el sistema
+esté totalmente instalado. Hay un buen número de comentarios en ese
+fichero que detallan lo que debería cambiarse, así como unos pocos
+ejemplos de configuraciones no inglesas.
diff --git a/release/sysinstall/help/es_ES.ISO_8859-1/usage.hlp b/release/sysinstall/help/es_ES.ISO_8859-1/usage.hlp
new file mode 100644
index 0000000..762c358
--- /dev/null
+++ b/release/sysinstall/help/es_ES.ISO_8859-1/usage.hlp
@@ -0,0 +1,57 @@
+COMO USAR ESTE SISTEMA
+======================
+
+TECLA ACCIO'N
+----- -------
+FLECHA ARRIBA Ir al elemento anterior (o superior, en un campo de texto).
+FLECHA ABAJO Ir al elemento siguiente (o inferior, en un campo de texto).
+TAB Ir al siguiente elemento o grupo.
+FLECHA DERECHA Ir al siguiente elemento o grupo (Ide'ntico a TAB).
+MAYUSCULAS-TAB Ir al elemento anterior o grupo.
+FLECHA IZQ. Ir al elemento anterior o grupo (Ide'ntico a MAYUSCULAS-TAB).
+RETORNO Seleccionar el elemento.
+PAGINA ARRIBA Regresa una pa'gina, en a'reas de texto.
+PAGINA ABAJO Presenta la siguiente pa'gina, en areas de texto.
+ESPACIO En menus de opcio'n mu'ltiple (radio), cambia el elemento actual
+F1 Ayuda (en pantallas que la tengan disponible).
+
+En caso de que vea pequen~os si'mbolos "^(-)" o "v(+)" al margen de un menu',
+significa que hay ma's elementos arriba o abajo del elemento actual, los
+cuales no se presentan actualmente (debido a falta de espacio en la pantalla).
+El menu' se puede recorrer haciendo uso de las flechas arriba/abajo. Cuando
+el si'mbolo desaparezca, significa que ha llegado al inicio (o final) del
+menu'.
+
+En campos de texto, la cantidad de texto arriba de su posicio'n en el mensaje
+sera' mostrada como un porcentaje en la esquina inferior izquierda. 100%
+significa que esta' al final del campo.
+
+Al seleccionar OK en un menu', confirmara' cualquier accio'n que e'ste
+controle. El seleccionar Cancel interrumpira' la operacio'n, y generalmente
+le regresara' al menu' anterior.
+
+
+CARACTERI'STICAS ESPECIALES:
+============================
+
+Es posible tambie'n seleccionar un elemento del menu' oprimiendo el primer
+caracter de su nombre, si e'ste es u'nico. Dichos caracteres "aceleradores"
+estara'n remarcados especialmente en el nombre del elemento.
+
+El manejador de la consola tambie'n contiene una memoria de retorno, que le
+permitira' regresar y revisar cosas que ya hayan salido de la pantalla.
+Para usar el retorno, oprima la tecla "Bloqueo Despliegue" en su teclado,
+y use las flechas o las teclas "Pa'gina anterior/Pa'gina siguiente" para
+moverse a trave's del texto grabado. Para abandonar el modo de retorno,
+oprima la tecla "Bloqueo Despliegue" nuevamente. Esta caracteri'stica es
+muy u'til cuando se trabaja con sub-inte'rpretes de comandos, y otros
+modos para usuarios avanzados o "magos" que no usan menu'es.
+
+Una vez que el sistema este' completamente instalado y funcionando en modo
+"multi-usuario", encontrara' que tiene varias "consolas virtuales" y puede
+utilizarlas para tener varias sesiones activas al mismo tiempo. Use la
+combinacio'n ALT-F<n> para cambiar la sesio'n activa, 'F<n>' es la tecla
+de funcio'n que corresponde a la pantalla que desee ver. El sistema viene
+normalmente con 3 consolas virtuales habilitadas. Puede crear ma's editando
+el archivo /etc/ttys una vez que el sistema este instalado, hasta un ma'ximo
+de 12.
diff --git a/release/sysinstall/help/fr_FR.ISO8859-1/README b/release/sysinstall/help/fr_FR.ISO8859-1/README
new file mode 100644
index 0000000..13ef060
--- /dev/null
+++ b/release/sysinstall/help/fr_FR.ISO8859-1/README
@@ -0,0 +1,104 @@
+ -----------------------------------------
+ FreeBSD version 2.0.5 , ,
+ ----------------------------------------- /( )`
+ \ \___ / |
+ /- _ `-/ '
+Bienvenue dans FreeBSD, version 2.0.5 ! C'est une (/\/ \ \ /\
+version intermédiaire après une longue période / / | ` \
+nécessaire depuis la version 2.0 de Novembre 94 O O ) / |
+et en attendant la version 2.1 prévue pour fin `-^--'`< '
+Juillet 95. FreeBSD 2.0.5 constitue une nette (_.) _ ) /
+amélioration depuis la version 2.0 : un effort `.___/` /
+considérable du point de vue de la stabilité ainsi `-----' /
+que des nouveautés par douzaines. Pour <----. __ / __ \
+obtenir plus de détails concernant ces <----|====O)))==) \) /====
+nouveautés, consultez le fichier <----' `--' `.__,' \
+RELNOTES | |
+ \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+FreeBSD est un système d'exploitation basé sur 4.4 BSD Lite, pour les
+PC munis de processeurs de type "x86" d'Intel, AMD, Cyrix ou NexGen.
+FreeBSD supporte une très large quantité de périphériques et de
+configurations. Il est utilisé pour de multiples tâches, allant du
+développement logiciel jusqu'à l'accès aux services d'Internet. Le
+site le plus utilisé sur Internet, ftp.cdrom.com, est une machine
+FreeBSD !
+
+Cette version de FreeBSD contient tout ce dont vous pouvez avoir
+besoin pour implanter ce système sur votre machine. Les sources de
+tous les programmes étant fournis, vous pouvez recompiler à loisir la
+distribution complète en une unique commande. C'est idéal pour les
+étudiants, les chercheurs et tous ceux qui sont simplement curieux de
+voir comment est conçu un tel système.
+
+Une importante collection de logiciels supportés (les « ports ») est
+aussi fournie pour vous aider à obtenir et à installer sur FreeBSD,
+les logiciels traditionnels du domaine UNIX. Plus de 270 ports sont
+ainsi disponibles, des éditeurs de texte aux langages de programmation,
+en passant par les applications graphiques... Tout cela contribue à
+faire autour de FreeBSD, un environnement puissant et accessible,
+capable de rivaliser avec beaucoup de stations de travail.
+
+En complément, il est recommandé d'acquérir les ouvrages relatifs à
+4.4BSD, chez « O'Reilly Associates » et « USENIX Association »,
+ISBN 1-56592-082-1. Nous n'avons pas d'intérêts dans la vente de ces
+ouvrages, nous sommes simplement des lecteurs satisfaits.
+
+Il est conseillé de lire le guide des configurations matérielles avant
+d'aller plus loin dans l'installation. La configuration d'un PC pour
+d'autres systèmes que DOS/Windows (qui n'est pas très exigeant sur ce
+point) est certainement un peu plus difficile qu'il n'y paraît, et si
+vous pensez maîtriser la situation, c'est sans doute que vous n'avez
+pas utilisé un PC depuis quelque temps. :) Ce guide donne les
+renseignements indiquant comment configurer votre machine et quels
+symptômes rechercher en cas de problème. Ce guide est disponible par
+le menu Documentation de la disquette de démarrage de FreeBSD.
+
+MISE EN GARDE : Malgré toutes les précautions, FreeBSD ne peut
+garantir contre une perte accidentelle des données. Il se peut que
+cette procédure d'installation efface complètement le contenu de votre
+disque dur. Il est donc fortement conseillé de faire une sauvegarde de
+votre disque avant de continuer cette installation.
+
+Les commentaires techniques à propos de cette version peuvent être
+adressés à :
+
+ hackers@FreeBSD.org (en anglais)
+
+Les rapports de dysfonctionnement « bug reports » peuvent être
+notifiés par la commande « send-pr » dès que votre système est
+installé. Dans le cas contraire, ils peuvent être adressés à :
+
+ bugs@FreeBSD.org (en anglais)
+
+N'oubliez par de joindre à votre requête, le numéro de la version de
+FreeBSD concernée.
+
+Les questions d'ordre général sont à diriger vers :
+
+ questions@FreeBSD.org (en anglais)
+
+Ne soyez pas impatient si vos questions ne trouvent pas réponse dans
+la minute, car c'est beaucoup d'investissement que d'y répondre et il
+n'est pas rare que toute notre bonne volonté ne suffise pas. Les
+problèmes soumis par le biais de la commande « send-pr » sont
+automatiquement répertoriés dans une base de données. Vous resterez
+informés de toute évolution concernant votre demande.
+
+Notre site WEB est http://www.freebsd.org. C'est aussi une bonne
+source pour obtenir les dernières informations en date. Ce site
+propose de nombreuses facilités de documentation. La version de
+Netscape compilée pour BSDI peut être utilisée pour découvrir le
+« World Wide Web » directement à partir de FreeBSD.
+
+Pour de plus amples détails, consultez les fichiers contenus dans les
+répertoires /usr/share/FAQ et /usr/share/doc.
+
+Merci de votre attention, nous espérons sincèrement que cette version
+de FreeBSD vous donnera entière satisfaction.
+
+ Jordan Hubbard,
+ pour le projet FreeBSD
diff --git a/release/sysinstall/help/fr_FR.ISO8859-1/configure.hlp b/release/sysinstall/help/fr_FR.ISO8859-1/configure.hlp
new file mode 100644
index 0000000..4f3ed97
--- /dev/null
+++ b/release/sysinstall/help/fr_FR.ISO8859-1/configure.hlp
@@ -0,0 +1,16 @@
+Ce menu permet de configurer votre système dès la fin de son
+installation. Le minimum conseillé est d'ajouter un mot de passe pour
+l'administrateur du système, et d'indiquer le fuseau horaire de votre
+localisation.
+
+Pour installer des utilitaires supplémentaires, tels que bash, emacs,
+pascal, etc., vous pouvez utiliser l'entrée « Packages » dans ce
+menu. L'obtention automatique de ces outils via FTP n'étant pas encore
+disponible, une installation à partir du disque ou du CDROM est
+nécessaire.
+
+Une installation ultérieure de ces outils sera toujours possible, à
+l'aide de la commande « pkg_manage ». Un ajustement de l'heure peut
+aussi être effectué grâce à « tzsetup ». Enfin, pour modifier la
+configuration générale de votre système, reportez vous au contenu du
+fichier /etc/sysconfig.
diff --git a/release/sysinstall/help/fr_FR.ISO8859-1/language.hlp b/release/sysinstall/help/fr_FR.ISO8859-1/language.hlp
new file mode 100644
index 0000000..f4a99ea
--- /dev/null
+++ b/release/sysinstall/help/fr_FR.ISO8859-1/language.hlp
@@ -0,0 +1,13 @@
+Ce menu permet de choisir parmi plusieurs, le langage que vous
+préférez. Pour l'instant cela n'est utilisé que dans certains fichiers
+d'aide.
+
+Les versions suivantes permettront d'adapter le clavier, les codes
+écran, la configuration NLS (le programme « sysinstall » utilisera
+alors des menus en conséquence), et d'autres caractéristiques suivant
+votre choix.
+
+En attendant, la méthode la plus simple consiste à éditer le fichier
+/etc/sysconfig dès la fin de l'installation. Les nombreux commentaires
+de ce fichier indiquent comment obtenir une configuration personnelle
+et proposent quelques exemples.
diff --git a/release/sysinstall/help/fr_FR.ISO8859-1/usage.hlp b/release/sysinstall/help/fr_FR.ISO8859-1/usage.hlp
new file mode 100644
index 0000000..dd1d41a
--- /dev/null
+++ b/release/sysinstall/help/fr_FR.ISO8859-1/usage.hlp
@@ -0,0 +1,54 @@
+COMMENT UTILISER CE SYSTÈME DE MENUS
+====================================
+
+TOUCHE ACTION
+------ ------
+FLÈCHE HAUT Aller sur la rubrique précédente (ou remonter, dans du texte).
+FLÈCHE BAS Aller sur la rubrique suivante (ou descendre, dans du texte).
+TAB Aller sur la rubrique ou le groupe suivant.
+FLÈCHE DROITE Aller sur la rubrique suivante. (même chose que TAB).
+MAJ-TAB Aller sur la rubrique ou le groupe précédent.
+FLÈCHE GAUCHE Aller sur la rubrique précédente. (même chose que MAJ-TAB).
+ENTRÉE Sélectionne la rubrique.
+PAGE PRÉC. Remonte d'une page, dans les boîtes de texte.
+PAGE SUIV. Descend d'une page, dans les boîtes de texte.
+ESPACE Sélectionne/désélectionne l'élément (menus à choix multiples).
+F1 Aide (pour les écrans qui en proposent).
+
+De même, des symboles du genre "^(-)" ou "v(+)" sur les côtés d'un menu,
+indiquent d'autres rubriques non affichées (par manque de place) plus haut ou
+plus bas (respectivement). Les flèches haut ou bas feront défiler le menu et
+feront apparaître les autres rubriques. Le symbole disparaît dès que le début
+(ou la fin) du menu est atteint.
+
+Dans les boîtes de texte, le pourcentage de texte déjà affiché est indiqué
+dans le coin inférieur droit. 100% veut dire qu'il n'y a plus rien à afficher.
+
+Sélectionner OK dans un menu pour confirmer votre choix.
+Sélectionner Cancel pour annuler l'opération et revenir au menu précédent.
+
+
+PARTICULARITÉS.
+===============
+
+On peut aussi choisir une rubrique dans un menu en tapant la première lettre
+de son nom, si il n'y pas d'ambiguïté. Ces lettres "accélératrices"
+apparaîtront en sur-brillance dans le nom de la rubrique.
+
+Il est aussi possible de remonter et revoir du texte qui a déjà défilé. Pour
+cela, appuyez sur la touche "arrêt défil" ("Scroll Lock" en anglais) puis
+utilisez la flèche-haut ou les touches Page Préc./Page Suiv. pour faire
+défiler le texte. Pour quitter ce mode, appuyez à nouveau sur la touche
+"arrêt défil.". Cette particularité est utile lorsque l'on est dans un
+sous-shell ou dans un mode qui ne présente pas de menu.
+
+Dès que le système est complètement installé et fonctionne en mode
+"multi-utilisateurs", il est possible d'utiliser des "écrans virtuels"
+et d'avoir une session dans chacun d'eux. Il suffit d'utiliser
+la combinaison de touches ALT-F<n> pour passer de l'un à l'autre :
+ALT-F1 pour aller sur la session "1", ALT-F2 pour la session "2", etc.
+3 écrans virtuels sont disponibles par défaut mais il est possible d'en
+ajouter d'autres en éditant le fichier /etc/ttys (la limite supérieure est
+fixée à 12)
+Les utilisateurs de X11 pourront noter que ces écrans sont toujours
+disponibles depuis X mais par les combinaisons CTRL-ALT-F<n>.
diff --git a/release/sysinstall/help/fr_FR.ISO_8859-1/README b/release/sysinstall/help/fr_FR.ISO_8859-1/README
new file mode 100644
index 0000000..13ef060
--- /dev/null
+++ b/release/sysinstall/help/fr_FR.ISO_8859-1/README
@@ -0,0 +1,104 @@
+ -----------------------------------------
+ FreeBSD version 2.0.5 , ,
+ ----------------------------------------- /( )`
+ \ \___ / |
+ /- _ `-/ '
+Bienvenue dans FreeBSD, version 2.0.5 ! C'est une (/\/ \ \ /\
+version intermédiaire après une longue période / / | ` \
+nécessaire depuis la version 2.0 de Novembre 94 O O ) / |
+et en attendant la version 2.1 prévue pour fin `-^--'`< '
+Juillet 95. FreeBSD 2.0.5 constitue une nette (_.) _ ) /
+amélioration depuis la version 2.0 : un effort `.___/` /
+considérable du point de vue de la stabilité ainsi `-----' /
+que des nouveautés par douzaines. Pour <----. __ / __ \
+obtenir plus de détails concernant ces <----|====O)))==) \) /====
+nouveautés, consultez le fichier <----' `--' `.__,' \
+RELNOTES | |
+ \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+FreeBSD est un système d'exploitation basé sur 4.4 BSD Lite, pour les
+PC munis de processeurs de type "x86" d'Intel, AMD, Cyrix ou NexGen.
+FreeBSD supporte une très large quantité de périphériques et de
+configurations. Il est utilisé pour de multiples tâches, allant du
+développement logiciel jusqu'à l'accès aux services d'Internet. Le
+site le plus utilisé sur Internet, ftp.cdrom.com, est une machine
+FreeBSD !
+
+Cette version de FreeBSD contient tout ce dont vous pouvez avoir
+besoin pour implanter ce système sur votre machine. Les sources de
+tous les programmes étant fournis, vous pouvez recompiler à loisir la
+distribution complète en une unique commande. C'est idéal pour les
+étudiants, les chercheurs et tous ceux qui sont simplement curieux de
+voir comment est conçu un tel système.
+
+Une importante collection de logiciels supportés (les « ports ») est
+aussi fournie pour vous aider à obtenir et à installer sur FreeBSD,
+les logiciels traditionnels du domaine UNIX. Plus de 270 ports sont
+ainsi disponibles, des éditeurs de texte aux langages de programmation,
+en passant par les applications graphiques... Tout cela contribue à
+faire autour de FreeBSD, un environnement puissant et accessible,
+capable de rivaliser avec beaucoup de stations de travail.
+
+En complément, il est recommandé d'acquérir les ouvrages relatifs à
+4.4BSD, chez « O'Reilly Associates » et « USENIX Association »,
+ISBN 1-56592-082-1. Nous n'avons pas d'intérêts dans la vente de ces
+ouvrages, nous sommes simplement des lecteurs satisfaits.
+
+Il est conseillé de lire le guide des configurations matérielles avant
+d'aller plus loin dans l'installation. La configuration d'un PC pour
+d'autres systèmes que DOS/Windows (qui n'est pas très exigeant sur ce
+point) est certainement un peu plus difficile qu'il n'y paraît, et si
+vous pensez maîtriser la situation, c'est sans doute que vous n'avez
+pas utilisé un PC depuis quelque temps. :) Ce guide donne les
+renseignements indiquant comment configurer votre machine et quels
+symptômes rechercher en cas de problème. Ce guide est disponible par
+le menu Documentation de la disquette de démarrage de FreeBSD.
+
+MISE EN GARDE : Malgré toutes les précautions, FreeBSD ne peut
+garantir contre une perte accidentelle des données. Il se peut que
+cette procédure d'installation efface complètement le contenu de votre
+disque dur. Il est donc fortement conseillé de faire une sauvegarde de
+votre disque avant de continuer cette installation.
+
+Les commentaires techniques à propos de cette version peuvent être
+adressés à :
+
+ hackers@FreeBSD.org (en anglais)
+
+Les rapports de dysfonctionnement « bug reports » peuvent être
+notifiés par la commande « send-pr » dès que votre système est
+installé. Dans le cas contraire, ils peuvent être adressés à :
+
+ bugs@FreeBSD.org (en anglais)
+
+N'oubliez par de joindre à votre requête, le numéro de la version de
+FreeBSD concernée.
+
+Les questions d'ordre général sont à diriger vers :
+
+ questions@FreeBSD.org (en anglais)
+
+Ne soyez pas impatient si vos questions ne trouvent pas réponse dans
+la minute, car c'est beaucoup d'investissement que d'y répondre et il
+n'est pas rare que toute notre bonne volonté ne suffise pas. Les
+problèmes soumis par le biais de la commande « send-pr » sont
+automatiquement répertoriés dans une base de données. Vous resterez
+informés de toute évolution concernant votre demande.
+
+Notre site WEB est http://www.freebsd.org. C'est aussi une bonne
+source pour obtenir les dernières informations en date. Ce site
+propose de nombreuses facilités de documentation. La version de
+Netscape compilée pour BSDI peut être utilisée pour découvrir le
+« World Wide Web » directement à partir de FreeBSD.
+
+Pour de plus amples détails, consultez les fichiers contenus dans les
+répertoires /usr/share/FAQ et /usr/share/doc.
+
+Merci de votre attention, nous espérons sincèrement que cette version
+de FreeBSD vous donnera entière satisfaction.
+
+ Jordan Hubbard,
+ pour le projet FreeBSD
diff --git a/release/sysinstall/help/fr_FR.ISO_8859-1/configure.hlp b/release/sysinstall/help/fr_FR.ISO_8859-1/configure.hlp
new file mode 100644
index 0000000..4f3ed97
--- /dev/null
+++ b/release/sysinstall/help/fr_FR.ISO_8859-1/configure.hlp
@@ -0,0 +1,16 @@
+Ce menu permet de configurer votre système dès la fin de son
+installation. Le minimum conseillé est d'ajouter un mot de passe pour
+l'administrateur du système, et d'indiquer le fuseau horaire de votre
+localisation.
+
+Pour installer des utilitaires supplémentaires, tels que bash, emacs,
+pascal, etc., vous pouvez utiliser l'entrée « Packages » dans ce
+menu. L'obtention automatique de ces outils via FTP n'étant pas encore
+disponible, une installation à partir du disque ou du CDROM est
+nécessaire.
+
+Une installation ultérieure de ces outils sera toujours possible, à
+l'aide de la commande « pkg_manage ». Un ajustement de l'heure peut
+aussi être effectué grâce à « tzsetup ». Enfin, pour modifier la
+configuration générale de votre système, reportez vous au contenu du
+fichier /etc/sysconfig.
diff --git a/release/sysinstall/help/fr_FR.ISO_8859-1/language.hlp b/release/sysinstall/help/fr_FR.ISO_8859-1/language.hlp
new file mode 100644
index 0000000..f4a99ea
--- /dev/null
+++ b/release/sysinstall/help/fr_FR.ISO_8859-1/language.hlp
@@ -0,0 +1,13 @@
+Ce menu permet de choisir parmi plusieurs, le langage que vous
+préférez. Pour l'instant cela n'est utilisé que dans certains fichiers
+d'aide.
+
+Les versions suivantes permettront d'adapter le clavier, les codes
+écran, la configuration NLS (le programme « sysinstall » utilisera
+alors des menus en conséquence), et d'autres caractéristiques suivant
+votre choix.
+
+En attendant, la méthode la plus simple consiste à éditer le fichier
+/etc/sysconfig dès la fin de l'installation. Les nombreux commentaires
+de ce fichier indiquent comment obtenir une configuration personnelle
+et proposent quelques exemples.
diff --git a/release/sysinstall/help/fr_FR.ISO_8859-1/usage.hlp b/release/sysinstall/help/fr_FR.ISO_8859-1/usage.hlp
new file mode 100644
index 0000000..dd1d41a
--- /dev/null
+++ b/release/sysinstall/help/fr_FR.ISO_8859-1/usage.hlp
@@ -0,0 +1,54 @@
+COMMENT UTILISER CE SYSTÈME DE MENUS
+====================================
+
+TOUCHE ACTION
+------ ------
+FLÈCHE HAUT Aller sur la rubrique précédente (ou remonter, dans du texte).
+FLÈCHE BAS Aller sur la rubrique suivante (ou descendre, dans du texte).
+TAB Aller sur la rubrique ou le groupe suivant.
+FLÈCHE DROITE Aller sur la rubrique suivante. (même chose que TAB).
+MAJ-TAB Aller sur la rubrique ou le groupe précédent.
+FLÈCHE GAUCHE Aller sur la rubrique précédente. (même chose que MAJ-TAB).
+ENTRÉE Sélectionne la rubrique.
+PAGE PRÉC. Remonte d'une page, dans les boîtes de texte.
+PAGE SUIV. Descend d'une page, dans les boîtes de texte.
+ESPACE Sélectionne/désélectionne l'élément (menus à choix multiples).
+F1 Aide (pour les écrans qui en proposent).
+
+De même, des symboles du genre "^(-)" ou "v(+)" sur les côtés d'un menu,
+indiquent d'autres rubriques non affichées (par manque de place) plus haut ou
+plus bas (respectivement). Les flèches haut ou bas feront défiler le menu et
+feront apparaître les autres rubriques. Le symbole disparaît dès que le début
+(ou la fin) du menu est atteint.
+
+Dans les boîtes de texte, le pourcentage de texte déjà affiché est indiqué
+dans le coin inférieur droit. 100% veut dire qu'il n'y a plus rien à afficher.
+
+Sélectionner OK dans un menu pour confirmer votre choix.
+Sélectionner Cancel pour annuler l'opération et revenir au menu précédent.
+
+
+PARTICULARITÉS.
+===============
+
+On peut aussi choisir une rubrique dans un menu en tapant la première lettre
+de son nom, si il n'y pas d'ambiguïté. Ces lettres "accélératrices"
+apparaîtront en sur-brillance dans le nom de la rubrique.
+
+Il est aussi possible de remonter et revoir du texte qui a déjà défilé. Pour
+cela, appuyez sur la touche "arrêt défil" ("Scroll Lock" en anglais) puis
+utilisez la flèche-haut ou les touches Page Préc./Page Suiv. pour faire
+défiler le texte. Pour quitter ce mode, appuyez à nouveau sur la touche
+"arrêt défil.". Cette particularité est utile lorsque l'on est dans un
+sous-shell ou dans un mode qui ne présente pas de menu.
+
+Dès que le système est complètement installé et fonctionne en mode
+"multi-utilisateurs", il est possible d'utiliser des "écrans virtuels"
+et d'avoir une session dans chacun d'eux. Il suffit d'utiliser
+la combinaison de touches ALT-F<n> pour passer de l'un à l'autre :
+ALT-F1 pour aller sur la session "1", ALT-F2 pour la session "2", etc.
+3 écrans virtuels sont disponibles par défaut mais il est possible d'en
+ajouter d'autres en éditant le fichier /etc/ttys (la limite supérieure est
+fixée à 12)
+Les utilisateurs de X11 pourront noter que ces écrans sont toujours
+disponibles depuis X mais par les combinaisons CTRL-ALT-F<n>.
diff --git a/release/sysinstall/help/hardware.hlp b/release/sysinstall/help/hardware.hlp
new file mode 100644
index 0000000..6bcfb0b
--- /dev/null
+++ b/release/sysinstall/help/hardware.hlp
@@ -0,0 +1,390 @@
+Hardware Documentation Guide: $Id: hardware.hlp,v 1.12.2.1 1995/08/14 10:49:29 rgrimes Exp $
+
+Table of Contents
+-----------------
+
+0. Document Conventions
+1. Using UserConfig to change FreeBSD kernel settings
+2. Default Configuration (GENERIC kernel)
+3. LINT - other possible configurations.
+4. Known Hardware Problems.
+
+=========================================================================
+
+0. Document Conventions
+-- --------------------
+
+We have `underlined' text which represents user input with `-'
+symbols throughout this document to differentiate it from
+the machine output.
+
+1. Using UserConfig to change FreeBSD kernel settings
+-- --------------------------------------------------
+
+The UserConfig utility allows you to override various settings of
+the FreeBSD kernel before the system has booted. This allows you to
+make minor adjustments to the various drivers in the system without
+necessarily having to recompile the kernel.
+
+UserConfig is activated by specifying the `-c' flag at the initial
+boot prompt. For example:
+
+ >> FreeBSD BOOT @ 0x10000: 640/7168 k of memory
+ Use hd(1,a)/kernel to boot sd0 when wd0 is also installed.
+ Usage: [[wd(0,a)]/kernel][-abcCdhrsv]
+ Use ? for file list or press Enter for defaults
+
+ Boot: -c
+ --
+
+This command causes the system to boot the default kernel ("/kernel") and
+the UserConfig utility to be started once the kernel is loaded into memory.
+
+The `-c' flag follows any of the other parameters you may need to provide
+for the system to boot properly. For example, to boot off the second of
+two SCSI drives installed and run UserConfig, you would type:
+
+ Boot: sd(1,a)/kernel -c
+ -----------------
+
+As always, the kernel will report some information on your processor
+and how much memory your system has. Then UserConfig will be invoked
+and you will see the prompt:
+
+ config>
+
+To see the list of commands that UserConfig accepts, you may type '?' and
+press [ENTER]. The help message looks something like this:
+
+Command Description
+------- -----------
+attach <devname> Return results of device attach
+ls List currently configured devices
+port <devname> <addr> Set device port (i/o address)
+irq <devname> <number> Set device irq
+drq <devname> <number> Set device drq (DMA Request)
+iomem <devname> <addr> Set device maddr (memory address)
+iosize <devname> <size> Set device memory size
+flags <devname> <mask> Set device flags
+enable <devname> Enable device
+probe <devname> Return results of device probe
+disable <devname> Disable device (will not be probed)
+quit Exit this configuration utility
+help This message
+
+
+You may alter nearly all of the default settings present in the FreeBSD
+generic kernel. This includes reassigning IRQs, disabling troublesome
+devices (or drivers that conflict with the hardware your system has),
+setting special device flags, etc.
+
+The most common use of UserConfig is to adjust or disable a driver
+which is causing trouble. The "ls" command displays the current
+settings for all the drivers present in the booted kernel, and
+once you have located an entry of interest you may use the displayed
+device name to change its settings or even disable the driver completely.
+
+For example, to change the memory address of network adapter 'ed0' to
+the address 0xd4000, you would type
+
+ config> iomem ed0 0xd4000
+ -----------------
+
+To entirely disable a device driver you are not using, use the
+"disable" command. In this example, you would disable device
+`ie0' by typing:
+
+ config> disable ie0
+ -----------
+
+You can use the "ls" command to verify your changes and correct
+any other problems before continuing the boot process.
+
+Once you are happy with a given configuration you may type: "quit"
+
+This will cause the kernel to boot with the new settings you
+have chosen.
+
+Once you have a fully installed system (e.g. the `bin' distribution
+has been successfully extracted), any changes you make in UserConfig
+are permanently stored in the `/kernel' file on the root filesystem.
+This action is performed by the `dset' utility, which will ensure that
+these settings remain in effect until you replace the kernel with
+a new one. If you do not want your changes to be permanently
+stored like this, remove `dset' from the /etc/rc file before you
+make any changes.
+
+If you accidentally change a setting for a device that you did not mean
+to change, the safest thing to do is to reset the computer and start
+over. Do not allow the boot to proceed (e.g. do not type "quit") with
+bad settings as these may be permanently stored by dset and
+leave your system in a state where it will no longer run properly.
+
+We suggest as a general rule that you disable any drivers that are not
+used by your particular hardware configuration. There are known problems
+with certain device drivers (see section 4.0) that can cause conflicts
+with other devices if they're also not disabled. You should move or
+disable any device that resides at the same port or IRQ as a device
+you actually have!
+
+You can also remove drivers that are not needed by building yourself a
+custom kernel that contains only the device drivers which your system
+really needs (see section 6.0 of the FreeBSD.FAQ). If your system has
+sufficient free disk space to store and compile the kernel sources,
+this is the option we most highly recommend.
+
+
+
+2. Default (GENERIC) Configuration
+-- -------------------------------
+
+The following table contains a list of all of the devices that are present
+in the GENERIC kernel, which is the kernel (the operating system) that was
+placed on your computer during the FreeBSD installation process.
+(A compressed version of the GENERIC kernel is also used on the
+installation floppy diskettes.)
+
+The table describes the various parameters used by the driver to communicate
+with the hardware in your system. There are four parameters in the
+table, but not all are used by each device. They are:
+
+ Port the starting I/O port used by the device, shown in hexadecimal.
+
+ IOMem the lowest (or starting) memory address used by the device,
+ also shown in hexadecimal.
+
+ IRQ the interrupt the device uses to alert the driver to an event,
+ given in decimal.
+
+ DRQ the DMA (direct memory access) channel the device uses to move
+ data to and from main memory, also given in decimal.
+
+If an entry in the table has `n/a' for the value, it means that the
+parameter does not apply to that device. A value of `dyn' means that the
+correct value should be determined automatically by the kernel when the
+system boots.
+
+
+FreeBSD GENERIC kernel:
+
+ Port IRQ DRQ IOMem Description
+ ---- --- --- ----- ---------------------------------
+fdc0 3f0 6 2 n/a Floppy disk controller
+wdc0 1f0 14 n/a n/a IDE/MFM/RLL disk controller
+wdc1 170 15 n/a n/a IDE/MFM/RLL disk controller
+
+ncr0 n/a n/a n/a n/a NCR PCI SCSI controller
+ahc0 n/a n/a n/a n/a Adaptec 294x PCI SCSI controller
+bt0 330 dyn dyn dyn Buslogic SCSI controller
+uha0 330 dyn 6 dyn Ultrastore 14f
+ahc1 dyn dyn dyn dyn Adaptec 274x/284x SCSI controller
+ahb0 dyn dyn dyn dyn Adaptec 174x SCSI controller
+aha0 330 dyn 5 dyn Adaptec 154x SCSI controller
+aic0 340 11 dyn dyn Adaptec 152x/AIC-6360 SCSI
+ controller
+nca0 1f88 10 dyn dyn ProAudioSpectrum cards
+nca1 350 5 dyn dyn ProAudioSpectrum cards
+sea0 dyn 5 dyn c8000 Seagate ST01/02 8 bit controller
+
+wt0 300 5 1 dyn Wangtek and Archive QIC-02/QIC-36
+
+mcd0 300 10 n/a n/a Mitsumi CD-ROM
+mcd1 340 11 n/a n/a Mitsumi CD-ROM
+
+matcd0 dyn n/a n/a n/a Matsushita/Panasonic CD-ROM
+
+scd0 230 n/a n/a n/a Sony CD-ROM
+
+sio0 3f8 4 n/a n/a Serial Port 0 (COM1)
+sio1 2f8 3 n/a n/a Serial Port 1 (COM2)
+sio2 3e8 5 n/a n/a Serial Port 2 (COM3)
+sio3 2e8 9 n/a n/a Serial Port 3 (COM4)
+
+lpt0 dyn 7 n/a n/a Printer Port 0
+lpt1 dyn dyn n/a n/a Printer Port 1
+lpt2 dyn dyn n/a n/a Printer Port 2
+
+de0 DEC DC21x40 PCI based cards
+ (including 21140 100bT cards)
+ed0 280 5 dyn d8000 WD & SMC 80xx; Novell NE1000 &
+ NE2000; 3Com 3C503
+ed1 300 5 dyn d8000 Same as ed0
+eg0 310 5 dyn dyn 3Com 3C505
+ep0 300 10 dyn dyn 3Com 3C509
+ie0 360 7 dyn d0000 AT&T StarLAN 10 and EN100;
+ 3Com 3C507; NI5210
+ix0 300 10 dyn d0000 Intel EtherExpress cards
+le0 300 5 dyn d0000 Digital Equipment EtherWorks
+ 2 and EtherWorks 3
+lnc0 280 10 n/a dyn Lance/PCnet cards
+ (Isolan, Novell NE2100, NE32-VL)
+lnc1 300 10 n/a dyn See lnc0
+ze0 300 5 dyn d8000 IBM/National Semiconductor
+ PCMCIA Ethernet Controller
+zp0 300 10 dyn d8000 3Com PCMCIA Etherlink III
+ Ethernet Controller
+--- End of table ---
+
+
+If the hardware in your computer is not set to the same settings as
+those shown in this table and the item is not marked 'dyn', you will
+have to either reconfigure your hardware, or use UserConfig ('-c' boot
+option) to reconfigure the kernel to match the way your hardware is
+currently set (see section 1.0).
+
+If the settings do not match, the kernel may be unable to locate
+or reliably access the devices in your system.
+
+
+
+3. LINT - other possible configurations
+-- ------------------------------------
+
+The following drivers are not in the GENERIC kernel but remain
+available to those who do not mind compiling a custom kernel (see
+section 6 of FreeBSD.FAQ). The LINT configuration file
+(/sys/i386/conf/LINT) also contains prototype entries for just about
+every device supported by FreeBSD and is a good general reference.
+
+The device names and a short description of each are listed below. The port
+numbers, etc, are not meaningful here since you will need to compile a
+custom kernel to gain access to these devices anyway and can thus
+adjust the addresses to match the hardware in your computer in the process.
+The LINT file contains prototype entries for all of the below which you
+can easily cut-and-paste into your own file (or simply copy LINT and edit
+it to taste):
+
+apm: Laptop Advanced Power Management (experimental)
+ctx: Cortex-I frame grabber
+cx: Cronyx/Sigma multiport sync/async
+cy: Cyclades high-speed serial driver
+el: 3Com 3C501
+fe: Fujitsu MB86960A/MB86965A Ethernet cards
+fea: DEV DEFEA EISA FDDI adater
+fpa: DEC DEFPA PCI FDDI adapter
+gp: National Instruments AT-GPIB and AT-GPIB/TNT board
+gsc: Genius GS-4500 hand scanner
+gus: Gravis Ultrasound - Ultrasound, Ultrasound 16, Ultrasound MAX
+gusmax: Gravis Ultrasound MAX (currently broken)
+gusxvi: Gravis Ultrasound 16-bit PCM
+joy: Joystick
+labpc: National Instrument's Lab-PC and Lab-PC+
+mpu: Roland MPU-401 stand-alone card
+mse: Logitech & ATI InPort bus mouse ports
+mss: Microsoft Sound System
+nic: Dr Neuhaus NICCY 3008, 3009 & 5000 ISDN cards
+opl: Yamaha OPL-2 and OPL-3 FM - SB, SB Pro, SB 16, ProAudioSpectrum
+pas: ProAudioSpectrum PCM and MIDI
+pca: PCM audio ("/dev/audio") through your PC speaker
+psm: PS/2 mouse port
+rc: RISCom/8 multiport card
+sb: SoundBlaster PCM - SoundBlaster, SB Pro, SB16, ProAudioSpectrum
+sbmidi: SoundBlaster 16 MIDI interface
+sbxvi: SoundBlaster 16
+spigot: Create Labs Video Spigot video-acquisition board
+uart: Stand-alone 6850 UART for MIDI
+wds: Western Digital WD7000 IDE
+
+--- end of list ---
+
+
+4. Known Hardware Problems, Q & A:
+-- -------------------------------
+
+Q: mcd0 keeps thinking that it has found a device and this stops my Intel
+ EtherExpress card from working.
+
+A: Use the UserConfig utility (see section 1.0) and disable the probing of
+ the mcd0 and mcd1 devices. Generally speaking, you should only leave
+ the devices that you will be using enabled in your kernel.
+
+
+Q: The system finds my ed network card, but I keep getting device
+ timeout errors.
+
+A: Your card is probably on a different IRQ from what is specified in the
+ kernel configuration. The ed driver will no longer use the `soft'
+ configuration by default (values entered using EZSETUP in DOS), but it
+ will use the software configuration if you specify `?' in the IRQ field
+ of your kernel config file. The reason for the change is because the
+ ed driver used to read and try to use the soft configuration information
+ even when the card was jumpered to use a hard configuration, and this
+ caused problems.
+
+ Either move the jumper on the card to a hard configuration setting
+ (altering the kernel settings if necessary), or specify the IRQ as
+ `-1' in UserConfig or `?' in your kernel config file. This will
+ tell the kernel to use the soft configuration.
+
+ Another possibility is that your card is at IRQ 9, which is shared
+ by IRQ 2 and frequently a cause of problems (especially when you
+ have a VGA card using 2! :). You should not use IRQ 2 or 9 if at
+ all possible.
+
+
+Q: I go to boot from the hard disk for the first time after installing
+ FreeBSD, but the Boot Manager prompt just prints `F?' at the boot menu
+ each time but the boot won't go any further.
+
+A: The hard disk geometry was set incorrectly in the Partition editor when
+ you installed FreeBSD. Go back into the partition editor and specify
+ the actual geometry of your hard disk. You must reinstall FreeBSD
+ again from the beginning with the correct geometry.
+
+ If you are failing entirely in figuring out the correct geometry for
+ your machine, here's a tip: Install a small DOS partition at the
+ beginning of the disk and install FreeBSD after that. The install
+ program will see the DOS partition and try to infer the correct
+ geometry from it, which usually works.
+
+
+Q: I have a Matsushita/Panasonic CD-ROM drive but it isn't recognized
+ by the system, even if I use UserConfig to change the Port address to
+ 630, which is what my card uses.
+
+A: Not all of the companies that sell the Matsushita/Panasonic CR-562
+ and CR-563 drives use the same I/O ports and interface that the
+ matcd driver in FreeBSD expects. The only adapters that are supported
+ at this time are those that are 100% compatible with the Creative
+ Labs (SoundBlaster) host interface. See matcd.4 documentation for a
+ list of host adapters that are known to work.
+
+
+Q: I'm trying to install from a tape drive but all I get is something like:
+ st0(aha0:1:0) NOT READY csi 40,0,0,0
+ on the screen. Help!
+
+A: There's a limitation in the current sysinstall that the tape MUST
+ be in the drive while sysinstall is started or it won't be detected.
+ Try again with the tape in the drive the whole time.
+
+
+Q: I've installed FreeBSD onto my system, but it hangs when booting from
+ the hard drive with the message: ``Changing root to /dev/sd0a''.
+
+A: This problem may occur in a system with a 3com 3c509 ethernet adaptor.
+ The ep0 device driver appears to be sensitive to probes for other
+ devices that also use address 0x300. Boot your FreeBSD system by power
+ cycling the machine (turn off and on). At the ``Boot:'' prompt specify
+ the ``-c''. This will invoke UserConfig (see Section 1. above). Use
+ the ``disable'' command to disable the device probes for all devices
+ at address 0x300 except the ep0 driver. On exit, your machine should
+ successfully boot FreeBSD.
+
+
+Q: My system hangs during boot, right after the "fd0: [my floppy drive]"
+ line.
+
+A: This is not actually a hang, simply a very LONG "wdc0" probe that
+ often takes a long time to complete on certain systems (where there
+ usually _isn't_ a WD controller). Be patient, your system will boot!
+ To eliminate the problem, boot with the -c flag and eliminate the wdc0
+ device, or compile a custom kernel.
+
+Q: My sytem can not find an Intel EtherExpress 16 card.
+
+A: You must set your Intel EtherExpress 16 card to be memory mapped at
+ address 0xD0000, and set the amount of mapped memory to 32K using
+ the Intel supplied softset.exe program.
+
+[ Please add more hardware tips to this Q&A section! ]
diff --git a/release/sysinstall/help/install.hlp b/release/sysinstall/help/install.hlp
new file mode 100644
index 0000000..95d060c
--- /dev/null
+++ b/release/sysinstall/help/install.hlp
@@ -0,0 +1,447 @@
+ INSTALLATION GUIDE FOR FreeBSD 2.0.5
+
+This manual documents the process of installing FreeBSD on your
+machine. Please also see the Hardware Guide for hardware-specific
+installation instructions (how to configure your hardware, what sorts
+of things to watch out for, etc) before starting a new installation.
+
+
+Table of Contents:
+==================
+
+1.0 DOS User's Q&A section.
+ 1.1 How do I make space for FreeBSD?
+ 1.2 Can I use compressed DOS filesystems from FreeBSD?
+ 1.3 Can I use DOS extended partitions?
+ 1.4 Can I run DOS executables under FreeBSD?
+
+2.0 Preparing for the installation.
+ 2.1 Before installing from CDROM
+ 2.2 Before installing from Floppy
+ 2.3 Before installing from a DOS partition
+ 2.4 Before installing from QIC/SCSI tape
+ 2.5 Before installing over a network
+ 2.5.1 Preparing for NFS Installation
+ 2.5.2 Preparing for FTP Installation
+
+3.0 Installing FreeBSD.
+
+
+
+1.0 DOS user's Question and Answer section
+=== ======================================
+
+1.1 Help! I have no space! Do I need to delete everything first?
+
+If your machine is already running DOS and has little or no free space
+available for FreeBSD's installation, all is not lost! You may find
+the "FIPS" utility, provided in the tools/ subdirectory on the FreeBSD
+CDROM or on the various FreeBSD ftp sites, to be quite useful.
+
+FIPS allows you to split an existing DOS partition into two pieces,
+preserving the original partition and allowing you to install onto the
+second free piece. You first "defrag" your DOS partition, using the
+DOS 6.xx "DEFRAG" utility or the Norton Disk tools, then run FIPS. It
+will prompt you for the rest of the information it needs. Afterwards,
+you can reboot and install FreeBSD on the new free slice. See the
+Distributions menu for an estimation of how much free space you'll
+need for the kind of installation you want.
+
+
+1.2 Can I use compressed DOS filesystems from FreeBSD?
+
+No. If you are using a utility such as Stacker(tm) or DoubleSpace(tm),
+FreeBSD will only be able to use whatever portion of the filesystem
+you leave uncompressed. The rest of the filesystem will show up as
+one large file (the stacked/dblspaced file!). DO NOT REMOVE THAT
+FILE! You will probably regret it greatly!
+
+It is probably better to create another uncompressed DOS primary
+partition and use this for communications between DOS and FreeBSD.
+
+
+1.3 Can I mount my DOS extended partitions?
+
+This feature isn't in FreeBSD 2.0.5 but should be in 2.1. We've laid
+all the groundwork for making this happen, now we just need to do the
+last 1% of the work involved.
+
+
+1.4 Can I run DOS binaries under FreeBSD?
+
+Not yet! We'd like to add support for this someday, but are still
+lacking anyone to actually do the work. Ongoing work with Linux's
+DOSEMU utility may bring this much closer to being a reality sometime
+soon. Send mail to hackers@freebsd.org if you're interested in
+joining this effort!
+
+However, there is a neat utility called "pcemu" in the ports collection
+which emulates an 8088 and enough BIOS services to run DOS text mode
+applications. It requires the X Window System (provided as
+XFree86 3.1.1u1).
+
+
+
+2.0 Preparing for the installation
+=== ==============================
+
+2.1 Before installing from CDROM:
+
+If your CDROM is of an unsupported type, such as an IDE CDROM, then
+please skip to section 2.3: Before installing from a DOS partition.
+
+There is not a lot of preparatory work that needs to be done to
+successfully install from one of Walnut Creek's FreeBSD CDROMs (other
+CDROM distributions may work as well, we simply cannot say as we
+have no hand or say in their creation). You can either boot into the
+CD installation directly from DOS using Walnut Creek's supplied
+``install.bat'' batch file or you can make a boot floppy with
+the ``makeflp.bat'' command.
+
+For the easiest interface of all (from DOS), type "go". This
+will bring up a DOS menu utility that leads you through all
+the available options.
+
+If you're creating the boot floppy from a UNIX machine, you may find
+that ``dd if=floppies/boot.flp of=/dev/rfd0'' or
+``dd if=floppies/boot.flp of=/dev/floppy'' works well, depending on
+your hardware and operating system environment.
+
+Once you've booted from DOS or floppy, you should then be able to select
+CDROM as the media type in the Media menu and load the entire
+distribution from CDROM. No other types of installation media should
+be required.
+
+After your system is fully installed and you have rebooted from the
+hard disk, you should find the CD mounted on the directory /cdrom. A
+utility called `lndir' comes with the XFree86 distribution which you
+may also find useful: It allows you to create "link tree" directories
+to things on Read-Only media like CDROM. One example might be
+something like this:
+
+ mkdir /usr/ports
+ lndir /cdrom/ports /usr/ports
+
+Which would allow you to then "cd /usr/ports; make" and get all the
+sources from the CD, but yet create all the intermediate files in
+/usr/ports, which is presumably on a more writable media! :-)
+
+SPECIAL NOTE: Before invoking the installation, be sure that the
+CDROM is in the drive so that the "probe" can find it!
+This is also true if you wish the CDROM to be added to the default
+system configuration automatically during the install (whether or
+not you actually use it as the installation media). This will be
+fixed for 2.1, but for now this simple work-around will ensure that
+your CDROM is detected properly.
+
+Finally, if you would like people to be able to FTP install
+FreeBSD directly from the CDROM in your machine, you'll find
+it quite easy. After the machine is fully installed, you simply
+need to add the following line to the password file (using
+the vipw command):
+
+ ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent
+
+No further work is necessary. The other installers will now be able
+to chose a Media type of FTP and type in: ftp://<your machine>
+after picking "Other" in the ftp sites menu!
+
+
+2.2 Before installing from Floppy:
+
+If you must install from floppy disks, either due to unsupported
+hardware or just because you enjoy doing things the hard way, you must
+first prepare some floppies for the install.
+
+The first floppy you'll need is ``floppies/root.flp'', which is
+somewhat special in that it's not a DOS filesystem floppy at all, but
+rather an "image" floppy (it's actually a gzip'd cpio file). You can
+use the rawrite.exe program to do this under DOS, or ``dd'' to do it
+on a UNIX Workstation (see notes in section 2.1 concerning the
+``floppies/boot.flp'' image). Once this floppy is made, go on
+to make the distribution set floppies:
+
+You will need, at minimum, as many 1.44MB or 1.2MB floppies as it takes
+to hold all files in the bin (binary distribution) directory. THESE
+floppies *must* be formatted using MS-DOS, using the FORMAT command in
+MS-DOS or the File Manager format command in Microsoft Windows(tm).
+Don't trust Factory Preformatted floppies! Format them again yourself,
+just to make sure!
+
+Many problems reported by our users in the past have resulted from the
+use of improperly formatted media, so we simply take special care to
+mention it here!
+
+After you've DOS formatted the floppies, you'll need to copy the files
+onto them. The distribution files are split into chunks conveniently
+sized so that 5 of them will fit on a conventional 1.44MB floppy. Go
+through all your floppies, packing as many files as will fit on each
+one, until you've got all the distributions you want packed up in this
+fashion. Each distribution should go into a subdirectory on the
+floppy, e.g.: a:\bin\bin.aa, a:\bin\bin.ab, ...
+
+Once you come to the Media screen of the install, select
+"Floppy" and you'll be prompted for the rest.
+
+
+2.3 Before installing from a DOS partition:
+
+To prepare for installation from an MS-DOS partition you should
+simply copy the files from the distribution into a directory called
+"FREEBSD". For example, to do a minimal installation of FreeBSD from
+DOS using files copied from the CDROM, you might do something like
+this:
+
+ C> MD C:\FREEBSD
+ C> XCOPY /S E:\DISTS\BIN C:\FREEBSD\BIN
+ C> XCOPY /S E:\FLOPPIES C:\FREEBSD\FLOPPIES
+
+Asssuming that `C:' was where you had free space and `E:' was where
+your CD was mounted. Note that you need the FLOPPIES directory
+because the `root.flp' image is automatically looked for there when
+you're doing a DOS installation.
+
+For as many `DISTS' as you wish to install from DOS (and you have free
+space for), install each one in a directory under `C:\FREEBSD' - the
+BIN dist is only the minimal requirement.
+
+
+2.4 Before installing from QIC/SCSI Tape:
+
+Installing from tape is probably the easiest method, short of an
+on-line install using FTP or a CDROM install. The installation program
+expects the files to be simply tar'ed onto the tape, so after getting
+all of the files for distribution you're interested in, simply tar
+them onto the tape with a command like:
+
+ cd /freebsd/distdir
+ tar cvf /dev/rwt0 (or /dev/rst0) dist1 .. dist2
+
+Make sure that the `floppies/' directory is one of the "dists" given
+above, since the installation will look for `floppies/root.flp' on
+the tape.
+
+When you go to do the installation, you should also make sure that you
+leave enough room in some temporary directory (which you'll be allowed
+to choose) to accommodate the FULL contents of the tape you've
+created. Due to the non-random access nature of tapes, this method of
+installation requires quite a bit of temporary storage! You should
+expect to require as much temporary storage as you have stuff written
+on tape.
+
+SPECIAL NOTE: When going to do the installation, the tape must be in
+the drive *before* booting from the boot floppy. The installation
+"probe" may otherwise fail to find it.
+
+
+2.5 Before installing over a network:
+
+You can do network installations over 3 types of communications links:
+
+ Serial port: SLIP / PPP
+ Parallel port: PLIP (laplink cable)
+ Ethernet: A standard ethernet controller (includes some PCMCIA).
+
+SLIP support is rather primitive, and limited primarily to hard-wired
+links, such as a serial cable running between a laptop computer and
+another computer. The link should be hard-wired as the SLIP
+installation doesn't currently offer a dialing capability; that
+facility is provided with the PPP utility, which should be used in
+preference to SLIP whenever possible.
+
+If you're using a modem, then PPP is almost certainly your only
+choice. Make sure that you have your service provider's information
+handy as you'll need to know it fairly soon in the installation
+process. You will need to know, at the minimum, your service
+provider's IP address and possibly your own (though you can also leave
+it blank and allow PPP to negotiate it with your ISP). You also need
+to know how to use the various "AT commands" to dial the ISP with your
+particular modem as the PPP dialer provides only a very simple
+terminal emulator.
+
+If a hard-wired connection to another FreeBSD (2.0R or later) machine
+is available, you might also consider installing over a "laplink"
+parallel port cable. The data rate over the parallel port is much
+higher than what is typically possible over a serial line (up to
+50k/sec), thus resulting in a quicker installation.
+
+Finally, for the fastest possible network installation, an ethernet
+adaptor is always a good choice! FreeBSD supports most common PC
+ethernet cards, a table of supported cards (and their required
+settings) is provided as part of the FreeBSD Hardware Guide - see the
+Documentation menu on the boot floppy. If you are using one of the
+supported PCMCIA ethernet cards, also be sure that it's plugged in
+_before_ the laptop is powered on! FreeBSD does not, unfortunately,
+currently support "hot insertion" of PCMCIA cards.
+
+You will also need to know your IP address on the network, the
+"netmask" value for your address class, and the name of your machine.
+Your system administrator can tell you which values to use for your
+particular network setup. If you will be referring to other hosts by
+name rather than IP address, you'll also need a name server and
+possibly the address of a gateway (if you're using PPP, it's your
+provider's IP address) to use in talking to it. If you do not know
+the answers to all or most of these questions, then you should
+really probably talk to your system administrator _first_ before
+trying this type of installation!
+
+Once you have a network link of some sort working, the installation
+can continue over NFS or FTP.
+
+2.5.1 Preparing for NFS installation:
+
+ NFS installation is fairly straight-forward: Simply copy the
+ FreeBSD distribution files you want onto a server somewhere
+ and then point the NFS media selection at it.
+
+ If this server supports only "privileged port" access (as is
+ generally the default for Sun workstations), you will need to set
+ this option in the Options menu before installation can proceed.
+
+ If you have a poor quality ethernet card which suffers from very
+ slow transfer rates, you may also wish to toggle the appropriate
+ Options flag.
+
+ In order for NFS installation to work, the server must support
+ "subdir mounts"; e.g., if your FreeBSD 2.0.5 distribution directory
+ lives on: ziggy:/usr/archive/stuff/FreeBSD
+ Then ziggy will have to allow the direct mounting of
+ /usr/archive/stuff/FreeBSD, not just /usr or /usr/archive/stuff.
+
+ In FreeBSD's /etc/exports file, this is controlled by the
+ ``-alldirs'' option. Other NFS servers may have different
+ conventions. If you are getting `Permission Denied' messages
+ from the server then it's likely that you don't have this
+ enabled properly!
+
+
+2.5.2 Preparing for FTP Installation
+
+ FTP installation may be done from any mirror site containing a
+ reasonably up-to-date version of FreeBSD 2.0.5. A full menu of
+ reasonable choices from almost anywhere in the world is provided
+ by the FTP site menu.
+
+ If you are installing from some other FTP site not listed in this
+ menu, or you are having troubles getting your name server configured
+ properly, you can also specify your own URL by selecting the ``Other''
+ choice in that menu. A URL can also be a direct IP address, so
+ the following would work in the absence of a name server:
+
+ ftp://192.216.222.4/pub/FreeBSD/2.0.5-RELEASE
+
+ [Substitute "ALPHA" for "RELEASE" during the ALPHA test period!]
+
+ If you are installing through a firewall then you should probably
+ select ``Passive mode'' ftp, which is the default. If you are
+ talking to a server which does not support passive mode for some
+ reason, see the Options menu to select Active mode transfers.
+
+
+3. Installing FreeBSD
+-- ------------------
+
+Once you've taken note of the appropriate preinstallation steps, you
+should be able to install FreeBSD without any further trouble.
+
+Should this not be true, then you may wish to go back and re-read the
+relevant preparation section (section 2.x) for the installation media
+type you're trying to use - perhaps there's a helpful hint there that
+you missed the first time? If you're having hardware trouble, or
+FreeBSD refuses to boot at all, read the Hardware Guide provided on
+the boot floppy for a list of possible solutions.
+
+The FreeBSD boot floppy contains all the on-line documentation you
+should need to be able to navigate through an installation and if it
+doesn't then I'd like to know what you found most confusing! It is
+the objective of the FreeBSD installation program (sysinstall) to be
+self-documenting enough that painful "step-by-step" guides are no
+longer necessary. It may take us a little while to reach that
+objective, but that's the objective!
+
+Meanwhile, you may also find the following "typical installation sequence"
+to be helpful:
+
+o Boot the boot floppy. After a boot sequence which can take
+ anywhere from from 30 seconds to 3 minutes, depending on your
+ hardware, you should be presented with a menu of initial
+ choices. If the floppy doesn't boot at all, or the boot
+ hangs at some stage, go read the Q&A section of the Hardware
+ Guide for possible causes.
+
+o Press F1. You should see some basic usage instructions on
+ the menu system and general navigation. If you haven't used this
+ menu system before then PLEASE read this thoroughly!
+
+o If English is not your native language, you may wish to proceed
+ directly to the Language option and set your preferred language.
+ This will bring up some of the documentation in that language
+ instead of english.
+
+o Select the Options item and set any special preferences you
+ may have.
+
+o Select Proceed, bringing you to the Installation Menu.
+
+Installation Menu:
+
+o You can do anything you like in this menu without altering
+ your system _except_ for "Commit", which will perform any
+ requests to alter your system you may have made.
+
+ If you're confused at any point, the F1 key usually pulls
+ up the right information for the screen you're in.
+
+ o The first step is generally `Partition', which allows
+ you to chose how your drives will be used for FreeBSD.
+
+ o Next, with the `Label' editor, you can specify how the space
+ in any allocated FreeBSD partitions should be used by FreeBSD,
+ or where to mount a non-FreeBSD partition (such as DOS).
+
+ o Next, the `Distributions' menu allows you to specify which
+ parts of FreeBSD you wish to load. A good choice is
+ "User" for a small system or "Developer" for someone
+ wanting a bit more out of FreeBSD. If none of the existing
+ collections sound applicable, select Custom.
+
+ o Next, the `Media' menu allows you to specify what kind of
+ media you wish to install from. If a desired media choice is
+ found and configured automatically then this menu will simply
+ return, otherwise you'll be asked for additional details on
+ the media device type.
+
+ o Finally, the Commit command will actually perform all the
+ actions at once (nothing has been written to your disk
+ so far, nor will it until you give the final confirmation).
+ All new or changed partition information will be written
+ out, file systems will be created and/or non-destructively
+ labelled (depending on how you set their newfs flags in the
+ Label editor) and all selected distributions will be
+ extracted.
+
+ o The Configure menu choice allows you to furthur configure your
+ FreeBSD installation by giving you menu-driven access to
+ various system defaults. Some items, like networking, may
+ be especially important if you did a CDROM/Tape/Floppy
+ installation and have not yet configured your network
+ interfaces (assuming you have some). Properly configuring
+ your network here will allow FreeBSD to come up on the network
+ when you first reboot from the hard disk.
+
+ o Exit returns you to the top menu.
+
+
+ At this point, you're generally done with the sysinstall utility and
+can select the final `Quit'. If you're running it as an installer
+(e.g., before the system is all the way up) then the system will now
+reboot. If you selected the boot manager option, you will see a small
+boot menu with an `F?' prompt. Press the function key for BSD (it
+will be shown) and you should boot up into FreeBSD off the hard disk.
+
+ If this fails to happen for some reason, see the Q & A section
+of the Hardware Guide for possible clues!
+
+ Jordan
+
+---- End of Installation Guide ---
diff --git a/release/sysinstall/help/it_IT.ISO8859-1/README b/release/sysinstall/help/it_IT.ISO8859-1/README
new file mode 100644
index 0000000..cd6f64b
--- /dev/null
+++ b/release/sysinstall/help/it_IT.ISO8859-1/README
@@ -0,0 +1,107 @@
+ -----------------------------------------
+ FreeBSD 2.0.5 --- RELEASE Version , ,
+ ----------------------------------------- /( )`
+ \ \___ / |
+Benvenuti alla release 2.0.5 di FreeBSD! 2.0.5 e` /- _ `-/ '
+una release completa di FreeBSD che riempie il lungo (/\/ \ \ /\
+intervallo tra la 2.0R (introdotta a Nov.94) e la / / | ` \
+2.1R (che uscira` a fine luglio '95). FreeBSD 2.0.5 O O ) / |
+contiene molti importanti miglioramenti rispetto `-^--'`< '
+alla versione 2.0R, non ultimo una stabilita` molto (_.) _ ) /
+maggiore, decine di nuove opzioni e un programma `.___/` /
+di installazione molto migliorato. `-----' /
+Maggiori dettagli su cosa c'e' di <----. __ / __ \
+nuovo in FreeBSD 2.0.5 sono nelle <----|====O)))==) \) /====
+release notes. <----' `--' `.__,' \
+ | |
+ \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+
+Cos'e` FreeBSD ? E` un sistema operativo basato su 4.4 BSD Lite
+per PC basati su hardware Intel, AMD, Cyrix o NexGen "x86". Supporta
+moltissime periferiche e configurazioni hardware e puo` essere
+usato per applicazioni che vanno dallo sviluppo di software alla
+fornitura di servizi Internet. Il nodo piu` gettonato della Internet,
+ftp.cdrom.com, e` una macchina FreeBSD!
+
+Questa versione di FreeBSD contiene tutto quello che serve per far
+funzionare il sistema, e inoltre i sorgenti completi del sistema
+e di ogni applicazione. Installando la distribuzione dei sorgenti
+sarete in grado di ricompilare l'intero sistema operativo da zero
+con un solo comando: questa e` una caratteristica ideale per
+studenti, ricercatori o altri interessati a vedere come funziona
+il tutto.
+
+E` anche disponibile (la "ports collection") un gran numero di
+pacchetti software forniti da terze parti e portati su FreeBSD,
+per semplificarvi il compito di cercare e installare tutte le
+utilities tradizionali di Unix su FreeBSD. Ci sono oltre 270
+applicazioni, che comprendono editor, linguaggi di programmazione,
+applicazioni grafiche, e rendono FreeBSD un ambiente operativo
+potente e completo che rivaleggia, per potenza e utilita`, quello
+di molte workstation di grosse dimensioni.
+
+Maggiori informazioni e documentazione sul sistema si possono
+trovare sul "4.4BSD Document Set", della O'Reilly Associates e
+USENIX Association, ISBN 1-56592-082-1. Non abbiamo nessuna
+connessione con la O'Reilly, siamo solo acquirenti soddisfatti!
+
+Si consiglia la lettura della HARDWARE GUIDE *prima* di procedere
+con l'installazione. La configurazione dell'hardware di un PC per
+applicazioni che non siano DOS/Windows (queste di fatto sfruttano
+ben poco l'hardware) e` piu` difficile di quanto sembri, e se
+pensate di conoscere i PC e` semplicemente perche' non li avete
+usati abbastanza a lungo! :) Questa guida vi fornira` qualche
+suggerimento su come configurare il vostro hardware e a quali
+sintomi fare attenzione in caso di problemi. La guida e` disponibile
+nel menu "Documentazione" del disco di boot di FreeBSD.
+
+ATTENZIONE: FreeBSD fa il possibile per salvaguardarvi da perdite
+accidentali di dati, ma l'imprevisto e` sempre in agguato, ed e`
+sempre possibile che IL VOSTRO DISCO POSSA ESSERE COMPLETAMENTE
+CANCELLATO durante l'installazione. Quindi, per vostra sicurezza,
+non procedete con l'installazione se non avete prima fatto una
+copia di informazioni importanti che si trovano sullo stesso! Uomo
+avvisato, mezzo salvato!
+
+Commenti e osservazioni tecniche su questa release possono essere
+inviate (in inglese!) a
+
+ hackers@FreeBSD.org
+
+Segnalazioni di bachi (bug) possono essere inviate col comando
+`send-pr' (se siete riusciti a installare il sistema), o altrimenti
+per email a:
+
+ bugs@FreeBSD.org
+
+Per favore indicate esattamente a QUALE VERSIONE di FreeBSD si
+riferisce il problema a cui fate riferimento.
+
+Domande di tipo generale si possono inviare a:
+
+ questions@FreeBSD.org
+
+Pazientate se le vostre domande non ricevono risposta immediata -
+questo e` un periodo di grande impegno per noi, e il tempo dei
+nostri volontari e` spesso tirato al limite! Le indicazioni di bug
+inviate col comando send-pr sono registrate e gestite dal nostro
+database per la gestione dei bug, e sarete quindi informati di
+eventuali cambiamenti nel loro stato.
+
+Il nostro sito WEB, http://www.freebsd.org, e` una buona sorgente
+di informazioni aggiornate e fornisce un buon numero di informazioni
+avanzate. Su FreeBSD potete usare la versione per BSDI di Netscape
+per navigare su World Wide Web.
+
+Potete anche cercare in /usr/share/FAQ e /usr/share/doc per ulteriori
+informazioni sul sistema.
+
+Grazie per essere arrivati fino a questo punto. Speriamo che questa
+versione di FreeBSD vi soddisfi!
+
+ Jordan Hubbard,
+ per il "FreeBSD Project"
diff --git a/release/sysinstall/help/it_IT.ISO8859-1/configure.hlp b/release/sysinstall/help/it_IT.ISO8859-1/configure.hlp
new file mode 100644
index 0000000..d144cf1
--- /dev/null
+++ b/release/sysinstall/help/it_IT.ISO8859-1/configure.hlp
@@ -0,0 +1,16 @@
+Questo menu vi permette di scegliere la configurazione iniziale
+del sistema dopo l'installazione. Come minimo, andrebbero definite
+la password del system manager e il fuso orario locale.
+
+Per applicazioni addizionali quali bash, emacs, pascal ecc. fate
+riferimento alla voce "Packages" in questo menu. Si noti che questa
+voce e` utile solo se avete a disposizione il CDROM o la collezione
+dei sorgenti delle applicazioni da qualche parte nel file system.
+Il trasferimento automatico, via FTP, dei sorgenti non e` ancora
+supportato.
+
+Se volete invocare nuovamente il software di installazione delle
+applicazioni dopo aver finito l'installazione, dovete usare il
+comando ``pkg_manage''. Per scegliere il fuso orario, battere
+``tzsetup''. Per ulteriori informazioni sulla configurazione generale
+del sistema, guardare il file ``/etc/sysconfig''.
diff --git a/release/sysinstall/help/it_IT.ISO8859-1/language.hlp b/release/sysinstall/help/it_IT.ISO8859-1/language.hlp
new file mode 100644
index 0000000..2bc2a0e
--- /dev/null
+++ b/release/sysinstall/help/it_IT.ISO8859-1/language.hlp
@@ -0,0 +1,15 @@
+
+Usate questo menu per scegliere il vostro linguaggio preferito. Al
+momento, questa selezione influenza solo il linguaggio nel quale
+sono mostrati i files di help.
+
+In future release, questa selezione cambiera` anche il layout della
+tastiera, la tabella dei caratteri, le funzioni di supporto ai
+linguaggi nazionali, e altre funzioni I18N che fanno parte dei vari
+standard.
+
+Fino a quando tutte queste funzionalita` non saranno attive, e`
+probabilmente piu` semplice editare a mano il file /etc/sysconfig
+una volta che il sistema e` installato completamente. Nel file ci
+sono diversi commenti che spiegano cosa dovrebbe essere cambiato,
+e anche alcuni esempi di settaggi per lingue diverse dall'inglese.
diff --git a/release/sysinstall/help/it_IT.ISO8859-1/usage.hlp b/release/sysinstall/help/it_IT.ISO8859-1/usage.hlp
new file mode 100644
index 0000000..bc4fd38
--- /dev/null
+++ b/release/sysinstall/help/it_IT.ISO8859-1/usage.hlp
@@ -0,0 +1,56 @@
+COME USARE QUESTO SISTEMA
+=========================
+
+TASTO AZIONE
+----- ------
+FRECCIA IN ALTO voce precedente (o linea in alto, in un'area di testo)
+FRECCIA IN BASSO voce successiva (o linea in basso, in un'area di testo)
+TAB voce o gruppo successivo
+FRECCIA A DESTRA voce o gruppo successivo (come TAB)
+SHIFT-TAB voce o gruppo precedente
+FRECCIA A SINISTRA voce o gruppo precedente (come SHIFT-TAB)
+RETURN selezione voce corrente
+PAGINA SU nelle aree di testo, va alla pagina precedente
+PAGINA GIU nelle aree di testo, va alla pagina successiva
+SPAZIO cambia stato alla voce corrente (menu "radio")
+F1 aiuto (nelle schermate che lo prevedono).
+
+I simboli "^(-)" or "v(+)" ai lati del menu indicano che ci sono
+altre voci oltre a quella corrente che non sono visualizzate per
+carenza di spazio sullo schermo. Le frecce in alto/basso provocano
+lo scroll del menu. Quando uno di questi simboli scompare, si e`
+raggiunto l'inizio o la fine del menu.
+
+Nei campi di tipo testo, la percentuale rimanente del testo e`
+mostrata nell'angolo in masso a destra. 100% significa che si e`
+posizionati alla fine del campo.
+
+Selezionando OK in un menu si conferma l'azione che esso controlla.
+Selezionando Cancel si cancella l'operazione e di solito si ritorna
+al menu precedente.
+
+
+FUNZIONI SPECIALI
+=================
+
+E` possibile selezionare una voce di un menu anche battendo il
+primo carattere del suo nome, se unico. Questi caratteri "acceleratori"
+saranno evidenziati nel nome del menu.
+
+Il driver della console contiene anche un buffer che permette di
+rivedere cose che sono scomparse dallo schermo a causa dello scroll.
+Per usare questa funzione (scroll-back), premere il tasto
+"Scroll Lock" sulla tastiera e usare i tasti "Pagina Su"/"Pagina Giu" per
+muoversi attraverso il testo salvato. Per tornare al funzionamento
+normale, premere nuovamente il tasto "Scroll Lock". Questa funzione
+e` utile soprattutto all'interno di sotto-shell o altre funzioni
+speciali che non usano i menu.
+
+Quando il sistema e` installato e completamente funzionante in
+modo multiutente, e` possibile usare le "console virtuali" per
+avere diverse sessioni contemporanee. I tasti ALT-F<n> possono
+essere usati per commutare tra le finestre disponibili, dove F<n>
+e` il tasto funzione corrispondente allo schermo desiderato. La
+configurazione di default prevede 3 console abilitate, ma se ne
+possono creare altre -- fino a 12 -- modificando il file /etc/ttys
+quando il sistema e` in modo multiutente.
diff --git a/release/sysinstall/help/it_IT.ISO_8859-1/README b/release/sysinstall/help/it_IT.ISO_8859-1/README
new file mode 100644
index 0000000..cd6f64b
--- /dev/null
+++ b/release/sysinstall/help/it_IT.ISO_8859-1/README
@@ -0,0 +1,107 @@
+ -----------------------------------------
+ FreeBSD 2.0.5 --- RELEASE Version , ,
+ ----------------------------------------- /( )`
+ \ \___ / |
+Benvenuti alla release 2.0.5 di FreeBSD! 2.0.5 e` /- _ `-/ '
+una release completa di FreeBSD che riempie il lungo (/\/ \ \ /\
+intervallo tra la 2.0R (introdotta a Nov.94) e la / / | ` \
+2.1R (che uscira` a fine luglio '95). FreeBSD 2.0.5 O O ) / |
+contiene molti importanti miglioramenti rispetto `-^--'`< '
+alla versione 2.0R, non ultimo una stabilita` molto (_.) _ ) /
+maggiore, decine di nuove opzioni e un programma `.___/` /
+di installazione molto migliorato. `-----' /
+Maggiori dettagli su cosa c'e' di <----. __ / __ \
+nuovo in FreeBSD 2.0.5 sono nelle <----|====O)))==) \) /====
+release notes. <----' `--' `.__,' \
+ | |
+ \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+
+Cos'e` FreeBSD ? E` un sistema operativo basato su 4.4 BSD Lite
+per PC basati su hardware Intel, AMD, Cyrix o NexGen "x86". Supporta
+moltissime periferiche e configurazioni hardware e puo` essere
+usato per applicazioni che vanno dallo sviluppo di software alla
+fornitura di servizi Internet. Il nodo piu` gettonato della Internet,
+ftp.cdrom.com, e` una macchina FreeBSD!
+
+Questa versione di FreeBSD contiene tutto quello che serve per far
+funzionare il sistema, e inoltre i sorgenti completi del sistema
+e di ogni applicazione. Installando la distribuzione dei sorgenti
+sarete in grado di ricompilare l'intero sistema operativo da zero
+con un solo comando: questa e` una caratteristica ideale per
+studenti, ricercatori o altri interessati a vedere come funziona
+il tutto.
+
+E` anche disponibile (la "ports collection") un gran numero di
+pacchetti software forniti da terze parti e portati su FreeBSD,
+per semplificarvi il compito di cercare e installare tutte le
+utilities tradizionali di Unix su FreeBSD. Ci sono oltre 270
+applicazioni, che comprendono editor, linguaggi di programmazione,
+applicazioni grafiche, e rendono FreeBSD un ambiente operativo
+potente e completo che rivaleggia, per potenza e utilita`, quello
+di molte workstation di grosse dimensioni.
+
+Maggiori informazioni e documentazione sul sistema si possono
+trovare sul "4.4BSD Document Set", della O'Reilly Associates e
+USENIX Association, ISBN 1-56592-082-1. Non abbiamo nessuna
+connessione con la O'Reilly, siamo solo acquirenti soddisfatti!
+
+Si consiglia la lettura della HARDWARE GUIDE *prima* di procedere
+con l'installazione. La configurazione dell'hardware di un PC per
+applicazioni che non siano DOS/Windows (queste di fatto sfruttano
+ben poco l'hardware) e` piu` difficile di quanto sembri, e se
+pensate di conoscere i PC e` semplicemente perche' non li avete
+usati abbastanza a lungo! :) Questa guida vi fornira` qualche
+suggerimento su come configurare il vostro hardware e a quali
+sintomi fare attenzione in caso di problemi. La guida e` disponibile
+nel menu "Documentazione" del disco di boot di FreeBSD.
+
+ATTENZIONE: FreeBSD fa il possibile per salvaguardarvi da perdite
+accidentali di dati, ma l'imprevisto e` sempre in agguato, ed e`
+sempre possibile che IL VOSTRO DISCO POSSA ESSERE COMPLETAMENTE
+CANCELLATO durante l'installazione. Quindi, per vostra sicurezza,
+non procedete con l'installazione se non avete prima fatto una
+copia di informazioni importanti che si trovano sullo stesso! Uomo
+avvisato, mezzo salvato!
+
+Commenti e osservazioni tecniche su questa release possono essere
+inviate (in inglese!) a
+
+ hackers@FreeBSD.org
+
+Segnalazioni di bachi (bug) possono essere inviate col comando
+`send-pr' (se siete riusciti a installare il sistema), o altrimenti
+per email a:
+
+ bugs@FreeBSD.org
+
+Per favore indicate esattamente a QUALE VERSIONE di FreeBSD si
+riferisce il problema a cui fate riferimento.
+
+Domande di tipo generale si possono inviare a:
+
+ questions@FreeBSD.org
+
+Pazientate se le vostre domande non ricevono risposta immediata -
+questo e` un periodo di grande impegno per noi, e il tempo dei
+nostri volontari e` spesso tirato al limite! Le indicazioni di bug
+inviate col comando send-pr sono registrate e gestite dal nostro
+database per la gestione dei bug, e sarete quindi informati di
+eventuali cambiamenti nel loro stato.
+
+Il nostro sito WEB, http://www.freebsd.org, e` una buona sorgente
+di informazioni aggiornate e fornisce un buon numero di informazioni
+avanzate. Su FreeBSD potete usare la versione per BSDI di Netscape
+per navigare su World Wide Web.
+
+Potete anche cercare in /usr/share/FAQ e /usr/share/doc per ulteriori
+informazioni sul sistema.
+
+Grazie per essere arrivati fino a questo punto. Speriamo che questa
+versione di FreeBSD vi soddisfi!
+
+ Jordan Hubbard,
+ per il "FreeBSD Project"
diff --git a/release/sysinstall/help/it_IT.ISO_8859-1/configure.hlp b/release/sysinstall/help/it_IT.ISO_8859-1/configure.hlp
new file mode 100644
index 0000000..d144cf1
--- /dev/null
+++ b/release/sysinstall/help/it_IT.ISO_8859-1/configure.hlp
@@ -0,0 +1,16 @@
+Questo menu vi permette di scegliere la configurazione iniziale
+del sistema dopo l'installazione. Come minimo, andrebbero definite
+la password del system manager e il fuso orario locale.
+
+Per applicazioni addizionali quali bash, emacs, pascal ecc. fate
+riferimento alla voce "Packages" in questo menu. Si noti che questa
+voce e` utile solo se avete a disposizione il CDROM o la collezione
+dei sorgenti delle applicazioni da qualche parte nel file system.
+Il trasferimento automatico, via FTP, dei sorgenti non e` ancora
+supportato.
+
+Se volete invocare nuovamente il software di installazione delle
+applicazioni dopo aver finito l'installazione, dovete usare il
+comando ``pkg_manage''. Per scegliere il fuso orario, battere
+``tzsetup''. Per ulteriori informazioni sulla configurazione generale
+del sistema, guardare il file ``/etc/sysconfig''.
diff --git a/release/sysinstall/help/it_IT.ISO_8859-1/language.hlp b/release/sysinstall/help/it_IT.ISO_8859-1/language.hlp
new file mode 100644
index 0000000..2bc2a0e
--- /dev/null
+++ b/release/sysinstall/help/it_IT.ISO_8859-1/language.hlp
@@ -0,0 +1,15 @@
+
+Usate questo menu per scegliere il vostro linguaggio preferito. Al
+momento, questa selezione influenza solo il linguaggio nel quale
+sono mostrati i files di help.
+
+In future release, questa selezione cambiera` anche il layout della
+tastiera, la tabella dei caratteri, le funzioni di supporto ai
+linguaggi nazionali, e altre funzioni I18N che fanno parte dei vari
+standard.
+
+Fino a quando tutte queste funzionalita` non saranno attive, e`
+probabilmente piu` semplice editare a mano il file /etc/sysconfig
+una volta che il sistema e` installato completamente. Nel file ci
+sono diversi commenti che spiegano cosa dovrebbe essere cambiato,
+e anche alcuni esempi di settaggi per lingue diverse dall'inglese.
diff --git a/release/sysinstall/help/it_IT.ISO_8859-1/usage.hlp b/release/sysinstall/help/it_IT.ISO_8859-1/usage.hlp
new file mode 100644
index 0000000..bc4fd38
--- /dev/null
+++ b/release/sysinstall/help/it_IT.ISO_8859-1/usage.hlp
@@ -0,0 +1,56 @@
+COME USARE QUESTO SISTEMA
+=========================
+
+TASTO AZIONE
+----- ------
+FRECCIA IN ALTO voce precedente (o linea in alto, in un'area di testo)
+FRECCIA IN BASSO voce successiva (o linea in basso, in un'area di testo)
+TAB voce o gruppo successivo
+FRECCIA A DESTRA voce o gruppo successivo (come TAB)
+SHIFT-TAB voce o gruppo precedente
+FRECCIA A SINISTRA voce o gruppo precedente (come SHIFT-TAB)
+RETURN selezione voce corrente
+PAGINA SU nelle aree di testo, va alla pagina precedente
+PAGINA GIU nelle aree di testo, va alla pagina successiva
+SPAZIO cambia stato alla voce corrente (menu "radio")
+F1 aiuto (nelle schermate che lo prevedono).
+
+I simboli "^(-)" or "v(+)" ai lati del menu indicano che ci sono
+altre voci oltre a quella corrente che non sono visualizzate per
+carenza di spazio sullo schermo. Le frecce in alto/basso provocano
+lo scroll del menu. Quando uno di questi simboli scompare, si e`
+raggiunto l'inizio o la fine del menu.
+
+Nei campi di tipo testo, la percentuale rimanente del testo e`
+mostrata nell'angolo in masso a destra. 100% significa che si e`
+posizionati alla fine del campo.
+
+Selezionando OK in un menu si conferma l'azione che esso controlla.
+Selezionando Cancel si cancella l'operazione e di solito si ritorna
+al menu precedente.
+
+
+FUNZIONI SPECIALI
+=================
+
+E` possibile selezionare una voce di un menu anche battendo il
+primo carattere del suo nome, se unico. Questi caratteri "acceleratori"
+saranno evidenziati nel nome del menu.
+
+Il driver della console contiene anche un buffer che permette di
+rivedere cose che sono scomparse dallo schermo a causa dello scroll.
+Per usare questa funzione (scroll-back), premere il tasto
+"Scroll Lock" sulla tastiera e usare i tasti "Pagina Su"/"Pagina Giu" per
+muoversi attraverso il testo salvato. Per tornare al funzionamento
+normale, premere nuovamente il tasto "Scroll Lock". Questa funzione
+e` utile soprattutto all'interno di sotto-shell o altre funzioni
+speciali che non usano i menu.
+
+Quando il sistema e` installato e completamente funzionante in
+modo multiutente, e` possibile usare le "console virtuali" per
+avere diverse sessioni contemporanee. I tasti ALT-F<n> possono
+essere usati per commutare tra le finestre disponibili, dove F<n>
+e` il tasto funzione corrispondente allo schermo desiderato. La
+configurazione di default prevede 3 console abilitate, ma se ne
+possono creare altre -- fino a 12 -- modificando il file /etc/ttys
+quando il sistema e` in modo multiutente.
diff --git a/release/sysinstall/help/ja_JP.JIS/README b/release/sysinstall/help/ja_JP.JIS/README
new file mode 100644
index 0000000..fd43dd3
--- /dev/null
+++ b/release/sysinstall/help/ja_JP.JIS/README
@@ -0,0 +1,97 @@
+ -----------------------------------------
+ FreeBSD 2.0.5 --- RELEASE Version , ,
+ ----------------------------------------- /( )`
+ \ \___ / |
+$B$h$&$3$=(B FreeBSD $B$N(B 2.0.5 $B%j%j!<%9$X(B! 2.0R ($B$3$l$O(B /- _ `-/ '
+94 $BG/(B 11 $B7n$K%j%j!<%9$5$l$^$7$?(B) $B$H!"(B95 $BG/(B 7 $B7n=*$j(B (/\/ \ \ /\
+$B$4$m%j%j!<%9$5$l$kM=Dj$N(B 2.1R $B$H$N4V$rKd$a$k$?$a$K(B / / | ` \
+$BI,MW$H$5$l$?$?$a!"(B2.0.5 $B$O;CDjE*$K%j%j!<%9$5$l$^$7(B O O ) / |
+$B$?!#(BFreeBSD 2.0.5 $B$O(B 2.0R $B$+$iB?$/$N=EMW$J2~NI$,9T(B `-^--'`< '
+$B$o$l$^$7$?!#$H$F$b0BDj$7$F$$$k(B ($B$+$J$j$NM>M5$r;}$C(B (_.) _ ) /
+$B$F(B) $B$@$1$G$O$J$/!"$?$/$5$s$N?7$7$$FCD'$d$H$F$b3HD%(B `.___/` /
+$B$5$l$?%$%s%9%H!<%k%W%m%0%i%`$b$"$j$^$9!#(B `-----' /
+FreeBSD 2.0.5 $B$G?7$7$/$J$C$?ItJ,$K$D$$$F(B <----. __ / __ \
+$B$h$j>\$7$/$O!"%j%j!<%9%N!<%D$rFI$s$G$/$@(B <----|====O)))==) \) /====
+$B$5$$(B! <----' `--' `.__,' \
+ | |
+ \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+
+FreeBSD $B$C$F2?(B? FreeBSD $B$O(B 4.4 BSD Lite $B$r85$K$7!"(BIntel$B!"(BAMD$B!"(BCyrix$B!"(B
+NexGen $B$J$I$N!V(Bx86$B!W%Y!<%9$N(B PC $B$GF0:n$9$k%*%Z%l!<%F%#%s%0%7%9%F%`$G$9!#(B
+$BMM!9$J(B PC $BMQ<~JU5!4o$d9=@.$GF0:n$7!"%=%U%H%&%'%"3+H/$+$i(B Internet $B%5!<(B
+$B%S%9Ds6!$^$G$"$i$f$k$3$H$K;HMQ$G$-$^$9!#(BInternet $B>e$N>&6HE*%5%$%H$G$"(B
+$B$k(B ftp.cdrom.com $B$O(B FreeBSD $B%^%7%s$G$9(B!
+
+FreeBSD $B$N$3$N%j%j!<%9$G$O!"$3$&$$$C$?%7%9%F%`$r<B9T$9$k$?$a$KI,MW$JJ*(B
+$BA4$F$,!"40A4$J%=!<%9%3!<%IIU$G4^$^$l$F$$$^$9!#%=!<%9%G%#%9%H%j%S%e!<%7%g(B
+$B%s$r%$%s%9%H!<%k$9$l$P!"0l$D$N%3%^%s%I$G!"J8;zDL$jA4$F$N%7%9%F%`$r%3%s(B
+$B%Q%$%k$7D>$9$3$H$,$G$-$^$9!#$3$l$O!"3X@8!"8&5f<T!"$b$7$/$O$I$&$d$C$FF0(B
+$B:n$7$F$$$k$+$rCN$j$?$$?M$?$A$K$H$C$F$OM}A[E*$G$9!#(B
+
+$BEAE}E*$J(B UNIX $B%f!<%F%#%j%F%#!<$r<j$KF~$l!"(BFreeBSD $B$K%$%s%9%H!<%k$7$d$9(B
+$B$$$h$&$K!"%5!<%I%Q!<%F%#!<$N0\?"$7$?%=%U%H%&%(%"$,$?$/$5$s=8$a$F$"$j$^(B
+$B$9(B ("ports collection")$B!#(BEMACS $B%(%G%#%?$+$i(B lisp $B=hM}7O$^$G$NA4$F$r4^(B
+$B$`(B 270 $B0J>e$N(B ports $B$K$h$C$F!"(BFreeBSD $B$O0lHLE*$J<BMQ@-$dG=NO$G$OB??t$N(B
+$B%o!<%/%9%F!<%7%g%s$KI$E($9$k!"6/NO$GJq3gE*$J%*%Z%l!<%F%#%s%0%7%9%F%`$H(B
+$B$J$C$F$$$^$9!#(B
+
+
+$B$3$N%7%9%F%`$N$h$jB?$/$NJ8=q$K$D$$$F$O!"(BO'Reilly Associates and the
+USENIX Associations $B$N(B 4.4BSD Document Set (ISBM 1-56592-082-1) $B$r9XF~(B
+$B$7$F$/$@$5$$!#;dC#$O(B O'Reilly $B$H$O2?$N4X78$b$"$j$^$;$s!#;dC#$O$?$@8\5R(B
+$B$H$7$FK~B-$7$F$$$k$@$1$G$9!#(B
+
+$B%$%s%9%H!<%k$r9T$&A0$K!"(BHARDWARE GUIDE $B$rFI$_$?$/$J$k$+$b$7$l$^$;$s!#(B
+PC $B$r(B DOS/Windows ($B$3$l$i$O$"$^$j%O!<%I%&%'%"$rMW5a$7$^$;$s(B) $B0J30$N$?(B
+$B$a$K@_Dj$9$k$N$O$o$j$HFq$7$$$3$H$G$9!#$b$7!"(BPC $B$N$3$H$OM}2r$7$F$$$k$H(B
+$B;W$C$F$$$k$H$7$?$i!"$^$@==J,D9$/;H$C$F$J$$$C$F$3$H$G$9(B! :) $B$3$N%,%$%I(B
+$B$K$O!"$I$s$J$U$&$K%O!<%I%&%'%"$r@_Dj$9$l$P$$$$$N$+!"%H%i%V%k$N>l9g$O$I(B
+$B$s$JC{8u$r4Q;!$9$l$P$$$$$N$+$K$D$$$F$NHk7m$,$"$j$^$9!#$3$N%,%$%I$O!"(B
+FreeBSD $B%V!<%H%U%m%C%T!<$N(B Documentation $B%a%K%e!<$K$"$j$^$9!#(B
+
+$BH]G'@<L@J8(B: FreeBSD $B$O;v8N$G%G!<%?$,$J$/$J$k$3$H$N$J$$$h$&!"%Y%9%H$r?T(B
+$B$/$7$F$$$^$9$,!"%$%s%9%H!<%kCf$K%G%#%9%/A4BN$r>C$7$F$7$^$&2DG=@-$O0MA3(B
+$B$H$7$FB8:_$7$^$9(B! $B:G=i$K=EMW$J%G!<%?$N%P%C%/%"%C%W$r$-$A$s$H$H$C$F$J$$(B
+$B$J$i!":G8e$N(B FreeBSD $B%$%s%9%H!<%k%a%K%e!<$O<B9T$7$J$$$G$/$@$5$$(B! $B$A$c(B
+$B$s$H8@$$$^$7$?$h(B!
+
+$B$3$N%j%j!<%9$K4X$9$k5;=QE*$J%3%a%s%H$O0J2<$KAw$C$F$/$@$5$$(B:
+
+ hackers@FreeBSD.org
+
+
+$B%P%0%l%]!<%H$O!"%7%9%F%`$r%$%s%9%H!<%k$G$-$?$J$i!V(Bsend-pr$B!W%3%^%s%I$r(B
+$B;H$C$FAw$C$F$/$@$5$$!#$=$&$G$J$$$J$i!"0J2<$KAw$C$F$/$@$5$$(B:
+
+ bugs@FreeBSD.org
+
+$B%P%0%l%]!<%H$G$O!"$I$N%P!<%8%g%s$N(B FreeBSD $B$r;H$C$F$$$k$N$+$rL@5-$9$k(B
+$B$h$&5$$r$D$1$F$/$@$5$$!#(B
+
+
+$B0lHLE*$J<ALd$O0J2<$KAw$C$F$/$@$5$$(B:
+
+ questions@FreeBSD.org
+
+$B<ALd$KBP$9$k2sEz$,$9$0$KF@$i$l$J$/$F$b$,$^$s$7$F$/$@$5$$(B $B!=(B $B8=:_$O;dC#(B
+$B$K$H$C$F$H$F$bK;$7$$;~$G$9$7!"%\%i%s%F%#%"C#$b8B3&$^$G$,$s$P$C$F$$$^$9(B!
+send-pr $B%3%^%s%I$GDs=P$5$l$?%P%0%l%]!<%H$O%P%0%G!<%?%Y!<%9$K5-O?$5$l!"(B
+$BDI@W$5$l$^$9!#$=$7$F!"$=$N%P%0(B ($B$^$?$O;EMM$K4X$9$kMW5a(B) $B$,B8:_$9$k4V$O(B
+$B$"$i$f$k>uBV$NJQ99$,$"$J$?$KDLCN$5$l$^$9!#(B
+
+$B;dC#$N(B WEB $B%5%$%H$G$"$k(B http://www.freebsd.org $B$b!"99?7$5$l$?>pJs$N$h(B
+$B$$>pJs85$G$9$7!"$?$/$5$s$N9bEY$JJ8=q$,MQ0U$5$l$F$$$^$9!#(BBSDI $BMQ$N(B
+Netscape $B$r;HMQ$9$k$H!"(BWorld Wide Web $B$rD>@\(B FreeBSD $B$+$i1\Mw$G$-$^$9!#(B
+
+/usr/share/FAQ $B$d(B /usr/share/doc $B$K$O!"$5$i$K>pJs$,$"$j$^$9!#(B
+
+
+$BFI$s$G$/$@$5$C$F$"$j$,$H$&!#$I$&$>$3$N%j%j!<%9$N(B FreeBSD $B$r$*$?$N$7$_(B
+$B$/$@$5$$(B!
+
+ Jordan Hubbard,
+ for The FreeBSD Project
diff --git a/release/sysinstall/help/ja_JP.JIS/configure.hlp b/release/sysinstall/help/ja_JP.JIS/configure.hlp
new file mode 100644
index 0000000..3860fb9
--- /dev/null
+++ b/release/sysinstall/help/ja_JP.JIS/configure.hlp
@@ -0,0 +1,13 @@
+$B$3$N%a%K%e!<$G$O!"%$%s%9%H!<%k8e$K%7%9%F%`$N@_Dj$r$7$^$9!#>/$J$/$H$b!"(B
+$B%7%9%F%`4IM}<T$H%7%9%F%`$N%?%$%`%>!<%s$N@_Dj$O$7$F$/$@$5$$!#(B
+
+bash$B!"(Bemacs$B!"(Bpascal $B$J$I$N!"$5$i$J$kL%NOE*$JJ*$K$D$$$F$O!"$3$N%a%K%e!<(B
+$B$N(B Package $B$N9`L\$r8+$F$/$@$5$$!#8=:_$N$H$3$m!"(BCD-ROM $B$r;}$C$F$$$k$+!"(B
+$B%U%!%$%k%7%9%F%`>e$K%Q%C%1!<%8%3%l%/%7%g%s$r;}$C$F$$$k>l9g$N$_!"K\Ev$K(B
+$BJXMx$G$"$k$H$$$&$3$H$r3P$($F$*$$$F$/$@$5$$!#%Q%C%1!<%8$r<+F0E*$K(B FTP
+$B$GE>Aw$7$F$/$k5!G=$O$^$@$"$j$^$;$s!#(B
+
+$B%7%9%F%`$N%$%s%9%H!<%k$,=*$C$?8e$G!"%Q%C%1!<%8$r%$%s%9%H!<%k$9$k%D!<%k(B
+$B$rF0$+$9$K$O!"!V(Bpkg_manage$B!W$H$$$&%3%^%s%I$r;HMQ$7$^$9!#%?%$%`%>!<%s$r(B
+$B;XDj$9$k$K$O!V(Btzsetup$B!W$HF~NO$7$F$/$@$5$$!#$3$l0J>e$N0lHLE*$J%7%9%F%`(B
+$B$N@_Dj$K4X$9$k>pJs$K$D$$$F$O!"!V(B/etc/sysconfig$B!W%U%!%$%k$r8+$F$/$@$5$$!#(B
diff --git a/release/sysinstall/help/ja_JP.JIS/language.hlp b/release/sysinstall/help/ja_JP.JIS/language.hlp
new file mode 100644
index 0000000..9871dbb
--- /dev/null
+++ b/release/sysinstall/help/ja_JP.JIS/language.hlp
@@ -0,0 +1,12 @@
+$B9%$_$N8@8l$rA*Br$9$k$K$O!"$3$N%a%K%e!<$r;HMQ$7$F$/$@$5$$!#8=:_$N$H$3$m!"(B
+$BMM!9$J%X%k%W$G;HMQ$5$l$k%G%U%)%k%H$N8@8l$r@_Dj$9$k$@$1$G$9!#(B
+
+$B>-Mh$N%j%j!<%9$G$O!"$3$N%a%K%e!<$K$h$C$F%-!<%\!<%I%l%$%"%&%H!"%9%/%j!<(B
+$B%s%^%C%W!"(BNLS $B$N@_Dj(B (sysinstall $B<+BN$bA4$F$N%a%K%e!<$rE,@Z$J8@8l$GI=(B
+$B<($9$k$N$K!"%a%C%;!<%8%+%?%m%0$r;HMQ$9$k$h$&$K$J$j$^$9(B)$B!"$=$7$FMM!9$J(B
+$BI8=`$KE,9g$5$;$k$?$a$N$=$NB>$N9q:]2=5!G=$rJQ99$7$^$9!#(B
+
+$B$3$l$i$N2~NI$,9T$o$l$k$^$G$O!"%7%9%F%`$,A4$F%$%s%9%H!<%k$5$l$?8e$G(B
+/etc/sysconfig $B$rJT=8$9$k$N$,4JC1$G$7$g$&!#$3$N%U%!%$%k$K$O!"JQ99$9$k(B
+$B$Y$-ItJ,$K$D$$$F$N$?$/$5$s$N%3%a%s%H$d!"1Q8l0J30$N8@8l$N@_Dj$K4X$9$k$$(B
+$B$/$D$+$NNc$,$"$j$^$9!#(B
diff --git a/release/sysinstall/help/ja_JP.JIS/usage.hlp b/release/sysinstall/help/ja_JP.JIS/usage.hlp
new file mode 100644
index 0000000..a3b6871
--- /dev/null
+++ b/release/sysinstall/help/ja_JP.JIS/usage.hlp
@@ -0,0 +1,50 @@
+$B$3$N%7%9%F%`$N;H$$J}(B
+====================
+
+$B%-!<(B $B%"%/%7%g%s(B
+---- ----------
+UP ARROW $BA0$N9`L\(B ($B%F%-%9%H%U%#!<%k%I$G$O>e(B) $B$K0\F0$7$^$9!#(B
+DOWN ARROW $B<!$N9`L\(B ($B%F%-%9%H%U%#!<%k%I$G$O2<(B) $B$K0\F0$7$^$9!#(B
+TAB $B<!$N9`L\$^$?$O%0%k!<%W$K0\F0$7$^$9!#(B
+RIGHT ARROW $B<!$N9`L\$^$?$O%0%k!<%W$K0\F0$7$^$9!#(B(TAB $B$HF1$8(B)
+SHIFT-TAB $BA0$N9`L\$^$?$O%0%k!<%W$K0\F0$7$^$9!#(B
+LEFT ARROW $BA0$N9`L\$^$?$O%0%k!<%W$K0\F0$7$^$9!#(B(SHIFT-TAB $B$HF1$8(B)
+RETURN $B9`L\$rA*Br$7$^$9!#(B
+PAGE UP $B%F%-%9%H%\%C%/%9$G!"A0$N%Z!<%8$KLa$j$^$9!#(B
+PAGE DOWN $B%F%-%9%H%\%C%/%9$G!"<!$N%Z!<%8$K?J$_$^$9!#(B
+SPACE $B!V%i%8%*%\%?%s!W$dJ#?t$NA*Br;h$,$"$k%a%K%e!<$G!"8=:_$N(B
+ $B9`L\$r%H%0%k$7$^$9!#(B
+F1 ($BB8:_$9$k2hLL$G$O(B) $B%X%k%W$rI=<($7$^$9!#(B
+
+$B%a%K%e!<$NC<$K!V(B^(-)$B!W$+!V(Bv(+)$B!W$H$$$&5-9f$,$"$k>l9g$O!"(B($B2hLL$N%9%Z!<(B
+$B%9$,IT==J,$J$?$a(B) $BI=<($7$-$l$J$$9`L\$,B8:_$7$^$9(B $B!#>e2<%+!<%=%k%-!<$r(B
+$B;HMQ$7$F%a%K%e!<$r%9%/%m!<%k$5$;$F$/$@$5$$!#$I$A$i$+$N5-9f$,>C$($?;~$O!"(B
+$B%a%K%e!<$N@hF,(B ($B$^$?$O:G8e(B) $B$G$9!#(B
+
+$B%F%-%9%H%U%#!<%k%I$G$O!"8=:_$N%F%-%9%H$N0LCV$,1&2<$K%Q!<%;%s%HI=<($5$l(B
+$B$^$9!#%U%#!<%k%I$N:G8e$G$O(B 100% $B$HI=<($5$l$^$9!#(B
+
+OK $B$rA*Br$9$k$H!"8=:_$NF0:n$r3NG'$9$k$3$H$K$J$j$^$9!#(BCancel $B$rA*Br$9$k(B
+$B$H!"8=:_$NA`:n$r%-%c%s%;%k$7!"0JA0$N%a%K%e!<$KLa$j$^$9!#(B
+
+
+$BFCJL$J5!G=(B:
+===========
+
+$B%a%K%e!<$N9`L\$rA*Br$9$k$N$K!":G=i$NJ8;z$rF~NO$9$k$3$H$b$G$-$^$9(B ($B0l0U(B
+$B$KDj$^$k>l9g(B)$B!#$3$N$h$&$J!V%"%/%;%i%l!<%?!WJ8;z$O%O%$%i%$%H$GI=<($5$l(B
+$B$^$9!#(B
+
+$B%3%s%=!<%k%I%i%$%P$O!"%9%/%m!<%k$7$F9T$C$?2hLL$r$b$&0lEYI=<($9$k$?$a$N(B
+$B%9%/%m!<%k%P%C%/%P%C%U%!$r;}$C$F$$$^$9!#%9%/%m!<%k%P%C%/$9$k$K$O!"(B
+$B!V(BScroll Lock$B!W%-!<$r2!$7$F$+$i%+!<%=%k%-!<$d!V(BPage Up$B!W!V(BPage Down$B!W(B
+$B%-!<$r;HMQ$7$^$9!#%9%/%m!<%k%P%C%/%b!<%I$+$iH4$1$k$K$O!":FEY!V(BScroll
+Lock$B!W%-!<$r2!$7$^$9!#$3$N5!G=$O%5%V%7%'%k$d$=$NB>$N!V%&%$%6!<%I%b!<%I!W(B
+$B$J$I!"%a%K%e!<$r;HMQ$7$J$$>l9g$KJXMx$G$9!#(B
+
+$B%7%9%F%`$N%$%s%9%H!<%k$,=*N;$7!"!V%^%k%A%f!<%6!<!W$GF0:n$7$F$$$k;~$O!"(B
+$BF1;~$K$$$/$D$+$N%;%C%7%g%s$r07$($k!V2>A[%3%s%=!<%k!W$r;HMQ$9$k$3$H$,$G(B
+$B$-$^$9!#%3%s%=!<%k$r@ZBX$($k$K$O!"(BALT-F<n> $B$r;HMQ$7$F$/$@$5$$!#!V(BF<n>$B!W(B
+$B$O8+$?$$2hLL$KBP1~$9$k%U%!%s%/%7%g%s%-!<$G$9!#I8=`$G$O(B 3 $B$D$N2>A[%3%s(B
+$B%=!<%k$,;HMQ$G$-$^$9$,!"%U%!%$%k(B /etc/ttys $B$rJT=8$9$k$3$H$G:GBg(B 12 $B8D(B
+$B$^$GA}$d$9$3$H$,$G$-$^$9!#(B
diff --git a/release/sysinstall/help/ja_JP.ROMAJI/README b/release/sysinstall/help/ja_JP.ROMAJI/README
new file mode 100644
index 0000000..53b4357
--- /dev/null
+++ b/release/sysinstall/help/ja_JP.ROMAJI/README
@@ -0,0 +1,105 @@
+ -----------------------------------------
+ FreeBSD 2.0.5 --- RELEASE Version , ,
+ ----------------------------------------- /( )`
+ \ \___ / |
+youkoso FreeBSD no 2.0.5 release he! 2.0R (koreha /- _ `-/ '
+94 nen 11 gatsu ni release saremashita) to, 95 nen (/\/ \ \ /\
+7 gatsu owari goro release sareru yotei no 2.1R to / / | ` \
+no aida wo umeru tameni hitsuyou to saretatame, O O ) / |
+2.0.5 ha zantei teki ni release saremashita. `-^--'`< '
+FreeBSD 2.0.5 ha 2.0R kara ooku no juuyou na (_.) _ ) /
+kairyou ga okonawaremashita. totemo antei shiteiru `.___/` /
+(kanari no yoyuu wo motte) dakedenaku, `-----' /
+takusan no atarashii tokuchou ya totemo <----. __ / __ \
+kakuchou sareta install program mo <----|====O)))==) \) /====
+arimasu. FreeBSD 2.0.5 de atarashiku <----' `--' `.__,' \
+natta bubun ni tsuite yori kuwashikuha, | |
+release notes wo yonde kudasai! \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+
+FreeBSD tte nani? FreeBSD ha 4.4 BSD Lite wo motoni shi, Intel, AMD,
+Cyrix, NexGen nadono "x86" base no PC de dousasuru operating system
+desu. samazama na PC you shuuhen kiki ya kousei de dousa si, software
+kaihatsu kara Internet service teikyou made arayurukotoni shiyou
+dekimasu. Internet jou no shougyou teki site de aru ftp.cdrom.com ha
+FreeBSD machine desu!
+
+FreeBSD no kono release deha, kouitta system wo jikkou suru tameni
+hitsuyouna mono subete ga, kanzen na source code tsuki de fukumarete
+imasu. source distribution wo install sureba, hitotsu no command de,
+moji doori subeteno system wo compile shinaosu kotoga dekimasu.
+koreha, gakusei, kenkyuusya, moshikuha douyatte dousa shiteirukawo
+shiritai hitotachini totteha risoutekidesu.
+
+dentou teki na UNIX utility wo teniire, FreeBSD ni install shiyasui
+youni, third party no ishoku shita software ga takusan atumete arimasu
+("ports collection"). EMACS editor kara lisp shorikei madeno subetewo
+fukumu 270 ijou no ports ni yotte, FreeBSD ha ippantekina jitsuyousei
+ya nouryokudeha, tasuu no workstation ni hitteki suru, kyouryoku de
+houkatsuteki na operating system to natte imasu.
+
+
+kono system no yori ookuno bunsyo ni tsuiteha, O'Reilly Associates and
+the USENIX Associations no 4.4BSD Document Set (ISBN 1-56592-082-1) wo
+kounyuu shitekudasai. watashitachi ha O'Reilly toha nan'no kankei mo
+arimasen. watashitachi ha tada kokyaku toshite manzoku shiteiru
+dakedesu.
+
+install wo okonau maeni, HARDWARE GUIDE wo yomitaku narukamo
+shiremasen. PC wo DOS/Windows (koreraha amari hardware wo youkyuu
+shimasen) igai no tameni settei surunoha warito muzukashii kotodesu.
+moshi, PC no kotoha rikai shiteiru to omotteiru toshitara, mada juubun
+nagaku tsukattenai tte kotodesu! :) kono guide niha, dn'na fuuni
+hardware wo settei surebaiinoka, trouble no baai ha don'na choukou wo
+kansatsu sureba iinoka ni tsuiteno hiketsuga arimasu. kono guide ha,
+FreeBSD boot floppy no Documentation menu ni arimasu.
+
+HININ SEIMEN BUN: FreeBSD ha jiko de data ga nakunaru kotono naiyou,
+best wo tsukushite imasuga, install chuu ni disk zentai wo
+keshiteshimau kanousei ha izentoshite sonzai shimasu! saisho ni
+juuyou na data no backup wo kichinto totte inainara, saigono FreeBSD
+install menu ha jikkou shinaide kudasai! chanto iimashita yo!
+
+kono release ni kansuru gijutsuteki na commento ha ika ni okutte
+kudasai:
+
+ hackers@FreeBSD.org
+
+
+bug report ha, system wo install dekitanara `send-pr' command wo
+tsukatte okutte kudasai. soude nai nara, ika ni okutte kudasai:
+
+ bugs@FreeBSD.org
+
+bug report deha, dono version no FreeBSD wo tsukatte irunokawo meiki
+suruyou ki wo tsukete kudasai.
+
+
+ippan teki na shitsumon ha ika ni okutte kudasai:
+
+ questions@FreeBSD.org
+
+shitsumon ni taisuru kaitou ga suguni erarenakutemo gaman shite
+kudasai - genzai ha watashi tachi ni tottemo isogashii toki desushi,
+volunteer tachi mo genkai made ganbatte imasu! send-pr command de
+teishutsu sareta bug report ha bug database ni kirokusare, tsuiseki
+saremasu. soshite, sono bug (mataha shiyou ni kansuru youkyuu) ga
+sonzai suru aidaha arayuru joutai no henkou ga anatani tsuuchi
+saremasu.
+
+watashi tachi no WEB site de aru http://www.freebsd.org mo, koushin
+sareta jouhou no yoi jouhougen desusi, takusan no koudo na bunsyo ga
+youi sarete imasu. BSDI you no Netscape wo shiyou suruto, World Wide
+Web wo chokusetsu FreeBSD kara etsuran dekimasu.
+
+/usr/share/FAQ ya /usr/share/doc niha, sarani jouhou ga arimasu.
+
+
+yonde kudasatte arigatou. douzo kono release no FreeBSD wo otanoshimi
+kudasai!
+
+ Jordan Hubbard,
+ for The FreeBSD Project
diff --git a/release/sysinstall/help/ja_JP.ROMAJI/configure.hlp b/release/sysinstall/help/ja_JP.ROMAJI/configure.hlp
new file mode 100644
index 0000000..c152796
--- /dev/null
+++ b/release/sysinstall/help/ja_JP.ROMAJI/configure.hlp
@@ -0,0 +1,16 @@
+kono menu deha, install go ni system no settei wo shimasu.
+sukunakutomo, system kanrisha to system no time zone no settei ha
+shite kudasai.
+
+bash, emacs, pascal nadono, saranaru miryokuteki na mono ni tsuiteha,
+kono menu no Package no koumoku wo mite kudasai. genzai no tokoro,
+CD-ROM wo motteiruka, file system jou ni package collection wo
+motteiru baai nomi, hontouni benridearu toiukotowo oboete oite
+kduasai. package wo jidouteki ni FTP de tensou shitekuru kinou ha
+mada arimasen.
+
+system no install ga owatta atode, package wo install suru tool wo
+ugokasu niha, ``pkg_manage'' toiu command wo shiyou shimasu. time
+zone wo shitei suruniha ``tzsetup'' to nyuuryoku shitekudasai. kore
+ijou no ippanteki na system no settei ni kansuru jouhou ni tsuiteha,
+``/etc/sysconfig'' file wo mite kudasai.
diff --git a/release/sysinstall/help/ja_JP.ROMAJI/language.hlp b/release/sysinstall/help/ja_JP.ROMAJI/language.hlp
new file mode 100644
index 0000000..a167099
--- /dev/null
+++ b/release/sysinstall/help/ja_JP.ROMAJI/language.hlp
@@ -0,0 +1,14 @@
+konomi no gengo wo sentaku suruniha, kono menu wo shiyou shite
+kduasai. genzai no tokoro, samazama na help de shiyou sareru default
+no gengo wo settei surudakedesu.
+
+shourai no release deha, kono menu ni yotte keyboard layout, screen
+map, NLS no settei (sysinstall jitai mo subete no menu wo tekisetsu na
+gengo de hyouji surunoni, message catalog wo shiyou suruyouni
+narimasu), soshite samazamana hyoujun ni tekigou saseru tameno
+sonohokano kokusaika kinou wo henkou shimasu.
+
+korerano kairyou ga okonawareru madeha, system ga subete install
+sareta atode /etc/sysconfig wo henshuu surunoga kantan deshou. kono
+file niha, henkou surubeki bubun ni tsuiteno takusan no comment ya,
+eigo igai no gengo no settei ni kansuru ikutsukano reiga arimasu.
diff --git a/release/sysinstall/help/ja_JP.ROMAJI/usage.hlp b/release/sysinstall/help/ja_JP.ROMAJI/usage.hlp
new file mode 100644
index 0000000..df58c20
--- /dev/null
+++ b/release/sysinstall/help/ja_JP.ROMAJI/usage.hlp
@@ -0,0 +1,52 @@
+KONO SYSTEM NO TSUKAIKATA
+=========================
+
+KEY ACTION
+--- ------
+UP ARROW mae no koumoku (text field deha ue) ni idou shimasu.
+DOWN ARROW tsugi no koumoku (text field deha shita) ni idou shimasu.
+TAB tsugi no koumoku mataha group ni idou shimasu.
+RIGHT ARROW tsugi no koumoku mataha group ni idou shimasu (TAB to onaji).
+SHIFT-TAB mae no koumoku mataha group ni idou shimasu.
+LEFT ARROW mae no koumoku mataha group ni idou shimasu. (SHIFT-TAB to
+ onaji).
+RETURN koumoku wo sentaku shimasu.
+PAGE UP text box de, mae no page ni modorimasu.
+PAGE DOWN text box de, tsugi no page ni susumimasu.
+SPACE "radio button" ya fukusuu no sentakushi ga aru menu de,
+ genzai no koumoku wo toggle shimasu.
+F1 (sonzai suru gamen deha) help wo hyouji shimasu.
+
+menu no hashi ni "^(-)" ka "v(+)" to iu kigou ga aru baai ha, (gamen no
+space ga fujuubun na tame) hyouji shikirenai koumoku ga sonzai shimasu.
+jou-ge cursor key wo shiyou shite menu wo scroll sasete kudasai.
+dochirakano kigou ga kieta toki ha, menu no sentou (mataha saigo) desu.
+
+text field deha, genzai no text no ichi ga migi-shita ni percent
+hyouji saremasu. field no saigo deha 100% to hyouji saremasu.
+
+OK wo sentaku suruto, genzai no dousa wo kakunin surukotoni narimasu.
+Cancel wo sentaku suruto, genzai no sousa wo cancel shi, izen no menu ni
+modorimasu.
+
+
+TOKUBETU NA KINOU:
+==================
+
+menu no koumoku wo sentaku surunoni, saisho no moji wo nyuuryoku
+surukotomo dekimasu (ichi-i ni sadamaru baai). konoyouna "accellerator"
+moji ha highlight de hyouji saremasu.
+
+console driver ha, scroll shiteitta gamen wo mouichido hyouji surutameno
+scroll-back buffer wo motteimasu. scroll-back surutameniha, "Scroll
+Lock" key wo oshitekara cursor key ya "Page Up" "Page Down" key wo
+shiyou shimasu. kono kinou ha sub-shell ya sonohokano "wizard mode"
+nado, menu wo shiyou shinai baai ni benridesu.
+
+system no install ga shuuryou shi, "multi-user" de dousa shiteiru
+tokiha, douji ni ikutsukano session wo atsukaeru "kasou console" wo
+shiyou surukotoga dekimasu. console wo kirikaeruniha, ALT-F<n> wo
+shiyou shitekudasai. 'F<n>' ha mitai gamen ni taiousuru function key
+desu. hyoujun deha 3tsuno kasou console ga shiyou dekimasuga, file
+/etc/ttys wo henshuu surukotode saidai 12ko made fuyasukotoga
+dekimasu.
diff --git a/release/sysinstall/help/media.hlp b/release/sysinstall/help/media.hlp
new file mode 100644
index 0000000..8b081bc
--- /dev/null
+++ b/release/sysinstall/help/media.hlp
@@ -0,0 +1,29 @@
+You can install from the following types of media:
+
+ CDROM - requires one of the following supported CDROM drives:
+
+ Sony CDU 31/33A
+ Matushita/Panasonic "Sound Blaster" CDROM.
+ Mitsumi FX-001{A-D} (older non-IDE drives).
+ SCSI - Any standard SCSI CDROM drive hooked to
+ a supported controller (see Hardware Guide).
+
+ DOS - A DOS primary partition with the required FreeBSD
+ distribution files copied onto it (e.g. C:\FREEBSD\)
+
+ FS - Assuming a disk or partition with an existing
+ FreeBSD file system and distribution set on it,
+ get the distribution files from there.
+
+ Floppy - Get distribution files from one or more DOS formatted
+ floppies.
+
+ FTP - Get the distribution files from an anonymous ftp server
+ (you will be presented with a list).
+
+ NFS - Get the distribution files from an NFS server somewhere
+ (make sure that permissions on the server allow this!)
+
+ Tape - Extract distribution files from tape into a temporary
+ directory and install from there.
+
diff --git a/release/sysinstall/help/network_device.hlp b/release/sysinstall/help/network_device.hlp
new file mode 100644
index 0000000..95c42ae
--- /dev/null
+++ b/release/sysinstall/help/network_device.hlp
@@ -0,0 +1,54 @@
+You can do network installations over 3 types of communications links:
+
+ Serial port: SLIP / PPP
+ Parallel port: PLIP (laplink cable)
+ Ethernet: A standard ethernet controller (includes some PCMCIA).
+
+SLIP support is rather primitive and limited primarily to hard-wired
+links, such as a serial cable running between a laptop computer and
+another PC. The link must be hard-wired as the SLIP installation
+doesn't currently offer a dialing capability; that facility is provided
+with the PPP utility, which should be used in preference to SLIP
+whenever possible. When you choose a serial port device, you'll
+be given the option later to edit the slattach command before it's
+run on the serial line. It is expected that you'll run slattach
+(or some equivalent) on the other end of the link at this time and
+bring up the line. FreeBSD will then install itself over the link
+at speeds of up to 115.2K/baud (the recommended speed for a hardwired
+cable).
+
+If you're using a modem then PPP is almost certainly your only
+choice. Make sure that you have your service provider's information
+handy as you'll need to know it fairly early in the installation
+process. You will need to know, at the minimum, your service
+provider's IP address and possibly your own (though you can also leave
+it blank and allow PPP to negotiate it with your ISP). You will also
+need to know how to use the various "AT commands" to dial the ISP with
+your particular brand of modem as the PPP dialer provides only a very
+simple terminal emulator and has no "modem capabilities database".
+
+If a hard-wired connection to another FreeBSD (2.0R or later) machine
+is available, you might also consider installing over a "laplink"
+parallel port cable. The data rate over the parallel port is much
+higher than what is typically possible over a serial line with
+speeds of up to 50k/sec.
+
+Finally, for the fastest possible network installation, an ethernet
+adaptor is always a good choice! FreeBSD supports most common PC
+ethernet cards, a table of which is provided in the FreeBSD
+Hardware Guide (see the Documentation menu on the boot floppy).
+If you are using one of the supported PCMCIA ethernet cards, also be
+sure that it's plugged in _before_ the laptop is powered on! FreeBSD
+does not, unfortunately, currently support "hot insertion" of PCMCIA
+cards.
+
+You will also need to know your IP address on the network, the "netmask"
+value for your address class, and the name of your machine.
+Your system administrator can tell you which values to use for your
+particular network setup. If you will be referring to other hosts by
+name rather than IP address, you'll also need a name server and
+possibly the address of a gateway (if you're using PPP, it's your
+provider's IP address) to use in talking to it. If you do not know
+the answers to all or most of these questions, then you should
+really probably talk to your system administrator _first_ before
+trying this type of installation!
diff --git a/release/sysinstall/help/nl_NL.ISO8859-1/README b/release/sysinstall/help/nl_NL.ISO8859-1/README
new file mode 100644
index 0000000..35c2c90
--- /dev/null
+++ b/release/sysinstall/help/nl_NL.ISO8859-1/README
@@ -0,0 +1,106 @@
+
+ -----------------------------------------
+ FreeBSD 2.0.5 --- RELEASE Versie , ,
+ ----------------------------------------- /( )`
+ \ \___ / |
+Welkom bij de 2.0.5 release van FreeBSD! 2.0.5 is /- _ `-/ '
+een interim release, die de leemte moet vullen die (/\/ \ \ /\
+onstaan is sinds de laatste release van FreeBSD, / / | ` \
+versie 2.0 in Nov 94, tot de release van FreeBSD, O O ) / |
+2.1, verwacht eind juli 95. FreeBSD 2.0.5 bevat `-^--'`< '
+veel substantiële verbeteringen ten opzichte van (_.) _ ) /
+2.0R, niet in de laatste plaats de aanzienlijk `.___/` /
+verbeterde stabiliteit, vele nieuwe `-----' /
+features en een sterk verbeterd <----. __ / __ \
+installatie programma. Zie ook de <----|====O)))==) \) /====
+'release notes' voor meer details m.b.t. <----' `--' `.__,' \
+tot wat nieuw is in FreeBSD 2.0.5 | |
+ \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+Wat is FreeBSD? FreeBSD is een operating systeem, gebaseerd op
+4.4 BSD Lite for Intel, AMD, Cyrix of NexGen "x86" gebaseerde PC
+hardware. Het werkt met een uitgebreide keuze aan PC randapparatuur
+en configuraties en kan gebruikt worden voor de meest uiteenlopende
+activiteiten, van programma ontwikkeling tot Internet Service
+Voorziening; de drukste machine op het Internet, ftp.cdrom.com,
+is een FreeBSD machine.
+
+Deze release van FreeBSD bevat alles wat u nodig heeft om zo'n
+systeem te draaien, met de volledige broncode voor elk onderdeel
+van het systeem. Als de broncode distributie geïnstalleerd is
+kunt u letterlijk, met één kommando het volledige systeem
+opnieuw compileren. Hierdoor is het ideaal voor studenten,
+researchers of voor iedereen die gewoon wil zien hoe het allemaal
+werkt.
+
+Een grote verzameling extra software, overgezet op FreeBSD (de
+"ports" verzameling) wordt ook beschikbaar gesteld, om het
+makkelijker te maken om al uw favoriete traditionele UNIX
+utilities te installeren.
+Meer dan 270 "ports", die software omvatten van tekstverwerkers
+tot programmeertalen, maken van FreeBSD een krachtige
+en veelomvattende operating omgeving die kan concureren met die
+van veel grote werkstations op het gebied van algemene inzet-
+baarheid en verwerkingskracht.
+
+Om meer documentatie over dit systeem te verkrijgen, is het aan-
+bevolen om de '4.4BSD Document Set' te kopen van O'Reilly Associates
+en de USENIX Association, ISBN 1-56592-082-1. We hebben niets
+met O'Reilly te maken, maar zijn slechts tevreden klanten!
+
+Voordat u verder gaat met de installatie is het aan te bevelen
+*eerst* de 'HARDWARE GUIDE' te lezen. PC hardware configuren voor
+iets anders dan DOS/Windows (die de hardware niet zo erg belasten)
+is wat moeilijker dan het lijkt, en als u denkt dat u PC's begrijpt
+dan heeft u ze duidelijk nog niet lang genoeg gebruikt :)
+De 'HARDWARE GUIDE' geeft u wat tips om uw hardware te configureren
+en op welke symptomen te letten als er problemen zijn. Deze gids is
+aanwezig in het Documentatie menu van de FreeBSD start-diskette.
+
+Ofschoon FreeBSD zijn uiterste best doet om te hoeden voor
+gegevensverlies, is het nog steeds meer dan mogelijk om AL UW
+GEGEVENS OP UW HARDDISK KWIJT TE RAKEN met deze installatie. Ga
+niet verder met installatiemenu voordat er van alle belangrijke
+gegevens een backup is gemaakt!
+
+Technisch commentaar op deze release moet gestuurd worden naar:
+
+ hackers@FreeBSD.org
+
+Meldingen van gevonden fouten in FreeBSD moeten gestuurd worden
+met het 'send-pr' kommando als u er in geslaagd bent om het
+systeem te installeren, anders naar:
+
+ bugs@FreeBSD.org
+
+Vermeld duidelijk om WELKE VERSIE van FreeBSD het gaat in berichten
+over fouten.
+
+Algemene vragen kunnen gestuurd worden naar:
+
+ questions@FreeBSD.org
+
+Heb een beetje geduld als uw vraag niet meteen beantwoord wordt -
+we hebben het erg druk op het moment, en ons vrijwilligers werk
+belast ons vaak tot aan de limiet. Foutmeldingen die verstuurd zijn
+m.b.v. 'send-pr' worden opgeslagen en bijgehouden in onze
+'bug'-database. U wordt geïnformeerd over de veranderingen in de
+status van de fout (of vraag naar een feature) tijdens de levensduur
+ervan.
+
+Onze WEB server, http://www.freebsd.org, is een goede bron voor
+nieuwe of bijgewerkte informatie en biedt ook een aantal geavan-
+ceerde documentatie faciliteiten. U kunt de BSDI versie van
+Netscape gebruiken om over het 'World Wide Web' te 'surfen'.
+
+Zie ook /usr/share/FAQ en /usr/share/doc voor informatie over
+het systeem.
+
+Bedankt voor het lezen en we hopen dat deze release van FreeBSD
+u goed bevalt.
+
+ Jordan Hubbard,
+ voor het FreeBSD project
diff --git a/release/sysinstall/help/nl_NL.ISO8859-1/configure.hlp b/release/sysinstall/help/nl_NL.ISO8859-1/configure.hlp
new file mode 100644
index 0000000..91c39f5
--- /dev/null
+++ b/release/sysinstall/help/nl_NL.ISO8859-1/configure.hlp
@@ -0,0 +1,16 @@
+Dit menu stelt u in staat om uw systeem tot op zekere hoogte
+te configureren na de installatie. In ieder geval kunt u hiermee
+het wachtwoord van de systeembeheerder en de tijdzone instellen.
+
+Voor extra programmatuur zoals bash, emacs, pascal, etc. is het
+aan te raden naar het 'Packages' item te kijken in dit menu. Op
+het moment is het helaas alleen bruikbaar als u een CDROM heeft of
+ergens op uw harddisk packages heeft staan waar het package
+installatie programma erbij kan. Automatische overdracht van
+packages via FTP wordt nog niet ondersteund.
+
+Als u na de installatie het packages installatie programma opnieuw
+wilt gebruiken kunt u dit oproepen door het kommando 'pkg_manage'.
+Om de tijdzone te veranderen kunt u 'tzsetup' gebruiken. Voor
+meer informatie over algemene systeem configuratie zie het bestand
+'/etc/sysconfig'.
diff --git a/release/sysinstall/help/nl_NL.ISO8859-1/language.hlp b/release/sysinstall/help/nl_NL.ISO8859-1/language.hlp
new file mode 100644
index 0000000..48fac09
--- /dev/null
+++ b/release/sysinstall/help/nl_NL.ISO8859-1/language.hlp
@@ -0,0 +1,15 @@
+Met dit menu kunt u een andere taal selecteren. Op het moment worden
+alleen de help bestanden in de gekozen taal weergegeven.
+
+In een volgende release zal ook de toetsenbord layout, scherm
+aansturing, NLS instellingen ('sysinstall' zelf zal ook 'message
+catalogs' gebruiken zodat alle menu's in de gekozen taal worden
+weergegeven) veranderd worden en andere I18N instellingen om
+aan diverse standaarden te voldoen.
+
+Totdat deze verbeteringen zijn doorgevoerd kunt u het beste deze
+veranderingen zelf aan te brengen door het bestand '/etc/sysconfig'
+te bewerken nadat het systeem is geïnstalleerd. Er is commentaar
+in het bestand aanwezig dat aangeeft wat er verander moet worden.
+Er zijn ook wat voorbeelden van niet-Engelse configuraties.
+
diff --git a/release/sysinstall/help/nl_NL.ISO8859-1/usage.hlp b/release/sysinstall/help/nl_NL.ISO8859-1/usage.hlp
new file mode 100644
index 0000000..50a2808
--- /dev/null
+++ b/release/sysinstall/help/nl_NL.ISO8859-1/usage.hlp
@@ -0,0 +1,56 @@
+GEBRUIKSINSTRUCTIES VOOR DIT SYSTEEM
+====================================
+
+TOETS AKTIE
+===== =====
+PIJL OMHOOG Ga naar het vorige item (of omhoog in een tekst veld)
+PIJL OMLAAG Ga naar het volgende item (of omlaag, in een tekst veld)
+TAB Ga naar het volgende item of groep
+PIJL RECHTS Ga naar het volgende item of groep (hetzelfde als TAB)
+SHIFT-TAB Ga naar het vorige item of groep
+PIJL LINKS Ga naar het vorige item of groep (hetzelfde als SHIFT-TAB)
+RETURN Selecteer item
+PAGE UP Ga een pagina omhoog in tekst vensters
+PAGE DOWN Ga een pagina omlaag in tekst vensters
+SPATIEBALK Selecteer/deselecteer het huidige item in "radio" of
+ multiple choice menus.
+F1 Help (indien het huidige scherm er in voorziet)
+
+Als er meer menu-items zijn dan getoond kunnen worden, verschijnen er
+symbolen om aan te geven of dit aan de bovenkant is: "^(-)" of aan de
+onderkant "v(+)". Gebruik de PIJL OMHOOG/OMLAAG toetsen om te bladeren.
+Als een van de symbolen verdwijnt dan ben je aan de onderkant
+(of bovenkant) van het menu.
+
+In tekst vensters wordt de hoeveelheid tekst die nog getoond moet
+worden als een percentage weergegeven in de rechter onderhoek. 100%
+betekent dat je het einde van de tekst hebt bereikt.
+
+Selektie van <OK> in een menu bevestigt de aktie die erdoor gekontro-
+leerd wordt. Selektie van <Cancel> annuleert de aktie en zal je over
+het algemeen terugbrengen in het vorige menu.
+
+SPECIALE MOGELIJKHEDEN
+======================
+
+Het is ook mogelijk om een menu item te selekteren door de eerste
+letter (of cijfer) van de naam te typen, als deze uniek is. Deze
+letters (of cijfers) zijn vetgedrukt (of in een andere kleur weer-
+gegeven) om ze te onderscheiden.
+
+Het is ook mogelijk om terug te bladeren als er regels aan de
+bovenkant van het scherm zijn gerold. Deze 'terug-blader-modus'
+kan geaktiveerd worden door op de "Scroll Lock" toets te drukken.
+Nu kun je m.b.v. PIJL OMHOOG/OMLAAG of Page Up/Page Down door de
+bewaarde regels bladeren. Druk nogmaals op "Scroll Lock" om deze
+modus te beëindigen. Deze mogelijkheid is erg handig als je in een
+sub-shell zit of andere expert-modes gebruikt die geen menus
+hebben.
+
+Na installatie, en als het systeem in "multi-user" mode draait, kun
+je gebruik maken van "virtuele consoles" om meerdere aktieve
+sessies tegelijk te kunnen gebruiken. Gebruik ALT-F<n> om tussen de
+verschillende sessies te wisselen, 'F<n>' is de funktietoets die
+overeenkomt met de sessie die je wilt zien. Standaard is het
+systeem geconfigureerd voor 4 virtuele consoles. Bewerk /etc/ttys
+om meer virtuele consoles te configureren. Het maximum aantal is 12.
diff --git a/release/sysinstall/help/nl_NL.ISO_8859-1/README b/release/sysinstall/help/nl_NL.ISO_8859-1/README
new file mode 100644
index 0000000..35c2c90
--- /dev/null
+++ b/release/sysinstall/help/nl_NL.ISO_8859-1/README
@@ -0,0 +1,106 @@
+
+ -----------------------------------------
+ FreeBSD 2.0.5 --- RELEASE Versie , ,
+ ----------------------------------------- /( )`
+ \ \___ / |
+Welkom bij de 2.0.5 release van FreeBSD! 2.0.5 is /- _ `-/ '
+een interim release, die de leemte moet vullen die (/\/ \ \ /\
+onstaan is sinds de laatste release van FreeBSD, / / | ` \
+versie 2.0 in Nov 94, tot de release van FreeBSD, O O ) / |
+2.1, verwacht eind juli 95. FreeBSD 2.0.5 bevat `-^--'`< '
+veel substantiële verbeteringen ten opzichte van (_.) _ ) /
+2.0R, niet in de laatste plaats de aanzienlijk `.___/` /
+verbeterde stabiliteit, vele nieuwe `-----' /
+features en een sterk verbeterd <----. __ / __ \
+installatie programma. Zie ook de <----|====O)))==) \) /====
+'release notes' voor meer details m.b.t. <----' `--' `.__,' \
+tot wat nieuw is in FreeBSD 2.0.5 | |
+ \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+Wat is FreeBSD? FreeBSD is een operating systeem, gebaseerd op
+4.4 BSD Lite for Intel, AMD, Cyrix of NexGen "x86" gebaseerde PC
+hardware. Het werkt met een uitgebreide keuze aan PC randapparatuur
+en configuraties en kan gebruikt worden voor de meest uiteenlopende
+activiteiten, van programma ontwikkeling tot Internet Service
+Voorziening; de drukste machine op het Internet, ftp.cdrom.com,
+is een FreeBSD machine.
+
+Deze release van FreeBSD bevat alles wat u nodig heeft om zo'n
+systeem te draaien, met de volledige broncode voor elk onderdeel
+van het systeem. Als de broncode distributie geïnstalleerd is
+kunt u letterlijk, met één kommando het volledige systeem
+opnieuw compileren. Hierdoor is het ideaal voor studenten,
+researchers of voor iedereen die gewoon wil zien hoe het allemaal
+werkt.
+
+Een grote verzameling extra software, overgezet op FreeBSD (de
+"ports" verzameling) wordt ook beschikbaar gesteld, om het
+makkelijker te maken om al uw favoriete traditionele UNIX
+utilities te installeren.
+Meer dan 270 "ports", die software omvatten van tekstverwerkers
+tot programmeertalen, maken van FreeBSD een krachtige
+en veelomvattende operating omgeving die kan concureren met die
+van veel grote werkstations op het gebied van algemene inzet-
+baarheid en verwerkingskracht.
+
+Om meer documentatie over dit systeem te verkrijgen, is het aan-
+bevolen om de '4.4BSD Document Set' te kopen van O'Reilly Associates
+en de USENIX Association, ISBN 1-56592-082-1. We hebben niets
+met O'Reilly te maken, maar zijn slechts tevreden klanten!
+
+Voordat u verder gaat met de installatie is het aan te bevelen
+*eerst* de 'HARDWARE GUIDE' te lezen. PC hardware configuren voor
+iets anders dan DOS/Windows (die de hardware niet zo erg belasten)
+is wat moeilijker dan het lijkt, en als u denkt dat u PC's begrijpt
+dan heeft u ze duidelijk nog niet lang genoeg gebruikt :)
+De 'HARDWARE GUIDE' geeft u wat tips om uw hardware te configureren
+en op welke symptomen te letten als er problemen zijn. Deze gids is
+aanwezig in het Documentatie menu van de FreeBSD start-diskette.
+
+Ofschoon FreeBSD zijn uiterste best doet om te hoeden voor
+gegevensverlies, is het nog steeds meer dan mogelijk om AL UW
+GEGEVENS OP UW HARDDISK KWIJT TE RAKEN met deze installatie. Ga
+niet verder met installatiemenu voordat er van alle belangrijke
+gegevens een backup is gemaakt!
+
+Technisch commentaar op deze release moet gestuurd worden naar:
+
+ hackers@FreeBSD.org
+
+Meldingen van gevonden fouten in FreeBSD moeten gestuurd worden
+met het 'send-pr' kommando als u er in geslaagd bent om het
+systeem te installeren, anders naar:
+
+ bugs@FreeBSD.org
+
+Vermeld duidelijk om WELKE VERSIE van FreeBSD het gaat in berichten
+over fouten.
+
+Algemene vragen kunnen gestuurd worden naar:
+
+ questions@FreeBSD.org
+
+Heb een beetje geduld als uw vraag niet meteen beantwoord wordt -
+we hebben het erg druk op het moment, en ons vrijwilligers werk
+belast ons vaak tot aan de limiet. Foutmeldingen die verstuurd zijn
+m.b.v. 'send-pr' worden opgeslagen en bijgehouden in onze
+'bug'-database. U wordt geïnformeerd over de veranderingen in de
+status van de fout (of vraag naar een feature) tijdens de levensduur
+ervan.
+
+Onze WEB server, http://www.freebsd.org, is een goede bron voor
+nieuwe of bijgewerkte informatie en biedt ook een aantal geavan-
+ceerde documentatie faciliteiten. U kunt de BSDI versie van
+Netscape gebruiken om over het 'World Wide Web' te 'surfen'.
+
+Zie ook /usr/share/FAQ en /usr/share/doc voor informatie over
+het systeem.
+
+Bedankt voor het lezen en we hopen dat deze release van FreeBSD
+u goed bevalt.
+
+ Jordan Hubbard,
+ voor het FreeBSD project
diff --git a/release/sysinstall/help/nl_NL.ISO_8859-1/configure.hlp b/release/sysinstall/help/nl_NL.ISO_8859-1/configure.hlp
new file mode 100644
index 0000000..91c39f5
--- /dev/null
+++ b/release/sysinstall/help/nl_NL.ISO_8859-1/configure.hlp
@@ -0,0 +1,16 @@
+Dit menu stelt u in staat om uw systeem tot op zekere hoogte
+te configureren na de installatie. In ieder geval kunt u hiermee
+het wachtwoord van de systeembeheerder en de tijdzone instellen.
+
+Voor extra programmatuur zoals bash, emacs, pascal, etc. is het
+aan te raden naar het 'Packages' item te kijken in dit menu. Op
+het moment is het helaas alleen bruikbaar als u een CDROM heeft of
+ergens op uw harddisk packages heeft staan waar het package
+installatie programma erbij kan. Automatische overdracht van
+packages via FTP wordt nog niet ondersteund.
+
+Als u na de installatie het packages installatie programma opnieuw
+wilt gebruiken kunt u dit oproepen door het kommando 'pkg_manage'.
+Om de tijdzone te veranderen kunt u 'tzsetup' gebruiken. Voor
+meer informatie over algemene systeem configuratie zie het bestand
+'/etc/sysconfig'.
diff --git a/release/sysinstall/help/nl_NL.ISO_8859-1/language.hlp b/release/sysinstall/help/nl_NL.ISO_8859-1/language.hlp
new file mode 100644
index 0000000..48fac09
--- /dev/null
+++ b/release/sysinstall/help/nl_NL.ISO_8859-1/language.hlp
@@ -0,0 +1,15 @@
+Met dit menu kunt u een andere taal selecteren. Op het moment worden
+alleen de help bestanden in de gekozen taal weergegeven.
+
+In een volgende release zal ook de toetsenbord layout, scherm
+aansturing, NLS instellingen ('sysinstall' zelf zal ook 'message
+catalogs' gebruiken zodat alle menu's in de gekozen taal worden
+weergegeven) veranderd worden en andere I18N instellingen om
+aan diverse standaarden te voldoen.
+
+Totdat deze verbeteringen zijn doorgevoerd kunt u het beste deze
+veranderingen zelf aan te brengen door het bestand '/etc/sysconfig'
+te bewerken nadat het systeem is geïnstalleerd. Er is commentaar
+in het bestand aanwezig dat aangeeft wat er verander moet worden.
+Er zijn ook wat voorbeelden van niet-Engelse configuraties.
+
diff --git a/release/sysinstall/help/nl_NL.ISO_8859-1/usage.hlp b/release/sysinstall/help/nl_NL.ISO_8859-1/usage.hlp
new file mode 100644
index 0000000..50a2808
--- /dev/null
+++ b/release/sysinstall/help/nl_NL.ISO_8859-1/usage.hlp
@@ -0,0 +1,56 @@
+GEBRUIKSINSTRUCTIES VOOR DIT SYSTEEM
+====================================
+
+TOETS AKTIE
+===== =====
+PIJL OMHOOG Ga naar het vorige item (of omhoog in een tekst veld)
+PIJL OMLAAG Ga naar het volgende item (of omlaag, in een tekst veld)
+TAB Ga naar het volgende item of groep
+PIJL RECHTS Ga naar het volgende item of groep (hetzelfde als TAB)
+SHIFT-TAB Ga naar het vorige item of groep
+PIJL LINKS Ga naar het vorige item of groep (hetzelfde als SHIFT-TAB)
+RETURN Selecteer item
+PAGE UP Ga een pagina omhoog in tekst vensters
+PAGE DOWN Ga een pagina omlaag in tekst vensters
+SPATIEBALK Selecteer/deselecteer het huidige item in "radio" of
+ multiple choice menus.
+F1 Help (indien het huidige scherm er in voorziet)
+
+Als er meer menu-items zijn dan getoond kunnen worden, verschijnen er
+symbolen om aan te geven of dit aan de bovenkant is: "^(-)" of aan de
+onderkant "v(+)". Gebruik de PIJL OMHOOG/OMLAAG toetsen om te bladeren.
+Als een van de symbolen verdwijnt dan ben je aan de onderkant
+(of bovenkant) van het menu.
+
+In tekst vensters wordt de hoeveelheid tekst die nog getoond moet
+worden als een percentage weergegeven in de rechter onderhoek. 100%
+betekent dat je het einde van de tekst hebt bereikt.
+
+Selektie van <OK> in een menu bevestigt de aktie die erdoor gekontro-
+leerd wordt. Selektie van <Cancel> annuleert de aktie en zal je over
+het algemeen terugbrengen in het vorige menu.
+
+SPECIALE MOGELIJKHEDEN
+======================
+
+Het is ook mogelijk om een menu item te selekteren door de eerste
+letter (of cijfer) van de naam te typen, als deze uniek is. Deze
+letters (of cijfers) zijn vetgedrukt (of in een andere kleur weer-
+gegeven) om ze te onderscheiden.
+
+Het is ook mogelijk om terug te bladeren als er regels aan de
+bovenkant van het scherm zijn gerold. Deze 'terug-blader-modus'
+kan geaktiveerd worden door op de "Scroll Lock" toets te drukken.
+Nu kun je m.b.v. PIJL OMHOOG/OMLAAG of Page Up/Page Down door de
+bewaarde regels bladeren. Druk nogmaals op "Scroll Lock" om deze
+modus te beëindigen. Deze mogelijkheid is erg handig als je in een
+sub-shell zit of andere expert-modes gebruikt die geen menus
+hebben.
+
+Na installatie, en als het systeem in "multi-user" mode draait, kun
+je gebruik maken van "virtuele consoles" om meerdere aktieve
+sessies tegelijk te kunnen gebruiken. Gebruik ALT-F<n> om tussen de
+verschillende sessies te wisselen, 'F<n>' is de funktietoets die
+overeenkomt met de sessie die je wilt zien. Standaard is het
+systeem geconfigureerd voor 4 virtuele consoles. Bewerk /etc/ttys
+om meer virtuele consoles te configureren. Het maximum aantal is 12.
diff --git a/release/sysinstall/help/no_NO.ISO8859-1/README b/release/sysinstall/help/no_NO.ISO8859-1/README
new file mode 100644
index 0000000..d3d2989
--- /dev/null
+++ b/release/sysinstall/help/no_NO.ISO8859-1/README
@@ -0,0 +1,107 @@
+ -----------------------------------------
+ FreeBSD 2.0.5 --- UTGITT Version , ,
+ ----------------------------------------- /( )`
+ \ \___ / |
+Velkommen til 2.0.5 versjonen av FreeBSD! 2.0.5 er /- _ `-/ '
+en midlertidig utgave av FreeBSD som er ment til (/\/ \ \ /\
+å fylle gapet mellom 2.0R (som var / / | ` \
+utgitt i Nov 94) og 2.1R, som kommer til O O ) / |
+å bli utgitt sent i Juli d.å.. FreeBSD 2.0.5 `-^--'`< '
+inneholder mange vesentlige forbedringer til 2.0R, (_.) _ ) /
+ikke minst av dem er større stabilitet (med `.___/` /
+en betraktelig margin), dusinvis av nye `-----' /
+momenter og et mye forbedret installasjons<----. __ / __ \
+program. Se utgivelse-notatene for mere <----|====O)))==) \) /====
+detaljer om hva som er nytt i <----' `--' `.__,' \
+FreeBSD 2.0.5! | |
+ \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+
+Hva er FreeBSD? FreeBSD er et operativ system basert på 4.4 BSD Lite
+for Intel, AMD, Cyrix or NexGen "x86" basert PC maskinvare. Det fungerer
+med et veldig stor utvalg av PC ytre-enheter og konfigurasjoner og kan
+bli brukt til alt fra programvare utvikling til Internet Service
+Provision; den travleste plassen på Internetet, ftp.cdrom.com, er en
+FreeBSD maskin!
+
+Denne utgaven av FreeBSD inneholder alt du trenger for å drive et slikt
+system, pluss full kilde-kode til hele systemet. Med kilde-koden
+installert kan du om-kompilere hele systemet fra grunnen opp med
+en kommando, noe som gjøer systemet ideelt for studenter,
+forskere eller folk som bare vil se hvordan det hele virker.
+
+En stor samling av program som har blitt flyttet over av andre ("flytte
+samlingen") er også tilbrakt for å gjøre det enklere for deg
+å få tak i og installere dine yndlings program for UNIX.
+Over 270 program har blitt flyttet over til FreeBSD, fra
+redigerings-program til programmerings språk til grafiske applikasjoner,
+noe som gjør FreeBSD et kraftig og omfattende operativ miljø som
+er på likhet med mange store arbeidsmaskiner når det gjelder generell
+anvendelse og styrke.
+
+
+For mere dokumentasjon om dette systemet, anbefaler vi at du
+kjøper 4.4BSD Dokumentasjons settet fra O'Reilly Associates og
+USENIX Foreningen, ISBN 1-56592-082-1. Vi har ingen forbindelse med
+O'Reilly, vi er bare tilfredstilte kunder!
+
+Det er å anbefale at du også leser MASKINVARE GUIDEN *før*
+du fortsetter videre med installasjonen. Oppsett av PC
+maskinvare for alt annet enn DOS/Windows ( som ikke akkurat belaster
+maskinvaren ) er faktisk en hel del vanskeligere enn det ser ut til. Dersom
+du tror at du forstår deg på PCer, så har du tydeligvis ikke
+brukt dem lenge nok! :) Denne rettledningen vil gi deg noen tips om hvordan
+å sette opp maskinvaren og hva slags symptomer å se etter om du
+skulle få vanskeligheter. Denne rettledningen er tilgjengelig fra
+Dokumentasjons menyen på FreeBSD oppstartings-disketten.
+
+FRALEGGELSE: Selv om FreeBSD gjør sitt beste til å beskytte mot
+tilfeldig tap av data er det fremdeles mulig å slette ut hele disken
+i forbindelse med denne installasjonen. Vær så vennlig ikke å
+fortsette til den siste FreeBSD installasjons menyen uten at du har
+et sikkerhetskopi av alle viktige data først! Dette mener vi på
+alvor!
+
+Tekniske kommentarer om denne utgaven bør sendes (på Engelsk!) til:
+
+ hackers@FreeBSD.org
+
+
+Programfeil-rapporter bør sendes med å bruke `send-pr' kommandoen,
+dersom du var i stand til å installere systemet, ellers til:
+
+ bugs@FreeBSD.org
+
+Vær sikker på å indikere HVILKEN VERSJON av FreeBSD du kjrøer
+i enhver programfeil rapport!
+
+
+Generelle spørsmål bør sendes til:
+
+ questions@FreeBSD.org
+
+Vær så snill å ha tålmodighet dersom du ikke får svar
+med en gang - dette er en spesielt travel tid for oss, og våre
+frivillige resurser er ofte strekt til grensen! Programfeil rapporter
+som har blitt lagt fram med 'send-pr' kommandoen er ajourført og
+etterfulgt i vår programfeil database, og du kommer til å bli
+informert om enhver status-forandring så lenge programfeilen (eller
+moment etterspørsel) eksisterer.
+
+Vår WEB plass, http://www.freebsd.org, er også en veldig god kilde for
+oppdatert informasjon og tilbyr flere avanserte dokumenterings hjelpemidler.
+Du kan bruke BSDI versonen av Netscape for å surfe World Wide Web
+direkte fra FreeBSD.
+
+Du kan også se i /usr/share/FAQ og /usr/share/doc for videre informasjon
+om systemet.
+
+
+Takk for at du tok deg tid til å lese alt dette, og vi håper
+oppriktig at du vil nyte denne utgaven av FreeBSD!
+
+ Jordan Hubbard,
+ for FreeBSD Prosjektet
diff --git a/release/sysinstall/help/no_NO.ISO8859-1/configure.hlp b/release/sysinstall/help/no_NO.ISO8859-1/configure.hlp
new file mode 100644
index 0000000..6a02435
--- /dev/null
+++ b/release/sysinstall/help/no_NO.ISO8859-1/configure.hlp
@@ -0,0 +1,16 @@
+Denne menyen lar deg konfigurere systemet ditt etter at det er
+installert. Du burde ihvertfall sette passordet til system-bestyreren og
+tidssonen for systemet.
+
+For ekstra godbiter som bash, emacs, pascal, osv. bør du ta en titt
+på Packages valget i denne menyen. Merk at dette valget, så langt,
+bare virker ordentlig dersom du har en CDROM eller en eksisterende
+pakke samling en eller annen plass i fil-hierarkiet hvor pakke-bestyrer
+programmet kan finne det. Automatisk overføring av pakkene via FTP
+er ikke mulig ennå!
+
+Dersom du ønsker å pøkalle pakke installasjons programmet på
+nytt etter at du har forlatt system-installasjons-programmet, bruk
+kommandoen ''pkg_manage''. For å sette tidssonen, skriv ''tzsetup''.
+For mere informasjon om konfigurasjonen av systemet, se i /etc/sysconfig
+filen.
diff --git a/release/sysinstall/help/no_NO.ISO8859-1/language.hlp b/release/sysinstall/help/no_NO.ISO8859-1/language.hlp
new file mode 100644
index 0000000..efdd21f
--- /dev/null
+++ b/release/sysinstall/help/no_NO.ISO8859-1/language.hlp
@@ -0,0 +1,13 @@
+Bruk denne menyen til å velge språket du foretrekker. Dette setter
+bare språket som blir brukt når hjelpefilene er vist fram.
+
+I framtidige utgaver vil dette også forandre tastaturet, skjerm kartet,
+NLS oppsettet ( sysinstall vil også bruke beskjed kataloger slik at
+alle menyene blir vist frem i språket du valgte) og utføre andre
+I18N momenter for å følge forskjellige normer.
+
+Inntil disse forbedringene er utført, vil du kanskje finne det
+enklest å redigere /etc/sysconfig filen selv etter systemet er
+ferdig installert. Det er mange merknader i den filen som beskriver
+hva som må forandres, og ett par eksempler på eksisterende
+språk oppsett.
diff --git a/release/sysinstall/help/no_NO.ISO8859-1/usage.hlp b/release/sysinstall/help/no_NO.ISO8859-1/usage.hlp
new file mode 100644
index 0000000..01c3d1d
--- /dev/null
+++ b/release/sysinstall/help/no_NO.ISO8859-1/usage.hlp
@@ -0,0 +1,56 @@
+HVORDAN Å BRUKE SYSTEMET
+=========================
+
+TAST FUNKSJON
+---- --------
+PIL OPP Flytte til forrige dataelement (eller opp, i et tekstfelt).
+PIL NED Flytte til neste dataelement (eller ned, i et tekstfelt).
+TAB Flytte til neste dataelement eller gruppe.
+HØYRE PIL Flytte til neste dataelement eller gruppe (samme som TAB).
+SKIFT-TAB Flytte til forrige dataelement eller gruppe.
+VENSTRE PIL Flytte til forrige dataelement eller gruppe (samme
+ som SKIFT-TAB).
+RETUR Velge dataelement.
+SIDE OPP I tekstbokser, ruller opp en side.
+SIDE NED I tekstbokser, ruller ned en side.
+MELLOMROM I "radio" eller flervalgs menyer, markere inneværende
+ dataelement.
+F1 Hjelp (i de skjermene som støtter dette).
+
+Dersom du også ser små "^(-)" eller "v(+)" symboler på kantene av
+en meny, betyr det at det er flere dataelementer ovenfor eller nedenfor
+det aktive elementet som ikke blir fremvist (p.g.a. mangel på skjermplass).
+Pil Opp/Ned-tastene ruller menyen. Når ett av disse symbolene forsvinner,
+betyr det at du er på toppen (eller bunnen) av menyen.
+
+I et tekstfelt vil prosenten av igjenomgått tekst bli vist i nedre høyre
+hjørne av feltet. 100% betyr at du er på bunnen av feltet.
+
+Valg av OK i en meny, bekrefter den funksjonen som menyen kontrollerer.
+Valg av Cancel vil avbryte operasjonen og generelt sett returnere til
+forrige meny.
+
+
+SPESIELLE MOMENTER:
+===================
+
+Det er også mulig å velge et meny element ved å trykke på første
+bokstaven av navnet, dersom den er unik. Slike "akselerasjonsbokstaver"
+vil være spesielt markert i elementnavnet.
+
+Konsolldriveren har en innebygget rulle-tilbake buffer some en kan bruke
+til å inspisere ting som har rullet ut av skjermen. For å bruke
+rulle-tilbake funksjonen, trykk på "Scroll Lock" tasten på tastaturet.
+Piltastene og Side Opp/Ned tastene kan nå brukes til å gå
+igjennom den lagrede teksten. For å forlate rulle-tilbake modusen,
+trykk på "Scroll Lock" tasten igjen. Dette momentet er best egnet for å
+håndtere underordnede-skjell og andre "vidundermoduser" som ikke bruker
+menyer.
+
+Når systemet er ferdig installert og kjører i fler-bruker modus, vil
+du også finne at du har mange "virtuelle konsoller" til rådighet og
+kan bruke dem til å ha flere aktive sesjoner på en gang. Bruk ALT-F<n>
+til å velge mellom dem, hvor 'F<n>' er funksjons-tasten som korresponderer
+med den skjermen du ønsker å se. Systemet, som det blir installert, har
+normalt 3 virtuelle konsoller. Du kan lage flere med å redigere /etc/ttys
+filen, etter systemet har kommet opp, opptil et maksimum av 12.
diff --git a/release/sysinstall/help/no_NO.ISO_8859-1/README b/release/sysinstall/help/no_NO.ISO_8859-1/README
new file mode 100644
index 0000000..d3d2989
--- /dev/null
+++ b/release/sysinstall/help/no_NO.ISO_8859-1/README
@@ -0,0 +1,107 @@
+ -----------------------------------------
+ FreeBSD 2.0.5 --- UTGITT Version , ,
+ ----------------------------------------- /( )`
+ \ \___ / |
+Velkommen til 2.0.5 versjonen av FreeBSD! 2.0.5 er /- _ `-/ '
+en midlertidig utgave av FreeBSD som er ment til (/\/ \ \ /\
+å fylle gapet mellom 2.0R (som var / / | ` \
+utgitt i Nov 94) og 2.1R, som kommer til O O ) / |
+å bli utgitt sent i Juli d.å.. FreeBSD 2.0.5 `-^--'`< '
+inneholder mange vesentlige forbedringer til 2.0R, (_.) _ ) /
+ikke minst av dem er større stabilitet (med `.___/` /
+en betraktelig margin), dusinvis av nye `-----' /
+momenter og et mye forbedret installasjons<----. __ / __ \
+program. Se utgivelse-notatene for mere <----|====O)))==) \) /====
+detaljer om hva som er nytt i <----' `--' `.__,' \
+FreeBSD 2.0.5! | |
+ \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+
+Hva er FreeBSD? FreeBSD er et operativ system basert på 4.4 BSD Lite
+for Intel, AMD, Cyrix or NexGen "x86" basert PC maskinvare. Det fungerer
+med et veldig stor utvalg av PC ytre-enheter og konfigurasjoner og kan
+bli brukt til alt fra programvare utvikling til Internet Service
+Provision; den travleste plassen på Internetet, ftp.cdrom.com, er en
+FreeBSD maskin!
+
+Denne utgaven av FreeBSD inneholder alt du trenger for å drive et slikt
+system, pluss full kilde-kode til hele systemet. Med kilde-koden
+installert kan du om-kompilere hele systemet fra grunnen opp med
+en kommando, noe som gjøer systemet ideelt for studenter,
+forskere eller folk som bare vil se hvordan det hele virker.
+
+En stor samling av program som har blitt flyttet over av andre ("flytte
+samlingen") er også tilbrakt for å gjøre det enklere for deg
+å få tak i og installere dine yndlings program for UNIX.
+Over 270 program har blitt flyttet over til FreeBSD, fra
+redigerings-program til programmerings språk til grafiske applikasjoner,
+noe som gjør FreeBSD et kraftig og omfattende operativ miljø som
+er på likhet med mange store arbeidsmaskiner når det gjelder generell
+anvendelse og styrke.
+
+
+For mere dokumentasjon om dette systemet, anbefaler vi at du
+kjøper 4.4BSD Dokumentasjons settet fra O'Reilly Associates og
+USENIX Foreningen, ISBN 1-56592-082-1. Vi har ingen forbindelse med
+O'Reilly, vi er bare tilfredstilte kunder!
+
+Det er å anbefale at du også leser MASKINVARE GUIDEN *før*
+du fortsetter videre med installasjonen. Oppsett av PC
+maskinvare for alt annet enn DOS/Windows ( som ikke akkurat belaster
+maskinvaren ) er faktisk en hel del vanskeligere enn det ser ut til. Dersom
+du tror at du forstår deg på PCer, så har du tydeligvis ikke
+brukt dem lenge nok! :) Denne rettledningen vil gi deg noen tips om hvordan
+å sette opp maskinvaren og hva slags symptomer å se etter om du
+skulle få vanskeligheter. Denne rettledningen er tilgjengelig fra
+Dokumentasjons menyen på FreeBSD oppstartings-disketten.
+
+FRALEGGELSE: Selv om FreeBSD gjør sitt beste til å beskytte mot
+tilfeldig tap av data er det fremdeles mulig å slette ut hele disken
+i forbindelse med denne installasjonen. Vær så vennlig ikke å
+fortsette til den siste FreeBSD installasjons menyen uten at du har
+et sikkerhetskopi av alle viktige data først! Dette mener vi på
+alvor!
+
+Tekniske kommentarer om denne utgaven bør sendes (på Engelsk!) til:
+
+ hackers@FreeBSD.org
+
+
+Programfeil-rapporter bør sendes med å bruke `send-pr' kommandoen,
+dersom du var i stand til å installere systemet, ellers til:
+
+ bugs@FreeBSD.org
+
+Vær sikker på å indikere HVILKEN VERSJON av FreeBSD du kjrøer
+i enhver programfeil rapport!
+
+
+Generelle spørsmål bør sendes til:
+
+ questions@FreeBSD.org
+
+Vær så snill å ha tålmodighet dersom du ikke får svar
+med en gang - dette er en spesielt travel tid for oss, og våre
+frivillige resurser er ofte strekt til grensen! Programfeil rapporter
+som har blitt lagt fram med 'send-pr' kommandoen er ajourført og
+etterfulgt i vår programfeil database, og du kommer til å bli
+informert om enhver status-forandring så lenge programfeilen (eller
+moment etterspørsel) eksisterer.
+
+Vår WEB plass, http://www.freebsd.org, er også en veldig god kilde for
+oppdatert informasjon og tilbyr flere avanserte dokumenterings hjelpemidler.
+Du kan bruke BSDI versonen av Netscape for å surfe World Wide Web
+direkte fra FreeBSD.
+
+Du kan også se i /usr/share/FAQ og /usr/share/doc for videre informasjon
+om systemet.
+
+
+Takk for at du tok deg tid til å lese alt dette, og vi håper
+oppriktig at du vil nyte denne utgaven av FreeBSD!
+
+ Jordan Hubbard,
+ for FreeBSD Prosjektet
diff --git a/release/sysinstall/help/no_NO.ISO_8859-1/configure.hlp b/release/sysinstall/help/no_NO.ISO_8859-1/configure.hlp
new file mode 100644
index 0000000..6a02435
--- /dev/null
+++ b/release/sysinstall/help/no_NO.ISO_8859-1/configure.hlp
@@ -0,0 +1,16 @@
+Denne menyen lar deg konfigurere systemet ditt etter at det er
+installert. Du burde ihvertfall sette passordet til system-bestyreren og
+tidssonen for systemet.
+
+For ekstra godbiter som bash, emacs, pascal, osv. bør du ta en titt
+på Packages valget i denne menyen. Merk at dette valget, så langt,
+bare virker ordentlig dersom du har en CDROM eller en eksisterende
+pakke samling en eller annen plass i fil-hierarkiet hvor pakke-bestyrer
+programmet kan finne det. Automatisk overføring av pakkene via FTP
+er ikke mulig ennå!
+
+Dersom du ønsker å pøkalle pakke installasjons programmet på
+nytt etter at du har forlatt system-installasjons-programmet, bruk
+kommandoen ''pkg_manage''. For å sette tidssonen, skriv ''tzsetup''.
+For mere informasjon om konfigurasjonen av systemet, se i /etc/sysconfig
+filen.
diff --git a/release/sysinstall/help/no_NO.ISO_8859-1/language.hlp b/release/sysinstall/help/no_NO.ISO_8859-1/language.hlp
new file mode 100644
index 0000000..efdd21f
--- /dev/null
+++ b/release/sysinstall/help/no_NO.ISO_8859-1/language.hlp
@@ -0,0 +1,13 @@
+Bruk denne menyen til å velge språket du foretrekker. Dette setter
+bare språket som blir brukt når hjelpefilene er vist fram.
+
+I framtidige utgaver vil dette også forandre tastaturet, skjerm kartet,
+NLS oppsettet ( sysinstall vil også bruke beskjed kataloger slik at
+alle menyene blir vist frem i språket du valgte) og utføre andre
+I18N momenter for å følge forskjellige normer.
+
+Inntil disse forbedringene er utført, vil du kanskje finne det
+enklest å redigere /etc/sysconfig filen selv etter systemet er
+ferdig installert. Det er mange merknader i den filen som beskriver
+hva som må forandres, og ett par eksempler på eksisterende
+språk oppsett.
diff --git a/release/sysinstall/help/no_NO.ISO_8859-1/usage.hlp b/release/sysinstall/help/no_NO.ISO_8859-1/usage.hlp
new file mode 100644
index 0000000..01c3d1d
--- /dev/null
+++ b/release/sysinstall/help/no_NO.ISO_8859-1/usage.hlp
@@ -0,0 +1,56 @@
+HVORDAN Å BRUKE SYSTEMET
+=========================
+
+TAST FUNKSJON
+---- --------
+PIL OPP Flytte til forrige dataelement (eller opp, i et tekstfelt).
+PIL NED Flytte til neste dataelement (eller ned, i et tekstfelt).
+TAB Flytte til neste dataelement eller gruppe.
+HØYRE PIL Flytte til neste dataelement eller gruppe (samme som TAB).
+SKIFT-TAB Flytte til forrige dataelement eller gruppe.
+VENSTRE PIL Flytte til forrige dataelement eller gruppe (samme
+ som SKIFT-TAB).
+RETUR Velge dataelement.
+SIDE OPP I tekstbokser, ruller opp en side.
+SIDE NED I tekstbokser, ruller ned en side.
+MELLOMROM I "radio" eller flervalgs menyer, markere inneværende
+ dataelement.
+F1 Hjelp (i de skjermene som støtter dette).
+
+Dersom du også ser små "^(-)" eller "v(+)" symboler på kantene av
+en meny, betyr det at det er flere dataelementer ovenfor eller nedenfor
+det aktive elementet som ikke blir fremvist (p.g.a. mangel på skjermplass).
+Pil Opp/Ned-tastene ruller menyen. Når ett av disse symbolene forsvinner,
+betyr det at du er på toppen (eller bunnen) av menyen.
+
+I et tekstfelt vil prosenten av igjenomgått tekst bli vist i nedre høyre
+hjørne av feltet. 100% betyr at du er på bunnen av feltet.
+
+Valg av OK i en meny, bekrefter den funksjonen som menyen kontrollerer.
+Valg av Cancel vil avbryte operasjonen og generelt sett returnere til
+forrige meny.
+
+
+SPESIELLE MOMENTER:
+===================
+
+Det er også mulig å velge et meny element ved å trykke på første
+bokstaven av navnet, dersom den er unik. Slike "akselerasjonsbokstaver"
+vil være spesielt markert i elementnavnet.
+
+Konsolldriveren har en innebygget rulle-tilbake buffer some en kan bruke
+til å inspisere ting som har rullet ut av skjermen. For å bruke
+rulle-tilbake funksjonen, trykk på "Scroll Lock" tasten på tastaturet.
+Piltastene og Side Opp/Ned tastene kan nå brukes til å gå
+igjennom den lagrede teksten. For å forlate rulle-tilbake modusen,
+trykk på "Scroll Lock" tasten igjen. Dette momentet er best egnet for å
+håndtere underordnede-skjell og andre "vidundermoduser" som ikke bruker
+menyer.
+
+Når systemet er ferdig installert og kjører i fler-bruker modus, vil
+du også finne at du har mange "virtuelle konsoller" til rådighet og
+kan bruke dem til å ha flere aktive sesjoner på en gang. Bruk ALT-F<n>
+til å velge mellom dem, hvor 'F<n>' er funksjons-tasten som korresponderer
+med den skjermen du ønsker å se. Systemet, som det blir installert, har
+normalt 3 virtuelle konsoller. Du kan lage flere med å redigere /etc/ttys
+filen, etter systemet har kommet opp, opptil et maksimum av 12.
diff --git a/release/sysinstall/help/options.hlp b/release/sysinstall/help/options.hlp
new file mode 100644
index 0000000..c30180c
--- /dev/null
+++ b/release/sysinstall/help/options.hlp
@@ -0,0 +1,95 @@
+The following options may be set from this screen:
+
+NFS Secure: NFS server talks only on a secure port
+
+ This is most commonly used when talking to Sun workstations, which
+ will not talk NFS over "non priviledged" ports.
+
+
+NFS Slow: User is using a slow PC or ethernet card
+
+ Use this option if you have a slow PC (386) or an ethernet card
+ with poor performance being "fed" by NFS on a higher-performance
+ workstation. This will throttle the workstation back to prevent
+ the PC from becoming swamped with data.
+
+
+FTP Abort: On transfer failure, abort
+
+ This is pretty self-explanatory. If you're transfering from a
+ host that drops the connection or cannot provide a file, abort
+ the installation of that piece.
+
+
+FTP Reselect: On transfer failure, ask for another host
+
+ This is more useful to someone doing an interactive installation.
+ If the current host stops working, ask for a new ftp server to
+ resume the installation from. The install will attempt to pick
+ up from where it left off on the other server, if at all possible.
+
+
+FTP Active: Use "active mode" for standard FTP
+
+ For all FTP transfers, use "Active" mode. This will not work
+ through firewalls, but will often work with older ftp servers
+ that do not support passive mode. If your connection hangs
+ with passive mode (the default), try active!
+
+
+FTP Passive: Use "passive mode" for firewalled FTP
+
+ For all FTP transfers, use "Passive" mode. This allows the user
+ to pass through firewalls that do not allow incoming connections
+ on random port addresses.
+
+ NOTE: ACTIVE AND PASSIVE MODES ARE NOT THE SAME AS A `PROXY'
+ CONNECTION, WHERE A PROXY FTP SERVER IS LISTENING ON A DIFFERENT
+ PORT!
+
+ In such situations, you should specify the URL as something like:
+
+ ftp://foo.bar.com:1234/pub/FreeBSD
+
+ Where "1234" is the port number of the proxy ftp server.
+
+
+Debugging: Turn on the extra debugging flag
+
+ This turns on a lot of extra noise over on the second screen
+ (ALT-F2 to see it, ALT-F1 to switch back). If your installation
+ should fail for any reason, PLEASE turn this flag on when
+ attempting to reproduce the problem. It will provide a lot of
+ extra debugging at the failure point and may be very helpful to
+ the developers in tracking such problems down!
+
+
+Yes To All: Assume "Yes" answers to all non-critical dialogs
+
+ This flag should be used with caution. It will essentially
+ decide NOT to ask the user about any "boundry" conditions that
+ might not constitute actual errors but may be warnings indicative
+ of other problems.
+
+
+FTP userpass: Specify username and password instead of anonymous.
+
+ By default, the installation attempts to log in as the
+ anonymous user. If you wish to log in as someone else,
+ specify the username and password with this option.
+
+
+Clear: Clear All Option Flags
+
+ Reset all option flags back to their default values.
+
+----
+
+Some of these items, like "FTP Active" or "FTP Passive", are actually
+mutually-exclusive even though you can turn all of them on or off at
+once. This is a limitation of the menuing system, and is compensated
+for by checks that ensure that the various flags are not in conflict.
+If you re-enter the Options menu again after leaving it, you'll see
+the settings it's actually using after checking for any possible
+conflicts.
+
diff --git a/release/sysinstall/help/partition.hlp b/release/sysinstall/help/partition.hlp
new file mode 100644
index 0000000..19b6ce1
--- /dev/null
+++ b/release/sysinstall/help/partition.hlp
@@ -0,0 +1,122 @@
+This is the FreeBSD DiskLabel Editor.
+
+You should use this editor to create at least the following
+filesystems:
+
+ Name Purpose Min Size? Optional?
+ ---- ------- --------- ---------
+ / Root filesystem 20MB No
+ swap Swap space 2 * MEM No
+ /usr System & user files 80MB or more Yes
+
+Note: If you do not create a /usr filesystem then your / filesystem
+will need to be bigger - at least 100MB. This is not recommended as
+any media errors that may occur during disk I/O to user files will
+corrupt the filesystem containing vital system files as well. It is
+for this reason that / is generally kept on its own filesystem, where
+it's basically considered "read only" by the system and hence a good
+deal safer.
+
+Swap space is a little tricker, and the rule of "2 * MEM" is simply a
+best-guess approximation and not necessarily accurate for your
+intended usage of the system. If you intend to use the system heavily
+in a server or multi-user application, you may be well advised to
+increase this size. You may also create swap space on multiple drives
+for a larger "total" swap and this is, in fact, recommended if you
+have multiple, fast drives for which such load-balancing can only help
+overall I/O performance.
+
+The /usr filesystem should be sized according to what kind of
+distributions you're trying to load and how many packages you intend
+to install in locations like /usr/local. You can also make /usr/local
+a separate filesystem if you don't want to risk filling up your /usr
+by mistake.
+
+Another useful filesystem to create is /var, which contains mail, news
+printer spool files and other temporary items. It is a popular
+candidate for a separate paritition and should be sized according to
+your estimates of the amount of mail, news or spooled print jobs that
+may be stored there.
+
+WARNING: If you do not create a separate filesystem for /var, space
+for such files will be allocated out of the root (/) filesystem
+instead. You may therefore wish to make the / partition bigger if you
+expect a lot of mail or news and do not want to make /var its own
+partition.
+
+
+If you're new to this installation, you should also first understand
+how FreeBSD 2.0.5's new "slices" paradigm for looking at disk storage
+works. It's not very hard to grasp. A "fully qualified slice name",
+that is the name of the file we open in /dev to talk to the slice, is
+optionally broken into 3 parts:
+
+ First you have the disk name. Assume we have two SCSI
+ drives in our system, which gives us `sd0' and `sd1'.
+
+ Next you have the "Slice" (or "FDISK Partition") number,
+ as seen in the Partition Editor. Assume that our sd0 contains
+ two slices, a FreeBSD slice and a DOS slice. This gives us
+ sd0s1 and sd0s2. Let's also say that sd1 is completely devoted
+ to FreeBSD, so we have only one slice there: sd1s1.
+
+ Next, if a slice is a FreeBSD slice, you have a number of
+ (confusingly named) "partitions" you can put inside of it.
+ These FreeBSD partitions are where various filesystems or swap
+ areas live, and using our hypothetical two-SCSI-disk machine
+ again, we might have something like the following layout on sd0:
+
+ Name Mountpoint
+ ---- ----------
+ sd0s1a /
+ sd0s1b <swap space>
+ sd0s1e /usr
+
+ Because of historical convention, there is also a short-cut,
+ or "compatibility slice", that is maintained for easy access
+ to the first FreeBSD slice on a disk for those programs which
+ still don't know how to deal with the new slice scheme.
+ The compatibility slice names for our filesystem above would
+ look like:
+
+ Name Mountpoint
+ ---- ----------
+ sd0a /
+ sd0b <swap space>
+ sd0e /usr
+
+ FreeBSD automatically maps the compatibility slice to the first
+ FreeBSD slice it finds (in this case, sd0s1). You may have multiple
+ FreeBSD slices on a drive, but only the first one may be the
+ compatibility slice!
+
+ The compatibility slice will eventually be phased out, but
+ it is still important right now for several reasons:
+
+ 1. Some programs, as mentioned before, still don't work
+ with the slice paradigm and need time to catch up.
+
+ 2. The FreeBSD boot blocks are unable to look for
+ a root file system in anything but a compatibility
+ slice right now. This means that our root will always
+ show up on "sd0a" in the above scenario, even though
+ it really lives over on sd0s1a and would otherwise be
+ referred to by its full slice name.
+
+Once you understand all this, then the label editor becomes fairly
+simple. You're either carving up the FreeBSD slices displayed at the
+top of the screen into smaller pieces (displayed in the middle of the
+screen) and then putting FreeBSD file systems on them, Or you're just
+mounting existing partitions/slices into your filesystem hierarchy;
+this editor lets you do both. Since a DOS partition is also just
+another slice as far as FreeBSD is concerned, you can mount one into
+in your filesystem hierarchy just as easily with this editor. For
+FreeBSD partitions you can also toggle the "newfs" state so that
+the partitions are either (re)created from scratch or simply checked
+and mounted (the contents are preserved).
+
+When you're done, type `Q' to exit.
+
+No actual changes will be made to the disk until you (C)ommit from the
+Install menu! You're working with what is essentially a copy of
+the disk label(s), both here and in the FDISK Partition Editor.
diff --git a/release/sysinstall/help/readme.hlp b/release/sysinstall/help/readme.hlp
new file mode 100644
index 0000000..c166e26
--- /dev/null
+++ b/release/sysinstall/help/readme.hlp
@@ -0,0 +1,104 @@
+ -----------------------------------------
+ FreeBSD 2.0.5 --- RELEASE Version , ,
+ ----------------------------------------- /( )`
+ \ \___ / |
+Welcome to the 2.0.5 release of FreeBSD! 2.0.5 is /- _ `-/ '
+an interim release of FreeBSD, filling a critical (/\/ \ \ /\
+gap during the period between 2.0R (which was / / | ` \
+released in Nov 94) and 2.1R, which will be O O ) / |
+released in late July of '95. FreeBSD 2.0.5 `-^--'`< '
+contains many substantial improvements from 2.0R, (_.) _ ) /
+not least of which is greater stability (by `.___/` /
+a considerable margin), dozens of new `-----' /
+features and a greatly enhanced <----. __ / __ \
+installation program. See the release <----|====O)))==) \) /====
+notes for more details on what's new in <----' `--' `.__,' \
+FreeBSD 2.0.5! | |
+ \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+
+What is FreeBSD? FreeBSD is an operating system based on 4.4 BSD Lite
+for Intel, AMD, Cyrix or NexGen "x86" based PC hardware. It works
+with a very wide variety of PC peripherals and configurations and can
+be used for everything from software development to Internet Service
+Provision; the busiest site on the Internet, ftp.cdrom.com, is a
+FreeBSD machine!
+
+This release of FreeBSD contains everything you need to run such a
+system, plus full source code for everything. With the source
+distribution installed you can literally recompile the entire system
+from scratch with one command, making it ideal for students,
+researchers or folks who simply want to see how it all works.
+
+A large collection of 3rd party ported software (the "ports
+collection") is also provided to make it easier for you to obtain and
+install all your favorite traditional UNIX utilities for FreeBSD.
+Over 270 ports, from editors to programming languages to graphical
+applications, make FreeBSD a powerful and comprehensive operating
+environment that rivals that of many large workstations for general utility
+and power.
+
+
+For more documentation on this system, it is recommended that you
+purchase the 4.4BSD Document Set from O'Reilly Associates and the
+USENIX Association, ISBN 1-56592-082-1. We have no connection with
+O'Reilly, we're just satisfied customers!
+
+You may also wish to read the HARDWARE GUIDE *before* proceeding any
+further with the installation. Configuring PC hardware for anything
+other than DOS/Windows (which don't actually make very significant
+demands on the hardware) is actually quite a bit harder than it looks,
+and if you think you understand PCs then you clearly haven't been
+using them for long enough! :) This guide will give you some tips on
+how to configure your hardware and what symptoms to watch for in case
+of trouble. This guide is available in the Documentation menu of the
+FreeBSD boot floppy.
+
+DISCLAIMER: While FreeBSD does its best to safeguard against accidental
+loss of data, it's still more than possible to WIPE OUT YOUR ENTIRE DISK
+with this installation! Please do not proceed to the final FreeBSD
+installation menu unless you've adequately backed up any important
+data first! We really mean it!
+
+Technical comments on this release should be sent (in English!) to:
+
+ hackers@FreeBSD.org
+
+
+Bug reports should be sent using the `send-pr' command, if you were
+able to get the system installed, otherwise to:
+
+ bugs@FreeBSD.org
+
+Please be sure to indicate WHICH VERSION of FreeBSD you're running in
+any bug reports!
+
+
+General questions should be sent to:
+
+ questions@FreeBSD.org
+
+Please have patience if your questions are not answered right away -
+this is an especially busy time for us, and our volunteer resources
+are often strained to the limit! Bug reports submitted with the
+send-pr command are logged and tracked in our bugs database, and
+you'll be kept informed of any changes in status during the life of
+the bug (or feature request).
+
+Our WEB site, http://www.freebsd.org, is also a very good source for
+updated information and provides a number of advanced documentation
+facilities. You may use the BSDI version of Netscape for browsing the
+World Wide Web directly from FreeBSD.
+
+You may also wish to look in /usr/share/FAQ and /usr/share/doc for
+further information on the system.
+
+
+Thanks for reading all of this, and we sincerely hope you enjoy this
+release of FreeBSD!
+
+ Jordan Hubbard,
+ for The FreeBSD Project
diff --git a/release/sysinstall/help/relnotes.hlp b/release/sysinstall/help/relnotes.hlp
new file mode 100644
index 0000000..d4e30e7
--- /dev/null
+++ b/release/sysinstall/help/relnotes.hlp
@@ -0,0 +1,747 @@
+ RELEASE NOTES
+ FreeBSD
+ Release 2.0.5
+
+1. Technical overview
+---------------------
+
+FreeBSD is a freely available, full source 4.4 BSD Lite based release
+for Intel i386/i486/Pentium (or compatible) based PC's. It is based
+primarily on software from U.C. Berkeley's CSRG group, with some
+enhancements from NetBSD, 386BSD, and the Free Software Foundation.
+
+Since our release of FreeBSD 2.0 some 8 months ago, the performance,
+feature set, and stability of FreeBSD has improved dramatically. The
+largest change is a revamped VM system with a merged VM/file buffer
+cache that not only increases performance, but reduces FreeBSD's
+memory footprint, making a 4MB configuration a more acceptable
+minimum. Other enhancements include full NIS client and server
+support, transaction TCP support, dial-on-demand PPP, an improved SCSI
+subsystem, early ISDN support, support for FDDI and Fast Ethernet
+(100Mbit) adapters, improved support for the Adaptec 2940 (WIDE and
+narrow) and many hundreds of bug fixes.
+
+We've also taken the comments and suggestions of many of our users to
+heart and have attempted to provide what we hope is a more sane and
+easily understood installation process. Your feedback on this
+(constantly evolving) process is especially welcome!
+
+In addition to the base distributions, FreeBSD offers a new ported
+software collection with some 270 commonly sought-after programs. The
+list of ports ranges from http (WWW) servers, to games, languages,
+editors and almost everything in between. The entire ports collection
+requires only 10MB of storage, all ports being expressed as "deltas"
+to their original sources. This makes it much easier for us to update
+ports, and greatly reduces the disk space demands made by the older
+1.0 ports collection. To compile a port, you simply change to the
+directory of the program you wish to install, type make and let the
+system do the rest. The full original distribution for each port you
+build is retrieved dynamically off of CDROM or a local ftp site, so
+you need only enough disk space to build the ports you want. (Almost)
+every port is also provided as a pre-compiled "package" which can be
+installed with a simple command (pkg_add) by those who do not wish to
+compile their own ports from source. See the file:
+ /usr/share/FAQ/Text/ports.FAQ
+for a more complete description of the ports collection.
+
+
+Since our first release of FreeBSD 1.0 nearly two years ago, FreeBSD
+has changed almost entirely. A new port from the Berkeley 4.4 code
+base was done, which brought the legal status of the system out of the
+shadows with the blessing of Novell (the new owners of USL and UNIX). The
+port to 4.4 has also brought in a host of new features, filesystems
+and enhanced driver support. With our new unencumbered code base, we
+have every reason to hope that we'll be able to release quality
+operating systems without further legal encumbrance for some time to
+come!
+
+FreeBSD 2.0.5 represents the culmination of 2 years of work and many
+thousands of man hours put in by an international development team.
+We hope you enjoy it!
+
+A number of additional documents which you may find very helpful in
+the process of installing and using FreeBSD may also be found in
+the "FAQ" directory, either under /usr/share/FAQ on an installed
+system or at the top level of the CDROM or FTP distribution from
+where you're reading this file. Please consult FAQ/Text/ROADMAP
+for a brief description of the resources provided by the FAQ directory.
+
+For a list of contributors and a general project description, please see
+the file "CONTRIB.FreeBSD" which should be bundled with your binary
+distribution.
+
+Also see the "REGISTER.FreeBSD" file for information on registering
+with the "Free BSD user counter". This counter is for ALL freely
+available variants of BSD, not just FreeBSD, and we urge you to register
+yourself with it.
+
+The core of FreeBSD does not contain DES code which would inhibit its
+being exported outside the United States. There is an add-on package
+to the core distribution, for use only in the United States, that
+contains the programs that normally use DES. The auxiliary packages
+provided separately can be used by anyone. A freely (from outside the
+U.S.) exportable European distribution of DES for our non-U.S. users also
+exists and is described in the FreeBSD FAQ.
+
+If password security for FreeBSD is all you need, and you have no
+requirement for copying encrypted passwords from different hosts
+(Suns, DEC machines, etc) into FreeBSD password entries, then
+FreeBSD's MD5 based security may be all you require! We feel that our
+default security model is more than a match for DES, and without any
+messy export issues to deal with. If you're outside (or even inside)
+the U.S., give it a try!
+
+
+1.1 What's new in 2.0.5?
+------------------------
+
+The following features were added or substantially improved between
+the release of 2.0 and this 2.0.5 release. In order to facilitate
+better communication, the person, or persons, responsible for each
+enhancement is noted. Any questions regarding the new functionality
+should be directed to them first.
+
+KERNEL:
+
+Merged VM-File Buffer Cache
+---------------------------
+A merged VM/buffer cache design greatly enhances overall system
+performance and makes it possible to do a number of more optimal
+memory allocation strategies that were not possible before.
+
+Owner: David Greenman (davidg@FreeBSD.org) and
+ John Dyson (dyson@implode.root.com)
+
+
+Network PCB hash optimization
+-----------------------------
+For systems with a great number of active TCP connections (WEB and ftp
+servers, for example), this greatly speeds up the lookup time required
+to match an incoming packet up to its associated connection.
+
+Owner: David Greenman (davidg@FreeBSD.org)
+
+
+Name cache optimization
+-----------------------
+The name-cache would cache all files of the same name to the same bucket,
+which would put for instance all ".." entries in the same bucket. We added
+the parent directory version to frustrate the hash, and improved the
+management of the cache in various other ways while we were at it.
+
+Owner: Poul-Henning Kamp (phk@FreeBSD.org)
+ David Greenman (davidg@FreeBSD.org)
+
+
+Less restrictive swap-spaces
+----------------------------
+The need to compile the names of the swap devices into the kernel has been
+removed. Now swapon will accept any block devices, up to the maximum
+number of swap devices configured in the kernel.
+
+Owner: Poul-Henning Kamp (phk@FreeBSD.org)
+ David Greenman (davidg@FreeBSD.org)
+
+
+Hard Wired SCSI Devices
+-----------------------
+Prior to 2.0.5, FreeBSD performed dynamic assignment of unit numbers
+to SCSI devices as they were probed, allowing a SCSI device failure to
+possibly change unit number assignment and prevent filesystems on
+still functioning disks from mounting. Hard wiring allows static
+allocation of unit numbers (and hence device names) to scsi devices
+based on SCSI ID and bus. SCSI configuration occurs in the kernel
+config file. Samples of the configuration syntax can be found in the
+scsi(4) man page or the LINT kernel config file.
+
+Owner: Peter Dufault (dufault@hda.com)
+Sources involved: sys/scsi/* usr.sbin/config/*
+
+
+Slice Support
+-------------
+FreeBSD now supports a "slice" abstraction which makes it more
+completely interoperable with other operating system partitions. This
+support will allow FreeBSD to inhabit DOS extended partitions.
+
+Owner: Bruce Evans (bde@FreeBSD.org)
+Sources involved: sys/disklabel.h sys/diskslice.h sys/dkbad.h
+ kern/subr_diskslice.c kern/subr_dkbad.c
+ i386/isa/diskslice_machdep.c
+ i386/isa/wd.c scsi/sd.c dev/vn/vn.c
+
+
+Support for Ontrack Disk Manager Version 6.0
+--------------------------------------------
+Support has been added for disks which use Ontrack Disk Manager. The
+fdisk program does NOT know about it however, so make all changes
+using the install program on the boot.flp or the Ontrack Disk Manager
+tool under DOS.
+
+Owner: Poul-Henning Kamp (phk@FreeBSD.org)
+
+
+Bad144 is back and working
+--------------------------
+Bad144 works again, though the semantics are slightly different than
+before in that the bad-spots are kept relative to the slice rather
+than absolute on the disk.
+
+Owner: Bruce Evans (bde@FreeBSD.org)
+ Poul-Henning Kamp (phk@FreeBSD.org)
+
+
+NEW DEVICE SUPPORT:
+
+ SCSI and CDROM Devices
+
+Matsushita/Panasonic (Creative) CD-ROM driver
+---------------------------------------------
+The Matsushita/Panasonic CR-562 and CR-563 drives are now supported
+when connected to a Sound Blaster or 100% compatible host adapter. Up
+to four host adapters are supported for a total of 16 CD-ROM drives.
+The audio functions are supported, along with access to the raw (2352 byte)
+data frames of any compact disc. Audio discs may be played using Karoke
+variable speed functions.
+
+Owner: Frank Durda IV bsdmail@nemesis.lonestar.org
+Sources involved: isa/matcd
+
+
+Adaptec 2742/2842/2940 SCSI driver
+----------------------------------
+The original 274x/284x driver has evolved considerably since the 2.0
+release. We now offer full support for the 2940 series as well as the
+Wide models of these cards. The arbitration bug (as well as many
+others) that caused the driver problems with fast devices has been
+corrected and there is even experimental tagged queuing support
+(kernel option "AHC_TAGENABLE"). John Aycock has also released the
+sequencer code under a "Berkeley style" copyright making the driver
+entirely clean of the GPL.
+
+Owner: Justin Gibbs (gibbs@FreeBSD.org)
+Sources involved: isa/aic7770.c pci/aic7870.c i386/scsi/*
+ sys/dev/aic7xxx/*
+
+
+NCR5380/NCR53400 SCSI ("ProAudio Spectrum") driver
+--------------------------------------------------
+Owner: core
+Submitted by: Serge Vakulenko (vak@cronyx.ru)
+Sources involved: isa/ncr5380.c
+
+
+Sony CDROM driver
+-----------------
+Owner: core
+Submitted by: Mikael Hybsch (micke@dynas.se)
+Sources involved: isa/scd.c
+
+
+ Serial Devices
+
+SDL Communications Riscom/8 Serial Board Driver
+-----------------------------------------------
+Owner: Andrey Chernov (ache@FreeBSD.org)
+Sources involved: isa/rc.c isa/rcreg.h
+
+
+Cyclades Cyclom-y Serial Board Driver
+-------------------------------------
+Owner: Bruce Evans (bde@FreeBSD.org)
+Submitted by: Andrew Werple (andrew@werple.apana.org.au) and
+ Heikki Suonsivu (hsu@cs.hut.fi)
+Obtained from: NetBSD
+Sources involved: isa/cy.c
+
+
+Cronyx/Sigma sync/async serial driver
+-------------------------------------
+Owner: core
+Submitted by: Serge Vakulenko
+Sources involved: isa/cronyx.c
+
+
+
+ Networking
+
+Diskless booting
+----------------
+Diskless booting in 2.0.5 is much improved. The boot-program is in
+src/sys/i386/boot/netboot, and can be run from an MSDOS system or
+burned into an EPROM. Local swapping is also possible. WD, SMC, 3COM
+and Novell ethernet cards are currently supported.
+
+
+DEC DC21140 Fast Ethernet driver
+--------------------------------
+This driver supports any of the numerous NICs using the DC21140 chipset
+including the 100Mb DEC DE-500-XA and SMC 9332.
+
+Owner: core
+Submitted by: Matt Thomas (thomas@lkg.dec.com)
+Sources involved: pci/if_de.c pci/dc21040.h
+
+
+DEC FDDI (DEFPA/DEFEA) driver
+-----------------------------
+Owner: core
+Submitted by: Matt Thomas (thomas@lkg.dec.com)
+Sources involved: pci/if_pdq.c pci/pdq.c pci/pdq_os.h pci/pdqreg.h
+
+
+3Com 3c505 (Etherlink/+) NIC driver
+-----------------------------------
+Owner: core
+Submitted by: Dean Huxley (dean@fsa.ca)
+Obtained from: NetBSD
+Sources involved: isa/if_eg.c
+
+
+Fujitsu MB86960A family of NICs driver
+-------------------------------------
+Owner: core
+Submitted by: M.S. (seki@sysrap.cs.fujitsu.co.jp)
+Sources involved: isa/if_fe.c
+
+
+Intel EtherExpress driver
+-------------------------
+Owner: Rodney W. Grimes (rgrimes@FreeBSD.org)
+Sources involved: isa/if_ix.c isa/if_ixreg.h
+
+
+3Com 3c589 driver
+-----------------
+Owner: core
+Submitted by: "HOSOKAWA Tatsumi" (hosokawa@mt.cs.keio.ac.jp),
+ Seiji Murata (seiji@mt.cs.keio.ac.jp) and
+ Noriyuki Takahashi (hor@aecl.ntt.jp)
+Sources involved: isa/if_zp.c
+
+
+IBM Credit Card Adapter driver
+------------------------------
+Owner: core
+Submitted by: "HOSOKAWA Tatsumi" (hosokawa@mt.cs.keio.ac.jp),
+Sources involved: isa/pcic.c isa/pcic.h
+
+
+EDSS1 and 1TR6 ISDN interface driver
+------------------------------------
+Owner: core
+Submitted by: Dietmar Friede (dfriede@drnhh.neuhaus.de) and
+ Juergen Krause (jkr@saarlink.de)
+Sources involved: gnu/isdn/*
+
+
+ Miscellaneous Drivers
+
+Joystick driver
+---------------
+Owner: Jean-Marc Zucconi (jmz@FreeBSD.org)
+Sources involved: isa/joy.c
+
+
+National Instruments "LabPC" driver
+-----------------------------------
+Owner: Peter Dufault (dufault@hda.com)
+Sources involved: isa/labpc.c
+
+
+WD7000 driver
+-------------
+Owner: Olof Johansson (offe@ludd.luth.se)
+
+
+Pcvt Console driver
+-------------------
+Owner: Joerg Wunsch (joerg@FreeBSD.org)
+Submitted by: Hellmuth Michaelis (hm@altona.hamburg.com)
+Sources involved: isa/pcvt/* usr.sbin/pcvt/*
+
+
+BSD-audio emulator for VAT driver
+---------------------------------
+Owner: Amancio Hasty (ahasty@FreeBSD.org) and
+ Paul Traina (pst@FreeBSD.org)
+Sources involved: isa/sound/vat_audio.c isa/sound/vat_audioio.h
+
+
+National Instruments AT-GPIB and AT-GPIB/TNT GPIB driver
+--------------------------------------------------------
+Owner: core
+Submitted by: Fred Cawthorne (fcawth@delphi.umd.edu)
+Sources involved: isa/gpib.c isa/gpib.h isa/gpibreg.h
+
+
+Genius GS-4500 hand scanner driver
+----------------------------------
+Owner: core
+Submitted by: Gunther Schadow (gusw@fub46.zedat.fu-berlin.de)
+Sources involved: isa/gsc.c isa/gscreg.h
+
+
+CORTEX-I Frame Grabber
+----------------------
+Owner: core
+Submitted by: Paul S. LaFollette, Jr.
+Sources involved: isa/ctx.c isa/ctxreg.h
+
+
+Video Spigot video capture card
+-------------------------------
+Owner: Jim Lowe
+
+
+
+1.2 Experimental features
+-------------------------
+
+The unionfs and LFS file systems are known to be severely broken in
+2.0.5. This is in part due to old bugs that we haven't had time to
+resolve yet and the need to update these file systems to deal with the
+new VM system. We hope to address these issues in a later release of
+FreeBSD.
+
+FreeBSD now supports running iBCS2 compatible binaries (currently SCO
+UNIX 3.2.2 & 3.2.4 and ISC 2.2 COFF format are supported). The iBCS2
+emulator is in its early stages, but it is functional, we haven't been
+able to do exhaustive testing (lack of commercial apps), but almost
+all of SCO's 3.2.2 binaries are working, so is an old INFORMIX-2.10
+for SCO. Further testing is nessesary to complete this project. There
+is also work under way for ELF & XOUT loaders, and most of the svr4
+syscall wrappers have been written.
+
+FreeBSD also implements enough of its Linux compatibility that we
+can now run Linux DOOM! See the ``xperimnt'' directory (on your local
+FTP server or CDROM) for full docs on how to set this up.
+
+Owner: Soren Schmidt (sos) & Sean Eric Fagan (sef)
+Sources involved: sys/i386/ibcs2/* + misc kernel changes.
+
+
+2. Supported Configurations
+---------------------------
+
+FreeBSD currently runs on a wide variety of ISA, VLB, EISA and PCI bus
+based PC's, ranging from 386sx to Pentium class machines (though the
+386sx is not recommended). Support for generic IDE or ESDI drive
+configurations, various SCSI controller, network and serial cards is
+also provided.
+
+Following is a list of all disk controllers and ethernet cards currently
+known to work with FreeBSD. Other configurations may very well work, and
+we have simply not received any indication of this.
+
+
+2.1. Disk Controllers
+---------------------
+
+WD1003 (any generic MFM/RLL)
+WD1007 (any generic IDE/ESDI)
+IDE
+ATA
+
+Adaptec 152x series ISA SCSI controllers
+Adaptec 154x series ISA SCSI controllers
+Adaptec 174x series EISA SCSI controller in standard and enhanced mode.
+Adaptec 274X/284X/2940 (Narrow/Wide/Twin) series ISA/EISA/PCI SCSI controllers
+Adaptec AIC-6260 and AIC-6360 based boards, which includes
+the AHA-152x and SoundBlaster SCSI cards.
+
+** Note: You cannot boot from the SoundBlaster cards as they have no
+ on-board BIOS, which is necessary for mapping the boot device into the
+ system BIOS I/O vectors. They're perfectly usable for external tapes,
+ CDROMs, etc, however. The same goes for any other AIC-6x60 based card
+ without a boot ROM. Some systems DO have a boot ROM, which is generally
+ indicated by some sort of message when the system is first powered up
+ or reset. Check your system/board documentation for more details.
+
+[Note that Buslogic was formerly known as "Bustec"]
+Buslogic 545S & 545c
+Buslogic 445S/445c VLB SCSI controller
+Buslogic 742A, 747S, 747c EISA SCSI controller.
+Buslogic 946c PCI SCSI controller
+Buslogic 956c PCI SCSI controller
+
+NCR 53C810 and 53C825 PCI SCSI controller.
+NCR5380/NCR53400 ("ProAudio Spectrum") SCSI controller.
+
+DTC 3290 EISA SCSI controller in 1542 emulation mode.
+
+UltraStor 14F, 24F and 34F SCSI controllers.
+
+Seagate ST01/02 SCSI controllers.
+
+Future Domain 8xx/950 series SCSI controllers.
+
+WD7000 SCSI controller.
+
+With all supported SCSI controllers, full support is provided for
+SCSI-I & SCSI-II peripherals, including Disks, tape drives (including
+DAT) and CD ROM drives.
+
+The following CD-ROM type systems are supported at this time:
+(cd) SCSI (also includes ProAudio Spectrum and SoundBlaster SCSI)
+(mcd) Mitsumi proprietary interface
+(matcd) Matsushita/Panasonic (Creative) proprietary interface
+(scd) Sony proprietary interface
+
+Note: CD-Drives with IDE interfaces are not supported at this time.
+
+Some controllers have limitations with the way they deal with >16MB of
+memory, due to the fact that the ISA bus only has a DMA address space
+of 24 bits. If you do your arithmetic, you'll see that this makes it
+impossible to do direct DMA to any address >16MB. This limitation is
+even true of some EISA controllers (which are normally 32 bit) when
+they're configured to emulate an ISA card, which they then do in *all*
+respects. This problem is avoided entirely by IDE controllers (which
+do not use DMA), true EISA controllers (like the UltraStor, Adaptec
+1742A or Adaptec 2742) and most VLB (local bus) controllers. In the
+cases where it's necessary, the system will use "bounce buffers" to
+talk to the controller so that you can still use more than 16Mb of
+memory without difficulty.
+
+
+2.2. Ethernet cards
+-------------------
+
+Allied-Telesis AT1700 and RE2000 cards
+SMC Elite 16 WD8013 ethernet interface, and most other WD8003E,
+WD8003EBT, WD8003W, WD8013W, WD8003S, WD8003SBT and WD8013EBT
+based clones. SMC Elite Ultra is also supported.
+
+DEC EtherWORKS III NICs (DE203, DE204, and DE205)
+DEC EtherWORKS II NICs (DE200, DE201, DE202, and DE422)
+DEC DC21140 based NICs (SMC???? DE???)
+DEC FDDI (DEFPA/DEFEA) NICs
+
+Fujitsu FMV-181 and FMV-182
+
+Intel EtherExpress
+
+Isolan AT 4141-0 (16 bit)
+Isolink 4110 (8 bit)
+
+Novell NE1000, NE2000, and NE2100 ethernet interface.
+
+3Com 3C501 cards
+
+3Com 3C503 Etherlink II
+
+3Com 3c505 Etherlink/+
+
+3Com 3C507 Etherlink 16/TP
+
+3Com 3C509, 3C579, 3C589 (PCMCIA) Etherlink III
+
+Toshiba ethernet cards
+
+PCMCIA ethernet cards from IBM and National Semiconductor are also
+supported.
+
+
+2.3. Misc
+---------
+
+AST 4 port serial card using shared IRQ.
+
+ARNET 8 port serial card using shared IRQ.
+
+BOCA ATIO66 6 port serial card using shared IRQ.
+
+Cyclades Cyclom-y Serial Board.
+
+STB 4 port card using shared IRQ.
+
+Mitsumi (all models) CDROM interface and drive.
+
+SDL Communications Riscom/8 Serial Board.
+
+SoundBlaster SCSI and ProAudio Spectrum SCSI CDROM interface and drive.
+
+Matsushita/Panasonic (Creative SoundBlaster) CDROM interface and drive.
+
+Adlib, SoundBlaster, SoundBlaster Pro, ProAudioSpectrum, Gravis UltraSound
+and Roland MPU-401 sound cards.
+
+FreeBSD currently does NOT support IBM's microchannel (MCA) bus, but
+support is apparently close to materializing. Details will be posted
+as the situation develops.
+
+
+3. Obtaining FreeBSD
+--------------------
+
+You may obtain FreeBSD in a variety of ways:
+
+1. FTP/Mail
+
+You can ftp FreeBSD and any or all of its optional packages from
+`ftp.freebsd.org' - the official FreeBSD release site.
+
+For other locations that mirror the FreeBSD software see the file
+MIRROR.SITES. Please ftp the distribution from the nearest site
+to you netwise.
+
+If you do not have access to the internet and electronic mail is your
+only recourse, then you may still fetch the files by sending mail to
+`ftpmail@decwrl.dec.com' - putting the keyword "help" in your message
+to get more information on how to fetch files from ftp.freebsd.org.
+Note: This approach will end up sending many *tens of megabytes*
+through the mail, and should only be employed as an absolute LAST
+resort!
+
+
+2. CDROM
+
+FreeBSD 2.0.5 may be ordered on CDROM from:
+
+ Walnut Creek CDROM
+ 4041 Pike Lane, Suite D
+ Concord CA 94520
+ 1-800-786-9907, +1-510-674-0783, +1-510-674-0821 (fax)
+
+Or via the internet from orders@cdrom.com or http://www.cdrom.com.
+Their current catalog can be obtained via ftp as:
+ ftp://ftp.cdrom.com/cdrom/catalog.
+
+Cost per CD is $39.95, or $24.95 with a FreeBSD subscription. With
+a subscription, you will automatically receive updates as they
+are released. Your credit card will be billed when each disk is shipped
+and you may cancel your subscription at any time without further obligation.
+
+Walnut Creek CDROM also sells a full line of FreeBSD related merchandise such
+as T-shirts ($14.95, available in "child", Large and XL sizes), coffee mugs
+($9.95), tattoos ($0.25 each) and posters ($3.00).
+
+Shipping (per order not per disc) is $5 in the US, Canada or
+Mexico and $9.00 overseas. They accept Visa, Mastercard, Discover,
+American Express or checks in U.S. Dollars and ship COD within the
+United States. California residents please add 8.25% sales tax.
+
+Should you be dissatisfied for any reason, the CD comes with an
+unconditional return policy.
+
+
+Reporting problems, making suggestions, submitting code
+-------------------------------------------------------
+
+Your suggestions, bug reports and contributions of code are always
+valued - please do not hesitate to report any problems you may find
+(preferably with a fix attached if you can!).
+
+The preferred method to submit bug reports from a machine with
+internet mail connectivity is to use the send-pr command. Bug reports
+will be dutifully filed by our faithful bugfiler program and you can
+be sure that we'll do our best to respond to all reported bugs as soon
+as possible.
+
+If, for some reason, you are unable to use the send-pr command to
+submit a bug report, you can try to send it to:
+
+ bugs@FreeBSD.org
+
+
+Otherwise, for any questions or suggestions, please send mail to:
+
+ questions@FreeBSD.org
+
+Additionally, being a volunteer effort, we are always happy to have
+extra hands willing to help - there are already far more enhancements
+to be done than we can ever manage to do by ourselves! To contact us
+on technical matters, or with offers of help, you may send mail to:
+
+ hackers@FreeBSD.org
+
+Since these mailing lists can experience significant amounts of
+traffic, if you have slow or expensive mail access and you are
+only interested in keeping up with significant FreeBSD events, you may
+find it preferable to subscribe to:
+
+ announce@FreeBSD.org
+
+
+All but the freebsd-bugs groups can be freely joined by anyone wishing
+to do so. Send mail to MajorDomo@FreeBSD.org and include the keyword
+`help' on a line by itself somewhere in the body of the message. This
+will give you more information on joining the various lists, accessing
+archives, etc. There are a number of mailing lists targeted at
+special interest groups not mentioned here, so send mail to majordomo
+and ask about them!
+
+
+6. Acknowledgements
+-------------------
+
+FreeBSD represents the cumulative work of many dozens, if not
+hundreds, of individuals from around the world who have worked very
+hard to bring you this release. It would be very difficult, if not
+impossible, to enumerate everyone who's contributed to FreeBSD, but
+nonetheless we shall try (in alphabetical order, of course). If your
+name is not mentioned, please be assured that its omission is entirely
+accidental.
+
+
+The Computer Systems Research Group (CSRG), U.C. Berkeley.
+
+Bill Jolitz, for his initial work with 386BSD.
+
+The FreeBSD Core Team
+(in alphabetical order by first name):
+
+ Andreas Schulz <ats@FreeBSD.org>
+ Andrey A. Chernov <ache@FreeBSD.org>
+ Bruce Evans <bde@FreeBSD.org>
+ David Greenman <davidg@FreeBSD.org>
+ Garrett A. Wollman <wollman@FreeBSD.org>
+ Gary Palmer <gpalmer@FreeBSD.org>
+ Geoff Rehmet <csgr@FreeBSD.org>
+ Jack Vogel <jackv@FreeBSD.org>
+ John Dyson <dyson@FreeBSD.org>
+ Jordan K. Hubbard <jkh@FreeBSD.org>
+ Justin Gibbs <gibbs@FreeBSD.org>
+ Paul Richards <paul@FreeBSD.org>
+ Poul-Henning Kamp <phk@FreeBSD.org>
+ Rich Murphey <rich@FreeBSD.org>
+ Rodney W. Grimes <rgrimes@FreeBSD.org>
+ Satoshi Asami <asami@FreeBSD.org>
+ Søren Schmidt <sos@FreeBSD.org>
+
+Special mention to:
+
+ Walnut Creek CDROM, without whose help (and continuing support)
+ this release would never have been possible.
+
+ Dermot McDonnell for his donation of a Toshiba XM3401B CDROM
+ drive.
+
+ Additional FreeBSD helpers and beta testers:
+
+ J.T. Conklin Julian Elischer
+ Frank Durda IV Peter Dufault
+ Sean Eric Fagan Jeffrey Hsu
+ Terry Lambert L Jonas Olsson
+ Chris Provenzano Dave Rivers
+ Guido van Rooij Steven Wallace
+ Atsushi Murai Scott Mace
+ Nate Williams
+
+ And everyone at Montana State University for their initial support.
+
+
+Jordan would also like to give special thanks to Poul-Henning Kamp and
+Gary Palmer, both of whom put in long hours helping him to construct
+the new installation utility. Poul, being a proud new father, was
+especially pressed for time and yet somehow managed to put in
+a significant amount of effort anyway. This release could not have
+happened without him! Thank you both!
+
+Thanks also to everyone else who helped, especially those not
+mentioned, and we sincerely hope you enjoy this release of FreeBSD!
+
+
+ The FreeBSD Core Team
+
+$Id: RELNOTES,v 1.10 1995/06/10 09:56:30 jkh Exp $
diff --git a/release/sysinstall/help/ru_SU.KOI8-R/README b/release/sysinstall/help/ru_SU.KOI8-R/README
new file mode 100644
index 0000000..53d888f
--- /dev/null
+++ b/release/sysinstall/help/ru_SU.KOI8-R/README
@@ -0,0 +1,109 @@
+ -----------------------------------------
+ FreeBSD 2.0.5 --- RELEASE Version , ,
+ ----------------------------------------- /( )`
+ \ \___ / |
+äÏÂÒÏ ÐÏÖÁÌÏ×ÁÔØ × ÒÅÌÉÚ 2.0.5 FreeBSD! 2.0.5 - /- _ `-/ '
+ÜÔÏ ÐÒÏÍÅÖÕÔÏÞÎÁÑ ×ÅÒÓÉÑ FreeBSD, ÚÁÐÏÌÎÑÀÝÁÑ (/\/ \ \ /\
+ÎÅÏÂÈÏÄÉÍÙÊ ÐÒÏÍÅÖÕÔÏË ÍÁÖÄÕ ÒÅÌÉÚÁÍÉ 2.0 (ÂÙÌ / / | ` \
+×ÙÐÕÝÅÎ × ÎÏÑÂÒÅ 1994) É 2.1, ËÏÔÏÒÙÊ ÂÕÄÅÔ O O ) / |
+×ÙÐÕÝÅÎ × ËÏÎÃÅ ÉÀÌÑ 95-ÇÏ. FreeBSD 2.0.5 `-^--'`< '
+ÓÏÄÅÒÖÉÔ ÍÎÏÖÅÓÔ×Ï ÚÎÁÞÉÔÅÌØÎÙÈ ÕÓÏ×ÅÒÛÅÎÓÔ×Ï×ÁÎÉÊ, (_.) _ ) /
+ÎÅ ÐÏÓÌÅÄÎÅÅ ÉÚ ËÏÔÏÒÙÈ - Õ×ÅÌÉÞÅÎÎÁÑ ÓÔÁÂÉÌØÎÏÓÔØ `.___/` /
+(ÕÖÅ × ÐÒÉÅÍÌÅÍÙÈ ÐÒÅÄÅÌÁÈ), ÄÅÓÑÔËÉ ÎÏ×ÙÈ `-----' /
+×ÏÚÍÏÖÎÏÓÔÅÊ, ÚÎÁÞÉÔÅÌØÎÏ ÕÌÕÞÛÅÎÎÁÑ <----. __ / __ \
+ÐÒÏÇÒÁÍÍÁ ÕÓÔÁÎÏ×ËÉ. ÷ ÐÏÄÒÏÂÎÏÓÔÑÈ <----|====O)))==) \) /====
+ÎÏ×ÙÅ ×ÏÚÍÏÖÎÏÓÔÉ FreeBSD 2.0.5 <----' `--' `.__,' \
+ÏÐÉÓÁÎÙ × ÏÐÉÓÁÎÉÉ ÒÅÌÉÚÁ! | |
+ \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+
+þÔÏ ÔÁËÏÅ FreeBSD? FreeBSD - ÜÔÏ ÏÐÅÒÁÃÉÏÎÎÁÑ ÓÉÓÔÅÍÁ, ÏÓÎÏ×ÁÎÎÁÑ ÎÁ
+4.4 BSD Lite, ÐÒÅÄÎÁÚÎÁÞÅÎÎÁÑ ÄÌÑ ÐÅÒÓÏÎÁÌØÎÙÈ ËÏÍÐØÀÔÅÒÏ×, ÏÓÎÏ×ÁÎÎÙÈ
+ÎÁ ÐÒÏÃÅÓÓÏÒÁÈ "x86" ÆÉÒÍ Intel, AMD, Cyrix ÉÌÉ NexGen. ïÎÁ ÐÏÄÄÅÒÖÉ×ÁÅÔ
+ÍÎÏÖÅÓÔ×Ï ÒÁÚÌÉÞÎÙÈ ÐÅÒÉÆÅÒÉÊÎÙÈ ÕÓÔÒÏÊÓÔ× É ËÏÎÆÉÇÕÒÁÃÉÊ ðë É ÍÏÖÅÔ ÂÙÔØ
+ÉÓÐÏÌØÚÏ×ÁÎÁ ÄÌÑ ÞÅÇÏ ÕÇÏÄÎÏ ÎÁÞÉÎÁÑ ÏÔ ÒÁÚÒÁÂÏÔËÉ ÐÒÏÇÒÁÍÍ É
+ÚÁËÁÎÞÉ×ÁÑ ÐÒÅÄÏÓÔÁ×ÌÅÎÉÅÍ ÓÅÒ×ÉÓÁ ÞÅÒÅÚ ÓÅÔØ Internet; ÓÁÍÙÊ
+ÚÁÇÒÕÖÅÎÎÙÊ ÓÅÒ×ÅÒ × Internet, ftp.cdrom.com ÒÁÂÏÔÁÅÔ ÐÏÄ FreeBSD!
+
+÷ ÜÔÏÊ ×ÅÒÓÉÉ FreeBSD ÅÓÔØ ×ÓÅ, ÞÔÏ ×ÁÍ ÎÁÄÏ ÄÌÑ ÒÁÂÏÔÙ ÔÁËÏÊ
+ÓÉÓÔÅÍÙ, ÐÌÀÓ ÉÓÈÏÄÎÙÅ ÔÅËÓÔÙ ÄÌÑ ×ÓÅÇÏ ÜÔÏÇÏ. åÓÌÉ Õ ×ÁÓ ÕÓÔÁÎÏ×ÌÅÎÙ
+ÉÓÈÏÄÎÙÅ ÔÅËÓÔÙ, ÔÏ ×Ù ÍÏÖÅÔÅ ÚÁÎÏ×Ï ÓËÏÍÐÉÌÉÒÏ×ÁÔØ ×ÓÀ ÓÉÓÔÅÍÕ
+Ó ÎÕÌÑ ÂÕË×ÁÌØÎÏ ÏÄÎÏÊ ËÏÍÁÎÄÏÊ, ÞÔÏ ÄÅÌÁÅÔ ÅÅ ÉÄÅÁÌØÎÏÊ ÄÌÑ
+ÓÔÕÄÅÎÔÏ×, ÉÓÓÌÅÄÏ×ÁÔÅÌÅÊ, ÉÌÉ ÌÀÄÅÊ, ËÏÔÏÒÙÅ ÐÒÏÓÔÏ ÈÏÔÑÔ ÐÏÓÍÏÔÒÅÔØ,
+ÞÔÏ Õ ÎÅÅ ×ÎÕÔÒÉ.
+
+ëÒÏÍÅ ÔÏÇÏ, ÉÍÅÅÔÓÑ ÂÏÌØÛÁÑ ËÏÌÌÅËÃÉÑ ÎÅÚÁ×ÉÓÉÍÏ ÒÁÚÒÁÂÏÔÁÎÎÏÇÏ
+ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ, ÐÅÒÅÎÅÓÅÎÎÏÇÏ ÐÏÄ FreeBSD ("ports
+collection"), ÏÂÌÅÇÞÁÀÝÁÑ ÄÌÑ ×ÁÓ ÄÏÂÙ×ÁÎÉÅ É ÕÓÔÁÎÏ×ËÕ ×ÁÛÉÈ
+ÌÀÂÉÍÙÈ ÔÒÁÄÉÃÉÏÎÎÙÈ ÕÔÉÌÉÔ UNIX ÄÌÑ FreeBSD. ïÎÁ ÓÏÓÔÏÉÔ ÉÚ ÂÏÌÅÅ 270
+ÐÁËÅÔÏ×, ÏÔ ÔÅËÓÔÏ×ÙÈ ÒÅÄÁËÔÏÒÏ× É ÑÚÙËÏ× ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ ÄÏ ÇÒÁÆÉÞÅÓËÉÈ
+ÐÁËÅÔÏ×, É ÄÅÌÁÅÔ FreeBSD ÍÏÝÎÏÊ É ×ÓÅÏÈ×ÁÔÙ×ÁÀÝÅÊ ÓÉÓÔÅÍÏÊ, ËÏÔÏÒÁÑ
+ÍÏÖÅÔ ÐÏÓÏÒÅ×ÎÏ×ÁÔØÓÑ Ó ÏÐÅÒÁÃÉÏÎÎÙÍÉ ÓÉÓÔÅÍÁÍÉ ÍÏÝÎÙÈ ÒÁÂÏÞÉÈ ÓÔÁÎÃÉÊ
+× ÍÏÝÎÏÓÔÉ É ÐÒÅÄÏÓÔÁ×ÌÑÅÍÏÍ ÓÅÒ×ÉÓÅ.
+
+þÔÏÂÙ ÐÏÌÕÞÉÔØ ÂÏÌÅÅ ÐÏÌÎÕÀ ÄÏËÕÍÅÎÔÁÃÉÀ ÎÁ ÓÉÓÔÅÍÕ, ÍÙ ÓÏ×ÅÔÕÅÍ ×ÁÍ
+ÐÒÉÏÂÒÅÓÔÉ ÎÁÂÏÒ ËÎÉÇ ÐÏ BSD 4.4 ÏÔ ÉÚÄÁÔÅÌØÓÔ×Á O'Reilly Associates É
+ÁÓÓÏÃÉÁÃÉÉ USENIX, ISBN 1-56592-082-1. íÙ ÎÅ Ó×ÑÚÁÎÙ Ó O'Reilly, ÍÙ
+ÌÉÛØ ÕÄÏ×ÌÅÔ×ÏÒÅÎÎÙÅ ÐÏËÕÐÁÔÅÌÉ! (÷ òÏÓÓÉÉ ËÎÉÇÉ O'Reilly ÐÒÏÄÁÅÔ,
+ÎÁÐÒÉÍÅÒ, ÆÉÒÍÁ SWD × óÁÎËÔ-ðÅÔÅÒÂÕÒÇÅ - ÐÒÉÍ.ÐÅÒ. - Ñ Ó ÎÉÍÉ ÎÅ
+Ó×ÑÚÁÎ, ÐÒÏÓÔÏ Ñ ÚÎÁÀ, ÇÄÅ ÂÙÌÉ ËÕÐÌÅÎÙ ËÎÉÇÉ, ËÏÔÏÒÙÅ Ñ ÞÉÔÁÌ)
+
+ðÅÒÅÄ ÔÅÍ, ËÁË ÐÒÏÄÏÌÖÉÔØ ÕÓÔÁÎÏ×ËÕ, ×Ù ÍÏÖÅÔÅ ÐÏÞÉÔÁÔØ "òÕËÏ×ÏÄÓÔ×Ï
+ÐÏ ÁÐÐÁÒÁÔÕÒÅ" (HARDWARE GUIDE). ëÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÅ ÁÐÐÁÒÁÔÕÒÙ ðë ÄÌÑ
+ÞÅÇÏ ÕÇÏÄÎÏ ËÒÏÍÅ DOS/Windows (ËÏÔÏÒÙÅ ÎÁ ÓÁÍÏÍ ÄÅÌÅ ÉÓÐÏÌØÚÕÀÔ ÎÅ ×ÓÅ
+×ÏÚÍÏÖÎÏÓÔÉ ÁÐÐÁÒÁÔÕÒÙ) ×ÓÅÇÄÁ ÏËÁÚÙ×ÁÅÔÓÑ ÎÅÓËÏÌØËÏ ÓÌÏÖÎÅÅ, ÞÅÍ ÍÏÖÅÔ
+ÐÏËÁÚÁÔØÓÑ ÎÁ ÐÅÒ×ÙÊ ×ÚÇÌÑÄ, É ÅÓÌÉ ×Ù ÄÕÍÁÅÔÅ, ÞÔÏ ÐÏÎÉÍÁÅÔÅ ðë, ÔÏ
+ÜÔÏ ÚÎÁÞÉÔ ÌÉÛØ ÔÏ, ÞÔÏ ×Ù ÒÁÂÏÔÁÅÔÅ Ó ÎÉÍ ÎÅÄÏÓÔÁÔÏÞÎÏ ÄÏÌÇÏ! :) üÔÏ
+ÒÕËÏ×ÏÄÓÔ×Ï ÄÁÓÔ ×ÁÍ ÎÅËÏÔÏÒÙÅ ÎÁÍÅÔËÉ ÎÁÓÞÅÔ ËÏÎÆÉÇÕÒÉÒÏ×ÁÎÉÑ
+ÁÐÐÁÒÁÔÕÒÙ É ÓÉÍÐÔÏÍÏ×, ÚÁ ËÏÔÏÒÙÍÉ ÎÕÖÎÏ ÓÌÅÄÉÔØ ÐÒÉ ×ÏÚÎÉËÎÏ×ÅÎÉÉ
+ÐÒÏÂÌÅÍ. ïÎÏ ÄÏÓÔÕÐÎÏ ÞÅÒÅÚ ÍÅÎÀ "Documentation" ÎÁ ÚÁÇÒÕÚÏÞÎÏÊ ÄÉÓËÅÔÅ
+FreeBSD.
+
+ðòåäïóôåòåöåîéå: èÏÔÑ FreeBSD ÄÅÌÁÅÔ ×ÓÅ ÏÔ ÎÅÅ ÚÁ×ÉÓÑÝÅÅ, ÞÔÏÂÙ
+ÐÒÅÄÏÔ×ÒÁÔÉÔØ ÓÌÕÞÁÊÎÕÀ ÐÏÔÅÒÀ ÄÁÎÎÙÈ, ×ÓÅ ÒÁ×ÎÏ ×ÐÏÌÎÅ ×ÅÒÏÑÔÎÏ, ÞÔÏ
+÷åóø ÷áû äéóë âõäåô óôåòô ×Ï ×ÒÅÍÑ ÜÔÏÊ ÅÅ ÕÓÔÁÎÏ×ËÉ! ðÏÖÁÌÕÊÓÔÁ, ÎÅ
+ÐÒÏÄÏÌÖÁÊÔÅ ÕÓÔÁÎÏ×ËÕ, ÐÏËÁ ×Ù ÎÅ ÓÄÅÌÁÅÔÅ ÁÒÈÉ×ÎÕÀ ËÏÐÉÀ ×ÓÅÊ ×ÁÛÅÊ
+×ÁÖÎÏÊ ÉÎÆÏÒÍÁÃÉÉ! íÙ ÎÅ ÛÕÔÉÍ!
+
+ôÅÈÎÉÞÅÓËÉÅ ËÏÍÍÅÎÔÁÒÉÉ ÐÒÏ ÜÔÕ ×ÅÒÓÉÀ ÐÏÓÙÌÁÊÔÅ ÐÏ ÁÄÒÅÓÕ (ÎÁ
+ÁÎÇÌÉÊÓËÏÍ ÑÚÙËÅ):
+
+ hackers@FreeBSD.org
+
+óÏÏÂÝÅÎÉÑ ÏÂ ÏÛÉÂËÁÈ ÓÌÅÄÕÅÔ ÐÏÓÙÌÁÔØ Ó ÐÏÍÏÝØÀ ÐÒÏÇÒÁÍÍÙ `send-pr',
+ÅÓÌÉ ×ÁÍ ÕÄÁÌÏÓØ ÕÓÔÁÎÏ×ÉÔØ ÓÉÓÔÅÍÕ, ÉÎÁÞÅ ÐÏ ÁÄÒÅÓÕ (É ÔÏ É ÄÒÕÇÏÅ ÎÁ
+ÁÎÇÌÉÊÓËÏÍ ÑÚÙËÅ):
+
+ bugs@FreeBSD.org
+
+ðÏÖÁÌÕÊÓÔÁ, × ÌÀÂÏÍ ×ÁÛÅÍ ÓÏÏÂÝÅÎÉÉ Ï ÏÛÉÂËÁÈ ÕËÁÚÙ×ÁÊÔÅ, × ëáëïê
+÷åòóéé FreeBSD ×Ù ÉÈ ÏÂÎÁÒÕÖÉÌÉ!
+
+÷ÏÐÒÏÓÙ ÏÂÝÅÇÏ ÈÁÒÁËÔÅÒÁ ÎÁÄÏ ÐÏÓÙÌÁÔØ ÐÏ ÁÄÒÅÓÕ (ÔÏÖÅ ÎÁ ÁÎÇÌÉÊÓËÏÍ):
+
+ questions@FreeBSD.org
+
+ðÏÖÁÌÕÊÓÔÁ, ÐÒÏÑ×ÉÔÅ ÐÏÎÉÍÁÎÉÅ, ÅÓÌÉ ×ÁÛÉ ×ÏÐÒÏÓÙ ÏÓÔÁÎÕÔÓÑ ÂÅÚ
+ÏÔ×ÅÔÁ - ÓÅÊÞÁÓ ÄÌÑ ÎÁÓ ÏÞÅÎØ ÚÁÎÑÔÏÅ ×ÒÅÍÑ, É ÒÅÓÕÒÓÙ ÎÁÛÉÈ
+ÄÏÂÒÏ×ÏÌØÃÅ× ÞÁÓÔÏ ÂÙ×ÁÀÔ ÐÏÌÎÏÓÔØÀ ÉÓÞÅÒÐÁÎÙ. óÏÏÂÝÅÎÉÑ Ï ÏÛÉÂËÁÈ,
+ÐÏÓÌÁÎÎÙÅ ËÏÍÁÎÄÏÊ send-pr ÚÁÐÉÓÙ×ÁÀÔÓÑ É ÏÔÓÌÅÖÉ×ÁÀÔÓÑ × ÎÁÛÅÊ ÂÁÚÅ
+ÄÁÎÎÙÈ ÓÏÏÂÝÅÎÉÊ Ï ÏÛÉÂËÁÈ, É ÍÙ ÂÕÄÅÍ ×ÁÓ ÉÎÆÏÒÍÉÒÏ×ÁÔØ ÏÂÏ ×ÓÅÈ
+ÉÚÍÅÎÅÎÉÑÈ × ÔÅËÕÝÅÍ ÓÏÓÔÏÑÎÉÉ ÄÅÌ ÐÏ ÉÓÐÒÁ×ÌÅÎÉÀ ÏÛÉÂËÉ (ÉÌÉ ÐÏ
+ÄÏÂÁ×ÌÅÎÉÀ ÚÁÐÒÏÛÅÎÎÙÈ ×ÁÍÉ ×ÏÚÍÏÖÎÏÓÔÅÊ).
+
+åÝÅ ÏÄÉÎ ÏÞÅÎØ ÈÏÒÏÛÉÊ ÉÓÔÏÞÎÉË ÏÂÎÏ×ÌÅÎÎÏÊ ÉÎÆÏÒÍÁÃÉÉ - ÜÔÏ
+ÎÁÛ ÓÅÒ×ÅÒ WWW, http:://www.freebsd.org, ËÏÔÏÒÙÊ ËÒÏÍÅ ÔÏÇÏ ÓÏÄÅÒÖÉÔ
+ÄÏÐÏÌÎÉÔÅÌØÎÕÀ ÄÏËÕÍÅÎÔÁÃÉÀ. äÌÑ ÄÏÓÔÕÐÁ Ë WWW ÐÒÑÍÏ ÉÚ FreeBSD ×Ù
+ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ×ÅÒÓÉÀ Netscape ÏÔ BSDI.
+
+äÁÌØÎÅÊÛÁÑ ÉÎÆÏÒÍÁÃÉÑ Ï ÓÉÓÔÅÍÅ ÓÏÄÅÒÖÉÔÓÑ × ËÁÔÁÌÏÇÁÈ /usr/share/FAQ
+(ÞÁÓÔÙÅ ×ÏÐÒÏÓÙ É ÏÔ×ÅÔÙ) É /usr/share/DOC (ÄÏËÕÍÅÎÔÁÃÉÑ).
+
+óÐÁÓÉÂÏ ×ÁÍ ÚÁ ÔÏ, ÞÔÏ ×Ù ×ÓÅ ÜÔÏ ÐÒÏÞÌÉ, É ÍÙ ÏÞÅÎØ ÎÁÄÅÅÍÓÑ, ÞÔÏ
+ÒÁÂÏÔÁ Ó ÜÔÏÊ ×ÅÒÓÉÅÊ FreeBSD ÄÏÓÔÁ×ÉÔ ×ÁÍ ÕÄÏ×ÏÌØÓÔ×ÉÅ!
+
+ Jordan Hubbard,
+ ÏÔ ÉÍÅÎÉ ÐÒÏÅËÔÁ FreeBSD
diff --git a/release/sysinstall/help/ru_SU.KOI8-R/configure.hlp b/release/sysinstall/help/ru_SU.KOI8-R/configure.hlp
new file mode 100644
index 0000000..06e2aac
--- /dev/null
+++ b/release/sysinstall/help/ru_SU.KOI8-R/configure.hlp
@@ -0,0 +1,16 @@
+üÔÏ ÍÅÎÀ ÐÏÚ×ÏÌÑÅÔ ×ÁÍ ÓËÏÎÆÉÇÕÒÉÒÏ×ÁÔØ ÓÉÓÔÅÍÕ ×ÓËÏÒÅ ÐÏÓÌÅ ÅÅ
+ÕÓÔÁÎÏ×ËÉ. ëÁË ÍÉÎÉÍÕÍ, ×Ù ×ÅÒÏÑÔÎÏ ÄÏÌÖÎÙ ÂÕÄÅÔÅ ÕÓÔÁÎÏ×ÉÔØ ÐÁÒÏÌØ
+ÓÉÓÔÅÍÎÏÇÏ ÁÄÍÉÎÉÓÔÒÁÔÏÒÁ É ×ÁÛÕ ×ÒÅÍÅÎÎÕÀ ÚÏÎÕ.
+
+äÏÐÏÌÎÉÔÅÌØÎÙÅ ÐÁËÅÔÙ, ÔÁËÉÅ ËÁË bash, emacs, pascal É Ô.Ä. ×ÁÍ ÓËÏÒÅÅ
+×ÓÅÇÏ ÎÁÄÏ ÂÕÄÅÔ ÐÏÉÓËÁÔØ × ÁÌØÔÅÒÎÁÔÉ×Å "Packages" ÜÔÏÇÏ ÍÅÎÀ.
+ðÒÁ×ÄÁ, ÓÅÊÞÁÓ ÏÔ ÜÔÏÇÏ ÎÁÞÉÎÁÎÉÑ ÂÕÄÅÔ ÐÏÌØÚÁ ÔÏÌØËÏ × ÔÏÍ ÓÌÕÞÁÅ,
+ÅÓÌÉ Õ ×ÁÓ ÅÓÔØ CD-ROM ÉÌÉ ÇÏÔÏ×ÁÑ ËÏÌÌÅËÃÉÑ ÐÁËÅÔÏ× ÌÅÖÉÔ ÇÄÅ-ÔÏ ×
+ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÅ, ÔÁË ÞÔÏ ÕÔÉÌÉÔÁ ÕÐÒÁ×ÌÅÎÉÑ ÐÁËÅÔÁÍÉ ÓÍÏÖÅÔ ÉÈ ÎÁÊÔÉ.
+á×ÔÏÍÁÔÉÞÅÓËÏÅ ×ÙËÁÞÉ×ÁÎÉÅ ÐÁËÅÔÏ× ÞÅÒÅÚ FTP ÅÝÅ ÎÅ ÐÏÄÄÅÒÖÁÎÏ.
+
+åÓÌÉ ×Ù ÚÁÈÏÔÉÔÅ ÚÁÐÕÓÔÉÔØ ÕÔÉÌÉÔÕ ÕÓÔÁÎÏ×ËÉ ÐÁËÅÔÏ× ÐÏÓÌÅ ÔÏÇÏ, ËÁË
+ÚÁ×ÅÒÛÉÔÅ ÕÓÔÁÎÏ×ËÕ ÓÉÓÔÅÍÙ, ÔÏ ÚÎÁÊÔÅ, ÞÔÏ ÏÎÁ ÎÁÚÙ×ÁÅÔÓÑ
+``pkg_manage''. äÌÑ ÎÁÓÔÒÏÊËÉ ×ÒÅÍÅÎÎÏÊ ÚÏÎÙ ÚÁÐÕÓÔÉÔÅ ``tzsetup''. ÷
+ÆÁÊÌÅ ``/etc/sysconfig'' ×Ù ÓÍÏÖÅÔÅ ÎÁÊÔÉ ÄÏÐÏÌÎÉÔÅÌØÎÕÀ ÉÎÆÏÒÍÁÃÉÀ ÐÏ
+ÏÂÝÅÊ ËÏÎÆÉÇÕÒÁÃÉÉ ÓÉÓÔÅÍÙ.
diff --git a/release/sysinstall/help/ru_SU.KOI8-R/language.hlp b/release/sysinstall/help/ru_SU.KOI8-R/language.hlp
new file mode 100644
index 0000000..a6d2e21
--- /dev/null
+++ b/release/sysinstall/help/ru_SU.KOI8-R/language.hlp
@@ -0,0 +1,15 @@
+ó ÐÏÍÏÝØÀ ÜÔÏÇÏ ÍÅÎÀ ×Ù ÍÏÖÅÔÅ ×ÙÂÒÁÔØ ×ÁÛ ÌÀÂÉÍÙÊ ÑÚÙË. ðÒÁ×ÄÁ, ÐÏËÁ ÞÔÏ ÜÔÏ
+ÐÏ×ÌÉÑÅÔ ÔÏÌØËÏ ÎÁ ÔÏ, ÎÁ ËÁËÏÍ ÑÚÙËÅ ×Ù ÐÏÌÕÞÉÔÅ ÜËÒÁÎÙ ÐÏÍÏÝÉ.
+
+÷ ÂÕÄÕÝÉÈ ×ÅÒÓÉÑÈ ÏÎÏ ÐÏÚ×ÏÌÉÔ ×ÁÍ ÎÁÓÔÒÏÉÔØ É ÒÁÓËÌÁÄËÕ ËÌÁ×ÉÁÔÕÒÙ,
+ÜËÒÁÎÎÙÅ ÛÒÉÆÔÙ É ÕÓÔÁÎÏ×ËÉ NLS (National Language Supplement -
+ðÏÄÄÅÒÖËÁ îÁÃÉÏÎÁÌØÎÙÈ ñÚÙËÏ×) (ÓÁÍ sysinstall ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ
+ÒÁÚÌÉÞÎÙÅ ËÁÔÁÌÏÇÉ ÓÏÏÂÝÅÎÉÊ, ÔÁË ÞÔÏ ÍÅÎÀ ÔÏÖÅ ÂÕÄÕÔ ÎÁ ÒÁÚÌÉÞÎÙÈ
+ÑÚÙËÁÈ) É ÒÅÁÌÉÚÏ×ÁÔØ ÄÒÕÇÉÅ ×ÏÚÍÏÖÎÏÓÔÉ ÉÎÔÅÒÎÁÃÉÏÎÁÌÉÚÁÃÉÉ,
+ÕÄÏ×ÌÅÔ×ÏÒÑÀÝÉÅ ÒÁÚÌÉÞÎÙÍ ÓÔÁÎÄÁÒÔÁÍ.
+
+á ÐÏËÁ ÜÔÉ ÕÓÏ×ÅÒÛÅÎÓÔ×Ï×ÁÎÉÑ ÎÅ ÓÄÅÌÁÎÙ, ÄÌÑ ×ÁÓ ÍÏÖÅÔ ÏËÁÚÁÔØÓÑ
+ÐÒÏÝÅ ×ÒÕÞÎÕÀ ÏÔÒÅÄÁËÔÉÒÏ×ÁÔØ ÆÁÊÌ /etc/sysconfig ÐÏÓÌÅ ÔÏÇÏ, ËÁË
+ÓÉÓÔÅÍÁ ÂÕÄÅÔ ÕÓÔÁÎÏ×ÌÅÎÁ. üÔÏÔ ÆÁÊÌ ÓÏÄÅÒÖÉÔ ÒÑÄ ËÏÍÍÅÎÔÁÒÉÅ× Ï ÔÏÍ,
+ÞÔÏ ÉÍÅÎÎÏ ÎÁÄÏ ÍÅÎÑÔØ, Á ÔÁËÖÅ ÎÅÓËÏÌØËÏ ÐÒÉÍÅÒÏ× ÓÕÝÅÓÔ×ÕÀÝÉÈ
+ÎÅ-ÁÎÇÌÉÊÓËÉÈ ÎÁÓÔÒÏÅË.
diff --git a/release/sysinstall/help/ru_SU.KOI8-R/usage.hlp b/release/sysinstall/help/ru_SU.KOI8-R/usage.hlp
new file mode 100644
index 0000000..1b6399b
--- /dev/null
+++ b/release/sysinstall/help/ru_SU.KOI8-R/usage.hlp
@@ -0,0 +1,60 @@
+ëáë ðïìøúï÷áôøóñ üôïê óéóôåíïê
+==============================
+
+ëìá÷éûá äåêóô÷éå
+------- --------
+óôòåìëá ÷÷åòè ðÅÒÅÊÔÉ Ë ÐÒÅÄÙÄÕÝÅÊ ÁÌØÔÅÒÎÁÔÉ×Å (ÉÌÉ ××ÅÒÈ × ÔÅËÓÔÅ).
+óôòåìëá ÷îéú ðÅÒÅÊÔÉ Ë ÓÌÅÄÕÀÝÅÊ ÁÌØÔÅÒÎÁÔÉ×Å (ÉÌÉ ×ÎÉÚ × ÔÅËÓÔÅ).
+TAB ðÅÒÅÊÔÉ Ë ÓÌÅÄÕÀÝÅÊ ÁÌØÔÅÒÎÁÔÉ×Å ÉÌÉ ÇÒÕÐÐÅ.
+óôòåìëá ÷ðòá÷ï ðÅÒÅÊÔÉ Ë ÓÌÅÄÕÀÝÅÊ ÁÌØÔÅÒÎÁÔÉ×Å ÉÌÉ ÇÒÕÐÐÅ (ËÁË É TAB).
+SHIFT-TAB ðÅÒÅÊÔÉ Ë ÐÒÅÄÙÄÕÝÅÊ ÁÌØÔÅÒÎÁÔÉ×Å ÉÌÉ ÇÒÕÐÐÅ.
+óôòåìëá ÷ìå÷ï ðÅÒÅÊÔÉ Ë ÐÒÅÄÙÄÕÝÅÊ ÁÌØÔÅÒÎÁÔÉ×Å ÉÌÉ ÇÒÕÐÐÅ (ËÁË É SHIFT-TAB).
+RETURN ÷ÙÂÒÁÔØ [ÜÔÕ ËÌÁ×ÉÛÕ ÔÁËÖÅ ÏÂÏÚÎÁÞÁÀÔ Enter].
+ESC úÁÐÕÓÔÉÔØ shell ÄÌÑ ÄÉÁÇÎÏÓÔÉÞÅÓËÉÈ ÃÅÌÅÊ. ðÒÉ ×ÙÈÏÄÅ
+ ÉÚ ÛÅÌÌÁ ×Ù ×ÅÒÎÅÔÅÓØ Ë ÔÏÍÕ ÖÅ ÍÅÓÔÕ.
+PG UP ÷ ÔÅËÓÔÅ ÐÅÒÅÌÉÓÔÙ×ÁÅÔ ÎÁ ÓÔÒÁÎÉÃÕ ××ÅÒÈ.
+PG DN ÷ ÔÅËÓÔÅ ÐÅÒÅÌÉÓÔÙ×ÁÅÔ ÎÁ ÓÔÒÁÎÉÃÕ ×ÎÉÚ.
+ðòïâåì ÷ "ÒÁÄÉÏ"-ÍÅÎÀ (ÇÄÅ ÍÏÖÎÏ ×ÙÂÒÁÔØ ÓÒÁÚÕ ÎÅÓËÏÌØËÏ
+ ÁÌØÔÅÒÎÁÔÉ×) ÐÏÍÅÞÁÅÔ ÉÌÉ ÓÎÉÍÁÅÔ ÐÏÍÅÔËÕ ×ÙÂÏÒÁ Ó
+ ÔÅËÕÝÅÊ ÁÌØÔÅÒÎÁÔÉ×Ù.
+F1 ðÏÍÏÝØ (× ÜËÒÁÎÁÈ, ÇÄÅ ÏÎÁ ÐÒÅÄÕÓÍÏÔÒÅÎÁ).
+
+åÓÌÉ ×Ù ×ÉÄÉÔÅ × ÕÇÏÌËÁÈ ÍÅÎÀ ÓÉÍ×ÏÌÙ "^(-)" ÉÌÉ "v(+)", ÔÏ ÜÔÏ ÏÚÎÁÞÁÅÔ,
+ÞÔÏ ÓÏÏÔ×ÅÔÓÔ×ÅÎÎÏ ×ÙÛÅ ÉÌÉ ÎÉÖÅ ÔÅËÕÝÅÊ ÁÌØÔÅÒÎÁÔÉ×Ù ÅÓÔØ ÅÝÅ
+ÁÌØÔÅÒÎÁÔÉ×Ù, ËÏÔÏÒÙÅ ÎÅ ÐÏËÁÚÁÎÙ, ÐÏÔÏÍÕ ÞÔÏ ÎÅ È×ÁÔÉÌÏ ÍÅÓÔÁ ÎÁ ÜËÒÁÎÅ.
+ëÌÁ×ÉÛÉ ÓÏ ÓÔÒÅÌËÁÍÉ ××ÅÒÈ/×ÎÉÚ ÐÒÏËÒÕÔÑÔ ÔÁËÏÅ ÍÅÎÀ ÎÁ ÜËÒÁÎÅ. ëÏÇÄÁ
+ÓÉÍ×ÏÌ ÉÓÞÅÚÁÅÔ, ÔÏ ÜÔÏ ÚÎÁÞÉÔ, ÞÔÏ ×Ù × ÓÁÍÏÍ ×ÅÒÈÕ (ÉÌÉ ÎÉÚÕ) ÍÅÎÀ.
+
+÷ ÔÅËÓÔÏ×ÙÈ ÐÏÌÑÈ ËÏÌÉÞÅÓÔ×Ï ÏÓÔÁ×ÛÅÇÏÓÑ ÔÅËÓÔÁ × ÐÒÏÃÅÎÔÁÈ ÐÏËÁÚÙ×ÁÅÔÓÑ ×
+ÐÒÁ×ÏÍ ÎÉÖÎÅÍ ÕÇÌÕ. 100% ÏÚÎÁÞÁÅÔ, ÞÔÏ ×Ù ÎÁÈÏÄÉÔÅÓØ × ÓÁÍÏÍ ÎÉÚÕ ÐÏÌÑ.
+
+÷ÙÂÏÒ OK × ÍÅÎÀ ÏÚÎÁÞÁÅÔ ÐÏÄÔ×ÅÒÖÄÅÎÉÅ ÄÅÊÓÔ×ÉÑ, ËÏÔÏÒÏÅ ×Ù ÚÁÐÒÏÓÉÌÉ.
+÷ÙÂÏÒ ÁÌØÔÅÒÎÁÔÉ×Ù Cancel ÏÔÍÅÎÉÔ ÚÁÐÒÏÛÅÎÎÕÀ ÏÐÅÒÁÃÉÀ É × ÏÂÝÅÍ ÓÌÕÞÁÅ
+×ÅÒÎÅÔ ×ÁÓ × ÐÒÅÄÙÄÕÝÅÅ ÍÅÎÀ.
+
+
+äïðïìîéôåìøîùå ÷ïúíïöîïóôé:
+===========================
+
+áÌØÔÅÒÎÁÔÉ×Ù ÍÅÎÀ ÍÏÖÎÏ ÔÁËÖÅ ×ÙÂÉÒÁÔØ ÎÁÖÁÔÉÅÍ ÉÈ ÐÅÒ×ÏÊ ÂÕË×Ù (ÅÓÌÉ ÏÎÁ
+ÕÎÉËÁÌØÎÁ). ôÁËÉÅ ÓÉÍ×ÏÌÙ-"ÕÓËÏÒÉÔÅÌÉ" (ÉÌÉ "ÁËÓÅÌÅÒÁÔÏÒÙ") ×ÙÄÅÌÑÀÔÓÑ ÄÒÕÇÉÍ
+Ã×ÅÔÏÍ × ÎÁÚ×ÁÎÉÉ ÁÌØÔÅÒÎÁÔÉ×Ù.
+
+÷ ÄÒÁÊ×ÅÒÅ ËÏÎÓÏÌÉ ÔÁËÖÅ ÅÓÔØ ×ÏÚÍÏÖÎÏÓÔØ ÐÒÏËÒÕÔÉÔØ ÎÁÚÁÄ ÉÎÆÏÒÍÁÃÉÀ,
+ËÏÔÏÒÁÑ ÕÖÅ "ÕÅÈÁÌÁ" Ó ÜËÒÁÎÁ (ÐÒÏËÒÕÔÉÌÁÓØ ××ÅÒÈ). äÌÑ ÜÔÏÇÏ ÎÁÖÍÉÔÅ
+"Scroll Lock" (É ÐÏÔÏÍ ÏÔÐÕÓÔÉÔÅ) É Ó ÐÏÍÏÝØÀ ÓÔÒÅÌÏË É ËÌÁ×ÉÛ PgUp/PgDn ×Ù
+ÓÍÏÖÅÔÅ Ä×ÉÇÁÔØ ÓÏÈÒÁÎÅÎÎÙÊ ÔÅËÓÔ (ÏÄÎÁËÏ, ÐÏÍÎÉÔÅ, ÞÔÏ ÂÕÆÅÒ ÎÅ
+ÂÅÓËÏÎÅÞÅÎ). þÔÏÂÙ ×ÅÒÎÕÔØÓÑ × ÎÏÒÍÁÌØÎÙÊ ÒÅÖÉÍ, ÓÎÏ×Á ÎÁÖÍÉÔÅ "Scroll
+Lock". üÔÁ ×ÏÚÍÏÖÎÏÓÔØ ÏÓÏÂÅÎÎÏ ÐÏÌÅÚÎÁ ÐÒÉ ÒÁÂÏÔÅ × ÛÅÌÌÅ ÉÌÉ ÄÒÕÇÉÈ
+"ÒÅÖÉÍÁÈ ÄÌÑ ÚÎÁÔÏËÏ×", ËÏÔÏÒÙÅ ÎÅ ÉÓÐÏÌØÚÕÀÔ ÍÅÎÀ.
+
+ëÁË ÔÏÌØËÏ ÓÉÓÔÅÍÁ ÂÕÄÅÔ ÐÏÌÎÏÓÔØÀ ÕÓÔÁÎÏ×ÌÅÎÁ É ÚÁÐÕÝÅÎÁ ×
+"ÍÎÏÇÏÐÏÌØÚÏ×ÁÔÅÌØÓËÏÍ ÒÅÖÉÍÅ", ×Ù ÐÏÌÕÞÉÔÅ ÎÅÓËÏÌØËÏ "×ÉÒÔÕÁÌØÎÙÈ
+ËÏÎÓÏÌÅÊ", ËÏÔÏÒÙÅ ×Ù ÓÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÄÌÑ ×ÅÄÅÎÉÑ ÎÅÓËÏÌØËÉÈ ÓÅÁÎÓÏ×
+ÒÁÂÏÔÙ ÏÄÎÏ×ÒÅÍÅÎÎÏ. üËÒÁÎÙ ÐÅÒÅËÌÀÞÁÀÔÓÑ Ó ÐÏÍÏÝØÀ ËÌÁ×ÉÛ ALT-F<n>, ÇÄÅ
+`F<n>' - ÜÔÏ ÆÕËÎÃÉÏÎÁÌØÎÁÑ ËÌÁ×ÉÛÁ Ó ÎÏÍÅÒÏÍ, ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÍ ÎÏÍÅÒÕ
+ÜËÒÁÎÁ, ËÏÔÏÒÙÊ ×Ù ÈÏÔÉÔÅ Õ×ÉÄÅÔØ. ðÏ ÕÍÏÌÞÁÎÉÀ ÓÉÓÔÅÍÁ ÐÏÓÔÁ×ÌÑÅÔÓÑ Ó 4
+×ÉÒÔÕÁÌØÎÙÍÉ ËÏÎÓÏÌÑÍÉ. ÷Ù ÍÏÖÅÔÅ Õ×ÅÌÉÞÉÔØ ÉÈ ÞÉÓÌÏ, ÏÔÒÅÄÁËÔÉÒÏ×Á× ÆÁÊÌ
+/etc/ttys ÐÏÓÌÅ ÔÏÇÏ ËÁË ÓÉÓÔÅÍÁ ÂÕÄÅÔ ÕÓÔÁÎÏ×ÌÅÎÁ, ÍÁËÓÉÍÁÌØÎÏÅ ÞÉÓÌÏ
+ÒÁ×ÎÏ 12. îÅ Õ×ÌÅËÁÊÔÅÓØ ÂÏÌØÛÉÍ ÞÉÓÌÏÍ ËÏÎÓÏÌÅÊ, ÅÓÌÉ ÎÁ ×ÁÛÅÊ ÍÁÛÉÎÅ ÍÁÌÏ
+ÐÁÍÑÔÉ. ðÏÄÈÏÄÑÝÉÍ ÞÉÓÌÏÍ ÄÌÑ 4 ÍÅÇÁÂÁÊÔ ÂÕÄÅÔ 4 ËÏÎÓÏÌÉ (ÉÌÉ ÄÁÖÅ ÍÅÎØÛÅ).
diff --git a/release/sysinstall/help/slice.hlp b/release/sysinstall/help/slice.hlp
new file mode 100644
index 0000000..e055ca4
--- /dev/null
+++ b/release/sysinstall/help/slice.hlp
@@ -0,0 +1,28 @@
+This is the Main Partition (or ``Slice'') Editor.
+
+Possible commands are printed at the bottom, and the Master Boot Record
+contents are at the top. You can move up and down with the arrow keys
+and can (C)reate a new partition whenever the "bar" is over a partition
+whose type is set to "unused".
+
+The flags field has the following legend:
+
+ '=' -- Partition is properly aligned.
+ '>' -- The partition doesn't end before cylinder 1024
+ 'R' -- Has been marked as containing the root (/) filesystem
+ 'B' -- Partition employs BAD144 bad-spot handling
+ 'C' -- This is the FreeBSD 2.0-compatibility partition (default)
+ 'A' -- This partition is marked active.
+
+If you select a partition for Bad144 handling, it will be scanned
+for bad blocks before any new filesystems are made on it.
+
+If no partition is marked Active, you will need to either install
+a Boot Manager (the option for which will be presented later in the
+installation) or set one Active before leaving this screen.
+
+To leave this screen, type `Q'.
+
+No actual changes will be made to the disk until you (C)ommit from the
+Install menu! You're working with what is essentially a copy of
+the disk label(s), both here and in the Label Editor.
diff --git a/release/sysinstall/help/sv_SE.ISO8859-1/README b/release/sysinstall/help/sv_SE.ISO8859-1/README
new file mode 100644
index 0000000..c6761e8
--- /dev/null
+++ b/release/sysinstall/help/sv_SE.ISO8859-1/README
@@ -0,0 +1,114 @@
+
+ -----------------------------------------
+ FreeBSD 2.0.5 --- RELEASE Version , ,
+ ----------------------------------------- /( )`
+ \ \___ / |
+Välkommen till FreeBSD version 2.0.5! Denna version /- _ `-/ '
+är en fyllnadsrelease av FreeBSD som täcker upp det (/\/ \ \ /\
+tomrum som bildats mellan 2.0R (som släpptes i / / | ` \
+November '94) och 2.1R, som kommer att släppas O O ) / |
+i slutet av Juli '95. FreeBSD 2.0.5 innehåller `-^--'`< '
+många betydande förbättringar gentemot 2.0R, (_.) _ ) /
+bland annat mycket bättre stabilitet, ett `.___/` /
+dussintal nya finesser och ett förbättrat `-----' /
+installationsprogram. Läs de "release <----. __ / __ \
+notes" som finns för fler detaljer om <----|====O)))==) \) /====
+vad som är nytt i 2.0.5! <----' `--' `.__,' \
+ | |
+ \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+
+Vad är FreeBSD? FreeBSD är ett operativsystem för Intel, AMD, Cyrix och
+NexGen "x86"-baserad PC-hårdvara. FreeBSD är baserat på 4.4 BSD Lite.
+Det fungerar med en stor mängd olika tillbehör och konfigurationer och
+kan användas för allt från mjukvaruutveckling till att tillhandahålla
+Internet-tjänster; det mest använda systemet på Internet, ftp.cdrom.com, är
+en FreeBSD-maskin!
+
+Denna version av FreeBSD innehåller allt du behöver för att köra ett
+sådant system. Fullständig källkod till allting ingår också.
+Med källkodsdistributionen installerad kan du bokstavligt talat kompilera
+om hela systemet från början med ett enda kommando. Detta gör FreeBSD
+perfekt för studenter, forskare och de som helt enkelt vill undersöka
+hur saker fungerar.
+
+
+En stor samling av programvara anpassad till FreeBSD av olika personer
+("the ports collection") följer också med. Mer än 270 programpaket
+innehållande allt från editorer till programspråk och grafikverktyg,
+detta underlättar för dig att installera alla dina favoritprogram
+under unix för FreeBSD. Detta gör FreeBSD till ett kraftfullt och
+innehållsrikt operativsystem som utmanar det som många större arbets-
+stationer har när det gäller kraftfullhet och allmän användbarhet.
+
+
+För mer information om detta system rekommenderas du att beställa
+"4.4BSD Document Set" från O'Reilly Associates och USENIX Association,
+ISBN 1-56592-082-1. Vi har inget samarbete med O'Reilly, vi är bara
+nöjda kunder!
+
+
+Du kan också vilja läsa den hårdvaruguide som finns *innan* du fortsätter
+installationen. Att konfigurera PC-hårdvara för någonting annat än DOS/Windows
+(som egentligen inte ställer så höga krav på hårdvaran) är faktiskt svårare
+än det ser ut att vara. Om du tror du förstår dig på PC:ar har du uppenbarligen
+inte använt dem tillräckligt länge! :) Guiden ger dig en del tips om hur du
+skall konfigurera din hårdvara och de symptom du skall vara uppmärksam på
+om du får problem. Den finns tillgänglig under menyn "Documentation" som
+finns på FreeBSD-startdisketten.
+
+
+OBSERVERA: FreeBSD gör sitt bästa för att du inte skall förlora någon
+information, men det är möjligt att RADERA HELA HÅRDDISKEN med denna
+installation! Fortsätt inte till sista FreeBSD-installationsmenyn om du
+inte har någon säkerhetskopia på all din väsentliga information! Vi menar
+det verkligen!
+
+
+Tekniska kommentarer om denna version sänds (på engelska!) till:
+
+
+ hackers@FreeBSD.org
+
+
+Felrapporter bör sändas med hjälp av kommandot 'send-pr' om du lyckats
+installera systemet, i annat fall till:
+
+ bugs@FreeBSD.org
+
+Var noga med att uppge VILKEN VERSION av FreeBSD du kör i alla felrapporter!
+
+
+Allmänna frågor bör sändas till:
+
+ questions@FreeBSD.org
+
+
+Var tålmodig om dina frågor inte besvaras omgående - detta är en hektisk
+tid för oss, och våra frivilliga tillgångar är ofta belastade till
+bristningsgränsen! Felrapporter som skickas med kommandot send-pr
+loggas och registreras i vår feldatabas, och du hålls informerad om alla
+förändringar som sker under felets livstid (eller, om du kommer med
+förslag på förbättringar, hur dessa utvecklas).
+
+
+Vår WEB-server, http://www.freebsd.org, är en bra källa för uppdaterad
+information och tillhandahåller ett antal advancerade dokumentations-
+finesser. Du kan använda den version av Netscape som finns för BSDI för
+att orientera dig runt i World Wide Web direkt under FreeBSD.
+
+
+Du kan även vilja ta en titt i /usr/share/FAQ och /usr/share/doc för mer
+information om systemet.
+
+
+Tack för att du tog dig tid för att läsa detta, och vi hoppas verkligen att
+du uppskattar denna release av FreeBSD!
+
+
+
+ Jordan Hubbard,
+ för The FreeBSD Project
diff --git a/release/sysinstall/help/sv_SE.ISO8859-1/configure.hlp b/release/sysinstall/help/sv_SE.ISO8859-1/configure.hlp
new file mode 100644
index 0000000..ee64008
--- /dev/null
+++ b/release/sysinstall/help/sv_SE.ISO8859-1/configure.hlp
@@ -0,0 +1,15 @@
+I denna meny konfigurerar du systemet efter installationen. Du bör
+åtminstone sätta ett lösenord för root och ändra till rätt tidszon.
+
+För extra tillval såsom bash, emacs, pascal med flera vill du nog titta på
+valet "Packages" i denna meny. Observera att detta val ännu så länge endast
+ger något om du har ett CDROM eller samlingen av programpaket någonstans
+på hårddisken där packages-hanteraren kan hitta den. Automatisk hämtning av
+packages via FTP stöds ännu så länge inte!
+
+
+Om du vill starta package-installeraren efter systeminstallationen
+kan du använda kommandot ``pkg_manage''. För att ändra tidszon
+använder du kommandot ``tzsetup''.
+För mer information om systemkonfiguration hänvisas du till filen
+``/etc/sysconfig''.
diff --git a/release/sysinstall/help/sv_SE.ISO8859-1/language.hlp b/release/sysinstall/help/sv_SE.ISO8859-1/language.hlp
new file mode 100644
index 0000000..3cadc5f
--- /dev/null
+++ b/release/sysinstall/help/sv_SE.ISO8859-1/language.hlp
@@ -0,0 +1,14 @@
+Använd denna meny för att välja språk. För närvarande ändrar detta
+endast det språk som används i hjälptexterna.
+
+I senare versioner kommer detta även att ändra tangentbordslayouten,
+skärmens teckenuppsättning, NLS-inställningarna (själva sysinstall
+kommer att använda meddelandekataloger så att alla menyer blir
+i det språk du valt) och ändra andra I18N-finesser för att uppfylla
+olika konventioner.
+
+
+Innan dessa förbättringar är gjorda kanske du föredrar att ändra i
+filen /etc/sysconfig för hand när systemet är installerat.
+I filen finns det gott om kommentarer som beskriver vad du skall ändra,
+inklusive några exempel på icke-engelska inställningar.
diff --git a/release/sysinstall/help/sv_SE.ISO8859-1/usage.hlp b/release/sysinstall/help/sv_SE.ISO8859-1/usage.hlp
new file mode 100644
index 0000000..1f544b9
--- /dev/null
+++ b/release/sysinstall/help/sv_SE.ISO8859-1/usage.hlp
@@ -0,0 +1,49 @@
+HUR DU ANVÄNDER DETTA SYSTEM
+============================
+
+TANGENT FUNKTION
+------- --------
+PIL UPPÅT Flytta till föregående rad (eller uppåt i ett textfält).
+PIL NEDÅT Flytta till nästa rad (eller nedåt i ett textfält).
+TAB Flytta till nästa fält.
+PIL HÖGER Flytta till nästa fält (samma som TAB).
+SHIFT-TAB Flytta till föregående fält.
+PIL VÄNSTER Flytta till föregående fält (samma som SHIFT-TAB).
+RETURN Markera rad eller utför handling.
+PAGE UP Flyttar upp texten en sida i textfält.
+PAGE DOWN Flyttar ner texten en sida i textfält.
+MELLANSLAG Markera/avmarkera gällande val i flervalsmenyer.
+F1 Hjälp (på de skärmbilder som tillhandahåller det).
+
+Om du ser symbolerna "^(-)" eller "v(+)" vid kanten av en meny, betyder
+det att det finns fler val ovanför eller under de val du just ser, som inte
+visas (på grund av de inte ryms på skärmen). Med hjälp av pil uppåt eller nedåt
+kan du rulla fram dessa val. När en symbol försvinner innebär det att du
+befinner dig längst upp eller ner på en meny.
+
+I ett textfält visas storleken av den återstående texten procentuellt
+i det nedre högra hörnet. 100% innebär att du är vid slutet av texten.
+
+Välj "OK" för att bekräfta menyvalen.
+"Avbryt" för dig normalt tillbaka till föregående meny.
+
+
+ADVANCERADE FUNKTIONER:
+=======================
+
+Det är möjligt att flytta till ett val genom att skriva dess första tecken
+om detta är unikt. Sådana snabbval är markerade i texten.
+
+Skärmdrivrutinen innehåller ett minne för text som har rullat förbi
+på skärmen. För att återse trycker du på "Scroll Lock"-tangenten och
+använder piltangenterna och Page Up/Page Down för att förflytta dig i
+texten. För att sluta återse trycker du på "Scroll Lock"-tangenten igen.
+Denna funktion är till störst nytta när du använder en kommandotolk
+eller någon annat "expertläge".
+
+När systemet är färdiginstallerat och igång kommer du att kunna byta
+mellan flera "virtuella skärmar". På så sätt kan du ha flera sessioner
+öppna samtidigt. Använd ALT-F<n> för att byta mellan dem.
+Från början finns det fyra sessioner att byta mellan. När systemet till
+slut är uppe kan du ändra det genom att editera filen /etc/ttys.
+Maximalt antal virtuella skärmar är 12.
diff --git a/release/sysinstall/help/sv_SE.ISO_8859-1/README b/release/sysinstall/help/sv_SE.ISO_8859-1/README
new file mode 100644
index 0000000..c6761e8
--- /dev/null
+++ b/release/sysinstall/help/sv_SE.ISO_8859-1/README
@@ -0,0 +1,114 @@
+
+ -----------------------------------------
+ FreeBSD 2.0.5 --- RELEASE Version , ,
+ ----------------------------------------- /( )`
+ \ \___ / |
+Välkommen till FreeBSD version 2.0.5! Denna version /- _ `-/ '
+är en fyllnadsrelease av FreeBSD som täcker upp det (/\/ \ \ /\
+tomrum som bildats mellan 2.0R (som släpptes i / / | ` \
+November '94) och 2.1R, som kommer att släppas O O ) / |
+i slutet av Juli '95. FreeBSD 2.0.5 innehåller `-^--'`< '
+många betydande förbättringar gentemot 2.0R, (_.) _ ) /
+bland annat mycket bättre stabilitet, ett `.___/` /
+dussintal nya finesser och ett förbättrat `-----' /
+installationsprogram. Läs de "release <----. __ / __ \
+notes" som finns för fler detaljer om <----|====O)))==) \) /====
+vad som är nytt i 2.0.5! <----' `--' `.__,' \
+ | |
+ \ / /\
+ ______( (_ / \______/
+ ,' ,-----' |
+ `--{__________)
+
+
+Vad är FreeBSD? FreeBSD är ett operativsystem för Intel, AMD, Cyrix och
+NexGen "x86"-baserad PC-hårdvara. FreeBSD är baserat på 4.4 BSD Lite.
+Det fungerar med en stor mängd olika tillbehör och konfigurationer och
+kan användas för allt från mjukvaruutveckling till att tillhandahålla
+Internet-tjänster; det mest använda systemet på Internet, ftp.cdrom.com, är
+en FreeBSD-maskin!
+
+Denna version av FreeBSD innehåller allt du behöver för att köra ett
+sådant system. Fullständig källkod till allting ingår också.
+Med källkodsdistributionen installerad kan du bokstavligt talat kompilera
+om hela systemet från början med ett enda kommando. Detta gör FreeBSD
+perfekt för studenter, forskare och de som helt enkelt vill undersöka
+hur saker fungerar.
+
+
+En stor samling av programvara anpassad till FreeBSD av olika personer
+("the ports collection") följer också med. Mer än 270 programpaket
+innehållande allt från editorer till programspråk och grafikverktyg,
+detta underlättar för dig att installera alla dina favoritprogram
+under unix för FreeBSD. Detta gör FreeBSD till ett kraftfullt och
+innehållsrikt operativsystem som utmanar det som många större arbets-
+stationer har när det gäller kraftfullhet och allmän användbarhet.
+
+
+För mer information om detta system rekommenderas du att beställa
+"4.4BSD Document Set" från O'Reilly Associates och USENIX Association,
+ISBN 1-56592-082-1. Vi har inget samarbete med O'Reilly, vi är bara
+nöjda kunder!
+
+
+Du kan också vilja läsa den hårdvaruguide som finns *innan* du fortsätter
+installationen. Att konfigurera PC-hårdvara för någonting annat än DOS/Windows
+(som egentligen inte ställer så höga krav på hårdvaran) är faktiskt svårare
+än det ser ut att vara. Om du tror du förstår dig på PC:ar har du uppenbarligen
+inte använt dem tillräckligt länge! :) Guiden ger dig en del tips om hur du
+skall konfigurera din hårdvara och de symptom du skall vara uppmärksam på
+om du får problem. Den finns tillgänglig under menyn "Documentation" som
+finns på FreeBSD-startdisketten.
+
+
+OBSERVERA: FreeBSD gör sitt bästa för att du inte skall förlora någon
+information, men det är möjligt att RADERA HELA HÅRDDISKEN med denna
+installation! Fortsätt inte till sista FreeBSD-installationsmenyn om du
+inte har någon säkerhetskopia på all din väsentliga information! Vi menar
+det verkligen!
+
+
+Tekniska kommentarer om denna version sänds (på engelska!) till:
+
+
+ hackers@FreeBSD.org
+
+
+Felrapporter bör sändas med hjälp av kommandot 'send-pr' om du lyckats
+installera systemet, i annat fall till:
+
+ bugs@FreeBSD.org
+
+Var noga med att uppge VILKEN VERSION av FreeBSD du kör i alla felrapporter!
+
+
+Allmänna frågor bör sändas till:
+
+ questions@FreeBSD.org
+
+
+Var tålmodig om dina frågor inte besvaras omgående - detta är en hektisk
+tid för oss, och våra frivilliga tillgångar är ofta belastade till
+bristningsgränsen! Felrapporter som skickas med kommandot send-pr
+loggas och registreras i vår feldatabas, och du hålls informerad om alla
+förändringar som sker under felets livstid (eller, om du kommer med
+förslag på förbättringar, hur dessa utvecklas).
+
+
+Vår WEB-server, http://www.freebsd.org, är en bra källa för uppdaterad
+information och tillhandahåller ett antal advancerade dokumentations-
+finesser. Du kan använda den version av Netscape som finns för BSDI för
+att orientera dig runt i World Wide Web direkt under FreeBSD.
+
+
+Du kan även vilja ta en titt i /usr/share/FAQ och /usr/share/doc för mer
+information om systemet.
+
+
+Tack för att du tog dig tid för att läsa detta, och vi hoppas verkligen att
+du uppskattar denna release av FreeBSD!
+
+
+
+ Jordan Hubbard,
+ för The FreeBSD Project
diff --git a/release/sysinstall/help/sv_SE.ISO_8859-1/configure.hlp b/release/sysinstall/help/sv_SE.ISO_8859-1/configure.hlp
new file mode 100644
index 0000000..ee64008
--- /dev/null
+++ b/release/sysinstall/help/sv_SE.ISO_8859-1/configure.hlp
@@ -0,0 +1,15 @@
+I denna meny konfigurerar du systemet efter installationen. Du bör
+åtminstone sätta ett lösenord för root och ändra till rätt tidszon.
+
+För extra tillval såsom bash, emacs, pascal med flera vill du nog titta på
+valet "Packages" i denna meny. Observera att detta val ännu så länge endast
+ger något om du har ett CDROM eller samlingen av programpaket någonstans
+på hårddisken där packages-hanteraren kan hitta den. Automatisk hämtning av
+packages via FTP stöds ännu så länge inte!
+
+
+Om du vill starta package-installeraren efter systeminstallationen
+kan du använda kommandot ``pkg_manage''. För att ändra tidszon
+använder du kommandot ``tzsetup''.
+För mer information om systemkonfiguration hänvisas du till filen
+``/etc/sysconfig''.
diff --git a/release/sysinstall/help/sv_SE.ISO_8859-1/language.hlp b/release/sysinstall/help/sv_SE.ISO_8859-1/language.hlp
new file mode 100644
index 0000000..3cadc5f
--- /dev/null
+++ b/release/sysinstall/help/sv_SE.ISO_8859-1/language.hlp
@@ -0,0 +1,14 @@
+Använd denna meny för att välja språk. För närvarande ändrar detta
+endast det språk som används i hjälptexterna.
+
+I senare versioner kommer detta även att ändra tangentbordslayouten,
+skärmens teckenuppsättning, NLS-inställningarna (själva sysinstall
+kommer att använda meddelandekataloger så att alla menyer blir
+i det språk du valt) och ändra andra I18N-finesser för att uppfylla
+olika konventioner.
+
+
+Innan dessa förbättringar är gjorda kanske du föredrar att ändra i
+filen /etc/sysconfig för hand när systemet är installerat.
+I filen finns det gott om kommentarer som beskriver vad du skall ändra,
+inklusive några exempel på icke-engelska inställningar.
diff --git a/release/sysinstall/help/sv_SE.ISO_8859-1/usage.hlp b/release/sysinstall/help/sv_SE.ISO_8859-1/usage.hlp
new file mode 100644
index 0000000..1f544b9
--- /dev/null
+++ b/release/sysinstall/help/sv_SE.ISO_8859-1/usage.hlp
@@ -0,0 +1,49 @@
+HUR DU ANVÄNDER DETTA SYSTEM
+============================
+
+TANGENT FUNKTION
+------- --------
+PIL UPPÅT Flytta till föregående rad (eller uppåt i ett textfält).
+PIL NEDÅT Flytta till nästa rad (eller nedåt i ett textfält).
+TAB Flytta till nästa fält.
+PIL HÖGER Flytta till nästa fält (samma som TAB).
+SHIFT-TAB Flytta till föregående fält.
+PIL VÄNSTER Flytta till föregående fält (samma som SHIFT-TAB).
+RETURN Markera rad eller utför handling.
+PAGE UP Flyttar upp texten en sida i textfält.
+PAGE DOWN Flyttar ner texten en sida i textfält.
+MELLANSLAG Markera/avmarkera gällande val i flervalsmenyer.
+F1 Hjälp (på de skärmbilder som tillhandahåller det).
+
+Om du ser symbolerna "^(-)" eller "v(+)" vid kanten av en meny, betyder
+det att det finns fler val ovanför eller under de val du just ser, som inte
+visas (på grund av de inte ryms på skärmen). Med hjälp av pil uppåt eller nedåt
+kan du rulla fram dessa val. När en symbol försvinner innebär det att du
+befinner dig längst upp eller ner på en meny.
+
+I ett textfält visas storleken av den återstående texten procentuellt
+i det nedre högra hörnet. 100% innebär att du är vid slutet av texten.
+
+Välj "OK" för att bekräfta menyvalen.
+"Avbryt" för dig normalt tillbaka till föregående meny.
+
+
+ADVANCERADE FUNKTIONER:
+=======================
+
+Det är möjligt att flytta till ett val genom att skriva dess första tecken
+om detta är unikt. Sådana snabbval är markerade i texten.
+
+Skärmdrivrutinen innehåller ett minne för text som har rullat förbi
+på skärmen. För att återse trycker du på "Scroll Lock"-tangenten och
+använder piltangenterna och Page Up/Page Down för att förflytta dig i
+texten. För att sluta återse trycker du på "Scroll Lock"-tangenten igen.
+Denna funktion är till störst nytta när du använder en kommandotolk
+eller någon annat "expertläge".
+
+När systemet är färdiginstallerat och igång kommer du att kunna byta
+mellan flera "virtuella skärmar". På så sätt kan du ha flera sessioner
+öppna samtidigt. Använd ALT-F<n> för att byta mellan dem.
+Från början finns det fyra sessioner att byta mellan. När systemet till
+slut är uppe kan du ändra det genom att editera filen /etc/ttys.
+Maximalt antal virtuella skärmar är 12.
diff --git a/release/sysinstall/help/tcp.hlp b/release/sysinstall/help/tcp.hlp
new file mode 100644
index 0000000..3ab5d7c
--- /dev/null
+++ b/release/sysinstall/help/tcp.hlp
@@ -0,0 +1,27 @@
+This screen allows you to set up your general network parameters
+(hostname, domain name, DNS server, etc) as well as the settings for a
+given interface (which was selected from the menu before this screen).
+
+You can move through the fields with the TAB, BACK-TAB and RETURN
+keys. To edit a field, use DELETE or BACKSPACE. You may also use ^A
+(control-A) to go to the beginning of the line, ^E (control-E) to go
+to the end, ^F (control-F) to go forward a character, ^B (control-B)
+to go backward one character, ^D (control-D) to delete the character
+under the cursor and ^K (control-K) to delete to the end of the line.
+Basically, the standard EMACS motion sequences.
+
+The ``Extra options to ifconfig'' is kind of special (read: a hack :-).
+
+You can use it for specifying the foreign side of a PLIP or SLIP line
+(simply type the foreign address in) as well as selecting a given
+"link" on an ethernet card that has more than one (e.g. AUI, 10BT,
+10B2, etc). The following links are recognised:
+
+ link0 - AUI * highest precedence
+ link1 - BNC
+ link2 - UTP * lowest precedence
+
+That is to say that you can enter one of "link0", "link1" or "link2"
+into the `Extra options' field to select a different link.
+
+When you're done with this form, select OK.
diff --git a/release/sysinstall/help/upgrade.hlp b/release/sysinstall/help/upgrade.hlp
new file mode 100644
index 0000000..5cba594
--- /dev/null
+++ b/release/sysinstall/help/upgrade.hlp
@@ -0,0 +1,38 @@
+Welcome to the 2.0.5 -> 2.1 upgrade procedure!
+
+It must first be said that this upgrade DOES NOT take a particularly
+sophisticated approach to the upgrade problem, it being more a question
+of providing what seemed "good enough" at the time. A truly polished
+upgrade that deals properly with the broad spectrum of installed 2.0.5
+systems would be nice to have, but until that gets written what you get is
+this - the brute-force approach!
+
+What this upgrade will attempt to do is best summarized thusly:
+
+ 1. fsck and mount all file systems chosen in the label editor.
+ 2. Ask for a location to preserve your /etc directory into and do so.
+ 3. Extract all selected distributions on top of your existing system.
+ 4. Copy certain obvious files back from the preserved /etc, leaving the
+ rest of the /etc file merge up to the user.
+ 5. Drop user in a shell so that they may perform that merge before
+ rebooting into the new system.
+
+And that's it! This "upgrade" is not going to hold your hand in all
+major respects, it's simply provided to make one PART of the upgrade
+easier.
+
+IMPORTANT NOTE: What this upgrade procedure may also do, in fact, is
+completely destroy your system (though much more quickly than you
+would have been able to destroy it yourself). It is simply impossible
+to guarantee that this procedure's crude form of upgrade automation
+will work in all cases and if you do this upgrade without proper
+BACKUPS for any important data then you really must like living life
+close to the edge, that's all we can say!
+
+NOTE to 2.0 users: We're sorry, but the "slice" changes that were
+added in FreeBSD 2.0.5 made automated upgrades pretty difficult due to
+the fact that a complete reinstall is pretty much called for. Things
+may still *work* after a 2.1 upgrade, but you will also no doubt
+receive many warnings at boot time about non-aligned slices and such;
+we really do recommend a fresh installation for 2.0 systems! (But
+back up your user data first :-).
diff --git a/release/sysinstall/help/usage.hlp b/release/sysinstall/help/usage.hlp
new file mode 100644
index 0000000..b01a94b
--- /dev/null
+++ b/release/sysinstall/help/usage.hlp
@@ -0,0 +1,54 @@
+HOW TO USE THIS SYSTEM
+======================
+
+KEY ACTION
+--- ------
+UP ARROW Move to previous item (or up, in a text field).
+DOWN ARROW Move to next item (or down, in a text field).
+TAB Move to next item or group.
+RIGHT ARROW Move to next item or group (same as TAB).
+SHIFT-TAB Move to previous item or group.
+LEFT ARROW Move to previous item or group (same as SHIFT-TAB).
+RETURN Select item.
+PAGE UP In text boxes, scrolls up one page.
+PAGE DOWN In text boxes, scrolls down one page.
+SPACE In "radio" or multiple choice menus, toggle the current item.
+F1 Help (in screens that provide it).
+
+If you also see small "^(-)" or "v(+)" symbols at the edges of a menu,
+it means that there are more items above or below the current one that
+aren't being shown (due to insufficient screen space). Using the
+up/down arrow keys will cause the menu to scroll. When a symbol
+disappears, it means you are at the top (or bottom) of the menu.
+
+In text fields, the amount of text above the current point will be
+displayed as a percentage in the lower right corner. 100% means
+you're at the bottom of the field.
+
+Selecting OK in a menu will confirm whatever action it's controlling.
+Selecting Cancel will cancel the operation and generally return you to
+the previous menu.
+
+
+SPECIAL FEATURES:
+=================
+
+It is also possible to select a menu item by typing the first
+character of its name, if unique. Such "accelerator" characters will
+be specially highlighted in the item name.
+
+The console driver also contains a scroll-back buffer for reviewing
+things that may have scrolled off the screen. To use scroll-back,
+press the "Scroll Lock" key on your keyboard and use the arrow or
+Page Up/Page Down keys to move through the saved text. To leave
+scroll-back mode, press the Scroll Lock key again. This feature
+is most useful for dealing with sub-shells or other "wizard modes"
+that don't use menus.
+
+Once the system is fully installed and running "multi-user", you will
+also find that you have multiple "virtual consoles" and can use them to
+have several active sessions at once. Use ALT-F<n> to switch between
+them, where `F<n>' is the function key corresponding to the screen you
+wish to see. By default, the system comes with 3 virtual consoles enabled.
+You can create more by editing the /etc/ttys file, once the system is up,
+for a maximum of 12.
diff --git a/release/sysinstall/index.c b/release/sysinstall/index.c
new file mode 100644
index 0000000..8b9dcfc
--- /dev/null
+++ b/release/sysinstall/index.c
@@ -0,0 +1,569 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last program in the `sysinstall' line - the next
+ * generation being essentially a complete rewrite.
+ *
+ * $Id: index.c,v 1.14 1995/10/21 14:06:44 jkh Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include <fcntl.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <ncurses.h>
+#include <dialog.h>
+#include "sysinstall.h"
+
+/* Macros and magic values */
+#define MAX_MENU 13
+#define _MAX_DESC 62
+
+/* Smarter strdup */
+inline char *
+_strdup(char *ptr)
+{
+ return ptr ? strdup(ptr) : NULL;
+}
+
+static char *descrs[] = {
+ "Package Selection", "To mark a package or select a category, move to it and press SPACE.\n"
+ "To unmark a package, press SPACE again. When you want to commit your\n"
+ "marks, press [ENTER]. To go to a previous menu, select UP item or Cancel.\n"
+ "To search for a package by name, press ESC.",
+ "Package Targets", "These are the packages you've selected for extraction.\n\n"
+ "If you're sure of these choices, select OK.\n"
+ "If not, select Cancel to go back to the package selection menu.\n",
+ "All", "All available packages in all categories.",
+ "applications", "User application software.",
+ "archivers", "Utilities for archiving and unarchiving data.",
+ "audio", "Audio utilities - most require a supported sound card.",
+ "benchmarks", "Utilities for measuring system performance.",
+ "benchmarking", "Utilities for measuring system performance.",
+ "cad", "Computer Aided Design utilities.",
+ "comms", "Communications utilities.",
+ "databases", "Database software.",
+ "devel", "Software development utilities and libraries.",
+ "development", "Software development utilities and libraries.",
+ "documentation", "Document preparation utilities.",
+ "editors", "Common text editors.",
+ "emulation", "Utilities for emulating other OS types.",
+ "emulators", "Utilities for emulating other OS types.",
+ "games", "Various and sundry amusements.",
+ "graphics", "Graphics libraries and utilities.",
+ "japanese", "Ported software for the Japanese market.",
+ "lang", "Computer languages.",
+ "languages", "Computer languages.",
+ "libraries", "Software development libraries.",
+ "mail", "Electronic mail packages and utilities.",
+ "math", "Mathematical computation software.",
+ "net", "Networking utilities.",
+ "networking", "Networking utilities.",
+ "news", "USENET News support software.",
+ "numeric", "Mathematical computation software.",
+ "orphans", "Packages without a home elsewhere.",
+ "plan9", "Software from the plan9 Operating System.",
+ "print", "Utilities for dealing with printing.",
+ "printing", "Utilities for dealing with printing.",
+ "programming", "Software development utilities and libraries.",
+ "russian", "Ported software for the Russian market.",
+ "security", "System security software.",
+ "shells", "Various shells (tcsh, bash, etc).",
+ "sysutils", "Various system utilities.",
+ "troff", "TROFF Text formatting utilities.",
+ "utils", "Various user utilities.",
+ "utilities", "Various user utilities.",
+ "x11", "X Window System based utilities.",
+ NULL, NULL,
+};
+
+static char *
+fetch_desc(char *name)
+{
+ int i;
+
+ for (i = 0; descrs[i]; i += 2) {
+ if (!strcmp(descrs[i], name))
+ return descrs[i + 1];
+ }
+ return "No description provided";
+}
+
+static PkgNodePtr
+new_pkg_node(char *name, node_type type)
+{
+ PkgNodePtr tmp = safe_malloc(sizeof(PkgNode));
+
+ tmp->name = _strdup(name);
+ tmp->type = type;
+ return tmp;
+}
+
+static IndexEntryPtr
+new_index(char *name, char *pathto, char *prefix, char *comment, char *descr, char *maint)
+{
+ IndexEntryPtr tmp = safe_malloc(sizeof(IndexEntry));
+
+ tmp->name = _strdup(name);
+ tmp->path = _strdup(pathto);
+ tmp->prefix = _strdup(prefix);
+ tmp->comment = _strdup(comment);
+ tmp->descrfile = _strdup(descr);
+ tmp->maintainer = _strdup(maint);
+ return tmp;
+}
+
+static void
+index_register(PkgNodePtr top, char *where, IndexEntryPtr ptr)
+{
+ PkgNodePtr p, q;
+
+ for (q = NULL, p = top->kids; p; p = p->next) {
+ if (!strcmp(p->name, where)) {
+ q = p;
+ break;
+ }
+ }
+ if (!p) {
+ /* Add new category */
+ q = new_pkg_node(where, PLACE);
+ q->desc = fetch_desc(where);
+ q->next = top->kids;
+ top->kids = q;
+ }
+ p = new_pkg_node(ptr->name, PACKAGE);
+ p->desc = ptr->comment;
+ p->data = ptr;
+ p->next = q->kids;
+ q->kids = p;
+}
+
+static int
+copy_to_sep(char *to, char *from, int sep)
+{
+ char *tok;
+
+ tok = strchr(from, sep);
+ if (!tok) {
+ fprintf(stderr, "missing '%c' token.\n", sep);
+ *to = '\0';
+ return 0;
+ }
+ *tok = '\0';
+ strcpy(to, from);
+ return tok + 1 - from;
+}
+
+static int
+readline(int fd, char *buf, int max)
+{
+ int rv, i = 0;
+ char ch;
+
+ while ((rv = read(fd, &ch, 1)) == 1 && ch != '\n' && i < max)
+ buf[i++] = ch;
+ if (i < max)
+ buf[i] = '\0';
+ return rv;
+}
+
+int
+index_parse(int fd, char *name, char *pathto, char *prefix, char *comment, char *descr, char *maint,
+ char *cats, char *keys)
+{
+ char line[1024];
+ char *cp;
+ int i;
+
+ i = readline(fd, line, 1024);
+ if (i <= 0)
+ return EOF;
+ cp = line;
+ cp += copy_to_sep(name, cp, '|');
+ cp += copy_to_sep(pathto, cp, '|');
+ cp += copy_to_sep(prefix, cp, '|');
+ cp += copy_to_sep(comment, cp, '|');
+ cp += copy_to_sep(descr, cp, '|');
+ cp += copy_to_sep(maint, cp, '|');
+ cp += copy_to_sep(cats, cp, '|');
+ strcpy(keys, cp);
+ return 0;
+}
+
+int
+index_get(char *fname, PkgNodePtr papa)
+{
+ int i, fd;
+
+ fd = open(fname, O_RDONLY);
+ if (fd < 0) {
+ fprintf(stderr, "Unable to open index file `%s' for reading.\n", fname);
+ i = -1;
+ }
+ else
+ i = index_read(fd, papa);
+ close(fd);
+ return i;
+}
+
+int
+index_read(int fd, PkgNodePtr papa)
+{
+ char name[127], pathto[255], prefix[255], comment[255], descr[127], maint[127], cats[511], keys[511];
+
+ while (index_parse(fd, name, pathto, prefix, comment, descr, maint, cats, keys) != EOF) {
+ char *cp, *cp2, tmp[511];
+ IndexEntryPtr idx;
+
+ idx = new_index(name, pathto, prefix, comment, descr, maint);
+ /* For now, we only add things to menus if they're in categories. Keywords are ignored */
+ for (cp = strcpy(tmp, cats); (cp2 = strchr(cp, ' ')) != NULL; cp = cp2 + 1) {
+ *cp2 = '\0';
+ index_register(papa, cp, idx);
+ }
+ index_register(papa, cp, idx);
+
+ /* Add to special "All" category */
+ index_register(papa, "All", idx);
+ }
+ return 0;
+}
+
+void
+index_init(PkgNodePtr top, PkgNodePtr plist)
+{
+ top->next = top->kids = NULL;
+ top->name = "Package Selection";
+ top->type = PLACE;
+ top->desc = fetch_desc(top->name);
+
+ plist->next = plist->kids = NULL;
+ plist->name = "Package Targets";
+ plist->type = PLACE;
+ plist->desc = fetch_desc(plist->name);
+}
+
+void
+index_entry_free(IndexEntryPtr top)
+{
+ safe_free(top->name);
+ safe_free(top->path);
+ safe_free(top->prefix);
+ safe_free(top->comment);
+ safe_free(top->descrfile);
+ safe_free(top->maintainer);
+ free(top);
+}
+
+void
+index_node_free(PkgNodePtr top, PkgNodePtr plist)
+{
+ PkgNodePtr tmp;
+
+ tmp = plist;
+ while (tmp) {
+ PkgNodePtr tmp2 = tmp->next;
+
+ safe_free(tmp);
+ tmp = tmp2;
+ }
+
+ for (tmp = top; tmp; tmp = tmp->next) {
+ free(tmp->name);
+ if (tmp->type == PACKAGE && tmp->data)
+ index_entry_free((IndexEntryPtr)tmp->data);
+ if (tmp->kids)
+ index_node_free(tmp->kids, NULL);
+ }
+}
+
+void
+index_print(PkgNodePtr top, int level)
+{
+ int i;
+
+ while (top) {
+ for (i = 0; i < level; i++) putchar('\t');
+ printf("name [%s]: %s\n", top->type == PLACE ? "place" : "package", top->name);
+ for (i = 0; i < level; i++) putchar('\t');
+ printf("desc: %s\n", top->desc);
+ if (top->kids)
+ index_print(top->kids, level + 1);
+ top = top->next;
+ }
+}
+
+/* Swap one node for another */
+static void
+swap_nodes(PkgNodePtr a, PkgNodePtr b)
+{
+ PkgNode tmp;
+
+ tmp = *a;
+ *a = *b;
+ a->next = tmp.next;
+ tmp.next = b->next;
+ *b = tmp;
+}
+
+/* Use a disgustingly simplistic bubble sort to put our lists in order */
+void
+index_sort(PkgNodePtr top)
+{
+ PkgNodePtr p, q;
+
+ /* Sort everything at the top level */
+ for (p = top->kids; p; p = p->next) {
+ for (q = top->kids; q; q = q->next) {
+ if (q->next && strcmp(q->name, q->next->name) > 0)
+ swap_nodes(q, q->next);
+ }
+ }
+
+ /* Now sub-sort everything n levels down */
+
+ for (p = top->kids; p; p = p->next) {
+ if (p->kids)
+ index_sort(p);
+ }
+}
+
+/*
+ * No, we don't free n because someone else is still pointing at it.
+ * It's just clone linked from another location, which we're adjusting.
+ */
+void
+index_delete(PkgNodePtr n)
+{
+ if (n->next)
+ *n = *(n->next);
+ else /* Kludgy end sentinal */
+ n->name = NULL;
+}
+
+PkgNodePtr
+index_search(PkgNodePtr top, char *str, PkgNodePtr *tp)
+{
+ PkgNodePtr p, sp;
+
+ for (p = top->kids; p && p->name; p = p->next) {
+ /* Subtract out the All category from searches */
+ if (!strcmp(p->name, "All"))
+ continue;
+
+ /* If tp == NULL, we're looking for an exact package match */
+ if (!tp && !strcmp(p->name, str))
+ return p;
+
+ /* If tp, we're looking for both a package and a pointer to the place it's in */
+ if (tp && strstr(p->name, str)) {
+ *tp = top;
+ return p;
+ }
+
+ /* The usual recursion-out-of-laziness ploy */
+ if (p->kids)
+ if ((sp = index_search(p, str, tp)) != NULL)
+ return sp;
+ }
+ if (p && !p->name)
+ p = NULL;
+ return p;
+}
+
+/* Work function for seeing if name x is in result string y */
+static Boolean
+is_selected_in(char *name, char *result)
+{
+ Boolean ret = FALSE;
+
+ while (*result) {
+ char *cp;
+
+ cp = index(result, '\n');
+ if (!cp) {
+ ret = !strcmp(name, result);
+ break;
+ }
+ else {
+ ret = !strncmp(name, result, cp - result - 1);
+ if (ret)
+ break;
+ }
+ result = cp + 1;
+ }
+ return ret;
+}
+
+int
+index_menu(PkgNodePtr top, PkgNodePtr plist, int *pos, int *scroll)
+{
+ int n, rval, maxname;
+ int curr, max;
+ PkgNodePtr sp, kp;
+ char **nitems;
+ char result[127];
+ Boolean hasPackages;
+
+ curr = max = 0;
+ hasPackages = FALSE;
+ nitems = NULL;
+
+ n = maxname = 0;
+ /* Figure out if this menu is full of "leaves" or "branches" */
+ for (kp = top->kids; kp && kp->name; kp = kp->next) {
+ int len;
+
+ ++n;
+ if (kp->type == PACKAGE && plist) {
+ hasPackages = TRUE;
+ if ((len = strlen(kp->name)) > maxname)
+ maxname = len;
+ }
+ }
+ if (!n && plist) {
+ msgConfirm("The %s menu is empty.", top->name);
+ return RET_DONE;
+ }
+
+ dialog_clear();
+ while (1) {
+ n = 0;
+ kp = top->kids;
+ if (!hasPackages && kp && kp->name && plist) {
+ nitems = item_add_pair(nitems, "UP", "<RETURN TO PREVIOUS MENU>", &curr, &max);
+ ++n;
+ }
+ while (kp && kp->name) {
+ /* Brutally adjust description to fit in menu */
+ if (strlen(kp->desc) > (_MAX_DESC - maxname))
+ kp->desc[_MAX_DESC - maxname] = '\0';
+ nitems = item_add_pair(nitems, kp->name, kp->desc, &curr, &max);
+ if (hasPackages) {
+ if (kp->type == PACKAGE && plist)
+ nitems = item_add(nitems, index_search(plist, kp->name, NULL) ? "ON" : "OFF", &curr, &max);
+ else
+ nitems = item_add(nitems, "OFF", &curr, &max);
+ }
+ ++n;
+ kp = kp->next;
+ }
+ nitems = item_add(nitems, NULL, &curr, &max);
+
+ if (hasPackages)
+ rval = dialog_checklist(top->name, top->desc, -1, -1, n > MAX_MENU ? MAX_MENU : n, n,
+ (unsigned char **)nitems, result);
+ else /* It's a categories menu */
+ rval = dialog_menu(top->name, top->desc, -1, -1, n > MAX_MENU ? MAX_MENU : n, n,
+ (unsigned char **)nitems, result, pos, scroll);
+ items_free(nitems, &curr, &max);
+ if (!rval && plist && strcmp(result, "UP")) {
+ for (kp = top->kids; kp; kp = kp->next) {
+ if (kp->type == PACKAGE) {
+ sp = index_search(plist, kp->name, NULL);
+ if (is_selected_in(kp->name, result)) {
+ if (!sp) {
+ PkgNodePtr n = (PkgNodePtr)safe_malloc(sizeof(PkgNode));
+
+ *n = *kp;
+ n->next = plist->kids;
+ plist->kids = n;
+ standout();
+ mvprintw(23, 0, "Selected packages were added to selection list\n", kp->name);
+ standend();
+ refresh();
+ }
+ }
+ else if (sp) {
+ standout();
+ mvprintw(23, 0, "Deleting unselected packages from selection list\n", kp->name);
+ standend();
+ refresh();
+ index_delete(sp);
+ }
+ }
+ else if (!strcmp(kp->name, result)) { /* Not a package, must be a directory */
+ int p, s;
+
+ p = s = 0;
+ index_menu(kp, plist, &p, &s);
+ }
+ }
+ }
+ else if (rval == -1 && plist) {
+ static char *cp;
+ PkgNodePtr menu;
+
+ /* Search */
+ if ((cp = msgGetInput(cp, "Search by package name. Please enter search string:")) != NULL) {
+ PkgNodePtr p = index_search(top, cp, &menu);
+
+ if (p) {
+ int pos, scroll;
+
+ /* These need to be set to point at the found item, actually. Hmmm! */
+ pos = scroll = 0;
+ index_menu(menu, plist, &pos, &scroll);
+ }
+ else
+ msgConfirm("Search string: %s yielded no hits.", cp);
+ }
+ }
+ else {
+ dialog_clear();
+ return rval ? RET_FAIL : RET_SUCCESS;
+ }
+ }
+}
+
+int
+index_extract(Device *dev, PkgNodePtr plist)
+{
+ PkgNodePtr tmp;
+ int status = RET_SUCCESS;
+
+ for (tmp = plist->kids; tmp; tmp = tmp->next) {
+ if (package_extract(dev, tmp->name) != RET_SUCCESS) {
+ if (variable_get(VAR_NO_CONFIRM))
+ msgNotify("Unable to locate package %s..", tmp->name);
+ else
+ msgConfirm("Unable to locate package %s..", tmp->name);
+ status = RET_FAIL;
+ }
+ }
+ return status;
+}
diff --git a/release/sysinstall/install.c b/release/sysinstall/install.c
new file mode 100644
index 0000000..5530e9c
--- /dev/null
+++ b/release/sysinstall/install.c
@@ -0,0 +1,518 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last program in the `sysinstall' line - the next
+ * generation being essentially a complete rewrite.
+ *
+ * $Id: install.c,v 1.71.2.1 1995/07/21 10:53:54 rgrimes Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+#include <sys/disklabel.h>
+#include <sys/errno.h>
+#include <sys/ioctl.h>
+#include <sys/fcntl.h>
+#include <sys/wait.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+Boolean SystemWasInstalled = FALSE;
+
+static Boolean copy_self(void);
+static Boolean root_extract(void);
+
+static Chunk *rootdev;
+
+static Boolean
+checkLabels(void)
+{
+ Device **devs;
+ Disk *disk;
+ Chunk *c1, *c2, *swapdev, *usrdev;
+ int i;
+
+ rootdev = swapdev = usrdev = NULL;
+ devs = deviceFind(NULL, DEVICE_TYPE_DISK);
+ /* First verify that we have a root device */
+ for (i = 0; devs[i]; i++) {
+ if (!devs[i]->enabled)
+ continue;
+ disk = (Disk *)devs[i]->private;
+ msgDebug("Scanning disk %s for root filesystem\n", disk->name);
+ if (!disk->chunks)
+ msgFatal("No chunk list found for %s!", disk->name);
+ for (c1 = disk->chunks->part; c1; c1 = c1->next) {
+ if (c1->type == freebsd) {
+ for (c2 = c1->part; c2; c2 = c2->next) {
+ if (c2->type == part && c2->subtype != FS_SWAP && c2->private) {
+ if (c2->flags & CHUNK_IS_ROOT) {
+ if (rootdev) {
+ msgConfirm("WARNING: You have more than one root device set?!\nUsing the first one found.");
+ continue;
+ }
+ rootdev = c2;
+ }
+ else if (!strcmp(((PartInfo *)c2->private)->mountpoint, "/usr")) {
+ if (usrdev) {
+ msgConfirm("WARNING: You have more than one /usr filesystem.\nUsing the first one found.");
+ continue;
+ }
+ usrdev = c2;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /* Now check for swap devices */
+ for (i = 0; devs[i]; i++) {
+ disk = (Disk *)devs[i]->private;
+ msgDebug("Scanning disk %s for swap partitions\n", disk->name);
+ if (!disk->chunks)
+ msgFatal("No chunk list found for %s!", disk->name);
+ for (c1 = disk->chunks->part; c1; c1 = c1->next) {
+ if (c1->type == freebsd) {
+ for (c2 = c1->part; c2; c2 = c2->next) {
+ if (c2->type == part && c2->subtype == FS_SWAP) {
+ swapdev = c2;
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ if (!rootdev) {
+ msgConfirm("No root device found - you must label a partition as /\n in the label editor.");
+ return FALSE;
+ }
+ else if (rootdev->name[strlen(rootdev->name) - 1] != 'a') {
+ msgConfirm("Invalid placement of root partition. For now, we only support\nmounting root partitions on \"a\" partitions due to limitations\nin the FreeBSD boot code. Please correct this and\ntry again.");
+ return FALSE;
+ }
+ if (!swapdev) {
+ msgConfirm("No swap devices found - you must create at least one\nswap partition.");
+ return FALSE;
+ }
+ if (!usrdev)
+ msgConfirm("WARNING: No /usr filesystem found. This is not technically\nan error if your root filesystem is big enough (or you later\nintend to get your /usr filesystem over NFS), but it may otherwise\ncause you trouble and is not recommended procedure!");
+ return TRUE;
+}
+
+static Boolean
+installInitial(void)
+{
+ static Boolean alreadyDone = FALSE;
+
+ if (alreadyDone)
+ return TRUE;
+
+ if (!getenv(DISK_PARTITIONED)) {
+ msgConfirm("You need to partition your disk before you can proceed with\nthe installation.");
+ return FALSE;
+ }
+ if (!getenv(DISK_LABELLED)) {
+ msgConfirm("You need to assign disk labels before you can proceed with\nthe installation.");
+ return FALSE;
+ }
+ if (!checkLabels())
+ return FALSE;
+
+ /* If we refuse to proceed, bail. */
+ if (msgYesNo("Last Chance! Are you SURE you want continue the installation?\n\nIf you're running this on an existing system, we STRONGLY\nencourage you to make proper backups before proceeding.\nWe take no responsibility for lost disk contents!"))
+ return FALSE;
+
+ (void)diskPartitionWrite(NULL);
+
+ if (!installFilesystems()) {
+ msgConfirm("Couldn't make filesystems properly. Aborting.");
+ return FALSE;
+ }
+
+ if (!copy_self()) {
+ msgConfirm("Couldn't clone the boot floppy onto the root file system.\nAborting.");
+ return FALSE;
+ }
+
+ dialog_clear();
+ chroot("/mnt");
+ chdir("/");
+ variable_set2(RUNNING_ON_ROOT, "yes");
+ /* stick a helpful shell over on the 4th VTY */
+ if (OnVTY && !fork()) {
+ int i, fd;
+ extern int login_tty(int);
+
+ msgDebug("Starting an emergency holographic shell over on the 4th screen\n");
+ for (i = 0; i < 64; i++)
+ close(i);
+ fd = open("/dev/ttyv3", O_RDWR);
+ ioctl(0, TIOCSCTTY, &fd);
+ dup2(0, 1);
+ dup2(0, 2);
+ if (login_tty(fd) == -1) {
+ msgNotify("Can't set controlling terminal");
+ exit(1);
+ }
+ printf("Warning: This shell is chroot()'d to /mnt\n");
+ execlp("sh", "-sh", 0);
+ exit(1);
+ }
+ alreadyDone = TRUE;
+ return TRUE;
+}
+
+int
+installExpress(char *str)
+{
+ msgConfirm("In the next menu, you will need to set up a DOS-style\n"
+ "partitioning scheme for your hard disk. If you don't\n"
+ "want to do anything special, just type `A' to use the\n"
+ "whole disk and then `Q' to quit.");
+ diskPartitionEditor("express");
+
+ msgConfirm("Next, you need to lay out BSD partitions inside of the\n"
+ "DOS-style partition just created. If you don't want to\n"
+ "do anything special, just type `A' to use the default\n"
+ "partitioning scheme and then `Q' to quit.");
+ diskLabelEditor("express");
+
+ msgConfirm("Now it is time to select an installation subset. There\n"
+ "are two basic configurations: Developer and Router. The\n"
+ "Developer subset includes sources, documentation, and\n"
+ "binaries for almost everything. The Router subset\n"
+ "includes the same binaries and documentation, but no\n"
+ "sources. You can also install absolutely everything,\n"
+ "or select a custom software set.");
+
+ while(!Dists) {
+ dmenuOpenSimple(&MenuInstallType);
+ }
+
+ msgConfirm("Finally, you must specify an installation medium.");
+
+ dmenuOpenSimple(&MenuMedia);
+
+ installCommit("express");
+
+ dmenuOpenSimple(&MenuConfigure);
+ return 0;
+}
+
+/*
+ * What happens when we select "Commit" in the custom installation menu.
+ *
+ * This is broken into multiple stages so that the user can do a full installation but come
+ * back here again to load more distributions, perhaps from a different media type.
+ * This would allow, for example, the user to load the majority of the system from CDROM
+ * and then use ftp to load just the DES dist.
+ */
+int
+installCommit(char *str)
+{
+ Device **devs;
+ int i;
+
+ if (!Dists) {
+ msgConfirm("You haven't told me what distributions to load yet!\nPlease select a distribution from the Distributions menu.");
+ return 0;
+ }
+
+ if (!mediaVerify())
+ return 0;
+
+ if (RunningAsInit && !SystemWasInstalled) {
+ if (!installInitial())
+ return 0;
+ configFstab();
+ }
+ if (RunningAsInit && !SystemWasInstalled && !root_extract()) {
+ msgConfirm("Failed to load the ROOT distribution. Please correct\nthis problem and try again.");
+ return 0;
+ }
+
+ /* If we're about to extract the bin dist again, reset the installed state */
+ if (Dists & DIST_BIN)
+ SystemWasInstalled = FALSE;
+
+ (void)distExtractAll(NULL);
+
+ if (!SystemWasInstalled && access("/kernel", R_OK)) {
+ if (vsystem("ln -f /kernel.GENERIC /kernel")) {
+ msgConfirm("Unable to link /kernel into place!");
+ return 0;
+ }
+ }
+
+ /* Resurrect /dev after bin distribution screws it up */
+ if (RunningAsInit && !SystemWasInstalled) {
+ msgNotify("Remaking all devices.. Please wait!");
+ if (vsystem("cd /dev; sh MAKEDEV all"))
+ msgConfirm("MAKEDEV returned non-zero status");
+
+ msgNotify("Resurrecting /dev entries for slices..");
+ devs = deviceFind(NULL, DEVICE_TYPE_DISK);
+ if (!devs)
+ msgFatal("Couldn't get a disk device list!");
+ /* Resurrect the slices that the former clobbered */
+ for (i = 0; devs[i]; i++) {
+ Disk *disk = (Disk *)devs[i]->private;
+ Chunk *c1;
+
+ if (!disk->chunks)
+ msgFatal("No chunk list found for %s!", disk->name);
+ for (c1 = disk->chunks->part; c1; c1 = c1->next) {
+ if (c1->type == freebsd) {
+ msgNotify("Making slice entries for %s", c1->name);
+ if (vsystem("cd /dev; sh MAKEDEV %sh", c1->name))
+ msgConfirm("Unable to make slice entries for %s!", c1->name);
+ }
+ }
+ }
+ }
+
+ /* XXX Do all the last ugly work-arounds here which we'll try and excise someday right?? XXX */
+ /* BOGON #1: XFree86 extracting /usr/X11R6 with root-only perms */
+ if (file_readable("/usr/X11R6"))
+ chmod("/usr/X11R6", 0755);
+
+ /* BOGON #2: We leave /etc in a bad state */
+ chmod("/etc", 0755);
+
+ dialog_clear();
+ /* We get a NULL value for str if run from installExpress(), in which case we don't want to print the following */
+ if (str) {
+ if (Dists)
+ msgConfirm("Installation completed with some errors. You may wish\nto scroll through the debugging messages on ALT-F2 with the scroll-lock\nfeature. Press [ENTER] to return to the installation menu.");
+ else
+ msgConfirm("Installation completed successfully, now press [ENTER] to return\nto the main menu. If you have any network devices you have not yet\nconfigured, see the Interface configuration item on the\nConfiguration menu.");
+ }
+ SystemWasInstalled = TRUE;
+ return 0;
+}
+
+/* Go newfs and/or mount all the filesystems we've been asked to */
+Boolean
+installFilesystems(void)
+{
+ int i;
+ Disk *disk;
+ Chunk *c1, *c2;
+ Device **devs;
+ char dname[40];
+ PartInfo *p = (PartInfo *)rootdev->private;
+ Boolean RootReadOnly;
+
+ command_clear();
+ devs = deviceFind(NULL, DEVICE_TYPE_DISK);
+
+ /* First, create and mount the root device */
+ if (strcmp(p->mountpoint, "/"))
+ msgConfirm("Warning: %s is marked as a root partition but is mounted on %s", rootdev->name, p->mountpoint);
+
+ if (p->newfs) {
+ int i;
+
+ sprintf(dname, "/dev/r%sa", rootdev->disk->name);
+ msgNotify("Making a new root filesystem on %s", dname);
+ i = vsystem("%s %s", p->newfs_cmd, dname);
+ if (i) {
+ msgConfirm("Unable to make new root filesystem! Command returned status %d", i);
+ return FALSE;
+ }
+ RootReadOnly = FALSE;
+ }
+ else {
+ RootReadOnly = TRUE;
+ msgConfirm("Warning: You have selected a Read-Only root device\nand may be unable to find the appropriate device entries on it\nif it is from an older pre-slice version of FreeBSD.");
+ sprintf(dname, "/dev/r%sa", rootdev->disk->name);
+ msgNotify("Checking integrity of existing %s filesystem", dname);
+ i = vsystem("fsck -y %s", dname);
+ if (i)
+ msgConfirm("Warning: fsck returned status off %d - this partition may be\nunsafe to use.", i);
+ }
+ sprintf(dname, "/dev/%sa", rootdev->disk->name);
+ if (Mount("/mnt", dname)) {
+ msgConfirm("Unable to mount the root file system! Giving up.");
+ return FALSE;
+ }
+
+ /* Now buzz through the rest of the partitions and mount them too */
+ for (i = 0; devs[i]; i++) {
+ if (!devs[i]->enabled)
+ continue;
+
+ disk = (Disk *)devs[i]->private;
+ if (!disk->chunks) {
+ msgConfirm("No chunk list found for %s!", disk->name);
+ return FALSE;
+ }
+
+ /* Make the proper device mount points in /mnt/dev */
+ if (!(RootReadOnly && disk == rootdev->disk)) {
+ Mkdir("/mnt/dev", NULL);
+ MakeDevDisk(disk, "/mnt/dev");
+ }
+ for (c1 = disk->chunks->part; c1; c1 = c1->next) {
+ if (c1->type == freebsd) {
+ for (c2 = c1->part; c2; c2 = c2->next) {
+ if (c2->type == part && c2->subtype != FS_SWAP && c2->private) {
+ PartInfo *tmp = (PartInfo *)c2->private;
+
+ if (!strcmp(tmp->mountpoint, "/"))
+ continue;
+
+ if (tmp->newfs)
+ command_shell_add(tmp->mountpoint, "%s /mnt/dev/r%s", tmp->newfs_cmd, c2->name);
+ else
+ command_shell_add(tmp->mountpoint, "fsck -y /mnt/dev/r%s", c2->name);
+ command_func_add(tmp->mountpoint, Mount, c2->name);
+ }
+ else if (c2->type == part && c2->subtype == FS_SWAP) {
+ char fname[80];
+ int i;
+
+ sprintf(fname, "/mnt/dev/%s", c2->name);
+ i = swapon(fname);
+ if (!i)
+ msgNotify("Added %s as a swap device", fname);
+ else
+ msgConfirm("Unable to add %s as a swap device: %s", fname, strerror(errno));
+ }
+ }
+ }
+ else if (c1->type == fat && c1->private && !RootReadOnly) {
+ char name[FILENAME_MAX];
+
+ sprintf(name, "/mnt%s", ((PartInfo *)c1->private)->mountpoint);
+ Mkdir(name, NULL);
+ }
+ }
+ }
+
+ /* Copy the boot floppy's dev files */
+ if (vsystem("find -x /dev | cpio -pdmV /mnt")) {
+ msgConfirm("Couldn't clone the /dev files!");
+ return FALSE;
+ }
+
+ command_sort();
+ command_execute();
+ return TRUE;
+}
+
+/* Copy the boot floppy contents into /stand */
+static Boolean
+copy_self(void)
+{
+ int i;
+
+ msgWeHaveOutput("Copying the boot floppy to /stand on root filesystem");
+ i = vsystem("find -x /stand | cpio -pdmV /mnt");
+ if (i) {
+ msgConfirm("Copy returned error status of %d!", i);
+ return FALSE;
+ }
+
+ /* Copy the /etc files into their rightful place */
+ if (vsystem("cd /mnt/stand; find etc | cpio -pdmV /mnt")) {
+ msgConfirm("Couldn't copy up the /etc files!");
+ return TRUE;
+ }
+ return TRUE;
+}
+
+static Boolean loop_on_root_floppy(void);
+
+static Boolean
+root_extract(void)
+{
+ int fd;
+ static Boolean alreadyExtracted = FALSE;
+
+ if (alreadyExtracted)
+ return TRUE;
+
+ if (mediaDevice) {
+ if (isDebug())
+ msgDebug("Attempting to extract root image from %s device\n", mediaDevice->description);
+ switch(mediaDevice->type) {
+
+ case DEVICE_TYPE_FLOPPY:
+ alreadyExtracted = loop_on_root_floppy();
+ break;
+
+ default:
+ if (!(*mediaDevice->init)(mediaDevice))
+ break;
+ fd = (*mediaDevice->get)(mediaDevice, "floppies/root.flp", NULL);
+ if (fd < 0) {
+ msgConfirm("Couldn't get root image from %s!\nWill try to get it from floppy.", mediaDevice->name);
+ (*mediaDevice->shutdown)(mediaDevice);
+ alreadyExtracted = loop_on_root_floppy();
+ }
+ else {
+ msgNotify("Loading root image from %s", mediaDevice->name);
+ alreadyExtracted = mediaExtractDist("/", fd);
+ (*mediaDevice->close)(mediaDevice, fd);
+ }
+ break;
+ }
+ }
+ else
+ alreadyExtracted = loop_on_root_floppy();
+ return alreadyExtracted;
+}
+
+static Boolean
+loop_on_root_floppy(void)
+{
+ int fd;
+ int status = FALSE;
+
+ while (1) {
+ fd = getRootFloppy();
+ if (fd != -1) {
+ msgNotify("Extracting root floppy..");
+ status = mediaExtractDist("/", fd);
+ close(fd);
+ break;
+ }
+ }
+ return status;
+}
diff --git a/release/sysinstall/installFinal.c b/release/sysinstall/installFinal.c
new file mode 100644
index 0000000..588fcfc
--- /dev/null
+++ b/release/sysinstall/installFinal.c
@@ -0,0 +1,244 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last program in the `sysinstall' line - the next
+ * generation being essentially a complete rewrite.
+ *
+ * $Id: installFinal.c,v 1.3 1995/10/20 14:24:49 jkh Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard & Coranth Gryphon. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the authors listed above
+ * for the FreeBSD Project.
+ * 4. The names of the authors or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE FREEBSD PROJECT ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR THEIR PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+#include <sys/disklabel.h>
+#include <sys/errno.h>
+#include <sys/ioctl.h>
+#include <sys/fcntl.h>
+#include <sys/wait.h>
+#include <sys/param.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <sys/mount.h>
+
+/* place-holder for now */
+int
+installApache(void)
+{
+ msgConfirm("UNDER CONSTRUCTION\n\n"
+ "This installation option is not yet implemented. It will\n"
+ "hopefully be in the final release.");
+ return RET_SUCCESS;
+}
+
+static DMenu MenuSamba = {
+ DMENU_MULTIPLE_TYPE | DMENU_SELECTION_RETURNS,
+ "Samba Services Menu",
+ "This allows you to configure various aspects of your Samba server.",
+ NULL,
+ NULL,
+{ { "Homes", "Make home directories available to users.",
+ DMENU_SET_VARIABLE, "SAMBA_homes=YES", 0, 0, dmenuVarCheck },
+ { "Printers", "Allows for sharing of local printers.",
+ DMENU_SET_VARIABLE, "SAMBA_printers=YES", 0, 0, dmenuVarCheck},
+ { "Export Paths", "Specify local directories to make available.",
+ DMENU_SET_VARIABLE, "SAMBA_export=YES", 0, 0, dmenuVarCheck },
+ { NULL } },
+};
+
+/* These probably shouldn't be hard-coded, but making them options might prove to be even more confusing! */
+#define FTP_UID 14
+#define FTP_NAME "ftp"
+#define FTP_GROUP "operator"
+#define FTP_COMMENT "Anonymous FTP Admin"
+
+#define SMB_CONF "./smb.conf"
+
+
+/* Do any final optional hackery */
+int
+installFinal(char *unused)
+{
+ int i, tval;
+ char tbuf[256];
+ char *tptr;
+ FILE *fptr;
+
+ i = RET_SUCCESS;
+
+ /* Do we want to install and set up gated? */
+ if (variable_get("gated")) {
+ /* Load gated package and maybe even seek to configure or explain it a little */
+ }
+
+ /* Set up anonymous FTP access to this machine? */
+ if (variable_get("anon_ftp")) {
+ tptr = msgGetInput("/u", "What directory should the ftp home be in?");
+ if (tptr && *tptr && (tptr[0] == '/')) {
+ int len = strlen(tbuf);
+
+ strcpy(tbuf, tptr);
+ if (tbuf[len - 1] == '/')
+ tbuf[len - 1] = '\0';
+
+ if (vsystem("adduser -uid %d -home %s -shell date -dotdir no -batch %s %s \"%s\" ",
+ FTP_UID, tbuf, FTP_NAME, FTP_GROUP, FTP_COMMENT)) {
+ msgConfirm("Unable to create FTP user! Anonymous FTP setup failed.");
+ i = RET_FAIL;
+ }
+ else {
+ vsystem("mkdir %s/%s/pub", tbuf, FTP_NAME);
+ vsystem("mkdir %s/%s/upload", tbuf, FTP_NAME);
+ vsystem("chmod 0777 %s/%s/upload", tbuf, FTP_NAME);
+ }
+ }
+ else {
+ msgConfirm("Invalid Directory. Anonymous FTP will not be set up.");
+ }
+ }
+
+ /* Set this machine up as a web server? */
+ if (variable_get("apache_httpd")) {
+ i = installApache();
+ }
+
+ /* Set this machine up as a Samba server? */
+ if (variable_get("samba")) {
+ if (!dmenuOpenSimple(&MenuSamba))
+ i = RET_FAIL;
+ else {
+ fptr = fopen("/tmp/smb.conf","w");
+ if (fptr) {
+ strcpy(tbuf,"FreeBSD - Samba %v");
+ if (variable_get("SAMBA_string")) {
+ tptr = msgGetInput("FreeBSD - Samba %%v", "What should this server list as its description?\n"
+ "Note that the \"%%v\" refers to the samba version number.");
+ if (tptr && *tptr)
+ strcpy(tbuf, tptr);
+ }
+
+ fprintf(fptr, "[global]\n");
+ fprintf(fptr, "comment = %s\n", tbuf);
+ fprintf(fptr, "log file = /var/log/samba.log\n");
+ fprintf(fptr, "dont descend = /dev,/proc,/root,/stand\n\n");
+
+ fprintf(fptr, "printing = bsd\n");
+ fprintf(fptr, "map archive = no\n");
+ fprintf(fptr, "status = yes\n");
+ fprintf(fptr, "public = yes\n");
+ fprintf(fptr, "read only = no\n");
+ fprintf(fptr, "preserve case = yes\n");
+ fprintf(fptr, "strip dot = yes\n");
+ fprintf(fptr, "security = share\n");
+ fprintf(fptr, "guest ok = yes\n\n");
+
+ if (variable_get("SAMBA_homes")) {
+ fprintf(fptr, "[homes]\n");
+ fprintf(fptr, "browseable = no\n");
+ fprintf(fptr, "comment = User Home Directory\n");
+ fprintf(fptr, "create mode = 0775\n");
+ fprintf(fptr, "public = no\n\n");
+ }
+
+ if (variable_get("SAMBA_printers")) {
+ fprintf(fptr, "[printers]\n");
+ fprintf(fptr, "path = /var/spool\n");
+ fprintf(fptr, "comment = Printers\n");
+ fprintf(fptr, "create mode = 0700\n");
+ fprintf(fptr, "browseable = no\n");
+ fprintf(fptr, "printable = yes\n");
+ fprintf(fptr, "read only = yes\n");
+ fprintf(fptr, "public = no\n\n");
+ }
+
+ if (variable_get("SAMBA_export")) {
+ for (tval = 0; ! tval; tval = msgYesNo("Another?")) {
+ tptr = msgGetInput(NULL,"What directory to export?");
+ if (tptr && *tptr && (tptr[0] == '/')) {
+ int len = strlen(tbuf);
+
+ strcpy(tbuf, tptr);
+ if (tbuf[len - 1] == '/')
+ tbuf[len - 1] = '\0';
+ if (directoryExists(tbuf)) {
+ tptr = msgGetInput(pathBaseName(tbuf), "What do you want to call this share?");
+ if (tptr && *tptr) {
+ fprintf(fptr, "[%s]\npath = %s\n", tptr, tbuf);
+ tptr = msgGetInput(NULL, "Enter a short description of this share?");
+ if (tptr && *tptr)
+ fprintf(fptr, "comment = %s\n", tptr);
+ if (msgYesNo("Do you want this share to be read only?"))
+ fprintf(fptr, "read only = no\n\n");
+ else
+ fprintf(fptr, "read only = yes\n\n");
+ }
+ else {
+ msgConfirm("Invalid Share Name.");
+ }
+ }
+ else {
+ msgConfirm("Directory does not exist.");
+ }
+ } /* end if (tptr) */
+ } /* end for loop */
+ } /* end if (SAMBA_export) */
+
+ fclose(fptr);
+ vsystem("mv -f /tmp/smb.conf %s", SMB_CONF);
+ }
+ else {
+ msgConfirm("Unable to open temporary smb.conf file.\nSamba must be configured by hand.");
+ }
+ }
+ }
+
+ /* Set this machine up with a PC-NFS authentication server? */
+ if (variable_get("pcnfsd")) {
+ /* Load and configure pcnfsd */
+ }
+
+ /* If we're an NFS server, we need an exports file */
+ if (variable_get("nfs_server") && !file_readable("/etc/exports")) {
+ msgConfirm("You have chosen to be an NFS server but have not yet configured\n"
+ "the /etc/exports file. You must configure this information before\n"
+ "other hosts will be able to mount file systems from your machine.\n"
+ "Press [ENTER] now to invoke an editor on /etc/exports");
+ vsystem("echo '#The following example exports /usr to 3 machines named after ducks.' > /etc/exports");
+ vsystem("echo '#/usr huey louie dewie' >> /etc/exports");
+ vsystem("echo >> /etc/exports");
+ systemExecute("ee /etc/exports");
+ }
+ return i;
+}
+
diff --git a/release/sysinstall/installPreconfig.c b/release/sysinstall/installPreconfig.c
new file mode 100644
index 0000000..7a261cd
--- /dev/null
+++ b/release/sysinstall/installPreconfig.c
@@ -0,0 +1,201 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last program in the `sysinstall' line - the next
+ * generation being essentially a complete rewrite.
+ *
+ * $Id: installPreconfig.c,v 1.4 1995/10/20 21:57:16 jkh Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+#include <ctype.h>
+#include <sys/disklabel.h>
+#include <sys/errno.h>
+#include <sys/ioctl.h>
+#include <sys/fcntl.h>
+#include <sys/wait.h>
+#include <sys/param.h>
+#define MSDOSFS
+#include <sys/mount.h>
+#undef MSDOSFS
+#include <sys/stat.h>
+#include <unistd.h>
+#include <sys/mount.h>
+
+static struct _word {
+ char *name;
+ int (*handler)(char *str);
+} resWords[] = {
+ { "diskPartitionEditor", diskPartitionEditor },
+ { "diskPartitionWrite", diskPartitionWrite },
+ { "diskLabelEditor", diskLabelEditor },
+ { "diskLabelCommit", diskLabelCommit },
+ { "distReset", distReset },
+ { "distSetDeveloper", distSetDeveloper },
+ { "distSetXDeveloper", distSetXDeveloper },
+ { "distSetKernDeveloper", distSetKernDeveloper },
+ { "distSetMinimum", distSetMinimum },
+ { "distSetEverything", distSetEverything },
+ { "distSetDES", distSetDES },
+ { "distSetSrc", distSetSrc },
+ { "distSetXF86", distSetXF86 },
+ { "distExtractAll", distExtractAll },
+ { "docBrowser", docBrowser },
+ { "docShowDocument", docShowDocument },
+ { "installCommit", installCommit },
+ { "installExpress", installExpress },
+ { "installUpgrade", installUpgrade },
+ { "installPreconfig", installPreconfig },
+ { "installFixup", installFixup },
+ { "installFinal", installFinal },
+ { "installFilesystems", installFilesystems },
+ { "mediaSetCDROM", mediaSetCDROM },
+ { "mediaSetFloppy", mediaSetFloppy },
+ { "mediaSetDOS", mediaSetDOS },
+ { "mediaSetTape", mediaSetTape },
+ { "mediaSetFTP", mediaSetFTP },
+ { "mediaSetFTPActive", mediaSetFTPActive },
+ { "mediaSetFTPPassive", mediaSetFTPPassive },
+ { "mediaSetUFS", mediaSetUFS },
+ { "mediaSetNFS", mediaSetNFS },
+ { "mediaSetFtpUserPass", mediaSetFtpUserPass },
+ { "mediaSetCPIOVerbosity", mediaSetCPIOVerbosity },
+ { "mediaGetType", mediaGetType },
+ { "tcpInstallDevice", tcpInstallDevice },
+ { NULL, NULL },
+};
+
+static int
+call_possible_resword(char *name, char *value, int *status)
+{
+ int i, rval;
+
+ rval = 0;
+ for (i = 0; resWords[i].name; i++) {
+ if (!strcmp(name, resWords[i].name)) {
+ *status = resWords[i].handler(value);
+ rval = 1;
+ break;
+ }
+ }
+ return rval;
+}
+
+/* From the top menu - try to mount the floppy and read a configuration file from it */
+int
+installPreconfig(char *str)
+{
+ struct ufs_args u_args;
+ struct msdosfs_args m_args;
+ int fd, i;
+ char buf[128];
+ char *cfg_file;
+
+ memset(&u_args, 0, sizeof(u_args));
+ u_args.fspec = "/dev/fd0";
+ Mkdir("/mnt2", NULL);
+
+ memset(&m_args, 0, sizeof(m_args));
+ m_args.fspec = "/dev/fd0";
+ m_args.uid = m_args.gid = 0;
+ m_args.mask = 0777;
+
+ i = RET_FAIL;
+ while (1) {
+ if (!(cfg_file = variable_get_value(VAR_CONFIG_FILE,
+ "Please insert the floppy containing this configuration file\n"
+ "into drive A now and press [ENTER].")))
+ break;
+
+ if (mount(MOUNT_UFS, "/mnt2", MNT_RDONLY, (caddr_t)&u_args) == -1) {
+ if (mount(MOUNT_MSDOS, "/mnt2", MNT_RDONLY, (caddr_t)&m_args) == -1) {
+ if (msgYesNo("Unable to mount the configuration floppy - do you want to try again?"))
+ break;
+ else
+ continue;
+ }
+ }
+ fnord:
+ if (!cfg_file)
+ break;
+ sprintf(buf, "/mnt2/%s", cfg_file);
+ msgDebug("Attempting to open configuration file: %s\n", buf);
+ fd = open(buf, O_RDONLY);
+ if (fd == -1) {
+ if (msgYesNo("Unable to find the configuration file `%s' - do you want to\n"
+ "try again?", buf)) {
+ unmount("/mnt2", 0);
+ break;
+ }
+ else
+ goto fnord;
+ }
+ else {
+ Attribs *cattr = safe_malloc(sizeof(Attribs) * MAX_ATTRIBS);
+ int i, j;
+
+ if (attr_parse(cattr, fd) == RET_FAIL)
+ msgConfirm("Cannot parse configuration file %s! Please verify your media.", cfg_file);
+ else {
+ i = RET_SUCCESS;
+ for (j = 0; cattr[j].name[0]; j++) {
+ int status;
+
+ if (call_possible_resword(cattr[j].name, cattr[j].value, &status)) {
+ if (status != RET_SUCCESS) {
+ msgDebug("macro call to %s(%s) returns %d status!\n", cattr[j].name, cattr[j].value,
+ status);
+ i = status;
+ }
+ }
+ else
+ variable_set2(cattr[j].name, cattr[j].value);
+ }
+ if (i == RET_SUCCESS)
+ msgConfirm("Configuration file %s loaded successfully!\n"
+ "Some parameters may now have new default values.", buf);
+ else if (i == RET_FAIL)
+ msgConfirm("Configuration file %s loaded with some errors.\n", buf);
+ }
+ close(fd);
+ safe_free(cattr);
+ unmount("/mnt2", 0);
+ break;
+ }
+ }
+ return i;
+}
diff --git a/release/sysinstall/installUpgrade.c b/release/sysinstall/installUpgrade.c
new file mode 100644
index 0000000..fba5233
--- /dev/null
+++ b/release/sysinstall/installUpgrade.c
@@ -0,0 +1,352 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last program in the `sysinstall' line - the next
+ * generation being essentially a complete rewrite.
+ *
+ * $Id: installUpgrade.c,v 1.2 1995/10/19 18:37:46 jkh Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+#include <sys/disklabel.h>
+#include <sys/errno.h>
+#include <sys/ioctl.h>
+#include <sys/fcntl.h>
+#include <sys/wait.h>
+#include <sys/param.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <sys/mount.h>
+
+typedef struct _hitList {
+ enum { JUST_COPY, CALL_HANDLER } action ;
+ char *name;
+ Boolean optional;
+ void (*handler)(struct _hitList *self);
+} HitList;
+
+/* cop-out function for files we can't handle */
+static void
+doByHand(HitList *h)
+{
+ msgConfirm("/etc/%s is one of those files that this upgrade procedure just isn't\n"
+ "smart enough to deal with right now. You'll need to merge the old and\n"
+ "new versions by hand when the option to do so is later presented.", h->name);
+}
+
+/* These are the only meaningful files I know about */
+static HitList etc_files [] = {
+ { JUST_COPY, "Xaccel.ini", TRUE, NULL },
+ { JUST_COPY, "adduser.conf", TRUE, NULL },
+ { JUST_COPY, "aliases", TRUE, NULL },
+ { JUST_COPY, "aliases.db", TRUE, NULL },
+ { JUST_COPY, "amd.map", TRUE, NULL },
+ { JUST_COPY, "crontab", TRUE, NULL },
+ { JUST_COPY, "csh.cshrc", TRUE, NULL },
+ { JUST_COPY, "csh.login", TRUE, NULL },
+ { JUST_COPY, "csh.logout", TRUE, NULL },
+ { JUST_COPY, "daily", TRUE, NULL },
+ { JUST_COPY, "disktab", TRUE, NULL },
+ { JUST_COPY, "dm.conf", TRUE, NULL },
+ { JUST_COPY, "exports", TRUE, NULL },
+ { JUST_COPY, "fbtab", TRUE, NULL },
+ { CALL_HANDLER, "fstab", FALSE, doByHand },
+ { JUST_COPY, "ftpusers", TRUE, NULL },
+ { JUST_COPY, "gnats", TRUE, NULL },
+ { JUST_COPY, "group", FALSE, NULL },
+ { JUST_COPY, "host.conf", TRUE, NULL },
+ { JUST_COPY, "hosts", TRUE, NULL },
+ { JUST_COPY, "hosts.equiv", TRUE, NULL },
+ { JUST_COPY, "hosts.lpd", TRUE, NULL },
+ { CALL_HANDLER, "inetd.conf", FALSE, doByHand },
+ { CALL_HANDLER, "kerberosIV", TRUE, doByHand },
+ { JUST_COPY, "localtime", TRUE, NULL },
+ { JUST_COPY, "login.access", TRUE, NULL },
+ { JUST_COPY, "mail.rc", TRUE, NULL },
+ { JUST_COPY, "make.conf", TRUE, NULL },
+ { JUST_COPY, "manpath.config", TRUE, NULL },
+ { JUST_COPY, "master.passwd", TRUE, NULL },
+ { JUST_COPY, "mib.txt", TRUE, NULL },
+ { JUST_COPY, "modems", TRUE, NULL },
+ { JUST_COPY, "monthly", TRUE, NULL },
+ { JUST_COPY, "motd", TRUE, NULL },
+ { JUST_COPY, "namedb", TRUE, NULL },
+ { CALL_HANDLER, "netstart", FALSE, doByHand },
+ { JUST_COPY, "networks", TRUE, NULL },
+ { JUST_COPY, "passwd", FALSE, NULL },
+ { JUST_COPY, "phones", TRUE, NULL },
+ { JUST_COPY, "ppp", TRUE, NULL },
+ { JUST_COPY, "printcap", TRUE, NULL },
+ { JUST_COPY, "profile", TRUE, NULL },
+ { JUST_COPY, "protocols", TRUE, NULL },
+ { JUST_COPY, "pwd.db", TRUE, NULL },
+ { CALL_HANDLER, "rc", FALSE, doByHand },
+ { CALL_HANDLER, "rc.i386", TRUE, doByHand },
+ { JUST_COPY, "rc.local", TRUE, NULL },
+ { CALL_HANDLER, "rc.serial", TRUE, doByHand },
+ { JUST_COPY, "remote", TRUE, NULL },
+ { JUST_COPY, "resolv.conf", TRUE, NULL },
+ { JUST_COPY, "rmt", TRUE, NULL },
+ { JUST_COPY, "security", TRUE, NULL },
+ { JUST_COPY, "sendmail.cf", TRUE, NULL },
+ { CALL_HANDLER, "services", TRUE, doByHand },
+ { JUST_COPY, "shells", TRUE, NULL },
+ { JUST_COPY, "skeykeys", TRUE, NULL },
+ { JUST_COPY, "spwd.db", TRUE, NULL },
+ { JUST_COPY, "supfile", TRUE, NULL },
+ { CALL_HANDLER, "sysconfig", FALSE, doByHand },
+ { JUST_COPY, "syslog.conf", TRUE, NULL },
+ { JUST_COPY, "termcap", TRUE, NULL },
+ { JUST_COPY, "ttys", TRUE, NULL },
+ { JUST_COPY, "uucp", TRUE, NULL },
+ { JUST_COPY, "weekly", TRUE, NULL },
+ { 0 },
+};
+
+void
+traverseHitlist(HitList *h)
+{
+ while (h->name) {
+ if (!file_readable(h->name)) {
+ if (!h->optional)
+ msgConfirm("Unable to find an old /etc/%s file! That is decidedly non-standard and\n"
+ "your upgraded system may function a little strangely as a result.");
+ }
+ else {
+ if (h->action == JUST_COPY) {
+ /* Nuke the just-loaded copy thoroughly */
+ vsystem("rm -rf /etc/%s", h->name);
+
+ /* Copy the old one into its place */
+ msgNotify("Resurrecting %s..", h->name);
+ /* Do this with tar so that symlinks and such are preserved */
+ if (vsystem("tar cf - %s | tar xpf - -C /etc", h->name))
+ msgConfirm("Unable to resurrect your old /etc/%s! Hmmmm.", h->name);
+ }
+ else /* call handler */
+ h->handler(h);
+ }
+ ++h;
+ }
+}
+
+int
+installUpgrade(char *str)
+{
+ char *saved_etc = NULL;
+ Boolean extractingBin = TRUE;
+ int waitstatus;
+ pid_t child;
+
+ if (!RunningAsInit) {
+ msgConfirm("You can only perform this procedure when booted off the installation\n"
+ "floppy.");
+ return RET_FAIL;
+ }
+
+ if (!Dists) {
+ msgConfirm("You haven't specified any distributions yet. The upgrade procedure\n"
+ "will only upgrade those portions of the system for which a distribution\n"
+ "has been selected. In the next screen, we'll go to the Distributions\n"
+ "menu to select those portions of 2.1 you wish to install on top of your\n"
+ "2.0.5 system.");
+ if (!dmenuOpenSimple(&MenuDistributions))
+ return RET_FAIL;
+ }
+
+ /* No bin selected? Not much of an upgrade.. */
+ if (!(Dists & DIST_BIN)) {
+ if (msgYesNo("You didn't select the bin distribution as one of the distributons to load.\n"
+ "This one is pretty vital to a successful 2.1 upgrade. Are you SURE you don't\n"
+ "want to select the bin distribution? Chose _No_ to bring up the Distributions\n"
+ "menu.")) {
+ (void)dmenuOpenSimple(&MenuDistributions);
+ }
+ }
+
+ /* Still?! OK! They must know what they're doing.. */
+ if (!(Dists & DIST_BIN))
+ extractingBin = FALSE;
+
+ systemDisplayHelp("upgrade");
+
+ if (msgYesNo("Given all that scary stuff you just read, are you sure you want to\n"
+ "risk it all and proceed with this upgrade?"))
+ return RET_FAIL;
+
+ /* Note that we're now upgrading */
+ variable_set2(SYSTEM_STATE, "upgrade");
+
+ msgConfirm("OK. First, we're going to go to the disk label editor. In this editor\n"
+ "you will be expected to *Mount* any partitions you're interested in\n"
+ "upgrading. Don't set the Newfs flag to Y on anything in the label editor\n"
+ "unless you're absolutely sure you know what you're doing! In this\n"
+ "instance, you'll be using the label editor as little more than a fancy\n"
+ "screen-oriented filesystem mounting utility, so think of it that way.\n\n"
+ "Once you're done in the label editor, press Q to return here for the next\n"
+ "step.\n");
+
+ if (diskLabelEditor(NULL) == RET_FAIL) {
+ msgConfirm("The disk label editor failed to work properly! Upgrade operation\n"
+ "aborted.");
+ return RET_FAIL;
+ }
+
+ /* Don't write out MBR info */
+ variable_set2(DISK_PARTITIONED, "written");
+ if (diskLabelCommit(NULL) == RET_FAIL) {
+ msgConfirm("Not all file systems were properly mounted. Upgrade operation\n"
+ "aborted.");
+ variable_unset(DISK_PARTITIONED);
+ return RET_FAIL;
+ }
+
+ if (chroot("/mnt") == RET_FAIL) {
+ msgConfirm("Unable to chroot to /mnt - something is wrong with the\n"
+ "root partition or the way it's mounted if this doesn't work.");
+ variable_unset(DISK_PARTITIONED);
+ return RET_FAIL;
+ }
+ chdir("/");
+ if (extractingBin) {
+ while (!saved_etc) {
+ saved_etc = msgGetInput("/usr/tmp/etc", "Under which directory do you wish to save your current /etc?");
+ if (!saved_etc || !*saved_etc || Mkdir(saved_etc, NULL)) {
+ if (msgYesNo("Directory was not specified, was invalid or user selected Cancel.\n\n"
+ "Doing an upgrade without first backing up your /etc directory is a very\n"
+ "bad idea! Do you want to go back and specify the save directory again?"))
+ break;
+ }
+ }
+
+ if (saved_etc) {
+ msgNotify("Preserving /etc directory..");
+ /* cp returns a bogus status, so we can't check the status meaningfully. Bleah. */
+ (void)vsystem("cp -pr /etc/* %s", saved_etc);
+ }
+ if (file_readable("/kernel")) {
+ msgNotify("Moving old kernel to /kernel.205");
+ if (system("chflags noschg /mnt/kernel && mv /mnt/kernel /mnt/kernel.205"))
+ if (!msgYesNo("Hmmm! I couldn't move the old kernel over! Do you want to\n"
+ "treat this as a big problem and abort the upgrade?"))
+ return RET_FAIL;
+ }
+ }
+ msgNotify("Beginning extraction of distributions..");
+ if (distExtractAll(NULL) == RET_FAIL) {
+ if (extractingBin && (Dists & DIST_BIN)) {
+ msgConfirm("Hmmmm. We couldn't even extract the bin distribution. This upgrade\n"
+ "should be considered a failure and started from the beginning, sorry!\n");
+ return RET_FAIL;
+ }
+ msgConfirm("The extraction process seems to have had some problems, but we got most\n"
+ "of the essentials. We'll treat this as a warning since it may have been\n"
+ "only non-essential distributions which failed to load.");
+ }
+
+ if (extractingBin) {
+ msgNotify("OK, now it's time to go pound on your root a little bit to create all the\n"
+ "/dev entries and such that a 2.1 system expects to see. I'll also perform a\n"
+ "few \"fixup\" operations to repair the effects of splatting a bin distribution\n"
+ "on top of an existing system..");
+ if (installFixup("upgrade") == RET_FAIL)
+ msgConfirm("Hmmmmm. The fixups don't seem to have been very happy.\n"
+ "You may wish to examine the system a little more closely when\n"
+ "it comes time to merge your /etc customizations back.");
+ }
+
+ if (extractingBin)
+ configSysconfig();
+
+ if (installFinal("upgrade") == RET_FAIL)
+ msgConfirm("Some of the final configuration stuff evidently failed, but\n"
+ "the first stage of the upgrade should otherwise be considered\n"
+ "a success!\n\n"
+ "Next comes stage 2, where we attempt to resurrect your /etc\n"
+ "directory!");
+ else
+ msgConfirm("First stage of upgrade completed successfully!\n\n"
+ "Next comes stage 2, where we attempt to resurrect your /etc\n"
+ "directory!");
+
+ if (chdir(saved_etc)) {
+ msgConfirm("Unable to go to your saved /etc directory in %s?! Argh!\n"
+ "Something went seriously wrong! It's quite possible that\n"
+ "your former /etc is toast. I hope you didn't have any\n"
+ "important customizations you wanted to keep in there.. :(\n");
+ return RET_FAIL;
+ }
+
+ /* Now try to resurrect the /etc files */
+ traverseHitlist(etc_files);
+
+ msgConfirm("OK! At this stage, we've resurrected all the /etc files we could\n"
+ "(and you may have been warned about some that you'll have to merge\n"
+ "yourself, by hand) and we're going to drop you into a shell to do\n"
+ "the rest yourself (sorry about this!). Once the system looks good\n"
+ "to you, exit the shell and reboot the system.");
+
+ chdir("/");
+ dialog_clear();
+ dialog_update();
+ end_dialog();
+ DialogActive = FALSE;
+
+ if (!(child = fork())) {
+ struct termios foo;
+
+ signal(SIGTTOU, SIG_IGN);
+ if (tcgetattr(0, &foo) != -1) {
+ foo.c_cc[VERASE] = '\010';
+ if (tcsetattr(0, TCSANOW, &foo) == -1)
+ msgDebug("Unable to set the erase character.\n");
+ }
+ else
+ msgDebug("Unable to get the terminal attributes!\n");
+ printf("Well, good luck! When you're done, type exit to return.\n");
+ execlp("sh", "-sh", 0);
+ msgDebug("Was unable to execute sh for post-upgrade shell!\n");
+ exit(1);
+ }
+ else
+ (void)waitpid(child, &waitstatus, 0);
+ DialogActive = TRUE;
+ clear();
+ dialog_clear();
+ dialog_update();
+ return RET_SUCCESS;
+}
diff --git a/release/sysinstall/label.c b/release/sysinstall/label.c
new file mode 100644
index 0000000..ccfb63b
--- /dev/null
+++ b/release/sysinstall/label.c
@@ -0,0 +1,780 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last program in the `sysinstall' line - the next
+ * generation being essentially a complete rewrite.
+ *
+ * $Id: label.c,v 1.32.2.2 1995/07/21 11:45:39 rgrimes Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+#include <ctype.h>
+#include <sys/disklabel.h>
+#include <sys/param.h>
+#undef TRUE
+#undef FALSE
+#include <sys/sysctl.h>
+
+/*
+ * Everything to do with editing the contents of disk labels.
+ */
+
+/* A nice message we use a lot in the disklabel editor */
+#define MSG_NOT_APPLICABLE "That option is not applicable here"
+
+/* Where to start printing the freebsd slices */
+#define CHUNK_SLICE_START_ROW 2
+#define CHUNK_PART_START_ROW 11
+
+/* One MB worth of blocks */
+#define ONE_MEG 2048
+
+/* The smallest filesystem we're willing to create */
+#define FS_MIN_SIZE ONE_MEG
+
+/* The smallest root filesystem we're willing to create */
+#define ROOT_MIN_SIZE (20 * ONE_MEG)
+
+/* All the chunks currently displayed on the screen */
+static struct {
+ struct chunk *c;
+ PartType type;
+} label_chunk_info[MAX_CHUNKS + 1];
+static int here;
+
+/* See if we're already using a desired partition name */
+static Boolean
+check_conflict(char *name)
+{
+ int i;
+
+ for (i = 0; label_chunk_info[i].c; i++)
+ if (label_chunk_info[i].type == PART_FILESYSTEM && label_chunk_info[i].c->private
+ && !strcmp(((PartInfo *)label_chunk_info[i].c->private)->mountpoint, name))
+ return TRUE;
+ return FALSE;
+}
+
+/* How much space is in this FreeBSD slice? */
+static int
+space_free(struct chunk *c)
+{
+ struct chunk *c1 = c->part;
+ int sz = c->size;
+
+ while (c1) {
+ if (c1->type != unused)
+ sz -= c1->size;
+ c1 = c1->next;
+ }
+ if (sz < 0)
+ msgFatal("Partitions are larger than actual chunk??");
+ return sz;
+}
+
+/* Snapshot the current situation into the displayed chunks structure */
+static void
+record_label_chunks()
+{
+ int i, j, p;
+ struct chunk *c1, *c2;
+ Device **devs;
+ Disk *d;
+
+ devs = deviceFind(NULL, DEVICE_TYPE_DISK);
+ if (!devs) {
+ msgConfirm("No disks found!");
+ return;
+ }
+
+ j = p = 0;
+ /* First buzz through and pick up the FreeBSD slices */
+ for (i = 0; devs[i]; i++) {
+ if (!devs[i]->enabled)
+ continue;
+ d = (Disk *)devs[i]->private;
+ if (!d->chunks)
+ msgFatal("No chunk list found for %s!", d->name);
+
+ /* Put the slice entries first */
+ for (c1 = d->chunks->part; c1; c1 = c1->next) {
+ if (c1->type == freebsd) {
+ label_chunk_info[j].type = PART_SLICE;
+ label_chunk_info[j].c = c1;
+ ++j;
+ }
+ }
+ }
+ /* Now run through again and get the FreeBSD partition entries */
+ for (i = 0; devs[i]; i++) {
+ if (!devs[i]->enabled)
+ continue;
+ d = (Disk *)devs[i]->private;
+ /* Then buzz through and pick up the partitions */
+ for (c1 = d->chunks->part; c1; c1 = c1->next) {
+ if (c1->type == freebsd) {
+ for (c2 = c1->part; c2; c2 = c2->next) {
+ if (c2->type == part) {
+ if (c2->subtype == FS_SWAP)
+ label_chunk_info[j].type = PART_SWAP;
+ else
+ label_chunk_info[j].type = PART_FILESYSTEM;
+ label_chunk_info[j].c = c2;
+ ++j;
+ }
+ }
+ }
+ else if (c1->type == fat) {
+ label_chunk_info[j].type = PART_FAT;
+ label_chunk_info[j].c = c1;
+ ++j;
+ }
+ }
+ }
+ label_chunk_info[j].c = NULL;
+ if (here >= j)
+ here = j ? j - 1 : 0;
+}
+
+/* A new partition entry */
+static PartInfo *
+new_part(char *mpoint, Boolean newfs, u_long size)
+{
+ PartInfo *ret;
+ u_long target, divisor;
+
+ if (!mpoint)
+ mpoint = "/change_me";
+
+ ret = (PartInfo *)safe_malloc(sizeof(PartInfo));
+ strncpy(ret->mountpoint, mpoint, FILENAME_MAX);
+ strcpy(ret->newfs_cmd, "newfs -b 8192 -f 2048");
+ ret->newfs = newfs;
+ if (!size)
+ return ret;
+ for (target = size; target; target--) {
+ for (divisor = 4096 ; divisor > 1023; divisor--) {
+ if (!(target % divisor)) {
+ sprintf(ret->newfs_cmd + strlen(ret->newfs_cmd), " -u %ld",divisor);
+ return ret;
+ }
+ }
+ }
+ return ret;
+}
+
+/* Get the mountpoint for a partition and save it away */
+PartInfo *
+get_mountpoint(struct chunk *old)
+{
+ char *val;
+ PartInfo *tmp;
+
+ if (old && old->private)
+ tmp = old->private;
+ else
+ tmp = NULL;
+ val = msgGetInput(tmp ? tmp->mountpoint : NULL, "Please specify a mount point for the partition");
+ if (!val || !*val) {
+ if (!old)
+ return NULL;
+ else {
+ free(old->private);
+ old->private = NULL;
+ }
+ return NULL;
+ }
+
+ /* Is it just the same value? */
+ if (tmp && !strcmp(tmp->mountpoint, val))
+ return NULL;
+
+ /* Did we use it already? */
+ if (check_conflict(val)) {
+ msgConfirm("You already have a mount point for %s assigned!", val);
+ return NULL;
+ }
+
+ /* Is it bogus? */
+ if (*val != '/') {
+ msgConfirm("Mount point must start with a / character");
+ return NULL;
+ }
+
+ /* Is it going to be mounted on root? */
+ if (!strcmp(val, "/")) {
+ if (old)
+ old->flags |= CHUNK_IS_ROOT;
+ }
+ else if (old)
+ old->flags &= ~CHUNK_IS_ROOT;
+
+ safe_free(tmp);
+ tmp = new_part(val, TRUE, 0);
+ if (old) {
+ old->private = tmp;
+ old->private_free = safe_free;
+ }
+ return tmp;
+}
+
+/* Get the type of the new partiton */
+static PartType
+get_partition_type(void)
+{
+ char selection[20];
+ int i;
+
+ static unsigned char *fs_types[] = {
+ "FS",
+ "A file system",
+ "Swap",
+ "A swap partition.",
+ };
+ i = dialog_menu("Please choose a partition type",
+ "If you want to use this partition for swap space, select Swap.\nIf you want to put a filesystem on it, choose FS.", -1, -1, 2, 2, fs_types, selection, NULL, NULL);
+ if (!i) {
+ if (!strcmp(selection, "FS"))
+ return PART_FILESYSTEM;
+ else if (!strcmp(selection, "Swap"))
+ return PART_SWAP;
+ }
+ return PART_NONE;
+}
+
+/* If the user wants a special newfs command for this, set it */
+static void
+getNewfsCmd(PartInfo *p)
+{
+ char *val;
+
+ val = msgGetInput(p->newfs_cmd,
+ "Please enter the newfs command and options you'd like to use in\ncreating this file system.");
+ if (val)
+ strncpy(p->newfs_cmd, val, NEWFS_CMD_MAX);
+}
+
+
+#define MAX_MOUNT_NAME 12
+
+#define PART_PART_COL 0
+#define PART_MOUNT_COL 8
+#define PART_SIZE_COL (PART_MOUNT_COL + MAX_MOUNT_NAME + 3)
+#define PART_NEWFS_COL (PART_SIZE_COL + 7)
+#define PART_OFF 38
+
+/* How many mounted partitions to display in column before going to next */
+#define CHUNK_COLUMN_MAX 5
+
+/* stick this all up on the screen */
+static void
+print_label_chunks(void)
+{
+ int i, j, srow, prow, pcol;
+ int sz;
+
+ attrset(A_REVERSE);
+ mvaddstr(0, 25, "FreeBSD Disklabel Editor");
+ clrtobot();
+ attrset(A_NORMAL);
+
+ for (i = 0; i < 2; i++) {
+ mvaddstr(CHUNK_PART_START_ROW - 2, PART_PART_COL + (i * PART_OFF), "Part");
+ mvaddstr(CHUNK_PART_START_ROW - 1, PART_PART_COL + (i * PART_OFF), "----");
+
+ mvaddstr(CHUNK_PART_START_ROW - 2, PART_MOUNT_COL + (i * PART_OFF), "Mount");
+ mvaddstr(CHUNK_PART_START_ROW - 1, PART_MOUNT_COL + (i * PART_OFF), "-----");
+
+ mvaddstr(CHUNK_PART_START_ROW - 2, PART_SIZE_COL + (i * PART_OFF) + 2, "Size");
+ mvaddstr(CHUNK_PART_START_ROW - 1, PART_SIZE_COL + (i * PART_OFF) + 2, "----");
+
+ mvaddstr(CHUNK_PART_START_ROW - 2, PART_NEWFS_COL + (i * PART_OFF), "Newfs");
+ mvaddstr(CHUNK_PART_START_ROW - 1, PART_NEWFS_COL + (i * PART_OFF), "-----");
+ }
+ srow = CHUNK_SLICE_START_ROW;
+ prow = CHUNK_PART_START_ROW;
+ pcol = 0;
+
+ for (i = 0; label_chunk_info[i].c; i++) {
+ if (i == here)
+ attrset(A_REVERSE);
+ /* Is it a slice entry displayed at the top? */
+ if (label_chunk_info[i].type == PART_SLICE) {
+ sz = space_free(label_chunk_info[i].c);
+ mvprintw(srow++, 0, "Disk: %s\tPartition name: %s\tFree: %d blocks (%dMB)",
+ label_chunk_info[i].c->disk->name, label_chunk_info[i].c->name, sz, (sz / ONE_MEG));
+ }
+ /* Otherwise it's a DOS, swap or filesystem entry, at the bottom */
+ else {
+ char onestr[PART_OFF], num[10], *mountpoint, *newfs;
+
+ /*
+ * We copy this into a blank-padded string so that it looks like
+ * a solid bar in reverse-video
+ */
+ memset(onestr, ' ', PART_OFF - 1);
+ onestr[PART_OFF - 1] = '\0';
+ /* Go for two columns */
+ if (prow == (CHUNK_PART_START_ROW + CHUNK_COLUMN_MAX)) {
+ pcol = PART_OFF;
+ prow = CHUNK_PART_START_ROW;
+ }
+ memcpy(onestr + PART_PART_COL, label_chunk_info[i].c->name, strlen(label_chunk_info[i].c->name));
+ /* If it's a filesystem, display the mountpoint */
+ if (label_chunk_info[i].c->private
+ && (label_chunk_info[i].type == PART_FILESYSTEM || label_chunk_info[i].type == PART_FAT))
+ mountpoint = ((PartInfo *)label_chunk_info[i].c->private)->mountpoint;
+ else
+ mountpoint = "<none>";
+
+ /* Now display the newfs field */
+ if (label_chunk_info[i].type == PART_FAT)
+ newfs = "DOS";
+ else if (label_chunk_info[i].c->private && label_chunk_info[i].type == PART_FILESYSTEM)
+ newfs = ((PartInfo *)label_chunk_info[i].c->private)->newfs ? "UFS Y" : "UFS N";
+ else if (label_chunk_info[i].type == PART_SWAP)
+ newfs = "SWAP";
+ else
+ newfs = "*";
+ for (j = 0; j < MAX_MOUNT_NAME && mountpoint[j]; j++)
+ onestr[PART_MOUNT_COL + j] = mountpoint[j];
+ snprintf(num, 10, "%4ldMB", label_chunk_info[i].c->size ? label_chunk_info[i].c->size / ONE_MEG : 0);
+ memcpy(onestr + PART_SIZE_COL, num, strlen(num));
+ memcpy(onestr + PART_NEWFS_COL, newfs, strlen(newfs));
+ onestr[PART_NEWFS_COL + strlen(newfs)] = '\0';
+ mvaddstr(prow, pcol, onestr);
+ ++prow;
+ }
+ if (i == here)
+ attrset(A_NORMAL);
+ }
+}
+
+static void
+print_command_summary()
+{
+ mvprintw(17, 0, "The following commands are valid here (upper or lower case):");
+ mvprintw(18, 0, "C = Create D = Delete M = Mount W = Write");
+ mvprintw(19, 0, "N = Newfs Opts T = Newfs Toggle U = Undo Q = Finish");
+ mvprintw(20, 0, "A = Auto Defaults for all!");
+ mvprintw(22, 0, "The default target will be displayed in ");
+
+ attrset(A_REVERSE);
+ addstr("reverse");
+ attrset(A_NORMAL);
+ addstr(" video.");
+ mvprintw(23, 0, "Use F1 or ? to get more help, arrow keys to move.");
+ move(0, 0);
+}
+
+int
+diskLabelEditor(char *str)
+{
+ int sz, key = 0;
+ Boolean labeling;
+ char *msg = NULL;
+ PartInfo *p, *oldp;
+ PartType type;
+ Device **devs;
+
+ labeling = TRUE;
+ keypad(stdscr, TRUE);
+ record_label_chunks();
+
+ if (!getenv(DISK_PARTITIONED)) {
+ msgConfirm("You need to partition your disk(s) before you can assign disk labels.");
+ return 0;
+ }
+ dialog_clear(); clear();
+ while (labeling) {
+ clear();
+ print_label_chunks();
+ print_command_summary();
+ if (msg) {
+ attrset(A_REVERSE); mvprintw(23, 0, msg); attrset(A_NORMAL);
+ beep();
+ msg = NULL;
+ }
+ refresh();
+ key = toupper(getch());
+ switch (key) {
+ int i, cnt;
+
+ case '\014': /* ^L */
+ continue;
+
+ case KEY_UP:
+ case '-':
+ if (here != 0)
+ --here;
+ else
+ while (label_chunk_info[here + 1].c)
+ ++here;
+ break;
+
+ case KEY_DOWN:
+ case '+':
+ case '\r':
+ case '\n':
+ if (label_chunk_info[here + 1].c)
+ ++here;
+ else
+ here = 0;
+ break;
+
+ case KEY_HOME:
+ here = 0;
+ break;
+
+ case KEY_END:
+ while (label_chunk_info[here + 1].c)
+ ++here;
+ break;
+
+ case KEY_F(1):
+ case '?':
+ systemDisplayFile("partition.hlp");
+ break;
+
+ case 'A':
+ if (label_chunk_info[here].type != PART_SLICE) {
+ msg = "You can only do this in a master partition (see top of screen)";
+ break;
+ }
+
+ cnt = i = 0;
+ while (label_chunk_info[i].c)
+ if (label_chunk_info[i++].type != PART_SLICE)
+ cnt++;
+ if (cnt == (CHUNK_COLUMN_MAX * 2) + 4) {
+ msgConfirm("Sorry, I can't fit any more partitions on the screen! You can get around\nthis limitation by partitioning your disks individually rather than all\nat once. This will be fixed just as soon as we get a scrolling partition\nbox written. Sorry for the inconvenience!");
+ break;
+ }
+
+ sz = space_free(label_chunk_info[here].c);
+ if (sz <= FS_MIN_SIZE) {
+ msg = "Not enough space to create additional FreeBSD partition";
+ break;
+ }
+ {
+ struct chunk *tmp;
+ int mib[2];
+ int physmem;
+ size_t size;
+
+ tmp = Create_Chunk_DWIM(label_chunk_info[here].c->disk,
+ label_chunk_info[here].c,
+ 32 * ONE_MEG, part, FS_BSDFFS,
+ CHUNK_IS_ROOT);
+
+ if (!tmp) {
+ msgConfirm("Unable to create the root partition. Too big?");
+ break;
+ }
+ tmp->private = new_part("/", TRUE, tmp->size);
+ tmp->private_free = safe_free;
+ record_label_chunks();
+
+ mib[0] = CTL_HW;
+ mib[1] = HW_PHYSMEM;
+ size = sizeof physmem;
+ sysctl(mib, 2, &physmem, &size, (void *)0, (size_t)0);
+
+ tmp = Create_Chunk_DWIM(label_chunk_info[here].c->disk,
+ label_chunk_info[here].c,
+ physmem * 2 / 512, part, FS_SWAP, 0);
+ if (!tmp) {
+ msgConfirm("Unable to create the swap partition. Too big?");
+ break;
+ }
+
+ tmp->private = 0;
+ tmp->private_free = safe_free;
+ record_label_chunks();
+
+ tmp = Create_Chunk_DWIM(label_chunk_info[here].c->disk,
+ label_chunk_info[here].c,
+ 16 * ONE_MEG, part, FS_BSDFFS, 0);
+ if (!tmp) {
+ msgConfirm("Unable to create the /var partition. Too big?");
+ break;
+ }
+ tmp->private = new_part("/var", TRUE, tmp->size);
+ tmp->private_free = safe_free;
+ record_label_chunks();
+
+ sz = space_free(label_chunk_info[here].c);
+ tmp = Create_Chunk_DWIM(label_chunk_info[here].c->disk,
+ label_chunk_info[here].c,
+ sz, part, FS_BSDFFS, 0);
+ if (!tmp) {
+ msgConfirm("Unable to create the /usr partition. Too big?");
+ break;
+ }
+ tmp->private = new_part("/usr", TRUE, tmp->size);
+ tmp->private_free = safe_free;
+ record_label_chunks();
+ }
+ break;
+
+ case 'C':
+ if (label_chunk_info[here].type != PART_SLICE) {
+ msg = "You can only do this in a master partition (see top of screen)";
+ break;
+ }
+ else {
+ int i, cnt;
+
+ cnt = i = 0;
+ while (label_chunk_info[i].c)
+ if (label_chunk_info[i++].type != PART_SLICE)
+ cnt++;
+ if (cnt == (CHUNK_COLUMN_MAX * 2)) {
+ msgConfirm("Sorry, I can't fit any more partitions on the screen! You can get around\nthis limitation by partitioning your disks individually rather than all\nat once. This will be fixed just as soon as we get a scrolling partition\nbox written. Sorry for the inconvenience!");
+ break;
+ }
+ }
+ sz = space_free(label_chunk_info[here].c);
+ if (sz <= FS_MIN_SIZE) {
+ msg = "Not enough space to create additional FreeBSD partition";
+ break;
+ }
+ {
+ char *val, *cp;
+ int size;
+ struct chunk *tmp;
+ char osize[80];
+ u_long flags = 0;
+
+ sprintf(osize, "%d", sz);
+ val = msgGetInput(osize, "Please specify the size for new FreeBSD partition in blocks, or\nappend a trailing `M' for megabytes (e.g. 20M) or `C' for cylinders.\n\nSpace free is %d blocks (%dMB)", sz, sz / ONE_MEG);
+ if (!val || (size = strtol(val, &cp, 0)) <= 0)
+ break;
+
+ if (*cp) {
+ if (toupper(*cp) == 'M')
+ size *= ONE_MEG;
+ else if (toupper(*cp) == 'C')
+ size *= (label_chunk_info[here].c->disk->bios_hd * label_chunk_info[here].c->disk->bios_sect);
+ }
+ if (size <= FS_MIN_SIZE) {
+ msgConfirm("The minimum filesystem size is %dMB", FS_MIN_SIZE / ONE_MEG);
+ break;
+ }
+ type = get_partition_type();
+ if (type == PART_NONE)
+ break;
+
+ if (type == PART_FILESYSTEM) {
+ if ((p = get_mountpoint(NULL)) == NULL)
+ break;
+ else if (!strcmp(p->mountpoint, "/"))
+ flags |= CHUNK_IS_ROOT;
+ else
+ flags &= ~CHUNK_IS_ROOT;
+ } else
+ p = NULL;
+
+ if ((flags & CHUNK_IS_ROOT)) {
+ if (!(label_chunk_info[here].c->flags & CHUNK_BSD_COMPAT)) {
+ msgConfirm("This region cannot be used for your root partition as\nthe FreeBSD boot code cannot deal with a root partition created in\nsuch a location. Please choose another location for your root\npartition and try again!");
+ break;
+ }
+ if (size < ROOT_MIN_SIZE)
+ msgConfirm("Warning: This is smaller than the recommended size for a\nroot partition. For a variety of reasons, root\npartitions should usually be at least %dMB in size", ROOT_MIN_SIZE / ONE_MEG);
+ }
+ tmp = Create_Chunk_DWIM(label_chunk_info[here].c->disk,
+ label_chunk_info[here].c,
+ size, part,
+ (type == PART_SWAP) ? FS_SWAP : FS_BSDFFS,
+ flags);
+ if (!tmp) {
+ msgConfirm("Unable to create the partition. Too big?");
+ break;
+ }
+ if ((flags & CHUNK_IS_ROOT) && (tmp->flags & CHUNK_PAST_1024)) {
+ msgConfirm("This region cannot be used for your root partition as it starts\nor extends past the 1024'th cylinder mark and is thus a\npoor location to boot from. Please choose another\nlocation for your root partition and try again!");
+ Delete_Chunk(label_chunk_info[here].c->disk, tmp);
+ break;
+ }
+ if (type != PART_SWAP) {
+ /* This is needed to tell the newfs -u about the size */
+ tmp->private = new_part(p->mountpoint, p->newfs, tmp->size);
+ tmp->private_free = safe_free;
+ safe_free(p);
+ } else {
+ tmp->private = p;
+ }
+ tmp->private_free = safe_free;
+ record_label_chunks();
+ }
+ break;
+
+ case 'D': /* delete */
+ if (label_chunk_info[here].type == PART_SLICE) {
+ msg = MSG_NOT_APPLICABLE;
+ break;
+ }
+ else if (label_chunk_info[here].type == PART_FAT) {
+ msg = "Use the Disk Partition Editor to delete DOS partitions";
+ break;
+ }
+ Delete_Chunk(label_chunk_info[here].c->disk, label_chunk_info[here].c);
+ record_label_chunks();
+ break;
+
+ case 'M': /* mount */
+ switch(label_chunk_info[here].type) {
+ case PART_SLICE:
+ msg = MSG_NOT_APPLICABLE;
+ break;
+
+ case PART_SWAP:
+ msg = "You don't need to specify a mountpoint for a swap partition.";
+ break;
+
+ case PART_FAT:
+ case PART_FILESYSTEM:
+ oldp = label_chunk_info[here].c->private;
+ p = get_mountpoint(label_chunk_info[here].c);
+ if (p) {
+ if (!oldp)
+ p->newfs = FALSE;
+ if (label_chunk_info[here].type == PART_FAT
+ && (!strcmp(p->mountpoint, "/") || !strcmp(p->mountpoint, "/usr")
+ || !strcmp(p->mountpoint, "/var"))) {
+ msgConfirm("%s is an invalid mount point for a DOS partition!", p->mountpoint);
+ strcpy(p->mountpoint, "/bogus");
+ }
+ }
+ record_label_chunks();
+ break;
+
+ default:
+ msgFatal("Bogus partition under cursor???");
+ break;
+ }
+ break;
+
+ case 'N': /* Set newfs options */
+ if (label_chunk_info[here].c->private &&
+ ((PartInfo *)label_chunk_info[here].c->private)->newfs)
+ getNewfsCmd(label_chunk_info[here].c->private);
+ else
+ msg = MSG_NOT_APPLICABLE;
+ break;
+
+ case 'T': /* Toggle newfs state */
+ if (label_chunk_info[here].type == PART_FILESYSTEM) {
+ PartInfo *pi = ((PartInfo *)label_chunk_info[here].c->private);
+ label_chunk_info[here].c->private = new_part(pi ? pi->mountpoint : NULL, pi ? !pi->newfs : TRUE, label_chunk_info[here].c->size);
+ safe_free(pi);
+ label_chunk_info[here].c->private_free = safe_free;
+ }
+ else
+ msg = MSG_NOT_APPLICABLE;
+ break;
+
+ case 'U':
+ devs = deviceFind(NULL, DEVICE_TYPE_DISK);
+ for (i = 0; devs[i]; i++) {
+ if (!devs[i]->enabled)
+ continue;
+ else {
+ char *cp = devs[i]->name;
+
+ Free_Disk(devs[i]->private);
+ devs[i]->private = Open_Disk(cp);
+ }
+ }
+ record_label_chunks();
+ break;
+
+ case 'W':
+ if (!msgYesNo("Are you sure that you wish to make and mount all filesystems\nat this time? You also have the option of doing it later in\none final 'commit' operation, and if you're at all unsure as\nto which option to chose, then chose No."))
+ diskLabelCommit(NULL);
+ break;
+
+ case '|':
+ if (!msgYesNo("Are you sure you want to go into Wizard mode?\n\nThis is an entirely undocumented feature which you are not\nexpected to understand!")) {
+ int i;
+ Device **devs;
+
+ dialog_clear();
+ end_dialog();
+ DialogActive = FALSE;
+ devs = deviceFind(NULL, DEVICE_TYPE_DISK);
+ if (!devs) {
+ msgConfirm("Can't find any disk devicse!");
+ break;
+ }
+ for (i = 0; devs[i] && ((Disk *)devs[i]->private); i++) {
+ if (devs[i]->enabled)
+ slice_wizard(((Disk *)devs[i]->private));
+ }
+ DialogActive = TRUE;
+ dialog_clear();
+ record_label_chunks();
+ }
+ else
+ msg = "A most prudent choice!";
+ break;
+
+ case 'Q':
+ labeling = FALSE;
+ break;
+
+ default:
+ beep();
+ msg = "Type F1 or ? for help";
+ break;
+ }
+ }
+ variable_set2(DISK_LABELLED, "yes");
+ dialog_clear();
+ return 0;
+}
+
+int
+diskLabelCommit(char *str)
+{
+ if (!getenv(DISK_LABELLED))
+ msgConfirm("You must assign disk labels before this option can be used.");
+ else if (!installFilesystems())
+ msgConfirm("Failed to make/mount all filesystems. Please correct\nwhatever went wrong and try again.");
+ return 0;
+}
diff --git a/release/sysinstall/lang.c b/release/sysinstall/lang.c
new file mode 100644
index 0000000..b5dcfdb
--- /dev/null
+++ b/release/sysinstall/lang.c
@@ -0,0 +1,147 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last program in the `sysinstall' line - the next
+ * generation being essentially a complete rewrite.
+ *
+ * $Id: lang.c,v 1.6.2.3 1995/06/05 04:39:59 jkh Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+
+u_char default_scrnmap[256];
+
+void
+lang_set_Danish(char *str)
+{
+ systemChangeScreenmap(default_scrnmap);
+ systemChangeLang("da_DK.ISO8859-1");
+ systemChangeFont(font_iso_8x16);
+ systemChangeTerminal("cons25l1", termcap_cons25l1,
+ "cons25l1-m", termcap_cons25l1_m);
+}
+
+void
+lang_set_Dutch(char *str)
+{
+ systemChangeScreenmap(default_scrnmap);
+ systemChangeLang("nl_NL.ISO8859-1");
+ systemChangeFont(font_iso_8x16);
+ systemChangeTerminal("cons25l1", termcap_cons25l1, "cons25l1-m", termcap_cons25l1_m);
+}
+
+void
+lang_set_English(char *str)
+{
+ systemChangeScreenmap(default_scrnmap);
+ systemChangeLang("en_US.ISO8859-1");
+ systemChangeFont(font_cp850_8x16);
+ systemChangeTerminal("cons25", termcap_cons25, "cons25-m", termcap_cons25_m);
+}
+
+void
+lang_set_French(char *str)
+{
+ systemChangeScreenmap(default_scrnmap);
+ systemChangeLang("fr_FR.ISO8859-1");
+ systemChangeFont(font_iso_8x16);
+ systemChangeTerminal("cons25l1", termcap_cons25l1, "cons25l1-m", termcap_cons25l1_m);
+}
+
+void
+lang_set_German(char *str)
+{
+ systemChangeScreenmap(default_scrnmap);
+ systemChangeLang("de_DE.ISO8859-1");
+ systemChangeFont(font_iso_8x16);
+ systemChangeTerminal("cons25l1", termcap_cons25l1, "cons25l1-m", termcap_cons25l1_m);
+}
+
+void
+lang_set_Italian(char *str)
+{
+ systemChangeScreenmap(default_scrnmap);
+ systemChangeLang("it_IT.ISO8859-1");
+ systemChangeFont(font_iso_8x16);
+ systemChangeTerminal("cons25l1", termcap_cons25l1, "cons25l1-m", termcap_cons25l1_m);
+}
+
+/* Someday we will have to do a lot better than this for Kanji text! */
+void
+lang_set_Japanese(char *str)
+{
+ systemChangeScreenmap(default_scrnmap);
+ systemChangeLang("ja_JP.ROMAJI");
+ systemChangeFont(font_cp850_8x16); /* must prepare JIS X0201 font? */
+ systemChangeTerminal("cons25", termcap_cons25, "cons25-m", termcap_cons25_m);
+}
+
+void
+lang_set_Norwegian(char *str)
+{
+ systemChangeScreenmap(default_scrnmap);
+ systemChangeLang("no_NO.ISO8859-1");
+ systemChangeFont(font_iso_8x16);
+ systemChangeTerminal("cons25l1", termcap_cons25l1, "cons25l1-m", termcap_cons25l1_m);
+}
+
+void
+lang_set_Russian(char *str)
+{
+ systemChangeScreenmap(koi8_r2cp866);
+ systemChangeLang("ru_SU.KOI8-R");
+ systemChangeFont(font_cp866_8x16);
+ systemChangeTerminal("cons25r", termcap_cons25r, "cons25r-m", termcap_cons25r_m);
+}
+
+void
+lang_set_Spanish(char *str)
+{
+ systemChangeScreenmap(default_scrnmap);
+ systemChangeLang("es_ES.ISO8859-1");
+ systemChangeFont(font_iso_8x16);
+ systemChangeTerminal("cons25l1", termcap_cons25l1, "cons25l1-m", termcap_cons25l1_m);
+}
+
+void
+lang_set_Swedish(char *str)
+{
+ systemChangeScreenmap(default_scrnmap);
+ systemChangeLang("sv_SE.ISO8859-1");
+ systemChangeFont(font_iso_8x16);
+ systemChangeTerminal("cons25l1", termcap_cons25l1, "cons25l1-m", termcap_cons25l1_m);
+}
diff --git a/release/sysinstall/main.c b/release/sysinstall/main.c
new file mode 100644
index 0000000..7d22216
--- /dev/null
+++ b/release/sysinstall/main.c
@@ -0,0 +1,87 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last attempt in the `sysinstall' line, the next
+ * generation being slated for what's essentially a complete rewrite.
+ *
+ * $Id: main.c,v 1.13 1995/06/11 19:30:02 rgrimes Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+#include <stdio.h>
+
+int
+main(int argc, char **argv)
+{
+ int choice, scroll, curr, max;
+
+ if (geteuid() != 0) {
+ fprintf(stderr, "Warning: This utility should be run as root.\n");
+ sleep(1);
+ }
+ /* Set up whatever things need setting up */
+ systemInitialize(argc, argv);
+
+ /* Try to preserve our scroll-back buffer */
+ if (OnVTY)
+ for (curr = 0; curr < 25; curr++)
+ putchar('\n');
+
+ /* Probe for all relevant devices on the system */
+ deviceGetAll();
+
+ /* Default to passive mode ftp since it's the only thing we currently support :-( */
+ OptFlags |= OPT_FTP_PASSIVE;
+
+ /* Begin user dialog at outer menu */
+ while (1) {
+ choice = scroll = curr = max = 0;
+ dmenuOpen(&MenuInitial, &choice, &scroll, &curr, &max);
+ if (getpid() != 1 || !msgYesNo("Are you sure you wish to exit? System will reboot."))
+ break;
+ }
+
+ /* Write out any changes to /etc/sysconfig */
+ if (SystemWasInstalled)
+ configSysconfig();
+
+ /* Say goodnight, Gracie */
+ systemShutdown();
+
+ /* If we're running as init, we should never get here */
+ return 0;
+}
diff --git a/release/sysinstall/media.c b/release/sysinstall/media.c
new file mode 100644
index 0000000..8f77630
--- /dev/null
+++ b/release/sysinstall/media.c
@@ -0,0 +1,486 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last attempt in the `sysinstall' line, the next
+ * generation being slated to essentially a complete rewrite.
+ *
+ * $Id: media.c,v 1.25.2.1 1995/07/21 10:53:58 rgrimes Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include <stdio.h>
+#include <sys/errno.h>
+#include <sys/fcntl.h>
+#include <sys/stat.h>
+#include <sys/mman.h>
+#include <sys/wait.h>
+#include <unistd.h>
+#include "sysinstall.h"
+
+static int
+genericHook(char *str, DeviceType type)
+{
+ Device **devs;
+
+ /* Clip garbage off the ends */
+ string_prune(str);
+ str = string_skipwhite(str);
+ if (!*str)
+ return 0;
+ devs = deviceFind(str, type);
+ if (devs)
+ mediaDevice = devs[0];
+ return devs ? 1 : 0;
+}
+
+static int
+cdromHook(char *str)
+{
+ return genericHook(str, DEVICE_TYPE_CDROM);
+}
+
+/*
+ * Return 1 if we successfully found and set the installation type to
+ * be a CD.
+ */
+int
+mediaSetCDROM(char *str)
+{
+ Device **devs;
+ int cnt;
+
+ devs = deviceFind(NULL, DEVICE_TYPE_CDROM);
+ cnt = deviceCount(devs);
+ if (!cnt) {
+ msgConfirm("No CDROM devices found! Please check that your system's\nconfiguration is correct and that the CDROM drive is of a supported\ntype. For more information, consult the hardware guide\nin the Doc menu.");
+ return 0;
+ }
+ else if (cnt > 1) {
+ DMenu *menu;
+ int status;
+
+ menu = deviceCreateMenu(&MenuMediaCDROM, DEVICE_TYPE_CDROM, cdromHook);
+ if (!menu)
+ msgFatal("Unable to create CDROM menu! Something is seriously wrong.");
+ status = dmenuOpenSimple(menu);
+ free(menu);
+ if (!status)
+ return 0;
+ }
+ else
+ mediaDevice = devs[0];
+ return mediaDevice ? 1 : 0;
+}
+
+static int
+floppyHook(char *str)
+{
+ return genericHook(str, DEVICE_TYPE_FLOPPY);
+}
+
+/*
+ * Return 1 if we successfully found and set the installation type to
+ * be a floppy
+ */
+int
+mediaSetFloppy(char *str)
+{
+ Device **devs;
+ int cnt;
+
+ devs = deviceFind(NULL, DEVICE_TYPE_FLOPPY);
+ cnt = deviceCount(devs);
+ if (!cnt) {
+ msgConfirm("No floppy devices found! Please check that your system's\nconfiguration is correct. For more information, consult the hardware guide\nin the Doc menu.");
+ return 0;
+ }
+ else if (cnt > 1) {
+ DMenu *menu;
+ int status;
+
+ menu = deviceCreateMenu(&MenuMediaFloppy, DEVICE_TYPE_FLOPPY, floppyHook);
+ if (!menu)
+ msgFatal("Unable to create Floppy menu! Something is seriously wrong.");
+ status = dmenuOpenSimple(menu);
+ free(menu);
+ if (!status)
+ return 0;
+ }
+ else
+ mediaDevice = devs[0];
+ return mediaDevice ? 1 : 0;
+}
+
+static int
+DOSHook(char *str)
+{
+ return genericHook(str, DEVICE_TYPE_DOS);
+}
+
+/*
+ * Return 1 if we successfully found and set the installation type to
+ * be a DOS partition.
+ */
+int
+mediaSetDOS(char *str)
+{
+ Device **devs;
+ int cnt;
+
+ devs = deviceFind(NULL, DEVICE_TYPE_DOS);
+ cnt = deviceCount(devs);
+ if (!cnt) {
+ msgConfirm("No DOS primary partitions found! This installation method is unavailable");
+ return 0;
+ }
+ else if (cnt > 1) {
+ DMenu *menu;
+ int status;
+
+ menu = deviceCreateMenu(&MenuMediaDOS, DEVICE_TYPE_DOS, DOSHook);
+ if (!menu)
+ msgFatal("Unable to create DOS menu! Something is seriously wrong.");
+ status = dmenuOpenSimple(menu);
+ free(menu);
+ if (!status)
+ return 0;
+ }
+ else
+ mediaDevice = devs[0];
+ return mediaDevice ? 1 : 0;
+}
+
+static int
+tapeHook(char *str)
+{
+ return genericHook(str, DEVICE_TYPE_TAPE);
+}
+
+/*
+ * Return 1 if we successfully found and set the installation type to
+ * be a tape drive.
+ */
+int
+mediaSetTape(char *str)
+{
+ Device **devs;
+ int cnt;
+
+ devs = deviceFind(NULL, DEVICE_TYPE_TAPE);
+ cnt = deviceCount(devs);
+ if (!cnt) {
+ msgConfirm("No tape drive devices found! Please check that your system's\nconfiguration is correct. For more information, consult the hardware guide\nin the Doc menu.");
+ return 0;
+ }
+ else if (cnt > 1) {
+ DMenu *menu;
+ int status;
+
+ menu = deviceCreateMenu(&MenuMediaTape, DEVICE_TYPE_TAPE, tapeHook);
+ if (!menu)
+ msgFatal("Unable to create tape drive menu! Something is seriously wrong.");
+ status = dmenuOpenSimple(menu);
+ free(menu);
+ if (!status)
+ return 0;
+ }
+ else
+ mediaDevice = devs[0];
+ if (mediaDevice) {
+ char *val;
+
+ val = msgGetInput("/usr/tmp", "Please enter the name of a temporary directory containing\nsufficient space for holding the contents of this tape (or\ntapes). The contents of this directory will be removed\nafter installation, so be sure to specify a directory that\ncan be erased afterward!");
+ if (!val)
+ mediaDevice = NULL;
+ else
+ mediaDevice->private = strdup(val);
+ }
+ return mediaDevice ? 1 : 0;
+}
+
+/*
+ * Return 0 if we successfully found and set the installation type to
+ * be an ftp server
+ */
+int
+mediaSetFTP(char *str)
+{
+ static Device ftpDevice;
+ char *cp;
+
+ if (!dmenuOpenSimple(&MenuMediaFTP))
+ return 0;
+ cp = getenv("ftp");
+ if (!cp)
+ return 0;
+ if (!strcmp(cp, "other")) {
+ cp = msgGetInput("ftp://", "Please specify the URL of a FreeBSD distribution on a\nremote ftp site. This site must accept either anonymous\nftp or you should have set an ftp username and password\nin the Options Menu.\nA URL looks like this: ftp://<hostname>/<path>\nWhere <path> is relative to the anonymous ftp directory or the\nhome directory of the user being logged in as.");
+ if (!cp || strncmp("ftp://", cp, 6))
+ return 0;
+ else
+ variable_set2("ftp", cp);
+ }
+ strcpy(ftpDevice.name, cp);
+ /* XXX hack: if str == NULL, we were called by an ftp strategy routine and don't need to reinit all */
+ if (!str)
+ return 1;
+ if (!tcpDeviceSelect())
+ return 0;
+ ftpDevice.type = DEVICE_TYPE_FTP;
+ ftpDevice.init = mediaInitFTP;
+ ftpDevice.get = mediaGetFTP;
+ ftpDevice.close = mediaCloseFTP;
+ ftpDevice.shutdown = mediaShutdownFTP;
+ ftpDevice.private = mediaDevice; /* Set to network device by tcpDeviceSelect() */
+ mediaDevice = &ftpDevice;
+ return 1;
+}
+
+int
+mediaSetFTPActive(char *str)
+{
+ OptFlags &= OPT_FTP_ACTIVE;
+ return mediaSetFTP(str);
+}
+
+int
+mediaSetFTPPassive(char *str)
+{
+ OptFlags &= OPT_FTP_PASSIVE;
+ return mediaSetFTP(str);
+}
+
+int
+mediaSetUFS(char *str)
+{
+ static Device ufsDevice;
+ char *val;
+
+ val = msgGetInput(NULL, "Enter a fully qualified pathname for the directory\ncontaining the FreeBSD distribution files:");
+ if (!val)
+ return 0;
+ strcpy(ufsDevice.name, "ufs");
+ ufsDevice.type = DEVICE_TYPE_UFS;
+ ufsDevice.init = dummyInit;
+ ufsDevice.get = mediaGetUFS;
+ ufsDevice.close = dummyClose;
+ ufsDevice.shutdown = dummyShutdown;
+ ufsDevice.private = strdup(val);
+ mediaDevice = &ufsDevice;
+ return 1;
+}
+
+int
+mediaSetNFS(char *str)
+{
+ static Device nfsDevice;
+ char *val;
+
+ val = msgGetInput(NULL, "Please enter the full NFS file specification for the remote\nhost and directory containing the FreeBSD distribution files.\nThis should be in the format: hostname:/some/freebsd/dir");
+ if (!val)
+ return 0;
+ strncpy(nfsDevice.name, val, DEV_NAME_MAX);
+ if (!tcpDeviceSelect())
+ return 0;
+ nfsDevice.type = DEVICE_TYPE_NFS;
+ nfsDevice.init = mediaInitNFS;
+ nfsDevice.get = mediaGetNFS;
+ nfsDevice.close = dummyClose;
+ nfsDevice.shutdown = mediaShutdownNFS;
+ nfsDevice.private = mediaDevice;
+ mediaDevice = &nfsDevice;
+ return 1;
+}
+
+Boolean
+mediaExtractDistBegin(char *dir, int *fd, int *zpid, int *cpid)
+{
+ int i, pfd[2],qfd[2];
+
+ if (!dir)
+ dir = "/";
+ Mkdir(dir, NULL);
+ chdir(dir);
+ pipe(pfd);
+ pipe(qfd);
+ *zpid = fork();
+ if (!*zpid) {
+ dup2(qfd[0], 0); close(qfd[0]);
+ dup2(pfd[1], 1); close(pfd[1]);
+ if (DebugFD != -1)
+ dup2(DebugFD, 2);
+ else {
+ close(2);
+ open("/dev/null", O_WRONLY);
+ }
+ close(qfd[1]);
+ close(pfd[0]);
+ i = execl("/stand/gunzip", "/stand/gunzip", 0);
+ if (isDebug())
+ msgDebug("/stand/gunzip command returns %d status\n", i);
+ exit(i);
+ }
+ *fd = qfd[1];
+ close(qfd[0]);
+ *cpid = fork();
+ if (!*cpid) {
+ dup2(pfd[0], 0); close(pfd[0]);
+ close(pfd[1]);
+ close(qfd[1]);
+ if (DebugFD != -1) {
+ dup2(DebugFD, 1);
+ dup2(DebugFD, 2);
+ }
+ else {
+ close(1); open("/dev/null", O_WRONLY);
+ dup2(1, 2);
+ }
+ i = execl("/stand/cpio", "/stand/cpio", "-iduVm", "-H", "tar", 0);
+ if (isDebug())
+ msgDebug("/stand/cpio command returns %d status\n", i);
+ exit(i);
+ }
+ close(pfd[0]);
+ close(pfd[1]);
+ return TRUE;
+}
+
+Boolean
+mediaExtractDistEnd(int zpid, int cpid)
+{
+ int i,j;
+
+ i = waitpid(zpid, &j, 0);
+ if (i < 0) { /* Don't check status - gunzip seems to return a bogus one! */
+ dialog_clear();
+ if (isDebug())
+ msgDebug("wait for gunzip returned status of %d!\n", i);
+ return FALSE;
+ }
+ i = waitpid(cpid, &j, 0);
+ if (i < 0 || WEXITSTATUS(j)) {
+ dialog_clear();
+ if (isDebug())
+ msgDebug("cpio returned error status of %d!\n", WEXITSTATUS(j));
+ return FALSE;
+ }
+ return TRUE;
+}
+
+
+Boolean
+mediaExtractDist(char *dir, int fd)
+{
+ int i, j, zpid, cpid, pfd[2];
+
+ if (!dir)
+ dir = "/";
+
+ Mkdir(dir, NULL);
+ chdir(dir);
+ pipe(pfd);
+ zpid = fork();
+ if (!zpid) {
+ dup2(fd, 0); close(fd);
+ dup2(pfd[1], 1); close(pfd[1]);
+ if (DebugFD != -1)
+ dup2(DebugFD, 2);
+ else {
+ close(2);
+ open("/dev/null", O_WRONLY);
+ }
+ close(pfd[0]);
+ i = execl("/stand/gunzip", "/stand/gunzip", 0);
+ if (isDebug())
+ msgDebug("/stand/gunzip command returns %d status\n", i);
+ exit(i);
+ }
+ cpid = fork();
+ if (!cpid) {
+ dup2(pfd[0], 0); close(pfd[0]);
+ close(fd);
+ close(pfd[1]);
+ if (DebugFD != -1) {
+ dup2(DebugFD, 1);
+ dup2(DebugFD, 2);
+ }
+ else {
+ close(1); open("/dev/null", O_WRONLY);
+ dup2(1, 2);
+ }
+ i = execl("/stand/cpio", "/stand/cpio", "-iduVm", "-H", "tar", 0);
+ if (isDebug())
+ msgDebug("/stand/cpio command returns %d status\n", i);
+ exit(i);
+ }
+ close(pfd[0]);
+ close(pfd[1]);
+
+ i = waitpid(zpid, &j, 0);
+ if (i < 0) { /* Don't check status - gunzip seems to return a bogus one! */
+ dialog_clear();
+ if (isDebug())
+ msgDebug("wait for gunzip returned status of %d!\n", i);
+ return FALSE;
+ }
+ i = waitpid(cpid, &j, 0);
+ if (i < 0 || WEXITSTATUS(j)) {
+ dialog_clear();
+ if (isDebug())
+ msgDebug("cpio returned error status of %d!\n", WEXITSTATUS(j));
+ return FALSE;
+ }
+ return TRUE;
+}
+
+Boolean
+mediaGetType(void)
+{
+ if (!dmenuOpenSimple(&MenuMedia))
+ return FALSE;
+ return TRUE;
+}
+
+/* Return TRUE if all the media variables are set up correctly */
+Boolean
+mediaVerify(void)
+{
+ if (!mediaDevice) {
+ msgConfirm("Media type not set! Please select a media type\nfrom the Installation menu before proceeding.");
+ return FALSE;
+ }
+ return TRUE;
+}
diff --git a/release/sysinstall/media_strategy.c b/release/sysinstall/media_strategy.c
new file mode 100644
index 0000000..d25a7a9
--- /dev/null
+++ b/release/sysinstall/media_strategy.c
@@ -0,0 +1,838 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last attempt in the `sysinstall' line, the next
+ * generation being slated to essentially a complete rewrite.
+ *
+ * $Id: media_strategy.c,v 1.27 1995/05/26 19:28:02 jkh Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ * Copyright (c) 1995
+ * Gary J Palmer. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include <stdio.h>
+#include "sysinstall.h"
+#include <ctype.h>
+#include <sys/stat.h>
+#include <sys/errno.h>
+#include <sys/file.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <sys/param.h>
+#include <sys/dkbad.h>
+#include <sys/mman.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <netdb.h>
+#include "ftp.h"
+
+#define MSDOSFS
+#define CD9660
+#define NFS
+#include <sys/mount.h>
+#undef MSDOSFS
+#undef CD9660
+#undef NFS
+
+#define MAX_ATTRIBS 200
+#define MAX_NAME 511
+#define MAX_VALUE 4095
+
+struct attribs {
+ char *name;
+ char *value;
+};
+
+static int lno;
+static int num_attribs;
+
+static int
+attr_parse(struct attribs **attr, char *file)
+{
+ char hold_n[MAX_NAME+1];
+ char hold_v[MAX_VALUE+1];
+ int n, v, ch = 0;
+ enum { LOOK, COMMENT, NAME, VALUE, COMMIT } state;
+ FILE *fp;
+
+ num_attribs = n = v = lno = 0;
+ state = LOOK;
+
+ if ((fp=fopen(file, "r")) == NULL)
+ {
+ msgConfirm("Cannot open the information file `%s': %s (%d)", file, strerror(errno), errno);
+ return 0;
+ }
+
+ while (state == COMMIT || (ch = fgetc(fp)) != EOF) {
+ /* Count lines */
+ if (ch == '\n')
+ ++lno;
+ switch(state) {
+ case LOOK:
+ if (isspace(ch))
+ continue;
+ /* Allow shell or lisp style comments */
+ else if (ch == '#' || ch == ';') {
+ state = COMMENT;
+ continue;
+ }
+ else if (isalpha(ch)) {
+ hold_n[n++] = ch;
+ state = NAME;
+ }
+ else
+ msgFatal("Invalid character '%c' at line %d\n", ch, lno);
+ break;
+
+ case COMMENT:
+ if (ch == '\n')
+ state = LOOK;
+ break;
+
+ case NAME:
+ if (ch == '\n') {
+ hold_n[n] = '\0';
+ hold_v[v = 0] = '\0';
+ state = COMMIT;
+ }
+ else if (isspace(ch))
+ continue;
+ else if (ch == '=') {
+ hold_n[n] = '\0';
+ state = VALUE;
+ }
+ else
+ hold_n[n++] = ch;
+ break;
+
+ case VALUE:
+ if (v == 0 && isspace(ch))
+ continue;
+ else if (ch == '{') {
+ /* multiline value */
+ while ((ch = fgetc(fp)) != '}') {
+ if (ch == EOF)
+ msgFatal("Unexpected EOF on line %d", lno);
+ else {
+ if (v == MAX_VALUE)
+ msgFatal("Value length overflow at line %d", lno);
+ hold_v[v++] = ch;
+ }
+ }
+ hold_v[v] = '\0';
+ state = COMMIT;
+ }
+ else if (ch == '\n') {
+ hold_v[v] = '\0';
+ state = COMMIT;
+ }
+ else {
+ if (v == MAX_VALUE)
+ msgFatal("Value length overflow at line %d", lno);
+ else
+ hold_v[v++] = ch;
+ }
+ break;
+
+ case COMMIT:
+ (*attr)[num_attribs].name = strdup(hold_n);
+ (*attr)[num_attribs++].value = strdup(hold_v);
+ state = LOOK;
+ v = n = 0;
+ break;
+
+ default:
+ msgFatal("Unknown state at line %d??\n", lno);
+ }
+ }
+ fclose(fp);
+ return 1;
+}
+
+static const char *
+attr_match(struct attribs *attr, char *name)
+{
+ int n = 0;
+
+ while((strcasecmp(attr[n].name, name)!=0) && (n < num_attribs) && (n < 20))
+ n++;
+
+ if (strcasecmp(attr[n].name, name)==0)
+ return((const char *) attr[n].value);
+
+ return NULL;
+}
+
+static pid_t getDistpid = 0;
+static Device *floppyDev;
+
+static int
+floppyChoiceHook(char *str)
+{
+ Device **devs;
+
+ /* Clip garbage off the ends */
+ string_prune(str);
+ str = string_skipwhite(str);
+ if (!*str)
+ return 0;
+ devs = deviceFind(str, DEVICE_TYPE_FLOPPY);
+ if (devs)
+ floppyDev = devs[0];
+ return devs ? 1 : 0;
+}
+
+int
+genericGetDist(char *path, void *attrs, Boolean prompt)
+{
+ int fd;
+ char buf[512];
+ struct stat sb;
+ int pfd[2], numchunks;
+ const char *tmp;
+ Device *devp;
+ struct attribs *dist_attrib = (struct attribs *)attrs;
+
+ top:
+ fd = -1;
+ /* Floppy is always last-ditch device */
+ while (!mediaDevice && (prompt && floppyDev == NULL)) {
+ Device **devs;
+ int cnt;
+
+ devs = deviceFind(NULL, DEVICE_TYPE_FLOPPY);
+ cnt = deviceCount(devs);
+ if (cnt == 1)
+ devp = devs[0];
+ else if (cnt > 1) {
+ DMenu *menu;
+
+ menu = deviceCreateMenu(&MenuMediaFloppy, DEVICE_TYPE_FLOPPY, floppyChoiceHook);
+ menu->title = "Please insert the ROOT floppy";
+ dmenuOpenSimple(menu);
+ }
+ else {
+ msgConfirm("No floppy devices found! Something is seriously wrong!");
+ return -1;
+ }
+ if (!floppyDev)
+ continue;
+ fd = open(floppyDev->devname, O_RDONLY);
+ if (fd != -1)
+ return fd;
+ else
+ floppyDev = NULL;
+ }
+ if (stat(path, &sb) == 0)
+ {
+ fd = open(path, O_RDONLY, 0);
+ return(fd);
+ }
+
+ snprintf(buf, 512, "%s.tgz", path);
+ if (stat(buf, &sb) == 0)
+ {
+ fd = open(buf, O_RDONLY, 0);
+ return(fd);
+ }
+
+ snprintf(buf, 512, "%s.aa", path);
+ if (stat(buf, &sb) != 0 && !prompt)
+ {
+ msgConfirm("Cannot find file(s) for distribution in ``%s''!\n", path);
+ return -1;
+ }
+
+ if (fd == -1 && prompt) {
+ if (mediaDevice->shutdown)
+ (*mediaDevice->shutdown)(mediaDevice);
+
+ if (mediaDevice->init)
+ if (!(*mediaDevice->init)(mediaDevice))
+ return -1;
+ msgConfirm("Please put distribution files for %s\nin %s and press return", path, mediaDevice->description);
+ goto top;
+ }
+
+ if (dist_attrib) {
+ tmp = attr_match(dist_attrib, "pieces");
+ numchunks = atoi(tmp);
+ }
+ else
+ numchunks = 1;
+
+ /* reap the previous child corpse - yuck! */
+ if (getDistpid) {
+ int i, j;
+
+ i = waitpid(getDistpid, &j, 0);
+ if (i < 0 || WEXITSTATUS(j)) {
+ msgNotify("Warning: Previous extraction returned status code %d.", WEXITSTATUS(j));
+ getDistpid = 0;
+ return -1;
+ }
+ getDistpid = 0;
+ }
+
+ msgDebug("Attempting to concatenate %u chunks\n", numchunks);
+ pipe(pfd);
+ getDistpid = fork();
+ if (!getDistpid) {
+ caddr_t memory;
+ int chunk;
+ int retval;
+
+ dup2(pfd[1], 1); close(pfd[1]);
+ close(pfd[0]);
+
+ for (chunk = 0; chunk < numchunks; chunk++) {
+ int fd;
+ unsigned long len, val;
+
+ retval = stat(buf, &sb);
+ if ((retval != 0) && (prompt != TRUE))
+ {
+ msgConfirm("Cannot find file(s) for distribution in ``%s''!\n", path);
+ return -1;
+ } else {
+ char *tmp = index(buf, '/');
+ tmp++;
+
+ while (retval != 0)
+ {
+ msgConfirm("Please insert the disk with the `%s' file on it\n", tmp);
+ retval = stat(buf, &sb);
+ }
+ }
+
+ snprintf(buf, 512, "%s.%c%c", path, (chunk / 26) + 'a', (chunk % 26) + 'a');
+ if ((fd = open(buf, O_RDONLY)) == -1)
+ msgFatal("Cannot find file `%s'!", buf);
+
+ if (prompt == TRUE)
+ {
+ extern int crc(int, unsigned long *, unsigned long *);
+
+ crc(fd, &val, &len);
+ msgDebug("crc for %s is %lu %lu\n", buf, val, len);
+ }
+
+ fstat(fd, &sb);
+ msgDebug("mmap()ing %s (%d)\n", buf, fd);
+ memory = mmap(0, sb.st_size, PROT_READ, MAP_SHARED, fd, (off_t) 0);
+ if (memory == (caddr_t) -1)
+ msgFatal("mmap error: %s\n", strerror(errno));
+
+ retval = write(1, memory, sb.st_size);
+ if (retval != sb.st_size)
+ {
+ msgConfirm("write didn't write out the complete file!\n(wrote %d bytes of %d bytes)", retval,
+ sb.st_size);
+ exit(1);
+ }
+
+ retval = munmap(memory, sb.st_size);
+ if (retval != 0)
+ {
+ msgConfirm("munmap() returned %d", retval);
+ exit(1);
+ }
+ close(fd);
+ }
+ close(1);
+ msgDebug("Extract of %s finished!!!\n", path);
+ exit(0);
+ }
+ close(pfd[1]);
+ return(pfd[0]);
+}
+
+/* Various media "strategy" routines */
+
+static Boolean cdromMounted;
+
+Boolean
+mediaInitCDROM(Device *dev)
+{
+ struct iso_args args;
+ struct stat sb;
+
+ if (cdromMounted)
+ return TRUE;
+
+ if (Mkdir("/cdrom", NULL))
+ return FALSE;
+
+ args.fspec = dev->devname;
+ args.flags = 0;
+
+ if (mount(MOUNT_CD9660, "/cdrom", MNT_RDONLY, (caddr_t) &args) == -1)
+ {
+ msgConfirm("Error mounting %s on /cdrom: %s (%u)\n", dev, strerror(errno), errno);
+ return FALSE;
+ }
+
+ /* Do a very simple check to see if this looks roughly like a 2.0.5 CDROM
+ Unfortunately FreeBSD won't let us read the ``label'' AFAIK, which is one
+ sure way of telling the disc version :-( */
+ if (stat("/cdrom/dists", &sb))
+ {
+ if (errno == ENOENT)
+ {
+ msgConfirm("Couldn't locate the directory `dists' on the CD.\nIs this a 2.0.5 CDROM?\n");
+ return FALSE;
+ } else {
+ msgConfirm("Couldn't stat directory %s: %s", "/cdrom/dists", strerror(errno));
+ return FALSE;
+ }
+ }
+ cdromMounted = TRUE;
+ return TRUE;
+}
+
+int
+mediaGetCDROM(char *dist, char *path)
+{
+ char buf[PATH_MAX];
+ struct attribs *dist_attr;
+ int retval;
+
+ dist_attr = safe_malloc(sizeof(struct attribs) * MAX_ATTRIBS);
+
+ snprintf(buf, PATH_MAX, "/stand/info/%s.inf", dist);
+
+ if (!access(buf, R_OK) && attr_parse(&dist_attr, buf) == 0)
+ {
+ msgConfirm("Cannot load information file for %s distribution!\nPlease verify that your media is valid and try again.", dist);
+ free(dist_attr);
+ return FALSE;
+ }
+
+ snprintf(buf, PATH_MAX, "/cdrom/%s%s", path ? path : "", dist);
+
+ retval = genericGetDist(buf, dist_attr, FALSE);
+ free(dist_attr);
+ return retval;
+}
+
+void
+mediaShutdownCDROM(Device *dev)
+{
+
+ msgDebug("In mediaShutdownCDROM\n");
+ if (getDistpid) {
+ int i, j;
+
+ i = waitpid(getDistpid, &j, 0);
+ if (i < 0 || WEXITSTATUS(j)) {
+ msgConfirm("Warning: Last extraction returned status code %d.", WEXITSTATUS(j));
+ getDistpid = 0;
+ }
+ getDistpid = 0;
+ }
+ if (unmount("/cdrom", 0) != 0)
+ msgConfirm("Could not unmount the CDROM: %s\n", strerror(errno));
+ msgDebug("Unmount returned\n");
+ cdromMounted = FALSE;
+ return;
+}
+
+static Boolean floppyMounted;
+
+Boolean
+mediaInitFloppy(Device *dev)
+{
+ struct ufs_args ufsargs;
+ char mountpoint[FILENAME_MAX];
+
+ if (floppyMounted)
+ return TRUE;
+ memset(&ufsargs,0,sizeof ufsargs);
+
+ if (Mkdir("/mnt", NULL)) {
+ msgConfirm("Unable to make directory mountpoint for %s!", mountpoint);
+ return FALSE;
+ }
+ msgDebug("initFloppy: mount floppy %s on /mnt\n", dev->devname);
+ ufsargs.fspec = dev->devname;
+ if (mount(MOUNT_MSDOS, "/mnt", 0, (caddr_t)&ufsargs) == -1) {
+ msgConfirm("Error mounting floppy %s (%s) on /mnt : %s\n", dev->name,
+ dev->devname, mountpoint, strerror(errno));
+ return FALSE;
+ }
+ floppyMounted = TRUE;
+ return TRUE;
+}
+
+int
+mediaGetFloppy(char *dist, char *path)
+{
+ char buf[PATH_MAX];
+ char *fname;
+ struct attribs *dist_attr;
+ int retval;
+
+ dist_attr = safe_malloc(sizeof(struct attribs) * MAX_ATTRIBS);
+
+ snprintf(buf, PATH_MAX, "/stand/info/%s.inf", dist);
+ if (!access(buf, R_OK) && attr_parse(&dist_attr, buf) == 0)
+ {
+ msgConfirm("Cannot load information file for %s distribution!\nPlease verify that your media is valid and try again.", dist);
+ free(dist_attr);
+ return FALSE;
+ }
+ fname = index(dist, '/') + 1;
+ snprintf(buf, PATH_MAX, "/mnt/%s", fname);
+
+ retval = genericGetDist(buf, dist_attr, TRUE);
+ free(dist_attr);
+ return retval;
+}
+
+void
+mediaShutdownFloppy(Device *dev)
+{
+ if (floppyMounted) {
+ if (vsystem("umount /mnt") != 0)
+ msgDebug("Umount of floppy on /mnt failed: %s (%d)\n", strerror(errno), errno);
+ else
+ floppyMounted = FALSE;
+ }
+}
+
+Boolean
+mediaInitTape(Device *dev)
+{
+ return TRUE;
+}
+
+static Boolean networkInitialized;
+
+Boolean
+mediaInitNetwork(Device *dev)
+{
+ int i;
+ char *rp;
+
+ if (networkInitialized)
+ return TRUE;
+
+ configResolv();
+ if (!strncmp("cuaa", dev->name, 4)) {
+ if (!tcpStartPPP(dev)) {
+ msgConfirm("Unable to start PPP! This installation method\ncannot be used.");
+ return FALSE;
+ }
+ }
+ else {
+ char *cp, ifconfig[64];
+
+ snprintf(ifconfig, 64, "%s%s", VAR_IFCONFIG, dev->name);
+ cp = getenv(ifconfig);
+ if (!cp) {
+ msgConfirm("The %s device is not configured. You will need to do so\nin the Networking configuration menu before proceeding.");
+ return FALSE;
+ }
+ i = vsystem("ifconfig %s %s", dev->name, cp);
+ if (i) {
+ msgConfirm("Unable to configure the %s interface!\nThis installation method cannot be used.", dev->name);
+ return FALSE;
+ }
+ }
+
+ rp = getenv(VAR_GATEWAY);
+ if (!rp)
+ msgConfirm("No gateway has been set. You will not be able to access hosts\n
+not on the local network\n");
+ else
+ vsystem("route add default %s", rp);
+ networkInitialized = TRUE;
+ return TRUE;
+}
+
+int
+mediaGetTape(char *dist, char *path)
+{
+ return -1;
+}
+
+void
+mediaShutdownTape(Device *dev)
+{
+ return;
+}
+
+void
+mediaShutdownNetwork(Device *dev)
+{
+ char *cp;
+
+ if (!networkInitialized)
+ return;
+
+ if (!strncmp("cuaa", dev->name, 4)) {
+ msgConfirm("You may now go to the 3rd screen (ALT-F3) and shut down\nyour PPP connection. It shouldn't be needed any longer\n(unless you wish to create a shell by typing ESC and\nexperiment with it further, in which case go right ahead!)");
+ return;
+ }
+ else {
+ int i;
+ char ifconfig[64];
+
+ snprintf(ifconfig, 64, "%s%s", VAR_IFCONFIG, dev->name);
+ cp = getenv(ifconfig);
+ if (!cp)
+ return;
+ i = vsystem("ifconfig %s down", dev->name);
+ if (i)
+ msgConfirm("Warning: Unable to down the %s interface properly", dev->name);
+ }
+
+ cp = getenv(VAR_GATEWAY);
+ if (cp)
+ vsystem("route delete default");
+ networkInitialized = FALSE;
+}
+
+static FTP_t ftp;
+
+Boolean
+mediaInitFTP(Device *dev)
+{
+ int i;
+ char *url, *hostname, *dir;
+ char *my_name, email[BUFSIZ];
+ Device *netDevice = (Device *)dev->private;
+
+ if (netDevice->init)
+ if (!(*netDevice->init)(netDevice))
+ return FALSE;
+
+ if ((ftp = FtpInit()) == NULL) {
+ msgConfirm("FTP initialisation failed!");
+ return FALSE;
+ }
+
+ url = getenv("ftp");
+ if (!url)
+ return FALSE;
+ my_name = getenv(VAR_HOSTNAME);
+ if (strncmp("ftp://", url, 6) != NULL) {
+ msgConfirm("Invalid URL (`%s') passed to FTP routines!\n(must start with `ftp://')", url);
+ return FALSE;
+ }
+
+ msgDebug("Using URL `%s'\n", url);
+ hostname = url + 6;
+ if ((dir = index(hostname, '/')) != NULL)
+ *(dir++) = '\0';
+ strcpy(dev->name, hostname);
+ msgDebug("hostname = `%s'\n", hostname);
+ msgDebug("dir = `%s'\n", dir ? dir : "/");
+ msgNotify("Looking up host %s..", hostname);
+ if ((gethostbyname(hostname) == NULL) && (inet_addr(hostname) == INADDR_NONE)) {
+ msgConfirm("Cannot resolve hostname `%s'! Are you sure your name server\nand/or gateway values are set properly?", hostname);
+ return FALSE;
+ }
+
+ snprintf(email, BUFSIZ, "installer@%s", my_name);
+ msgDebug("Using fake e-mail `%s'\n", email);
+
+ msgNotify("Logging in as anonymous.");
+ if ((i = FtpOpen(ftp, hostname, "anonymous", email)) != 0) {
+ msgConfirm("Couldn't open FTP connection to %s: %s (%u)\n", hostname, strerror(i), i);
+ return FALSE;
+ }
+
+ if (getenv("ftpPassive"))
+ FtpPassive(ftp, 1);
+ FtpBinary(ftp, 1);
+ if (dir && *dir != '\0') {
+ msgNotify("CD to distribution in ~ftp/%s", dir);
+ FtpChdir(ftp, dir);
+ }
+ msgDebug("leaving mediaInitFTP!\n");
+ return TRUE;
+}
+
+static pid_t ftppid = 0;
+
+int
+mediaGetFTP(char *dist, char *path)
+{
+ int fd;
+ char buf[512];
+ int pfd[2], numchunks;
+ const char *tmp;
+ struct attribs *dist_attr;
+
+ if (!path)
+ path = "";
+ msgNotify("Attempting to retreive `%s' over FTP", dist);
+ snprintf(buf, PATH_MAX, "/stand/info/%s%s.inf", path, dist);
+ if (!access(buf, R_OK)) {
+ msgDebug("Parsing attributes file for %s\n", dist);
+ dist_attr = safe_malloc(sizeof(struct attribs) * MAX_ATTRIBS);
+ if (attr_parse(&dist_attr, buf) == 0) {
+ msgConfirm("Cannot load information file for %s distribution!\nPlease verify that your media is valid and try again.", dist);
+ return -1;
+ }
+
+ msgDebug("Looking for attribute `pieces'\n");
+ tmp = attr_match(dist_attr, "pieces");
+ numchunks = atoi(tmp);
+ }
+ else
+ numchunks = 0;
+ msgDebug("Attempting to extract distribution from %u files\n", numchunks ? numchunks : 1);
+
+ /* Take the lack of an info file to mean we're a fully qualified name */
+ if (!numchunks) {
+ sprintf(buf, "%s%s", path, dist);
+ return(FtpGet(ftp, buf));
+ }
+ else if (numchunks == 1) {
+ snprintf(buf, 512, "%s%s.aa", path, dist);
+ return(FtpGet(ftp, buf));
+ }
+
+ /* reap the previous child corpse - yuck! */
+ if (ftppid) {
+ int i, j;
+
+ i = waitpid(ftppid, &j, 0);
+ if (i < 0 || WEXITSTATUS(j)) {
+ msgConfirm("Previous FTP transaction returned status code %d - aborting\ntransfer.", WEXITSTATUS(j));
+ ftppid = 0;
+ return -1;
+ }
+ ftppid = 0;
+ }
+ pipe(pfd);
+ ftppid = fork();
+ if (!ftppid) {
+ int chunk;
+ int retval;
+
+ dup2(pfd[1], 1); close(pfd[1]);
+ close(pfd[0]);
+
+ for (chunk = 0; chunk < numchunks; chunk++) {
+ char buffer[10240];
+ int n;
+
+ snprintf(buf, 512, "%s%s.%c%c", path, dist, (chunk / 26) + 'a', (chunk % 26) + 'a');
+ fd = FtpGet(ftp, buf);
+
+ if (fd < 0)
+ {
+ msgConfirm("FtpGet failed to retreive piece `%s' in the %s distribution!\nAborting the transfer", chunk, dist);
+ exit(1);
+ }
+
+ while ((n = read(fd, buffer, 10240))>0)
+ {
+ retval = write(1, buffer, n);
+ if (retval != n)
+ {
+ msgConfirm("Write failure on transfer! (wrote %d bytes of %d bytes)", retval, n);
+ exit(1);
+ }
+
+ }
+ FtpEOF(ftp);
+ }
+ close(1);
+ msgDebug("Extract of %s finished with success!!!\n", dist);
+ exit(0);
+ }
+ close(pfd[1]);
+ return(pfd[0]);
+}
+
+void
+mediaShutdownFTP(Device *dev)
+{
+ Device *netdev = (Device *)dev->private;
+
+ if (ftp != NULL) {
+ FtpClose(ftp);
+ ftp = NULL;
+ }
+ if (ftppid) {
+ int i, j;
+
+ i = waitpid(ftppid, &j, 0);
+ if (i < 0 || WEXITSTATUS(j))
+ msgConfirm("Warning: Last FTP transaction returned status code %d.", WEXITSTATUS(j));
+ ftppid = 0;
+ }
+ if (netdev->shutdown)
+ (*netdev->shutdown)(netdev);
+}
+
+Boolean
+mediaInitUFS(Device *dev)
+{
+ return TRUE;
+}
+
+int
+mediaGetUFS(char *dist, char *path)
+{
+ return -1;
+}
+
+/* UFS has no Shutdown routine since this is handled at the device level */
+
+
+Boolean
+mediaInitDOS(Device *dev)
+{
+ return TRUE;
+}
+
+int
+mediaGetDOS(char *dist, char *path)
+{
+ return -1;
+}
+
+void
+mediaShutdownDOS(Device *dev)
+{
+}
diff --git a/release/sysinstall/menus.c b/release/sysinstall/menus.c
new file mode 100644
index 0000000..87213fd
--- /dev/null
+++ b/release/sysinstall/menus.c
@@ -0,0 +1,916 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last program in the `sysinstall' line - the next
+ * generation being essentially a complete rewrite.
+ *
+ * $Id: menus.c,v 1.42.2.3 1995/07/27 01:37:18 jkh Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+
+/* All the system menus go here.
+ *
+ * Hardcoded things like version number strings will disappear from
+ * these menus just as soon as I add the code for doing inline variable
+ * expansion.
+ */
+
+/* The initial installation menu */
+DMenu MenuInitial = {
+ DMENU_NORMAL_TYPE,
+ "Welcome to FreeBSD RELEASE_NAME!", /* title */
+ "This is the main menu of the FreeBSD installation system. Please\n\
+select one of the options below by using the arrow keys or typing the\n\
+first character of the option name you're interested in. Invoke an\n\
+option by pressing [ENTER].", /* prompt */
+ "Press F1 for usage instructions", /* help line */
+ "usage.hlp", /* help file */
+ { { "Usage", "Quick start - How to use this menu system.", /* U */
+ DMENU_DISPLAY_FILE, "usage.hlp", 0, 0 },
+ { "Doc", "More detailed documentation on FreeBSD.", /* D */
+ DMENU_SUBMENU, &MenuDocumentation, 0, 0 },
+ { "Options", "Select various options for this utility.", /* O */
+ DMENU_SUBMENU, &MenuOptions, 0, 0 },
+ { "Custom", "Begin a custom installation", /* C */
+ DMENU_SUBMENU, &MenuInstallCustom, 0, 0 },
+ { "Express", "Begin a quick installation", /* E */
+ DMENU_CALL, &installExpress, 0, 0 },
+ { "Shell", "Go to a shell for debugging or repair",
+ DMENU_SYSTEM_COMMAND, "sh", 0, 0 },
+ { "Quit", "Exit this menu (and the installation)", /* Q */
+ DMENU_CANCEL, NULL, 0, 0 },
+ { NULL } },
+};
+
+/* The main documentation menu */
+DMenu MenuDocumentation = {
+ DMENU_NORMAL_TYPE,
+ "Documentation for FreeBSD RELEASE_NAME", /* Title */
+ "If you are at all unsure about the configuration of your hardware\n\
+or are looking to build a system specifically for FreeBSD, read the\n\
+Hardware guide! New users should also read the Install document for\n\
+a step-by-step tutorial on installing FreeBSD. For general information,\n\
+consult the README file.",
+ "Confused? Press F1 for help.",
+ "usage.hlp",
+ { { "README", "Read this for a general description of FreeBSD",
+ DMENU_DISPLAY_FILE, "README", 0, 0 },
+ { "Hardware", "The FreeBSD survival guide for PC hardware.",
+ DMENU_DISPLAY_FILE, "hardware.hlp", 0, 0 },
+ { "Install", "A step-by-step guide to installing FreeBSD.",
+ DMENU_DISPLAY_FILE, "install.hlp", 0, 0 },
+ { "Copyright", "The FreeBSD Copyright notices.",
+ DMENU_DISPLAY_FILE, "COPYRIGHT", 0, 0 },
+ { "Release", "The release notes for this version of FreeBSD.",
+ DMENU_DISPLAY_FILE, "RELNOTES", 0, 0 },
+ { "Exit", "Exit this menu (returning to previous)",
+ DMENU_CANCEL, NULL, 0, 0 },
+ { NULL } },
+};
+
+DMenu MenuMediaCDROM = {
+ DMENU_NORMAL_TYPE | DMENU_SELECTION_RETURNS,
+ "Choose a CDROM type",
+ "FreeBSD can be installed directly from a CDROM containing a valid\n\
+FreeBSD RELEASE_NAME distribution. If you are seeing this menu it is because\n\
+more than one CDROM drive was found on your system. Please select one\n\
+of the following CDROM drives as your installation drive.",
+ "Press F1 to read the installation guide",
+ "install.hlp",
+ { { NULL } },
+};
+
+DMenu MenuMediaFloppy = {
+ DMENU_NORMAL_TYPE | DMENU_SELECTION_RETURNS,
+ "Choose a Floppy drive",
+"You have more than one floppy drive. Please chose the drive\n\
+you would like to use for this operation",
+ NULL,
+ NULL,
+ { { NULL } },
+};
+
+DMenu MenuMediaDOS = {
+ DMENU_NORMAL_TYPE | DMENU_SELECTION_RETURNS,
+ "Choose a DOS partition",
+"FreeBSD can be installed directly from a DOS partition\n\
+assuming, of course, that you have copied the relevant\n\
+distributions into your DOS partition before starting this\n\
+installation. If this is not the case then you should reboot\n\
+DOS at this time and copy the distributions you wish to install\n\
+into a \"FREEBSD\" subdirectory on one of your DOS partitions.\n\
+Otherwise, please select the DOS partition containing the FreeBSD\n\
+distribution files.",
+ "Press F1 to read the installation guide",
+ "install.hlp",
+ { { NULL } },
+};
+
+DMenu MenuMediaFTP = {
+ DMENU_NORMAL_TYPE | DMENU_SELECTION_RETURNS,
+ "Please specify an FTP site",
+ "FreeBSD is distributed from a number of sites on the Internet. Please\n\
+select the site closest to you or \"other\" if you'd like to specify another\n\
+choice. Also note that not all sites carry every possible distribution!\n\
+Distributions other than the basic user set are only guaranteed to be\n\
+available from the Primary site.\n\n\
+If the first site selected doesn't respond, try one of the alternates.\n\
+You may also wish to investigate the options menu in case of trouble.\n\
+To specify a URL not in this list, chose \"other\".",
+ "Select a site that's close!",
+ "install.hlp",
+ { { "Primary Site", "ftp.freebsd.org",
+ DMENU_SET_VARIABLE, "ftp=ftp://ftp.freebsd.org/pub/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "Secondary Site", "freefall.cdrom.com",
+ DMENU_SET_VARIABLE, "ftp=ftp://freefall.cdrom.com/pub/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "Other", "Specify some other ftp site by URL",
+ DMENU_SET_VARIABLE, "ftp=other", 0, 0 },
+ { "Australia", "ftp.physics.usyd.edu.au",
+ DMENU_SET_VARIABLE, "ftp=ftp://ftp.physics.usyd.edu.au/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "Finland", "nic.funet.fi",
+ DMENU_SET_VARIABLE, "ftp=ftp://nic.funet.fi/pub/unix/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "France", "ftp.ibp.fr",
+ DMENU_SET_VARIABLE, "ftp=ftp://ftp.ibp.fr/pub/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "Germany", "ftp.fb9dv.uni-duisburg.de",
+ DMENU_SET_VARIABLE, "ftp=ftp://ftp.fb9dv.uni-duisburg.de/pub/unix/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "Germany #2", "gil.physik.rwth-aachen.de",
+ DMENU_SET_VARIABLE, "ftp=ftp://gil.physik.rwth-aachen.de/pub/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "Germany #3", "ftp.uni-paderborn.de",
+ DMENU_SET_VARIABLE, "ftp=ftp://ftp.uni-paderborn.de/freebsd/RELEASE_NAME", 0, 0 },
+ { "Hong Kong", "ftp.hk.super.net",
+ DMENU_SET_VARIABLE, "ftp=ftp://ftp.hk.super.net/pub/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "Israel", "orgchem.weizmann.ac.il",
+ DMENU_SET_VARIABLE, "ftp=ftp://orgchem.weizmann.ac.il/pub/FreeBSD-RELEASE_NAME", 0, 0 },
+ { "Japan", "ftp.sra.co.jp",
+ DMENU_SET_VARIABLE, "ftp=ftp://ftp.sra.co.jp/pub/os/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "Japan #2", "ftp.mei.co.jp",
+ DMENU_SET_VARIABLE, "ftp=ftp://ftp.mei.co.jp/free/PC-UNIX/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "Japan #3", "ftp.waseda.ac.jp",
+ DMENU_SET_VARIABLE, "ftp=ftp://ftp.waseda.ac.jp/pub/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "Japan #4", "ftp.pu-toyama.ac.jp",
+ DMENU_SET_VARIABLE, "ftp=ftp://ftp.pu-toyama.ac.jp/pub/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "Japan #5", "ftpsv1.u-aizu.ac.jp",
+ DMENU_SET_VARIABLE, "ftp=ftp://ftpsv1.u-aizu.ac.jp/pub/os/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "Japan #6", "ftp.tut.ac.jp",
+ DMENU_SET_VARIABLE, "ftp://ftp.tut.ac.jp/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "Japan #7", "ftp.ee.uec.ac.jp",
+ DMENU_SET_VARIABLE, "ftp=ftp://ftp.ee.uec.ac.jp/pub/os/mirror/ftp.freebsd.org/RELEASE_NAME", 0, 0 },
+ { "Japan #8", "ftp.tokyonet.ad.jp",
+ DMENU_SET_VARIABLE, "ftp://ftp.tokyonet.ad.jp/pub/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "Korea", "ftp.cau.ac.kr",
+ DMENU_SET_VARIABLE, "ftp=ftp://ftp.cau.ac.kr/pub/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "Netherlands", "ftp.nl.net",
+ DMENU_SET_VARIABLE, "ftp=ftp://ftp.nl.net/pub/os/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "Russia", "ftp.kiae.su",
+ DMENU_SET_VARIABLE, "ftp=ftp://ftp.kiae.su/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "Sweden", "ftp.luth.se",
+ DMENU_SET_VARIABLE, "ftp=ftp://ftp.luth.se/pub/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "Taiwan", "netbsd.csie.nctu.edu.tw",
+ DMENU_SET_VARIABLE, "ftp=ftp://netbsd.csie.nctu.edu.tw/pub/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "Thailand", "ftp.nectec.or.th",
+ DMENU_SET_VARIABLE, "ftp=ftp://ftp.nectec.or.th/pub/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "UK", "ftp.demon.co.uk",
+ DMENU_SET_VARIABLE, "ftp=ftp://ftp.demon.co.uk/pub/BSD/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "UK #2", "src.doc.ic.ac.uk",
+ DMENU_SET_VARIABLE, "ftp=ftp://src.doc.ic.ac.uk/packages/unix/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "UK #3", "unix.hensa.ac.uk",
+ DMENU_SET_VARIABLE, "ftp=ftp://unix.hensa.ac.uk/mirrors/walnut.creek/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "USA", "ref.tfs.com",
+ DMENU_SET_VARIABLE, "ftp=ftp://ref.tfs.com/pub/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "USA #2", "ftp.dataplex.net",
+ DMENU_SET_VARIABLE, "ftp=ftp://ftp.dataplex.net/pub/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "USA #3", "kryten.atinc.com",
+ DMENU_SET_VARIABLE, "ftp=ftp://kryten.atinc.com/pub/FreeBSD/RELEASE_NAME", 0, 0 },
+ { "USA #4", "ftp.neosoft.com",
+ DMENU_SET_VARIABLE, "ftp=ftp://ftp.neosoft.com/systems/FreeBSD/RELEASE_NAME", 0, 0 },
+ { NULL } }
+};
+
+DMenu MenuMediaTape = {
+ DMENU_NORMAL_TYPE | DMENU_SELECTION_RETURNS,
+ "Choose a tape drive type",
+ "FreeBSD can be installed from tape drive, though this installation\n\
+method requires a certain amount of temporary storage in addition\n\
+to the space required by the distribution itself (tape drives make\n\
+poor random-access devices, so we extract _everything_ on the tape\n\
+in one pass). If you have sufficient space for this, then you should\n\
+select one of the following tape devices detected on your system.",
+ "Press F1 to read the installation guide",
+ "install.hlp",
+ { { NULL } },
+};
+
+DMenu MenuNetworkDevice = {
+ DMENU_NORMAL_TYPE | DMENU_SELECTION_RETURNS,
+ "Choose a network interface type",
+"FreeBSD can be installed directly over a network, using NFS or FTP.\n
+If you are using PPP over a serial device (cuaa0 or cuaa1) as opposed\n\
+to a direct ethernet connection, then you may first need to dial your\n\
+service provider using the ppp utility we provide for that purpose.\n\
+You can also install over a parallel port using a special \"laplink\"\n\
+cable, though this only works if you have another FreeBSD machine running\n\
+a fairly recent (2.0R or later) release to talk to.\n\n\
+To use PPP select one of the serial devices, otherwise select lp0 for\n\
+the parallel port or one of the ethernet controllers (if you have one)\n\
+for an ethernet installation.",
+ "Press F1 to read network configuration manual",
+ "network_device.hlp",
+ { { NULL } },
+};
+
+/* The media selection menu */
+DMenu MenuMedia = {
+ DMENU_NORMAL_TYPE | DMENU_SELECTION_RETURNS,
+ "Choose Installation Media",
+ "FreeBSD can be installed from a variety of different installation\n\
+media, ranging from floppies to the Internet. If you're installing\n\
+FreeBSD from a supported CDROM drive then this is generally the best\n\
+media to use, unless you have some overriding reason for using another\n\
+media.",
+ "Press F1 for more information on the various media types",
+ "media.hlp",
+ { { "CDROM", "Install from a FreeBSD CDROM",
+ DMENU_CALL, mediaSetCDROM, 0, 0 },
+ { "DOS", "Install from a DOS partition",
+ DMENU_CALL, mediaSetDOS, 0, 0 },
+ { "File System", "Install from a mounted filesystem",
+ DMENU_CALL, mediaSetUFS, 0, 0 },
+ { "Floppy", "Install from a floppy disk set",
+ DMENU_CALL, mediaSetFloppy, 0, 0 },
+ { "FTP Active", "Install from an FTP server in active mode",
+ DMENU_CALL, mediaSetFTPActive, 0, 0 },
+ { "FTP Passive", "Install from an FTP server in passive mode",
+ DMENU_CALL, mediaSetFTPPassive, 0, 0 },
+ { "NFS", "Install over NFS",
+ DMENU_CALL, mediaSetNFS, 0, 0 },
+ { "Tape", "Install from SCSI or QIC tape",
+ DMENU_CALL, mediaSetTape, 0, 0 },
+ { NULL } },
+};
+
+/* The installation type menu */
+DMenu MenuInstallType = {
+ DMENU_NORMAL_TYPE | DMENU_SELECTION_RETURNS,
+ "Choose Installation Type",
+ "As a convenience, we provide several \"canned\" installation types.\n\
+These select what we consider to be the most reasonable defaults for the\n\
+type of system in question. If you would prefer to pick and choose\n\
+the list of distributions yourself, simply select \"custom\".",
+ "Press F1 for more information on these options.",
+ "distributions.hlp",
+ { { "Developer", "Full sources, binaries and doc but no games [171MB]",
+ DMENU_CALL, distSetDeveloper, 0, 0 },
+ { "X-Developer", "Same as above, but includes XFree86 [196MB]",
+ DMENU_CALL, distSetXDeveloper, 0, 0 },
+ { "Kern-Developer", "Full binaries and doc, kernel sources only [35MB]",
+ DMENU_CALL, distSetKernDeveloper, 0, 0 },
+ { "User", "Average user - binaries and doc but no sources [19MB]",
+ DMENU_CALL, distSetUser, 0, 0 },
+ { "X-User", "Same as above, but includes XFree86 [45MB]",
+ DMENU_CALL, distSetXUser, 0, 0 },
+ { "Minimal", "The smallest configuration possible [15MB]",
+ DMENU_CALL, distSetMinimum, 0, 0 },
+ { "Everything", "All sources, binaries and XFree86 binaries [203MB]",
+ DMENU_CALL, distSetEverything, 0, 0 },
+ { "Custom", "Specify your own distribution set [?]",
+ DMENU_SUBMENU, &MenuDistributions, 0, 0 },
+ { "Clear", "Reset selected distribution list to None",
+ DMENU_CALL, distReset, 0, 0 },
+ { NULL } },
+};
+
+static char *
+DESFlagCheck(DMenuItem *item)
+{
+ return (Dists & DIST_DES) ? "ON" : "OFF";
+}
+
+static char *
+srcFlagCheck(DMenuItem *item)
+{
+ return (Dists & DIST_SRC) ? "ON" : "OFF";
+}
+
+static char *
+x11FlagCheck(DMenuItem *item)
+{
+ return (Dists & DIST_XF86) ? "ON" : "OFF";
+}
+
+DMenu MenuDistributions = {
+ DMENU_MULTIPLE_TYPE | DMENU_SELECTION_RETURNS,
+ "Select the distributions you wish to install.",
+ "Please check off the distributions you wish to install. At the\n\
+very minimum, this should be \"bin\". WARNING: Do not export the\n\
+DES distribution out of the U.S.! It is for U.S. customers only.",
+ NULL,
+ NULL,
+ { { "bin", "Binary base distribution (required) [36MB]",
+ DMENU_SET_FLAG, &Dists, DIST_BIN, 0, dmenuFlagCheck },
+ { "commercial", "Commercial demos and shareware [10MB]",
+ DMENU_SET_FLAG, &Dists, DIST_COMMERCIAL, 0, dmenuFlagCheck },
+ { "compat1x", "FreeBSD 1.x binary compatibility package [2MB]",
+ DMENU_SET_FLAG, &Dists, DIST_COMPAT1X, 0, dmenuFlagCheck },
+ { "compat20", "FreeBSD 2.0 binary compatibility package [2MB]",
+ DMENU_SET_FLAG, &Dists, DIST_COMPAT20, 0, dmenuFlagCheck },
+ { "DES", "DES encryption code - NOT FOR EXPORT! [.3MB]",
+ DMENU_CALL, distSetDES, 0, 0, DESFlagCheck },
+ { "dict", "Spelling checker dictionary files [4.2MB]",
+ DMENU_SET_FLAG, &Dists, DIST_DICT, 0, dmenuFlagCheck },
+ { "games", "Games (non-commercial) [6.4MB]",
+ DMENU_SET_FLAG, &Dists, DIST_GAMES, 0, dmenuFlagCheck },
+ { "info", "GNU info files [4.1MB]",
+ DMENU_SET_FLAG, &Dists, DIST_INFO, 0, dmenuFlagCheck },
+ { "man", "System manual pages - recommended [3.3MB]",
+ DMENU_SET_FLAG, &Dists, DIST_MANPAGES, 0, dmenuFlagCheck },
+ { "proflibs", "Profiled versions of the libraries [3.3MB]",
+ DMENU_SET_FLAG, &Dists, DIST_PROFLIBS, 0, dmenuFlagCheck },
+ { "src", "Sources for everything but DES [120MB]",
+ DMENU_CALL, distSetSrc, 0, 0, srcFlagCheck },
+ { "XFree86", "The XFree86 3.1.1u1 distribution [?]",
+ DMENU_CALL, distSetXF86, 0, 0, x11FlagCheck },
+ { "Experimental", "Work in progress!",
+ DMENU_SET_FLAG, &Dists, DIST_EXPERIMENTAL, 0, dmenuFlagCheck },
+ { NULL } },
+};
+
+DMenu MenuDESDistributions = {
+ DMENU_MULTIPLE_TYPE | DMENU_SELECTION_RETURNS,
+ "Select the encryption facilities you wish to install.",
+ "Please check off any special DES-based encryption distributions\n\
+you would like to install. Please note that these services are NOT FOR\n\
+EXPORT from the United States, nor are they available on CDROM (for the\n\
+same reason). For information on non-U.S. FTP distributions of this\n\
+software, please consult the release notes.",
+ NULL,
+ NULL,
+ { { "des", "Basic DES services (rlogin, init, etc) [1MB]",
+ DMENU_SET_FLAG, &DESDists, DIST_DES_DES, 0, dmenuFlagCheck },
+ { "krb", "Kerberos encryption services [2MB]",
+ DMENU_SET_FLAG, &DESDists, DIST_DES_KERBEROS, 0, dmenuFlagCheck },
+ { "sebones", "Sources for eBones (Kerberos) [1MB]",
+ DMENU_SET_FLAG, &DESDists, DIST_DES_SEBONES, 0, dmenuFlagCheck },
+ { "ssecure", "Sources for DES libs and utilities [1MB]",
+ DMENU_SET_FLAG, &DESDists, DIST_DES_SSECURE, 0, dmenuFlagCheck },
+ { NULL } },
+};
+
+DMenu MenuSrcDistributions = {
+ DMENU_MULTIPLE_TYPE | DMENU_SELECTION_RETURNS,
+ "Select the sub-components of src you wish to install.",
+ "Please check off those portions of the FreeBSD source tree\n\
+you wish to install.",
+ NULL,
+ NULL,
+ { { "base", "top-level files in /usr/src [300K]",
+ DMENU_SET_FLAG, &SrcDists, DIST_SRC_BASE, 0, dmenuFlagCheck },
+ { "gnu", "/usr/src/gnu (software from the GNU Project) [42MB]",
+ DMENU_SET_FLAG, &SrcDists, DIST_SRC_GNU, 0, dmenuFlagCheck },
+ { "etc", "/usr/src/etc (miscellaneous system files) [460K]",
+ DMENU_SET_FLAG, &SrcDists, DIST_SRC_ETC, 0, dmenuFlagCheck },
+ { "games", "/usr/src/games (diversions) [7.8MB]",
+ DMENU_SET_FLAG, &SrcDists, DIST_SRC_GAMES, 0, dmenuFlagCheck },
+ { "include", "/usr/src/include (header files) [467K]",
+ DMENU_SET_FLAG, &SrcDists, DIST_SRC_INCLUDE, 0, dmenuFlagCheck },
+ { "lib", "/usr/src/lib (system libraries) [9.2MB]",
+ DMENU_SET_FLAG, &SrcDists, DIST_SRC_LIB, 0, dmenuFlagCheck },
+ { "libexec", "/usr/src/libexec (system programs) [1.2MB]",
+ DMENU_SET_FLAG, &SrcDists, DIST_SRC_LIBEXEC, 0, dmenuFlagCheck },
+ { "lkm", "/usr/src/lkm (Loadable Kernel Modules) [193K]",
+ DMENU_SET_FLAG, &SrcDists, DIST_SRC_LKM, 0, dmenuFlagCheck },
+ { "release", "/usr/src/release (release-generation tools) [533K]",
+ DMENU_SET_FLAG, &SrcDists, DIST_SRC_RELEASE, 0, dmenuFlagCheck },
+ { "bin", "/usr/src/bin (system binaries) [2.5MB]",
+ DMENU_SET_FLAG, &SrcDists, DIST_SRC_BIN, 0, dmenuFlagCheck },
+ { "sbin", "/usr/src/sbin (system binaries) [1.3MB]",
+ DMENU_SET_FLAG, &SrcDists, DIST_SRC_SBIN, 0, dmenuFlagCheck },
+ { "share", "/usr/src/share (documents and shared files) [10MB]",
+ DMENU_SET_FLAG, &SrcDists, DIST_SRC_SHARE, 0, dmenuFlagCheck },
+ { "sys", "/usr/src/sys (FreeBSD kernel) [13MB]",
+ DMENU_SET_FLAG, &SrcDists, DIST_SRC_SYS, 0, dmenuFlagCheck },
+ { "ubin", "/usr/src/usr.bin (user binaries) [13MB]",
+ DMENU_SET_FLAG, &SrcDists, DIST_SRC_UBIN, 0, dmenuFlagCheck },
+ { "usbin", "/usr/src/usr.sbin (aux system binaries) [14MB]",
+ DMENU_SET_FLAG, &SrcDists, DIST_SRC_USBIN, 0, dmenuFlagCheck },
+ { NULL } },
+};
+
+static int
+clearx11(char *str)
+{
+ XF86Dists = 0;
+ XF86ServerDists = 0;
+ XF86FontDists = 0;
+ Dists &= ~DIST_XF86;
+ return 0;
+}
+
+DMenu MenuXF86Select = {
+ DMENU_NORMAL_TYPE,
+ "XFree86 3.1.1u1 Distribution",
+ "Please select the components you need from the XFree86 3.1.1u1\n\
+distribution. We recommend that you select what you need from the basic\n\
+components set and at least one entry from the Server and Font set menus.",
+ "Press F1 to read the XFree86 release notes for FreeBSD",
+ "XF86.hlp",
+ { { "Basic", "Basic component menu (required)",
+ DMENU_SUBMENU, &MenuXF86SelectCore, 0, 0 },
+ { "Server", "X server menu",
+ DMENU_SUBMENU, &MenuXF86SelectServer, 0, 0 },
+ { "Fonts", "Font set menu",
+ DMENU_SUBMENU, &MenuXF86SelectFonts, 0, 0 },
+ { "Clear", "Reset XFree86 distribution list",
+ DMENU_CALL, clearx11, 0, 0, 0 },
+ { "Exit", "Exit this menu (returning to previous)",
+ DMENU_CANCEL, NULL, 0, 0 },
+ { NULL } },
+};
+
+DMenu MenuXF86SelectCore = {
+ DMENU_MULTIPLE_TYPE | DMENU_SELECTION_RETURNS,
+ "XFree86 3.1.1 base distribution types",
+ "Please check off the basic XFree86 components you wish to install.",
+ "Press F1 to read the XFree86 release notes for FreeBSD",
+ "XF86.hlp",
+ { { "bin", "X client applications and shared libs [4MB].",
+ DMENU_SET_FLAG, &XF86Dists, DIST_XF86_BIN, 0, dmenuFlagCheck },
+ { "lib", "Data files needed at runtime [600K]",
+ DMENU_SET_FLAG, &XF86Dists, DIST_XF86_LIB, 0, dmenuFlagCheck },
+ { "xicf", "Customizable xinit runtime configuration file [100K]",
+ DMENU_SET_FLAG, &XF86Dists, DIST_XF86_XINIT, 0, dmenuFlagCheck },
+ { "xdcf", "Customizable xdm runtime configuration file [100K]",
+ DMENU_SET_FLAG, &XF86Dists, DIST_XF86_XDMCF, 0, dmenuFlagCheck },
+ { "doc", "READMEs and XFree86 specific man pages [500K]",
+ DMENU_SET_FLAG, &XF86Dists, DIST_XF86_DOC, 0, dmenuFlagCheck },
+ { "man", "Man pages (except XFree86 specific ones) [1.2MB]",
+ DMENU_SET_FLAG, &XF86Dists, DIST_XF86_MAN, 0, dmenuFlagCheck },
+ { "prog", "Programmer's header and library files [4MB]",
+ DMENU_SET_FLAG, &XF86Dists, DIST_XF86_PROG, 0, dmenuFlagCheck },
+ { "link", "X Server reconfiguration kit [7.8MB]",
+ DMENU_SET_FLAG, &XF86Dists, DIST_XF86_LINK, 0, dmenuFlagCheck },
+ { "pex", "PEX fonts and libs needed by PEX apps [500K]",
+ DMENU_SET_FLAG, &XF86Dists, DIST_XF86_PEX, 0, dmenuFlagCheck },
+ { "sources", "XFree86 3.1.1u1 standard + contrib sources [200MB]",
+ DMENU_SET_FLAG, &XF86Dists, DIST_XF86_SRC, 0, dmenuFlagCheck },
+ { NULL } },
+};
+
+DMenu MenuXF86SelectFonts = {
+ DMENU_MULTIPLE_TYPE | DMENU_SELECTION_RETURNS,
+ "Font distribution selection.",
+ "Please check off the individual font distributions you wish to\n\
+install. At the minimum, you should install the standard\n\
+75 DPI and misc fonts if you're also installing a server\n\
+(these are selected by default).",
+ "Press F1 to read the XFree86 release notes for FreeBSD",
+ "XF86.hlp",
+ { { "fnts", "Standard 75 DPI and miscellaneous fonts [3.6MB]",
+ DMENU_SET_FLAG, &XF86FontDists, DIST_XF86_FONTS_MISC, 0, dmenuFlagCheck },
+ { "f100", "100 DPI fonts [1.8MB]",
+ DMENU_SET_FLAG, &XF86FontDists, DIST_XF86_FONTS_100, 0, dmenuFlagCheck },
+ { "fscl", "Speedo and Type scalable fonts [1.6MB]",
+ DMENU_SET_FLAG, &XF86FontDists, DIST_XF86_FONTS_SCALE, 0, dmenuFlagCheck },
+ { "non", "Japanese, Chinese and other non-english fonts [3.3MB]",
+ DMENU_SET_FLAG, &XF86FontDists, DIST_XF86_FONTS_NON, 0, dmenuFlagCheck },
+ { "server", "Font server [0.3MB]",
+ DMENU_SET_FLAG, &XF86FontDists, DIST_XF86_FONTS_SERVER, 0, dmenuFlagCheck },
+ { NULL } },
+};
+
+DMenu MenuXF86SelectServer = {
+ DMENU_MULTIPLE_TYPE | DMENU_SELECTION_RETURNS,
+ "X Server selection.",
+ "Please check off the types of X servers you wish to install.\n\
+If you are unsure as to which server will work for your graphics card,\n\
+it is recommended that try the SVGA or VGA16 servers (the VGA16 and\n\
+Mono servers are particularly well-suited to most LCD displays).",
+ "Press F1 to read the XFree86 release notes for FreeBSD",
+ "XF86.hlp",
+ { { "SVGA", "Standard VGA or Super VGA display [1MB]",
+ DMENU_SET_FLAG, &XF86ServerDists, DIST_XF86_SERVER_SVGA, 0, dmenuFlagCheck },
+ { "VGA16", "Standard 16 color VGA display [1MB]",
+ DMENU_SET_FLAG, &XF86ServerDists, DIST_XF86_SERVER_VGA16, 0, dmenuFlagCheck },
+ { "Mono", "Standard Monochrome display [1MB]",
+ DMENU_SET_FLAG, &XF86ServerDists, DIST_XF86_SERVER_MONO, 0, dmenuFlagCheck },
+ { "8514", "8-bit (256 color) IBM 8514 or compatible card [1MB]",
+ DMENU_SET_FLAG, &XF86ServerDists, DIST_XF86_SERVER_8514, 0, dmenuFlagCheck },
+ { "AGX", "8-bit AGX card [1MB]",
+ DMENU_SET_FLAG, &XF86ServerDists, DIST_XF86_SERVER_AGX, 0, dmenuFlagCheck },
+ { "Ma8", "8-bit ATI Mach8 card [1MB]",
+ DMENU_SET_FLAG, &XF86ServerDists, DIST_XF86_SERVER_MACH8, 0, dmenuFlagCheck },
+ { "Ma32", "8 and 16-bit (65K color) for ATI Mach32 card [1MB]",
+ DMENU_SET_FLAG, &XF86ServerDists, DIST_XF86_SERVER_MACH32, 0, dmenuFlagCheck },
+ { "Ma64", "8 and 16-bit (65K color) for ATI Mach64 card [1MB]",
+ DMENU_SET_FLAG, &XF86ServerDists, DIST_XF86_SERVER_MACH64, 0, dmenuFlagCheck },
+ { "P9K", "8, 16, and 24-bit color for Weitek P9000 based boards [1MB]",
+ DMENU_SET_FLAG, &XF86ServerDists, DIST_XF86_SERVER_P9000, 0, dmenuFlagCheck },
+ { "S3", "8, 16 and 24-bit color for S3 based boards [1MB]",
+ DMENU_SET_FLAG, &XF86ServerDists, DIST_XF86_SERVER_S3, 0, dmenuFlagCheck },
+ { "W32", "8-bit Color for ET4000/W32, /W32i and /W32p cards [1MB]",
+ DMENU_SET_FLAG, &XF86ServerDists, DIST_XF86_SERVER_W32, 0, dmenuFlagCheck },
+ { "nest", "A nested server for testing purposes [1MB]",
+ DMENU_SET_FLAG, &XF86ServerDists, DIST_XF86_SERVER_NEST, 0, dmenuFlagCheck },
+ { NULL } },
+};
+
+DMenu MenuDiskDevices = {
+ DMENU_MULTIPLE_TYPE | DMENU_SELECTION_RETURNS,
+ "Select Drive(s)",
+ "Please select the drive, or drives, on which you wish to install\n\
+FreeBSD. You need to select at least one drive containing some free\n\
+space, though FreeBSD can be installed across several drives if you do\n\
+not have the required space on a single drive. If you wish to boot\n\
+off a drive that's not a `zero drive', or have multiple operating\n\
+systems on your machine, you will have the option to install a boot\n\
+manager later. To select a drive, use the arrow keys to move to it\n\
+and press [SPACE].",
+ "Press F1 for important information regarding geometry!",
+ "drives.hlp",
+ { { NULL } },
+};
+
+/* Local work func for MenuOptions */
+static int
+clearFlags(char *str)
+{
+ OptFlags = 0;
+ return 1; /* Gross, but forces menu rebuild */
+}
+
+static char *
+userPassCheck(DMenuItem *item)
+{
+ char *cp = getenv(FTP_USER);
+
+ return (cp && *cp) ? "ON" : "OFF";
+}
+
+static char *
+ftpFlagCheck(DMenuItem *item)
+{
+ /* Verify that everything's sane */
+ if ((OptFlags & (OPT_FTP_ABORT + OPT_FTP_RESELECT)) == (OPT_FTP_ABORT + OPT_FTP_RESELECT))
+ OptFlags &= ~OPT_FTP_RESELECT;
+ if (!(OptFlags & (OPT_FTP_ABORT + OPT_FTP_RESELECT)))
+ OptFlags |= OPT_FTP_ABORT;
+ if (*((unsigned int *)item->ptr) & item->parm)
+ return "ON";
+ return "OFF";
+}
+
+/* The installation options menu */
+DMenu MenuOptions = {
+ DMENU_MULTIPLE_TYPE | DMENU_SELECTION_RETURNS,
+ "Choose Installation Options",
+ "The following options control how this utility will deal\n\
+with various possible error conditions and how verbose it will\n\
+be at various stages.",
+ "Press F1 for more help on these options",
+ "options.hlp",
+ { { "FTP Options", "Set FTP specific options",
+ DMENU_SUBMENU, &MenuFTPOptions, 0, 0, 0 },
+ { "NFS Secure", "NFS server talks only on a secure port",
+ DMENU_SET_FLAG, &OptFlags, OPT_NFS_SECURE, 0, dmenuFlagCheck },
+ { "NFS Slow", "User is using a slow PC or ethernet card",
+ DMENU_SET_FLAG, &OptFlags, OPT_SLOW_ETHER, 0, dmenuFlagCheck },
+ { "Debugging", "Turn on the extra debugging flag",
+ DMENU_SET_FLAG, &OptFlags, OPT_DEBUG, 0, dmenuFlagCheck },
+ { "Yes To All", "Assume \"Yes\" answers to all non-critical dialogs",
+ DMENU_SET_FLAG, &OptFlags, OPT_NO_CONFIRM, 0, dmenuFlagCheck },
+ { "Clear", "Clear All Option Flags",
+ DMENU_CALL, clearFlags, 0, 0 },
+ { "Exit", "Exit this menu (returning to previous)",
+ DMENU_CANCEL, NULL, 0, 0 },
+ { NULL } },
+};
+
+DMenu MenuFTPOptions = {
+ DMENU_MULTIPLE_TYPE | DMENU_SELECTION_RETURNS,
+ "Choose FTP Options",
+ "This menu allows you to customize the behavior of FTP transfers\n\
+for an FTP installation. To select \"Active\" or \"Passive\" mode\n\
+FTP, see the Media menu.",
+ NULL,
+ NULL,
+ { { "FTP Abort", "On transfer failure, abort",
+ DMENU_SET_FLAG, &OptFlags, OPT_FTP_ABORT, 0, ftpFlagCheck },
+ { "FTP Reselect", "On transfer failure, ask for another host",
+ DMENU_SET_FLAG, &OptFlags, OPT_FTP_RESELECT, 0, ftpFlagCheck },
+ { "FTP userpass", "Specify username and password instead of anonymous",
+ DMENU_CALL, mediaSetFtpUserPass, 0, 0, userPassCheck },
+ { NULL } },
+};
+
+/* The main installation menu */
+DMenu MenuInstallCustom = {
+ DMENU_NORMAL_TYPE,
+ "Choose Custom Installation Options",
+ "This is the custom installation menu. You may use this menu to specify\n\
+details on the type of distribution you wish to have, where you wish\n\
+to install it from and how you wish to allocate disk storage to FreeBSD.",
+ "Press F1 to read the installation guide",
+ "install.hlp",
+ { { "Partition", "Allocate disk space for FreeBSD",
+ DMENU_CALL, diskPartitionEditor, 0, 0 },
+ { "Label", "Label allocated disk partitions",
+ DMENU_CALL, diskLabelEditor, 0, 0 },
+ { "Distributions", "Choose the type of installation you want",
+ DMENU_SUBMENU, &MenuInstallType, 0, 0 },
+ { "Media", "Choose the installation media type",
+ DMENU_SUBMENU, &MenuMedia, 0, 0 },
+ { "Extract", "Extract distributions from selected media",
+ DMENU_CALL, distExtractAll, 0, 0 },
+ { "Options", "Go to Options submenu",
+ DMENU_SUBMENU, &MenuOptions, 0, 0 },
+ { "Commit", "Do Write/Make/Extract options in one step",
+ DMENU_CALL, installCommit, 0, 0 },
+ { "Configure", "Do post-install configuration of FreeBSD",
+ DMENU_SUBMENU, &MenuConfigure, 0, 0 },
+ { "Exit", "Exit this menu (returning to previous)",
+ DMENU_CANCEL, NULL, 0, 0 },
+ { NULL } },
+};
+
+/* MBR type menu */
+DMenu MenuMBRType = {
+ DMENU_RADIO_TYPE | DMENU_SELECTION_RETURNS,
+ "Chose boot manager type", /* title */
+ "FreeBSD comes with a boot selector that allows you to easily\n\
+select between FreeBSD and other operating systems on your machine\n\
+at boot time. If you have more than one drive and wish to boot\n\
+from other than the first, the boot selector will also allow you\n\
+to do so (limitations in the PC BIOS usually prevent this otherwise).\n\
+If you do not want a boot selector, or wish to replace an existing\n\
+one, select \"standard\". If you would prefer your Master Boot\n\
+Record to remain untouched, then select \"none\".",
+ "Press F1 to read the installation guide",
+ "install.hlp",
+ { { "BootMgr", "Install the FreeBSD Boot Manager (\"Booteasy\")",
+ DMENU_SET_VALUE, &BootMgr, 0, 0, dmenuRadioCheck },
+ { "Standard", "Use a standard MBR (no boot manager)",
+ DMENU_SET_VALUE, &BootMgr, 1, 0, dmenuRadioCheck },
+ { "None", "Leave the Master Boot Record untouched",
+ DMENU_SET_VALUE, &BootMgr, 2, 0, dmenuRadioCheck },
+ { NULL } },
+};
+
+/* Final configuration menu */
+DMenu MenuConfigure = {
+ DMENU_NORMAL_TYPE,
+ "FreeBSD Configuration Menu", /* title */
+ "If you've already installed FreeBSD, you may use this menu to\n\
+customize it somewhat to suit your particular configuration. Most\n\
+importantly, you can use the Packages utility to load extra \"3rd party\"\n\
+software not provided in the base distributions.",
+ "Press F1 for more information on these options",
+ "configure.hlp",
+ { { "Add User", "Add users to the system",
+ DMENU_SYSTEM_COMMAND, "adduser -silent", 0, 0 },
+ { "Console", "Customize system console behavior",
+ DMENU_SUBMENU, &MenuSyscons, 0, 0 },
+ { "Networking", "Configure additional network services",
+ DMENU_SUBMENU, &MenuNetworking, 0, 0 },
+ { "Time Zone", "Set which time zone you're in",
+ DMENU_SYSTEM_COMMAND, "rm -f /etc/wall_cmos_clock /etc/localtime; tzsetup", 0, 0 },
+ { "Packages", "Install extra FreeBSD packaged software",
+ DMENU_CALL, configPackages, 0, 0 },
+ { "Ports", "Enable the FreeBSD Ports Collection from CD",
+ DMENU_CALL, configPorts, 0, 1 },
+ { "Root Password", "Set the system manager's password",
+ DMENU_SYSTEM_COMMAND, "passwd root", 0, 0 },
+ { "XFree86", "Configure XFree86 (if installed)",
+ DMENU_SYSTEM_COMMAND, "/usr/X11R6/bin/xf86config", 0, 0 },
+ { "Exit", "Exit this menu (returning to previous)",
+ DMENU_CANCEL, NULL, 0, 0 },
+ { NULL } },
+};
+
+static char *
+menuCheckNTP(DMenuItem *item)
+{
+ return getenv("ntpdate") ? "ON" : "OFF";
+}
+
+static char *
+menuCheckRouted(DMenuItem *item)
+{
+ return getenv("routedflags") ? "ON" : "OFF";
+}
+
+DMenu MenuNetworking = {
+ DMENU_MULTIPLE_TYPE | DMENU_SELECTION_RETURNS,
+ "Network Services Menu",
+ "You may have already configured one network device (and the\n\
+other various hostname/gateway/name server parameters) in the process\n\
+of installing FreeBSD. This menu allows you to configure other\n\
+aspects of your system's network configuration.",
+ NULL,
+ NULL,
+ { { "NFS client", "This machine will be an NFS client",
+ DMENU_SET_VARIABLE, "nfs_client=YES", 0, 0, dmenuVarCheck },
+ { "NFS server", "This machine will be an NFS server",
+ DMENU_SET_VARIABLE, "nfs_server=YES", 0, 0, dmenuVarCheck },
+ { "Interfaces", "Configure network interfaces",
+ DMENU_CALL, tcpMenuSelect, 0, 0 },
+ { "ntpdate", "Select a clock-syncronization server",
+ DMENU_SUBMENU, &MenuNTP, 0, 0, menuCheckNTP },
+ { "routed", "Set flags for routed (default: -q)",
+ DMENU_CALL, configRoutedFlags, 0, 0, menuCheckRouted },
+ { "rwhod", "This machine wants to run the rwho daemon",
+ DMENU_SET_VARIABLE, "rwhod=YES", 0, 0, dmenuVarCheck },
+ { "Exit", "Exit this menu (returning to previous)",
+ DMENU_CANCEL, NULL, 0, 0 },
+ { NULL } },
+};
+
+DMenu MenuNTP = {
+ DMENU_NORMAL_TYPE | DMENU_SELECTION_RETURNS,
+ "NTPDATE Server Selection",
+ "There are a number of time syncronization servers available\n\
+for public use around the Internet. Please select one reasonably\n\
+close to you to have your system time syncronized accordingly.",
+ "These are the primary open-access NTP servers",
+ NULL,
+ { { "Other", "Select a site not on this list",
+ DMENU_CALL, configNTP, 0, 0 },
+ { "Australia", "ntp.syd.dms.csiro.au (HP 5061 Cesium Beam)",
+ DMENU_SET_VARIABLE, "ntpdate=ntp.syd.dms.csiro.au", 0, 0 },
+ { "Canada", "tick.usask.ca (GOES clock)",
+ DMENU_SET_VARIABLE, "ntpdate=tick.usask.ca", 0, 0 },
+ { "France", "canon.inria.fr (TDF clock)",
+ DMENU_SET_VARIABLE, "ntpdate=canon.inria.fr", 0, 0 },
+ { "Germany", "ntps1-{0,1,2}.uni-erlangen.de (GPS)",
+ DMENU_SET_VARIABLE, "ntpdate=ntps1-0.uni-erlangen.de", 0, 0 },
+ { "Germany #2", "ntps1-0.cs.tu-berlin.de (GPS)",
+ DMENU_SET_VARIABLE, "ntpdate=ntps1-0.cs.tu-berlin.de", 0, 0 },
+ { "Japan", "clock.nc.fukuoka-u.ac.jp (GPS clock)",
+ DMENU_SET_VARIABLE, "ntpdate=clock.nc.fukuoka-u.ac.jp", 0, 0},
+ { "Japan #2", "clock.tl.fukuoka-u.ac.jp (GPS clock)",
+ DMENU_SET_VARIABLE, "ntpdate=clock.tl.fukuoka-u.ac.jp", 0, 0},
+ { "Netherlands", "ntp0.nl.net (GPS clock)",
+ DMENU_SET_VARIABLE, "ntpdate=ntp0.nl.net", 0, 0 },
+ { "Norway", "timer.unik.no (NTP clock)",
+ DMENU_SET_VARIABLE, "ntpdate=timer.unik.no", 0, 0 },
+ { "Sweden", "Time1.Stupi.SE (Cesium/GPS)",
+ DMENU_SET_VARIABLE, "ntpdate=Time1.Stupi.SE", 0, 0 },
+ { "Switzerland", "swisstime.ethz.ch (DCF77 clock)",
+ DMENU_SET_VARIABLE, "ntpdate=swisstime.ethz.ch", 0, 0 },
+ { "U.S. East Coast", "bitsy.mit.edu (WWV clock)",
+ DMENU_SET_VARIABLE, "ntpdate=bitsy.mit.edu", 0, 0 },
+ { "U.S. East Coast #2", "otc1.psu.edu (WWV clock)",
+ DMENU_SET_VARIABLE, "ntpdate=otc1.psu.edu", 0, 0 },
+ { "U.S. West Coast", "apple.com (WWV clock)",
+ DMENU_SET_VARIABLE, "ntpdate=apple.com", 0, 0 },
+ { "U.S. West Coast #2", "clepsydra.dec.com (GOES clock)",
+ DMENU_SET_VARIABLE, "ntpdate=clepsydra.dec.com", 0, 0 },
+ { "U.S. West Coast #3", "clock.llnl.gov (WWVB clock)",
+ DMENU_SET_VARIABLE, "ntpdate=clock.llnl.gov", 0, 0 },
+ { "U.S. Midwest", "ncar.ucar.edu (WWVB clock)",
+ DMENU_SET_VARIABLE, "ntpdate=ncar.ucar.edu", 0, 0 },
+ { "U.S. Pacific", "chantry.hawaii.net (WWV/H clock)",
+ DMENU_SET_VARIABLE, "ntpdate=chantry.hawaii.net", 0, 0 },
+ { "U.S. Southwest", "shorty.chpc.utexas.edu (WWV clock)",
+ DMENU_SET_VARIABLE, "ntpdate=shorty.chpc.utexas.edu", 0, 0 },
+ { NULL } },
+};
+
+DMenu MenuSyscons = {
+ DMENU_NORMAL_TYPE,
+ "System Console Configuration",
+ "The default system console driver for FreeBSD (syscons) has a\n\
+number of configuration options which may be set according to\n\
+your preference.\n\n\
+When you are done setting configuration options, select Cancel.",
+ "Configure your system console settings",
+ NULL,
+ { { "Keymap", "Choose an alternate keyboard map",
+ DMENU_SUBMENU, &MenuSysconsKeymap, 0, 0 },
+ { "Repeat", "Set the rate at which keys repeat",
+ DMENU_SUBMENU, &MenuSysconsKeyrate, 0, 0 },
+ { "Saver", "Configure the screen saver",
+ DMENU_SUBMENU, &MenuSysconsSaver, 0, 0 },
+ { "Exit", "Exit this menu (returning to previous)",
+ DMENU_CANCEL, NULL, 0, 0 },
+ { NULL } },
+};
+
+DMenu MenuSysconsKeymap = {
+ DMENU_RADIO_TYPE | DMENU_SELECTION_RETURNS,
+ "System Console Keymap",
+ "The default system console driver for FreeBSD (syscons) defaults\n\
+to a standard \"American\" keyboard map. Users in other countries\n\
+(or with different keyboard preferences) may wish to choose one of\n\
+the other keymaps below.",
+ "Choose a keyboard map",
+ NULL,
+ { { "Danish CP865", "Danish Code Page 865 keymap",
+ DMENU_SET_VARIABLE, "keymap=danish.cp865", 0, 0, dmenuVarCheck },
+ { "Danish ISO", "Danish ISO keymap",
+ DMENU_SET_VARIABLE, "keymap=danish.iso", 0, 0, dmenuVarCheck },
+ { "French ISO", "French ISO keymap",
+ DMENU_SET_VARIABLE, "keymap=fr.iso", 0, 0, dmenuVarCheck },
+ { "German CP850", "German Code Page 850 keymap",
+ DMENU_SET_VARIABLE, "keymap=german.cp850", 0, 0, dmenuVarCheck },
+ { "German ISO", "German ISO keymap",
+ DMENU_SET_VARIABLE, "keymap=german.iso", 0, 0, dmenuVarCheck },
+ { "Russian CP866", "Russian Code Page 866 keymap",
+ DMENU_SET_VARIABLE, "keymap=ru.cp866", 0, 0, dmenuVarCheck },
+ { "Russian KOI8", "Russian koi8 keymap",
+ DMENU_SET_VARIABLE, "keymap=ru.koi8-r", 0, 0, dmenuVarCheck },
+ { "Russian s-KOI8", "Russian shifted koi8 keymap",
+ DMENU_SET_VARIABLE, "keymap=ru.koi8-r.shift", 0, 0, dmenuVarCheck },
+ { "Swedish CP850", "Swedish Code Page 850 keymap",
+ DMENU_SET_VARIABLE, "keymap=swedish.cp850", 0, 0, dmenuVarCheck },
+ { "Swedish ISO", "Swedish ISO keymap",
+ DMENU_SET_VARIABLE, "keymap=swedish.iso", 0, 0, dmenuVarCheck },
+ { "U.K. CP850", "United Kingdom Code Page 850 keymap",
+ DMENU_SET_VARIABLE, "keymap=uk.cp850", 0, 0, dmenuVarCheck },
+ { "U.K. ISO", "United Kingdom ISO keymap",
+ DMENU_SET_VARIABLE, "keymap=uk.iso", 0, 0, dmenuVarCheck },
+ { "U.S. ISO", "United States ISO keymap",
+ DMENU_SET_VARIABLE, "keymap=us.iso", 0, 0, dmenuVarCheck },
+ { NULL } },
+};
+
+DMenu MenuSysconsKeyrate = {
+ DMENU_RADIO_TYPE | DMENU_SELECTION_RETURNS,
+ "System Console Keyboard Repeat Rate",
+ "This menu allows you to set the speed at which keys repeat\n\
+when held down.",
+ "Choose a keyboard repeat rate",
+ NULL,
+ { { "Slow", "Slow keyboard repeat rate",
+ DMENU_SET_VARIABLE, "keyrate=slow", 0, 0, dmenuVarCheck },
+ { "Normal", "\"Normal\" keyboard repeat rate",
+ DMENU_SET_VARIABLE, "keyrate=normal", 0, 0, dmenuVarCheck },
+ { "Fast", "Fast keyboard repeat rate",
+ DMENU_SET_VARIABLE, "keyrate=fast", 0, 0, dmenuVarCheck },
+ { "Default", "Use default keyboard repeat rate",
+ DMENU_SET_VARIABLE, "keyrate=NO", 0, 0, dmenuVarCheck },
+ { NULL } },
+};
+
+static char *
+menuSaverTimeoutCheck(DMenuItem *item)
+{
+ return getenv("blanktime") ? "ON" : "OFF";
+}
+
+DMenu MenuSysconsSaver = {
+ DMENU_MULTIPLE_TYPE | DMENU_SELECTION_RETURNS,
+ "System Console Screen Saver",
+ "By default, the console driver will not attempt to do anything\n\
+special with your screen when it's idle. If you expect to leave your\n\
+monitor switched on and idle for long periods of time then you should\n\
+probably enable one of these screen savers to prevent phosphor burn-in.",
+ "Choose a nifty-looking screen saver",
+ NULL,
+ { { "blank", "Simply blank the screen",
+ DMENU_SET_VARIABLE, "saver=blank", 0, 0, dmenuVarCheck },
+ { "Green", "\"Green\" power saving mode (if supported by monitor)",
+ DMENU_SET_VARIABLE, "saver=green", 0, 0, dmenuVarCheck },
+ { "Snake", "Draw a FreeBSD \"snake\" on your screen",
+ DMENU_SET_VARIABLE, "saver=snake", 0, 0, dmenuVarCheck },
+ { "Star", "A \"twinkling stars\" effect",
+ DMENU_SET_VARIABLE, "saver=star", 0, 0, dmenuVarCheck },
+ { "Timeout", "Set the screen saver timeout interval",
+ DMENU_CALL, configSaverTimeout, 0, 0, menuSaverTimeoutCheck },
+ { "Exit", "Exit this menu (returning to previous)",
+ DMENU_CANCEL, NULL, 0, 0 },
+ { NULL } },
+};
diff --git a/release/sysinstall/misc.c b/release/sysinstall/misc.c
new file mode 100644
index 0000000..4a93b9e
--- /dev/null
+++ b/release/sysinstall/misc.c
@@ -0,0 +1,245 @@
+/*
+ * Miscellaneous support routines..
+ *
+ * $Id: misc.c,v 1.11.2.2 1995/06/01 22:32:06 jkh Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+#include <ctype.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <sys/errno.h>
+#include <sys/file.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <sys/param.h>
+#include <sys/mount.h>
+#include <sys/reboot.h>
+#include <sys/dkbad.h>
+#include <sys/disklabel.h>
+
+/* Quick check to see if a file is readable */
+Boolean
+file_readable(char *fname)
+{
+ if (!access(fname, F_OK))
+ return TRUE;
+ return FALSE;
+}
+
+/* Quick check to see if a file is executable */
+Boolean
+file_executable(char *fname)
+{
+ if (!access(fname, X_OK))
+ return TRUE;
+ return FALSE;
+}
+
+/* Concatenate two strings into static storage */
+char *
+string_concat(char *one, char *two)
+{
+ static char tmp[FILENAME_MAX];
+
+ strcpy(tmp, one);
+ strcat(tmp, two);
+ return tmp;
+}
+
+/* Clip the whitespace off the end of a string */
+char *
+string_prune(char *str)
+{
+ int len = str ? strlen(str) : 0;
+
+ while (len && isspace(str[len - 1]))
+ str[--len] = '\0';
+ return str;
+}
+
+/* run the whitespace off the front of a string */
+char *
+string_skipwhite(char *str)
+{
+ while (*str && isspace(*str))
+ ++str;
+ return str;
+}
+
+/* A free guaranteed to take NULL ptrs */
+void
+safe_free(void *ptr)
+{
+ if (ptr)
+ free(ptr);
+}
+
+/* A malloc that checks errors */
+void *
+safe_malloc(size_t size)
+{
+ void *ptr;
+
+ if (size <= 0)
+ msgFatal("Invalid malloc size of %d!", size);
+ ptr = malloc(size);
+ if (!ptr)
+ msgFatal("Out of memory!");
+ return ptr;
+}
+
+/* A realloc that checks errors */
+void *
+safe_realloc(void *orig, size_t size)
+{
+ void *ptr;
+
+ if (size <= 0)
+ msgFatal("Invalid realloc size of %d!", size);
+ ptr = realloc(orig, size);
+ if (!ptr)
+ msgFatal("Out of memory!");
+ return ptr;
+}
+
+/*
+ * These next routines are kind of specialized just for building string lists
+ * for dialog_menu().
+ */
+
+/* Add a string to an item list */
+char **
+item_add(char **list, char *item, int *curr, int *max)
+{
+
+ if (*curr == *max) {
+ *max += 20;
+ list = (char **)realloc(list, sizeof(char *) * *max);
+ }
+ list[(*curr)++] = item;
+ return list;
+}
+
+/* Add a pair of items to an item list (more the usual case) */
+char **
+item_add_pair(char **list, char *item1, char *item2, int *curr, int *max)
+{
+ list = item_add(list, item1, curr, max);
+ list = item_add(list, item2, curr, max);
+ return list;
+}
+
+/* Toss the items out */
+void
+items_free(char **list, int *curr, int *max)
+{
+ safe_free(list);
+ *curr = *max = 0;
+}
+
+int
+Mkdir(char *ipath, void *data)
+{
+ struct stat sb;
+ int final=0;
+ char *p, *path;
+
+ if (access(ipath, R_OK) == 0)
+ return 0;
+
+ path = strdup(ipath);
+ if (isDebug())
+ msgDebug("mkdir(%s)\n", path);
+ p = path;
+ if (p[0] == '/') /* Skip leading '/'. */
+ ++p;
+ for (;!final; ++p) {
+ if (p[0] == '\0' || (p[0] == '/' && p[1] == '\0'))
+ final++;
+ else if (p[0] != '/')
+ continue;
+ *p = '\0';
+ if (stat(path, &sb)) {
+ if (errno != ENOENT) {
+ msgConfirm("Couldn't stat directory %s: %s", path, strerror(errno));
+ return 1;
+ }
+ if (isDebug())
+ msgDebug("mkdir(%s..)\n", path);
+ if (mkdir(path, S_IRWXU | S_IRWXG | S_IRWXO) < 0) {
+ msgConfirm("Couldn't create directory %s: %s", path,strerror(errno));
+ return 1;
+ }
+ }
+ *p = '/';
+ }
+ free(path);
+ return 0;
+}
+
+int
+Mount(char *mountp, void *dev)
+{
+ struct ufs_args ufsargs;
+ char device[80];
+ char mountpoint[FILENAME_MAX];
+
+ if (*((char *)dev) != '/') {
+ sprintf(device, "/mnt/dev/%s", (char *)dev);
+ sprintf(mountpoint, "/mnt%s", mountp);
+ }
+ else {
+ strcpy(device, dev);
+ strcpy(mountpoint, mountp);
+ }
+ memset(&ufsargs,0,sizeof ufsargs);
+
+ if (Mkdir(mountpoint, NULL)) {
+ msgConfirm("Unable to make directory mountpoint for %s!", mountpoint);
+ return 1;
+ }
+ if (isDebug())
+ msgDebug("mount %s %s\n", device, mountpoint);
+ bzero(&ufsargs, sizeof(ufsargs));
+ ufsargs.fspec = device;
+ if (mount(MOUNT_UFS, mountpoint, 0, (caddr_t)&ufsargs) == -1) {
+ msgConfirm("Error mounting %s on %s : %s\n", device, mountpoint, strerror(errno));
+ return 1;
+ }
+ return 0;
+}
diff --git a/release/sysinstall/msg.c b/release/sysinstall/msg.c
new file mode 100644
index 0000000..088da89
--- /dev/null
+++ b/release/sysinstall/msg.c
@@ -0,0 +1,353 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last program in the `sysinstall' line - the next
+ * generation being essentially a complete rewrite.
+ *
+ * $Id: msg.c,v 1.28.2.2 1995/06/02 15:31:31 jkh Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+#include <stdarg.h>
+#include <sys/ioctl.h>
+#include <machine/console.h>
+
+#define VTY_STATLINE 24
+#define TTY_STATLINE 23
+
+Boolean
+isDebug(void)
+{
+ if (OptFlags & OPT_DEBUG)
+ return TRUE;
+ return FALSE;
+}
+
+/* Whack up an informational message on the status line, in stand-out */
+void
+msgYap(char *fmt, ...)
+{
+ va_list args;
+ char *errstr;
+ int attrs;
+
+ errstr = (char *)safe_malloc(FILENAME_MAX);
+ va_start(args, fmt);
+ vsnprintf(errstr, FILENAME_MAX, fmt, args);
+ va_end(args);
+ attrs = getattrs(stdscr);
+ attrset(A_REVERSE);
+ mvaddstr(OnVTY ? VTY_STATLINE : TTY_STATLINE, 0, errstr);
+ attrset(attrs);
+ refresh();
+ free(errstr);
+}
+
+/* Whack up an informational message on the status line */
+void
+msgInfo(char *fmt, ...)
+{
+ va_list args;
+ char *errstr;
+ int i, attrs;
+ char line[81];
+
+ attrs = getattrs(stdscr);
+ /* NULL is a special convention meaning "erase the old stuff" */
+ if (!fmt) {
+ move(OnVTY ? VTY_STATLINE : TTY_STATLINE, 0);
+ attrset(A_REVERSE);
+ clrtoeol();
+ attrset(attrs);
+ return;
+ }
+ errstr = (char *)safe_malloc(FILENAME_MAX);
+ va_start(args, fmt);
+ vsnprintf(errstr, FILENAME_MAX, fmt, args);
+ va_end(args);
+ memset(line, ' ', 80);
+ for (i = 0; i < 80; i++) {
+ if (errstr[i])
+ line[i] = errstr[i];
+ else
+ break;
+ }
+ line[80] = '\0';
+ attrset(A_REVERSE);
+ mvaddstr(OnVTY ? VTY_STATLINE : TTY_STATLINE, 0, line);
+ attrset(attrs);
+ move(OnVTY ? VTY_STATLINE : TTY_STATLINE, 79);
+ refresh();
+ if (OnVTY) {
+ if (isDebug())
+ msgDebug("Information: `%s'\n", errstr);
+ msgInfo(NULL);
+ }
+ free(errstr);
+}
+
+/* Whack up a warning on the status line */
+void
+msgWarn(char *fmt, ...)
+{
+ va_list args;
+ char *errstr;
+ int attrs;
+
+ errstr = (char *)safe_malloc(FILENAME_MAX);
+ strcpy(errstr, "Warning: ");
+ va_start(args, fmt);
+ vsnprintf((char *)(errstr + strlen(errstr)), FILENAME_MAX, fmt, args);
+ va_end(args);
+ attrs = getattrs(stdscr);
+ beep();
+ attrset(A_REVERSE);
+ mvaddstr(OnVTY ? VTY_STATLINE : TTY_STATLINE, 0, errstr);
+ attrset(attrs);
+ refresh();
+ if (OnVTY && isDebug())
+ msgDebug("Warning message `%s'\n", errstr);
+ free(errstr);
+}
+
+/* Whack up an error on the status line */
+void
+msgError(char *fmt, ...)
+{
+ va_list args;
+ char *errstr;
+ int attrs;
+
+ errstr = (char *)safe_malloc(FILENAME_MAX);
+ strcpy(errstr, "Error: ");
+ va_start(args, fmt);
+ vsnprintf((char *)(errstr + strlen(errstr)), FILENAME_MAX, fmt, args);
+ va_end(args);
+ beep();
+ attrs = getattrs(stdscr);
+ attrset(A_REVERSE);
+ mvaddstr(OnVTY ? VTY_STATLINE : TTY_STATLINE, 0, errstr);
+ attrset(attrs);
+ refresh();
+ if (OnVTY && isDebug())
+ msgDebug("Error message `%s'\n", errstr);
+ free(errstr);
+}
+
+/* Whack up a fatal error on the status line */
+void
+msgFatal(char *fmt, ...)
+{
+ va_list args;
+ char *errstr;
+ int attrs;
+
+ errstr = (char *)safe_malloc(FILENAME_MAX);
+ strcpy(errstr, "Fatal Error: ");
+ va_start(args, fmt);
+ vsnprintf((char *)(errstr + strlen(errstr)), FILENAME_MAX, fmt, args);
+ va_end(args);
+ beep();
+ attrs = getattrs(stdscr);
+ attrset(A_REVERSE);
+ mvaddstr(OnVTY ? VTY_STATLINE : TTY_STATLINE, 0, errstr);
+ addstr(" - ");
+ addstr("PRESS ANY KEY TO ");
+ if (getpid() == 1)
+ addstr("REBOOT");
+ else
+ addstr("QUIT");
+ attrset(attrs);
+ refresh();
+ if (OnVTY)
+ msgDebug("Fatal error `%s'!\n", errstr);
+ free(errstr);
+ getch();
+ systemShutdown();
+}
+
+/* Put up a message in a popup confirmation box */
+void
+msgConfirm(char *fmt, ...)
+{
+ va_list args;
+ char *errstr;
+ WINDOW *w;
+
+ errstr = (char *)safe_malloc(FILENAME_MAX);
+ va_start(args, fmt);
+ vsnprintf(errstr, FILENAME_MAX, fmt, args);
+ va_end(args);
+ use_helpline(NULL);
+ use_helpfile(NULL);
+ w = dupwin(newscr);
+ if (OnVTY) {
+ msgDebug("Switching back to VTY 0\n");
+ ioctl(0, VT_ACTIVATE, 1);
+ msgInfo(NULL);
+ }
+ dialog_notify(errstr);
+ touchwin(w);
+ wrefresh(w);
+ delwin(w);
+ free(errstr);
+}
+
+/* Put up a message in a popup information box */
+void
+msgNotify(char *fmt, ...)
+{
+ va_list args;
+ char *errstr;
+
+ errstr = (char *)safe_malloc(FILENAME_MAX);
+ va_start(args, fmt);
+ vsnprintf(errstr, FILENAME_MAX, fmt, args);
+ va_end(args);
+ use_helpline(NULL);
+ use_helpfile(NULL);
+ if (isDebug())
+ msgDebug("Notify: %s\n", errstr);
+ dialog_clear();
+ dialog_msgbox("Information Dialog", errstr, -1, -1, 0);
+ free(errstr);
+}
+
+/* Put up a message in a popup yes/no box and return 1 for YES, 0 for NO */
+int
+msgYesNo(char *fmt, ...)
+{
+ va_list args;
+ char *errstr;
+ int ret;
+ WINDOW *w;
+
+ errstr = (char *)safe_malloc(FILENAME_MAX);
+ va_start(args, fmt);
+ vsnprintf(errstr, FILENAME_MAX, fmt, args);
+ va_end(args);
+ use_helpline(NULL);
+ use_helpfile(NULL);
+ w = dupwin(newscr);
+ if (OnVTY) {
+ msgDebug("Switching back to VTY 0\n");
+ ioctl(0, VT_ACTIVATE, 1); /* Switch back */
+ msgInfo(NULL);
+ }
+ ret = dialog_yesno("User Confirmation Requested", errstr, -1, -1);
+ touchwin(w);
+ wrefresh(w);
+ delwin(w);
+ free(errstr);
+ return ret;
+}
+
+/* Put up a message in an input box and return the value */
+char *
+msgGetInput(char *buf, char *fmt, ...)
+{
+ va_list args;
+ char *errstr;
+ static char input_buffer[256];
+ int rval;
+ WINDOW *w;
+
+ errstr = (char *)safe_malloc(FILENAME_MAX);
+ va_start(args, fmt);
+ vsnprintf(errstr, FILENAME_MAX, fmt, args);
+ va_end(args);
+ use_helpline(NULL);
+ use_helpfile(NULL);
+ if (buf)
+ strcpy(input_buffer, buf);
+ else
+ input_buffer[0] = '\0';
+ w = dupwin(newscr);
+ if (OnVTY) {
+ msgDebug("Switching back to VTY 0\n");
+ ioctl(0, VT_ACTIVATE, 1); /* Switch back */
+ msgInfo(NULL);
+ }
+ rval = dialog_inputbox("Value Required", errstr, -1, -1, input_buffer);
+ touchwin(w);
+ wrefresh(w);
+ delwin(w);
+ free(errstr);
+ if (!rval)
+ return input_buffer;
+ else
+ return NULL;
+}
+
+/* Write something to the debugging port */
+void
+msgDebug(char *fmt, ...)
+{
+ va_list args;
+ char *dbg;
+
+ if (DebugFD == -1)
+ return;
+ dbg = (char *)safe_malloc(FILENAME_MAX);
+ strcpy(dbg, "DEBUG: ");
+ va_start(args, fmt);
+ vsnprintf((char *)(dbg + strlen(dbg)), FILENAME_MAX, fmt, args);
+ va_end(args);
+ write(DebugFD, dbg, strlen(dbg));
+ free(dbg);
+}
+
+/* Tell the user there's some output to go look at */
+void
+msgWeHaveOutput(char *fmt, ...)
+{
+ va_list args;
+ char *errstr;
+
+ errstr = (char *)safe_malloc(FILENAME_MAX);
+ va_start(args, fmt);
+ vsnprintf(errstr, FILENAME_MAX, fmt, args);
+ va_end(args);
+ use_helpline(NULL);
+ use_helpfile(NULL);
+ msgDebug("Notify: %s\n", errstr);
+ dialog_clear();
+ dialog_msgbox("Information Dialog", errstr, -1, -1, 0);
+ free(errstr);
+ if (OnVTY)
+ msgInfo("Command output is on debugging screen - type ALT-F2 to see it");
+}
diff --git a/release/sysinstall/network.c b/release/sysinstall/network.c
new file mode 100644
index 0000000..821e57a
--- /dev/null
+++ b/release/sysinstall/network.c
@@ -0,0 +1,219 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last attempt in the `sysinstall' line, the next
+ * generation being slated to essentially a complete rewrite.
+ *
+ * $Id: network.c,v 1.7.2.2 1995/07/21 10:57:33 rgrimes Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+/* These routines deal with getting things off of network media */
+
+#include "sysinstall.h"
+#include <sys/fcntl.h>
+#include <signal.h>
+#include <sys/stat.h>
+
+static Boolean networkInitialized;
+static pid_t pppPid;
+static pid_t startPPP(Device *devp);
+
+Boolean
+mediaInitNetwork(Device *dev)
+{
+ int i;
+ char *rp;
+ char *cp, ifconfig[64];
+
+ if (!RunningAsInit || networkInitialized || (dev->flags & OPT_LEAVE_NETWORK_UP))
+ return TRUE;
+
+ configResolv();
+ if (!strncmp("cuaa", dev->name, 4)) {
+ if (!msgYesNo("You have selected a serial-line network interface.\nDo you want to use PPP with it?")) {
+ if (!(dev->private = (void *)startPPP(dev))) {
+ msgConfirm("Unable to start PPP! This installation method\ncannot be used.");
+ return FALSE;
+ }
+ networkInitialized = TRUE;
+ return TRUE;
+ }
+ else {
+ char *val;
+ char attach[256];
+
+ /* Cheesy slip attach */
+ snprintf(attach, 256, "slattach -a -h -l -s 9600 %s", dev->devname);
+ val = msgGetInput(attach, "Warning: SLIP is rather poorly supported in this revision\nof the installation due to the lack of a dialing utility.\nIf you can use PPP for this instead then you're much better\noff doing so, otherwise SLIP works fairly well for *hardwired*\nlinks. Please edit the following slattach command for\ncorrectness (default here is VJ compression, Hardware flow-control,\nignore carrier and 9600 baud data rate) and hit return to execute it.");
+ if (!val)
+ return FALSE;
+ else
+ strcpy(attach, val);
+ if (!vsystem(attach))
+ dev->private = NULL;
+ else {
+ msgConfirm("slattach returned a bad status! Please verify that\nthe command is correct and try again.");
+ return FALSE;
+ }
+ }
+ }
+
+ snprintf(ifconfig, 64, "%s%s", VAR_IFCONFIG, dev->name);
+ cp = getenv(ifconfig);
+ if (!cp) {
+ msgConfirm("The %s device is not configured. You will need to do so\nin the Networking configuration menu before proceeding.");
+ return FALSE;
+ }
+ i = vsystem("ifconfig %s %s", "sl0", cp);
+ if (i) {
+ msgConfirm("Unable to configure the %s interface!\nThis installation method cannot be used.", dev->name);
+ return FALSE;
+ }
+
+ rp = getenv(VAR_GATEWAY);
+ if (!rp || *rp == '0')
+ msgConfirm("No gateway has been set. You may be unable to access hosts\nnot on your local network\n");
+ else
+ vsystem("route add default %s", rp);
+ networkInitialized = TRUE;
+ return TRUE;
+}
+
+void
+mediaShutdownNetwork(Device *dev)
+{
+ char *cp;
+
+ if (!RunningAsInit || !networkInitialized || (dev->flags & OPT_LEAVE_NETWORK_UP))
+ return;
+
+ if (strncmp("cuaa", dev->name, 4)) {
+ int i;
+ char ifconfig[64];
+
+ snprintf(ifconfig, 64, "%s%s", VAR_IFCONFIG, dev->name);
+ cp = getenv(ifconfig);
+ if (!cp)
+ return;
+ i = vsystem("ifconfig %s down", dev->name);
+ if (i)
+ msgConfirm("Warning: Unable to down the %s interface properly", dev->name);
+ cp = getenv(VAR_GATEWAY);
+ if (cp)
+ vsystem("route delete default");
+ networkInitialized = FALSE;
+ }
+ else if (pppPid != 0) {
+ kill(pppPid, SIGTERM);
+ pppPid = 0;
+ }
+}
+
+/* Start PPP on the 3rd screen */
+static pid_t
+startPPP(Device *devp)
+{
+ int vfd, fd2;
+ FILE *fp;
+ char *val;
+ pid_t pid;
+ char myaddr[16], provider[16], speed[16];
+
+ /* We're going over to VTY2 */
+ vfd = open("/dev/ttyv2", O_RDWR);
+ if (vfd == -1)
+ return 0;
+
+ /* These are needed to make ppp work */
+ Mkdir("/var/log", NULL);
+ Mkdir("/var/spool/lock", NULL);
+ Mkdir("/etc/ppp", NULL);
+
+ /* Get any important user values */
+ val = msgGetInput("115200",
+"Enter the baud rate for your modem - this can be higher than the actual\nmaximum data rate since most modems can talk at one speed to the\ncomputer and at another speed to the remote end.\n\nIf you're not sure what to put here, just select the default.");
+ strcpy(speed, val ? val : "115200");
+
+ strcpy(provider, getenv(VAR_GATEWAY) ? getenv(VAR_GATEWAY) : "0");
+ val = msgGetInput(provider, "Enter the IP address of your service provider or 0 if you\ndon't know it and would prefer to negotiate it dynamically.");
+ strcpy(provider, val ? val : "0");
+
+ if (devp->private && ((DevInfo *)devp->private)->ipaddr[0])
+ strcpy(myaddr, ((DevInfo *)devp->private)->ipaddr);
+ else
+ strcpy(myaddr, "0");
+
+ fp = fopen("/etc/ppp/ppp.linkup", "w");
+ if (fp != NULL) {
+ fprintf(fp, "MYADDR:\n");
+ fprintf(fp, " delete ALL\n");
+ fprintf(fp, " add 0 0 HISADDR\n");
+ fchmod(fileno(fp), 0755);
+ fclose(fp);
+ }
+ fd2 = open("/etc/ppp/ppp.secret", O_CREAT);
+ if (fd2 != -1) {
+ fchmod(fd2, 0755);
+ close(fd2);
+ }
+ fp = fopen("/etc/ppp/ppp.conf", "w");
+ if (!fp) {
+ msgConfirm("Couldn't open /etc/ppp/ppp.conf file! This isn't going to work");
+ return 0;
+ }
+ fprintf(fp, "default:\n");
+ fprintf(fp, " set speed %s\n", speed);
+ fprintf(fp, " set device %s\n", devp->devname);
+ fprintf(fp, " set ifaddr %s %s\n", myaddr, provider);
+ fclose(fp);
+
+ if (isDebug())
+ msgDebug("Creating /dev/tun0 device.\n");
+ if (!file_readable("/dev/tun0") && mknod("/dev/tun0", 0600 | S_IFCHR, makedev(52, 0))) {
+ msgConfirm("Warning: No /dev/tun0 device. PPP will not work!");
+ return 0;
+ }
+ if (!(pid = fork())) {
+ dup2(vfd, 0);
+ dup2(vfd, 1);
+ dup2(vfd, 2);
+ execl("/stand/ppp", "/stand/ppp", (char *)NULL);
+ exit(1);
+ }
+ msgConfirm("The PPP command is now started on screen 3 (type ALT-F3 to\ninteract with it, ALT-F1 to switch back here). The only command\nyou'll probably want or need to use is the \"term\" command\nwhich starts a terminal emulator you can use to talk to your\nmodem and dial the service provider. Once you're connected,\ncome back to this screen and press return. DO NOT PRESS RETURN\nHERE UNTIL THE CONNECTION IS FULLY ESTABLISHED!");
+ return pid;
+}
diff --git a/release/sysinstall/nfs.c b/release/sysinstall/nfs.c
new file mode 100644
index 0000000..cf04e5e
--- /dev/null
+++ b/release/sysinstall/nfs.c
@@ -0,0 +1,103 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last attempt in the `sysinstall' line, the next
+ * generation being slated to essentially a complete rewrite.
+ *
+ * $Id: nfs.c,v 1.4.2.6 1995/06/10 02:21:40 jkh Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+#include <sys/errno.h>
+#include <sys/fcntl.h>
+#include <sys/syslimits.h>
+#include <sys/param.h>
+#include <sys/mount.h>
+
+Boolean NFSMounted;
+
+Boolean
+mediaInitNFS(Device *dev)
+{
+ Device *netDevice = (Device *)dev->private;
+
+ if (NFSMounted)
+ return TRUE;
+
+ if (!(*netDevice->init)(netDevice))
+ return FALSE;
+
+ if (Mkdir("/nfs", NULL))
+ return FALSE;
+
+ if (vsystem("mount_nfs %s %s %s /nfs", (OptFlags & OPT_SLOW_ETHER) ? "-r 1024 -w 1024" : "",
+ (OptFlags & OPT_NFS_SECURE) ? "-P" : "", dev->name)) {
+ msgConfirm("Error mounting %s on /nfs: %s (%u)\n", dev->name, strerror(errno), errno);
+ return FALSE;
+ }
+ NFSMounted = TRUE;
+ return TRUE;
+}
+
+int
+mediaGetNFS(Device *dev, char *file, Attribs *dist_attrs)
+{
+ char buf[PATH_MAX];
+
+ snprintf(buf, PATH_MAX, "/nfs/%s", file);
+ if (!access(buf, R_OK))
+ return open(buf, O_RDONLY);
+ snprintf(buf, PATH_MAX, "/nfs/dists/%s", file);
+ return open(buf, O_RDONLY);
+}
+
+void
+mediaShutdownNFS(Device *dev)
+{
+ Device *netdev = (Device *)dev->private;
+
+ if (!NFSMounted)
+ return;
+ msgDebug("Unmounting /nfs\n");
+ if (unmount("/nfs", MNT_FORCE) != 0)
+ msgConfirm("Could not unmount the NFS partition: %s\n", strerror(errno));
+ if (isDebug())
+ msgDebug("Unmount returned\n");
+ (*netdev->shutdown)(netdev);
+ NFSMounted = FALSE;
+ return;
+}
diff --git a/release/sysinstall/options.c b/release/sysinstall/options.c
new file mode 100644
index 0000000..dbc32f8
--- /dev/null
+++ b/release/sysinstall/options.c
@@ -0,0 +1,286 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last attempt in the `sysinstall' line, the next
+ * generation being slated for what's essentially a complete rewrite.
+ *
+ * $Id: options.c,v 1.22 1995/10/21 18:28:07 jkh Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+#include <ctype.h>
+
+static char *
+varCheck(Option opt)
+{
+ char *cp = NULL;
+
+ if (opt.aux)
+ cp = variable_get((char *)opt.aux);
+ if (!cp)
+ return "NO";
+ return cp;
+}
+
+/* Show our little logo */
+static char *
+resetLogo(char *str)
+{
+ return "[WHAP!]";
+}
+
+static char *
+mediaCheck(Option opt)
+{
+ if (mediaDevice) {
+ switch(mediaDevice->type) {
+ case DEVICE_TYPE_UFS:
+ case DEVICE_TYPE_DISK:
+ return "File system";
+
+ case DEVICE_TYPE_FLOPPY:
+ return "Floppy";
+
+ case DEVICE_TYPE_FTP:
+ return "FTP";
+
+ case DEVICE_TYPE_CDROM:
+ return "CDROM";
+
+ case DEVICE_TYPE_TAPE:
+ return "Tape";
+
+ case DEVICE_TYPE_DOS:
+ return "DOS";
+
+ case DEVICE_TYPE_NFS:
+ return "NFS";
+
+ case DEVICE_TYPE_NONE:
+ case DEVICE_TYPE_NETWORK:
+ case DEVICE_TYPE_ANY:
+ default:
+ return "<unknown>";
+ }
+ }
+ return "<unset>";
+}
+
+#define TAPE_PROMPT "Please enter the tape block size in 512 byte blocks"
+#define RELNAME_PROMPT "Please specify the release you wish to load"
+#define BPKG_PROMPT "Please specify the name of the HTML browser package:"
+#define BBIN_PROMPT "Please specify a full pathname to the HTML browser binary:"
+#define CONFIG_PROMPT "Please specify the name of a configuration file"
+
+static Option Options[] = {
+{ "NFS Secure", "NFS server talks only on a secure port",
+ OPT_IS_VAR, NULL, VAR_NFS_SECURE, varCheck },
+{ "NFS Slow", "User is using a slow PC or ethernet card",
+ OPT_IS_VAR, NULL, VAR_SLOW_ETHER, varCheck },
+{ "Debugging", "Emit extra debugging output on VTY2 (ALT-F2)",
+ OPT_IS_VAR, NULL, VAR_DEBUG, varCheck },
+{ "Yes to All", "Assume \"Yes\" answers to all non-critical dialogs",
+ OPT_IS_VAR, NULL, VAR_NO_CONFIRM, varCheck },
+{ "FTP OnError", "What to do when FTP requests fail: abort, retry, reselect.",
+ OPT_IS_FUNC, mediaSetFtpOnError, VAR_FTP_ONERROR, varCheck },
+{ "FTP username", "Username and password to use instead of anonymous",
+ OPT_IS_FUNC, mediaSetFtpUserPass, VAR_FTP_USER, varCheck },
+{ "Tape Blocksize", "Tape media block size in 512 byte blocks",
+ OPT_IS_VAR, TAPE_PROMPT, VAR_TAPE_BLOCKSIZE, varCheck },
+{ "Extract Detail", "How verbosely to display file name information during extractions",
+ OPT_IS_FUNC, mediaSetCPIOVerbosity, VAR_CPIO_VERBOSITY, varCheck },
+{ "Release Name", "Which release to attempt to load from installation media",
+ OPT_IS_VAR, RELNAME_PROMPT, VAR_RELNAME, varCheck },
+{ "Browser Pkg", "This is the browser package that will be used for viewing HTML",
+ OPT_IS_VAR, BPKG_PROMPT, VAR_BROWSER_PACKAGE, varCheck },
+{ "Browser Exec", "This is the path to the main binary of the browser package",
+ OPT_IS_VAR, BBIN_PROMPT, VAR_BROWSER_BINARY, varCheck },
+{ "Config File", "Name of default configuration file for Load command (top menu)",
+ OPT_IS_VAR, CONFIG_PROMPT, VAR_CONFIG_FILE, varCheck },
+{ "Media Type", "The current installation media type.",
+ OPT_IS_FUNC, mediaGetType, VAR_MEDIA_TYPE, mediaCheck },
+{ "Use Defaults", "Reset all values to startup defaults",
+ OPT_IS_FUNC, installVarDefaults, 0, resetLogo },
+{ NULL },
+};
+
+#define OPT_START_ROW 4
+#define OPT_END_ROW 20
+#define OPT_NAME_COL 0
+#define OPT_VALUE_COL 16
+#define GROUP_OFFSET 40
+
+static char *
+value_of(Option opt)
+{
+ static char ival[40];
+
+ switch (opt.type) {
+ case OPT_IS_STRING:
+ return (char *)opt.data;
+
+ case OPT_IS_INT:
+ sprintf(ival, "%d", (int)opt.data);
+ return ival;
+
+ case OPT_IS_FUNC:
+ case OPT_IS_VAR:
+ if (opt.check)
+ return opt.check(opt);
+ else
+ return "<*>";
+ }
+ return "<unknown>";
+}
+
+static void
+fire(Option opt)
+{
+ if (opt.type == OPT_IS_FUNC) {
+ int (*cp)(char *) = opt.data;
+
+ cp(NULL);
+ }
+ else if (opt.type == OPT_IS_VAR) {
+ if (opt.data) {
+ (void)variable_get_value(opt.aux, opt.data);
+ dialog_clear();
+ }
+ else if (variable_get(opt.aux))
+ variable_unset(opt.aux);
+ else
+ variable_set2(opt.aux, "YES");
+ }
+ if (opt.check)
+ opt.check(opt);
+ clear();
+ refresh();
+}
+
+int
+optionsEditor(char *str)
+{
+ int i, optcol, optrow, key;
+ static int currOpt = 0;
+
+ dialog_clear();
+ clear();
+
+ while (1) {
+ /* Whap up the header */
+ attrset(A_REVERSE); mvaddstr(0, 0, "Options Editor"); attrset(A_NORMAL);
+ for (i = 0; i < 2; i++) {
+ mvaddstr(OPT_START_ROW - 2, OPT_NAME_COL + (i * GROUP_OFFSET), "Name");
+ mvaddstr(OPT_START_ROW - 1, OPT_NAME_COL + (i * GROUP_OFFSET), "----");
+
+ mvaddstr(OPT_START_ROW - 2, OPT_VALUE_COL + (i * GROUP_OFFSET), "Value");
+ mvaddstr(OPT_START_ROW - 1, OPT_VALUE_COL + (i * GROUP_OFFSET), "-----");
+ }
+ /* And the footer */
+ mvprintw(OPT_END_ROW + 0, 0, "Use SPACE to select/toggle an option, arrow keys to move,");
+ mvprintw(OPT_END_ROW + 1, 0, "? or F1 for more help. When you're done, type Q to Quit.");
+
+ optrow = OPT_START_ROW;
+ optcol = OPT_NAME_COL;
+ for (i = 0; Options[i].name; i++) {
+ /* Names are painted somewhat gratuitously each time, but it's easier this way */
+ mvprintw(optrow, OPT_NAME_COL + optcol, Options[i].name);
+ if (currOpt == i) standout();
+ mvprintw(optrow++, OPT_VALUE_COL + optcol, value_of(Options[i]));
+ if (currOpt == i) standend();
+ if (optrow == OPT_END_ROW) {
+ optrow = OPT_START_ROW;
+ optcol += GROUP_OFFSET;
+ }
+ clrtoeol();
+ }
+ standout();
+ mvaddstr(OPT_END_ROW + 3, 0, Options[currOpt].desc);
+ standend();
+ clrtoeol();
+ move(0, 14);
+
+ /* Start the edit loop */
+ key = toupper(getch());
+ switch (key) {
+ case KEY_F(1):
+ case '?':
+ systemDisplayHelp("options");
+ break;
+
+ case KEY_UP:
+ if (currOpt)
+ --currOpt;
+ else
+ beep();
+ continue;
+
+ case KEY_DOWN:
+ if (Options[currOpt + 1].name)
+ ++currOpt;
+ else
+ beep();
+ continue;
+
+ case KEY_HOME:
+ currOpt = 0;
+ continue;
+
+ case KEY_END:
+ while (Options[currOpt + 1].name)
+ ++currOpt;
+ continue;
+
+ case ' ':
+ dialog_clear();
+ fire(Options[currOpt]);
+ dialog_clear();
+ clear();
+ continue;
+
+ case 'Q':
+ clear();
+ dialog_clear();
+ return RET_SUCCESS;
+
+ default:
+ beep();
+ }
+ }
+ /* NOTREACHED */
+ return RET_SUCCESS;
+}
diff --git a/release/sysinstall/package.c b/release/sysinstall/package.c
new file mode 100644
index 0000000..c2eb285
--- /dev/null
+++ b/release/sysinstall/package.c
@@ -0,0 +1,200 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last program in the `sysinstall' line - the next
+ * generation being essentially a complete rewrite.
+ *
+ * $Id: package.c,v 1.8 1995/10/21 20:03:07 jkh Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <sys/errno.h>
+#include <sys/param.h>
+#include <sys/mount.h>
+#include <sys/stat.h>
+#include "sysinstall.h"
+
+static char *make_playpen(char *pen, size_t sz);
+
+/* Extract a package based on a namespec and a media device */
+int
+package_extract(Device *dev, char *name)
+{
+ char path[511];
+ char pen[FILENAME_MAX];
+ char *where;
+ int i, fd, ret;
+
+ /* Check to make sure it's not already there */
+ if (!vsystem("pkg_info -e %s", name))
+ return RET_SUCCESS;
+
+ if (!dev->init(dev)) {
+ msgConfirm("Unable to initialize media type for package add.");
+ return RET_FAIL;
+ }
+
+ ret = RET_FAIL;
+ sprintf(path, "packages/All/%s%s", name, strstr(name, ".tgz") ? "" : ".tgz");
+ msgDebug("pkg_extract: Attempting to fetch %s\n", path);
+ fd = dev->get(dev, path, TRUE);
+ if (fd >= 0) {
+ pid_t tpid;
+
+ msgNotify("Fetching %s from %s", path, dev->name);
+ pen[0] = '\0';
+ if ((where = make_playpen(pen, 0)) != NULL) {
+ if (isDebug())
+ msgDebug("Working in temporary directory %s, will return to %s\n", pen, where);
+ tpid = fork();
+ if (!tpid) {
+ dup2(fd, 0);
+ i = vsystem("tar %s-xzf -", !strcmp(variable_get(VAR_CPIO_VERBOSITY), "high") ? "-v " : "");
+ if (isDebug())
+ msgDebug("tar command returns %d status\n", i);
+ exit(i);
+ }
+ else {
+ int pstat;
+
+ tpid = waitpid(tpid, &pstat, 0);
+ if (vsystem("(pwd; cat +CONTENTS) | pkg_add %s-S",
+ !strcmp(variable_get(VAR_CPIO_VERBOSITY), "high") ? "-v " : ""))
+ msgConfirm("An error occurred while trying to pkg_add %s.\n"
+ "Please check debugging screen for possible further details.", path);
+ else
+ ret = RET_SUCCESS;
+ close(fd);
+ }
+ if (chdir(where) == -1)
+ msgFatal("Unable to get back to where I was before, Jojo! (That was: %s)", where);
+ vsystem("rm -rf %s", pen);
+ if (isDebug())
+ msgDebug("Nuked pen: %s\n", pen);
+ }
+ else
+ msgConfirm("Unable to find a temporary location to unpack this stuff in.\n"
+ "You must simply not have enough space or you've configured your\n"
+ "system oddly. Sorry!");
+ dev->close(dev, fd);
+ if (dev->type == DEVICE_TYPE_TAPE)
+ unlink(path);
+ }
+ else
+ msgDebug("pkg_extract: get operation returned %d\n", fd);
+ return ret;
+}
+
+static size_t
+min_free(char *tmpdir)
+{
+ struct statfs buf;
+
+ if (statfs(tmpdir, &buf) != 0) {
+ msgDebug("Error in statfs, errno = %d\n", errno);
+ return -1;
+ }
+ return buf.f_bavail * buf.f_bsize;
+}
+
+/* Find a good place to play. */
+static char *
+find_play_pen(char *pen, size_t sz)
+{
+ struct stat sb;
+
+ if (pen[0] && stat(pen, &sb) != RET_FAIL && (min_free(pen) >= sz))
+ return pen;
+ else if (stat("/var/tmp", &sb) != RET_FAIL && min_free("/var/tmp") >= sz)
+ strcpy(pen, "/var/tmp/instmp.XXXXXX");
+ else if (stat("/tmp", &sb) != RET_FAIL && min_free("/tmp") >= sz)
+ strcpy(pen, "/tmp/instmp.XXXXXX");
+ else if ((stat("/usr/tmp", &sb) == RET_SUCCESS || mkdir("/usr/tmp", 01777) == RET_SUCCESS) &&
+ min_free("/usr/tmp") >= sz)
+ strcpy(pen, "/usr/tmp/instmp.XXXXXX");
+ else {
+ msgConfirm("Can't find enough temporary space to extract the files, please try\n"
+ "This again after your system is up (you can run /stand/sysinstall\n"
+ "directly) and you've had a chance to point /var/tmp somewhere with\n"
+ "sufficient temporary space available.");
+ return NULL;
+ }
+ return pen;
+}
+
+/*
+ * Make a temporary directory to play in and chdir() to it, returning
+ * pathname of previous working directory.
+ */
+static char *
+make_playpen(char *pen, size_t sz)
+{
+ static char Previous[FILENAME_MAX];
+
+ if (!find_play_pen(pen, sz))
+ return NULL;
+
+ if (!mktemp(pen)) {
+ msgConfirm("Can't mktemp '%s'.", pen);
+ return NULL;
+ }
+ if (mkdir(pen, 0755) == RET_FAIL) {
+ msgConfirm("Can't mkdir '%s'.", pen);
+ return NULL;
+ }
+ if (isDebug()) {
+ if (sz)
+ msgDebug("Requested space: %d bytes, free space: %d bytes in %s\n", (int)sz, min_free(pen), pen);
+ }
+ if (min_free(pen) < sz) {
+ rmdir(pen);
+ msgConfirm("Not enough free space to create: `%s'\n"
+ "Please try this again after your system is up (you can run\n"
+ "/stand/sysinstall directly) and you've had a chance to point\n"
+ "/var/tmp somewhere with sufficient temporary space available.");
+ return NULL;
+ }
+ if (!getcwd(Previous, FILENAME_MAX)) {
+ msgConfirm("getcwd");
+ return NULL;
+ }
+ if (chdir(pen) == RET_FAIL)
+ msgConfirm("Can't chdir to '%s'.", pen);
+ return Previous;
+}
diff --git a/release/sysinstall/rtermcap.c b/release/sysinstall/rtermcap.c
new file mode 100644
index 0000000..84b3feb
--- /dev/null
+++ b/release/sysinstall/rtermcap.c
@@ -0,0 +1,15 @@
+#include <stdio.h>
+#include <termcap.h>
+
+int
+main(int argc, char **argv)
+{
+ char buf[4096];
+ int i;
+
+ if (argc < 2)
+ return 1;
+ i = tgetent(buf, argv[1]);
+ printf("%s",buf);
+ return 0;
+}
diff --git a/release/sysinstall/sysinstall.h b/release/sysinstall/sysinstall.h
new file mode 100644
index 0000000..b1b1ba3
--- /dev/null
+++ b/release/sysinstall/sysinstall.h
@@ -0,0 +1,510 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last attempt in the `sysinstall' line, the next
+ * generation being slated to essentially a complete rewrite.
+ *
+ * $Id: sysinstall.h,v 1.42.2.1 1995/07/21 10:54:06 rgrimes Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#ifndef _SYSINSTALL_H_INCLUDE
+#define _SYSINSTALL_H_INCLUDE
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <dialog.h>
+#include "libdisk.h"
+#include "dist.h"
+
+/*** Defines ***/
+
+/* Bitfields for menu options */
+#define DMENU_NORMAL_TYPE 0x1 /* Normal dialog menu */
+#define DMENU_RADIO_TYPE 0x2 /* Radio dialog menu */
+#define DMENU_MULTIPLE_TYPE 0x4 /* Multiple choice menu */
+#define DMENU_SELECTION_RETURNS 0x8 /* Select item then exit */
+#define DMENU_CALL_FIRST 0x10 /* In multiple, use one handler */
+
+/* variable limits */
+#define VAR_NAME_MAX 128
+#define VAR_VALUE_MAX 1024
+
+/* device limits */
+#define DEV_NAME_MAX 128 /* The maximum length of a device name */
+#define DEV_MAX 200 /* The maximum number of devices we'll deal with */
+#define INTERFACE_MAX 50 /* Maximum number of network interfaces we'll deal with */
+#define MAX_FTP_RETRIES 3 /* How many times to beat our heads against the wall */
+
+/*
+ * I make some pretty gross assumptions about having a max of 50 chunks
+ * total - 8 slices and 42 partitions. I can't easily display many more
+ * than that on the screen at once!
+ *
+ * For 2.1 I'll revisit this and try to make it more dynamic, but since
+ * this will catch 99.99% of all possible cases, I'm not too worried.
+ */
+#define MAX_CHUNKS 50
+
+/* Internal flag variables */
+#define DISK_PARTITIONED "_diskPartitioned"
+#define DISK_LABELLED "_diskLabelled"
+#define RUNNING_ON_ROOT "_runningOnRoot"
+#define TCP_CONFIGURED "_tcpConfigured"
+
+#define FTP_USER "_ftpUser"
+#define FTP_PASS "_ftpPass"
+
+#define OPT_NO_CONFIRM 0x0001
+#define OPT_NFS_SECURE 0x0002
+#define OPT_DEBUG 0x0004
+#define OPT_FTP_ACTIVE 0x0008
+#define OPT_FTP_PASSIVE 0x0010
+#define OPT_FTP_RESELECT 0x0020
+#define OPT_FTP_ABORT 0x0040
+#define OPT_SLOW_ETHER 0x0080
+#define OPT_EXPLORATORY_GET 0x0100
+#define OPT_LEAVE_NETWORK_UP 0x0200
+
+#define VAR_HOSTNAME "hostname"
+#define VAR_DOMAINNAME "domainname"
+#define VAR_NAMESERVER "nameserver"
+#define VAR_GATEWAY "defaultrouter"
+#define VAR_IPADDR "ipaddr"
+
+#define VAR_IFCONFIG "ifconfig_"
+#define VAR_INTERFACES "network_interfaces"
+
+/* The help file for the TCP/IP setup screen */
+#define TCP_HELPFILE "tcp"
+
+/*** Types ***/
+typedef unsigned int Boolean;
+typedef struct disk Disk;
+typedef struct chunk Chunk;
+
+typedef enum {
+ DMENU_DISPLAY_FILE, /* Display a file's contents */
+ DMENU_SUBMENU, /* Recurse into another menu */
+ DMENU_SYSTEM_COMMAND, /* Run shell commmand */
+ DMENU_SYSTEM_COMMAND_BOX, /* Same as above, but in prgbox */
+ DMENU_SET_VARIABLE, /* Set an environment/system var */
+ DMENU_SET_FLAG, /* Set flag in an unsigned int */
+ DMENU_SET_VALUE, /* Set unsigned int to value */
+ DMENU_CALL, /* Call back a C function */
+ DMENU_CANCEL, /* Cancel out of this menu */
+ DMENU_NOP, /* Do nothing special for item */
+} DMenuItemType;
+
+typedef struct _dmenuItem {
+ char *title; /* Our title */
+ char *prompt; /* Our prompt */
+ DMenuItemType type; /* What type of item we are */
+ void *ptr; /* Generic data ptr */
+ u_long parm; /* Parameter for above */
+ Boolean disabled; /* Are we temporarily disabled? */
+ char * (*check)(struct _dmenuItem *); /* Our state */
+} DMenuItem;
+
+typedef struct _dmenu {
+ unsigned int options; /* What sort of menu we are */
+ char *title; /* Our title */
+ char *prompt; /* Our prompt */
+ char *helpline; /* Line of help at bottom */
+ char *helpfile; /* Help file for "F1" */
+ DMenuItem items[0]; /* Array of menu items */
+} DMenu;
+
+/* A sysconfig variable */
+typedef struct _variable {
+ struct _variable *next;
+ char name[VAR_NAME_MAX];
+ char value[VAR_VALUE_MAX];
+} Variable;
+
+#define MAX_ATTRIBS 200
+#define MAX_NAME 511
+#define MAX_VALUE 4095
+
+typedef struct _attribs {
+ char *name;
+ char *value;
+} Attribs;
+
+typedef enum {
+ DEVICE_TYPE_NONE,
+ DEVICE_TYPE_DISK,
+ DEVICE_TYPE_FLOPPY,
+ DEVICE_TYPE_FTP,
+ DEVICE_TYPE_NETWORK,
+ DEVICE_TYPE_CDROM,
+ DEVICE_TYPE_TAPE,
+ DEVICE_TYPE_DOS,
+ DEVICE_TYPE_UFS,
+ DEVICE_TYPE_NFS,
+ DEVICE_TYPE_ANY,
+} DeviceType;
+
+/* A "device" from sysinstall's point of view */
+typedef struct _device {
+ char name[DEV_NAME_MAX];
+ char *description;
+ char *devname;
+ DeviceType type;
+ Boolean enabled;
+ Boolean (*init)(struct _device *dev);
+ int (*get)(struct _device *dev, char *file, Attribs *dist_attrs);
+ Boolean (*close)(struct _device *dev, int fd);
+ void (*shutdown)(struct _device *dev);
+ void *private;
+ unsigned int flags;
+} Device;
+
+/* Some internal representations of partitions */
+typedef enum {
+ PART_NONE,
+ PART_SLICE,
+ PART_SWAP,
+ PART_FILESYSTEM,
+ PART_FAT,
+} PartType;
+
+/* The longest newfs command we'll hand to system() */
+#define NEWFS_CMD_MAX 256
+
+typedef struct _part_info {
+ Boolean newfs;
+ char mountpoint[FILENAME_MAX];
+ char newfs_cmd[NEWFS_CMD_MAX];
+} PartInfo;
+
+typedef int (*commandFunc)(char *key, void *data);
+
+#define HOSTNAME_FIELD_LEN 256
+#define IPADDR_FIELD_LEN 16
+#define EXTRAS_FIELD_LEN 256
+
+/* This is the structure that Network devices carry around in their private, erm, structures */
+typedef struct _devPriv {
+ char ipaddr[IPADDR_FIELD_LEN];
+ char netmask[IPADDR_FIELD_LEN];
+ char extras[EXTRAS_FIELD_LEN];
+} DevInfo;
+
+
+/*** Externs ***/
+extern int DebugFD; /* Where diagnostic output goes */
+extern Boolean SystemWasInstalled; /* Did we install it? */
+extern Boolean RunningAsInit; /* Are we running stand-alone? */
+extern Boolean DialogActive; /* Is the dialog() stuff up? */
+extern Boolean ColorDisplay; /* Are we on a color display? */
+extern Boolean OnVTY; /* On a syscons VTY? */
+extern Variable *VarHead; /* The head of the variable chain */
+extern Device *mediaDevice; /* Where we're getting our distribution from */
+extern unsigned int Dists; /* Which distributions we want */
+extern unsigned int DESDists; /* Which naughty distributions we want */
+extern unsigned int SrcDists; /* Which src distributions we want */
+extern unsigned int XF86Dists; /* Which XFree86 dists we want */
+extern unsigned int XF86ServerDists; /* The XFree86 servers we want */
+extern unsigned int XF86FontDists; /* The XFree86 fonts we want */
+extern unsigned int OptFlags; /* Global options */
+extern int BootMgr; /* Which boot manager to use */
+extern char *InstallPrefix; /* A location bias */
+
+
+extern DMenu MenuInitial; /* Initial installation menu */
+extern DMenu MenuMBRType; /* Type of MBR to write on the disk */
+extern DMenu MenuConfigure; /* Final configuration menu */
+extern DMenu MenuDocumentation; /* Documentation menu */
+extern DMenu MenuFTPOptions; /* FTP Installation options */
+extern DMenu MenuOptions; /* Installation options */
+extern DMenu MenuOptionsLanguage; /* Language options menu */
+extern DMenu MenuMedia; /* Media type menu */
+extern DMenu MenuMediaCDROM; /* CDROM media menu */
+extern DMenu MenuMediaDOS; /* DOS media menu */
+extern DMenu MenuMediaFloppy; /* Floppy media menu */
+extern DMenu MenuMediaFTP; /* FTP media menu */
+extern DMenu MenuMediaTape; /* Tape media menu */
+extern DMenu MenuNetworkDevice; /* Network device menu */
+extern DMenu MenuNTP; /* NTP time server menu */
+extern DMenu MenuSyscons; /* System console configuration menu */
+extern DMenu MenuSysconsKeymap; /* System console keymap configuration menu */
+extern DMenu MenuSysconsKeyrate; /* System console keyrate configuration menu */
+extern DMenu MenuSysconsSaver; /* System console saver configuration menu */
+extern DMenu MenuNetworking; /* Network configuration menu */
+extern DMenu MenuInstallCustom; /* Custom Installation menu */
+extern DMenu MenuInstallType; /* Installation type menu */
+extern DMenu MenuDistributions; /* Distribution menu */
+extern DMenu MenuDESDistributions; /* DES distribution menu */
+extern DMenu MenuSrcDistributions; /* Source distribution menu */
+extern DMenu MenuXF86; /* XFree86 main menu */
+extern DMenu MenuXF86Select; /* XFree86 distribution selection menu */
+extern DMenu MenuXF86SelectCore; /* XFree86 core distribution menu */
+extern DMenu MenuXF86SelectServer; /* XFree86 server distribution menu */
+extern DMenu MenuXF86SelectFonts; /* XFree86 font selection menu */
+extern DMenu MenuDiskDevices; /* Disk devices menu */
+
+
+/*** Prototypes ***/
+
+/* attrs.c */
+extern const char *attr_match(Attribs *attr, char *name);
+extern int attr_parse(Attribs **attr, char *file);
+
+/* cdrom.c */
+extern Boolean mediaInitCDROM(Device *dev);
+extern int mediaGetCDROM(Device *dev, char *file, Attribs *dist_attrs);
+extern void mediaShutdownCDROM(Device *dev);
+
+/* command.c */
+extern void command_clear(void);
+extern void command_sort(void);
+extern void command_execute(void);
+extern void command_shell_add(char *key, char *fmt, ...);
+extern void command_func_add(char *key, commandFunc func, void *data);
+
+/* config.c */
+extern void configFstab(void);
+extern void configSysconfig(void);
+extern void configResolv(void);
+extern int configPorts(char *str);
+extern int configPackages(char *str);
+extern int configSaverTimeout(char *str);
+extern int configNTP(char *str);
+extern int configRoutedFlags(char *str);
+
+/* crc.c */
+extern int crc(int, unsigned long *, unsigned long *);
+
+/* decode.c */
+extern DMenuItem *decode(DMenu *menu, char *name);
+extern Boolean dispatch(DMenuItem *tmp, char *name);
+extern Boolean decode_and_dispatch_multiple(DMenu *menu, char *names);
+
+/* devices.c */
+extern DMenu *deviceCreateMenu(DMenu *menu, DeviceType type, int (*hook)());
+extern void deviceGetAll(void);
+extern Device **deviceFind(char *name, DeviceType type);
+extern int deviceCount(Device **devs);
+extern Device *new_device(char *name);
+extern Device *deviceRegister(char *name, char *desc, char *devname, DeviceType type, Boolean enabled,
+ Boolean (*init)(Device *mediadev), int (*get)(Device *dev, char *file, Attribs *dist_attrs),
+ Boolean (*close)(Device *mediadev, int fd), void (*shutDown)(Device *mediadev),
+ void *private);
+extern Boolean dummyInit(Device *dev);
+extern int dummyGet(Device *dev, char *dist, Attribs *dist_attrs);
+extern Boolean dummyClose(Device *dev, int fd);
+extern void dummyShutdown(Device *dev);
+
+/* disks.c */
+extern int diskPartitionEditor(char *unused);
+extern int diskPartitionWrite(char *unused);
+
+/* dist.c */
+extern int distReset(char *str);
+extern int distSetDeveloper(char *str);
+extern int distSetXDeveloper(char *str);
+extern int distSetKernDeveloper(char *str);
+extern int distSetUser(char *str);
+extern int distSetXUser(char *str);
+extern int distSetMinimum(char *str);
+extern int distSetEverything(char *str);
+extern int distSetDES(char *str);
+extern int distSetSrc(char *str);
+extern int distSetXF86(char *str);
+extern int distExtractAll(char *str);
+
+/* dmenu.c */
+extern Boolean dmenuOpen(DMenu *menu, int *choice, int *scroll, int *curr, int *max);
+extern Boolean dmenuOpenSimple(DMenu *menu);
+extern char *dmenuVarCheck(DMenuItem *item);
+extern char *dmenuFlagCheck(DMenuItem *item);
+extern char *dmenuRadioCheck(DMenuItem *item);
+
+/* dos.c */
+extern Boolean mediaInitDOS(Device *dev);
+extern int mediaGetDOS(Device *dev, char *file, Attribs *dist_attrs);
+extern void mediaShutdownDOS(Device *dev);
+
+/* floppy.c */
+extern int getRootFloppy(void);
+extern Boolean mediaInitFloppy(Device *dev);
+extern int mediaGetFloppy(Device *dev, char *file, Attribs *dist_attrs);
+extern void mediaShutdownFloppy(Device *dev);
+
+/* ftp_strat.c */
+extern Boolean mediaCloseFTP(Device *dev, int fd);
+extern Boolean mediaInitFTP(Device *dev);
+extern int mediaGetFTP(Device *dev, char *file, Attribs *dist_attrs);
+extern void mediaShutdownFTP(Device *dev);
+extern int mediaSetFtpUserPass(char *str);
+
+/* globals.c */
+extern void globalsInit(void);
+
+/* install.c */
+extern int installCommit(char *str);
+extern int installExpress(char *str);
+extern Boolean installFilesystems(void);
+
+/* lang.c */
+extern void lang_set_Danish(char *str);
+extern void lang_set_Dutch(char *str);
+extern void lang_set_English(char *str);
+extern void lang_set_French(char *str);
+extern void lang_set_German(char *str);
+extern void lang_set_Italian(char *str);
+extern void lang_set_Japanese(char *str);
+extern void lang_set_Norwegian(char *str);
+extern void lang_set_Russian(char *str);
+extern void lang_set_Spanish(char *str);
+extern void lang_set_Swedish(char *str);
+
+/* label.c */
+extern int diskLabelEditor(char *str);
+extern int diskLabelCommit(char *str);
+
+/* makedevs.c (auto-generated) */
+extern const char termcap_vt100[];
+extern const char termcap_cons25[];
+extern const char termcap_cons25_m[];
+extern const char termcap_cons25r[];
+extern const char termcap_cons25r_m[];
+extern const char termcap_cons25l1[];
+extern const char termcap_cons25l1_m[];
+extern const u_char font_iso_8x16[];
+extern const u_char font_cp850_8x16[];
+extern const u_char font_cp866_8x16[];
+extern const u_char koi8_r2cp866[];
+extern u_char default_scrnmap[];
+
+/* media.c */
+extern int mediaSetCDROM(char *str);
+extern int mediaSetFloppy(char *str);
+extern int mediaSetDOS(char *str);
+extern int mediaSetTape(char *str);
+extern int mediaSetFTP(char *str);
+extern int mediaSetFTPActive(char *str);
+extern int mediaSetFTPPassive(char *str);
+extern int mediaSetUFS(char *str);
+extern int mediaSetNFS(char *str);
+extern Boolean mediaGetType(void);
+extern Boolean mediaExtractDist(char *dir, int fd);
+extern Boolean mediaExtractDistBegin(char *dir, int *fd, int *zpid, int *cpic);
+extern Boolean mediaExtractDistEnd(int zpid, int cpid);
+extern Boolean mediaVerify(void);
+
+/* misc.c */
+extern Boolean file_readable(char *fname);
+extern Boolean file_executable(char *fname);
+extern char *string_concat(char *p1, char *p2);
+extern char *string_prune(char *str);
+extern char *string_skipwhite(char *str);
+extern void safe_free(void *ptr);
+extern void *safe_malloc(size_t size);
+extern void *safe_realloc(void *orig, size_t size);
+extern char **item_add(char **list, char *item, int *curr, int *max);
+extern char **item_add_pair(char **list, char *item1, char *item2,
+ int *curr, int *max);
+extern void items_free(char **list, int *curr, int *max);
+extern int Mkdir(char *, void *data);
+extern int Mount(char *, void *data);
+
+/* msg.c */
+extern Boolean isDebug(void);
+extern void msgInfo(char *fmt, ...);
+extern void msgYap(char *fmt, ...);
+extern void msgWarn(char *fmt, ...);
+extern void msgDebug(char *fmt, ...);
+extern void msgError(char *fmt, ...);
+extern void msgFatal(char *fmt, ...);
+extern void msgConfirm(char *fmt, ...);
+extern void msgNotify(char *fmt, ...);
+extern void msgWeHaveOutput(char *fmt, ...);
+extern int msgYesNo(char *fmt, ...);
+extern char *msgGetInput(char *buf, char *fmt, ...);
+
+/* network.c */
+extern Boolean mediaInitNetwork(Device *dev);
+extern void mediaShutdownNetwork(Device *dev);
+
+/* nfs.c */
+extern Boolean mediaInitNFS(Device *dev);
+extern int mediaGetNFS(Device *dev, char *file, Attribs *dist_attrs);
+extern void mediaShutdownNFS(Device *dev);
+
+/* system.c */
+extern void systemInitialize(int argc, char **argv);
+extern void systemShutdown(void);
+extern int systemExecute(char *cmd);
+extern int systemDisplayFile(char *file);
+extern char *systemHelpFile(char *file, char *buf);
+extern void systemChangeFont(const u_char font[]);
+extern void systemChangeLang(char *lang);
+extern void systemChangeTerminal(char *color, const u_char c_termcap[],
+ char *mono, const u_char m_termcap[]);
+extern void systemChangeScreenmap(const u_char newmap[]);
+extern int vsystem(char *fmt, ...);
+
+/* tape.c */
+extern Boolean mediaInitTape(Device *dev);
+extern int mediaGetTape(Device *dev, char *file, Attribs *dist_attrs);
+extern void mediaShutdownTape(Device *dev);
+
+/* tcpip.c */
+extern int tcpOpenDialog(Device *dev);
+extern int tcpMenuSelect(char *str);
+extern Boolean tcpDeviceSelect(void);
+
+/* termcap.c */
+extern int set_termcap(void);
+
+/* ufs.c */
+extern void mediaShutdownUFS(Device *dev);
+extern Boolean mediaInitUFS(Device *dev);
+extern int mediaGetUFS(Device *dev, char *file, Attribs *dist_attrs);
+
+/* variables.c */
+extern void variable_set(char *var);
+extern void variable_set2(char *name, char *value);
+
+/* wizard.c */
+extern void slice_wizard(Disk *d);
+
+#endif
+/* _SYSINSTALL_H_INCLUDE */
diff --git a/release/sysinstall/system.c b/release/sysinstall/system.c
new file mode 100644
index 0000000..880dff9
--- /dev/null
+++ b/release/sysinstall/system.c
@@ -0,0 +1,264 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last program in the `sysinstall' line - the next
+ * generation being essentially a complete rewrite.
+ *
+ * $Id: system.c,v 1.44 1995/06/11 19:30:10 rgrimes Exp $
+ *
+ * Jordan Hubbard
+ *
+ * My contributions are in the public domain.
+ *
+ * Parts of this file are also blatently stolen from Poul-Henning Kamp's
+ * previous version of sysinstall, and as such fall under his "BEERWARE license"
+ * so buy him a beer if you like it! Buy him a beer for me, too!
+ * Heck, get him completely drunk and send me pictures! :-)
+ */
+
+#include "sysinstall.h"
+#include <signal.h>
+#include <sys/reboot.h>
+#include <machine/console.h>
+#include <sys/fcntl.h>
+#include <sys/ioctl.h>
+#include <sys/wait.h>
+
+/*
+ * Handle interrupt signals - this probably won't work in all cases
+ * due to our having bogotified the internal state of dialog or curses,
+ * but we'll give it a try.
+ */
+static void
+handle_intr(int sig)
+{
+ if (!msgYesNo("Are you sure you want to abort the installation?"))
+ systemShutdown();
+}
+
+/* Initialize system defaults */
+void
+systemInitialize(int argc, char **argv)
+{
+ int i;
+
+ signal(SIGINT, SIG_IGN);
+ globalsInit();
+
+ /* Are we running as init? */
+ if (getpid() == 1) {
+ setsid();
+ close(0); open("/dev/ttyv0", O_RDWR);
+ close(1); dup(0);
+ close(2); dup(0);
+ printf("%s running as init\n", argv[0]);
+
+ i = ioctl(0, TIOCSCTTY, (char *)NULL);
+ setlogin("root");
+ setenv("PATH", "/stand:/bin:/sbin:/usr/sbin:/usr/bin:/mnt/bin:/mnt/sbin:/mnt/usr/sbin:/mnt/usr/bin:/usr/X11R6/bin", 1);
+ setbuf(stdin, 0);
+ setbuf(stderr, 0);
+ }
+
+ if (set_termcap() == -1) {
+ printf("Can't find terminal entry\n");
+ exit(-1);
+ }
+
+ /* XXX - libdialog has particularly bad return value checking */
+ init_dialog();
+ /* If we haven't crashed I guess dialog is running ! */
+ DialogActive = TRUE;
+
+ signal(SIGINT, handle_intr);
+}
+
+/* Close down and prepare to exit */
+void
+systemShutdown(void)
+{
+ if (DialogActive) {
+ end_dialog();
+ DialogActive = FALSE;
+ }
+ /* REALLY exit! */
+ if (RunningAsInit) {
+ /* Put the console back */
+ ioctl(0, VT_ACTIVATE, 2);
+ reboot(RB_HALT);
+ }
+ else
+ exit(1);
+}
+
+/* Run some general command */
+int
+systemExecute(char *command)
+{
+ int status;
+
+ dialog_clear();
+ dialog_update();
+ end_dialog();
+ DialogActive = FALSE;
+ status = system(command);
+ DialogActive = TRUE;
+ dialog_clear();
+ dialog_update();
+ return status;
+}
+
+/* Display a file in a filebox */
+int
+systemDisplayFile(char *file)
+{
+ char *fname = NULL;
+ char buf[FILENAME_MAX];
+ WINDOW *w;
+
+ fname = systemHelpFile(file, buf);
+ if (!fname) {
+ snprintf(buf, FILENAME_MAX, "The %s file is not provided on this particular floppy image.", file);
+ use_helpfile(NULL);
+ use_helpline(NULL);
+ w = dupwin(newscr);
+ dialog_mesgbox("Sorry!", buf, -1, -1);
+ touchwin(w);
+ wrefresh(w);
+ delwin(w);
+ return 1;
+ }
+ else {
+ use_helpfile(NULL);
+ use_helpline(NULL);
+ w = dupwin(newscr);
+ dialog_textbox(file, fname, LINES, COLS);
+ touchwin(w);
+ wrefresh(w);
+ delwin(w);
+ }
+ return 0;
+}
+
+char *
+systemHelpFile(char *file, char *buf)
+{
+ if (!file)
+ return NULL;
+
+ snprintf(buf, FILENAME_MAX, "/stand/help/%s.hlp", file);
+ if (file_readable(buf))
+ return buf;
+ return NULL;
+}
+
+void
+systemChangeTerminal(char *color, const u_char c_term[],
+ char *mono, const u_char m_term[])
+{
+ extern void init_acs(void);
+
+ if (OnVTY) {
+ if (ColorDisplay) {
+ setenv("TERM", color, 1);
+ setenv("TERMCAP", c_term, 1);
+ reset_shell_mode();
+ setterm(color);
+ init_acs();
+ cbreak(); noecho();
+ }
+ else {
+ setenv("TERM", mono, 1);
+ setenv("TERMCAP", m_term, 1);
+ reset_shell_mode();
+ setterm(mono);
+ init_acs();
+ cbreak(); noecho();
+ }
+ }
+ clear();
+ refresh();
+ dialog_clear();
+}
+
+int
+vsystem(char *fmt, ...)
+{
+ va_list args;
+ int pstat;
+ pid_t pid;
+ int omask;
+ sig_t intsave, quitsave;
+ char *cmd,*p;
+ int i,magic=0;
+
+ cmd = (char *)malloc(FILENAME_MAX);
+ cmd[0] = '\0';
+ va_start(args, fmt);
+ vsnprintf(cmd, FILENAME_MAX, fmt, args);
+ va_end(args);
+
+ /* Find out if this command needs the wizardry of the shell */
+ for (p="<>|'`=\"()" ; *p; p++)
+ if (strchr(cmd, *p))
+ magic++;
+ omask = sigblock(sigmask(SIGCHLD));
+ if (isDebug())
+ msgDebug("Executing command `%s' (Magic=%d)\n", cmd, magic);
+ switch(pid = fork()) {
+ case -1: /* error */
+ (void)sigsetmask(omask);
+ i = 127;
+
+ case 0: /* child */
+ (void)sigsetmask(omask);
+ if (DebugFD != -1) {
+ if (OnVTY && isDebug())
+ msgInfo("Command output is on debugging screen - type ALT-F2 to see it");
+ dup2(DebugFD, 0);
+ dup2(DebugFD, 1);
+ dup2(DebugFD, 2);
+ }
+#ifdef NOT_A_GOOD_IDEA_CRUNCHED_BINARY
+ if (magic) {
+ char *argv[100];
+ i = 0;
+ argv[i++] = "crunch";
+ argv[i++] = "sh";
+ argv[i++] = "-c";
+ argv[i++] = cmd;
+ argv[i] = 0;
+ exit(crunched_main(i,argv));
+ } else {
+ char *argv[100];
+ i = 0;
+ argv[i++] = "crunch";
+ while (cmd && *cmd) {
+ argv[i] = strsep(&cmd," \t");
+ if (*argv[i])
+ i++;
+ }
+ argv[i] = 0;
+ if (crunched_here(argv[1]))
+ exit(crunched_main(i,argv));
+ else
+ execvp(argv[1],argv+1);
+ kill(getpid(),9);
+ }
+#else /* !CRUNCHED_BINARY */
+ execl("/stand/sh", "sh", "-c", cmd, (char *)NULL);
+ kill(getpid(),9);
+#endif /* CRUNCHED_BINARY */
+ }
+ intsave = signal(SIGINT, SIG_IGN);
+ quitsave = signal(SIGQUIT, SIG_IGN);
+ pid = waitpid(pid, &pstat, 0);
+ (void)sigsetmask(omask);
+ (void)signal(SIGINT, intsave);
+ (void)signal(SIGQUIT, quitsave);
+ i = (pid == -1) ? -1 : WEXITSTATUS(pstat);
+ if (isDebug())
+ msgDebug("Command `%s' returns status of %d\n", cmd, i);
+ free(cmd);
+ return i;
+}
diff --git a/release/sysinstall/tape.c b/release/sysinstall/tape.c
new file mode 100644
index 0000000..bf72d8b
--- /dev/null
+++ b/release/sysinstall/tape.c
@@ -0,0 +1,100 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last attempt in the `sysinstall' line, the next
+ * generation being slated to essentially a complete rewrite.
+ *
+ * $Id: tape.c,v 1.6 1995/06/11 19:30:11 rgrimes Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+/* These routines deal with getting things off of tape media */
+
+#include "sysinstall.h"
+#include <sys/fcntl.h>
+#include <sys/param.h>
+
+static Boolean tapeInitted;
+
+Boolean
+mediaInitTape(Device *dev)
+{
+ int i;
+
+ if (tapeInitted)
+ return TRUE;
+
+ Mkdir(dev->private, NULL);
+ if (chdir(dev->private))
+ return FALSE;
+ msgConfirm("Insert tape into %s and press return", dev->description);
+ msgNotify("Attempting to extract from %s...", dev->description);
+ if (!strcmp(dev->name, "ft0"))
+ i = vsystem("ft | cpio -iduVm -H tar");
+ else
+ i = vsystem("cpio -iduVm -H tar -I %s", dev->devname);
+ if (!i) {
+ tapeInitted = TRUE;
+ return TRUE;
+ }
+ else
+ msgConfirm("Tape extract command failed with status %d!", i);
+ return FALSE;
+}
+
+int
+mediaGetTape(Device *dev, char *file, Attribs *dist_attrs)
+{
+ char buf[PATH_MAX];
+
+ sprintf(buf, "%s/%s", (char *)dev->private, file);
+ if (file_readable(buf))
+ return open(buf, O_RDONLY);
+ sprintf(buf, "%s/dists/%s", (char *)dev->private, file);
+ return open(buf, O_RDONLY);
+}
+
+void
+mediaShutdownTape(Device *dev)
+{
+ if (!tapeInitted)
+ return;
+ if (!access(dev->private, X_OK)) {
+ msgNotify("Cleaning up results of tape extract..");
+ (void)vsystem("rm -rf %s", (char *)dev->private);
+ }
+ tapeInitted = FALSE;
+}
diff --git a/release/sysinstall/tcpip.c b/release/sysinstall/tcpip.c
new file mode 100644
index 0000000..eaab392
--- /dev/null
+++ b/release/sysinstall/tcpip.c
@@ -0,0 +1,486 @@
+/*
+ * $Id: tcpip.c,v 1.30.2.1 1995/07/21 10:02:59 rgrimes Exp $
+ *
+ * Copyright (c) 1995
+ * Gary J Palmer. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Gary J Palmer
+ * for the FreeBSD Project.
+ * 4. The name of Gary J Palmer or the FreeBSD Project may
+ * not be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY GARY J PALMER ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL GARY J PALMER BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/*
+ * All kinds of hacking also performed by jkh on this code. Don't
+ * blame Gary for every bogosity you see here.. :-)
+ *
+ * -jkh
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/param.h>
+#include <string.h>
+#include <dialog.h>
+#include "ui_objects.h"
+#include "dir.h"
+#include "dialog.priv.h"
+#include "colors.h"
+#include "rc.h"
+#include "sysinstall.h"
+
+/* These are nasty, but they make the layout structure a lot easier ... */
+
+static char hostname[HOSTNAME_FIELD_LEN], domainname[HOSTNAME_FIELD_LEN],
+ gateway[IPADDR_FIELD_LEN], nameserver[IPADDR_FIELD_LEN];
+static int okbutton, cancelbutton;
+static char ipaddr[IPADDR_FIELD_LEN], netmask[IPADDR_FIELD_LEN], extras[EXTRAS_FIELD_LEN];
+
+/* What the screen size is meant to be */
+#define TCP_DIALOG_Y 0
+#define TCP_DIALOG_X 8
+#define TCP_DIALOG_WIDTH COLS - 16
+#define TCP_DIALOG_HEIGHT LINES - 2
+
+/* The screen layout structure */
+typedef struct _layout {
+ int y; /* x & Y co-ordinates */
+ int x;
+ int len; /* The size of the dialog on the screen */
+ int maxlen; /* How much the user can type in ... */
+ char *prompt; /* The string for the prompt */
+ char *help; /* The display for the help line */
+ void *var; /* The var to set when this changes */
+ int type; /* The type of the dialog to create */
+ void *obj; /* The obj pointer returned by libdialog */
+} Layout;
+
+static Layout layout[] = {
+{ 1, 2, 25, HOSTNAME_FIELD_LEN - 1,
+ "Host name:", "Your fully-qualified hostname, e.g. foo.bar.com",
+ hostname, STRINGOBJ, NULL },
+#define LAYOUT_HOSTNAME 0
+{ 1, 35, 20, HOSTNAME_FIELD_LEN - 1,
+ "Domain name:",
+ "The name of the domain that your machine is in, e.g. bar.com",
+ domainname, STRINGOBJ, NULL },
+#define LAYOUT_DOMAINNAME 1
+{ 5, 2, 18, IPADDR_FIELD_LEN - 1,
+ "Gateway:",
+ "IP address of host forwarding packets to non-local destinations",
+ gateway, STRINGOBJ, NULL },
+#define LAYOUT_GATEWAY 2
+{ 5, 35, 18, IPADDR_FIELD_LEN - 1,
+ "Name server:", "IP address of your local DNS server",
+ nameserver, STRINGOBJ, NULL },
+#define LAYOUT_NAMESERVER 3
+{ 10, 10, 18, IPADDR_FIELD_LEN - 1,
+ "IP Address:",
+ "The IP address to be used for this interface",
+ ipaddr, STRINGOBJ, NULL },
+#define LAYOUT_IPADDR 5
+{ 10, 35, 18, IPADDR_FIELD_LEN - 1,
+ "Netmask:",
+ "The netmask for this interfaace, e.g. 0xffffff00 for a class C network",
+ netmask, STRINGOBJ, NULL },
+#define LAYOUT_NETMASK 6
+{ 14, 10, 37, HOSTNAME_FIELD_LEN - 1,
+ "Extra options to ifconfig:",
+ "Any interface-specific options to ifconfig you would like to use",
+ extras, STRINGOBJ, NULL },
+#define LAYOUT_EXTRAS 7
+{ 19, 15, 0, 0,
+ "OK", "Select this if you are happy with these settings",
+ &okbutton, BUTTONOBJ, NULL },
+#define LAYOUT_OKBUTTON 8
+{ 19, 35, 0, 0,
+ "CANCEL", "Select this if you wish to cancel this screen",
+ &cancelbutton, BUTTONOBJ, NULL },
+#define LAYOUT_CANCELBUTTON 9
+{ NULL },
+};
+
+#define _validByte(b) ((b) >= 0 && (b) <= 255)
+
+/* whine */
+static void
+feepout(char *msg)
+{
+ beep();
+ dialog_notify(msg);
+}
+
+/* Very basic IP address integrity check - could be drastically improved */
+static int
+verifyIP(char *ip)
+{
+ int a, b, c, d;
+
+ if (ip && sscanf(ip, "%d.%d.%d.%d", &a, &b, &c, &d) == 4 &&
+ _validByte(a) && _validByte(b) && _validByte(c) &&
+ _validByte(d) && (d != 255))
+ return 1;
+ else
+ return 0;
+}
+
+/* Check for the settings on the screen - the per interface stuff is
+ moved to the main handling code now to do it on the fly - sigh */
+
+static int
+verifySettings(void)
+{
+ if (!hostname[0])
+ feepout("Must specify a host name of some sort!");
+ else if (gateway[0] && !verifyIP(gateway))
+ feepout("Invalid gateway IP address specified");
+ else if (nameserver[0] && !verifyIP(nameserver))
+ feepout("Invalid name server IP address specified");
+ else if (netmask[0] && (netmask[0] < '0' && netmask[0] > '3'))
+ feepout("Invalid netmask value");
+ else if (ipaddr[0] && !verifyIP(ipaddr))
+ feepout("Invalid IP address");
+ else
+ return 1;
+ return 0;
+}
+
+/* This is it - how to get TCP setup values */
+int
+tcpOpenDialog(Device *devp)
+{
+ WINDOW *ds_win;
+ ComposeObj *obj = NULL;
+ ComposeObj *first, *last;
+ int n=0, quit=FALSE, cancel=FALSE, ret;
+ int max;
+ char *tmp;
+ char help[FILENAME_MAX];
+ char title[80];
+
+ /* We need a curses window */
+ ds_win = newwin(LINES, COLS, 0, 0);
+ if (ds_win == 0)
+ msgFatal("Cannot open TCP/IP dialog window!!");
+
+ /* Say where our help comes from */
+ systemHelpFile(TCP_HELPFILE, help);
+ use_helpfile(help);
+
+ /* Setup a nice screen for us to splat stuff onto */
+ draw_box(ds_win, TCP_DIALOG_Y, TCP_DIALOG_X, TCP_DIALOG_HEIGHT, TCP_DIALOG_WIDTH, dialog_attr, border_attr);
+ wattrset(ds_win, dialog_attr);
+ mvwaddstr(ds_win, TCP_DIALOG_Y, TCP_DIALOG_X + 20, " Network Configuration ");
+ draw_box(ds_win, TCP_DIALOG_Y + 9, TCP_DIALOG_X + 8, TCP_DIALOG_HEIGHT - 13, TCP_DIALOG_WIDTH - 17,
+ dialog_attr, border_attr);
+ wattrset(ds_win, dialog_attr);
+ sprintf(title, " Configuration for Interface %s ", devp->name);
+ mvwaddstr(ds_win, TCP_DIALOG_Y + 9, TCP_DIALOG_X + 14, title);
+
+ /* Initialise vars from previous device values */
+ if (devp->private) {
+ DevInfo *di = (DevInfo *)devp->private;
+
+ strcpy(ipaddr, di->ipaddr);
+ strcpy(netmask, di->netmask);
+ strcpy(extras, di->extras);
+ }
+ else
+ ipaddr[0] = netmask[0] = extras[0] = '\0';
+
+ /* Look up values already recorded with the system, or blank the string variables ready to accept some new data */
+ tmp = getenv(VAR_HOSTNAME);
+ if (tmp)
+ strcpy(hostname, tmp);
+ else
+ bzero(hostname, sizeof(hostname));
+ tmp = getenv(VAR_DOMAINNAME);
+ if (tmp)
+ strcpy(domainname, tmp);
+ else
+ bzero(domainname, sizeof(domainname));
+ tmp = getenv(VAR_GATEWAY);
+ if (tmp)
+ strcpy(gateway, tmp);
+ else
+ bzero(gateway, sizeof(gateway));
+ tmp = getenv(VAR_NAMESERVER);
+ if (tmp)
+ strcpy(nameserver, tmp);
+ else
+ bzero(nameserver, sizeof(nameserver));
+
+ /* Loop over the layout list, create the objects, and add them
+ onto the chain of objects that dialog uses for traversal*/
+ n = 0;
+#define lt layout[n]
+ while (lt.help != NULL) {
+ switch (lt.type) {
+ case STRINGOBJ:
+ lt.obj = NewStringObj(ds_win, lt.prompt, lt.var,
+ lt.y + TCP_DIALOG_Y, lt.x + TCP_DIALOG_X,
+ lt.len, lt.maxlen);
+ break;
+
+ case BUTTONOBJ:
+ lt.obj = NewButtonObj(ds_win, lt.prompt, lt.var,
+ lt.y + TCP_DIALOG_Y, lt.x + TCP_DIALOG_X);
+ break;
+
+ default:
+ msgFatal("Don't support this object yet!");
+ }
+ AddObj(&obj, lt.type, (void *) lt.obj);
+ n++;
+ }
+ max = n - 1;
+
+ /* Find the last object we can traverse to */
+ last = obj;
+ while (last->next)
+ last = last->next;
+
+ /* Find the first object in the list */
+ first = obj;
+ while (first->prev)
+ first = first->prev;
+
+ /* Some more initialisation before we go into the main input loop */
+ n = 0;
+ cancelbutton = okbutton = 0;
+
+ /* Incoming user data - DUCK! */
+ while (!quit) {
+ char help_line[80];
+ int i, len = strlen(lt.help);
+
+ /* Display the help line at the bottom of the screen */
+ for (i = 0; i < 79; i++)
+ help_line[i] = (i < len) ? lt.help[i] : ' ';
+ help_line[i] = '\0';
+ use_helpline(help_line);
+ display_helpline(ds_win, LINES - 1, COLS - 1);
+
+ /* Ask for libdialog to do its stuff */
+ ret = PollObj(&obj);
+
+ /* We are in the Hostname field - calculate the domainname */
+ if (n == 0) {
+ if ((tmp = index(hostname, '.')) != NULL) {
+ strncpy(domainname, tmp + 1, strlen(tmp + 1));
+ domainname[strlen(tmp+1)] = '\0';
+ RefreshStringObj(layout[1].obj);
+ }
+ }
+
+ /* Handle special case stuff that libdialog misses. Sigh */
+ switch (ret) {
+ /* Bail out */
+ case SEL_ESC:
+ quit = TRUE, cancel=TRUE;
+ break;
+
+ /* This doesn't work for list dialogs. Oh well. Perhaps
+ should special case the move from the OK button ``up''
+ to make it go to the interface list, but then it gets
+ awkward for the user to go back and correct screw up's
+ in the per-interface section */
+
+ case KEY_UP:
+ if (obj->prev !=NULL ) {
+ obj = obj->prev;
+ --n;
+ } else {
+ obj = last;
+ n = max;
+ }
+ break;
+
+ case KEY_DOWN:
+ if (obj->next != NULL) {
+ obj = obj->next;
+ ++n;
+ } else {
+ obj = first;
+ n = 0;
+ }
+ break;
+
+ case SEL_TAB:
+ if (n < max)
+ ++n;
+ else
+ n = 0;
+ break;
+
+ /* The user has pressed enter over a button object */
+ case SEL_BUTTON:
+ if (cancelbutton)
+ cancel = TRUE, quit = TRUE;
+ else {
+ if (verifySettings())
+ quit = TRUE;
+ }
+ break;
+
+ /* Generic CR handler */
+ case SEL_CR:
+ if (n < max)
+ ++n;
+ else
+ n = 0;
+ break;
+
+ case SEL_BACKTAB:
+ if (n)
+ --n;
+ else
+ n = max;
+ break;
+
+ case KEY_F(1):
+ display_helpfile();
+
+ /* They tried some key combination we don't support - tell them! */
+ default:
+ beep();
+ }
+
+ /* BODGE ALERT! */
+ if (((tmp = index(hostname, '.')) != NULL) && (strlen(domainname)==0)) {
+ strncpy(domainname, tmp + 1, strlen(tmp + 1));
+ domainname[strlen(tmp+1)] = '\0';
+ RefreshStringObj(layout[1].obj);
+ }
+ }
+
+ /* Clear this crap off the screen */
+ dialog_clear();
+ refresh();
+ use_helpfile(NULL);
+
+ /* We actually need to inform the rest of sysinstall about this
+ data now - if the user hasn't selected cancel, save the stuff
+ out to the environment via the variable_set layers */
+
+ if (!cancel) {
+ DevInfo *di;
+ char temp[512], ifn[64];
+ char *ifaces;
+
+ variable_set2(VAR_HOSTNAME, hostname);
+ if (domainname[0])
+ variable_set2(VAR_DOMAINNAME, domainname);
+ if (gateway[0])
+ variable_set2(VAR_GATEWAY, gateway);
+ if (nameserver[0])
+ variable_set2(VAR_NAMESERVER, nameserver);
+
+ if (!devp->private)
+ devp->private = (DevInfo *)malloc(sizeof(DevInfo));
+ di = devp->private;
+ strcpy(di->ipaddr, ipaddr);
+ strcpy(di->netmask, netmask);
+ strcpy(di->extras, extras);
+
+ sprintf(temp, "inet %s %s netmask %s", ipaddr, extras, netmask);
+ sprintf(ifn, "%s%s", VAR_IFCONFIG, devp->name);
+ variable_set2(ifn, temp);
+ ifaces = getenv(VAR_INTERFACES);
+ if (!ifaces)
+ variable_set2(VAR_INTERFACES, ifaces = "lo0");
+ /* Only add it if it's not there already */
+ if (!strstr(ifaces, devp->name)) {
+ sprintf(ifn, "%s %s", devp->name, ifaces);
+ variable_set2(VAR_INTERFACES, ifn);
+ }
+ if (ipaddr[0])
+ variable_set2(VAR_IPADDR, ipaddr);
+ return 0;
+ }
+ return 1;
+}
+
+static int
+netHook(char *str)
+{
+ Device **devs;
+
+ /* Clip garbage off the ends */
+ string_prune(str);
+ str = string_skipwhite(str);
+ if (!*str)
+ return 0;
+ devs = deviceFind(str, DEVICE_TYPE_NETWORK);
+ if (devs) {
+ tcpOpenDialog(devs[0]);
+ mediaDevice = devs[0];
+ }
+ return devs ? 1 : 0;
+}
+
+/* Get a network device */
+Boolean
+tcpDeviceSelect(void)
+{
+ DMenu *menu;
+ Device **devs;
+ int cnt;
+ int status;
+
+ devs = deviceFind(NULL, DEVICE_TYPE_NETWORK);
+ cnt = deviceCount(devs);
+ if (!cnt) {
+ msgConfirm("No network devices available!");
+ status = FALSE;
+ }
+ else if (cnt == 1) {
+ tcpOpenDialog(devs[0]);
+ mediaDevice = devs[0];
+ status = TRUE;
+ }
+ else {
+
+ menu = deviceCreateMenu(&MenuNetworkDevice, DEVICE_TYPE_NETWORK, netHook);
+ if (!menu)
+ msgFatal("Unable to create network device menu! Argh!");
+ status = dmenuOpenSimple(menu);
+ free(menu);
+ }
+ return status;
+}
+
+/* Do it from a menu that doesn't care about status */
+int
+tcpMenuSelect(char *str)
+{
+ (void)tcpDeviceSelect();
+ configResolv();
+ return 0;
+}
diff --git a/release/sysinstall/termcap.c b/release/sysinstall/termcap.c
new file mode 100644
index 0000000..3ab2088
--- /dev/null
+++ b/release/sysinstall/termcap.c
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 1994, Paul Richards.
+ *
+ * All rights reserved.
+ *
+ * This software may be used, modified, copied, distributed, and sold, in both
+ * source and binary form provided that the above copyright and these terms
+ * are retained, verbatim, as the first lines of this file. Under no
+ * circumstances is the author responsible for the proper functioning of this
+ * software, nor does the author assume any responsibility for damages
+ * incurred with its use.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdarg.h>
+#include <fcntl.h>
+#include <sys/errno.h>
+#include <sys/ioctl.h>
+#include <machine/console.h>
+
+#include "sysinstall.h"
+
+int
+set_termcap(void)
+{
+ char *term;
+ int stat;
+
+ OnVTY = RunningAsInit = FALSE;
+
+ term = getenv("TERM");
+ stat = ioctl(STDERR_FILENO, GIO_COLOR, &ColorDisplay);
+
+ if (getpid() != 1)
+ DebugFD = open("sysinstall.debug", O_WRONLY|O_CREAT|O_TRUNC, 0644);
+ else
+ RunningAsInit = TRUE;
+
+ if (stat < 0) {
+ if (!term) {
+ if (setenv("TERM", "vt100", 1) < 0)
+ return -1;
+ if (setenv("TERMCAP", termcap_vt100, 1) < 0)
+ return -1;
+ }
+ if (DebugFD == -1)
+ DebugFD = dup(1);
+ }
+ else {
+ int i, on;
+
+ DebugFD = open("/dev/ttyv1", O_WRONLY);
+ on = 1;
+ i = ioctl(DebugFD, TIOCCONS, (char *)&on);
+ msgDebug("ioctl(%d, TIOCCONS, NULL) = %d (%s)\n", DebugFD, i, !i ? "success" : strerror(errno));
+ OnVTY = TRUE;
+ if (ColorDisplay) {
+ if (!term) {
+ if (setenv("TERM", "cons25", 1) < 0)
+ return -1;
+ if (setenv("TERMCAP", termcap_cons25, 1) < 0)
+ return -1;
+ }
+ }
+ else {
+ if (!term) {
+ if (setenv("TERM", "cons25-m", 1) < 0)
+ return -1;
+ if (setenv("TERMCAP", termcap_cons25_m, 1) < 0)
+ return -1;
+ }
+ }
+ }
+ return 0;
+}
diff --git a/release/sysinstall/ufs.c b/release/sysinstall/ufs.c
new file mode 100644
index 0000000..5f68366
--- /dev/null
+++ b/release/sysinstall/ufs.c
@@ -0,0 +1,62 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last attempt in the `sysinstall' line, the next
+ * generation being slated to essentially a complete rewrite.
+ *
+ * $Id: ufs.c,v 1.4.2.2 1995/06/05 12:04:09 jkh Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ * Copyright (c) 1995
+ * Gary J Palmer. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+#include <sys/fcntl.h>
+#include <sys/param.h>
+
+/* No init or shutdown routines necessary - all done in mediaSetUFS() */
+
+int
+mediaGetUFS(Device *dev, char *file, Attribs *dist_attrs)
+{
+ char buf[PATH_MAX];
+
+ snprintf(buf, PATH_MAX, "%s/%s", dev->private, file);
+ if (!access(buf, R_OK))
+ return open(buf, O_RDONLY);
+ snprintf(buf, PATH_MAX, "%s/dists/%s", dev->private, file);
+ return open(buf, O_RDONLY);
+}
diff --git a/release/sysinstall/variable.c b/release/sysinstall/variable.c
new file mode 100644
index 0000000..9cf6742
--- /dev/null
+++ b/release/sysinstall/variable.c
@@ -0,0 +1,90 @@
+/*
+ * The new sysinstall program.
+ *
+ * This is probably the last program in the `sysinstall' line - the next
+ * generation being essentially a complete rewrite.
+ *
+ * $Id: variable.c,v 1.5.2.2 1995/06/01 21:04:03 jkh Exp $
+ *
+ * Copyright (c) 1995
+ * Jordan Hubbard. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer,
+ * verbatim and that no modifications are made prior to this
+ * point in the file.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Jordan Hubbard
+ * for the FreeBSD Project.
+ * 4. The name of Jordan Hubbard or the FreeBSD project may not be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include "sysinstall.h"
+
+/* Routines for dealing with variable lists */
+
+static void
+make_variable(char *var, char *value)
+{
+ Variable *newvar;
+
+ /* First search to see if it's already there */
+ for (newvar = VarHead; newvar; newvar = newvar->next) {
+ if (!strcmp(newvar->name, var)) {
+ strncpy(newvar->value, value, VAR_VALUE_MAX);
+ setenv(var, value, 1);
+ return;
+ }
+ }
+ setenv(var, value, 1);
+ newvar = (Variable *)safe_malloc(sizeof(Variable));
+ strncpy(newvar->name, var, VAR_NAME_MAX);
+ strncpy(newvar->value, value, VAR_VALUE_MAX);
+ newvar->next = VarHead;
+ VarHead = newvar;
+ setenv(newvar->name, newvar->value, 1);
+ if (isDebug())
+ msgDebug("Setting variable %s to %s\n", newvar->name, newvar->value);
+}
+
+void
+variable_set(char *var)
+{
+ char tmp[VAR_NAME_MAX + VAR_VALUE_MAX], *cp;
+
+ strncpy(tmp, var, VAR_NAME_MAX + VAR_VALUE_MAX);
+ if ((cp = index(tmp, '=')) == NULL)
+ msgFatal("Invalid variable format: %s", var);
+ *(cp++) = '\0';
+ make_variable(tmp, cp);
+}
+
+void
+variable_set2(char *var, char *value)
+{
+ if (!var || !value)
+ msgFatal("Null name or value passed to set_variable2!");
+ make_variable(var, value);
+}
diff --git a/release/sysinstall/version.h b/release/sysinstall/version.h
new file mode 100644
index 0000000..b42c26e
--- /dev/null
+++ b/release/sysinstall/version.h
@@ -0,0 +1 @@
+#define RELEASE_NAME "__RELEASE"
diff --git a/release/sysinstall/wizard.c b/release/sysinstall/wizard.c
new file mode 100644
index 0000000..be6f9ee
--- /dev/null
+++ b/release/sysinstall/wizard.c
@@ -0,0 +1,232 @@
+/*
+ * ----------------------------------------------------------------------------
+ * "THE BEER-WARE LICENSE" (Revision 42):
+ * <phk@login.dknet.dk> wrote this file. As long as you retain this notice you
+ * can do whatever you want with this stuff. If we meet some day, and you think
+ * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
+ * ----------------------------------------------------------------------------
+ *
+ * $Id: wizard.c,v 1.5.2.1 1995/06/05 02:25:27 jkh Exp $
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <string.h>
+#include <err.h>
+#include <sys/types.h>
+#include "sysinstall.h"
+
+u_char mbr[] = {
+ 250,51,192,142,208,188,0,124,139,244,80,7,80,31,251,252,191,0,6,185,0,1,
+ 242,165,234,29,6,0,0,190,190,7,179,4,128,60,128,116,14,128,60,0,117,28,
+ 131,198,16,254,203,117,239,205,24,139,20,139,76,2,139,238,131,198,16,254,
+ 203,116,26,128,60,0,116,244,190,139,6,172,60,0,116,11,86,187,7,0,180,14,
+ 205,16,94,235,240,235,254,191,5,0,187,0,124,184,1,2,87,205,19,95,115,12,
+ 51,192,205,19,79,117,237,190,163,6,235,211,190,194,6,191,254,125,129,61,
+ 85,170,117,199,139,245,234,0,124,0,0,73,110,118,97,108,105,100,32,112,97,
+ 114,116,105,116,105,111,110,32,116,97,98,108,101,0,69,114,114,111,114,32,
+ 108,111,97,100,105,110,103,32,111,112,101,114,97,116,105,110,103,32,115,
+ 121,115,116,101,109,0,77,105,115,115,105,110,103,32,111,112,101,114,97,
+ 116,105,110,103,32,115,121,115,116,101,109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,
+ 1,1,0,4,15,63,60,63,0,0,0,241,239,0,0,0,0,1,61,5,15,63,243,48,240,0,0,144,
+ 208,2,0,0,0,1,244,165,15,63,170,192,192,3,0,144,208,2,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,85,170
+};
+
+u_char bteasy17[] = {
+ 51,192,142,192,142,216,142,208,188,0,124,252,139,244,191,0,6,185,0,1,242,
+ 165,234,96,6,0,0,139,213,88,162,72,7,60,53,116,28,180,16,246,228,5,174,
+ 4,150,246,68,4,255,116,62,198,4,128,232,218,0,138,116,1,139,76,2,235,8,
+ 232,207,0,185,1,0,50,209,187,0,124,184,1,2,205,19,114,30,129,191,254,1,
+ 85,170,117,22,234,0,124,0,0,128,250,129,116,2,178,128,139,234,66,128,242,
+ 179,136,22,58,7,191,190,7,185,4,0,198,6,45,7,49,50,246,136,45,138,69,4,
+ 60,0,116,35,60,5,116,31,254,198,190,42,7,232,113,0,190,72,7,70,70,139,28,
+ 10,255,116,5,50,125,4,117,243,141,183,114,7,232,90,0,131,199,16,254,6,45,
+ 7,226,203,128,62,117,4,2,116,11,190,59,7,10,246,117,10,205,24,235,172,190,
+ 42,7,232,57,0,232,54,0,50,228,205,26,139,218,131,195,96,180,1,205,22,180,
+ 0,117,11,205,26,59,211,114,242,160,72,7,235,10,205,22,138,196,60,28,116,
+ 243,4,246,60,49,114,214,60,53,119,210,80,190,40,7,187,27,6,83,252,172,80,
+ 36,127,180,14,205,16,88,168,128,116,242,195,86,184,1,3,187,0,6,185,1,0,
+ 50,246,205,19,94,198,6,72,7,63,195,13,138,13,10,70,48,32,46,32,46,32,46,
+ 160,100,105,115,107,32,49,13,10,10,68,101,102,97,117,108,116,58,32,70,63,
+ 160,0,1,0,4,0,6,3,7,7,10,10,99,14,100,14,101,20,128,20,129,25,130,30,147,
+ 36,165,39,159,43,117,47,82,47,219,50,64,55,242,61,0,100,111,243,72,80,70,
+ 211,79,115,178,85,110,105,248,78,111,118,101,108,236,77,105,110,105,248,
+ 76,105,110,117,248,65,109,111,101,98,225,66,83,196,66,83,68,233,80,67,73,
+ 216,67,80,205,86,101,110,105,248,68,111,115,115,101,227,63,191,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,85,170
+};
+
+int
+scan_block(int fd, daddr_t block)
+{
+ u_char foo[512];
+
+ if (-1 == lseek(fd,block * 512,SEEK_SET))
+ err(1,"lseek");
+ if (512 != read(fd,foo, 512))
+ return 1;
+ return 0;
+}
+
+void
+Scan_Disk(Disk *d)
+{
+ char device[64];
+ u_long l;
+ int i,j,fd;
+
+ strcpy(device,"/dev/r");
+ strcat(device,d->name);
+
+ fd = open(device,O_RDWR);
+ if (fd < 0) {
+ msgWarn("open(%s) failed", device);
+ return;
+ }
+ for(i=-1,l=0;;l++) {
+ j = scan_block(fd,l);
+ if (j != i) {
+ if (i == -1) {
+ printf("%c: %lu.",j ? 'B' : 'G', l);
+ fflush(stdout);
+ } else if (i == 0) {
+ printf(".%lu\nB: %lu.",l-1,l);
+ fflush(stdout);
+ } else {
+ printf(".%lu\nG: %lu.",l-1,l);
+ fflush(stdout);
+ }
+ i = j;
+ }
+ }
+ close(fd);
+}
+
+void
+slice_wizard(Disk *d)
+{
+ Disk *db;
+ char myprompt[BUFSIZ];
+ char input[BUFSIZ];
+ char *p,*q=0;
+ char **cp,*cmds[200];
+ int ncmd,i;
+
+ sprintf(myprompt,"%s> ", d->name);
+ while(1) {
+ printf("--==##==--\n");
+ Debug_Disk(d);
+ p = CheckRules(d);
+ if (p) {
+ printf("%s",p);
+ free(p);
+ }
+ printf(myprompt);
+ fflush(stdout);
+ q = p = fgets(input,sizeof(input),stdin);
+ if(!p)
+ break;
+ for(cp = cmds; (*cp = strsep(&p, " \t\n")) != NULL;)
+ if (**cp != '\0')
+ cp++;
+ ncmd = cp - cmds;
+ if(!ncmd)
+ continue;
+ if (!strcasecmp(*cmds,"quit")) { break; }
+ if (!strcasecmp(*cmds,"exit")) { break; }
+ if (!strcasecmp(*cmds,"q")) { break; }
+ if (!strcasecmp(*cmds,"x")) { break; }
+ if (!strcasecmp(*cmds,"delete") && ncmd == 2) {
+ printf("delete = %d\n",
+ Delete_Chunk(d,
+ (struct chunk *)strtol(cmds[1],0,0)));
+ continue;
+ }
+ if (!strcasecmp(*cmds,"allfreebsd")) {
+ All_FreeBSD(d);
+ continue;
+ }
+ if (!strcasecmp(*cmds,"bios") && ncmd == 4) {
+ Set_Bios_Geom(d,
+ strtol(cmds[1],0,0),
+ strtol(cmds[2],0,0),
+ strtol(cmds[3],0,0));
+ continue;
+ }
+ if (!strcasecmp(*cmds,"list")) {
+ cp = Disk_Names();
+ printf("Disks:");
+ for(i=0;cp[i];i++) {
+ printf(" %s",cp[i]);
+ free(cp[i]);
+ }
+ free(cp);
+ continue;
+ }
+ if (!strcasecmp(*cmds,"create") && ncmd == 6) {
+
+ printf("Create=%d\n",
+ Create_Chunk(d,
+ strtol(cmds[1],0,0),
+ strtol(cmds[2],0,0),
+ strtol(cmds[3],0,0),
+ strtol(cmds[4],0,0),
+ strtol(cmds[5],0,0)));
+ continue;
+ }
+ if (!strcasecmp(*cmds,"read")) {
+ db = d;
+ if (ncmd > 1)
+ d = Open_Disk(cmds[1]);
+ else
+ d = Open_Disk(d->name);
+ if (d)
+ Free_Disk(db);
+ else
+ d = db;
+ continue;
+ }
+ if (!strcasecmp(*cmds,"scan")) {
+ Scan_Disk(d);
+ continue;
+ }
+ if (!strcasecmp(*cmds,"write")) {
+ printf("Write=%d\n",
+ Write_Disk(d));
+ Free_Disk(d);
+ d = Open_Disk(d->name);
+ continue;
+ }
+ if (strcasecmp(*cmds,"help"))
+ printf("\007ERROR\n");
+ printf("CMDS:\n");
+ printf("allfreebsd\t\t");
+ printf("bios cyl hd sect\n");
+ printf("collapse [pointer]\t\t");
+ printf("create offset size enum subtype flags\n");
+ printf("subtype(part): swap=1, ffs=7\t\t");
+ printf("delete pointer\n");
+ printf("list\t\t");
+ printf("quit\n");
+ printf("read [disk]\t\t");
+ printf("scan\n");
+ printf("write\t\t");
+ printf("ENUM:\n\t");
+ for(i=0;chunk_n[i];i++)
+ printf("%d = %s%s",i,chunk_n[i],i == 4 ? "\n\t" : " ");
+ printf("\n");
+
+ }
+}
OpenPOWER on IntegriCloud