summaryrefslogtreecommitdiff
path: root/distrib
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>1995-10-18 08:53:40 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>1995-10-18 08:53:40 +0000
commitd6583bb2a13f329cf0332ef2570eb8bb8fc0e39c (patch)
treeece253b876159b39c620e62b6c9b1174642e070e /distrib
initial import of NetBSD tree
Diffstat (limited to 'distrib')
-rw-r--r--distrib/alpha/rz25dist/Makefile77
-rw-r--r--distrib/amiga/floppies/Makefile5
-rw-r--r--distrib/amiga/floppies/Makefile.inc4
-rw-r--r--distrib/amiga/floppies/inst-common/Makefile.inc48
-rw-r--r--distrib/amiga/floppies/inst-common/dot.commonutils123
-rw-r--r--distrib/amiga/floppies/inst-common/instbin.conf24
-rw-r--r--distrib/amiga/floppies/inst-common/list76
-rw-r--r--distrib/amiga/floppies/inst-common/mtree.conf72
-rw-r--r--distrib/amiga/floppies/inst-common/termcap.vt64
-rw-r--r--distrib/amiga/floppies/inst/Makefile8
-rw-r--r--distrib/amiga/floppies/inst/disktab.preinstall29
-rw-r--r--distrib/amiga/floppies/inst/dot.instutils152
-rw-r--r--distrib/amiga/floppies/inst/dot.profile56
-rw-r--r--distrib/amiga/floppies/inst/install.sh291
-rw-r--r--distrib/amiga/floppies/inst/list10
-rw-r--r--distrib/amiga/floppies/list2sh.awk39
-rw-r--r--distrib/amiga/floppies/runlist.sh13
-rw-r--r--distrib/amiga/floppies/upgr/Makefile8
-rw-r--r--distrib/amiga/floppies/upgr/dot.hdprofile62
-rw-r--r--distrib/amiga/floppies/upgr/dot.profile56
-rw-r--r--distrib/amiga/floppies/upgr/dot.upgrutils54
-rw-r--r--distrib/amiga/floppies/upgr/list7
-rw-r--r--distrib/amiga/floppies/upgr/upgrade.sh283
-rw-r--r--distrib/atari/Makefile5
-rw-r--r--distrib/atari/Makefile.inc4
-rw-r--r--distrib/atari/inst-common/Makefile.inc50
-rw-r--r--distrib/atari/inst-common/dot.commonutils129
-rw-r--r--distrib/atari/inst-common/instbin.conf25
-rw-r--r--distrib/atari/inst-common/list78
-rw-r--r--distrib/atari/inst-common/mtree.conf74
-rw-r--r--distrib/atari/inst-common/termcap.vt67
-rw-r--r--distrib/atari/inst/Makefile8
-rw-r--r--distrib/atari/inst/disktab.preinstall32
-rw-r--r--distrib/atari/inst/dot.instutils156
-rw-r--r--distrib/atari/inst/dot.profile52
-rw-r--r--distrib/atari/inst/install.sh273
-rw-r--r--distrib/atari/inst/list10
-rw-r--r--distrib/atari/list2sh.awk39
-rw-r--r--distrib/atari/runlist.sh13
-rw-r--r--distrib/crunch/COPYRIGHT25
-rw-r--r--distrib/crunch/Makefile4
-rw-r--r--distrib/crunch/Makefile.inc2
-rw-r--r--distrib/crunch/README89
-rw-r--r--distrib/crunch/crunchgen/Makefile10
-rw-r--r--distrib/crunch/crunchgen/crunched_main.c102
-rw-r--r--distrib/crunch/crunchgen/crunchgen.1274
-rw-r--r--distrib/crunch/crunchgen/crunchgen.c879
-rw-r--r--distrib/crunch/crunchgen/mkskel.sh15
-rw-r--r--distrib/crunch/crunchide/Makefile4
-rw-r--r--distrib/crunch/crunchide/crunchide.168
-rw-r--r--distrib/crunch/crunchide/crunchide.c321
-rw-r--r--distrib/crunch/examples/Makefile29
-rw-r--r--distrib/crunch/examples/fixit.conf44
-rw-r--r--distrib/crunch/examples/freebsd-filesystem.conf26
-rw-r--r--distrib/crunch/examples/freebsd-kcopy.conf18
-rw-r--r--distrib/crunch/examples/really-big.conf146
-rw-r--r--distrib/hp300/Makefile5
-rw-r--r--distrib/hp300/miniroot/Makefile5
-rw-r--r--distrib/hp300/miniroot/Makefile.inc4
-rw-r--r--distrib/hp300/miniroot/inst-common/Makefile.inc49
-rw-r--r--distrib/hp300/miniroot/inst-common/instbin.conf27
-rw-r--r--distrib/hp300/miniroot/inst-common/list96
-rw-r--r--distrib/hp300/miniroot/inst-common/mtree.conf78
-rw-r--r--distrib/hp300/miniroot/inst/Makefile8
-rw-r--r--distrib/hp300/miniroot/inst/dot.profile61
-rw-r--r--distrib/hp300/miniroot/inst/install.sh1026
-rw-r--r--distrib/hp300/miniroot/inst/list9
-rw-r--r--distrib/hp300/miniroot/list2sh.awk55
-rw-r--r--distrib/hp300/miniroot/runlist.sh13
-rw-r--r--distrib/i386/floppies/Makefile5
-rw-r--r--distrib/i386/floppies/Makefile.inc4
-rw-r--r--distrib/i386/floppies/inst-common/Makefile.inc49
-rw-r--r--distrib/i386/floppies/inst-common/dot.commonutils132
-rw-r--r--distrib/i386/floppies/inst-common/instbin.conf25
-rw-r--r--distrib/i386/floppies/inst-common/list77
-rw-r--r--distrib/i386/floppies/inst-common/mtree.conf72
-rw-r--r--distrib/i386/floppies/inst-common/termcap.pc342
-rw-r--r--distrib/i386/floppies/inst/Makefile8
-rw-r--r--distrib/i386/floppies/inst/disktab.preinstall29
-rw-r--r--distrib/i386/floppies/inst/dot.hdprofile62
-rw-r--r--distrib/i386/floppies/inst/dot.instutils157
-rw-r--r--distrib/i386/floppies/inst/dot.profile56
-rw-r--r--distrib/i386/floppies/inst/install.sh483
-rw-r--r--distrib/i386/floppies/inst/list11
-rw-r--r--distrib/i386/floppies/kc-common/Makefile.inc50
-rw-r--r--distrib/i386/floppies/kc-common/copy_kernel.sh113
-rw-r--r--distrib/i386/floppies/kc-common/dot.profile13
-rw-r--r--distrib/i386/floppies/kc-common/kcbin.conf15
-rw-r--r--distrib/i386/floppies/kc-common/list31
-rw-r--r--distrib/i386/floppies/kc-common/mtree.conf36
-rw-r--r--distrib/i386/floppies/kc/Makefile8
-rw-r--r--distrib/i386/floppies/kc/list4
-rw-r--r--distrib/i386/floppies/list2sh.awk55
-rw-r--r--distrib/i386/floppies/runlist.sh13
-rw-r--r--distrib/i386/floppies/upgr/Makefile8
-rw-r--r--distrib/i386/floppies/upgr/dot.hdprofile62
-rw-r--r--distrib/i386/floppies/upgr/dot.profile56
-rw-r--r--distrib/i386/floppies/upgr/dot.upgrutils58
-rw-r--r--distrib/i386/floppies/upgr/list8
-rw-r--r--distrib/i386/floppies/upgr/upgrade.sh253
-rw-r--r--distrib/mac68k/Makefile5
-rw-r--r--distrib/mac68k/Makefile.inc4
-rw-r--r--distrib/mac68k/inst-common/Makefile.inc50
-rw-r--r--distrib/mac68k/inst-common/dot.commonutils129
-rw-r--r--distrib/mac68k/inst-common/list77
-rw-r--r--distrib/mac68k/inst-common/mtree.conf74
-rw-r--r--distrib/mac68k/inst-common/raminst.conf21
-rw-r--r--distrib/mac68k/inst-common/termcap.vt67
-rw-r--r--distrib/mac68k/inst/Makefile8
-rw-r--r--distrib/mac68k/inst/disktab.preinstall32
-rw-r--r--distrib/mac68k/inst/dot.instutils156
-rw-r--r--distrib/mac68k/inst/dot.profile52
-rw-r--r--distrib/mac68k/inst/install.sh269
-rw-r--r--distrib/mac68k/inst/list10
-rw-r--r--distrib/mac68k/list2sh.awk39
-rw-r--r--distrib/mac68k/runlist.sh13
-rw-r--r--distrib/notes/INSTALL338
-rw-r--r--distrib/notes/Makefile16
-rw-r--r--distrib/notes/amiga/contents141
-rw-r--r--distrib/notes/amiga/hardware58
-rw-r--r--distrib/notes/amiga/install314
-rw-r--r--distrib/notes/amiga/legal7
-rw-r--r--distrib/notes/amiga/prep80
-rw-r--r--distrib/notes/amiga/upgrade163
-rw-r--r--distrib/notes/amiga/whatis4
-rw-r--r--distrib/notes/amiga/xfer128
-rw-r--r--distrib/notes/atari/contents124
-rw-r--r--distrib/notes/atari/hardware33
-rw-r--r--distrib/notes/atari/install278
-rw-r--r--distrib/notes/atari/legal7
-rw-r--r--distrib/notes/atari/prep97
-rw-r--r--distrib/notes/atari/upgrade36
-rw-r--r--distrib/notes/atari/whatis2
-rw-r--r--distrib/notes/atari/xfer64
-rw-r--r--distrib/notes/donations8
-rw-r--r--distrib/notes/hp300/contents91
-rw-r--r--distrib/notes/hp300/hardware66
-rw-r--r--distrib/notes/hp300/install222
-rw-r--r--distrib/notes/hp300/legal3
-rw-r--r--distrib/notes/hp300/prep125
-rw-r--r--distrib/notes/hp300/upgrade1
-rw-r--r--distrib/notes/hp300/whatis2
-rw-r--r--distrib/notes/hp300/xfer78
-rw-r--r--distrib/notes/i386/contents135
-rw-r--r--distrib/notes/i386/hardware143
-rw-r--r--distrib/notes/i386/install459
-rw-r--r--distrib/notes/i386/legal29
-rw-r--r--distrib/notes/i386/prep40
-rw-r--r--distrib/notes/i386/upgrade193
-rw-r--r--distrib/notes/i386/whatis9
-rw-r--r--distrib/notes/i386/xfer185
-rw-r--r--distrib/notes/legal.common7
-rw-r--r--distrib/notes/mac68k/contents94
-rw-r--r--distrib/notes/mac68k/hardware37
-rw-r--r--distrib/notes/mac68k/install119
-rw-r--r--distrib/notes/mac68k/legal33
-rw-r--r--distrib/notes/mac68k/prep33
-rw-r--r--distrib/notes/mac68k/upgrade4
-rw-r--r--distrib/notes/mac68k/whatis6
-rw-r--r--distrib/notes/mac68k/xfer29
-rw-r--r--distrib/notes/mirrors58
-rw-r--r--distrib/notes/pc532/contents113
-rw-r--r--distrib/notes/pc532/hardware20
-rw-r--r--distrib/notes/pc532/install220
-rw-r--r--distrib/notes/pc532/legal85
-rw-r--r--distrib/notes/pc532/prep3
-rw-r--r--distrib/notes/pc532/upgrade55
-rw-r--r--distrib/notes/pc532/whatis14
-rw-r--r--distrib/notes/pc532/xfer19
-rw-r--r--distrib/notes/sparc/contents92
-rw-r--r--distrib/notes/sparc/hardware25
-rw-r--r--distrib/notes/sparc/install182
-rw-r--r--distrib/notes/sparc/legal4
-rw-r--r--distrib/notes/sparc/prep49
-rw-r--r--distrib/notes/sparc/upgrade5
-rw-r--r--distrib/notes/sparc/whatis5
-rw-r--r--distrib/notes/sparc/xfer1
-rw-r--r--distrib/pc532/floppies/Makefile5
-rw-r--r--distrib/pc532/floppies/Makefile.inc4
-rw-r--r--distrib/pc532/floppies/inst-common/Makefile.inc96
-rw-r--r--distrib/pc532/floppies/inst-common/cloak.c93
-rw-r--r--distrib/pc532/floppies/inst-common/dot.commonutils137
-rw-r--r--distrib/pc532/floppies/inst-common/download.c532
-rw-r--r--distrib/pc532/floppies/inst-common/go.c50
-rw-r--r--distrib/pc532/floppies/inst-common/inject.c124
-rw-r--r--distrib/pc532/floppies/inst-common/instbin.conf38
-rw-r--r--distrib/pc532/floppies/inst-common/list109
-rw-r--r--distrib/pc532/floppies/inst-common/memory_map5
-rw-r--r--distrib/pc532/floppies/inst-common/mtree.conf111
-rw-r--r--distrib/pc532/floppies/inst-common/termcap.vt10016
-rw-r--r--distrib/pc532/floppies/inst/Makefile8
-rw-r--r--distrib/pc532/floppies/inst/disktab.preinstall29
-rw-r--r--distrib/pc532/floppies/inst/dot.hdprofile62
-rw-r--r--distrib/pc532/floppies/inst/dot.instutils157
-rw-r--r--distrib/pc532/floppies/inst/dot.profile56
-rw-r--r--distrib/pc532/floppies/inst/install.sh476
-rw-r--r--distrib/pc532/floppies/inst/list11
-rw-r--r--distrib/pc532/floppies/list2sh.awk44
-rw-r--r--distrib/pc532/floppies/runlist.sh13
-rw-r--r--distrib/pc532/floppies/upgr/Makefile8
-rw-r--r--distrib/pc532/floppies/upgr/dot.hdprofile62
-rw-r--r--distrib/pc532/floppies/upgr/dot.profile56
-rw-r--r--distrib/pc532/floppies/upgr/dot.upgrutils58
-rw-r--r--distrib/pc532/floppies/upgr/list8
-rw-r--r--distrib/pc532/floppies/upgr/upgrade.sh253
-rw-r--r--distrib/sets/README129
-rw-r--r--distrib/sets/checkflist13
-rw-r--r--distrib/sets/lists/base/md.amiga19
-rw-r--r--distrib/sets/lists/base/md.atari17
-rw-r--r--distrib/sets/lists/base/md.hp30027
-rw-r--r--distrib/sets/lists/base/md.i38625
-rw-r--r--distrib/sets/lists/base/md.mac68k16
-rw-r--r--distrib/sets/lists/base/md.pc5321
-rw-r--r--distrib/sets/lists/base/md.pmax2
-rw-r--r--distrib/sets/lists/base/md.sparc23
-rw-r--r--distrib/sets/lists/base/md.sun322
-rw-r--r--distrib/sets/lists/base/mi1240
-rw-r--r--distrib/sets/lists/comp/md.amiga65
-rw-r--r--distrib/sets/lists/comp/md.atari72
-rw-r--r--distrib/sets/lists/comp/md.hp30065
-rw-r--r--distrib/sets/lists/comp/md.i38662
-rw-r--r--distrib/sets/lists/comp/md.mac68k70
-rw-r--r--distrib/sets/lists/comp/md.pc53227
-rw-r--r--distrib/sets/lists/comp/md.pmax66
-rw-r--r--distrib/sets/lists/comp/md.sparc65
-rw-r--r--distrib/sets/lists/comp/md.sun380
-rw-r--r--distrib/sets/lists/comp/mi1542
-rw-r--r--distrib/sets/lists/etc/md.amiga1
-rw-r--r--distrib/sets/lists/etc/md.atari1
-rw-r--r--distrib/sets/lists/etc/md.hp3002
-rw-r--r--distrib/sets/lists/etc/md.i3861
-rw-r--r--distrib/sets/lists/etc/md.mac68k1
-rw-r--r--distrib/sets/lists/etc/md.pc5321
-rw-r--r--distrib/sets/lists/etc/md.pmax0
-rw-r--r--distrib/sets/lists/etc/md.sparc1
-rw-r--r--distrib/sets/lists/etc/md.sun31
-rw-r--r--distrib/sets/lists/etc/mi61
-rw-r--r--distrib/sets/lists/games/md.amiga0
-rw-r--r--distrib/sets/lists/games/md.atari0
-rw-r--r--distrib/sets/lists/games/md.hp3000
-rw-r--r--distrib/sets/lists/games/md.i3860
-rw-r--r--distrib/sets/lists/games/md.mac68k0
-rw-r--r--distrib/sets/lists/games/md.pc5320
-rw-r--r--distrib/sets/lists/games/md.pmax0
-rw-r--r--distrib/sets/lists/games/md.sparc0
-rw-r--r--distrib/sets/lists/games/md.sun30
-rw-r--r--distrib/sets/lists/games/mi206
-rw-r--r--distrib/sets/lists/man/md.amiga11
-rw-r--r--distrib/sets/lists/man/md.atari10
-rw-r--r--distrib/sets/lists/man/md.hp3009
-rw-r--r--distrib/sets/lists/man/md.i38610
-rw-r--r--distrib/sets/lists/man/md.mac68k8
-rw-r--r--distrib/sets/lists/man/md.pc5328
-rw-r--r--distrib/sets/lists/man/md.pmax0
-rw-r--r--distrib/sets/lists/man/md.sparc11
-rw-r--r--distrib/sets/lists/man/md.sun312
-rw-r--r--distrib/sets/lists/man/md_share183
-rw-r--r--distrib/sets/lists/man/mi539
-rw-r--r--distrib/sets/lists/misc/md.amiga0
-rw-r--r--distrib/sets/lists/misc/md.atari0
-rw-r--r--distrib/sets/lists/misc/md.hp3000
-rw-r--r--distrib/sets/lists/misc/md.i3860
-rw-r--r--distrib/sets/lists/misc/md.mac68k0
-rw-r--r--distrib/sets/lists/misc/md.pc5320
-rw-r--r--distrib/sets/lists/misc/md.pmax0
-rw-r--r--distrib/sets/lists/misc/md.sparc0
-rw-r--r--distrib/sets/lists/misc/md.sun30
-rw-r--r--distrib/sets/lists/misc/mi205
-rw-r--r--distrib/sets/lists/secr/md.amiga2
-rw-r--r--distrib/sets/lists/secr/md.atari2
-rw-r--r--distrib/sets/lists/secr/md.hp3002
-rw-r--r--distrib/sets/lists/secr/md.i3862
-rw-r--r--distrib/sets/lists/secr/md.mac68k2
-rw-r--r--distrib/sets/lists/secr/md.pc5320
-rw-r--r--distrib/sets/lists/secr/md.pmax0
-rw-r--r--distrib/sets/lists/secr/md.sparc2
-rw-r--r--distrib/sets/lists/secr/md.sun32
-rw-r--r--distrib/sets/lists/secr/mi5
-rw-r--r--distrib/sets/lists/text/md.amiga0
-rw-r--r--distrib/sets/lists/text/md.atari0
-rw-r--r--distrib/sets/lists/text/md.hp3000
-rw-r--r--distrib/sets/lists/text/md.i3860
-rw-r--r--distrib/sets/lists/text/md.mac68k0
-rw-r--r--distrib/sets/lists/text/md.pc5320
-rw-r--r--distrib/sets/lists/text/md.pmax0
-rw-r--r--distrib/sets/lists/text/md.sparc0
-rw-r--r--distrib/sets/lists/text/md.sun30
-rw-r--r--distrib/sets/lists/text/mi270
-rw-r--r--distrib/sets/makeflist25
-rw-r--r--distrib/sets/maketars43
-rw-r--r--distrib/sparc/install.sh21
-rw-r--r--distrib/sun3/Makefile5
-rw-r--r--distrib/sun3/Makefile.inc10
-rw-r--r--distrib/sun3/common/Make.crunch20
-rw-r--r--distrib/sun3/common/Make.fsimage42
-rw-r--r--distrib/sun3/common/Makefile.inc31
-rw-r--r--distrib/sun3/common/RunList.awk39
-rw-r--r--distrib/sun3/common/RunList.sh14
-rw-r--r--distrib/sun3/common/dot.cmnutils110
-rw-r--r--distrib/sun3/common/install.sh280
-rw-r--r--distrib/sun3/common/mini_bin.list39
-rw-r--r--distrib/sun3/common/mini_sbin.list38
-rw-r--r--distrib/sun3/common/mini_usr.conf25
-rw-r--r--distrib/sun3/common/mini_usr.list42
-rw-r--r--distrib/sun3/common/miniroot.list41
-rw-r--r--distrib/sun3/common/miniroot.tree74
-rw-r--r--distrib/sun3/common/mr.disktab32
-rw-r--r--distrib/sun3/common/mr.etc.rc9
-rw-r--r--distrib/sun3/common/mr.instutils148
-rw-r--r--distrib/sun3/common/mr.profile52
-rw-r--r--distrib/sun3/common/mr.termcap91
-rw-r--r--distrib/sun3/common/ramdisk.list21
-rw-r--r--distrib/sun3/common/ramdisk.tree39
-rw-r--r--distrib/sun3/common/rd.disktab2
-rw-r--r--distrib/sun3/common/rd.fstab2
-rw-r--r--distrib/sun3/common/rd.passwd1
-rw-r--r--distrib/sun3/common/rd.protocols6
-rw-r--r--distrib/sun3/common/rd.services56
-rw-r--r--distrib/sun3/common/rd.sshrc4
-rw-r--r--distrib/sun3/common/rd.welcome24
-rw-r--r--distrib/sun3/common/rd_bin.conf83
-rw-r--r--distrib/sun3/common/rd_bin.list44
-rw-r--r--distrib/sun3/common/rdsetroot.c230
-rw-r--r--distrib/sun3/miniroot/Makefile57
-rw-r--r--distrib/sun3/ramdisk/Findrefs12
-rw-r--r--distrib/sun3/ramdisk/Makefile61
-rw-r--r--distrib/sun3/ramdisk/Showsyms9
-rw-r--r--distrib/utils/Makefile5
-rw-r--r--distrib/utils/Makefile.inc9
-rw-r--r--distrib/utils/README43
-rw-r--r--distrib/utils/init_s/Makefile18
-rw-r--r--distrib/utils/libhack/Makefile19
-rw-r--r--distrib/utils/libhack/Makefile.inc25
-rw-r--r--distrib/utils/libhack/getgrent.c187
-rw-r--r--distrib/utils/libhack/gethost.c266
-rw-r--r--distrib/utils/libhack/getnetgr.c33
-rw-r--r--distrib/utils/libhack/getpwent.c171
-rw-r--r--distrib/utils/libhack/yplib.c222
-rw-r--r--distrib/utils/ssh/Makefile9
-rw-r--r--distrib/utils/ssh/ssh.c608
-rw-r--r--distrib/utils/tls/Makefile9
-rw-r--r--distrib/utils/tls/tls.c154
-rw-r--r--distrib/utils/x_dd/Makefile18
-rw-r--r--distrib/utils/x_ifconfig/Makefile14
-rw-r--r--distrib/vax/Makefile5
-rw-r--r--distrib/vax/Makefile.inc4
-rw-r--r--distrib/vax/inst-common/Makefile.inc66
-rw-r--r--distrib/vax/inst-common/dot.commonutils113
-rw-r--r--distrib/vax/inst-common/instbin.conf23
-rw-r--r--distrib/vax/inst-common/list75
-rw-r--r--distrib/vax/inst-common/mtree.conf72
-rw-r--r--distrib/vax/inst-common/termcap.vt64
-rw-r--r--distrib/vax/inst/Makefile8
-rw-r--r--distrib/vax/inst/disktab.preinstall29
-rw-r--r--distrib/vax/inst/dot.profile15
-rw-r--r--distrib/vax/inst/list7
-rw-r--r--distrib/vax/list2sh.awk39
-rw-r--r--distrib/vax/runlist.sh13
-rw-r--r--distrib/vax/rx33/Makefile14
-rw-r--r--distrib/vax/rx50/Makefile22
-rw-r--r--distrib/vax/tk50/Makefile40
361 files changed, 26201 insertions, 0 deletions
diff --git a/distrib/alpha/rz25dist/Makefile b/distrib/alpha/rz25dist/Makefile
new file mode 100644
index 00000000000..844b1c87fc0
--- /dev/null
+++ b/distrib/alpha/rz25dist/Makefile
@@ -0,0 +1,77 @@
+# $NetBSD: Makefile,v 1.7 1995/10/10 01:19:16 cgd Exp $
+
+# Make a distribution for the alpha, on a spare disk.
+# This creates a large, gzipped disk image in ${.OBJDIR}
+
+.if !defined(DESTDIR) || !defined(DESTDISK)
+all:
+ @echo both 'DESTDIR' and 'DESTDISK' must be defined.
+ @false
+.else
+
+SECPERCYL= 558
+CYLS= 1476
+
+all: bin.tar.gz etc.tar.gz rz25-image.gz
+
+mount-fs:
+ disklabel -W ${DESTDISK}
+ -dd if=/dev/zero of=/dev/r${DESTDISK}c bs=`expr ${SECPERCYL} \* 512` \
+ count=${CYLS}
+ disklabel -w -r -B -b /usr/mdec/sdboot -s /usr/mdec/bootsd \
+ ${DESTDISK} rz25
+ disklabel -W ${DESTDISK}
+ newfs -O /dev/r${DESTDISK}a
+ newfs -O /dev/r${DESTDISK}d
+ mount /dev/${DESTDISK}a ${DESTDIR}
+ mkdir ${DESTDIR}/usr
+ mount /dev/${DESTDISK}d ${DESTDIR}/usr
+
+build-fs:
+ cd ${.CURDIR}/../../../etc && make distribution
+ cd ${.CURDIR}/../../../cygnus && \
+ make prefix=${DESTDIR}/usr/local install
+ cp ${.CURDIR}/../../../sys/arch/alpha/compile/GENERIC/netbsd ${DESTDIR}
+ ln -s gcc ${DESTDIR}/usr/local/bin/cc
+ ln -s \
+ ../local/lib/gcc-lib/alpha-unknown-netbsd1.0A/2.7-95q4/cpp \
+ ${DESTDIR}/usr/libexec
+ ln -s ../local/bin/ar ${DESTDIR}/usr/bin
+ ln -s ../local/bin/as ${DESTDIR}/usr/bin
+ ln -s ../local/bin/cc ${DESTDIR}/usr/bin
+ ln -s ../local/bin/gcc ${DESTDIR}/usr/bin
+ ln -s ../local/bin/ld ${DESTDIR}/usr/bin
+ ln -s ../local/bin/nm ${DESTDIR}/usr/bin
+ ln -s ../local/bin/ranlib ${DESTDIR}/usr/bin
+ ln -s ../local/bin/size ${DESTDIR}/usr/bin
+ ln -s ../local/bin/strip ${DESTDIR}/usr/bin
+ cp -p ${DESTDIR}/usr/mdec/boot ${DESTDIR}/
+
+unmount-fs:
+ umount ${DESTDIR}/usr ${DESTDIR}
+ fsck /dev/r${DESTDISK}a /dev/r${DESTDISK}d
+
+rz25-image.gz: mount-fs build-fs unmount-fs
+ /bin/rm -f $@
+ dd if=/dev/r${DESTDISK}c bs=`expr ${SECPERCYL} \* 512` \
+ count=${CYLS} | gzip -9 > $@
+
+bin.tar.gz: mount-fs build-fs
+ /bin/rm -f $@
+ (cd ${DESTDIR} ; find . | grep -v '^./etc' | pax -w -d | gzip -9) > $@
+
+etc.tar.gz: mount-fs build-fs
+ /bin/rm -f $@
+ (cd ${DESTDIR} ; find ./etc | pax -w -d | gzip -9) > $@
+
+.endif
+
+_SUBDIRUSE:
+
+# clean dependencies in case somebody decides to shortcut the build.
+clean:
+ /bin/rm -f bin.tar.gz etc.tar.gz rz25-image.gz
+ /bin/rm -f mount-fs build-fs unmount-fs
+
+.include <bsd.own.mk>
+.include <bsd.obj.mk>
diff --git a/distrib/amiga/floppies/Makefile b/distrib/amiga/floppies/Makefile
new file mode 100644
index 00000000000..ecbc7cc99e3
--- /dev/null
+++ b/distrib/amiga/floppies/Makefile
@@ -0,0 +1,5 @@
+# $Id
+
+SUBDIR= inst upgr
+
+.include <bsd.subdir.mk>
diff --git a/distrib/amiga/floppies/Makefile.inc b/distrib/amiga/floppies/Makefile.inc
new file mode 100644
index 00000000000..f39164f80cc
--- /dev/null
+++ b/distrib/amiga/floppies/Makefile.inc
@@ -0,0 +1,4 @@
+# $Id: Makefile.inc,v 1.1 1995/10/18 08:37:27 deraadt Exp $
+
+# Revision is 1.1
+REV= 11
diff --git a/distrib/amiga/floppies/inst-common/Makefile.inc b/distrib/amiga/floppies/inst-common/Makefile.inc
new file mode 100644
index 00000000000..b84e5a2356d
--- /dev/null
+++ b/distrib/amiga/floppies/inst-common/Makefile.inc
@@ -0,0 +1,48 @@
+# $Id: Makefile.inc,v 1.1 1995/10/18 08:37:28 deraadt Exp $
+
+# TOP is assumed to be defined by Makefile including this one.
+
+CBIN= instbin
+COMMONDIR= ${TOP}/inst-common
+
+MOUNT_POINT?= /mnt
+VND?= vnd0
+VND_DEV= /dev/${VND}c
+VND_RDEV= /dev/r${VND}c
+IMAGE?= xxx-${REV}.fs
+MDEC= ${DESTDIR}/usr/mdec
+
+LISTS= ${COMMONDIR}/list ${.CURDIR}/list
+CRUNCHCONF= ${COMMONDIR}/${CBIN}.conf
+MTREE= ${COMMONDIR}/mtree.conf
+
+all: ${CBIN}
+ dd if=/dev/zero of=${IMAGE} bs=80k count=22
+ vnconfig -v -c ${VND_DEV} ${IMAGE}
+ newfs -O -m 0 -o space ${VND_RDEV} floppyhd
+ mount ${VND_DEV} ${MOUNT_POINT}
+ mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u
+ TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
+ TARGDIR=${MOUNT_POINT} sh ${TOP}/runlist.sh ${LISTS}
+ @echo ""
+ @df -i ${MOUNT_POINT}
+ @echo ""
+ umount ${MOUNT_POINT}
+ vnconfig -u ${VND_DEV}
+
+unconfig:
+ -umount -f ${MOUNT_POINT}
+ -vnconfig -u ${VND_DEV}
+ -/bin/rm -f ${IMAGE}
+
+${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
+ crunchgen -D ${TOP}/../../.. -L ${DESTDIR}/usr/lib ${CRUNCHCONF}
+
+${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
+ make -f ${CBIN}.mk all
+
+clean cleandir:
+ /bin/rm -f core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}.cache *.o *.lo *.c
+
+.include <bsd.obj.mk>
+.include <bsd.subdir.mk>
diff --git a/distrib/amiga/floppies/inst-common/dot.commonutils b/distrib/amiga/floppies/inst-common/dot.commonutils
new file mode 100644
index 00000000000..d5a87c3a2b9
--- /dev/null
+++ b/distrib/amiga/floppies/inst-common/dot.commonutils
@@ -0,0 +1,123 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: dot.commonutils,v 1.1 1995/10/18 08:37:28 deraadt Exp $
+
+# Installation utilites (functions), to get NetBSD installed on
+# the hard disk. These are meant to be invoked from the shell prompt,
+# by people installing NetBSD.
+
+# we know that /etc/fstab is only generated on the hard drive
+dest_dir=/
+if [ ! -f /etc/fstab ]; then
+ dest_dir=/mnt/
+fi
+
+# counter for possible shared library confusion
+TAR=/usr/bin/tar
+GUNZIP=/usr/bin/gunzip
+
+Set_tmp_dir()
+{
+ def_tmp_dir=`pwd`
+ if [ "$def_tmp_dir" = "/" -o "$def_tmp_dir" = "/mnt" ]; then
+ def_tmp_dir="$dest_dir"usr/distrib
+ fi
+
+ echo -n "What directory should be used to find and/or store "
+ echo "installation"
+ echo -n "files? [$def_tmp_dir] "
+ read tmp_dir
+ if [ "$tmp_dir" = "" ]; then
+ tmp_dir=$def_tmp_dir
+ fi
+ if [ ! -d "$tmp_dir" ]; then
+ /bin/rm -rf $tmp_dir
+ mkdir -p $tmp_dir
+ fi
+}
+
+Tmp_dir()
+{
+ if [ "$tmp_dir" = "" ]; then
+ Set_tmp_dir
+ fi
+ cd $tmp_dir
+}
+
+Load_fd()
+{
+ Tmp_dir
+ which=
+ while [ "$which" != "a" -a "$which" != "b" ]; do
+ echo -n "Read from which floppy drive ('a' or 'b')? [a] "
+ read which
+ if [ "X$which" = "X" ]; then
+ which=a
+ fi
+ done
+ while echo -n "Insert floppy (hit ^C to terminate, enter to load): "
+ do
+ mount -t msdos /dev/fd0$which /mnt2
+ cp -rp /mnt2/* .
+ umount /mnt2
+ done
+}
+
+Load_tape()
+{
+ Tmp_dir
+ echo -n "Which tape drive will you be using? [rst0] "
+ read which
+ if [ "X$which" = "X" ]; then
+ which=rst0
+ fi
+ echo -n "Insert the tape into the tape drive and hit return to "
+ echo -n "continue..."
+ read foo
+ echo "Extracting files from the tape..."
+ $TAR xvpf --unlink /dev/$which
+ echo "Done."
+}
+
+Extract()
+{
+ Tmp_dir
+ echo -n "Would you like to list the files as they're extracted? [n] "
+ read verbose
+ case $verbose in
+ y*|Y*)
+ tarverbose=v
+ ;;
+ *)
+ tarverbose=
+ ;;
+ esac
+ cat "$1".?? | $GUNZIP | (cd $dest_dir ; $TAR --unlink -xp"$tarverbose"f -)
+}
diff --git a/distrib/amiga/floppies/inst-common/instbin.conf b/distrib/amiga/floppies/inst-common/instbin.conf
new file mode 100644
index 00000000000..38214376467
--- /dev/null
+++ b/distrib/amiga/floppies/inst-common/instbin.conf
@@ -0,0 +1,24 @@
+#
+# kcbin.conf - unified binary for the kc floppy
+# $Id: instbin.conf,v 1.1 1995/10/18 08:37:28 deraadt Exp $
+#
+
+srcdirs bin sbin usr.bin usr.sbin gnu/usr.bin
+
+progs cat chmod chown chroot cp dd df disklabel ed expr fsck ftp
+progs gzip ifconfig init ln ls mkdir mknod more mount mount_cd9660
+progs mount_ados mount_ffs mount_nfs mv newfs printf pppd pwd reboot rm
+progs route sed sh shutdown slattach strings stty sync tar test tip
+progs umount update
+
+ln chown chgrp
+ln gzip gzcat gunzip
+ln mount_ados ados
+ln mount_cd9660 cd9660
+ln mount_ffs ffs
+ln mount_nfs nfs
+ln reboot halt
+ln sh -sh # init invokes the shell this way
+ln test [
+
+libs -ledit -lutil -ltermcap -lcrypt -ll -lm
diff --git a/distrib/amiga/floppies/inst-common/list b/distrib/amiga/floppies/inst-common/list
new file mode 100644
index 00000000000..0feda25a64d
--- /dev/null
+++ b/distrib/amiga/floppies/inst-common/list
@@ -0,0 +1,76 @@
+# $Id: list,v 1.1 1995/10/18 08:37:28 deraadt Exp $
+
+# copy the crunched binary, link to it, and kill it
+COPY ${OBJDIR}/instbin instbin
+LINK instbin bin/cat
+LINK instbin bin/chmod
+LINK instbin bin/cp
+LINK instbin bin/df
+LINK instbin bin/dd
+LINK instbin bin/ed
+LINK instbin bin/expr
+LINK instbin bin/ln
+LINK instbin bin/ls
+LINK instbin bin/mkdir
+LINK instbin bin/mv
+LINK instbin bin/pwd
+LINK instbin bin/rm
+LINK instbin bin/sh
+LINK instbin bin/-sh
+LINK instbin bin/stty
+LINK instbin bin/sync
+LINK instbin bin/test
+LINK instbin bin/[
+LINK instbin sbin/disklabel
+LINK instbin sbin/fsck
+LINK instbin sbin/ifconfig
+LINK instbin sbin/init
+LINK instbin sbin/mknod
+LINK instbin sbin/mount
+LINK instbin sbin/mount_cd9660
+LINK instbin sbin/mount_ados
+LINK instbin sbin/mount_ffs
+LINK instbin sbin/mount_nfs
+LINK instbin sbin/newfs
+LINK instbin sbin/reboot
+LINK instbin sbin/route
+LINK instbin sbin/shutdown
+LINK instbin sbin/slattach
+LINK instbin sbin/umount
+LINK instbin usr/bin/chgrp
+LINK instbin usr/bin/ftp
+LINK instbin usr/bin/gunzip
+LINK instbin usr/bin/gzcat
+LINK instbin usr/bin/gzip
+LINK instbin usr/bin/more
+LINK instbin usr/bin/printf
+LINK instbin usr/bin/sed
+LINK instbin usr/bin/strings
+LINK instbin usr/bin/tar
+LINK instbin usr/bin/tip
+LINK instbin usr/sbin/chown
+LINK instbin usr/sbin/chroot
+LINK instbin usr/sbin/pppd
+LINK instbin usr/sbin/update
+SPECIAL /bin/rm instbin
+
+# copy the MAKEDEV script and make some devices
+COPY ${DESTDIR}/dev/MAKEDEV dev/MAKEDEV
+SPECIAL cd dev; sh MAKEDEV floppy
+SPECIAL /bin/rm dev/MAKEDEV
+
+# we need the contents of /usr/mdec (XXX)
+# COPY ${DESTDIR}/usr/mdec/* usr/mdec
+
+# various files that we need in /etc for the install
+COPY ${DESTDIR}/etc/group etc
+COPY ${DESTDIR}/etc/master.passwd etc
+COPY ${DESTDIR}/etc/passwd etc
+COPY ${DESTDIR}/etc/protocols etc
+COPY ${DESTDIR}/etc/pwd.db etc
+COPY ${DESTDIR}/etc/services etc
+COPY ${DESTDIR}/etc/spwd.db etc
+
+# and the common installation tools
+COPY ${TOPDIR}/inst-common/dot.commonutils .commonutils
+COPY ${TOPDIR}/inst-common/termcap.vt usr/share/misc/termcap
diff --git a/distrib/amiga/floppies/inst-common/mtree.conf b/distrib/amiga/floppies/inst-common/mtree.conf
new file mode 100644
index 00000000000..c0395984ec0
--- /dev/null
+++ b/distrib/amiga/floppies/inst-common/mtree.conf
@@ -0,0 +1,72 @@
+# $Id: mtree.conf,v 1.1 1995/10/18 08:37:28 deraadt Exp $
+
+/set type=dir uname=root gname=wheel mode=0755
+# .
+.
+
+# ./bin
+bin
+# ./bin
+..
+
+# ./dev
+dev
+# ./dev
+..
+
+# ./etc
+etc
+# ./etc
+..
+
+# ./mnt
+mnt
+# ./mnt
+..
+
+# ./mnt2
+mnt2
+# ./mnt2
+..
+
+# ./sbin
+sbin
+# ./sbin
+..
+
+# ./tmp
+tmp
+# ./tmp
+..
+
+# ./usr
+usr
+
+# ./usr/bin
+bin
+# ./usr/bin
+..
+
+# ./usr/mdec
+mdec
+# ./usr/mdec
+..
+
+# ./usr/sbin
+sbin
+# ./usr/sbin
+..
+
+# ./usr/share
+share
+
+# ./usr/share/misc
+misc
+# ./usr/share/misc
+..
+
+# ./usr/share
+..
+
+# ./usr
+..
diff --git a/distrib/amiga/floppies/inst-common/termcap.vt b/distrib/amiga/floppies/inst-common/termcap.vt
new file mode 100644
index 00000000000..b885de9d0a6
--- /dev/null
+++ b/distrib/amiga/floppies/inst-common/termcap.vt
@@ -0,0 +1,64 @@
+# Copyright (c) 1980, 1985, 1989 The Regents of the University of California.
+# 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.
+# 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 University of
+# California, Berkeley and its contributors.
+# 4. Neither the name of the University nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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, 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.
+#
+# @(#)termcap.src 5.109 (Berkeley) 3/8/93
+#
+vt200|vt220|dec-vt220|vt200-js|vt220-js|dec vt200 series with jump scroll:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:ct=\E[3g:dc=\E[P:dl=\E[M:\
+ :ei=\E[4l:im=\E[4h:k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:\
+ :k5=\E[21~:k6=\E[23~:k7=\E[24~:k8=\E[25~:kD=\E[3~:kH=\E[4~:\
+ :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:kh=\E[1~:km:mi:ms:\
+ :if=/usr/share/tabset/vt100:se=\E[27m:st=\EH:ue=\E[24m:\
+ :tc=vt100:
+vt100|dec-vt100|vt100-am|vt100am|dec vt100:\
+ :bl=^G:cr=^M:it#8:\
+ :do=^J:co#80:li#24:cl=50\E[;H\E[2J:sf=2*\ED:\
+ :le=^H:bs:am:cm=5\E[%i%d;%dH:nd=2\E[C:up=2\E[A:cb=3\E[1K:\
+ :ce=3\E[K:cd=50\E[J:so=2\E[7m:se=2\E[m:us=2\E[4m:ue=2\E[m:\
+ :md=2\E[1m:mr=2\E[7m:mb=2\E[5m:me=2\E[m:is=\E[1;24r\E[24;1H:\
+ :if=/usr/share/tabset/vt100:\
+ :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:ks=\E[?1h\E=:ke=\E[?1l\E>:\
+ :ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:kb=^H:\
+ :ho=\E[H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:pt:sr=2*\EM:vt#3:xn:\
+ :sc=\E7:rc=\E8:cs=\E[%i%d;%dr:
+vt300|vt320|vt300-80|VT 300 with 80 columns, on VMS:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:SR=1*\E[%dM:UP=\E[%dA:al=\E[L:\
+ :am:bl=^G:bs:cd=2*\E[J:ce=2*\E[K:cl=45\E[H\E[2J:\
+ :cm=%i\E[%d;%dH:co#80:cr=\r:cs=\E[%i%d;%dr:ct=\E[3g:\
+ :dc=\E[P:dl=\E[M:dm=:do=\ED:ec=\E[%dX:ed=:ei=\E[4l:\
+ :ho=\E[H:ic:im=\E[4h:it#8:k1=\EOP:k2=\EOQ:k3=\EOR:\
+ :k4=\EOS:kd=\E[B:ke=\E[?1l\E>:kl=\E[D:kn#4:kr=\E[C:ks=\E[?1h\E=:\
+ :ku=\E[A:le=^H:li#24:mb=\E[5m:md=\E[1m:me=\E[0m:mi:\
+ :mr=\E[7m:ms:nd=\E[C:nl=\ED:nw=\EE:pf=\E[?4i:po=\E[?5i:\
+ :ps=\E[i:rc=\E8:sc=\E7:se=\E[27m:sf=1*\ED:so=\E[7m:\
+ :sr=1*\EM:st=\EH:ue=\E[24m:up=\EM:us=\E[4m:xn:
diff --git a/distrib/amiga/floppies/inst/Makefile b/distrib/amiga/floppies/inst/Makefile
new file mode 100644
index 00000000000..47d65f599e2
--- /dev/null
+++ b/distrib/amiga/floppies/inst/Makefile
@@ -0,0 +1,8 @@
+# $Id: Makefile,v 1.1 1995/10/18 08:37:28 deraadt Exp $
+
+TOP= ${.CURDIR}/..
+
+.include "${TOP}/Makefile.inc"
+IMAGE= inst-${REV}.fs
+
+.include "${TOP}/inst-common/Makefile.inc"
diff --git a/distrib/amiga/floppies/inst/disktab.preinstall b/distrib/amiga/floppies/inst/disktab.preinstall
new file mode 100644
index 00000000000..5fe26a7d81c
--- /dev/null
+++ b/distrib/amiga/floppies/inst/disktab.preinstall
@@ -0,0 +1,29 @@
+# Disk geometry and partition layout tables.
+# Key:
+# dt controller type
+# ty type of disk (fixed, removeable, simulated)
+# d[0-4] drive-type-dependent parameters
+# ns #sectors/track
+# nt #tracks/cylinder
+# nc #cylinders/disk
+# sc #sectors/cylinder, nc*nt default
+# su #sectors/unit, sc*nc default
+# se sector size, DEV_BSIZE default
+# rm rpm, 3600 default
+# sf supports bad144-style bad sector forwarding
+# sk sector skew per track, default 0
+# cs sector skew per cylinder, default 0
+# hs headswitch time, default 0
+# ts one-cylinder seek time, default 0
+# il sector interleave (n:1), 1 default
+# bs boot block size, default BBSIZE
+# sb superblock size, default SBSIZE
+# o[a-h] partition offsets in sectors
+# p[a-h] partition sizes in sectors
+# b[a-h] partition block sizes in bytes
+# f[a-h] partition fragment sizes in bytes
+# t[a-h] partition types (filesystem, swap, etc)
+#
+# All partition sizes reserve space for bad sector tables.
+# (5 cylinders needed for maintenance + replacement sectors)
+#
diff --git a/distrib/amiga/floppies/inst/dot.instutils b/distrib/amiga/floppies/inst/dot.instutils
new file mode 100644
index 00000000000..8673f302988
--- /dev/null
+++ b/distrib/amiga/floppies/inst/dot.instutils
@@ -0,0 +1,152 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: dot.instutils,v 1.1 1995/10/18 08:37:28 deraadt Exp $
+
+# Installation configuration utilites (functions), to get NetBSD configured
+# reasonably once it is installed on the hard disk. These are meant to be
+# invoked from the shell prompt, by people installing NetBSD.
+
+Configure()
+{
+ DEV=/mnt/dev
+ ETC=/mnt/etc
+
+ echo "You will now be prompted for information about this"
+ echo "machine. If you hit return, the default answer (in"
+ echo "brackets) will be used."
+
+ echo ""
+ echo -n "What is this machine's hostname? [unknown.host.domain] "
+ read hname
+ if [ "$hname" = "" ]; then
+ hname=unknown.host.domain
+ fi
+ echo $hname > ${ETC}/myname
+ proto_domain=`echo $hname | sed -e 's/[^.]*\.//'`
+
+ echo ""
+ echo "What domain is this machine in (this is NOT its YP"
+ echo -n "domain name)? [$proto_domain] "
+ read dname
+ if [ "$dname" = "" ]; then
+ dname=$proto_domain
+ fi
+
+ echo ""
+ if [ -e /mnt/etc/sendmail.cf ]; then
+ echo "WARNING: A default sendmail.cf exists, and probably"
+ echo "needs to be tuned and/or replaced, to work properly at"
+ echo "your site!"
+ else
+ echo "WARNING: No default sendmail.cf installed. Did you"
+ echo "forget to install the 'etc' distribution?"
+ fi
+
+ echo "127.0.0.1 localhost localhost.$dname" > ${ETC}/hosts
+
+ echo ""
+ echo -n "Does this machine have an ethernet interface? [y] "
+ read resp
+ case "$resp" in
+ n*)
+ ;;
+ *)
+ intf=
+ while [ "$intf" = "" ]; do
+ echo -n "What is the primary interface name "
+ echo -n "(e.g. ae0, ed0, le0, or es0)? "
+ read intf
+ done
+ echo -n "What is the hostname for this interface? [$hname] "
+ read ifname
+ if [ "$ifname" = "" ]; then
+ ifname=$hname
+ fi
+ ifaddr=
+ while [ "$ifaddr" = "" ]; do
+ echo -n "What is the IP address associated with "
+ echo -n "interface ${intf}? "
+ read ifaddr
+ done
+ echo "$ifaddr $ifname `echo $ifname | sed -e s/\.$dname//`" \
+ >> ${ETC}/hosts
+
+ echo -n "Does this interface have a special netmask? [n] "
+ read resp
+ case "$resp" in
+ y*)
+ echo -n "What is the netmask? [0xffffff00] "
+ read ifnetmask
+ if [ "$ifnetmask" = "" ]; then
+ ifnetmask=0xffffff00
+ fi
+ ;;
+ *)
+ ifnetmask=
+ ;;
+ esac
+
+ echo -n "Does this interface need additional flags? [n] "
+ read resp
+ case "$resp" in
+ y*)
+ echo -n "What flags? [link0] "
+ read ifflags
+ if [ "$ifflags" = "" ]; then
+ ifflags=link0
+ fi
+ ;;
+ *)
+ ifflags=
+ ;;
+ esac
+ echo "inet $ifname $ifnetmask $ifflags" > ${ETC}/hostname.$intf
+
+ echo ""
+ echo -n "WARNING: if you have any more ethernet interfaces, "
+ echo "you will have to configure"
+ echo -n "them by hand. Read the comments in /etc/netstart to "
+ echo "learn how to do this."
+ ;;
+ esac
+
+ echo ""
+ echo -n "Making device nodes (may take a while)..."
+ cd ${DEV}
+ sh MAKEDEV all
+ echo " done."
+
+ sync
+
+ echo ""
+ echo "All that's left to do now is to install the NetBSD kernel on"
+ echo "your hard disk. You should now halt your machine using the"
+ echo "'halt' command. Once the machine is halted, reboot it"
+}
diff --git a/distrib/amiga/floppies/inst/dot.profile b/distrib/amiga/floppies/inst/dot.profile
new file mode 100644
index 00000000000..bd4403e004c
--- /dev/null
+++ b/distrib/amiga/floppies/inst/dot.profile
@@ -0,0 +1,56 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: dot.profile,v 1.1 1995/10/18 08:37:28 deraadt Exp $
+
+PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
+export PATH
+TERM=vt100
+export TERM
+
+umask 022
+
+if [ "X${DONEPROFILE}" = "X" ]; then
+ DONEPROFILE=YES
+
+ # set up some sane defaults
+ echo 'erase ^?, werase ^W, kill ^U, intr ^C'
+ stty newcrt werase ^W intr ^C kill ^U erase ^? 9600
+ echo ''
+
+ # run update, so that installed software is written as it goes.
+ update
+
+ # pull in the functions that people will use from the shell prompt.
+ . /.commonutils
+ . /.instutils
+
+ # run the installation script.
+ install
+fi
diff --git a/distrib/amiga/floppies/inst/install.sh b/distrib/amiga/floppies/inst/install.sh
new file mode 100644
index 00000000000..4ff607482d8
--- /dev/null
+++ b/distrib/amiga/floppies/inst/install.sh
@@ -0,0 +1,291 @@
+#!/bin/sh
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: install.sh,v 1.1 1995/10/18 08:37:28 deraadt Exp $
+
+# NetBSD installation script.
+# In a perfect world, this would be a nice C program, with a reasonable
+# user interface.
+
+FSTABDIR=/mnt/etc # /mnt/etc
+#DONTDOIT==echo
+
+VERSION=1.1
+FSTAB=${FSTABDIR}/fstab
+
+getresp() {
+ read resp
+ if [ "X$resp" = "X" ]; then
+ resp=$1
+ fi
+}
+
+getvar() {
+ echo $(eval $(echo "echo \$$1"))
+}
+
+shiftvar() {
+ local - var
+ var="$1"
+ list="$(getvar $var)"
+ set -- $list
+ shift
+ setvar $var "$*"
+}
+
+getparts() {
+ disklabel $1 2>/dev/null | sed -e '/^[ ][ ][ad-p]/!d' |
+ sed -e 's,^[ ]*\([a-p]\):[ ]*[0-9]*[ ]*[0-9]*[ ][ ]*\([a-zA-Z0-9.]*\).*,\1 \2,' |
+ sed -e ':a
+ N;${s/\n/ /g;p;d;}
+ ba'
+}
+
+getdrives() {
+ local du thispart
+ for du in /dev/r${drivetype}?a; do
+ dd if=$du of=/dev/null bs=1b count=1 >/dev/null 2>&1
+ if [ $? -eq 0 ]; then
+ thisunit=`echo $du | sed -e 's,/dev/r\(...\)a,\1,g'`
+ driveunits="$driveunits $thisunit"
+ else
+ continue;
+ fi
+ setvar $thisunit "$(getparts $thisunit)"
+ export $thisunit
+ done
+ export drivenunits
+}
+
+prepdrive() {
+ echo "which drive would you like to prepare next?"
+ echo "choices are: ${driveunits}"
+ echo ""
+ getresp
+ case $resp in
+ *) ;;
+ esac
+}
+
+echo "Welcome to the NetBSD ${VERSION} installation program."
+echo ""
+echo "This program is designed to help you put NetBSD on your hard disk,"
+echo "in a simple and rational way. Its main objective is to format,"
+echo "mount and create an fstab for your root (/) and user (/usr)"
+echo "partitions."
+echo ""
+echo "As with anything which modifies your hard drive's contents, this"
+echo "program can cause SIGNIFICANT data loss, and you are advised"
+echo "to make sure your hard drive is backed up before beginning the"
+echo "installation process."
+echo ""
+echo "Default answers are displayed in brackets after the questions."
+echo "You can hit Control-C at any time to quit, but if you do so at a"
+echo "prompt, you may have to hit return. Also, quitting in the middle of"
+echo "installation may leave your system in an inconsistent state."
+echo ""
+echo -n "Proceed with installation? [n] "
+getresp "n"
+case "$resp" in
+ y*|Y*)
+ echo "scanning for the root device"
+ ;;
+ *)
+ echo ""
+ echo "OK, then. Enter 'halt' at the prompt to halt the"
+ echo "machine. Once the machine has halted, remove the"
+ echo "floppy and press any key to reboot."
+ exit
+ ;;
+esac
+
+drivetype=sd
+sect_fwd=""
+
+# find out what units are possible for that disk, and query the user.
+getdrives
+for du in $driveunits; do
+ set -- $(getvar $du)
+ if [ $# -ge 2 -a "$1" = "a" -a "`echo $2 | sed -e 's,.*BSD.*,BSD,'`" = "BSD" ]; then
+ rdev=$du
+ fi
+done
+
+echo ""
+echo "The following root devices are available on your machine:"
+echo " "${driveunits}
+echo ""
+prefdev=${rdev}
+rdev=""
+while [ "X${rdev}" = "X" ]; do
+ echo -n "Which device would you like to install on ? [${prefdev}] "
+ getresp ${prefdev}
+ otherdrives=`echo "${driveunits}" | sed -e s,${resp},,`
+ if [ "X${driveunits}" = "X${otherdrives}" ]; then
+ echo ""
+ echo "\"${resp}\" is an invalid drive name. Valid choices"
+ echo "are: "${driveunits}
+ else
+ rdev=${resp}
+ fi
+done
+
+echo ""
+echo "The root device you have chosen is on: ${rdev}"
+echo ""
+# driveunits=`ls /dev/${drivetype}?a | sed -e 's,/dev/\(...\)a,\1,g'`
+if [ "X${driveunits}" = "X" ]; then
+ echo "FATAL ERROR:"
+ echo "No devices for disks of type '${drivetype}'."
+ echo "This is probably a bug in the install disks."
+ echo "Exiting install program."
+ exit
+fi
+
+echo ""
+echo "THIS IS YOUR LAST CHANCE!!!"
+echo ""
+echo "(answering yes will format your root partition on $rdev)"
+echo -n "Are you SURE you want NetBSD installed on your hard drive? (yes/no) "
+answer=""
+while [ "$answer" = "" ]; do
+ getresp
+ case $resp in
+ yes|YES)
+ echo ""
+ answer=yes
+ ;;
+ no|NO)
+ echo ""
+ echo -n "OK, then. enter 'halt' to halt the machine. "
+ echo "Once the machine has halted,"
+ echo -n "remove the floppy, and press any key to "
+ echo "reboot."
+ exit
+ ;;
+ *)
+ echo -n "I want a yes or no answer... well? "
+ ;;
+ esac
+done
+echo "Initializing / (root) filesystem, and mounting..."
+$DONTDOIT newfs /dev/r${rdev}a $name
+$DONTDOIT mount -v /dev/${rdev}a /mnt
+echo ""
+echo -n "Creating a fstab..."
+mkdir -p $FSTABDIR
+echo "/dev/${rdev}a / ffs rw 1 1" > $FSTAB
+
+# get rid of this partition
+shiftvar $rdev
+shiftvar $rdev
+
+echo ""
+echo "Now lets setup your /usr file system"
+echo "(Once a valid input for drive and partition is seen"
+echo "it will be FORMATTED and inserted in the fstab.)"
+while [ "X$usrpart" = "X" ]; do
+ resp=""
+ drivename=""
+ while [ "X$resp" = "X" ]; do
+ echo "choices: $driveunits"
+ echo "which drive do you want /usr on?"
+ getresp
+ set -- $driveunits
+ while [ $# -gt 0 ]; do
+ if [ "X$resp" = "X$1" ]; then
+ drivename=$1
+ break;
+ else
+ shift
+ fi
+ done
+ if [ "X$drivename" != "X" ]; then
+ break
+ fi
+ done
+
+ usrpart=""
+ echo "You have selected $drivename"
+ echo "here is a list of partitions on $drivename"
+ disklabel $drivename 2>/dev/null | sed -e '/^[ ][ ][ad-p]:/p;/^#[ \t]*size/p;d'
+ echo "which partition would you like to format and have"
+ echo -n "mounted as /usr? (supply the letter): "
+ getresp
+ if [ "X$resp" = "X" ]; then
+ continue;
+ fi
+
+ list=$(getvar $drivename)
+ set -- $list
+ while [ $# -gt 0 ]; do
+ if [ "$resp" = "$1" ]; then
+ if [ "`echo $2 | sed -e 's,.*BSD.*,BSD,'`" != "BSD" ]; then
+ echo ""
+ echo -n "$drivename$resp is of type $2 which is not"
+ echo " a BSD filesystem type"
+ break
+ fi
+ usrpart=$drivename$resp
+ break
+ else
+ shift
+ shift
+ fi
+ done
+ if [ "X$usrpart" = "X" ]; then
+ echo "$resp is not a valid input."
+ echo ""
+ fi
+done
+
+echo ""
+echo "Initializing /usr filesystem, and mounting..."
+$DONTDOIT newfs /dev/r${usrpart} $name
+$DONTDOIT mkdir -p /mnt/usr
+$DONTDOIT mount -v /dev/${usrpart} /mnt/usr
+echo ""
+echo -n "Adding to fstab..."
+echo "/dev/${usrpart} /usr ffs rw 1 2" >> $FSTAB
+sync
+echo " done."
+
+echo ""
+echo ""
+echo "OK! The preliminary work of setting up your disk is now complete,"
+echo "and you can install the actual NetBSD software."
+echo ""
+echo "Right now, your root is mounted on /mnt and your usr on /mnt/usr."
+echo "You should consult the installation notes to determine how to load"
+echo "and install the NetBSD distribution sets, and how to configure your"
+echo "system when you are done."
+echo ""
+echo "GOOD LUCK!"
+echo ""
diff --git a/distrib/amiga/floppies/inst/list b/distrib/amiga/floppies/inst/list
new file mode 100644
index 00000000000..79a711eea49
--- /dev/null
+++ b/distrib/amiga/floppies/inst/list
@@ -0,0 +1,10 @@
+# $Id: list,v 1.1 1995/10/18 08:37:28 deraadt Exp $
+
+# the disktab explanation file
+COPY disktab.preinstall etc
+
+# and the installation tools
+COPY dot.profile .profile
+COPY dot.instutils .instutils
+COPY install.sh install
+SPECIAL chmod 755 install
diff --git a/distrib/amiga/floppies/list2sh.awk b/distrib/amiga/floppies/list2sh.awk
new file mode 100644
index 00000000000..11f260acd47
--- /dev/null
+++ b/distrib/amiga/floppies/list2sh.awk
@@ -0,0 +1,39 @@
+# $Id: list2sh.awk,v 1.1 1995/10/18 08:37:27 deraadt Exp $
+
+BEGIN {
+ printf("cd ${CURDIR}\n");
+ printf("\n");
+}
+/^$/ || /^#/ {
+ print $0;
+ next;
+}
+$1 == "COPY" {
+ printf("echo '%s'\n", $0);
+ printf("cp %s ${TARGDIR}/%s\n", $2, $3);
+ next;
+}
+$1 == "LINK" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR}; ln %s %s)\n", $2, $3);
+ next;
+}
+$1 == "SPECIAL" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR};");
+ for (i = 2; i <= NF; i++)
+ printf(" %s", $i);
+ printf(")\n");
+ next;
+}
+{
+ printf("echo '%s'\n", $0);
+ printf("echo 'Unknown keyword \"%s\" at line %d of input.'\n", $1, NR);
+ printf("exit 1\n");
+ exit 1;
+}
+END {
+ printf("\n");
+ printf("exit 0\n");
+ exit 0;
+}
diff --git a/distrib/amiga/floppies/runlist.sh b/distrib/amiga/floppies/runlist.sh
new file mode 100644
index 00000000000..91c7b2f0582
--- /dev/null
+++ b/distrib/amiga/floppies/runlist.sh
@@ -0,0 +1,13 @@
+# $Id: runlist.sh,v 1.1 1995/10/18 08:37:27 deraadt Exp $
+
+if [ "X$1" = "X-d" ]; then
+ SHELLCMD=cat
+ shift
+else
+ SHELLCMD="sh -e"
+fi
+
+( while [ "X$1" != "X" ]; do
+ cat $1
+ shift
+done ) | awk -f ${TOPDIR}/list2sh.awk | ${SHELLCMD}
diff --git a/distrib/amiga/floppies/upgr/Makefile b/distrib/amiga/floppies/upgr/Makefile
new file mode 100644
index 00000000000..fffd67f16ac
--- /dev/null
+++ b/distrib/amiga/floppies/upgr/Makefile
@@ -0,0 +1,8 @@
+# $Id: Makefile,v 1.1 1995/10/18 08:37:29 deraadt Exp $
+
+TOP= ${.CURDIR}/..
+
+.include "${TOP}/Makefile.inc"
+IMAGE= upgr-${REV}.fs
+
+.include "${TOP}/inst-common/Makefile.inc"
diff --git a/distrib/amiga/floppies/upgr/dot.hdprofile b/distrib/amiga/floppies/upgr/dot.hdprofile
new file mode 100644
index 00000000000..587f91a7eb6
--- /dev/null
+++ b/distrib/amiga/floppies/upgr/dot.hdprofile
@@ -0,0 +1,62 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: dot.hdprofile,v 1.1 1995/10/18 08:37:29 deraadt Exp $
+
+PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
+export PATH
+TERM=vt100
+export TERM
+
+umask 022
+
+if [ "X${DONEPROFILE}" = "X" ]; then
+ DONEPROFILE=YES
+
+ echo "Checking filesystems..."
+ fsck -y
+
+ echo "Mounting filesystems..."
+ mount -a
+
+ # set up some sane defaults
+ echo 'erase ^?, werase ^W, kill ^U, intr ^C'
+ stty newcrt werase ^W intr ^C kill ^U erase ^? 9600
+ echo ''
+
+ # run update, so that installed software is written as it goes.
+ update
+
+ # pull in the functions that people will use from the shell prompt.
+ . /.commonutils
+ . /.upgrutils
+
+ echo "Follow the installation directions to install the NetBSD"
+ echo "distribution sets."
+fi
diff --git a/distrib/amiga/floppies/upgr/dot.profile b/distrib/amiga/floppies/upgr/dot.profile
new file mode 100644
index 00000000000..afc90fa2c1c
--- /dev/null
+++ b/distrib/amiga/floppies/upgr/dot.profile
@@ -0,0 +1,56 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: dot.profile,v 1.1 1995/10/18 08:37:29 deraadt Exp $
+
+PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
+export PATH
+TERM=vt100
+export TERM
+
+umask 022
+
+if [ "X${DONEPROFILE}" = "X" ]; then
+ DONEPROFILE=YES
+
+ # set up some sane defaults
+ echo 'erase ^?, werase ^W, kill ^U, intr ^C'
+ stty newcrt werase ^W intr ^C kill ^U erase ^? 9600
+ echo ''
+
+ # run update, so that installed software is written as it goes.
+ update
+
+ # pull in the functions that people will use from the shell prompt.
+ . /.commonutils
+ . /.upgrutils
+
+ # run the upgrade script.
+ upgrade
+fi
diff --git a/distrib/amiga/floppies/upgr/dot.upgrutils b/distrib/amiga/floppies/upgr/dot.upgrutils
new file mode 100644
index 00000000000..12f820e7c75
--- /dev/null
+++ b/distrib/amiga/floppies/upgr/dot.upgrutils
@@ -0,0 +1,54 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: dot.upgrutils,v 1.1 1995/10/18 08:37:29 deraadt Exp $
+
+# Upgrade cleanup utilites (functions), to make sure a recently-upgraded
+# system is safely runnable. These are meant to be invoked from the shell
+# prompt, by people installing NetBSD.
+
+Cleanup()
+{
+ upgrade_dir=/
+
+ if [ ! -f /etc/fstab ]; then
+ upgrade_dir=/mnt
+ fi
+
+ echo "Cleaning up miscellaneous files in /etc..."
+ chroot $upgrade_dir /usr/sbin/pwd_mkdb -p /etc/master.passwd
+ chroot $upgrade_dir /bin/rm /etc/sendmail.fc > /dev/null 2>&1
+ sync
+ echo "Done."
+
+ echo ""
+ echo "All that's left to do now is to install a new NetBSD kernel"
+ echo "on your hard disk. You should now halt your machine using"
+ echo "the 'halt' command."
+}
diff --git a/distrib/amiga/floppies/upgr/list b/distrib/amiga/floppies/upgr/list
new file mode 100644
index 00000000000..e4a277b4c2a
--- /dev/null
+++ b/distrib/amiga/floppies/upgr/list
@@ -0,0 +1,7 @@
+# $Id: list,v 1.1 1995/10/18 08:37:29 deraadt Exp $
+
+# and the upgrade tools
+COPY dot.profile .profile
+COPY dot.upgrutils .upgrutils
+COPY upgrade.sh upgrade
+SPECIAL chmod 755 upgrade
diff --git a/distrib/amiga/floppies/upgr/upgrade.sh b/distrib/amiga/floppies/upgr/upgrade.sh
new file mode 100644
index 00000000000..238c0fc0cef
--- /dev/null
+++ b/distrib/amiga/floppies/upgr/upgrade.sh
@@ -0,0 +1,283 @@
+#!/bin/sh
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: upgrade.sh,v 1.1 1995/10/18 08:37:29 deraadt Exp $
+
+# NetBSD upgrade script.
+# In a perfect world, this would be a nice C program, with a reasonable
+# user interface.
+
+#DONTDOIT=echo
+
+VERSION=1.1
+
+getresp() {
+ read resp
+ if [ "X$resp" = "X" ]; then
+ resp=$1
+ fi
+}
+
+getvar() {
+ echo $(eval $(echo "echo \$$1"))
+}
+
+shiftvar() {
+ local - var
+ var="$1"
+ list="$(getvar $var)"
+ set -- $list
+ shift
+ setvar $var "$*"
+}
+
+getparts() {
+ disklabel $1 2>/dev/null | sed -e '/^[ ][ ][ad-p]/!d' |
+ sed -e 's,^[ ]*\([a-p]\):[ ]*[0-9]*[ ]*[0-9]*[ ][ ]*\([a-zA-Z0-9.]*\).*,\1 \2,' |
+ sed -e ':a
+ N;${s/\n/ /g;p;d;}
+ ba'
+}
+
+getdrives() {
+ local du thispart
+ for du in /dev/rsd?a; do
+ dd if=$du of=/dev/null bs=1b count=1 >/dev/null 2>&1
+ if [ $? -eq 0 ]; then
+ thisunit=`echo $du | sed -e 's,/dev/r\(...\)a,\1,g'`
+ driveunits="$driveunits $thisunit"
+ else
+ continue;
+ fi
+ setvar $thisunit "$(getparts $thisunit)"
+ export $thisunit
+ done
+ export drivenunits
+}
+
+Convert_fstab() {
+ if [ ! -e /mnt/etc/fstab.ufs ]; then
+ mv /mnt/etc/fstab /mnt/etc/fstab.ufs
+ fi
+ sed "s/ufs/ffs/" /mnt/etc/fstab.ufs >/mnt/etc/fstab
+}
+
+echo "Welcome to the NetBSD ${VERSION} upgrade program."
+echo ""
+echo "This program is designed to help you put the new version of NetBSD"
+echo "on your hard disk, in a simple and rational way. To upgrade, you"
+echo "must have plenty of free space on all partitions which will be"
+echo "upgraded. If you have at least 1MB free on your root partition,"
+echo "and several free on your /usr patition, you should be fine."
+echo ""
+echo "As with anything which modifies your hard drive's contents, this"
+echo "program can cause SIGNIFICANT data loss, and you are advised"
+echo "to make sure your hard drive is backed up before beginning the"
+echo "upgrade process."
+echo ""
+echo "Default answers are displayed in brackets after the questions."
+echo "You can hit Control-C at any time to quit, but if you do so at a"
+echo "prompt, you may have to hit return. Also, quitting in the middle of"
+echo "the upgrade may leave your system in an inconsistent (and unusable)"
+echo "state."
+echo ""
+echo -n "Proceed with upgrade? [n] "
+getresp "n"
+case "$resp" in
+ y*|Y*)
+ echo "Cool! Let's get to it..."
+ ;;
+ *)
+ echo ""
+ echo "OK, then. Enter 'halt' at the prompt to halt the"
+ echo "machine. Once the machine has halted, remove the"
+ echo "floppy and press any key to reboot."
+ exit
+ ;;
+esac
+
+# find out what units are possible, and query the user.
+
+getdrives
+
+if [ "X${driveunits}" = "X" ]; then
+ echo "FATAL ERROR:"
+ echo "No disk devices."
+ echo "This is probably a bug in the install disks."
+ echo "Exiting install program."
+ exit
+fi
+
+echo ""
+echo "The following disks are supported by this upgrade procedure:"
+echo " "${driveunits}
+echo ""
+echo "If your system was previously completely contained within the"
+echo "disks listed above (i.e. if your system didn't occupy any space"
+echo "on disks NOT listed above), this upgrade disk can upgrade your"
+echo "system. If it cannot, hit Control-C at the prompt."
+echo ""
+while [ "X${drivename}" = "X" ]; do
+ echo -n "Which disk contains your root partion? "
+ getresp
+ otherdrives=`echo "${driveunits}" | sed -e s,${resp},,`
+ if [ "X${driveunits}" = "X${otherdrives}" ]; then
+ echo ""
+ echo "\"${resp}\" is an invalid drive name. Valid choices"
+ echo "are: "${driveunits}
+ echo ""
+ else
+ drivename=${resp}
+ fi
+done
+
+echo ""
+echo "Root partition is on ${drivename}a."
+
+echo ""
+echo "Would you like to upgrade your file systems to the new file system"
+echo -n "format? [y] "
+getresp "y"
+case "$resp" in
+ n*|N*)
+ echo ""
+ echo "You should upgrade your file systems with 'fsck -c 2'"
+ echo "as soon as is feasible, because the new file system"
+ echo "code is better-tested and more performant."
+ upgradefs=NO
+ ;;
+ *)
+ upgradefs=YES
+ ;;
+esac
+
+if [ $upgradefs = YES ]; then
+ echo ""
+ echo "Upgrading the file system on ${drivename}a..."
+
+ $DONTDOIT fsck -p -c 2 /dev/r${drivename}a
+ if [ $? != 0 ]; then
+ echo "FATAL ERROR: FILE SYSTEM UPGRADE FAILED."
+ echo "You should probably reboot the machine, fsck your"
+ echo "disk(s), and try the upgrade procedure again."
+ exit 1
+ fi
+ echo "Done."
+fi
+
+echo ""
+echo "Mounting root partition on /mnt..."
+$DONTDOIT mount /dev/${drivename}a /mnt
+if [ $? != 0 ]; then
+ echo "FATAL ERROR: MOUNT FAILED."
+ echo "You should verify that your system is set up as you"
+ echo "described, and re-attempt the upgrade procedure."
+ exit 1
+fi
+echo "Done."
+
+#<<<<<<<<<<<<<<<<<<<<<<<< update etc/fstab to ffs? >>>>>>>>>>>>>>>>>>>>>>>>
+echo ""
+echo -n "Converting ufs entries in fstab to ffs..."
+$DONTDOIT Convert_fstab
+echo "Done."
+
+if [ $upgradefs = YES ]; then
+ echo ""
+ echo -n "Copying new fsck binary to your hard disk..."
+ if [ ! -d /mnt/sbin ]; then
+ $DONTDOIT mkdir /mnt/sbin
+ fi
+ $DONTDOIT cp /sbin/fsck /mnt/sbin/fsck
+ if [ $? != 0 ]; then
+ echo "FATAL ERROR: COPY FAILED."
+ echo "It in unclear why this error would occur. It looks"
+ echo "like you may end up having to upgrade by hand."
+ exit 1
+ fi
+ $DONTDOIT sync
+ echo " Done."
+
+ echo ""
+ echo "Re-mounting root partition read-only..."
+ $DONTDOIT mount -u -o ro /dev/${drivename}a /mnt
+ if [ $? != 0 ]; then
+ echo "FATAL ERROR: RE-MOUNT FAILED."
+ echo "It in unclear why this error would occur. It looks"
+ echo "like you may end up having to upgrade by hand."
+ exit 1
+ fi
+ echo "Done."
+
+ echo ""
+ echo "Upgrading the rest of your file systems..."
+ $DONTDOIT chroot /mnt fsck -p -c 2
+ if [ $? != 0 ]; then
+ echo "FATAL ERROR: FILE SYSTEM UPGRADE(S) FAILED."
+ echo "You should probably reboot the machine, fsck your"
+ echo "file system(s), and try the upgrade procedure"
+ echo "again."
+ exit 1
+ fi
+ echo "Done."
+
+ echo ""
+ echo "Re-mounting root partition read-write..."
+ $DONTDOIT mount -u -o rw /dev/${drivename}a /mnt
+ if [ $? != 0 ]; then
+ echo "FATAL ERROR: RE-MOUNT FAILED."
+ echo "It in unclear why this error would occur. It looks"
+ echo "like you may end up having to upgrade by hand."
+ exit 1
+ fi
+ echo "Done."
+fi
+
+echo ""
+echo "Copying bootstrapping binaries and config files to the hard drive..."
+$DONTDOIT tar -cf - sbin/mount_ffs | (cd /mnt ; tar --unlink -xpf - )
+
+echo ""
+echo "Mounting remaining partitions..."
+$DONTDOIT chroot /mnt mount -at ffs > /dev/null 2>&1
+echo "Done."
+
+echo ""
+echo ""
+echo "OK! The preliminary work of setting up your disk is now complete,"
+echo "and you can now upgrade the actual NetBSD software."
+echo ""
+echo "Right now, your hard disk is mounted on /mnt. You should consult"
+echo "the installation notes to determine how to load and install the new"
+echo "NetBSD distribution sets, and how to clean up after the upgrade"
+echo "software, when you are done."
+echo ""
+echo "GOOD LUCK!"
+echo ""
diff --git a/distrib/atari/Makefile b/distrib/atari/Makefile
new file mode 100644
index 00000000000..1cfd6e9f3c4
--- /dev/null
+++ b/distrib/atari/Makefile
@@ -0,0 +1,5 @@
+# $NetBSD: Makefile,v 1.1.1.1 1995/04/17 19:08:47 leo Exp $
+
+SUBDIR= inst
+
+.include <bsd.subdir.mk>
diff --git a/distrib/atari/Makefile.inc b/distrib/atari/Makefile.inc
new file mode 100644
index 00000000000..a5213083891
--- /dev/null
+++ b/distrib/atari/Makefile.inc
@@ -0,0 +1,4 @@
+# $NetBSD: Makefile.inc,v 1.1.1.1.2.1 1995/10/13 21:06:42 leo Exp $
+
+# Revision is 1.1
+REV= 11
diff --git a/distrib/atari/inst-common/Makefile.inc b/distrib/atari/inst-common/Makefile.inc
new file mode 100644
index 00000000000..05b5554cad4
--- /dev/null
+++ b/distrib/atari/inst-common/Makefile.inc
@@ -0,0 +1,50 @@
+#
+# $NetBSD: Makefile.inc,v 1.1.1.1 1995/04/17 19:08:50 leo Exp $
+#
+
+# TOP is assumed to be defined by Makefile including this one.
+
+CBIN= instbin
+COMMONDIR= ${TOP}/inst-common
+
+MOUNT_POINT?= /mnt
+VND?= vnd0
+VND_DEV= /dev/${VND}c
+VND_RDEV= /dev/r${VND}c
+IMAGE?= xxx-${REV}.fs
+MDEC= ${DESTDIR}/usr/mdec
+
+LISTS= ${COMMONDIR}/list ${.CURDIR}/list
+CRUNCHCONF= ${COMMONDIR}/${CBIN}.conf
+MTREE= ${COMMONDIR}/mtree.conf
+
+all: ${CBIN}
+ dd if=/dev/zero of=${IMAGE} bs=18k count=60
+ vnconfig -v -c ${VND_DEV} ${IMAGE}
+ newfs -O -m 0 -o space -i 3052 -c 60 ${VND_RDEV} floppybt
+ mount ${VND_DEV} ${MOUNT_POINT}
+ mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u
+ TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
+ TARGDIR=${MOUNT_POINT} sh ${TOP}/runlist.sh ${LISTS}
+ @echo ""
+ @df -i ${MOUNT_POINT}
+ @echo ""
+ umount ${MOUNT_POINT}
+ vnconfig -u ${VND_DEV}
+
+unconfig:
+ -umount -f ${MOUNT_POINT}
+ -vnconfig -u ${VND_DEV}
+ -/bin/rm -f ${IMAGE}
+
+${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
+ crunchgen ${CRUNCHCONF}
+
+${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
+ make -f ${CBIN}.mk all
+
+clean cleandir:
+ /bin/rm -f core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}.cache *.o *.lo *.c
+
+.include <bsd.obj.mk>
+.include <bsd.subdir.mk>
diff --git a/distrib/atari/inst-common/dot.commonutils b/distrib/atari/inst-common/dot.commonutils
new file mode 100644
index 00000000000..52edee385dc
--- /dev/null
+++ b/distrib/atari/inst-common/dot.commonutils
@@ -0,0 +1,129 @@
+#
+# $NetBSD: dot.commonutils,v 1.2 1995/05/28 10:50:13 leo Exp $
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+
+# Installation utilites (functions), to get NetBSD installed on
+# the hard disk. These are meant to be invoked from the shell prompt,
+# by people installing NetBSD.
+
+Set_tmp_dir()
+{
+ def_tmp_dir=`pwd`
+ if [ "$def_tmp_dir" = "/" -o "$def_tmp_dir" = "/mnt" ]; then
+ def_tmp_dir=/mnt/usr/distrib
+ fi
+
+ echo -n "What directory should be used to find and/or store "
+ echo "installtion"
+ echo -n "files? [$def_tmp_dir] "
+ read tmp_dir
+ if [ "$tmp_dir" = "" ]; then
+ tmp_dir=$def_tmp_dir
+ fi
+ if [ ! -d "$tmp_dir" ]; then
+ /bin/rm -rf $tmp_dir
+ mkdir -p $tmp_dir
+ fi
+}
+
+Tmp_dir()
+{
+ if [ "$tmp_dir" = "" ]; then
+ Set_tmp_dir
+ fi
+ cd $tmp_dir
+}
+
+Load_fd()
+{
+ Tmp_dir
+ which=
+ while [ "$which" != "a" -a "$which" != "b" ]; do
+ echo -n "Read from which floppy drive ('a' or 'b')? [a] "
+ read which
+ if [ "X$which" = "X" ]; then
+ which=a
+ fi
+ done
+ while echo -n "Insert floppy (hit ^C to terminate, enter to load): "
+ do
+ mount -t msdos /dev/fd0$which /mnt2
+ cp -rp /mnt2/* .
+ umount /mnt2
+ done
+}
+
+Load_tape()
+{
+ Tmp_dir
+ echo -n "Which tape drive will you be using? [rst0] "
+ read which
+ if [ "X$which" = "X" ]; then
+ which=rst0
+ fi
+ echo -n "Insert the tape into the tape drive and hit return to "
+ echo -n "continue..."
+ read foo
+ echo "Extracting files from the tape..."
+ tar xvfp /dev/$which
+ echo "Done."
+}
+
+Extract()
+{
+ Tmp_dir
+ echo -n "Would you like to list the files as they're extracted? [n] "
+ read verbose
+ case $verbose in
+ y*|Y*)
+ tarverbose=v
+ ;;
+ *)
+ tarverbose=
+ ;;
+ esac
+ echo -n "Are you installing a '-current' snapshot? [n] "
+ read snapshot
+ case $snapshot in
+ y*|Y*)
+ snapshot=y
+ ;;
+ *)
+ snapshot=n
+ ;;
+ esac
+ if [ $snapshot = n ]
+ then
+ cat "$1".??? | gunzip | (cd / ; tar xfp$tarverbose -)
+ else
+ cat "$1".tar.gz | gunzip | (cd /mnt ; tar xfp$tarverbose -)
+ fi
+}
diff --git a/distrib/atari/inst-common/instbin.conf b/distrib/atari/inst-common/instbin.conf
new file mode 100644
index 00000000000..17c4aaa4ff2
--- /dev/null
+++ b/distrib/atari/inst-common/instbin.conf
@@ -0,0 +1,25 @@
+#
+# $NetBSD: instbin.conf,v 1.5 1995/08/28 20:10:30 leo Exp $
+#
+# kcbin.conf - unified binary for the kc floppy
+#
+
+srcdirs /usr/src/bin /usr/src/sbin /usr/src/usr.bin /usr/src/usr.sbin
+srcdirs /usr/src/gnu/usr.bin
+
+progs cat chmod chown chroot cp dd df disklabel ed expr fsck ftp
+progs gzip ifconfig init ln ls mkdir mknod more mount mount_cd9660
+progs mount_ffs mount_msdos mount_nfs mv newfs printf pwd reboot rm route sed
+progs sh shutdown slattach strings stty sync tar test tip umount update
+
+ln chown chgrp
+ln gzip gzcat gunzip
+ln reboot halt
+ln sh -sh # init invokes the shell this way
+ln test [
+ln mount_ffs ffs
+ln mount_msdos msdos
+ln mount_nfs nfs
+ln mount_cd9660 cd9660
+
+libs -ledit -lutil -ltermcap -lcrypt -ll -lm
diff --git a/distrib/atari/inst-common/list b/distrib/atari/inst-common/list
new file mode 100644
index 00000000000..eacdf29338b
--- /dev/null
+++ b/distrib/atari/inst-common/list
@@ -0,0 +1,78 @@
+#
+# $NetBSD: list,v 1.4 1995/08/25 19:17:45 leo Exp $
+#
+
+# copy the crunched binary, link to it, and kill it
+COPY ${OBJDIR}/instbin instbin
+LINK instbin bin/cat
+LINK instbin bin/chmod
+LINK instbin bin/cp
+LINK instbin bin/df
+LINK instbin bin/dd
+LINK instbin bin/ed
+LINK instbin bin/expr
+LINK instbin bin/ln
+LINK instbin bin/ls
+LINK instbin bin/mkdir
+LINK instbin bin/mv
+LINK instbin bin/pwd
+LINK instbin bin/rm
+LINK instbin bin/sh
+LINK instbin bin/-sh
+LINK instbin bin/stty
+LINK instbin bin/sync
+LINK instbin bin/test
+LINK instbin bin/[
+LINK instbin sbin/disklabel
+LINK instbin sbin/fsck
+LINK instbin sbin/halt
+LINK instbin sbin/ifconfig
+LINK instbin sbin/init
+LINK instbin sbin/mknod
+LINK instbin sbin/mount
+LINK instbin sbin/mount_cd9660
+LINK instbin sbin/mount_msdos
+LINK instbin sbin/mount_nfs
+LINK instbin sbin/mount_ffs
+LINK instbin sbin/newfs
+LINK instbin sbin/reboot
+LINK instbin sbin/route
+LINK instbin sbin/shutdown
+LINK instbin sbin/slattach
+LINK instbin sbin/umount
+LINK instbin usr/bin/chgrp
+LINK instbin usr/bin/ftp
+LINK instbin usr/bin/gunzip
+LINK instbin usr/bin/gzcat
+LINK instbin usr/bin/gzip
+LINK instbin usr/bin/more
+LINK instbin usr/bin/printf
+LINK instbin usr/bin/sed
+LINK instbin usr/bin/strings
+LINK instbin usr/bin/tar
+LINK instbin usr/bin/tip
+LINK instbin usr/sbin/chown
+LINK instbin usr/sbin/chroot
+LINK instbin usr/sbin/update
+SPECIAL /bin/rm instbin
+
+# copy the MAKEDEV script and make some devices
+COPY ${DESTDIR}/dev/MAKEDEV dev/MAKEDEV
+SPECIAL cd dev; sh MAKEDEV floppy
+SPECIAL /bin/rm dev/MAKEDEV
+
+# we need the contents of /usr/mdec (XXX)
+# COPY ${DESTDIR}/usr/mdec/* usr/mdec
+
+# various files that we need in /etc for the install
+COPY ${DESTDIR}/etc/group etc
+COPY ${DESTDIR}/etc/master.passwd etc
+COPY ${DESTDIR}/etc/passwd etc
+COPY ${DESTDIR}/etc/protocols etc
+COPY ${DESTDIR}/etc/pwd.db etc
+COPY ${DESTDIR}/etc/services etc
+COPY ${DESTDIR}/etc/spwd.db etc
+
+# and the common installation tools
+COPY ${TOPDIR}/inst-common/dot.commonutils .commonutils
+COPY ${TOPDIR}/inst-common/termcap.vt usr/share/misc/termcap
diff --git a/distrib/atari/inst-common/mtree.conf b/distrib/atari/inst-common/mtree.conf
new file mode 100644
index 00000000000..f3685ce8659
--- /dev/null
+++ b/distrib/atari/inst-common/mtree.conf
@@ -0,0 +1,74 @@
+#
+# $NetBSD: mtree.conf,v 1.1.1.1 1995/04/17 19:08:50 leo Exp $
+#
+
+/set type=dir uname=root gname=wheel mode=0755
+# .
+.
+
+# ./bin
+bin
+# ./bin
+..
+
+# ./dev
+dev
+# ./dev
+..
+
+# ./etc
+etc
+# ./etc
+..
+
+# ./mnt
+mnt
+# ./mnt
+..
+
+# ./mnt2
+mnt2
+# ./mnt2
+..
+
+# ./sbin
+sbin
+# ./sbin
+..
+
+# ./tmp
+tmp
+# ./tmp
+..
+
+# ./usr
+usr
+
+# ./usr/bin
+bin
+# ./usr/bin
+..
+
+# ./usr/mdec
+mdec
+# ./usr/mdec
+..
+
+# ./usr/sbin
+sbin
+# ./usr/sbin
+..
+
+# ./usr/share
+share
+
+# ./usr/share/misc
+misc
+# ./usr/share/misc
+..
+
+# ./usr/share
+..
+
+# ./usr
+..
diff --git a/distrib/atari/inst-common/termcap.vt b/distrib/atari/inst-common/termcap.vt
new file mode 100644
index 00000000000..fbb4c126fe8
--- /dev/null
+++ b/distrib/atari/inst-common/termcap.vt
@@ -0,0 +1,67 @@
+#
+# $NetBSD: termcap.vt,v 1.1.1.1 1995/04/17 19:08:50 leo Exp $
+#
+# Copyright (c) 1980, 1985, 1989 The Regents of the University of California.
+# 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.
+# 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 University of
+# California, Berkeley and its contributors.
+# 4. Neither the name of the University nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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, 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.
+#
+# @(#)termcap.src 5.109 (Berkeley) 3/8/93
+#
+vt200|vt220|dec-vt220|vt200-js|vt220-js|dec vt200 series with jump scroll:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:ct=\E[3g:dc=\E[P:dl=\E[M:\
+ :ei=\E[4l:im=\E[4h:k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:\
+ :k5=\E[21~:k6=\E[23~:k7=\E[24~:k8=\E[25~:kD=\E[3~:kH=\E[4~:\
+ :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:kh=\E[1~:km:mi:ms:\
+ :if=/usr/share/tabset/vt100:se=\E[27m:st=\EH:ue=\E[24m:\
+ :tc=vt100:
+vt100|dec-vt100|vt100-am|vt100am|dec vt100:\
+ :bl=^G:cr=^M:it#8:\
+ :do=^J:co#80:li#24:cl=50\E[;H\E[2J:sf=2*\ED:\
+ :le=^H:bs:am:cm=5\E[%i%d;%dH:nd=2\E[C:up=2\E[A:cb=3\E[1K:\
+ :ce=3\E[K:cd=50\E[J:so=2\E[7m:se=2\E[m:us=2\E[4m:ue=2\E[m:\
+ :md=2\E[1m:mr=2\E[7m:mb=2\E[5m:me=2\E[m:is=\E[1;24r\E[24;1H:\
+ :if=/usr/share/tabset/vt100:\
+ :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:ks=\E[?1h\E=:ke=\E[?1l\E>:\
+ :ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:kb=^H:\
+ :ho=\E[H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:pt:sr=2*\EM:vt#3:xn:\
+ :sc=\E7:rc=\E8:cs=\E[%i%d;%dr:
+vt300|vt320|vt300-80|VT 300 with 80 columns, on VMS:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:SR=1*\E[%dM:UP=\E[%dA:al=\E[L:\
+ :am:bl=^G:bs:cd=2*\E[J:ce=2*\E[K:cl=45\E[H\E[2J:\
+ :cm=%i\E[%d;%dH:co#80:cr=\r:cs=\E[%i%d;%dr:ct=\E[3g:\
+ :dc=\E[P:dl=\E[M:dm=:do=\ED:ec=\E[%dX:ed=:ei=\E[4l:\
+ :ho=\E[H:ic:im=\E[4h:it#8:k1=\EOP:k2=\EOQ:k3=\EOR:\
+ :k4=\EOS:kd=\E[B:ke=\E[?1l\E>:kl=\E[D:kn#4:kr=\E[C:ks=\E[?1h\E=:\
+ :ku=\E[A:le=^H:li#24:mb=\E[5m:md=\E[1m:me=\E[0m:mi:\
+ :mr=\E[7m:ms:nd=\E[C:nl=\ED:nw=\EE:pf=\E[?4i:po=\E[?5i:\
+ :ps=\E[i:rc=\E8:sc=\E7:se=\E[27m:sf=1*\ED:so=\E[7m:\
+ :sr=1*\EM:st=\EH:ue=\E[24m:up=\EM:us=\E[4m:xn:
diff --git a/distrib/atari/inst/Makefile b/distrib/atari/inst/Makefile
new file mode 100644
index 00000000000..eef4d47169a
--- /dev/null
+++ b/distrib/atari/inst/Makefile
@@ -0,0 +1,8 @@
+# $NetBSD: Makefile,v 1.1.1.1 1995/04/17 19:08:51 leo Exp $
+
+TOP= ${.CURDIR}/..
+
+.include "${TOP}/Makefile.inc"
+IMAGE= inst-${REV}.fs
+
+.include "${TOP}/inst-common/Makefile.inc"
diff --git a/distrib/atari/inst/disktab.preinstall b/distrib/atari/inst/disktab.preinstall
new file mode 100644
index 00000000000..c80b4149751
--- /dev/null
+++ b/distrib/atari/inst/disktab.preinstall
@@ -0,0 +1,32 @@
+#
+# $NetBSD: disktab.preinstall,v 1.1.1.1 1995/04/17 19:08:51 leo Exp $
+#
+# Disk geometry and partition layout tables.
+# Key:
+# dt controller type
+# ty type of disk (fixed, removeable, simulated)
+# d[0-4] drive-type-dependent parameters
+# ns #sectors/track
+# nt #tracks/cylinder
+# nc #cylinders/disk
+# sc #sectors/cylinder, nc*nt default
+# su #sectors/unit, sc*nc default
+# se sector size, DEV_BSIZE default
+# rm rpm, 3600 default
+# sf supports bad144-style bad sector forwarding
+# sk sector skew per track, default 0
+# cs sector skew per cylinder, default 0
+# hs headswitch time, default 0
+# ts one-cylinder seek time, default 0
+# il sector interleave (n:1), 1 default
+# bs boot block size, default BBSIZE
+# sb superblock size, default SBSIZE
+# o[a-h] partition offsets in sectors
+# p[a-h] partition sizes in sectors
+# b[a-h] partition block sizes in bytes
+# f[a-h] partition fragment sizes in bytes
+# t[a-h] partition types (filesystem, swap, etc)
+#
+# All partition sizes reserve space for bad sector tables.
+# (5 cylinders needed for maintenance + replacement sectors)
+#
diff --git a/distrib/atari/inst/dot.instutils b/distrib/atari/inst/dot.instutils
new file mode 100644
index 00000000000..a4d0905ff0d
--- /dev/null
+++ b/distrib/atari/inst/dot.instutils
@@ -0,0 +1,156 @@
+#
+# $NetBSD: dot.instutils,v 1.2 1995/05/10 13:41:08 leo Exp $
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+
+# Installation configuration utilites (functions), to get NetBSD configured
+# reasonably once it is installed on the hard disk. These are meant to be
+# invoked from the shell prompt, by people installing NetBSD.
+
+Configure()
+{
+ DEV=/mnt/dev
+ ETC=/mnt/etc
+
+ echo "You will now be prompted for information about this"
+ echo "machine. If you hit return, the default answer (in"
+ echo "brackets) will be used."
+
+ echo ""
+ echo -n "What is this machine's hostname? [unknown.host.domain] "
+ read hname
+ if [ "$hname" = "" ]; then
+ hname=unknown.host.domain
+ fi
+ echo $hname > ${ETC}/myname
+ proto_domain=`echo $hname | sed -e 's/[^.]*\.//'`
+
+ echo ""
+ echo "What domain is this machine in (this is NOT its YP"
+ echo -n "domain name)? [$proto_domain] "
+ read dname
+ if [ "$dname" = "" ]; then
+ dname=$proto_domain
+ fi
+
+ echo ""
+ if [ -e ${ETC}/sendmail.cf ]; then
+ echo "WARNING: A default sendmail.cf exists, and probably"
+ echo "needs to be tuned and/or replaced, to work properly at"
+ echo "your site!"
+ else
+ echo "WARNING: No default sendmail.cf installed. Did you"
+ echo "forget to install the 'etc' distribution?"
+ fi
+
+ echo "127.0.0.1 localhost localhost.$dname" > ${ETC}/hosts
+
+ echo ""
+ echo -n "Does this machine have an ethernet interface? [y] "
+ read resp
+ case "$resp" in
+ n*)
+ ;;
+ *)
+ intf=
+ while [ "$intf" = "" ]; do
+ echo -n "What is the primary interface name "
+ echo -n "(e.g. ed0, ep0, etc)? "
+ read intf
+ done
+ echo -n "What is the hostname for this interface? [$hname] "
+ read ifname
+ if [ "$ifname" = "" ]; then
+ ifname=$hname
+ fi
+ ifaddr=
+ while [ "$ifaddr" = "" ]; do
+ echo -n "What is the IP address associated with "
+ echo -n "interface ${intf}? "
+ read ifaddr
+ done
+ echo "$ifaddr $ifname `echo $ifname | sed -e s/\.$dname//`" \
+ >> ${ETC}/hosts
+
+ echo -n "Does this interface have a special netmask? [n] "
+ read resp
+ case "$resp" in
+ y*)
+ echo -n "What is the netmask? [0xffffff00] "
+ read ifnetmask
+ if [ "$ifnetmask" = "" ]; then
+ ifnetmask=0xffffff00
+ fi
+ ;;
+ *)
+ ifnetmask=
+ ;;
+ esac
+
+ echo -n "Does this interface need additional flags? [n] "
+ read resp
+ case "$resp" in
+ y*)
+ echo -n "What flags? [link0] "
+ read ifflags
+ if [ "$ifflags" = "" ]; then
+ ifflags=link0
+ fi
+ ;;
+ *)
+ ifflags=
+ ;;
+ esac
+ echo "inet $ifname $ifnetmask $ifflags" > ${ETC}/hostname.$intf
+
+ echo ""
+ echo -n "WARNING: if you have any more ethernet interfaces, "
+ echo "you will have to configure"
+ echo -n "them by hand. Read the comments in /etc/netstart to"
+ echo "learn how to do this."
+ ;;
+ esac
+
+ echo ""
+ echo -n "Making device nodes..."
+ cd ${DEV}
+ sh MAKEDEV all
+ echo " done."
+
+ sync
+
+ echo ""
+ echo "All that's left to do now is to install the NetBSD kernel on"
+ echo "your hard disk. You should now halt your machine using the"
+ echo "'halt' command. Once the machine is halted, replace the"
+ echo "installation floppy with the kernel-copy floppy and hit any"
+ echo "key to reboot. Use the kernel-copy floppy to copy a kernel"
+ echo "to your hard disk."
+}
diff --git a/distrib/atari/inst/dot.profile b/distrib/atari/inst/dot.profile
new file mode 100644
index 00000000000..fae70afd0c8
--- /dev/null
+++ b/distrib/atari/inst/dot.profile
@@ -0,0 +1,52 @@
+#
+# $NetBSD: dot.profile,v 1.2 1995/05/10 13:39:28 leo Exp $
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+
+PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
+export PATH
+TERM=vt200
+export TERM
+
+# set up some sane defaults
+echo 'erase ^?, werase ^H, kill ^U, intr ^C'
+stty newcrt werase ^H intr ^C kill ^U erase ^? 9600
+echo ''
+
+# start running update, so that installed software is written as it goes.
+update
+
+# pull in the function definitions that people will use from the shell prompt.
+. /.commonutils
+. /.instutils
+
+# run the installation script.
+umask 022
+install
diff --git a/distrib/atari/inst/install.sh b/distrib/atari/inst/install.sh
new file mode 100644
index 00000000000..51802b8f00a
--- /dev/null
+++ b/distrib/atari/inst/install.sh
@@ -0,0 +1,273 @@
+#!/bin/sh
+#
+# $NetBSD: install.sh,v 1.2 1995/08/25 19:17:28 leo Exp $
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+
+# NetBSD installation script.
+# In a perfect world, this would be a nice C program, with a reasonable
+# user interface.
+
+FSTABDIR=/mnt/etc # /mnt/etc
+#DONTDOIT=echo
+
+VERSION=1.0
+FSTAB=${FSTABDIR}/fstab
+
+getresp() {
+ read resp
+ if [ "X$resp" = "X" ]; then
+ resp=$1
+ fi
+}
+
+getvar() {
+ echo $(eval $(echo "echo \$$1"))
+}
+
+shiftvar() {
+ local - var
+ var="$1"
+ list="$(getvar $var)"
+ set -- $list
+ shift
+ setvar $var "$*"
+}
+
+getparts() {
+ disklabel $1 2>/dev/null | sed -e '/^[ ][ ][ad-p]/!d' |
+ sed -e 's,^[ ]*\([a-p]\):[ ]*[0-9]*[ ]*[0-9]*[ ][ ]*\([a-zA-Z0-9.]*\).*,\1 \2,' |
+ sed -e ':a
+ N;${s/\n/ /g;p;d;}
+ ba'
+}
+
+getdrives() {
+ local du thispart
+ for du in /dev/r${drivetype}?a; do
+ dd if=$du of=/dev/null bs=1b count=1 >/dev/null 2>&1
+ if [ $? -eq 0 ]; then
+ thisunit=`echo $du | sed -e 's,/dev/r\(...\)a,\1,g'`
+ driveunits="$driveunits $thisunit"
+ else
+ continue;
+ fi
+ setvar $thisunit "$(getparts $thisunit)"
+ export $thisunit
+ done
+ export drivenunits
+}
+
+prepdrive() {
+ echo "which drive would you like to prepare next?"
+ echo "choices are: ${driveunits}"
+ echo ""
+ getresp
+ case $resp in
+ *) ;;
+ esac
+}
+
+echo "Welcome to the NetBSD ${VERSION} installation program."
+echo ""
+echo "This program is designed to help you put NetBSD on your hard disk,"
+echo "in a simple and rational way. Its main objective is to format,"
+echo "mount and create an fstab for your root (/) and user (/usr)"
+echo "partitions."
+echo ""
+echo "As with anything which modifies your hard drive's contents, this"
+echo "program can cause SIGNIFICANT data loss, and you are advised"
+echo "to make sure your hard drive is backed up before beginning the"
+echo "installation process."
+echo ""
+echo "Default answers are displyed in brackets after the questions."
+echo "You can hit Control-C at any time to quit, but if you do so at a"
+echo "prompt, you may have to hit return. Also, quitting in the middle of"
+echo "installation may leave your system in an inconsistent state."
+echo ""
+echo -n "Proceed with installation? [n] "
+getresp "n"
+case "$resp" in
+ y*|Y*)
+ echo "scanning for the root device"
+ ;;
+ *)
+ echo ""
+ echo "OK, then. Enter 'halt' at the prompt to halt the"
+ echo "machine. Once the machine has halted, remove the"
+ echo "floppy and press any key to reboot."
+ exit
+ ;;
+esac
+
+drivetype=sd
+sect_fwd=""
+
+# find out what units are possible for that disk, and query the user.
+getdrives
+for du in $driveunits; do
+ set -- $(getvar $du)
+ if [ $# -ge 2 -a "$1" = "a" -a "`echo $2 | sed -e 's,.*BSD.*,BSD,'`" = "BSD" ]; then
+ rdev=$du
+ fi
+done
+
+echo ""
+echo "The root device you have chosen is on: ${rdev}"
+echo ""
+# driveunits=`ls /dev/${drivetype}?a | sed -e 's,/dev/\(...\)a,\1,g'`
+if [ "X${driveunits}" = "X" ]; then
+ echo "FATAL ERROR:"
+ echo "No devices for disks of type '${drivetype}'."
+ echo "This is probably a bug in the install disks."
+ echo "Exiting install program."
+ exit
+fi
+
+echo ""
+echo "THIS IS YOUR LAST CHANCE!!!"
+echo ""
+echo "(answering yes will format your root partition on $rdev)"
+echo -n "Are you SURE you want NetBSD installed on your hard drive? (yes/no) "
+answer=""
+while [ "$answer" = "" ]; do
+ getresp
+ case $resp in
+ yes|YES)
+ echo ""
+ answer=yes
+ ;;
+ no|NO)
+ echo ""
+ echo -n "OK, then. enter 'halt' to halt the machine. "
+ echo "Once the machine has halted,"
+ echo -n "remove the floppy, and press any key to "
+ echo "reboot."
+ exit
+ ;;
+ *)
+ echo -n "I want a yes or no answer... well? "
+ ;;
+ esac
+done
+echo "Initializing / (root) filesystem, and mounting..."
+$DONTDOIT newfs /dev/r${rdev}a $name
+$DONTDOIT mount_ffs /dev/${rdev}a /mnt
+echo ""
+echo -n "Creating a fstab..."
+mkdir -p $FSTABDIR
+echo "/dev/${rdev}a / ffs rw 1 1" > $FSTAB
+
+# get rid of this partition
+shiftvar $rdev
+shiftvar $rdev
+
+echo ""
+echo "Now lets setup your /usr file system"
+echo "(Once a valid input for drive and partition is seen"
+echo "it will be FORMATTED and inserted in the fstab.)"
+while [ "X$usrpart" = "X" ]; do
+ resp=""
+ drivename=""
+ while [ "X$resp" = "X" ]; do
+ echo "choices: $driveunits"
+ echo "which drive do you want /usr on?"
+ getresp
+ set -- $driveunits
+ while [ $# -gt 0 ]; do
+ if [ "X$resp" = "X$1" ]; then
+ drivename=$1
+ break;
+ else
+ shift
+ fi
+ done
+ if [ "X$drivename" != "X" ]; then
+ break
+ fi
+ done
+
+ usrpart=""
+ echo "You have selected $drivename"
+ echo "here is a list of partitions on $drivename"
+ disklabel $drivename 2>/dev/null | sed -e '/^[ ][ ][ad-p]:/p;/^#[ \t]*size/p;d'
+ echo "which partition would you like to format and have"
+ echo -n "mounted as /usr? (supply the letter): "
+ getresp
+ if [ "X$resp" = "X" ]; then
+ continue;
+ fi
+
+ list=$(getvar $drivename)
+ set -- $list
+ while [ $# -gt 0 ]; do
+ if [ "$resp" = "$1" ]; then
+ if [ "`echo $2 | sed -e 's,.*BSD.*,BSD,'`" != "BSD" ]; then
+ echo ""
+ echo -n "$drivename$resp is of type $2 which is not"
+ echo " a BSD filesystem type"
+ break
+ fi
+ usrpart=$drivename$resp
+ break
+ else
+ shift
+ shift
+ fi
+ done
+ if [ "X$usrpart" = "X" ]; then
+ echo "$resp is not a valid input."
+ echo ""
+ fi
+done
+
+echo ""
+echo "Initializing /usr filesystem, and mounting..."
+$DONTDOIT newfs /dev/r${usrpart} $name
+$DONTDOIT mkdir -p /mnt/usr
+$DONTDOIT mount_ffs /dev/${usrpart} /mnt/usr
+echo ""
+echo -n "Adding to fstab..."
+echo "/dev/${usrpart} /usr ffs rw 1 2" >> $FSTAB
+sync
+echo " done."
+
+echo ""
+echo ""
+echo "OK! The preliminary work of setting up your disk is now complete,"
+echo "and you can install the actual NetBSD software."
+echo ""
+echo "Right now, your root is mounted on /mnt and your usr on /mnt/usr."
+echo "You should consult the installation notes to determine how to load"
+echo "and install the NetBSD distribution sets, and how to configure your"
+echo "system when you are done."
+echo ""
+echo "GOOD LUCK!"
+echo ""
diff --git a/distrib/atari/inst/list b/distrib/atari/inst/list
new file mode 100644
index 00000000000..eada7879ad8
--- /dev/null
+++ b/distrib/atari/inst/list
@@ -0,0 +1,10 @@
+# $NetBSD: list,v 1.1.1.1 1995/04/17 19:08:52 leo Exp $
+
+# the disktab explanation file
+COPY disktab.preinstall etc
+
+# and the installation tools
+COPY dot.profile .profile
+COPY dot.instutils .instutils
+COPY install.sh install
+SPECIAL chmod 755 install
diff --git a/distrib/atari/list2sh.awk b/distrib/atari/list2sh.awk
new file mode 100644
index 00000000000..ff3018c5e53
--- /dev/null
+++ b/distrib/atari/list2sh.awk
@@ -0,0 +1,39 @@
+# $NetBSD: list2sh.awk,v 1.1.1.1 1995/04/17 19:08:49 leo Exp $
+
+BEGIN {
+ printf("cd ${CURDIR}\n");
+ printf("\n");
+}
+/^$/ || /^#/ {
+ print $0;
+ next;
+}
+$1 == "COPY" {
+ printf("echo '%s'\n", $0);
+ printf("cp %s ${TARGDIR}/%s\n", $2, $3);
+ next;
+}
+$1 == "LINK" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR}; ln %s %s)\n", $2, $3);
+ next;
+}
+$1 == "SPECIAL" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR};");
+ for (i = 2; i <= NF; i++)
+ printf(" %s", $i);
+ printf(")\n");
+ next;
+}
+{
+ printf("echo '%s'\n", $0);
+ printf("echo 'Unknown keyword \"%s\" at line %d of input.'\n", $1, NR);
+ printf("exit 1\n");
+ exit 1;
+}
+END {
+ printf("\n");
+ printf("exit 0\n");
+ exit 0;
+}
diff --git a/distrib/atari/runlist.sh b/distrib/atari/runlist.sh
new file mode 100644
index 00000000000..c5d15f50c5f
--- /dev/null
+++ b/distrib/atari/runlist.sh
@@ -0,0 +1,13 @@
+# $NetBSD: runlist.sh,v 1.1.1.1 1995/04/17 19:08:49 leo Exp $
+
+if [ "X$1" = "X-d" ]; then
+ SHELLCMD=cat
+ shift
+else
+ SHELLCMD="sh -e"
+fi
+
+( while [ "X$1" != "X" ]; do
+ cat $1
+ shift
+done ) | awk -f ${TOPDIR}/list2sh.awk | ${SHELLCMD}
diff --git a/distrib/crunch/COPYRIGHT b/distrib/crunch/COPYRIGHT
new file mode 100644
index 00000000000..c7b4d2f9ae5
--- /dev/null
+++ b/distrib/crunch/COPYRIGHT
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 1994 University of Maryland
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of U.M. not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. U.M. makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ *
+ * U.M. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL U.M.
+ * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: James da Silva, Systems Design and Analysis Group
+ * Computer Science Department
+ * University of Maryland at College Park
+ */
diff --git a/distrib/crunch/Makefile b/distrib/crunch/Makefile
new file mode 100644
index 00000000000..a38e0b9061d
--- /dev/null
+++ b/distrib/crunch/Makefile
@@ -0,0 +1,4 @@
+
+SUBDIR=crunchgen crunchide
+
+.include <bsd.subdir.mk>
diff --git a/distrib/crunch/Makefile.inc b/distrib/crunch/Makefile.inc
new file mode 100644
index 00000000000..da421050521
--- /dev/null
+++ b/distrib/crunch/Makefile.inc
@@ -0,0 +1,2 @@
+# modify to taste
+BINDIR?= /usr/bin
diff --git a/distrib/crunch/README b/distrib/crunch/README
new file mode 100644
index 00000000000..845a8c40a79
--- /dev/null
+++ b/distrib/crunch/README
@@ -0,0 +1,89 @@
+
+CRUNCH 0.3 README 7/23/94
+
+Crunch is available via anonymous ftp to ftp.cs.umd.edu in
+ pub/bsd/crunch-0.3.tar.gz
+
+WHAT'S NEW IN 0.3
+
+* The prototype awk script has been replaced by a more capable and
+ hopefully more robust C program.
+* No fragile template makefiles or dependencies on the details of the
+ bsd build environment.
+* You can build crunched binaries even with no sources on-line, you
+ just need the .o files. Crunchgen still will try to figure out as
+ much as possible on its own, but you can override its guessing by
+ specifying the list of .o files explicitly.
+* Crunch itself has been bmake'd and some man pages written, so it
+ should be ready to install.
+* Added patch for FreeBSD from Jordan Hubbard, plus the .conf files used
+ for the FreeBSD install floppies as examples.
+
+
+INTRODUCTION
+
+Crunch is a little package that helps create "crunched" binaries for use
+on boot, install, and fixit floppies. A crunched binary in this case is
+one where many programs have been linked together into one a.out file.
+The different programs are run depending on the value of argv[0], so
+hard links to the crunched binary suffice to simulate a perfectly normal
+system.
+
+As an example, I have created an 980K crunched "fixit" binary containing
+the following programs in their entirety:
+
+ cat chmod cp date dd df echo ed expr hostname kill ln ls mkdir
+ mt mv pwd rcp rm rmdir sh sleep stty sync test [ badsect chown
+ clri disklabel dump rdump dmesg fdisk fsck halt ifconfig init
+ mknod mount newfs ping reboot restore rrestore swapon umount
+ ftp rsh sed telnet rlogin vi cpio gzip gunzip gzcat
+
+Note carefully: vi, cpio, gzip, ed, sed, dump/restore, some networking
+utilities, and the disk management utilities, all in a binary small
+enough to fit on a 1.2 MB root filesystem floppy (albeit with the kernel
+on its own boot floppy). A more reasonable subset can be made to fit
+easily with a kernel for a decent one-disk fixit filesystem.
+
+The linking together of different programs by hand is an old
+space-saving technique. Crunch automates the process by building the
+necessary stub files and makefile for you (via the crunchgen program),
+and by doctoring the symbol tables of the component .o files to allow
+them to link without "symbol multiply defined" conflicts (via the
+crunchide program).
+
+
+BUILDING CRUNCH
+
+Just type make, then make install.
+
+Crunch was written and tested under NetBSD/i386, but should work under
+other PC BSD systems that use GNU ld.
+
+The crunchgen(1) and crunchide(1) man pages have more details on using
+crunch, and the examples subdirectory contains some working .conf files
+and a sample Makefile.
+
+CREDITS
+
+Thanks to the NetBSD team for a consistently high quality effort in
+bringing together a solid, state of the art development environment.
+
+Thanks to the FreeBSD guys; Rod Grimes, Nate Williams and Jordan
+Hubbard; and to Bruce Evans, for immediate and detailed feedback on
+crunch 0.1, and for pressing me to make the prototype more useable.
+
+Crunch was written for the Maruti Hard Real-Time Operating System
+project at the University of Maryland, to help make for better install
+and recovery procedures for our NetBSD-based development environment. It
+is copyright (c) 1994 by the University of Maryland under a UCB-style
+freely- redistributable notice. See the file COPYRIGHT for details.
+
+Please let me know of any problems or of enhancements you make to this
+package. I'm particularly interested in the details of what you found
+was good to put on your fixit or install disks. Thanks!
+
+Share and Enjoy,
+Jaime
+............................................................................
+: Stand on my shoulders, : jds@cs.umd.edu : James da Silva
+: not on my toes. : uunet!mimsy!jds : http://www.cs.umd.edu/users/jds
diff --git a/distrib/crunch/crunchgen/Makefile b/distrib/crunch/crunchgen/Makefile
new file mode 100644
index 00000000000..98e5fae82ee
--- /dev/null
+++ b/distrib/crunch/crunchgen/Makefile
@@ -0,0 +1,10 @@
+
+PROG=crunchgen
+SRCS=crunchgen.c crunched_skel.c
+CFLAGS+=-g -Wall
+CLEANFILES+= crunched_skel.c
+
+crunched_skel.c: crunched_main.c
+ sh ${.CURDIR}/mkskel.sh ${.CURDIR}/crunched_main.c > crunched_skel.c
+
+.include <bsd.prog.mk>
diff --git a/distrib/crunch/crunchgen/crunched_main.c b/distrib/crunch/crunchgen/crunched_main.c
new file mode 100644
index 00000000000..a07317aa5a6
--- /dev/null
+++ b/distrib/crunch/crunchgen/crunched_main.c
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 1994 University of Maryland
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of U.M. not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. U.M. makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ *
+ * U.M. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL U.M.
+ * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: James da Silva, Systems Design and Analysis Group
+ * Computer Science Department
+ * University of Maryland at College Park
+ */
+/*
+ * crunched_main.c - main program for crunched binaries, it branches to a
+ * particular subprogram based on the value of argv[0]. Also included
+ * is a little program invoked when the crunched binary is called via
+ * its EXECNAME. This one prints out the list of compiled-in binaries,
+ * or calls one of them based on argv[1]. This allows the testing of
+ * the crunched binary without creating all the links.
+ */
+#include <stdio.h>
+#include <string.h>
+
+struct stub {
+ char *name;
+ int (*f)();
+};
+
+extern struct stub entry_points[];
+
+int main(int argc, char **argv)
+{
+ char *slash, *basename;
+ struct stub *ep;
+
+ if(argv[0] == NULL || *argv[0] == '\0')
+ crunched_usage();
+
+ slash = strrchr(argv[0], '/');
+ basename = slash? slash+1 : argv[0];
+
+ for(ep=entry_points; ep->name != NULL; ep++)
+ if(!strcmp(basename, ep->name)) break;
+
+ if(ep->name)
+ return ep->f(argc, argv);
+ else {
+ fprintf(stderr, "%s: %s not compiled in\n", EXECNAME, basename);
+ crunched_usage();
+ }
+}
+
+
+int crunched_main(int argc, char **argv)
+{
+ struct stub *ep;
+ int columns, len;
+
+ if(argc <= 1)
+ crunched_usage();
+
+ return main(--argc, ++argv);
+}
+
+
+int crunched_usage()
+{
+ int columns, len;
+ struct stub *ep;
+
+ fprintf(stderr, "Usage: %s <prog> <args> ..., where <prog> is one of:\n",
+ EXECNAME);
+ columns = 0;
+ for(ep=entry_points; ep->name != NULL; ep++) {
+ len = strlen(ep->name) + 1;
+ if(columns+len < 80)
+ columns += len;
+ else {
+ fprintf(stderr, "\n");
+ columns = len;
+ }
+ fprintf(stderr, " %s", ep->name);
+ }
+ fprintf(stderr, "\n");
+ exit(1);
+}
+
+/* end of crunched_main.c */
+
diff --git a/distrib/crunch/crunchgen/crunchgen.1 b/distrib/crunch/crunchgen/crunchgen.1
new file mode 100644
index 00000000000..0e3f4bf4c2f
--- /dev/null
+++ b/distrib/crunch/crunchgen/crunchgen.1
@@ -0,0 +1,274 @@
+.\"
+.\" Copyright (c) 1994 University of Maryland
+.\" All Rights Reserved.
+.\"
+.\" Permission to use, copy, modify, distribute, and sell this software and its
+.\" documentation for any purpose is hereby granted without fee, provided that
+.\" the above copyright notice appear in all copies and that both that
+.\" copyright notice and this permission notice appear in supporting
+.\" documentation, and that the name of U.M. not be used in advertising or
+.\" publicity pertaining to distribution of the software without specific,
+.\" written prior permission. U.M. makes no representations about the
+.\" suitability of this software for any purpose. It is provided "as is"
+.\" without express or implied warranty.
+.\"
+.\" U.M. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL U.M.
+.\" BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+.\" IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.\" Author: James da Silva, Systems Design and Analysis Group
+.\" Computer Science Department
+.\" University of Maryland at College Park
+.\"
+.Dd June 14, 1994
+.Dt CRUNCHGEN 1
+.Os BSD 4
+.Sh NAME
+.Nm \&crunchgen
+.Nd generates build environment for a crunched binary
+.Sh SYNOPSIS
+.Nm \&crunchgen
+.Op Fl fq
+.Op Fl m Ar makefile-name
+.Op Fl c Ar c-file-name
+.Op Fl e Ar exec-file-name
+.Op Fl D Ar src-root
+.Op Fl L Ar lib-dir
+.Op Ar conf-file
+.Sh DESCRIPTION
+
+A crunched binary is a program made up of many other programs linked
+together into a single executable. The crunched binary main()
+function determines which component program to run by the contents of
+argv[0]. The main reason to crunch programs together is for fitting
+as many programs as possible onto an installation or system recovery
+floppy.
+
+.Pp
+.Nm Crunchgen
+reads in the specifications in
+.Ar conf-file
+for a crunched binary, and generates a Makefile and accompanying
+top-level C source file that when built create the crunched executable
+file from the component programs. For each component program,
+.Nm crunchgen
+can optionally attempt to determine the object (.o) files that make up
+the program from its source directory Makefile. This information is
+cached between runs.
+.Nm Crunchgen
+uses the companion program
+.Nm crunchide
+to eliminate link-time conflicts between the component programs by
+hiding all unnecessary symbols.
+
+.Pp
+After
+.Nm crunchgen
+is run, the crunched binary can be built by running ``make -f
+<conf-name>.mk''. The component programs' object files must already
+be built. A ``objs'' target, included in the output makefile, will
+run make in each component program's source dir to build the object
+files for the user. This is not done automatically since in release
+engineering circumstances it is generally not desireable to be
+modifying objects in other directories.
+
+.Pp
+The options are as follows:
+.Bl -tag -width indent
+.It Fl c Ar c-file-name
+Set output C file name to
+.Ar c-file-name .
+The default name is ``<conf-name>.c''.
+.It Fl e Ar exec-file-name
+Set crunched binary executable file name to
+.Ar exec-file-name .
+The default name is ``<conf-name>''.
+.It Fl f
+Flush cache. Forces the recalculation of cached parameters.
+.It Fl m Ar makefile-name
+Set output Makefile name to
+.Ar makefile-name .
+The default name is ``<conf-name>.mk''.
+.It Fl q
+Quiet operation. Status messages are suppressed.
+.It Fl D Ar src-root
+Assume that relative source directory specifications begin with
+.Ar srt-root .
+.It Fl L Ar lib-dir
+Try to obtain libraries from
+.Ar lib-dir .
+.El
+.Sh CRUNCHGEN CONFIGURATION FILE COMMANDS
+
+.Nm Crunchgen
+reads specifications from the
+.Ar conf-file
+that describe the components of the crunched binary. In its simplest
+use, the component program names are merely listed along with the
+top-level source directories in which their sources can be found.
+.Nm Crunchgen
+then calculates (via the source makefiles) and caches the
+list of object files and their locations. For more specialized
+situations, the user can specify by hand all the parameters that
+.Nm crunchgen
+needs.
+.Pp
+The
+.Ar conf-file
+commands are as follows:
+.Bl -tag -width indent
+.It Nm srcdirs Ar dirname ...
+A list of source trees in which the source directories of the
+component programs can be found. These dirs are searched using the
+BSD ``<source-dir>/<progname>/'' convention. Multiple
+.Nm srcdirs
+lines can be specified. The directories are searched in the order
+they are given.
+.It Nm progs Ar progname ...
+A list of programs that make up the crunched binary. Multiple
+.Nm progs
+lines can be specified.
+.It Nm libs Ar libspec ...
+A list of library specifications to be included in the crunched binary link.
+Multiple
+.Nm libs
+lines can be specified.
+.It Nm ln Ar progname linkname
+Causes the crunched binary to invoke
+.Ar progname
+whenever
+.Ar linkname
+appears in argv[0]. This allows programs that change their behavior when
+run under different names to operate correctly.
+.El
+
+To handle specialized situations, such as when the source is not
+available or not built via a conventional Makefile, the following
+.Nm special
+commands can be used to set
+.Nm crunchgen
+parameters for a component program.
+.Bl -tag -width indent
+.It Nm special Ar progname Nm srcdir Ar pathname
+Set the source directory for
+.Ar progname .
+This is normally calculated by searching the specified
+.Nm srcdirs
+for a directory named
+.Ar progname .
+.It Nm special Ar progname Nm objdir Ar pathname
+Set the obj directory for
+.Ar progname .
+This is normally calculated by looking for a directory named
+.Dq Pa obj
+under the
+.Ar srcdir ,
+and if that is not found, the
+.Ar srcdir
+itself becomes the
+.Ar objdir .
+.It Nm special Ar progname Nm objs Ar object-file-name ...
+Set the list of object files for program
+.Ar progname .
+This is normally calculated by constructing a temporary makefile that includes
+.Dq Nm srcdir / Pa Makefile
+and outputs the value of $(OBJS).
+.It Nm special Ar progname Nm objpaths Ar full-pathname-to-object-file ...
+Sets the pathnames of the object files for program
+.Ar progname .
+This is normally calculated by prepending the
+.Nm objdir
+pathname to each file in the
+.Nm objs
+list.
+.El
+
+.Pp
+Only the
+.Nm objpaths
+parameter is actually needed by
+.Nm crunchgen ,
+but it is calculated from
+.Nm objdir
+and
+.Nm objs ,
+which are in turn calculated from
+.Nm srcdir ,
+so is sometimes convenient to specify the earlier parameters and let
+.Nm crunchgen
+calculate forward from there if it can.
+
+.Pp
+The makefile produced by
+.Nm crunchgen
+contains an optional
+.Ar objs
+target that will build the object files for each component program by
+running make inside that program's source directory. For this to work the
+.Nm srcdir
+and
+.Nm objs
+parameters must also be valid. If they are not valid for a particular program, that
+program is skipped in the
+.Ar objs
+target.
+.Sh EXAMPLE
+Here is an example
+.Nm crunchgen
+input conf file, named
+.Dq Pa kcopy.conf :
+.Pp
+.nf
+ srcdirs /usr/src/bin /usr/src/sbin
+
+ progs test cp echo sh fsck halt init mount umount myinstall
+ ln test [ # test can be invoked via [
+ ln sh -sh # init invokes the shell with "-sh" in argv[0]
+
+ special myprog objpaths /homes/leroy/src/myinstall.o # no sources
+
+ libs -lutil -lcrypt
+.fi
+.Pp
+This conf file specifies a small crunched binary consisting of some
+basic system utilities plus a homegrown install program ``myinstall'',
+for which no source directory is specified, but its object file is
+specified directly with the
+.Nm special
+line.
+.Pp
+The crunched binary ``kcopy'' can be built as follows:
+.Pp
+.nf
+ % crunchgen -m Makefile kcopy.conf # gen Makefile and kcopy.c
+ % make objs # build the component progams' .o files
+ % make # build the crunched binary kcopy
+ % kcopy sh # test that this invokes a sh shell
+ $ # it works!
+.fi
+.Pp
+At this point the binary ``kcopy'' can be copied onto an install floppy
+and hard-linked to the names of the component programs.
+.Sh SEE ALSO
+.Xr crunchide 1
+.Sh CAVEATS
+While
+.Nm crunch
+takes care to eliminate link conflicts between the component programs
+of a crunched binary, conflicts are still possible between the
+libraries that are linked in. Some shuffling in the order of
+libraries may be required, and in some rare cases two libraries may
+have an unresolveable conflict and thus cannot be crunched together.
+.Pp
+Some versions of the BSD build environment do not by default build the
+intermediate object file for single-source file programs. The ``make
+objs'' target must then be used to get those object files built, or
+some other arrangements made.
+.Sh AUTHOR
+.Nm Crunch
+was written by James da Silva <jds@cs.umd.edu>.
+.sp 0
+Copyright (c) 1994 University of Maryland. All Rights Reserved.
diff --git a/distrib/crunch/crunchgen/crunchgen.c b/distrib/crunch/crunchgen/crunchgen.c
new file mode 100644
index 00000000000..277a805ef34
--- /dev/null
+++ b/distrib/crunch/crunchgen/crunchgen.c
@@ -0,0 +1,879 @@
+/*
+ * Copyright (c) 1994 University of Maryland
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of U.M. not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. U.M. makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ *
+ * U.M. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL U.M.
+ * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: James da Silva, Systems Design and Analysis Group
+ * Computer Science Department
+ * University of Maryland at College Park
+ */
+/*
+ * ========================================================================
+ * crunchgen.c
+ *
+ * Generates a Makefile and main C file for a crunched executable,
+ * from specs given in a .conf file.
+ */
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <ctype.h>
+#include <string.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/param.h>
+
+#define CRUNCH_VERSION "0.2"
+
+#define MAXLINELEN 16384
+#define MAXFIELDS 2048
+
+
+/* internal representation of conf file: */
+
+/* simple lists of strings suffice for most parms */
+
+typedef struct strlst {
+ struct strlst *next;
+ char *str;
+} strlst_t;
+
+/* progs have structure, each field can be set with "special" or calculated */
+
+typedef struct prog {
+ struct prog *next;
+ char *name, *ident;
+ char *srcdir, *objdir;
+ strlst_t *objs, *objpaths;
+ strlst_t *links;
+ int goterror;
+} prog_t;
+
+
+/* global state */
+
+strlst_t *srcdirs = NULL;
+strlst_t *libs = NULL;
+prog_t *progs = NULL;
+
+char line[MAXLINELEN];
+
+char confname[MAXPATHLEN], infilename[MAXPATHLEN];
+char outmkname[MAXPATHLEN], outcfname[MAXPATHLEN], execfname[MAXPATHLEN];
+char tempfname[MAXPATHLEN], cachename[MAXPATHLEN], curfilename[MAXPATHLEN];
+char topdir[MAXPATHLEN];
+char libdir[MAXPATHLEN] = "/usr/lib";
+int linenum = -1;
+int goterror = 0;
+
+char *pname = "crunchgen";
+
+int verbose, readcache; /* options */
+int reading_cache;
+
+/* general library routines */
+
+void status(char *str);
+void out_of_memory(void);
+void add_string(strlst_t **listp, char *str);
+int is_dir(char *pathname);
+int is_nonempty_file(char *pathname);
+
+/* helper routines for main() */
+
+void usage(void);
+void parse_conf_file(void);
+void gen_outputs(void);
+
+
+int main(int argc, char **argv)
+{
+ char *p;
+ int optc;
+ extern int optind;
+ extern char *optarg;
+
+ verbose = 1;
+ readcache = 1;
+ *outmkname = *outcfname = *execfname = '\0';
+
+ if(argc > 0) pname = argv[0];
+
+ while((optc = getopt(argc, argv, "m:c:e:fqD:L:")) != -1) {
+ switch(optc) {
+ case 'f': readcache = 0; break;
+ case 'q': verbose = 0; break;
+
+ case 'm': strcpy(outmkname, optarg); break;
+ case 'c': strcpy(outcfname, optarg); break;
+ case 'e': strcpy(execfname, optarg); break;
+
+ case 'D': strcpy(topdir, optarg); break;
+ case 'L': strcpy(libdir, optarg); break;
+
+ case '?':
+ default: usage();
+ }
+ }
+
+ argc -= optind;
+ argv += optind;
+
+ if(argc != 1) usage();
+
+ /*
+ * generate filenames
+ */
+
+ strcpy(infilename, argv[0]);
+
+ /* confname = `basename infilename .conf` */
+
+ if((p=strrchr(infilename, '/')) != NULL) strcpy(confname, p+1);
+ else strcpy(confname, infilename);
+ if((p=strrchr(confname, '.')) != NULL && !strcmp(p, ".conf")) *p = '\0';
+
+ if(!*outmkname) sprintf(outmkname, "%s.mk", confname);
+ if(!*outcfname) sprintf(outcfname, "%s.c", confname);
+ if(!*execfname) sprintf(execfname, "%s", confname);
+
+ sprintf(cachename, "%s.cache", confname);
+ sprintf(tempfname, ".tmp_%sXXXXXX", confname);
+ if(mktemp(tempfname) == NULL) {
+ perror(tempfname);
+ exit(1);
+ }
+
+ parse_conf_file();
+ gen_outputs();
+
+ exit(goterror);
+}
+
+
+void usage(void)
+{
+ fprintf(stderr,
+ "%s [-fq] [-m <makefile>] [-c <c file>] [-e <exec file>] <conffile>\n",
+ pname);
+ exit(1);
+}
+
+
+/*
+ * ========================================================================
+ * parse_conf_file subsystem
+ *
+ */
+
+/* helper routines for parse_conf_file */
+
+void parse_one_file(char *filename);
+void parse_line(char *line, int *fc, char **fv, int nf);
+void add_srcdirs(int argc, char **argv);
+void add_progs(int argc, char **argv);
+void add_link(int argc, char **argv);
+void add_libs(int argc, char **argv);
+void add_special(int argc, char **argv);
+
+prog_t *find_prog(char *str);
+void add_prog(char *progname);
+
+
+void parse_conf_file(void)
+{
+ if(!is_nonempty_file(infilename)) {
+ fprintf(stderr, "%s: fatal: input file \"%s\" not found.\n",
+ pname, infilename);
+ exit(1);
+ }
+ parse_one_file(infilename);
+ if(readcache && is_nonempty_file(cachename)) {
+ reading_cache = 1;
+ parse_one_file(cachename);
+ }
+}
+
+
+void parse_one_file(char *filename)
+{
+ char *fieldv[MAXFIELDS];
+ int fieldc;
+ void (*f)(int c, char **v);
+ FILE *cf;
+
+ sprintf(line, "reading %s", filename);
+ status(line);
+ strcpy(curfilename, filename);
+
+ if((cf = fopen(curfilename, "r")) == NULL) {
+ perror(curfilename);
+ goterror = 1;
+ return;
+ }
+
+ linenum = 0;
+ while(fgets(line, MAXLINELEN, cf) != NULL) {
+ linenum++;
+ parse_line(line, &fieldc, fieldv, MAXFIELDS);
+ if(fieldc < 1) continue;
+ if(!strcmp(fieldv[0], "srcdirs")) f = add_srcdirs;
+ else if(!strcmp(fieldv[0], "progs")) f = add_progs;
+ else if(!strcmp(fieldv[0], "ln")) f = add_link;
+ else if(!strcmp(fieldv[0], "libs")) f = add_libs;
+ else if(!strcmp(fieldv[0], "special")) f = add_special;
+ else {
+ fprintf(stderr, "%s:%d: skipping unknown command `%s'.\n",
+ curfilename, linenum, fieldv[0]);
+ goterror = 1;
+ continue;
+ }
+ if(fieldc < 2) {
+ fprintf(stderr,
+ "%s:%d: %s command needs at least 1 argument, skipping.\n",
+ curfilename, linenum, fieldv[0]);
+ goterror = 1;
+ continue;
+ }
+ f(fieldc, fieldv);
+ }
+
+ if(ferror(cf)) {
+ perror(curfilename);
+ goterror = 1;
+ }
+ fclose(cf);
+}
+
+
+void parse_line(char *line, int *fc, char **fv, int nf)
+{
+ char *p;
+
+ p = line;
+ *fc = 0;
+ while(1) {
+ while(isspace(*p)) p++;
+ if(*p == '\0' || *p == '#') break;
+
+ if(*fc < nf) fv[(*fc)++] = p;
+ while(*p && !isspace(*p) && *p != '#') p++;
+ if(*p == '\0' || *p == '#') break;
+ *p++ = '\0';
+ }
+ if(*p) *p = '\0'; /* needed for '#' case */
+}
+
+
+void add_srcdirs(int argc, char **argv)
+{
+ int i;
+ char tmppath[MAXPATHLEN];
+
+ for(i=1;i<argc;i++) {
+ if (argv[i][0] == '/' || topdir[0] == '\0')
+ strcpy(tmppath, argv[i]);
+ else {
+ strcpy(tmppath, topdir);
+ strcat(tmppath, "/");
+ strcat(tmppath, argv[i]);
+ }
+ if(is_dir(tmppath))
+ add_string(&srcdirs, tmppath);
+ else {
+ fprintf(stderr, "%s:%d: `%s' is not a directory, skipping it.\n",
+ curfilename, linenum, tmppath);
+ goterror = 1;
+ }
+ }
+}
+
+
+void add_progs(int argc, char **argv)
+{
+ int i;
+
+ for(i=1;i<argc;i++)
+ add_prog(argv[i]);
+}
+
+
+void add_prog(char *progname)
+{
+ prog_t *p1, *p2;
+
+ /* add to end, but be smart about dups */
+
+ for(p1 = NULL, p2 = progs; p2 != NULL; p1 = p2, p2 = p2->next)
+ if(!strcmp(p2->name, progname)) return;
+
+ p2 = malloc(sizeof(prog_t));
+ if(p2) p2->name = strdup(progname);
+ if(!p2 || !p2->name)
+ out_of_memory();
+
+ p2->next = NULL;
+ if(p1 == NULL) progs = p2;
+ else p1->next = p2;
+
+ p2->ident = p2->srcdir = p2->objdir = NULL;
+ p2->links = p2->objs = NULL;
+ p2->goterror = 0;
+}
+
+
+void add_link(int argc, char **argv)
+{
+ int i;
+ prog_t *p = find_prog(argv[1]);
+
+ if(p == NULL) {
+ fprintf(stderr,
+ "%s:%d: no prog %s previously declared, skipping link.\n",
+ curfilename, linenum, argv[1]);
+ goterror = 1;
+ return;
+ }
+ for(i=2;i<argc;i++)
+ add_string(&p->links, argv[i]);
+}
+
+
+void add_libs(int argc, char **argv)
+{
+ int i;
+
+ for(i=1;i<argc;i++)
+ add_string(&libs, argv[i]);
+}
+
+
+void add_special(int argc, char **argv)
+{
+ int i;
+ prog_t *p = find_prog(argv[1]);
+
+ if(p == NULL) {
+ if(reading_cache) return;
+ fprintf(stderr,
+ "%s:%d: no prog %s previously declared, skipping special.\n",
+ curfilename, linenum, argv[1]);
+ goterror = 1;
+ return;
+ }
+
+ if(!strcmp(argv[2], "ident")) {
+ if(argc != 4) goto argcount;
+ if((p->ident = strdup(argv[3])) == NULL)
+ out_of_memory();
+ }
+ else if(!strcmp(argv[2], "srcdir")) {
+ if(argc != 4) goto argcount;
+ if((p->srcdir = strdup(argv[3])) == NULL)
+ out_of_memory();
+ }
+ else if(!strcmp(argv[2], "objdir")) {
+ if(argc != 4) goto argcount;
+ if((p->objdir = strdup(argv[3])) == NULL)
+ out_of_memory();
+ }
+ else if(!strcmp(argv[2], "objs")) {
+ p->objs = NULL;
+ for(i=3;i<argc;i++)
+ add_string(&p->objs, argv[i]);
+ }
+ else if(!strcmp(argv[2], "objpaths")) {
+ p->objpaths = NULL;
+ for(i=3;i<argc;i++)
+ add_string(&p->objpaths, argv[i]);
+ }
+ else {
+ fprintf(stderr, "%s:%d: bad parameter name `%s', skipping line.\n",
+ curfilename, linenum, argv[2]);
+ goterror = 1;
+ }
+ return;
+
+
+ argcount:
+ fprintf(stderr,
+ "%s:%d: too %s arguments, expected \"special %s %s <string>\".\n",
+ curfilename, linenum, argc < 4? "few" : "many", argv[1], argv[2]);
+ goterror = 1;
+}
+
+
+prog_t *find_prog(char *str)
+{
+ prog_t *p;
+
+ for(p = progs; p != NULL; p = p->next)
+ if(!strcmp(p->name, str)) return p;
+
+ return NULL;
+}
+
+
+/*
+ * ========================================================================
+ * gen_outputs subsystem
+ *
+ */
+
+/* helper subroutines */
+
+void remove_error_progs(void);
+void fillin_program(prog_t *p);
+void gen_specials_cache(void);
+void gen_output_makefile(void);
+void gen_output_cfile(void);
+
+void fillin_program_objs(prog_t *p, char *path);
+void top_makefile_rules(FILE *outmk);
+void prog_makefile_rules(FILE *outmk, prog_t *p);
+void output_strlst(FILE *outf, strlst_t *lst);
+char *genident(char *str);
+char *dir_search(char *progname);
+
+
+void gen_outputs(void)
+{
+ prog_t *p;
+
+ for(p = progs; p != NULL; p = p->next)
+ fillin_program(p);
+
+ remove_error_progs();
+ gen_specials_cache();
+ gen_output_cfile();
+ gen_output_makefile();
+ status("");
+ fprintf(stderr,
+ "Run \"make -f %s objs exe\" to build crunched binary.\n",
+ outmkname);
+}
+
+
+void fillin_program(prog_t *p)
+{
+ char path[MAXPATHLEN];
+ char *srcparent;
+ strlst_t *s;
+
+ sprintf(line, "filling in parms for %s", p->name);
+ status(line);
+
+ if(!p->ident)
+ p->ident = genident(p->name);
+ if(!p->srcdir) {
+ srcparent = dir_search(p->name);
+ if(srcparent)
+ sprintf(path, "%s/%s", srcparent, p->name);
+ if(is_dir(path))
+ p->srcdir = strdup(path);
+ }
+ if(!p->objdir && p->srcdir) {
+ sprintf(path, "%s/obj", p->srcdir);
+ if(is_dir(path))
+ p->objdir = strdup(path);
+ else {
+ sprintf(path, "%s/obj.%s", p->srcdir, MACHINE);
+ if(is_dir(path))
+ p->objdir = strdup(path);
+ else
+ p->objdir = p->srcdir;
+ }
+ }
+
+ if(p->srcdir) sprintf(path, "%s/Makefile", p->srcdir);
+ if(!p->objs && p->srcdir && is_nonempty_file(path))
+ fillin_program_objs(p, path);
+
+ if(!p->objpaths && p->objdir && p->objs)
+ for(s = p->objs; s != NULL; s = s->next) {
+ sprintf(line, "%s/%s", p->objdir, s->str);
+ add_string(&p->objpaths, line);
+ }
+
+ if(!p->srcdir && verbose)
+ fprintf(stderr, "%s: %s: warning: could not find source directory.\n",
+ infilename, p->name);
+ if(!p->objs && verbose)
+ fprintf(stderr, "%s: %s: warning: could not find any .o files.\n",
+ infilename, p->name);
+
+ if(!p->objpaths) {
+ fprintf(stderr,
+ "%s: %s: error: no objpaths specified or calculated.\n",
+ infilename, p->name);
+ p->goterror = goterror = 1;
+ }
+}
+
+void fillin_program_objs(prog_t *p, char *path)
+{
+ char *obj, *cp;
+ int rc;
+ FILE *f;
+
+ /* discover the objs from the srcdir Makefile */
+
+ if((f = fopen(tempfname, "w")) == NULL) {
+ perror(tempfname);
+ goterror = 1;
+ return;
+ }
+
+ fprintf(f, ".include \"%s\"\n", path);
+ fprintf(f, ".if defined(PROG) && !defined(OBJS)\n");
+ fprintf(f, "OBJS=${PROG}.o\n");
+ fprintf(f, ".endif\n");
+ fprintf(f, "crunchgen_objs:\n\t@echo 'OBJS= '${OBJS}\n");
+ fclose(f);
+
+ sprintf(line, "make -f %s crunchgen_objs 2>&1", tempfname);
+ if((f = popen(line, "r")) == NULL) {
+ perror("submake pipe");
+ goterror = 1;
+ return;
+ }
+
+ while(fgets(line, MAXLINELEN, f)) {
+ if(strncmp(line, "OBJS= ", 6)) {
+ if (strcmp(line,
+ "sh: warning: running as root with dot in PATH\n") == 0)
+ continue;
+ fprintf(stderr, "make error: %s", line);
+ goterror = 1;
+ continue;
+ }
+ cp = line + 6;
+ while(isspace(*cp)) cp++;
+ while(*cp) {
+ obj = cp;
+ while(*cp && !isspace(*cp)) cp++;
+ if(*cp) *cp++ = '\0';
+ add_string(&p->objs, obj);
+ while(isspace(*cp)) cp++;
+ }
+ }
+ if((rc=pclose(f)) != 0) {
+ fprintf(stderr, "make error: make returned %d\n", rc);
+ goterror = 1;
+ }
+ unlink(tempfname);
+}
+
+void remove_error_progs(void)
+{
+ prog_t *p1, *p2;
+
+ p1 = NULL; p2 = progs;
+ while(p2 != NULL) {
+ if(!p2->goterror)
+ p1 = p2, p2 = p2->next;
+ else {
+ /* delete it from linked list */
+ fprintf(stderr, "%s: %s: ignoring program because of errors.\n",
+ infilename, p2->name);
+ if(p1) p1->next = p2->next;
+ else progs = p2->next;
+ p2 = p2->next;
+ }
+ }
+}
+
+void gen_specials_cache(void)
+{
+ FILE *cachef;
+ prog_t *p;
+
+ sprintf(line, "generating %s", cachename);
+ status(line);
+
+ if((cachef = fopen(cachename, "w")) == NULL) {
+ perror(cachename);
+ goterror = 1;
+ return;
+ }
+
+ fprintf(cachef, "# %s - parm cache generated from %s by crunchgen %s\n\n",
+ cachename, infilename, CRUNCH_VERSION);
+
+ for(p = progs; p != NULL; p = p->next) {
+ fprintf(cachef, "\n");
+ if(p->srcdir)
+ fprintf(cachef, "special %s srcdir %s\n", p->name, p->srcdir);
+ if(p->objdir)
+ fprintf(cachef, "special %s objdir %s\n", p->name, p->objdir);
+ if(p->objs) {
+ fprintf(cachef, "special %s objs", p->name);
+ output_strlst(cachef, p->objs);
+ }
+ fprintf(cachef, "special %s objpaths", p->name);
+ output_strlst(cachef, p->objpaths);
+ }
+ fclose(cachef);
+}
+
+
+void gen_output_makefile(void)
+{
+ prog_t *p;
+ FILE *outmk;
+
+ sprintf(line, "generating %s", outmkname);
+ status(line);
+
+ if((outmk = fopen(outmkname, "w")) == NULL) {
+ perror(outmkname);
+ goterror = 1;
+ return;
+ }
+
+ fprintf(outmk, "# %s - generated from %s by crunchgen %s\n\n",
+ outmkname, infilename, CRUNCH_VERSION);
+
+ top_makefile_rules(outmk);
+
+ for(p = progs; p != NULL; p = p->next)
+ prog_makefile_rules(outmk, p);
+
+ fprintf(outmk, "\n# ========\n");
+ fclose(outmk);
+}
+
+
+void gen_output_cfile(void)
+{
+ extern char *crunched_skel[];
+ char **cp;
+ FILE *outcf;
+ prog_t *p;
+ strlst_t *s;
+
+ sprintf(line, "generating %s", outcfname);
+ status(line);
+
+ if((outcf = fopen(outcfname, "w")) == NULL) {
+ perror(outcfname);
+ goterror = 1;
+ return;
+ }
+
+ fprintf(outcf,
+ "/* %s - generated from %s by crunchgen %s */\n",
+ outcfname, infilename, CRUNCH_VERSION);
+
+ fprintf(outcf, "#define EXECNAME \"%s\"\n", execfname);
+ for(cp = crunched_skel; *cp != NULL; cp++)
+ fprintf(outcf, "%s\n", *cp);
+
+ for(p = progs; p != NULL; p = p->next)
+ fprintf(outcf, "extern int _crunched_%s_stub();\n", p->ident);
+
+ fprintf(outcf, "\nstruct stub entry_points[] = {\n");
+ for(p = progs; p != NULL; p = p->next) {
+ fprintf(outcf, "\t{ \"%s\", _crunched_%s_stub },\n",
+ p->name, p->ident);
+ for(s = p->links; s != NULL; s = s->next)
+ fprintf(outcf, "\t{ \"%s\", _crunched_%s_stub },\n",
+ s->str, p->ident);
+ }
+
+ fprintf(outcf, "\t{ EXECNAME, crunched_main },\n");
+ fprintf(outcf, "\t{ NULL, NULL }\n};\n");
+ fclose(outcf);
+}
+
+
+char *genident(char *str)
+{
+ char *n,*s,*d;
+
+ /*
+ * generates a Makefile/C identifier from a program name, mapping '-' to
+ * '_' and ignoring all other non-identifier characters. This leads to
+ * programs named "foo.bar" and "foobar" to map to the same identifier.
+ */
+
+ if((n = strdup(str)) == NULL)
+ return NULL;
+ for(d = s = n; *s != '\0'; s++) {
+ if(*s == '-') *d++ = '_';
+ else if(*s == '_' || isalnum(*s)) *d++ = *s;
+ }
+ *d = '\0';
+ return n;
+}
+
+
+char *dir_search(char *progname)
+{
+ char path[MAXPATHLEN];
+ strlst_t *dir;
+
+ for(dir=srcdirs; dir != NULL; dir=dir->next) {
+ sprintf(path, "%s/%s", dir->str, progname);
+ if(is_dir(path)) return dir->str;
+ }
+ return NULL;
+}
+
+
+void top_makefile_rules(FILE *outmk)
+{
+ prog_t *p;
+
+ fprintf(outmk, "STRIP=strip\n");
+ fprintf(outmk, "LIBS=");
+ fprintf(outmk, "-L%s ", libdir);
+ output_strlst(outmk, libs);
+
+ fprintf(outmk, "CRUNCHED_OBJS=");
+ for(p = progs; p != NULL; p = p->next)
+ fprintf(outmk, " %s.lo", p->name);
+ fprintf(outmk, "\n");
+
+ fprintf(outmk, "SUBMAKE_TARGETS=");
+ for(p = progs; p != NULL; p = p->next)
+ fprintf(outmk, " %s_make", p->ident);
+ fprintf(outmk, "\n\n");
+
+ fprintf(outmk, "%s: %s.o $(CRUNCHED_OBJS)\n",
+ execfname, execfname);
+ fprintf(outmk, "\t$(CC) -static -o %s %s.o $(CRUNCHED_OBJS) $(LIBS)\n",
+ execfname, execfname);
+ fprintf(outmk, "\t$(STRIP) %s\n", execfname);
+ fprintf(outmk, "all: objs exe\nobjs: $(SUBMAKE_TARGETS)\n");
+ fprintf(outmk, "exe: %s\n", execfname);
+ fprintf(outmk, "clean:\n\trm -f %s *.lo *.o *_stub.c\n",
+ execfname);
+}
+
+
+void prog_makefile_rules(FILE *outmk, prog_t *p)
+{
+ fprintf(outmk, "\n# -------- %s\n\n", p->name);
+
+ if(p->srcdir && p->objs) {
+ fprintf(outmk, "%s_SRCDIR=%s\n", p->ident, p->srcdir);
+ fprintf(outmk, "%s_OBJS=", p->ident);
+ output_strlst(outmk, p->objs);
+ fprintf(outmk, "%s_make:\n", p->ident);
+ fprintf(outmk, "\t(cd $(%s_SRCDIR); make $(%s_OBJS))\n\n",
+ p->ident, p->ident);
+ }
+ else
+ fprintf(outmk, "%s_make:\n\t@echo \"** cannot make objs for %s\"\n\n",
+ p->ident, p->name);
+
+ fprintf(outmk, "%s_OBJPATHS=", p->ident);
+ output_strlst(outmk, p->objpaths);
+
+ fprintf(outmk, "%s_stub.c:\n", p->name);
+ fprintf(outmk, "\techo \""
+ "int _crunched_%s_stub(int argc, char **argv, char **envp)"
+ "{return main(argc,argv,envp);}\" >%s_stub.c\n",
+ p->ident, p->name);
+ fprintf(outmk, "%s.lo: %s_stub.o $(%s_OBJPATHS)\n",
+ p->name, p->name, p->ident);
+ fprintf(outmk, "\tld -dc -r -o %s.lo %s_stub.o $(%s_OBJPATHS)\n",
+ p->name, p->name, p->ident);
+ fprintf(outmk, "\tcrunchide -k __crunched_%s_stub %s.lo\n",
+ p->ident, p->name);
+}
+
+void output_strlst(FILE *outf, strlst_t *lst)
+{
+ for(; lst != NULL; lst = lst->next)
+ fprintf(outf, " %s", lst->str);
+ fprintf(outf, "\n");
+}
+
+
+/*
+ * ========================================================================
+ * general library routines
+ *
+ */
+
+void status(char *str)
+{
+ static int lastlen = 0;
+ int len, spaces;
+
+ if(!verbose) return;
+
+ len = strlen(str);
+ spaces = lastlen - len;
+ if(spaces < 1) spaces = 1;
+
+ fprintf(stderr, " [%s]%*.*s\r", str, spaces, spaces, " ");
+ fflush(stderr);
+ lastlen = len;
+}
+
+
+void out_of_memory(void)
+{
+ fprintf(stderr, "%s: %d: out of memory, stopping.\n", infilename, linenum);
+ exit(1);
+}
+
+
+void add_string(strlst_t **listp, char *str)
+{
+ strlst_t *p1, *p2;
+
+ /* add to end, but be smart about dups */
+
+ for(p1 = NULL, p2 = *listp; p2 != NULL; p1 = p2, p2 = p2->next)
+ if(!strcmp(p2->str, str)) return;
+
+ p2 = malloc(sizeof(strlst_t));
+ if(p2) p2->str = strdup(str);
+ if(!p2 || !p2->str)
+ out_of_memory();
+
+ p2->next = NULL;
+ if(p1 == NULL) *listp = p2;
+ else p1->next = p2;
+}
+
+
+int is_dir(char *pathname)
+{
+ struct stat buf;
+
+ if(stat(pathname, &buf) == -1)
+ return 0;
+ return S_ISDIR(buf.st_mode);
+}
+
+int is_nonempty_file(char *pathname)
+{
+ struct stat buf;
+
+ if(stat(pathname, &buf) == -1)
+ return 0;
+
+ return S_ISREG(buf.st_mode) && buf.st_size > 0;
+}
diff --git a/distrib/crunch/crunchgen/mkskel.sh b/distrib/crunch/crunchgen/mkskel.sh
new file mode 100644
index 00000000000..fd53d78bbba
--- /dev/null
+++ b/distrib/crunch/crunchgen/mkskel.sh
@@ -0,0 +1,15 @@
+#! /bin/sh
+# idea and sed lines taken straight from flex
+
+cat <<!EOF
+/* File created via mkskel.sh */
+
+char *crunched_skel[] = {
+!EOF
+
+sed 's/\\/&&/g' $* | sed 's/"/\\"/g' | sed 's/.*/ "&",/'
+
+cat <<!EOF
+ 0
+};
+!EOF
diff --git a/distrib/crunch/crunchide/Makefile b/distrib/crunch/crunchide/Makefile
new file mode 100644
index 00000000000..f6e1a8a4526
--- /dev/null
+++ b/distrib/crunch/crunchide/Makefile
@@ -0,0 +1,4 @@
+
+PROG= crunchide
+
+.include <bsd.prog.mk>
diff --git a/distrib/crunch/crunchide/crunchide.1 b/distrib/crunch/crunchide/crunchide.1
new file mode 100644
index 00000000000..38a04cf6b93
--- /dev/null
+++ b/distrib/crunch/crunchide/crunchide.1
@@ -0,0 +1,68 @@
+.\"
+.\" Copyright (c) 1994 University of Maryland
+.\" All Rights Reserved.
+.\"
+.\" Permission to use, copy, modify, distribute, and sell this software and its
+.\" documentation for any purpose is hereby granted without fee, provided that
+.\" the above copyright notice appear in all copies and that both that
+.\" copyright notice and this permission notice appear in supporting
+.\" documentation, and that the name of U.M. not be used in advertising or
+.\" publicity pertaining to distribution of the software without specific,
+.\" written prior permission. U.M. makes no representations about the
+.\" suitability of this software for any purpose. It is provided "as is"
+.\" without express or implied warranty.
+.\"
+.\" U.M. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL U.M.
+.\" BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+.\" IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.\" Author: James da Silva, Systems Design and Analysis Group
+.\" Computer Science Department
+.\" University of Maryland at College Park
+.\"
+.Dd June 14, 1994
+.Dt CRUNCHIDE 1
+.Os BSD 4
+.Sh NAME
+.Nm crunchide
+.Nd hides symbol names from ld, for crunching programs together
+.Sh SYNOPSIS
+.Nm crunchide
+.Op Fl f Ar keep-list-file
+.Op Fl k Ar keep-symbol
+.Op Ar object-file ...
+.Sh DESCRIPTION
+
+.Nm Crunchide
+hides the global symbols of
+.Ar object-file
+such that they are ignored by subsequent runs of the linker,
+.Xr ld 1 .
+Some symbols may be left visible via the
+.Fl k Ar keep-symbol
+and
+.Fl f Ar keep-list-file
+options. The
+.Ar keep-list-file
+must contain a list of symbols to keep visible, one symbol per line.
+Note that the C compiler prepends an underscore in front of
+symbols, so to keep the C function ``foo'' visible, the option
+\&``-k _foo'' must be used.
+
+.Pp
+.Nm Crunchide
+is designed as a companion program for
+.Xr crunchgen 1 ,
+which automates the process of creating crunched binaries from
+multiple component programs.
+.Sh SEE ALSO
+.Xr crunchgen 1 ,
+.Xr ld 1
+.Sh AUTHOR
+.Nm Crunch
+was written by James da Silva <jds@cs.umd.edu>.
+.sp 0
+Copyright (c) 1994 University of Maryland. All Rights Reserved.
diff --git a/distrib/crunch/crunchide/crunchide.c b/distrib/crunch/crunchide/crunchide.c
new file mode 100644
index 00000000000..ae54da08cf5
--- /dev/null
+++ b/distrib/crunch/crunchide/crunchide.c
@@ -0,0 +1,321 @@
+/*
+ * Copyright (c) 1994 University of Maryland
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of U.M. not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. U.M. makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ *
+ * U.M. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL U.M.
+ * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: James da Silva, Systems Design and Analysis Group
+ * Computer Science Department
+ * University of Maryland at College Park
+ */
+/*
+ * crunchide.c - tiptoes through an a.out symbol table, hiding all defined
+ * global symbols. Allows the user to supply a "keep list" of symbols
+ * that are not to be hidden. This program relies on the use of the
+ * linker's -dc flag to actually put global bss data into the file's
+ * bss segment (rather than leaving it as undefined "common" data).
+ *
+ * The point of all this is to allow multiple programs to be linked
+ * together without getting multiple-defined errors.
+ *
+ * For example, consider a program "foo.c". It can be linked with a
+ * small stub routine, called "foostub.c", eg:
+ * int foo_main(int argc, char **argv){ return main(argc, argv); }
+ * like so:
+ * cc -c foo.c foostub.c
+ * ld -dc -r foo.o foostub.o -o foo.combined.o
+ * crunchide -k _foo_main foo.combined.o
+ * at this point, foo.combined.o can be linked with another program
+ * and invoked with "foo_main(argc, argv)". foo's main() and any
+ * other globals are hidden and will not conflict with other symbols.
+ *
+ * TODO:
+ * - resolve the theoretical hanging reloc problem (see check_reloc()
+ * below). I have yet to see this problem actually occur in any real
+ * program. In what cases will gcc/gas generate code that needs a
+ * relative reloc from a global symbol, other than PIC? The
+ * solution is to not hide the symbol from the linker in this case,
+ * but to generate some random name for it so that it doesn't link
+ * with anything but holds the place for the reloc.
+ * - arrange that all the BSS segments start at the same address, so
+ * that the final crunched binary BSS size is the max of all the
+ * component programs' BSS sizes, rather than their sum.
+ */
+#include <unistd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <fcntl.h>
+#include <a.out.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/errno.h>
+
+char *pname = "crunchide";
+
+void usage(void);
+
+void add_to_keep_list(char *symbol);
+void add_file_to_keep_list(char *filename);
+
+void hide_syms(char *filename);
+
+
+int main(argc, argv)
+int argc;
+char **argv;
+{
+ int ch;
+
+ if(argc > 0) pname = argv[0];
+
+ while ((ch = getopt(argc, argv, "k:f:")) != EOF)
+ switch(ch) {
+ case 'k':
+ add_to_keep_list(optarg);
+ break;
+ case 'f':
+ add_file_to_keep_list(optarg);
+ break;
+ default:
+ usage();
+ }
+
+ argc -= optind;
+ argv += optind;
+
+ if(argc == 0) usage();
+
+ while(argc) {
+ hide_syms(*argv);
+ argc--, argv++;
+ }
+
+ return 0;
+}
+
+void usage(void)
+{
+ fprintf(stderr,
+ "Usage: %s [-k <symbol-name>] [-f <keep-list-file>] <files> ...\n",
+ pname);
+ exit(1);
+}
+
+/* ---------------------------- */
+
+struct keep {
+ struct keep *next;
+ char *sym;
+} *keep_list;
+
+void add_to_keep_list(char *symbol)
+{
+ struct keep *newp, *prevp, *curp;
+ int cmp;
+
+ for(curp = keep_list, prevp = NULL; curp; prevp = curp, curp = curp->next)
+ if((cmp = strcmp(symbol, curp->sym)) <= 0) break;
+
+ if(curp && cmp == 0)
+ return; /* already in table */
+
+ newp = (struct keep *) malloc(sizeof(struct keep));
+ if(newp) newp->sym = strdup(symbol);
+ if(newp == NULL || newp->sym == NULL) {
+ fprintf(stderr, "%s: out of memory for keep list\n", pname);
+ exit(1);
+ }
+
+ newp->next = curp;
+ if(prevp) prevp->next = newp;
+ else keep_list = newp;
+}
+
+int in_keep_list(char *symbol)
+{
+ struct keep *curp;
+ int cmp;
+
+ for(curp = keep_list; curp; curp = curp->next)
+ if((cmp = strcmp(symbol, curp->sym)) <= 0) break;
+
+ return curp && cmp == 0;
+}
+
+void add_file_to_keep_list(char *filename)
+{
+ FILE *keepf;
+ char symbol[1024];
+ int len;
+
+ if((keepf = fopen(filename, "r")) == NULL) {
+ perror(filename);
+ usage();
+ }
+
+ while(fgets(symbol, 1024, keepf)) {
+ len = strlen(symbol);
+ if(len && symbol[len-1] == '\n')
+ symbol[len-1] = '\0';
+
+ add_to_keep_list(symbol);
+ }
+ fclose(keepf);
+}
+
+/* ---------------------- */
+
+int nsyms, ntextrel, ndatarel;
+struct exec *hdrp;
+char *aoutdata, *strbase;
+struct relocation_info *textrel, *datarel;
+struct nlist *symbase;
+
+
+#define SYMSTR(sp) &strbase[(sp)->n_un.n_strx]
+
+/* is the symbol a global symbol defined in the current file? */
+#define IS_GLOBAL_DEFINED(sp) \
+ (((sp)->n_type & N_EXT) && ((sp)->n_type & N_TYPE) != N_UNDF)
+
+/* is the relocation entry dependent on a symbol? */
+#define IS_SYMBOL_RELOC(rp) \
+ ((rp)->r_extern||(rp)->r_baserel||(rp)->r_jmptable)
+
+void check_reloc(char *filename, struct relocation_info *relp);
+
+void hide_syms(char *filename)
+{
+ int inf, outf, rc;
+ struct stat infstat;
+ struct relocation_info *relp;
+ struct nlist *symp;
+
+ /*
+ * Open the file and do some error checking.
+ */
+
+ if((inf = open(filename, O_RDWR)) == -1) {
+ perror(filename);
+ return;
+ }
+
+ if(fstat(inf, &infstat) == -1) {
+ perror(filename);
+ close(inf);
+ return;
+ }
+
+ if(infstat.st_size < sizeof(struct exec)) {
+ fprintf(stderr, "%s: short file\n", filename);
+ close(inf);
+ return;
+ }
+
+ /*
+ * Read the entire file into memory. XXX - Really, we only need to
+ * read the header and from TRELOFF to the end of the file.
+ */
+
+ if((aoutdata = (char *) malloc(infstat.st_size)) == NULL) {
+ fprintf(stderr, "%s: too big to read into memory\n", filename);
+ close(inf);
+ return;
+ }
+
+ if((rc = read(inf, aoutdata, infstat.st_size)) < infstat.st_size) {
+ fprintf(stderr, "%s: read error: %s\n", filename,
+ rc == -1? strerror(errno) : "short read");
+ close(inf);
+ return;
+ }
+
+ /*
+ * Check the header and calculate offsets and sizes from it.
+ */
+
+ hdrp = (struct exec *) aoutdata;
+
+ if(N_BADMAG(*hdrp)) {
+ fprintf(stderr, "%s: bad magic: not an a.out file\n", filename);
+ close(inf);
+ return;
+ }
+
+#ifdef __FreeBSD__
+ textrel = (struct relocation_info *) (aoutdata + N_RELOFF(*hdrp));
+ datarel = (struct relocation_info *) (aoutdata + N_RELOFF(*hdrp) +
+ hdrp->a_trsize);
+#else
+ textrel = (struct relocation_info *) (aoutdata + N_TRELOFF(*hdrp));
+ datarel = (struct relocation_info *) (aoutdata + N_DRELOFF(*hdrp));
+#endif
+ symbase = (struct nlist *) (aoutdata + N_SYMOFF(*hdrp));
+ strbase = (char *) (aoutdata + N_STROFF(*hdrp));
+
+ ntextrel = hdrp->a_trsize / sizeof(struct relocation_info);
+ ndatarel = hdrp->a_drsize / sizeof(struct relocation_info);
+ nsyms = hdrp->a_syms / sizeof(struct nlist);
+
+ /*
+ * Zap the type field of all globally-defined symbols. The linker will
+ * subsequently ignore these entries. Don't zap any symbols in the
+ * keep list.
+ */
+
+ for(symp = symbase; symp < symbase + nsyms; symp++)
+ if(IS_GLOBAL_DEFINED(symp) && !in_keep_list(SYMSTR(symp)))
+ symp->n_type = 0;
+
+ /*
+ * Check whether the relocation entries reference any symbols that we
+ * just zapped. I don't know whether ld can handle this case, but I
+ * haven't encountered it yet. These checks are here so that the program
+ * doesn't fail silently should such symbols be encountered.
+ */
+
+ for(relp = textrel; relp < textrel + ntextrel; relp++)
+ check_reloc(filename, relp);
+ for(relp = datarel; relp < datarel + ndatarel; relp++)
+ check_reloc(filename, relp);
+
+ /*
+ * Write the .o file back out to disk. XXX - Really, we only need to
+ * write the symbol table entries back out.
+ */
+ lseek(inf, 0, SEEK_SET);
+ if((rc = write(inf, aoutdata, infstat.st_size)) < infstat.st_size) {
+ fprintf(stderr, "%s: write error: %s\n", filename,
+ rc == -1? strerror(errno) : "short write");
+ }
+
+ close(inf);
+}
+
+
+void check_reloc(char *filename, struct relocation_info *relp)
+{
+ /* bail out if we zapped a symbol that is needed */
+ if(IS_SYMBOL_RELOC(relp) && symbase[relp->r_symbolnum].n_type == 0) {
+ fprintf(stderr,
+ "%s: oops, have hanging relocation for %s: bailing out!\n",
+ filename, SYMSTR(&symbase[relp->r_symbolnum]));
+ exit(1);
+ }
+}
diff --git a/distrib/crunch/examples/Makefile b/distrib/crunch/examples/Makefile
new file mode 100644
index 00000000000..da8860bd7bc
--- /dev/null
+++ b/distrib/crunch/examples/Makefile
@@ -0,0 +1,29 @@
+
+CRUNCHED= fixit
+
+# below is boiler-plate to make $(CRUNCHED) from $(CRUNCHED).conf
+# I'd use PROG instead of CRUNCHED, but the system makefiles REALLY want
+# to build things in the normal way if you use PROG.
+
+CONF= $(CRUNCHED).conf
+
+OUTMK= $(CRUNCHED).mk
+OUTPUTS= $(OUTMK) $(CRUNCHED).c $(CRUNCHED).cache
+
+NOMAN=
+CLEANFILES+=$(CRUNCHED) $(OUTPUTS) *.o *.lo *_stub.c
+
+all: $(CRUNCHED)
+exe: $(CRUNCHED)
+
+$(OUTPUTS): $(CONF)
+ crunchgen ${.CURDIR}/$(CONF)
+
+$(CRUNCHED): $(OUTPUTS) submake
+
+submake:
+ make -f $(OUTMK)
+objs:
+ make -f $(OUTMK) objs
+
+.include <bsd.prog.mk>
diff --git a/distrib/crunch/examples/fixit.conf b/distrib/crunch/examples/fixit.conf
new file mode 100644
index 00000000000..14c16946381
--- /dev/null
+++ b/distrib/crunch/examples/fixit.conf
@@ -0,0 +1,44 @@
+# fixit.conf - put in anything we think we might want on a fixit floppy
+
+# first, we list the source dirs that our programs reside in. These are
+# searched in order listed to find the dir containing each program.
+
+srcdirs /usr/src/bin /usr/src/sbin /usr/src/usr.bin /usr/src/usr.sbin
+srcdirs /usr/src/gnu/usr.bin
+
+# second, we list all the programs we want to include in our crunched binary.
+# The order doesn't matter. Any program that needs hard links to it gets an
+# `ln' directive.
+
+# /bin stuff
+
+progs cat chmod cp date dd df echo ed expr hostname kill ln ls mkdir
+progs mt mv pwd rcp rm rmdir sh sleep stty sync test
+
+ln test [
+ln sh -sh # init invokes the shell this way
+ln sh -
+
+# /sbin stuff
+
+progs badsect chown clri disklabel dump dmesg fdisk fsck halt ifconfig init
+progs mknod mount newfs ping reboot restore swapon umount
+ln dump rdump
+ln restore rrestore
+
+# /usr/bin stuff
+
+progs ftp rsh sed telnet rlogin vi
+
+# gnu stuff
+
+progs cpio gzip
+ln gzip gunzip
+ln gzip gzcat
+
+# finally, we specify the libraries to link in with our binary
+
+libs -ledit # NetBSDism
+libs -lcrypt # but don't include this when exporting :-(
+libs -lcurses -ltermcap
+libs -lkvm -ltelnet -lutil -ll
diff --git a/distrib/crunch/examples/freebsd-filesystem.conf b/distrib/crunch/examples/freebsd-filesystem.conf
new file mode 100644
index 00000000000..746553a9ac9
--- /dev/null
+++ b/distrib/crunch/examples/freebsd-filesystem.conf
@@ -0,0 +1,26 @@
+# $Id: freebsd-filesystem.conf,v 1.1 1995/10/18 08:37:31 deraadt Exp $
+
+srcdirs /usr/src/bin /usr/src/sbin /usr/src/gnu/usr.bin /usr/src/usr.sbin
+
+# /bin
+progs sh expr ls mkdir rm sync test
+ln test [
+
+# These are needed because of UN*X's idiotic way of indicating that something
+# is a login shell.
+ln sh -
+ln sh -sh
+
+# /sbin
+progs disklabel fdisk halt init mount mount_pcfs newfs umount
+
+# /usr/bin
+progs cpio gzip
+ln gzip gunzip
+ln gzip gzcat
+ln gzip zcat
+
+# /usr/sbin
+progs bad144
+
+libs -lutil
diff --git a/distrib/crunch/examples/freebsd-kcopy.conf b/distrib/crunch/examples/freebsd-kcopy.conf
new file mode 100644
index 00000000000..47f7f17bc9e
--- /dev/null
+++ b/distrib/crunch/examples/freebsd-kcopy.conf
@@ -0,0 +1,18 @@
+# $Id: freebsd-kcopy.conf,v 1.1 1995/10/18 08:37:31 deraadt Exp $
+
+srcdirs /usr/src/bin /usr/src/sbin
+
+# Programs from bin/
+progs sh cp echo test
+ln test [
+
+# These are needed because of UN*X's idiotic way of indicating that something
+# is a login shell.
+ln sh -
+ln sh -sh
+
+#
+# Programs from sbin/
+progs mount mount_isofs mount_pcfs fsck halt init umount
+
+libs -lutil
diff --git a/distrib/crunch/examples/really-big.conf b/distrib/crunch/examples/really-big.conf
new file mode 100644
index 00000000000..ce5083f7051
--- /dev/null
+++ b/distrib/crunch/examples/really-big.conf
@@ -0,0 +1,146 @@
+# really-big.conf - just about everything, just for testing.
+# This ends up having some good examples of the use of specials for
+# those hard-to-reach programs. I stopped when I got tired, but we
+# could probably get even more stuff (like libexec stuff) in here.
+#
+# This produces a 4608000 byte binary. Pretty sick and twisted, eh?
+
+# =========================================================================
+
+srcdirs /usr/src/bin
+
+progs cat chmod cp csh date dd df domainname echo ed expr hostname kill
+progs ln ls mkdir mt mv ps pwd rcp rm rmail rmdir sh sleep stty sync test
+
+ln test [
+ln sh -sh
+
+
+# =========================================================================
+
+srcdirs /usr/src/sbin
+
+progs badsect bim clri disklabel dmesg dump dumpfs fdisk fsck halt
+progs ifconfig init mknod modload modunload mount mount_fdesc mount_isofs
+progs mount_kernfs mount_lofs mount_msdos mount_portal mount_procfs mountd
+progs newfs nfsd nfsiod ping quotacheck reboot restore route routed savecore
+progs shutdown slattach swapon ttyflags tunefs umount
+# shell scripts: fastboot
+
+ln dump rdump
+ln restore rrestore
+
+
+# =========================================================================
+
+srcdirs /usr/src/usr.bin
+
+progs apropos ar asa at basename biff cal calendar cap_mkdb checknr chpass
+progs cksum cmp col colcrt colrm column comm compress crontab ctags cut
+progs dirname du env error expand false file find finger fmt fold fpr from
+progs fsplit fstat ftp getconf getopt gprof head hexdump id indent ipcrm
+progs ipcs join kdump ktrace last lastcomm leave lex lock logger locate
+progs login logname look m4 machine mail make man mesg mkfifo
+progs mkstr modstat more msgs netstat newsyslog nfsstat nice nm nohup
+progs pagesize passwd paste patch pr printenv printf quota ranlib
+progs renice rev rlogin rpcgen rpcinfo rsh rup ruptime rusers rwall rwho
+progs script sed showmount size soelim split strings strip su tail talk
+progs tcopy tee telnet tftp time tip tn3270 touch tput tr true tset tsort
+progs tty ul uname unexpand unifdef uniq units unvis users uudecode uuencode
+progs vacation vgrind vi vis vmstat w wall wc what whatis whereis who
+progs whois window write xargs xinstall xstr yacc yes ypcat ypmatch ypwhich
+
+# shell scripts: lorder mkdep shar which
+# problems: rdist uses libcompat.a(regex.o), which conflicts with
+# libedit(readline.o) over regerror().
+
+# special requirements
+
+special locate srcdir /usr/src/usr.bin/locate/locate
+special tn3270 srcdir /usr/src/usr.bin/tn3270/tn3270
+
+
+# =========================================================================
+
+srcdirs /usr/src/usr.sbin
+
+progs ac accton amd arp bad144 catman chown chroot config config.new cron
+progs dev_mkdb diskpart edquota flcopy gettable grfinfo hilinfo htable inetd
+progs iostat iteconfig kvm_mkdb mrouted mtree named portmap pppd
+progs pstat pwd_mkdb quot quotaon rarpd rbootd repquota rmt rpc.bootparamd
+progs rwhod sa sliplogin slstats spray sysctl syslogd tcpdump
+progs traceroute trpt trsp update vipw vnconfig ypbind yppoll ypset
+
+special amd srcdir /usr/src/usr.sbin/amd/amd
+special amd objs vers.amd.o afs_ops.o am_ops.o clock.o util.o xutil.o efs_ops.o mapc.o info_file.o info_hes.o info_ndbm.o info_passwd.o info_nis.o info_union.o map.o srvr_afs.o srvr_nfs.o mntfs.o misc_rpc.o mount_fs.o mtab.o mtab_bsd.o nfs_ops.o nfs_prot_svc.o nfs_start.o nfs_subr.o opts.o pfs_ops.o rpc_fwd.o sched.o sfs_ops.o amq_svc.o amq_subr.o umount_fs.o host_ops.o nfsx_ops.o ufs_ops.o ifs_ops.o amd.o get_args.o restart.o wire.o
+
+
+srcdirs /usr/src/usr.sbin/lpr # lpr subsystem
+progs lpr lpc lpq lprm pac lptest
+special lpr srcdir /usr/src/usr.sbin/lpr/lpr
+
+srcdirs /usr/src/usr.sbin/sendmail # sendmail subsystem
+progs mailstats makemap praliases sendmail
+special sendmail srcdir /usr/src/usr.sbin/sendmail/src
+ln sendmail newaliases
+ln sendmail mailq
+
+srcdirs /usr/src/usr.sbin/timed # timed & timedc
+progs timed timedc
+special timed srcdir /usr/src/usr.sbin/timed/timed
+
+srcdirs /usr/src/usr.sbin/yp # yp subsystem
+progs ypbind ypwhich ypcat ypmatch ypset yppoll
+
+
+# =========================================================================
+
+srcdirs /usr/src/gnu/usr.bin
+
+progs bc cpio diff diff3 gas gawk grep gzip sdiff sort tar
+# shell scripts: send-pr
+
+srcdirs /usr/src/gnu/usr.bin/ld # ldd and ldconfig
+progs ld ldd ldconfig
+
+# rcs stuff loses because there are cross dependencies between librcs.a and
+# the individual programs. The solution would be to specify the objpaths
+# directly for each one, and include the full path to librcs.a each the
+# objpaths.
+
+# srcdirs /usr/src/gnu/usr.bin/rcs # rcs subsystem
+# progs ci co ident merge rcs rcsclean rcsdiff rcsmerge rlog
+# # shell script: rcsfreeze
+# special rcs srcdir /usr/src/gnu/usr.bin/rcs/rcs
+# libs /usr/src/gnu/usr.bin/rcs/lib/obj/librcs.a
+
+# gdb loses too
+# progs gdb
+# special gdb srcdir /usr/src/gnu/usr.bin/gdb/gdb
+# libs /usr/src/gnu/usr.bin/gdb/bfd/obj/libbfd.a
+# libs /usr/src/gnu/usr.bin/gdb/readline/obj/libreadline.a
+# libs /usr/src/gnu/usr.bin/gdb/libiberty/obj/libiberty.a
+
+# groff has the same problem as rcs
+# srcdirs /usr/src/gnu/usr.bin/groff # groff subsystem
+# progs groff troff tbl pic eqn grops grotty grodvi refer lookbib
+# progs indxbib lkbib tfmtodit addftinfo pfbtops psbb
+# shell script: nroff
+# special groff srcdir /usr/src/gnu/usr.bin/groff/groff
+# libs /usr/src/gnu/usr.bin/groff/libgroff/obj/libgroff.a
+# libs /usr/src/gnu/usr.bin/groff/libbib/obj/libbib.a
+# libs /usr/src/gnu/usr.bin/groff/libdriver/obj/libdriver.a
+
+srcdirs /usr/src/gnu/usr.bin/gcc2 # gcc & friends
+progs cc cpp cc1
+
+# cc1 has the same problem as rcs and groff, but since there's only one program
+# I'll go ahead and solve it as an example.
+
+special cc1 objpaths /usr/src/gnu/usr.bin/gcc2/cc1/obj/c-parse.o /usr/src/gnu/usr.bin/gcc2/cc1/obj/c-lang.o /usr/src/gnu/usr.bin/gcc2/cc1/obj/c-lex.o /usr/src/gnu/usr.bin/gcc2/cc1/obj/c-pragma.o /usr/src/gnu/usr.bin/gcc2/cc1/obj/c-decl.o /usr/src/gnu/usr.bin/gcc2/cc1/obj/c-typeck.o /usr/src/gnu/usr.bin/gcc2/cc1/obj/c-convert.o /usr/src/gnu/usr.bin/gcc2/cc1/obj/c-aux-info.o /usr/src/gnu/usr.bin/gcc2/cc1/obj/c-iterate.o /usr/src/gnu/usr.bin/gcc2/common/obj/libcc1.a
+
+ln gzip gunzip
+ln gzip gzcat
+
+libs -ledit -lgnumalloc -lc -lcrypt -ltermcap -lcurses -ltelnet -lutil -lkvm
+libs -ll -ly -lm -lresolv -lrpcsvc -lcompat
diff --git a/distrib/hp300/Makefile b/distrib/hp300/Makefile
new file mode 100644
index 00000000000..4ebaa58c105
--- /dev/null
+++ b/distrib/hp300/Makefile
@@ -0,0 +1,5 @@
+# $NetBSD: Makefile,v 1.1 1995/10/03 22:47:50 thorpej Exp $
+
+SUBDIR= miniroot
+
+.include <bsd.subdir.mk>
diff --git a/distrib/hp300/miniroot/Makefile b/distrib/hp300/miniroot/Makefile
new file mode 100644
index 00000000000..a37f1d50bc5
--- /dev/null
+++ b/distrib/hp300/miniroot/Makefile
@@ -0,0 +1,5 @@
+# $NetBSD: Makefile,v 1.1 1995/10/03 22:47:53 thorpej Exp $
+
+SUBDIR= inst
+
+.include <bsd.subdir.mk>
diff --git a/distrib/hp300/miniroot/Makefile.inc b/distrib/hp300/miniroot/Makefile.inc
new file mode 100644
index 00000000000..e5d8ce7abe4
--- /dev/null
+++ b/distrib/hp300/miniroot/Makefile.inc
@@ -0,0 +1,4 @@
+# $NetBSD: Makefile.inc,v 1.1 1995/10/03 22:47:55 thorpej Exp $
+
+# Revision is 1.0A
+REV= 10A
diff --git a/distrib/hp300/miniroot/inst-common/Makefile.inc b/distrib/hp300/miniroot/inst-common/Makefile.inc
new file mode 100644
index 00000000000..ac46658a7ee
--- /dev/null
+++ b/distrib/hp300/miniroot/inst-common/Makefile.inc
@@ -0,0 +1,49 @@
+# $NetBSD: Makefile.inc,v 1.1 1995/10/03 22:48:02 thorpej Exp $
+
+# TOP is assumed to be defined by Makefile including this one.
+
+CBIN= instbin
+COMMONDIR= ${TOP}/inst-common
+
+MOUNT_POINT?= /mnt
+VND?= vnd0
+VND_DEV= /dev/${VND}a
+VND_RDEV= /dev/r${VND}a
+IMAGE?= xxx-${REV}.fs
+MDEC= ${DESTDIR}/usr/mdec
+
+LISTS= ${COMMONDIR}/list ${.CURDIR}/list
+CRUNCHCONF= ${COMMONDIR}/${CBIN}.conf
+MTREE= ${COMMONDIR}/mtree.conf
+
+all: ${CBIN}
+ dd if=/dev/zero of=${IMAGE} bs=512k count=10
+ vnconfig -v -c ${VND_DEV} ${IMAGE}
+ newfs -m 0 -o space ${VND_RDEV} miniroot
+ mount ${VND_DEV} ${MOUNT_POINT}
+ mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u
+ TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
+ TARGDIR=${MOUNT_POINT} sh ${TOP}/runlist.sh ${LISTS}
+ @echo ""
+ @df -i ${MOUNT_POINT}
+ @echo ""
+ umount ${MOUNT_POINT}
+ vnconfig -u ${VND_DEV}
+ cat /*bin/* > /dev/null
+
+unconfig:
+ -umount -f ${MOUNT_POINT}
+ -vnconfig -u ${VND_DEV}
+ -/bin/rm -f ${IMAGE}
+
+${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
+ crunchgen -D ${TOP}/../../.. -L ${DESTDIR}/usr/lib ${CRUNCHCONF}
+
+${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
+ make -f ${CBIN}.mk all
+
+clean cleandir:
+ /bin/rm -f core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}.cache *.o *.lo *.c
+
+.include <bsd.obj.mk>
+.include <bsd.subdir.mk>
diff --git a/distrib/hp300/miniroot/inst-common/instbin.conf b/distrib/hp300/miniroot/inst-common/instbin.conf
new file mode 100644
index 00000000000..c3a608e8fc6
--- /dev/null
+++ b/distrib/hp300/miniroot/inst-common/instbin.conf
@@ -0,0 +1,27 @@
+# $NetBSD: instbin.conf,v 1.1 1995/10/03 22:48:03 thorpej Exp $
+#
+# instbin.conf - configuration for hp300 miniroot
+
+srcdirs bin sbin usr.bin usr.sbin gnu/usr.bin usr.bin/vi
+
+progs bad144 basename cat cut chflags chmod chown chroot cp dd df disklabel
+progs dmesg ed expr fsck ftp gawk grep gzip hostname ifconfig init ln ls
+progs mkdir mknod more mount mount_cd9660 mount_ffs mount_nfs mt mv newfs ping
+progs pwd reboot rm route sed sh shutdown slattach sleep strings stty sync tar
+progs test tip tset umount update
+
+# XXX catch vi; see above
+progs common
+
+ln chown chgrp
+ln gawk awk
+ln gzip gzcat gunzip
+ln sh -sh # init invokes the shell this way
+ln test [
+ln mount_cd9660 cd9660
+ln mount_ffs ffs
+ln mount_nfs nfs
+ln reboot halt
+ln common vi # XXX catch vi; see above
+
+libs -ledit -lutil -lcurses -ltermcap -lcrypt -ll -lm -lkvm
diff --git a/distrib/hp300/miniroot/inst-common/list b/distrib/hp300/miniroot/inst-common/list
new file mode 100644
index 00000000000..d184032b24e
--- /dev/null
+++ b/distrib/hp300/miniroot/inst-common/list
@@ -0,0 +1,96 @@
+# $NetBSD: list,v 1.1 1995/10/03 22:48:04 thorpej Exp $
+
+# copy the crunched binary, link to it, and kill it
+COPY ${OBJDIR}/instbin instbin
+LINK instbin bin/cat
+LINK instbin bin/chmod
+LINK instbin bin/cp
+LINK instbin bin/dd
+LINK instbin bin/df
+LINK instbin bin/ed
+LINK instbin bin/expr
+LINK instbin bin/hostname
+LINK instbin bin/ln
+LINK instbin bin/ls
+LINK instbin bin/mkdir
+LINK instbin bin/mt
+LINK instbin bin/mv
+LINK instbin bin/pwd
+LINK instbin bin/rm
+LINK instbin bin/sh
+LINK instbin bin/stty
+LINK instbin bin/sleep
+LINK instbin bin/sync
+LINK instbin bin/test
+LINK instbin bin/[
+LINK instbin sbin/disklabel
+LINK instbin sbin/dmesg
+LINK instbin sbin/fsck
+LINK instbin sbin/halt
+LINK instbin sbin/ifconfig
+LINK instbin sbin/init
+LINK instbin sbin/mknod
+LINK instbin sbin/mount
+LINK instbin sbin/mount_cd9660
+LINK instbin sbin/mount_ffs
+LINK instbin sbin/mount_nfs
+LINK instbin sbin/newfs
+LINK instbin sbin/ping
+LINK instbin sbin/reboot
+LINK instbin sbin/route
+LINK instbin sbin/shutdown
+LINK instbin sbin/slattach
+LINK instbin sbin/umount
+SYMLINK /instbin usr/bin/awk
+SYMLINK /instbin usr/bin/basename
+SYMLINK /instbin usr/bin/chflags
+SYMLINK /instbin usr/bin/chgrp
+SYMLINK /instbin usr/bin/cut
+SYMLINK /instbin usr/bin/ftp
+SYMLINK /instbin usr/bin/grep
+SYMLINK /instbin usr/bin/gunzip
+SYMLINK /instbin usr/bin/gzcat
+SYMLINK /instbin usr/bin/gzip
+SYMLINK /instbin usr/bin/more
+SYMLINK /instbin usr/bin/sed
+SYMLINK /instbin usr/bin/strings
+SYMLINK /instbin usr/bin/tar
+SYMLINK /instbin usr/bin/tip
+SYMLINK /instbin usr/bin/tset
+SYMLINK /instbin usr/bin/vi
+SYMLINK /instbin usr/sbin/bad144
+SYMLINK /instbin usr/sbin/chown
+SYMLINK /instbin usr/sbin/chroot
+SYMLINK /instbin usr/sbin/update
+
+# We can only get this program this way.
+COPY ${DESTDIR}/sbin/mount_mfs sbin/mount_mfs
+SPECIAL chmod 555 sbin/mount_mfs
+
+# Minimize use of MFS
+SYMLINK /tmp var/tmp
+
+# copy the MAKEDEV script and make some devices
+COPY ${DESTDIR}/dev/MAKEDEV dev/MAKEDEV
+COPY ${DESTDIR}/dev/MAKEDEV.local dev/MAKEDEV.local
+SPECIAL cd dev; sh MAKEDEV all
+SPECIAL /bin/rm dev/MAKEDEV
+
+# we need the contents of /usr/mdec
+COPYDIR ${DESTDIR}/usr/mdec usr/mdec
+
+# various files that we need in /etc for the install
+COPY ${DESTDIR}/etc/group etc/group
+COPY ${DESTDIR}/etc/master.passwd etc/master.passwd
+COPY ${DESTDIR}/etc/passwd etc/passwd
+COPY ${DESTDIR}/etc/protocols etc/protocols
+COPY ${DESTDIR}/etc/pwd.db etc/pwd.db
+COPY ${DESTDIR}/etc/services etc/services
+COPY ${DESTDIR}/etc/spwd.db etc/spwd.db
+COPY ${DESTDIR}/etc/disktab etc/disktab.shadow
+SYMLINK /tmp/disktab.shadow etc/disktab
+SYMLINK /tmp/fstab.shadow etc/fstab
+SYMLINK /tmp/hosts etc/hosts
+
+# and the termcap file
+COPY ${TOPDIR}/../../../share/termcap/termcap.src usr/share/misc/termcap
diff --git a/distrib/hp300/miniroot/inst-common/mtree.conf b/distrib/hp300/miniroot/inst-common/mtree.conf
new file mode 100644
index 00000000000..3b90b20cbec
--- /dev/null
+++ b/distrib/hp300/miniroot/inst-common/mtree.conf
@@ -0,0 +1,78 @@
+# $NetBSD: mtree.conf,v 1.1 1995/10/03 22:48:05 thorpej Exp $
+
+/set type=dir uname=root gname=wheel mode=0755
+# .
+.
+
+# ./bin
+bin
+# ./bin
+..
+
+# ./dev
+dev
+# ./dev
+..
+
+# ./etc
+etc
+# ./etc
+..
+
+# ./mnt
+mnt
+# ./mnt
+..
+
+# ./mnt2
+mnt2
+# ./mnt2
+..
+
+# ./sbin
+sbin
+# ./sbin
+..
+
+# ./tmp
+tmp mode=01777
+# ./tmp
+..
+
+# ./usr
+usr
+
+# ./usr/bin
+bin
+# ./usr/bin
+..
+
+# ./usr/mdec
+mdec
+# ./usr/mdec
+..
+
+# ./usr/sbin
+sbin
+# ./usr/sbin
+..
+
+# ./usr/share
+share
+
+# ./usr/share/misc
+misc
+# ./usr/share/misc
+..
+
+# ./usr/share
+..
+
+# ./usr
+..
+
+# ./var
+var
+
+# ./
+..
diff --git a/distrib/hp300/miniroot/inst/Makefile b/distrib/hp300/miniroot/inst/Makefile
new file mode 100644
index 00000000000..a56484a0496
--- /dev/null
+++ b/distrib/hp300/miniroot/inst/Makefile
@@ -0,0 +1,8 @@
+# $NetBSD: Makefile,v 1.1 1995/10/03 22:47:58 thorpej Exp $
+
+TOP= ${.CURDIR}/..
+
+.include "${TOP}/Makefile.inc"
+IMAGE= inst-${REV}.fs
+
+.include "${TOP}/inst-common/Makefile.inc"
diff --git a/distrib/hp300/miniroot/inst/dot.profile b/distrib/hp300/miniroot/inst/dot.profile
new file mode 100644
index 00000000000..34ca6d39592
--- /dev/null
+++ b/distrib/hp300/miniroot/inst/dot.profile
@@ -0,0 +1,61 @@
+# $NetBSD: dot.profile,v 1.1 1995/10/03 22:47:59 thorpej Exp $
+#
+# Copyright (c) 1995 Jason R. Thorpe
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+
+PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
+export PATH
+TERM=hp300h
+export TERM
+
+umask 022
+
+if [ "X${DONEPROFILE}" = "X" ]; then
+ DONEPROFILE=YES
+
+ # set up some sane defaults
+ echo 'erase ^H, werase ^W, kill ^U, intr ^C'
+ stty newcrt werase ^W intr ^C kill ^U erase ^H 9600
+
+ # run update, so that installed software is written as it goes.
+ update
+
+ # get the terminal type
+ _forceloop=""
+ while [ "X${_forceloop}" = X"" ]; do
+ eval `tset -s -m ":?$TERM"`
+ if [ "X${TERM}" != X"unknown" ]; then
+ _forceloop="done"
+ fi
+ done
+
+ # run the installation script.
+ /install
+fi
diff --git a/distrib/hp300/miniroot/inst/install.sh b/distrib/hp300/miniroot/inst/install.sh
new file mode 100644
index 00000000000..b4dc105adb8
--- /dev/null
+++ b/distrib/hp300/miniroot/inst/install.sh
@@ -0,0 +1,1026 @@
+#!/bin/sh
+# $NetBSD: install.sh,v 1.1 1995/10/03 22:48:00 thorpej Exp $
+#
+# Copyright (c) 1995 Jason R. Thorpe.
+# 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.
+# 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 for the NetBSD Project
+# by Jason R. Thorpe.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+
+# NetBSD installation script.
+# In a perfect world, this would be a nice C program, with a reasonable
+# user interface.
+
+VERSION=1.0A
+ROOTDISK="" # filled in below
+FILESYSTEMS="/tmp/filesystems" # used thoughout
+FQDN="" # domain name
+
+trap "umount /tmp > /dev/null 2>&1" 0
+
+getresp() {
+ read resp
+ if [ "X$resp" = "X" ]; then
+ resp=$1
+ fi
+}
+
+do_mfs_mount() {
+ umount $1 > /dev/null 2>&1
+ if ! mount_mfs -s 2048 swap $1 ; then
+ cat << \__mfs_failed_1
+
+FATAL ERROR: Can't mount the memory filesystem.
+
+__mfs_failed_1
+ exit
+ fi
+
+ # Bleh. Give mount_mfs a chance to DTRT.
+ sleep 2
+}
+
+getrootdisk() {
+ cat << \__getrootdisk_1
+
+The installation program needs to know which disk to consider
+the root disk. Note the unit number may be different than
+the unit number you used in the standalone installation
+program.
+
+Available disks are:
+
+__getrootdisk_1
+ dmesg | grep "^rd" | grep "slave"
+ dmesg | grep "^sd" | grep "slave"
+ echo ""
+ echo -n "Which disk is the root disk? "
+ getresp ""
+ if dmesg | grep "^$resp " | grep "slave" > /dev/null ; then
+ ROOTDISK="$resp"
+ else
+ echo ""
+ echo "The disk $resp does not exist."
+ ROOTDISK=""
+ fi
+}
+
+checkfordisklabel() {
+ disklabel -r $1 > /dev/null 2> /tmp/checkfordisklabel
+ if grep "no disk label" /tmp/checkfordisklabel; then
+ rval="1"
+ elif grep "disk label corrupted" /tmp/checkfordisklabel; then
+ rval="2"
+ else
+ rval="0"
+ fi
+
+ rm -f /tmp/checkfordisklabel
+}
+
+labelmoredisks() {
+ cat << \__labelmoredisks_1
+
+You may label the following disks:
+
+__labelmoredisks_1
+ dmesg | grep "^rd" | grep "slave" | grep -v "${ROOTDISK} "
+ dmesg | grep "^sd" | grep "slave" | grep -v "${ROOTDISK} "
+ echo ""
+ echo -n "Label which disk? [done] "
+ getresp "done"
+ case "$resp" in
+ done)
+ ;;
+
+ *)
+ if dmesg | grep "^$resp " | grep "slave" \
+ > /dev/null ; then
+ # XXX CODE ME
+ echo "Yup, it exists."
+ else
+ echo ""
+ echo "The disk $resp does not exist."
+ fi
+ ;;
+ esac
+}
+
+addhostent() {
+ # $1 - IP address
+ # $2 - symbolic name
+
+ # Create an entry in the hosts table. If no host table
+ # exists, create one. If the IP address already exists,
+ # replace it's entry.
+ if [ ! -f /tmp/hosts ]; then
+ echo "127.0.0.1 localhost" > /tmp/hosts
+ fi
+
+ if grep "^$1 " /tmp/hosts > /dev/null; then
+ grep -v "^$1 " /tmp/hosts > /tmp/hosts.new
+ mv /tmp/hosts.new /tmp/hosts
+ fi
+
+ echo "$1 $2 $2.$FQDN" >> /tmp/hosts
+}
+
+addifconfig() {
+ # $1 - interface name
+ # $2 - interface symbolic name
+ # $3 - interface IP address
+ # $4 - interface netmask
+
+ # Create a hostname.* file for the interface.
+ echo "inet $2 $4" > /tmp/hostname.$1
+
+ addhostent $3 $2
+}
+
+configurenetwork() {
+ cat << \__configurenetwork_1
+
+You may configure the following network interfaces:
+
+__configurenetwork_1
+
+ dmesg | grep "^le" | grep "ipl"
+ echo ""
+ echo -n "Configure which interface? [done] "
+ getresp "done"
+ case "$resp" in
+ done)
+ ;;
+
+ *)
+ if dmesg | grep "^$resp " | grep "^le" | grep "ipl" \
+ > /dev/null ; then
+ _interface_name=$resp
+
+ # Get IP address
+ resp="" # force one iteration
+ while [ "X${resp}" = X"" ]; do
+ echo -n "IP address? "
+ getresp ""
+ _interface_ip=$resp
+ done
+
+ # Get symbolic name
+ resp="" # force one iteration
+ while [ "X${resp}" = X"" ]; do
+ echo -n "Symbolic name? "
+ getresp ""
+ _interface_symname=$resp
+ done
+
+ # Get netmask
+ resp="" # force one iteration
+ while [ "X${resp}" = X"" ]; do
+ echo -n "Netmask? "
+ getresp ""
+ _interface_mask=$resp
+ done
+
+ # Configure the interface. If it
+ # succeeds, add it to the permanent
+ # network configuration info.
+ ifconfig ${_interface_name} down
+ if ifconfig ${_interface_name} inet \
+ ${_interface_ip} \
+ netmask ${_interface_mask} up ; then
+ addifconfig \
+ ${_interface_name} \
+ ${_interface_symname} \
+ ${_interface_ip} \
+ ${_interface_mask}
+ fi
+ else
+ echo ""
+ echo "The interface $resp does not exist."
+ fi
+ ;;
+ esac
+}
+
+install_ftp() {
+ # Get several parameters from the user, and create
+ # a shell script that directs the appropriate
+ # commands into ftp.
+ cat << \__install_ftp_1
+
+This is an automated ftp-based installation process. You will be asked
+several questions. The correct set of commands will be placed in a script
+that will be fed to ftp(1).
+
+__install_ftp_1
+ # Get server IP address
+ resp="" # force one iteration
+ while [ "X${resp}" = X"" ]; do
+ echo -n "Server IP? [${_ftp_server_ip}] "
+ getresp "${_ftp_server_ip}"
+ _ftp_server_ip=$resp
+ done
+
+ # Get server directory
+ resp="" # force one iteration
+ while [ "X${resp}" = X"" ]; do
+ echo -n "Server directory? [${_ftp_server_dir}] "
+ getresp "${_ftp_server_dir}"
+ _ftp_server_dir=$resp
+ done
+
+ # Get login name
+ resp="" # force one iteration
+ while [ "X${resp}" = X"" ]; do
+ echo -n "Login? [${_ftp_server_login}] "
+ getresp "${_ftp_server_login}"
+ _ftp_server_login=$resp
+ done
+
+ # Get password
+ resp="" # force one iteration
+ while [ "X${resp}" = X"" ]; do
+ echo -n "Password? [${_ftp_server_password}] "
+ getresp "${_ftp_server_password}"
+ _ftp_server_password=$resp
+ done
+
+ # Get list of files for mget.
+ cat << \__install_ftp_2
+
+You will now be asked for files to extract. Enter one file at a time.
+When you are done entering files, enter 'done'.
+
+__install_ftp_2
+ echo "#!/bin/sh" > /tmp/ftp-script.sh
+ echo "cd /mnt" >> /tmp/ftp-script.sh
+ echo "ftp -i -n $_ftp_server_ip << \__end_commands" >> \
+ /tmp/ftp-script.sh
+ echo "user $_ftp_server_login $_ftp_server_password" >> \
+ /tmp/ftp-script.sh
+ echo "bin" >> /tmp/ftp-script.sh
+ echo "cd $_ftp_server_dir" >> /tmp/ftp-script.sh
+
+ resp="" # force one interation
+ while [ "X${resp}" != X"done" ]; do
+ echo -n "File? [done] "
+ getresp "done"
+ if [ "X${resp}" = X"done" ]; then
+ break
+ fi
+
+ _ftp_file=`echo ${resp} | awk '{print $1}'`
+ echo "get ${_ftp_file} |\"tar -zxvpf -\"" >> \
+ /tmp/ftp-script.sh
+ done
+
+ echo "quit" >> /tmp/ftp-script.sh
+ echo "__end_commands" >> /tmp/ftp-script.sh
+
+ sh /tmp/ftp-script.sh
+ rm -f /tmp/ftp-script.sh
+ echo "Extraction complete."
+}
+
+install_common_nfs_cdrom() {
+ # $1 - directory containing file
+
+ # Get the name of the file.
+ resp="" # force one iteration
+ while [ "X${resp}" = X"" ]; do
+ echo -n "File name? "
+ getresp ""
+ done
+ _common_filename="/mnt2/$1/$resp"
+
+ # Ensure file exists
+ if [ ! -f $_common_filename ]; then
+ echo "File $_common_filename does not exist. Check to make"
+ echo "sure you entered the information properly."
+ return
+ fi
+
+ # Extract file
+ cat $_common_filename | (cd /mnt; tar -zxvpf -)
+ echo "Extraction complete."
+}
+
+install_cdrom() {
+ # Get the cdrom device info
+ cat << \__install_cdrom_1
+
+The following SCSI disk or disk-like devices are installed on your system;
+please select the CD-ROM device containing the installation media:
+
+__install_cdrom_1
+ dmesg | grep "^sd" | grep "rev"
+ echo ""
+ echo -n "Which is the CD-ROM with the installation media? [abort] "
+ getresp "abort"
+ case "$resp" in
+ abort)
+ echo "Aborting."
+ return
+ ;;
+
+ *)
+ if dmesg | grep "^$resp " | grep "slave" \
+ > /dev/null ; then
+ _cdrom_drive=$resp
+ else
+ echo ""
+ echo "The CD-ROM $resp does not exist."
+ echo "Aborting."
+ return
+ fi
+ ;;
+ esac
+
+ # Get partition
+ resp="" # force one iteration
+ while [ "X${resp}" = X"" ]; do
+ echo -n "Partition? [c] "
+ getresp "c"
+ case "$resp" in
+ [a-h])
+ _cdrom_partition=$resp
+ ;;
+
+ *)
+ echo "Invalid response: $resp"
+ resp="" # force loop to repeat
+ ;;
+ esac
+ done
+
+ # Ask for filesystem type
+ cat << \__install_cdrom_2
+
+There are two CD-ROM filesystem types currently supported by this program:
+ 1) ISO-9660 (cd9660)
+ 2) Berkeley Fast Filesystem (ffs)
+
+__install_cdrom_2
+ resp="" # force one iteration
+ while [ "X${resp}" = X"" ]; do
+ echo -n "Which filesystem type? [cd9660] "
+ getresp "cd9660"
+ case "$resp" in
+ cd9660|ffs)
+ _cdrom_filesystem=$resp
+ ;;
+
+ *)
+ echo "Invalid response: $resp"
+ resp="" # force loop to repeat
+ ;;
+ esac
+ done
+
+ # Mount the CD-ROM
+ if ! mount -t ${_cdrom_filesystem} -o ro \
+ /dev/${_cdrom_drive}${_cdrom_partition} /mnt2 ; then
+ echo "Cannot mount CD-ROM drive. Aborting."
+ return
+ fi
+
+ # Get the directory where the file lives
+ resp="" # force one iteration
+ while [ "X${resp}" = X"" ]; do
+ echo "Enter the directory relative to the mount point that"
+ echo -n "contains the file. [${_cdrom_directory}] "
+ getresp "${_cdrom_directory}"
+ done
+ _cdrom_directory=$resp
+
+ install_common_nfs_cdrom ${_cdrom_directory}
+ umount -f /mnt2 > /dev/null 2>&1
+}
+
+install_nfs() {
+ # Get the IP address of the server
+ resp="" # force one iteration
+ while [ "X${resp}" = X"" ]; do
+ echo -n "Server IP address? [${_nfs_server_ip}] "
+ getresp "${_nfs_server_ip}"
+ done
+ _nfs_server_ip=$resp
+
+ # Get server path to mount
+ resp="" # force one iteration
+ while [ "X${resp}" = X"" ]; do
+ echo -n "Filesystem on server to mount? [${_nfs_server_path}] "
+ getresp "${_nfs_server_path}"
+ done
+ _nfs_server_path=$resp
+
+ # Determine use of TCP
+ echo -n "Use TCP transport (only works with capable NFS server)? [n] "
+ getresp "n"
+ case "$resp" in
+ y*|Y*)
+ _nfs_tcp="-T"
+ ;;
+
+ *)
+ _nfs_tcp=""
+ ;;
+ esac
+
+ # Mount the server
+ if ! mount_nfs $_nfs_tcp ${_nfs_server_ip}:${_nfs_server_path} \
+ /mnt2 ; then
+ echo "Cannot mount NFS server. Aborting."
+ return
+ fi
+
+ # Get the directory where the file lives
+ resp="" # force one iteration
+ while [ "X${resp}" = X"" ]; do
+ echo "Enter the directory relative to the mount point that"
+ echo -n "contains the file. [${_nfs_directory}] "
+ getresp "${_nfs_directory}"
+ done
+ _nfs_directory=$resp
+
+ install_common_nfs_cdrom ${_nfs_directory}
+ umount -f /mnt2 > /dev/null 2>&1
+}
+
+install_tape() {
+ # Get the name of the tape from the user.
+ cat << \__install_tape_1
+
+The installation program needs to know which tape device to use. Make
+sure you use a "no rewind on close" device.
+
+__install_tape_1
+ _tape=`basename $TAPE`
+ resp="" # force one iteration
+ while [ "X${resp}" = X"" ]; do
+ echo -n "Name of tape device? [${_tape}]"
+ getresp "${_tape}"
+ done
+ _tape=`basename $resp`
+ TAPE="/dev/${_tape}"
+ if [ ! -c $TAPE ]; then
+ echo "$TAPE does not exist or is not a character special file."
+ echo "Aborting."
+ return
+ fi
+ export TAPE
+
+ # Rewind the tape device
+ echo -n "Rewinding tape..."
+ if ! mt rewind ; then
+ echo "$TAPE may not be attached to the system or may not be"
+ echo "a tape device. Aborting."
+ return
+ fi
+ echo "done."
+
+ # Get the file number
+ resp="" # force one iteration
+ while [ "X${resp}" = X"" ]; do
+ echo -n "File number? "
+ getresp ""
+ case "$resp" in
+ [1-9]*)
+ _nskip=`expr $resp - 1`
+ ;;
+
+ *)
+ echo "Invalid file number ${resp}."
+ resp="" # fore loop to repeat
+ ;;
+ esac
+ done
+
+ # Skip to correct file.
+ echo -n "Skipping to source file..."
+ if [ "X${_nskip}" != X"0" ]; then
+ if ! mt fsf $_nskip ; then
+ echo "Could not skip $_nskip files. Aborting."
+ return
+ fi
+ fi
+ echo "done."
+
+ cat << \__install_tape_2
+
+There are 2 different ways the file can be stored on tape:
+
+ 1) an image of a gzipped tar file
+ 2) a standard tar image
+
+__install_tape_2
+ resp="" # force one iteration
+ while [ "X${resp}" = X"" ]; do
+ getresp "1"
+ case "$resp" in
+ 1)
+ (
+ cd /mnt
+ dd if=$TAPE | tar -zxvpf -
+ )
+ ;;
+
+ 2)
+ (
+ cd /mnt
+ tar -zxvpf $TAPE
+ )
+ ;;
+
+ *)
+ echo "Invalid response: $resp."
+ resp="" # force loop to repeat
+ ;;
+ esac
+ done
+ echo "Extraction complete."
+}
+
+echo ""
+echo "Welcome to the NetBSD ${VERSION} installation program."
+cat << \__welcome_banner_1
+
+This program is designed to help you put NetBSD on your hard disk,
+in a simple and rational way. You'll be asked several questions,
+and it would probably be useful to have your disk's hardware
+manual, the installation notes, and a calculator handy.
+
+In particular, you will need to know some reasonably detailed
+information about your disk's geometry. This program can determine
+some limited information about certain specific types of HP-IB disks.
+If you have SCSI disks, however, prior knowledge of disk geometry
+is absolutely essential.
+
+As with anything which modifies your hard disk's contents, this
+program can cause SIGNIFICANT data loss, and you are advised
+to make sure your hard drive is backed up before beginning the
+installation process.
+
+Default answers are displyed in brackets after the questions.
+You can hit Control-C at any time to quit, but if you do so at a
+prompt, you may have to hit return. Also, quitting in the middle of
+installation may leave your system in an inconsistent state.
+
+__welcome_banner_1
+echo -n "Proceed with installation? [n] "
+getresp "n"
+case "$resp" in
+ y*|Y*)
+ echo "Cool! Let's get to it..."
+ ;;
+ *)
+ cat << \__welcome_banner_2
+
+OK, then. Enter 'halt' at the prompt to halt the machine. Once the
+machine has halted, power-cycle the system to load new boot code.
+
+__welcome_banner_2
+ exit
+ ;;
+esac
+
+# We don't like it, but it sure makes a few things a lot easier.
+do_mfs_mount "/tmp"
+
+# Install the shadowed disktab file; lets us write to it for temporary
+# purposes without mounting the miniroot read-write.
+cp /etc/disktab.shadow /tmp/disktab.shadow
+
+while [ "X${ROOTDISK}" = "X" ]; do
+ getrootdisk
+done
+
+# Make sure there's a disklabel there. If there isn't, puke after
+# disklabel prints the error message.
+checkfordisklabel ${ROOTDISK}
+case $rval in
+ 1)
+ cat << \__disklabel_not_present_1
+
+FATAL ERROR: There is no disklabel present on the root disk! You must
+label the disk with SYS_INST before continuing.
+
+__disklabel_not_present_1
+ exit
+ ;;
+
+ 2)
+ cat << \__disklabel_corrupted_1
+
+FATAL ERROR: The disklabel on the root disk is corrupted! You must
+re-label the disk with SYS_INST before continuing.
+
+__disklabel_corrupted_1
+ exit
+ ;;
+
+ *)
+ ;;
+esac
+
+# Give the user the opportinuty to edit the root disklabel.
+cat << \__disklabel_notice_1
+
+You have already placed a disklabel onto the target root disk.
+However, due to the limitations of the standalone program used
+you may want to edit that label to change partition type information.
+You will be given the opporunity to do that now. Note that you may
+not change the size or location of any presently open partition.
+
+__disklabel_notice_1
+echo -n "Do you wish to edit the root disklabel? [y] "
+getresp "y"
+case "$resp" in
+ y*|Y*)
+ disklabel -W ${ROOTDISK}
+ disklabel -e ${ROOTDISK}
+ ;;
+
+ *)
+ ;;
+esac
+
+cat << \__disklabel_notice_2
+
+You will now be given the opportunity to place disklabels on any additional
+disks on your system.
+__disklabel_notice_2
+
+resp="X" # force at least one iteration
+while [ "X$resp" != X"done" ]; do
+ labelmoredisks
+done
+
+# Assume partition 'a' of $ROOTDISK is for the root filesystem. Loop and
+# get the rest.
+# XXX ASSUMES THAT THE USER DOESN'T PROVIDE BOGUS INPUT.
+cat << \__get_filesystems_1
+
+You will now have the opportunity to enter filesystem information.
+You will be prompted for device name and mount point (full path,
+including the prepending '/' character).
+
+Note that these do not have to be in any particular order. You will
+be given the opportunity to edit the resulting 'fstab' file before
+any of the filesystems are mounted. At that time you will be able
+to resolve any filesystem order dependencies.
+
+__get_filesystems_1
+
+echo "The following will be used for the root filesystem:"
+echo " ${ROOTDISK}a /"
+
+echo "${ROOTDISK}a /" > ${FILESYSTEMS}
+
+resp="X" # force at least one iteration
+while [ "X$resp" != X"done" ]; do
+ echo ""
+ echo -n "Device name? [done] "
+ getresp "done"
+ case "$resp" in
+ done)
+ ;;
+
+ *)
+ _device_name=`basename $resp`
+
+ # force at least one iteration
+ _first_char="X"
+ while [ "X${_first_char}" != X"/" ]; do
+ echo -n "Mount point? "
+ getresp ""
+ _mount_point=$resp
+ if [ "X${_mount_point}" = X"/" ]; then
+ # Invalid response; no multiple roots
+ _first_char="X"
+ else
+ _first_char=`echo ${_mount_point} | \
+ cut -c 1`
+ fi
+ done
+ echo "${_device_name} ${_mount_point}" >> \
+ ${FILESYSTEMS}
+ resp="X" # force loop to repeat
+ ;;
+ esac
+done
+
+echo ""
+echo "You have configured the following devices and mount points:"
+echo ""
+cat ${FILESYSTEMS}
+echo ""
+echo "Filesystems will now be created on these devices. If you made any"
+echo -n "mistakes, you may edit this now. Edit? [n] "
+getresp "n"
+case "$resp" in
+ y*|Y*)
+ vi ${FILESYSTEMS}
+ ;;
+ *)
+ ;;
+esac
+
+# Loop though the file, place filesystems on each device.
+echo "Creating filesystems..."
+(
+ while read line; do
+ _device_name=`echo $line | awk '{print $1}'`
+ newfs /dev/r${_device_name}
+ echo ""
+ done
+) < ${FILESYSTEMS}
+
+# Get network configuration information, and store it for placement in the
+# root filesystem later.
+cat << \__network_config_1
+You will now be given the opportunity to configure the network. This will
+be useful if you need to transfer the installation sets via FTP or NFS.
+Even if you choose not to transfer installation sets that way, this
+information will be preserved and copied into the new root filesystem.
+
+Note, enter all symbolic host names WITHOUT the domain name appended.
+I.e. use 'hostname' NOT 'hostname.domain.name'.
+
+__network_config_1
+echo -n "Configure the network? [y] "
+getresp "y"
+case "$resp" in
+ y*|Y*)
+ echo -n "Enter system hostname: "
+ resp="" # force at least one iteration
+ while [ "X${resp}" = X"" ]; do
+ getresp ""
+ done
+ hostname $resp
+ echo $resp > /tmp/myname
+
+ echo -n "Enter DNS domain name: "
+ resp="" # force at least one iteration
+ while [ "X${resp}" = X"" ]; do
+ getresp ""
+ done
+ FQDN=$resp
+
+ resp="" # force at least one iteration
+ while [ "X${resp}" != X"done" ]; do
+ configurenetwork
+ done
+
+ echo -n "Enter IP address of default route: [none] "
+ getresp "none"
+ if [ "X${resp}" != X"none" ]; then
+ route delete default > /dev/null 2>&1
+ if route add default $resp > /dev/null ; then
+ echo $resp > /tmp/mygate
+ fi
+ fi
+
+ echo ""
+ echo "The host table is as follows:"
+ echo ""
+ cat /tmp/hosts
+ echo ""
+ echo "You may want to edit the host table in the event that"
+ echo "you need to mount an NFS server."
+ echo -n "Would you like to edit the host table? [n] "
+ getresp "n"
+ case "$resp" in
+ y*|Y*)
+ vi /tmp/hosts
+ ;;
+
+ *)
+ ;;
+ esac
+
+ cat << \__network_config_2
+
+You will now be given the opportunity to escape to the command shell to
+do any additional network configuration you may need. This may include
+adding additional routes, if needed. In addition, you might take this
+opportunity to redo the default route in the event that it failed above.
+If you do change the default route, and wish for that change to carry over
+to the installed system, execute the following command at the shell
+prompt:
+
+ echo <ip_address_of_gateway> > /tmp/mygate
+
+where <ip_address_of_gateway> is the IP address of the default router.
+
+__network_config_2
+ echo -n "Escape to shell? [n] "
+ getresp "n"
+ case "$resp" in
+ y*|Y*)
+ echo "Type 'exit' to return to install."
+ sh
+ ;;
+
+ *)
+ ;;
+ esac
+ ;;
+ *)
+ ;;
+esac
+
+# Now that the network has been configured, it is safe to configure the
+# fstab.
+awk '{
+ if ($2 == "/")
+ printf("/dev/%s %s ffs rw 1 1\n", $1, $2)
+ else
+ printf("/dev/%s %s ffs rw 1 2\n", $1, $2)
+}' < ${FILESYSTEMS} > /tmp/fstab
+
+echo "The fstab is configured as follows:"
+echo ""
+cat /tmp/fstab
+cat << \__fstab_config_1
+
+You may wish to edit the fstab. For example, you may need to resolve
+dependencies in the order which the filesystems are mounted. You may
+also wish to take this opportunity to place NFS mounts in the fstab.
+This would be especially useful if you plan to keep '/usr' on an NFS
+server.
+
+__fstab_config_1
+echo -n "Edit the fstab? [n] "
+getresp "n"
+case "$resp" in
+ y*|Y*)
+ vi /tmp/fstab
+ ;;
+
+ *)
+ ;;
+esac
+
+# Now that the 'real' fstab is configured, we munge it into a 'shadow'
+# fstab which we'll use for mounting and unmounting all of the target
+# filesystems relative to /mnt. Mount all filesystems.
+awk '{
+ if ($2 == "/")
+ printf("%s /mnt %s %s %s %s\n", $1, $3, $4, $5, $6)
+ else
+ printf("%s /mnt%s %s %s %s %s\n", $1, $2, $3, $4, $5, $6)
+}' < /tmp/fstab > /tmp/fstab.shadow
+
+echo ""
+
+# Must mount filesystems manually, one at a time, so we can make sure the
+# mount points exist.
+(
+ while read line; do
+ _dev=`echo $line | awk '{print $1}'`
+ _mp=`echo $line | awk '{print $2}'`
+ _fstype=`echo $line | awk '{print $3}'`
+ _opt=`echo $line | awk '{print $4}'`
+
+ # If not the root filesystem, make sure the mount
+ # point is present.
+ if [ "X{$_mp}" != X"/mnt" ]; then
+ mkdir -p $_mp
+ fi
+
+ # Mount the filesystem. If the mount fails, exit
+ # with an error condition to tell the outer
+ # later to bail.
+ if ! mount -v -t $_fstype -o $_opt $_dev $_mp ; then
+ # error message displated by mount
+ exit 1
+ fi
+ done
+) < /etc/fstab
+
+if [ "X${?}" != X"0" ]; then
+ cat << \__mount_filesystems_1
+
+FATAL ERROR: Cannot mount filesystems. Double-check your configuration
+and restart the installation process.
+
+__mount_filesystems_1
+ exit
+fi
+
+# Ask the user which media to load the distribution from.
+cat << \__install_sets_1
+
+It is now time to extract the installation sets onto the hard disk.
+Make sure The sets are either on a local device (i.e. tape, CD-ROM) or on a
+network server.
+
+__install_sets_1
+resp="" # force at least one iteration
+while [ "X${resp}" = X"" ]; do
+ echo -n "Install from (f)tp, (t)ape, (C)D-ROM, or (N)FS? [f] "
+ getresp "f"
+ case "$resp" in
+ f*|F*)
+ install_ftp
+ ;;
+
+ t*|T*)
+ install_tape
+ ;;
+
+ c*|C*)
+ install_cdrom
+ ;;
+
+ n*|N*)
+ install_nfs
+ ;;
+
+ *)
+ echo "Invalid response: $resp"
+ resp=""
+ ;;
+ esac
+
+ # Give the user the opportunity to extract more sets. They don't
+ # necessarily have to come from the same media.
+ echo ""
+ echo -n "Extract more sets? [n] "
+ getresp "n"
+ case "$resp" in
+ y*|Y*)
+ # Force loop to repeat
+ resp=""
+ ;;
+
+ *)
+ ;;
+ esac
+done
+
+# Copy in configuration information and make devices in target root.
+(
+ cd /tmp
+ for file in fstab hostname.* hosts myname mygate; do
+ if [ -f $file ]; then
+ echo "Copying $file..."
+ cp $file /mnt/etc/$file
+ fi
+ done
+
+ echo -n "Making devices..."
+ cd /mnt/dev
+ sh MAKEDEV all
+ echo "done."
+
+ echo "Copying kernel..."
+ cp /netbsd /mnt/netbsd
+)
+
+# Unmount all filesystems and check their integrity.
+umount -a
+echo "Checking filesystem integrity..."
+fsck -pf
+
+# Install boot code on target disk.
+echo "Installing boot block..."
+disklabel -W ${ROOTDISK}
+disklabel -B ${ROOTDISK}
+
+cat << \__congratulations_1
+
+CONGRATULATIONS! You have successfully installed NetBSD on your hard disk!
+To boot the installed system, enter halt at the command prompt. Once the
+system has halted, power-cycle the machine in order to load new boot code.
+Make sure you boot from the disk.
+
+__congratulations_1
+
+# ALL DONE!
+exit
diff --git a/distrib/hp300/miniroot/inst/list b/distrib/hp300/miniroot/inst/list
new file mode 100644
index 00000000000..64c1df1c037
--- /dev/null
+++ b/distrib/hp300/miniroot/inst/list
@@ -0,0 +1,9 @@
+# $NetBSD: list,v 1.1 1995/10/03 22:48:01 thorpej Exp $
+
+# copy the kernel
+COPY ${CURDIR}/../../../../sys/arch/hp300/compile/GENERIC/netbsd netbsd
+
+# and the installation tools
+COPY dot.profile .profile
+COPY install.sh install
+SPECIAL chmod 755 install
diff --git a/distrib/hp300/miniroot/list2sh.awk b/distrib/hp300/miniroot/list2sh.awk
new file mode 100644
index 00000000000..ba43187059d
--- /dev/null
+++ b/distrib/hp300/miniroot/list2sh.awk
@@ -0,0 +1,55 @@
+# $NetBSD: list2sh.awk,v 1.1 1995/10/03 22:47:56 thorpej Exp $
+
+BEGIN {
+ printf("cd ${CURDIR}\n");
+ printf("\n");
+}
+/^$/ || /^#/ {
+ print $0;
+ next;
+}
+$1 == "COPY" {
+ printf("echo '%s'\n", $0);
+ printf("rm -f ${TARGDIR}/%s\n", $3);
+ printf("cp %s ${TARGDIR}/%s\n", $2, $3);
+ next;
+}
+$1 == "LINK" {
+ printf("echo '%s'\n", $0);
+ printf("rm -f ${TARGDIR}/%s\n", $3);
+ printf("(cd ${TARGDIR}; ln %s %s)\n", $2, $3);
+ next;
+}
+$1 == "SYMLINK" {
+ printf("echo '%s'\n", $0);
+ printf("rm -f ${TARGDIR}/%s\n", $3);
+ printf("(cd ${TARGDIR}; ln -s %s %s)\n", $2, $3);
+ next;
+}
+$1 == "COPYDIR" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR}/%s && find . ! -name . | xargs /bin/rm -rf)\n",
+ $3);
+ printf("(cd %s && find . ! -name . | cpio -pdamu ${TARGDIR}/%s)\n", $2,
+ $3);
+ next;
+}
+$1 == "SPECIAL" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR};");
+ for (i = 2; i <= NF; i++)
+ printf(" %s", $i);
+ printf(")\n");
+ next;
+}
+{
+ printf("echo '%s'\n", $0);
+ printf("echo 'Unknown keyword \"%s\" at line %d of input.'\n", $1, NR);
+ printf("exit 1\n");
+ exit 1;
+}
+END {
+ printf("\n");
+ printf("exit 0\n");
+ exit 0;
+}
diff --git a/distrib/hp300/miniroot/runlist.sh b/distrib/hp300/miniroot/runlist.sh
new file mode 100644
index 00000000000..96abe1f2e23
--- /dev/null
+++ b/distrib/hp300/miniroot/runlist.sh
@@ -0,0 +1,13 @@
+# $NetBSD: runlist.sh,v 1.1 1995/10/03 22:47:57 thorpej Exp $
+
+if [ "X$1" = "X-d" ]; then
+ SHELLCMD=cat
+ shift
+else
+ SHELLCMD="sh -e"
+fi
+
+( while [ "X$1" != "X" ]; do
+ cat $1
+ shift
+done ) | awk -f ${TOPDIR}/list2sh.awk | ${SHELLCMD}
diff --git a/distrib/i386/floppies/Makefile b/distrib/i386/floppies/Makefile
new file mode 100644
index 00000000000..6519049412f
--- /dev/null
+++ b/distrib/i386/floppies/Makefile
@@ -0,0 +1,5 @@
+# $Id
+
+SUBDIR= inst kc upgr
+
+.include <bsd.subdir.mk>
diff --git a/distrib/i386/floppies/Makefile.inc b/distrib/i386/floppies/Makefile.inc
new file mode 100644
index 00000000000..f4a454d4196
--- /dev/null
+++ b/distrib/i386/floppies/Makefile.inc
@@ -0,0 +1,4 @@
+# $Id: Makefile.inc,v 1.1 1995/10/18 08:37:33 deraadt Exp $
+
+# Revision is 1.0A
+REV= 10A
diff --git a/distrib/i386/floppies/inst-common/Makefile.inc b/distrib/i386/floppies/inst-common/Makefile.inc
new file mode 100644
index 00000000000..f8385ffb657
--- /dev/null
+++ b/distrib/i386/floppies/inst-common/Makefile.inc
@@ -0,0 +1,49 @@
+# $Id: Makefile.inc,v 1.1 1995/10/18 08:37:33 deraadt Exp $
+
+# TOP is assumed to be defined by Makefile including this one.
+
+CBIN= instbin
+COMMONDIR= ${TOP}/inst-common
+
+MOUNT_POINT?= /mnt
+VND?= vnd0
+VND_DEV= /dev/${VND}a
+VND_RDEV= /dev/r${VND}a
+IMAGE?= xxx-${REV}.fs
+MDEC= ${DESTDIR}/usr/mdec
+
+LISTS= ${COMMONDIR}/list ${.CURDIR}/list
+CRUNCHCONF= ${COMMONDIR}/${CBIN}.conf
+MTREE= ${COMMONDIR}/mtree.conf
+
+all: ${CBIN}
+ dd if=/dev/zero of=${IMAGE} bs=100k count=12
+ vnconfig -v -c ${VND_DEV} ${IMAGE}
+ newfs -O -m 0 -o space -i 5120 -c 80 ${VND_RDEV} floppy5
+ mount ${VND_DEV} ${MOUNT_POINT}
+ mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u
+ TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
+ TARGDIR=${MOUNT_POINT} sh ${TOP}/runlist.sh ${LISTS}
+ @echo ""
+ @df -i ${MOUNT_POINT}
+ @echo ""
+ umount ${MOUNT_POINT}
+ vnconfig -u ${VND_DEV}
+ cat /*bin/* > /dev/null
+
+unconfig:
+ -umount -f ${MOUNT_POINT}
+ -vnconfig -u ${VND_DEV}
+ -/bin/rm -f ${IMAGE}
+
+${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
+ crunchgen -D ${TOP}/../../.. -L ${DESTDIR}/usr/lib ${CRUNCHCONF}
+
+${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
+ make -f ${CBIN}.mk all
+
+clean cleandir:
+ /bin/rm -f core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}.cache *.o *.lo *.c
+
+.include <bsd.obj.mk>
+.include <bsd.subdir.mk>
diff --git a/distrib/i386/floppies/inst-common/dot.commonutils b/distrib/i386/floppies/inst-common/dot.commonutils
new file mode 100644
index 00000000000..e53cef68855
--- /dev/null
+++ b/distrib/i386/floppies/inst-common/dot.commonutils
@@ -0,0 +1,132 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: dot.commonutils,v 1.1 1995/10/18 08:37:33 deraadt Exp $
+
+# Installation utilites (functions), to get NetBSD installed on
+# the hard disk. These are meant to be invoked from the shell prompt,
+# by people installing NetBSD.
+
+# we know that /etc/fstab is only generated on the hard drive
+dest_dir=/
+if [ ! -f /etc/fstab ]; then
+ dest_dir=/mnt/
+fi
+
+# counter for possible shared library confusion
+TAR=/usr/bin/tar
+GUNZIP=/usr/bin/gunzip
+
+Set_tmp_dir()
+{
+ def_tmp_dir=`pwd`
+ if [ "$def_tmp_dir" = "/" -o "$def_tmp_dir" = "/mnt" ]; then
+ def_tmp_dir="$dest_dir"usr/distrib
+ fi
+
+ echo -n "What directory should be used to find and/or store "
+ echo "installtion"
+ echo -n "files? [$def_tmp_dir] "
+ read tmp_dir
+ if [ "$tmp_dir" = "" ]; then
+ tmp_dir=$def_tmp_dir
+ fi
+ if [ ! -d "$tmp_dir" ]; then
+ /bin/rm -rf $tmp_dir
+ mkdir -p $tmp_dir
+ fi
+}
+
+Tmp_dir()
+{
+ if [ "$tmp_dir" = "" ]; then
+ Set_tmp_dir
+ fi
+ cd $tmp_dir
+}
+
+Load_fd()
+{
+ Tmp_dir
+ which=
+ echo "Don't forget that you can't load from the drive you booted from."
+ echo ""
+
+ while [ "$which" != "0" -a "$which" != "1" ]; do
+ echo -n "Read from which floppy drive ('0' or '1')? [1] "
+ read which
+ if [ "X$which" = "X" ]; then
+ which=1
+ fi
+ done
+ echo ""
+ echo "WARNING: during the floppy loading process, you should only"
+ echo "use Control-C at the prompt."
+ echo ""
+ while echo -n \
+ "Insert floppy (hit Control-C to terminate, enter to load): "
+ do
+ read foo
+ mount -t msdos /dev/fd${which}a /mnt2
+ cp -rp /mnt2/* .
+ umount /mnt2
+ done
+}
+
+Load_tape()
+{
+ Tmp_dir
+ echo -n "Which tape drive will you be using? [rst0] "
+ read which
+ if [ "X$which" = "X" ]; then
+ which=rst0
+ fi
+ echo -n "Insert the tape into the tape drive and hit return to "
+ echo -n "continue..."
+ read foo
+ echo "Extracting files from the tape..."
+ $TAR xvpf --unlink /dev/$which
+ echo "Done."
+}
+
+Extract()
+{
+ Tmp_dir
+ echo -n "Would you like to list the files as they're extracted? [n] "
+ read verbose
+ case $verbose in
+ y*|Y*)
+ tarverbose=v
+ ;;
+ *)
+ tarverbose=
+ ;;
+ esac
+ cat "$1"* | $GUNZIP | (cd $dest_dir ; $TAR --unlink -xp"$tarverbose"f - )
+}
diff --git a/distrib/i386/floppies/inst-common/instbin.conf b/distrib/i386/floppies/inst-common/instbin.conf
new file mode 100644
index 00000000000..cbf54595c0a
--- /dev/null
+++ b/distrib/i386/floppies/inst-common/instbin.conf
@@ -0,0 +1,25 @@
+#
+# kcbin.conf - unified binary for the kc floppy
+# $Id: instbin.conf,v 1.1 1995/10/18 08:37:34 deraadt Exp $
+#
+
+srcdirs bin sbin usr.bin usr.sbin gnu/usr.bin
+
+progs bad144 cat chmod chown chroot cp dd df disklabel ed expr fsck ftp gawk
+progs gzip ifconfig init ln ls mkdir mknod more mount mount_cd9660
+progs mount_ffs mount_msdos mount_nfs mv newfs ping pwd reboot rm route
+progs sed sh shutdown slattach strings stty sync tar test tip umount
+progs update
+
+ln chown chgrp
+ln gawk awk
+ln gzip gzcat gunzip
+ln sh -sh # init invokes the shell this way
+ln test [
+ln mount_cd9660 cd9660
+ln mount_ffs ffs
+ln mount_msdos msdos
+ln mount_nfs nfs
+ln reboot halt
+
+libs -ledit -lutil -ltermcap -lcrypt -ll -lm
diff --git a/distrib/i386/floppies/inst-common/list b/distrib/i386/floppies/inst-common/list
new file mode 100644
index 00000000000..9c4c36d3036
--- /dev/null
+++ b/distrib/i386/floppies/inst-common/list
@@ -0,0 +1,77 @@
+# $Id: list,v 1.1 1995/10/18 08:37:34 deraadt Exp $
+
+# copy the crunched binary, link to it, and kill it
+COPY ${OBJDIR}/instbin instbin
+LINK instbin bin/cat
+LINK instbin bin/chmod
+LINK instbin bin/cp
+LINK instbin bin/dd
+LINK instbin bin/df
+LINK instbin bin/ed
+LINK instbin bin/expr
+LINK instbin bin/ln
+LINK instbin bin/ls
+LINK instbin bin/mkdir
+LINK instbin bin/mv
+LINK instbin bin/pwd
+LINK instbin bin/rm
+LINK instbin bin/sh
+LINK instbin bin/stty
+LINK instbin bin/sync
+LINK instbin bin/test
+LINK instbin bin/[
+LINK instbin sbin/disklabel
+LINK instbin sbin/fsck
+LINK instbin sbin/halt
+LINK instbin sbin/ifconfig
+LINK instbin sbin/init
+LINK instbin sbin/mknod
+LINK instbin sbin/mount
+LINK instbin sbin/mount_cd9660
+LINK instbin sbin/mount_ffs
+LINK instbin sbin/mount_msdos
+LINK instbin sbin/mount_nfs
+LINK instbin sbin/newfs
+LINK instbin sbin/ping
+LINK instbin sbin/reboot
+LINK instbin sbin/route
+LINK instbin sbin/shutdown
+LINK instbin sbin/slattach
+LINK instbin sbin/umount
+SYMLINK /bin/cat usr/bin/awk
+SYMLINK /bin/cat usr/bin/chgrp
+SYMLINK /bin/cat usr/bin/ftp
+SYMLINK /bin/cat usr/bin/gunzip
+SYMLINK /bin/cat usr/bin/gzcat
+SYMLINK /bin/cat usr/bin/gzip
+SYMLINK /bin/cat usr/bin/more
+SYMLINK /bin/cat usr/bin/sed
+SYMLINK /bin/cat usr/bin/strings
+SYMLINK /bin/cat usr/bin/tar
+SYMLINK /bin/cat usr/bin/tip
+SYMLINK /bin/cat usr/sbin/bad144
+SYMLINK /bin/cat usr/sbin/chown
+SYMLINK /bin/cat usr/sbin/chroot
+SYMLINK /bin/cat usr/sbin/update
+SPECIAL /bin/rm instbin
+
+# copy the MAKEDEV script and make some devices
+COPY ${DESTDIR}/dev/MAKEDEV dev/MAKEDEV
+SPECIAL cd dev; sh MAKEDEV floppy
+SPECIAL /bin/rm dev/MAKEDEV
+
+# we need the contents of /usr/mdec
+COPYDIR ${DESTDIR}/usr/mdec usr/mdec
+
+# various files that we need in /etc for the install
+COPY ${DESTDIR}/etc/group etc/group
+COPY ${DESTDIR}/etc/master.passwd etc/master.passwd
+COPY ${DESTDIR}/etc/passwd etc/passwd
+COPY ${DESTDIR}/etc/protocols etc/protocols
+COPY ${DESTDIR}/etc/pwd.db etc/pwd.db
+COPY ${DESTDIR}/etc/services etc/services
+COPY ${DESTDIR}/etc/spwd.db etc/spwd.db
+
+# and the common installation tools
+COPY ${TOPDIR}/inst-common/dot.commonutils .commonutils
+COPY ${TOPDIR}/inst-common/termcap.pc3 usr/share/misc/termcap
diff --git a/distrib/i386/floppies/inst-common/mtree.conf b/distrib/i386/floppies/inst-common/mtree.conf
new file mode 100644
index 00000000000..fa0159e1867
--- /dev/null
+++ b/distrib/i386/floppies/inst-common/mtree.conf
@@ -0,0 +1,72 @@
+# $Id: mtree.conf,v 1.1 1995/10/18 08:37:34 deraadt Exp $
+
+/set type=dir uname=root gname=wheel mode=0755
+# .
+.
+
+# ./bin
+bin
+# ./bin
+..
+
+# ./dev
+dev
+# ./dev
+..
+
+# ./etc
+etc
+# ./etc
+..
+
+# ./mnt
+mnt
+# ./mnt
+..
+
+# ./mnt2
+mnt2
+# ./mnt2
+..
+
+# ./sbin
+sbin
+# ./sbin
+..
+
+# ./tmp
+tmp
+# ./tmp
+..
+
+# ./usr
+usr
+
+# ./usr/bin
+bin
+# ./usr/bin
+..
+
+# ./usr/mdec
+mdec
+# ./usr/mdec
+..
+
+# ./usr/sbin
+sbin
+# ./usr/sbin
+..
+
+# ./usr/share
+share
+
+# ./usr/share/misc
+misc
+# ./usr/share/misc
+..
+
+# ./usr/share
+..
+
+# ./usr
+..
diff --git a/distrib/i386/floppies/inst-common/termcap.pc3 b/distrib/i386/floppies/inst-common/termcap.pc3
new file mode 100644
index 00000000000..feba9cc941d
--- /dev/null
+++ b/distrib/i386/floppies/inst-common/termcap.pc3
@@ -0,0 +1,42 @@
+# Copyright (c) 1980, 1985, 1989 The Regents of the University of California.
+# 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.
+# 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 University of
+# California, Berkeley and its contributors.
+# 4. Neither the name of the University nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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, 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.
+#
+# @(#)termcap.src 5.109 (Berkeley) 3/8/93
+#
+pc3|ibmpc3|IBM PC 386BSD Console:\
+ :DO=\E[%dB:K1=\E[H:K2=\E[E:K3=\E[I:K4=\E[F:K5=\E[G:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:am:bl=^G:bs:cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
+ :cm=\E[%i%d;%dH:co#80:cr=^M:do=^J:ho=\E[H:is=\E[m:k0=\E[V:k1=\E[M:\
+ :k2=\E[N:k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:k9=\E[U:\
+ :kD=\177:kH=\E[F:kN=\E[G:kP=\E[I:kb=\177:kd=\E[B:kh=\E[H:kl=\E[D:\
+ :kr=\E[C:ku=\E[A:le=^H:li#25:ms:nd=\E[C:rs=\E[m\E[x\E[14r:se=\E[m:\
+ :sf=\E[S:so=\E[7m:sr=\E[T:ta=^I:te=\E[m:ti=\E[m:up=\E[A:km:pt:\
+ :AL=\E[%dL:DL=\E[%dM:SF=\E[%dS:SR=\E[%dT:al=\E[L:dl=\E[M:
diff --git a/distrib/i386/floppies/inst/Makefile b/distrib/i386/floppies/inst/Makefile
new file mode 100644
index 00000000000..490fdc6f21c
--- /dev/null
+++ b/distrib/i386/floppies/inst/Makefile
@@ -0,0 +1,8 @@
+# $Id: Makefile,v 1.1 1995/10/18 08:37:34 deraadt Exp $
+
+TOP= ${.CURDIR}/..
+
+.include "${TOP}/Makefile.inc"
+IMAGE= inst-${REV}.fs
+
+.include "${TOP}/inst-common/Makefile.inc"
diff --git a/distrib/i386/floppies/inst/disktab.preinstall b/distrib/i386/floppies/inst/disktab.preinstall
new file mode 100644
index 00000000000..5fe26a7d81c
--- /dev/null
+++ b/distrib/i386/floppies/inst/disktab.preinstall
@@ -0,0 +1,29 @@
+# Disk geometry and partition layout tables.
+# Key:
+# dt controller type
+# ty type of disk (fixed, removeable, simulated)
+# d[0-4] drive-type-dependent parameters
+# ns #sectors/track
+# nt #tracks/cylinder
+# nc #cylinders/disk
+# sc #sectors/cylinder, nc*nt default
+# su #sectors/unit, sc*nc default
+# se sector size, DEV_BSIZE default
+# rm rpm, 3600 default
+# sf supports bad144-style bad sector forwarding
+# sk sector skew per track, default 0
+# cs sector skew per cylinder, default 0
+# hs headswitch time, default 0
+# ts one-cylinder seek time, default 0
+# il sector interleave (n:1), 1 default
+# bs boot block size, default BBSIZE
+# sb superblock size, default SBSIZE
+# o[a-h] partition offsets in sectors
+# p[a-h] partition sizes in sectors
+# b[a-h] partition block sizes in bytes
+# f[a-h] partition fragment sizes in bytes
+# t[a-h] partition types (filesystem, swap, etc)
+#
+# All partition sizes reserve space for bad sector tables.
+# (5 cylinders needed for maintenance + replacement sectors)
+#
diff --git a/distrib/i386/floppies/inst/dot.hdprofile b/distrib/i386/floppies/inst/dot.hdprofile
new file mode 100644
index 00000000000..9dd28c2316d
--- /dev/null
+++ b/distrib/i386/floppies/inst/dot.hdprofile
@@ -0,0 +1,62 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: dot.hdprofile,v 1.1 1995/10/18 08:37:34 deraadt Exp $
+
+PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
+export PATH
+TERM=pc3
+export TERM
+
+umask 022
+
+if [ "X${DONEPROFILE}" = "X" ]; then
+ DONEPROFILE=YES
+
+ echo "Checking filesystems..."
+ fsck -y
+
+ echo "Mounting filesystems..."
+ mount -a
+
+ # set up some sane defaults
+ echo 'erase ^?, werase ^W, kill ^U, intr ^C'
+ stty newcrt werase ^W intr ^C kill ^U erase ^? 9600
+ echo ''
+
+ # run update, so that installed software is written as it goes.
+ update
+
+ # pull in the functions that people will use from the shell prompt.
+ . /.commonutils
+ . /.instutils
+
+ echo "Follow the installation directions to install the NetBSD"
+ echo "distribution sets."
+fi
diff --git a/distrib/i386/floppies/inst/dot.instutils b/distrib/i386/floppies/inst/dot.instutils
new file mode 100644
index 00000000000..3ccf26a7455
--- /dev/null
+++ b/distrib/i386/floppies/inst/dot.instutils
@@ -0,0 +1,157 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: dot.instutils,v 1.1 1995/10/18 08:37:34 deraadt Exp $
+
+# Installation configuration utilites (functions), to get NetBSD configured
+# reasonably once it is installed on the hard disk. These are meant to be
+# invoked from the shell prompt, by people installing NetBSD.
+
+Configure()
+{
+ DEV=/dev
+ ETC=/etc
+ if [ ! -f /etc/fstab ]; then
+ DEV=/mnt/dev
+ ETC=/mnt/etc
+ fi
+
+ echo "You will now be prompted for information about this"
+ echo "machine. If you hit return, the default answer (in"
+ echo "brackets) will be used."
+
+ echo ""
+ echo -n "What is this machine's hostname? [unknown.host.domain] "
+ read hname
+ if [ "$hname" = "" ]; then
+ hname=unknown.host.domain
+ fi
+ echo $hname > ${ETC}/myname
+ proto_domain=`echo $hname | sed -e 's/[^.]*\.//'`
+
+ echo ""
+ echo "What domain is this machine in (this is NOT its YP"
+ echo -n "domain name)? [$proto_domain] "
+ read dname
+ if [ "$dname" = "" ]; then
+ dname=$proto_domain
+ fi
+
+ echo ""
+ if [ -e $ETC/sendmail.cf ]; then
+ echo "WARNING: A default sendmail.cf exists, and probably"
+ echo "needs to be tuned and/or replaced, to work properly at"
+ echo "your site!"
+ else
+ echo "WARNING: No default sendmail.cf installed. Did you"
+ echo "forget to install the 'etc' distribution?"
+ fi
+
+ echo "127.0.0.1 localhost localhost.$dname" > ${ETC}/hosts
+
+ echo ""
+ echo -n "Does this machine have an ethernet interface? [y] "
+ read resp
+ case "$resp" in
+ n*)
+ ;;
+ *)
+ intf=
+ while [ "$intf" = "" ]; do
+ echo -n "What is the primary interface name "
+ echo -n "(e.g. ed0, ep0, etc)? "
+ read intf
+ done
+ echo -n "What is the hostname for this interface? [$hname] "
+ read ifname
+ if [ "$ifname" = "" ]; then
+ ifname=$hname
+ fi
+ ifaddr=
+ while [ "$ifaddr" = "" ]; do
+ echo -n "What is the IP address associated with "
+ echo -n "interface ${intf}? "
+ read ifaddr
+ done
+ echo "$ifaddr $ifname `echo $ifname | sed -e s/\.$dname//`" \
+ >> ${ETC}/hosts
+
+ echo -n "Does this interface have a special netmask? [n] "
+ read resp
+ case "$resp" in
+ y*)
+ echo -n "What is the netmask? [0xffffff00] "
+ read ifnetmask
+ if [ "$ifnetmask" = "" ]; then
+ ifnetmask=0xffffff00
+ fi
+ ;;
+ *)
+ ifnetmask=
+ ;;
+ esac
+
+ echo -n "Does this interface need additional flags? [n] "
+ read resp
+ case "$resp" in
+ y*)
+ echo -n "What flags? [link0] "
+ read ifflags
+ if [ "$ifflags" = "" ]; then
+ ifflags=link0
+ fi
+ ;;
+ *)
+ ifflags=
+ ;;
+ esac
+ echo "inet $ifname $ifnetmask $ifflags" > ${ETC}/hostname.$intf
+
+ echo ""
+ echo -n "WARNING: if you have any more ethernet interfaces, "
+ echo "you will have to configure"
+ echo -n "them by hand. Read the comments in /etc/netstart to "
+ echo "learn how to do this."
+ ;;
+ esac
+
+ echo ""
+ echo -n "Making device nodes (may take a while)..."
+ cd ${DEV}
+ sh MAKEDEV all
+ echo " done."
+
+ sync
+
+ echo ""
+ echo "If you haven't already installed a kernel on the hard drive"
+ echo "using your kernel-copy floppy, do so now. Kernel"
+ echo "installation instructions can be found in the"
+ echo "installation notes."
+}
diff --git a/distrib/i386/floppies/inst/dot.profile b/distrib/i386/floppies/inst/dot.profile
new file mode 100644
index 00000000000..d7df5e5dfbf
--- /dev/null
+++ b/distrib/i386/floppies/inst/dot.profile
@@ -0,0 +1,56 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: dot.profile,v 1.1 1995/10/18 08:37:34 deraadt Exp $
+
+PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
+export PATH
+TERM=pc3
+export TERM
+
+umask 022
+
+if [ "X${DONEPROFILE}" = "X" ]; then
+ DONEPROFILE=YES
+
+ # set up some sane defaults
+ echo 'erase ^?, werase ^W, kill ^U, intr ^C'
+ stty newcrt werase ^W intr ^C kill ^U erase ^? 9600
+ echo ''
+
+ # run update, so that installed software is written as it goes.
+ update
+
+ # pull in the functions that people will use from the shell prompt.
+ . /.commonutils
+ . /.instutils
+
+ # run the installation script.
+ install
+fi
diff --git a/distrib/i386/floppies/inst/install.sh b/distrib/i386/floppies/inst/install.sh
new file mode 100644
index 00000000000..3e984c2d42e
--- /dev/null
+++ b/distrib/i386/floppies/inst/install.sh
@@ -0,0 +1,483 @@
+#!/bin/sh
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: install.sh,v 1.1 1995/10/18 08:37:34 deraadt Exp $
+
+# NetBSD installation script.
+# In a perfect world, this would be a nice C program, with a reasonable
+# user interface.
+
+DT=/etc/disktab # /etc/disktab
+FSTABDIR=/mnt/etc # /mnt/etc
+#DONTDOIT=echo
+
+VERSION=1.1
+FSTAB=${FSTABDIR}/fstab
+
+getresp() {
+ read resp
+ if [ "X$resp" = "X" ]; then
+ resp=$1
+ fi
+}
+
+echo "Welcome to the NetBSD ${VERSION} installation program."
+echo ""
+echo "This program is designed to help you put NetBSD on your hard disk,"
+echo "in a simple and rational way. You'll be asked several questions,"
+echo "and it would probably be useful to have your disk's hardware"
+echo "manual, the installation notes, and a calculator handy."
+echo ""
+echo "In particular, you will need to know some reasonably detailed"
+echo "information about your disk's geometry, because there is currently"
+echo "no way this this program can figure that information out."
+echo ""
+echo "As with anything which modifies your hard drive's contents, this"
+echo "program can cause SIGNIFICANT data loss, and you are advised"
+echo "to make sure your hard drive is backed up before beginning the"
+echo "installation process."
+echo ""
+echo "Default answers are displyed in brackets after the questions."
+echo "You can hit Control-C at any time to quit, but if you do so at a"
+echo "prompt, you may have to hit return. Also, quitting in the middle of"
+echo "installation may leave your system in an inconsistent state."
+echo ""
+echo -n "Proceed with installation? [n] "
+getresp "n"
+case "$resp" in
+ y*|Y*)
+ echo "Cool! Let's get to it..."
+ ;;
+ *)
+ echo ""
+ echo "OK, then. Enter 'halt' at the prompt to halt the"
+ echo "machine. Once the machine has halted, remove the"
+ echo "floppy and press any key to reboot."
+ exit
+ ;;
+esac
+
+echo ""
+echo "To do the installation, you'll need to provide some information about"
+echo "your disk."
+echo ""
+echo "NetBSD can be installed on ST506, ESDI, IDE, or SCSI disks."
+echo -n "What kind of disk will you be installing on? [SCSI] "
+getresp "SCSI"
+case "$resp" in
+ esdi|ESDI|st506|ST506)
+ drivetype=wd
+ echo -n "Does it support _automatic_ sector remapping? [y] "
+ getresp "y"
+ case "$resp" in
+ n*|N*)
+ sect_fwd="sf:"
+ ;;
+ *)
+ sect_fwd=""
+ ;;
+ esac
+ ;;
+ ide|IDE)
+ drivetype=wd
+ sect_fwd=""
+ type=ST506
+ ;;
+ scsi|SCSI)
+ drivetype=sd
+ sect_fwd=""
+ type=SCSI
+ ;;
+esac
+
+# find out what units are possible for that disk, and query the user.
+driveunits=`ls /dev/${drivetype}?a | sed -e 's,/dev/\(...\)a,\1,g'`
+if [ "X${driveunits}" = "X" ]; then
+ echo "FATAL ERROR:"
+ echo "No devices for disks of type '${drivetype}'."
+ echo "This is probably a bug in the install disks."
+ echo "Exiting install program."
+ exit
+fi
+prefdrive=${drivetype}0
+
+echo ""
+echo "The following ${drivetype}-type disks are supported by this"
+echo "installation procedure:"
+echo " "${driveunits}
+echo "Note that they may not exist in _your_ machine; the list of"
+echo "disks in your machine was printed when the system was booting."
+echo ""
+while [ "X${drivename}" = "X" ]; do
+ echo -n "Which disk would like to install on? [${prefdrive}] "
+ getresp ${prefdrive}
+ otherdrives=`echo "${driveunits}" | sed -e s,${resp},,`
+ if [ "X${driveunits}" = "X${otherdrives}" ]; then
+ echo ""
+ echo "\"${resp}\" is an invalid drive name. Valid choices"
+ echo "are: "${driveunits}
+ echo ""
+ else
+ drivename=${resp}
+ fi
+done
+
+echo ""
+echo "Using disk ${drivename}."
+echo ""
+echo -n "What kind of disk is it? (one word please) [my${drivetype}] "
+getresp "my${drivetype}"
+labelname=$resp
+
+echo ""
+echo "You will now need to provide some information about your disk's"
+echo "geometry. This should either be in the User's Manual for your disk,"
+echo "or you should have written down what NetBSD printed when booting."
+echo "(Note that he geometry that's printed at boot time is preferred.)"
+echo ""
+echo -n "Number of bytes per disk sector? [512] "
+getresp 512
+bytes_per_sect="$resp"
+
+echo -n "Number of disk cylinders? "
+getresp
+cyls_per_disk="$resp"
+
+echo -n "Number of disk tracks (heads) per disk cylinder? "
+getresp
+tracks_per_cyl="$resp"
+
+echo -n "Number of disk sectors per disk track? "
+getresp
+sects_per_track="$resp"
+
+cylindersize=`expr $sects_per_track \* $tracks_per_cyl`
+cylbytes=`expr $cylindersize \* $bytes_per_sect`
+disksize=`expr $cylindersize \* $cyls_per_disk`
+
+echo ""
+echo "Your disk has a total of $disksize $bytes_per_sect byte sectors,"
+echo "arranged as $cyls_per_disk cylinders which contain $cylindersize "
+echo "sectors ($cylbytes bytes) each."
+echo ""
+echo "You can specify partition sizes in cylinders ('c') or sectors ('s')."
+while [ "X${sizemult}" = "X" ]; do
+ echo -n "What units would you like to use? [cylinders] "
+ getresp cylinders
+ case "$resp" in
+ c*|C*)
+ sizemult=$cylindersize
+ sizeunit="cylinders"
+ ;;
+ s*|S*)
+ sizemult=1
+ sizeunit="sectors"
+ ;;
+ *)
+ echo ""
+ echo "Enter cylinders ('c') or sectors ('s')."
+ ;;
+ esac
+done
+
+if [ $sizeunit = "sectors" ]; then
+ echo ""
+ echo "For best disk performance, partitions should begin and end on"
+ echo "cylinder boundaries. Wherever possible, pick sizes that are"
+ echo "multiples of the cylinder size ($cylindersize sectors)."
+fi
+
+echo -n ""
+echo -n "Size of NetBSD portion of disk (in $sizeunit)? "
+getresp
+partition=$resp
+partition_sects=`expr $resp \* $sizemult`
+part_offset=0
+if [ $partition_sects -lt $disksize ]; then
+ echo -n "Offset of NetBSD portion of disk (in $sizeunit)? "
+ getresp
+ part_offset=$resp
+fi
+badspacesec=0
+if [ "$sect_fwd" = "sf:" ]; then
+ badspacecyl=`expr $sects_per_track + 126`
+ badspacecyl=`expr $badspacecyl + $cylindersize - 1`
+ badspacecyl=`expr $badspacecyl / $cylindersize`
+ badspacesec=`expr $badspacecyl \* $cylindersize`
+ echo ""
+ echo -n "Using $badspacesec sectors ($badspacecyl cylinders) for the "
+ echo "bad144 bad block table"
+fi
+
+sects_left=`expr $partition_sects - $badspacesec`
+units_left=`expr $sects_left / $sizemult`
+echo ""
+echo "There are $units_left $sizeunit left to allocate."
+echo ""
+root=0
+while [ $root -eq 0 ]; do
+ echo -n "Root partition size (in $sizeunit)? "
+ getresp
+ case $resp in
+ [1-9]*)
+ total=$resp
+ if [ $total -gt $units_left ]; then
+ echo -n "Root size is greater than remaining "
+ echo "free space on disk."
+ else
+ root=$resp
+ fi
+ ;;
+ esac
+done
+root_offset=$part_offset
+part_used=`expr $root + $badspacesec / $sizemult`
+units_left=`expr $partition - $part_used`
+echo ""
+
+swap=0
+while [ $swap -eq 0 ]; do
+ echo "$units_left $sizeunit remaining in NetBSD portion of disk."
+ echo -n "Swap partition size (in $sizeunit)? "
+ getresp
+ case $resp in
+ [1-9]*)
+ if [ $swap -gt $units_left ]; then
+ echo -n "Swap size is greater than remaining "
+ echo "free space on disk."
+ else
+ swap=$resp
+ fi
+ ;;
+ esac
+done
+swap_offset=`expr $root_offset + $root`
+part_used=`expr $part_used + $swap`
+echo ""
+
+fragsize=1024
+blocksize=8192
+$DONTDOIT mount -u /dev/fd0a /
+cat /etc/disktab.preinstall > $DT
+echo "" >> $DT
+echo "$labelname|NetBSD installation generated:\\" >> $DT
+echo " :dt=${type}:ty=winchester:\\" >> $DT
+echo -n " :nc#${cyls_per_disk}:ns#${sects_per_track}" >> $DT
+echo ":nt#${tracks_per_cyl}:\\" >> $DT
+echo " :se#${bytes_per_sect}:${sect_fwd}\\" >> $DT
+_size=`expr $root \* $sizemult`
+_offset=`expr $root_offset \* $sizemult`
+echo -n " :pa#${_size}:oa#${_offset}" >> $DT
+echo ":ta=4.2BSD:ba#${blocksize}:fa#${fragsize}:\\" >> $DT
+_size=`expr $swap \* $sizemult`
+_offset=`expr $swap_offset \* $sizemult`
+echo " :pb#${_size}:ob#${_offset}:tb=swap:\\" >> $DT
+_size=`expr $partition \* $sizemult`
+_offset=`expr $part_offset \* $sizemult`
+echo " :pc#${_size}:oc#${_offset}:\\" >> $DT
+
+echo "You will now have to enter information about any other partitions"
+echo "to be created in the NetBSD portion of the disk. This process will"
+echo "be complete when you've filled up all remaining space in the NetBSD"
+echo "portion of the disk."
+
+while [ $part_used -lt $partition ]; do
+ part_size=0
+ units_left=`expr $partition - $part_used`
+ while [ $part_size -eq 0 ]; do
+ echo ""
+ echo -n "$units_left $sizeunit remaining in NetBSD portion of "
+ echo "the disk"
+ echo -n "Next partition size (in $sizeunit)? "
+ getresp
+ case $resp in
+ [1-9]*)
+ total=`expr $part_used + $resp`
+ if [ $total -gt $partition ]; then
+ echo -n "That would make the parition"
+ echo "too large to fit!"
+ else
+ part_size=$resp
+ part_used=$total
+ part_name=""
+ while [ "$part_name" = "" ]; do
+ echo -n "Mount point? "
+ getresp
+ part_name=$resp
+ done
+ fi
+ ;;
+ esac
+ done
+ if [ "$ename" = "" ]; then
+ ename=$part_name
+ offset=`expr $part_offset + $root + $swap`
+ _size=`expr $part_size \* $sizemult`
+ _offset=`expr $offset \* $sizemult`
+ echo -n " :pe#${_size}:oe#${_offset}" >> $DT
+ echo ":te=4.2BSD:be#${blocksize}:fe#${fragsize}:\\" >> $DT
+ offset=`expr $offset + $part_size`
+ elif [ "$fname" = "" ]; then
+ fname=$part_name
+ _size=`expr $part_size \* $sizemult`
+ _offset=`expr $offset \* $sizemult`
+ echo -n " :pf#${_size}:of#${_offset}" >> $DT
+ echo ":tf=4.2BSD:bf#${blocksize}:ff#${fragsize}:\\" >> $DT
+ offset=`expr $offset + $part_size`
+ elif [ "$gname" = "" ]; then
+ gname=$part_name
+ _size=`expr $part_size \* $sizemult`
+ _offset=`expr $offset \* $sizemult`
+ echo -n " :pg#${_size}:og#${_offset}" >> $DT
+ echo ":tg=4.2BSD:bg#${blocksize}:fg#${fragsize}:\\" >> $DT
+ offset=`expr $offset + $part_size`
+ elif [ "$hname" = "" ]; then
+ hname=$part_name
+ _size=`expr $part_size \* $sizemult`
+ _offset=`expr $offset \* $sizemult`
+ echo -n " :ph#${_size}:oh#${_offset}" >> $DT
+ echo ":th=4.2BSD:bh#${blocksize}:fh#${fragsize}:\\" >> $DT
+ part_used=$partition
+ fi
+done
+echo " :pd#${disksize}:od#0:" >> $DT
+sync
+
+echo ""
+echo "THIS IS YOUR LAST CHANCE!!!"
+echo ""
+echo -n "Are you SURE you want NetBSD installed on your hard drive? (yes/no) "
+answer=""
+while [ "$answer" = "" ]; do
+ getresp
+ case $resp in
+ yes|YES)
+ echo ""
+ echo "Here we go..."
+ answer=yes
+ ;;
+ no|NO)
+ echo ""
+ echo -n "OK, then. enter 'halt' to halt the machine. "
+ echo "Once the machine has halted,"
+ echo -n "remove the floppy, and press any key to "
+ echo "reboot."
+ exit
+ ;;
+ *)
+ echo -n "I want a yes or no answer... well? "
+ ;;
+ esac
+done
+
+echo ""
+echo -n "Labeling disk $drivename..."
+$DONTDOIT disklabel -w -B $drivename $labelname
+echo " done."
+
+if [ "$sect_fwd" = "sf:" ]; then
+ echo -n "Initializing bad144 badblock table..."
+ $DONTDOIT bad144 $drivename 0
+ echo " done."
+fi
+
+echo "Initializing root filesystem, and mounting..."
+$DONTDOIT newfs /dev/r${drivename}a $name
+$DONTDOIT mount -v /dev/${drivename}a /mnt
+if [ "$ename" != "" ]; then
+ echo ""
+ echo "Initializing $ename filesystem, and mounting..."
+ $DONTDOIT newfs /dev/r${drivename}e $name
+ $DONTDOIT mkdir -p /mnt/$ename
+ $DONTDOIT mount -v /dev/${drivename}e /mnt/$ename
+fi
+if [ "$fname" != "" ]; then
+ echo ""
+ echo "Initializing $fname filesystem, and mounting..."
+ $DONTDOIT newfs /dev/r${drivename}f $name
+ $DONTDOIT mkdir -p /mnt/$fname
+ $DONTDOIT mount -v /dev/${drivename}f /mnt/$fname
+fi
+if [ "$gname" != "" ]; then
+ echo ""
+ echo "Initializing $gname filesystem, and mounting..."
+ $DONTDOIT newfs /dev/r${drivename}g $name
+ $DONTDOIT mkdir -p /mnt/$gname
+ $DONTDOIT mount -v /dev/${drivename}g /mnt/$gname
+fi
+if [ "$hname" != "" ]; then
+ echo ""
+ echo "Initializing $hname filesystem, and mounting..."
+ $DONTDOIT newfs /dev/r${drivename}h $name
+ $DONTDOIT mkdir -p /mnt/$hname
+ $DONTDOIT mount -v /dev/${drivename}h /mnt/$hname
+fi
+
+echo ""
+echo "Populating filesystems with bootstrapping binaries and config files"
+$DONTDOIT tar --one-file-system -cf - . | (cd /mnt ; tar --unlink -xpf - )
+$DONTDOIT cp /tmp/.hdprofile /mnt/.profile
+
+echo ""
+echo -n "Creating an fstab..."
+echo /dev/${drivename}a / ffs rw 1 1 | sed -e s,//,/, > $FSTAB
+if [ "$ename" != "" ]; then
+ echo /dev/${drivename}e /$ename ffs rw 1 2 | sed -e s,//,/, >> $FSTAB
+fi
+if [ "$fname" != "" ]; then
+ echo /dev/${drivename}f /$fname ffs rw 1 3 | sed -e s,//,/, >> $FSTAB
+fi
+if [ "$gname" != "" ]; then
+ echo /dev/${drivename}g /$gname ffs rw 1 4 | sed -e s,//,/, >> $FSTAB
+fi
+if [ "$hname" != "" ]; then
+ echo /dev/${drivename}h /$hname ffs rw 1 5 | sed -e s,//,/, >> $FSTAB
+fi
+sync
+echo " done."
+
+echo ""
+echo ""
+echo "OK! The preliminary work of setting up your disk is now complete."
+echo ""
+echo "The remaining tasks are:"
+echo ""
+echo "To copy a NetBSD kernel to the hard drive's root filesystem."
+echo "Once accomplished, you can boot off the hard drive."
+echo ""
+echo "To load and install the NetBSD distribution sets."
+echo "Currently the hard drive's root filesystem is mounted on /mnt"
+echo ""
+echo "Consult the installation notes which will describe how to"
+echo "install the distribution sets and kernel. Post-installation"
+echo "configuration is also discussed therein."
+echo ""
+echo "GOOD LUCK!"
+echo ""
diff --git a/distrib/i386/floppies/inst/list b/distrib/i386/floppies/inst/list
new file mode 100644
index 00000000000..29b8a3d646e
--- /dev/null
+++ b/distrib/i386/floppies/inst/list
@@ -0,0 +1,11 @@
+# $Id: list,v 1.1 1995/10/18 08:37:34 deraadt Exp $
+
+# the disktab explanation file
+COPY disktab.preinstall etc/disktab.preinstall
+
+# and the installation tools
+COPY dot.profile .profile
+COPY dot.instutils .instutils
+COPY install.sh install
+COPY dot.hdprofile tmp/.hdprofile
+SPECIAL chmod 755 install
diff --git a/distrib/i386/floppies/kc-common/Makefile.inc b/distrib/i386/floppies/kc-common/Makefile.inc
new file mode 100644
index 00000000000..f4424c85db9
--- /dev/null
+++ b/distrib/i386/floppies/kc-common/Makefile.inc
@@ -0,0 +1,50 @@
+# $Id: Makefile.inc,v 1.1 1995/10/18 08:37:34 deraadt Exp $
+
+# TOP is assumed to be defined by Makefile including this one.
+
+CBIN= kcbin
+COMMONDIR= ${TOP}/kc-common
+
+MOUNT_POINT?= /mnt
+VND?= vnd0
+VND_DEV= /dev/${VND}a
+VND_RDEV= /dev/r${VND}a
+IMAGE?= xxx-${REV}.fs
+MDEC= ${DESTDIR}/usr/mdec
+
+LISTS= ${COMMONDIR}/list ${.CURDIR}/list
+CRUNCHCONF= ${COMMONDIR}/${CBIN}.conf
+MTREE= ${COMMONDIR}/mtree.conf
+
+all: ${CBIN}
+ dd if=/dev/zero of=${IMAGE} bs=100k count=12
+ vnconfig -v -c ${VND_DEV} ${IMAGE}
+ disklabel -w -B -b ${MDEC}/fdboot -s ${MDEC}/bootfd ${VND} floppy5
+ newfs -O -m 0 -o space -i 6144 -c 80 ${VND_RDEV} floppy5
+ mount ${VND_DEV} ${MOUNT_POINT}
+ mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u
+ TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
+ TARGDIR=${MOUNT_POINT} sh ${TOP}/runlist.sh ${LISTS}
+ @echo ""
+ @df -i ${MOUNT_POINT}
+ @echo ""
+ umount ${MOUNT_POINT}
+ vnconfig -u ${VND_DEV}
+ cat /*bin/* > /dev/null
+
+unconfig:
+ -umount -f ${MOUNT_POINT}
+ -vnconfig -u ${VND_DEV}
+ -/bin/rm -f ${IMAGE}
+
+${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
+ crunchgen -D ${TOP}/../../.. -L ${DESTDIR}/usr/lib ${CRUNCHCONF}
+
+${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
+ make -f ${CBIN}.mk all
+
+clean cleandir:
+ /bin/rm -f core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}.cache *.o *.lo *.c
+
+.include <bsd.obj.mk>
+.include <bsd.subdir.mk>
diff --git a/distrib/i386/floppies/kc-common/copy_kernel.sh b/distrib/i386/floppies/kc-common/copy_kernel.sh
new file mode 100644
index 00000000000..1999d300c91
--- /dev/null
+++ b/distrib/i386/floppies/kc-common/copy_kernel.sh
@@ -0,0 +1,113 @@
+# $Id: copy_kernel.sh,v 1.1 1995/10/18 08:37:35 deraadt Exp $
+#
+# Kernel copy script
+
+DEFAULT_PARTITON=sd0a
+MOUNT_POINT=/mnt
+KERNEL_NAME=/netbsd
+#TEST=testfn
+
+testfn() {
+ echo $*
+ sleep 5
+}
+
+cancel() {
+ echo ""
+ echo "Copy cancelled."
+ exit 1
+}
+
+umountfs() {
+ echo "Unmounting filesystem; please wait."
+ trap 2 3
+ ${TEST} umount ${MOUNT_POINT}
+ case $? in
+ 0)
+ ;;
+ *)
+ echo "Warning: Unmount of ${MOUNT_POINT} failed."
+ ;;
+ esac
+}
+
+warning() {
+ echo ""
+ echo "Copy failed or was interrupted."
+ echo "Warning: Copied kernel my be corrupted!"
+}
+
+trap "cancel;" 2 3
+echo "NetBSD kernel copy program"
+echo ""
+echo "Default answers are displayed in brackets. You may hit Control-C"
+echo "at any time to cancel this operation (though if you hit Control-C at"
+echo "a prompt, you need to hit return for it to be noticed)."
+
+echo ""
+echo "What disk partition should the kernel be installed on?"
+echo "(For example, \"sd0a\", \"wd0a\", etc.)"
+echo ""
+echo -n "Partition? [${DEFAULT_PARTITON}] "
+read diskpart
+if [ "X${diskpart}" = "X" ]; then
+ diskpart=${DEFAULT_PARTITON}
+fi
+rawdiskpart="r${diskpart}"
+
+echo ""
+echo -n "Are you sure you want to copy a new kernel to ${diskpart}? [n] "
+read reply
+case ${reply} in
+y*|Y*)
+ ;;
+*)
+ cancel
+ ;;
+esac
+
+echo ""
+echo "Checking ${diskpart} partition; please wait."
+${TEST} fsck -p "/dev/${rawdiskpart}"
+case $? in
+0)
+ ;;
+*)
+ echo "File system check failed or aborted!"
+ cancel
+ ;;
+esac
+
+echo "Mounting /dev/${diskpart} on ${MOUNT_POINT}."
+trap "echo ''; umountfs; cancel;" 2 3
+${TEST} mount "/dev/${diskpart}" ${MOUNT_POINT}
+case $? in
+0)
+ ;;
+*)
+ echo "Mount failed!"
+ cancel
+ ;;
+esac
+
+echo "Copying kernel to ${MOUNT_POINT}."
+trap "warning; umountfs; cancel;" 2 3
+${TEST} cp ${KERNEL_NAME} ${MOUNT_POINT}
+case $? in
+0)
+ ;;
+*)
+ warning
+ umountfs
+ cancel
+ ;;
+esac
+
+umountfs
+
+echo ""
+echo "Copy completed."
+echo ""
+echo "Use \"halt\" to halt the system, then (when the system is halted)"
+echo "eject the floppy disk and hit any key to reboot from the hard disk."
+exit 0
diff --git a/distrib/i386/floppies/kc-common/dot.profile b/distrib/i386/floppies/kc-common/dot.profile
new file mode 100644
index 00000000000..cb488010091
--- /dev/null
+++ b/distrib/i386/floppies/kc-common/dot.profile
@@ -0,0 +1,13 @@
+# $Id: dot.profile,v 1.1 1995/10/18 08:37:35 deraadt Exp $
+
+PATH=/sbin:/bin:/
+export PATH
+
+if [ "X${DONEPROFILE}" = "X" ]; then
+ DONEPROFILE=YES
+
+ echo -n "Enter 'copy_kernel' at the prompt to copy a kernel to your "
+ echo "hard disk,"
+ echo "'reboot' to reboot the system, or 'halt' to halt the system."
+ echo ""
+fi
diff --git a/distrib/i386/floppies/kc-common/kcbin.conf b/distrib/i386/floppies/kc-common/kcbin.conf
new file mode 100644
index 00000000000..0a001e2e7cd
--- /dev/null
+++ b/distrib/i386/floppies/kc-common/kcbin.conf
@@ -0,0 +1,15 @@
+#
+# kcbin.conf - unified binary for the kc floppy
+# $Id: kcbin.conf,v 1.1 1995/10/18 08:37:35 deraadt Exp $
+#
+
+srcdirs bin sbin
+
+progs cp dd disklabel fsck init mount mount_ffs reboot sh test umount
+
+ln test [
+ln mount_ffs ffs
+ln reboot halt
+ln sh -sh # init invokes the shell this way
+
+libs -ledit -lutil -ltermcap -lcrypt -ll
diff --git a/distrib/i386/floppies/kc-common/list b/distrib/i386/floppies/kc-common/list
new file mode 100644
index 00000000000..2caf7cd544b
--- /dev/null
+++ b/distrib/i386/floppies/kc-common/list
@@ -0,0 +1,31 @@
+# $Id: list,v 1.1 1995/10/18 08:37:35 deraadt Exp $
+
+# copy the crunched binary, link to it, and kill it
+COPY ${OBJDIR}/kcbin kcbin
+LINK kcbin bin/cp
+LINK kcbin bin/dd
+LINK kcbin bin/sh
+LINK kcbin bin/test
+LINK kcbin bin/[
+LINK kcbin sbin/disklabel
+LINK kcbin sbin/fsck
+LINK kcbin sbin/halt
+LINK kcbin sbin/init
+LINK kcbin sbin/mount
+LINK kcbin sbin/mount_ffs
+LINK kcbin sbin/reboot
+LINK kcbin sbin/umount
+SPECIAL /bin/rm kcbin
+
+# copy the MAKEDEV script and make some devices
+COPY ${CURDIR}/../../../../etc/etc.i386/MAKEDEV dev/MAKEDEV
+SPECIAL cd dev; sh MAKEDEV floppy
+SPECIAL /bin/rm dev/MAKEDEV
+
+# we need the contents of /usr/mdec
+COPYDIR ${DESTDIR}/usr/mdec usr/mdec
+
+# copy the common kc-floppy tools
+COPY ${TOPDIR}/kc-common/dot.profile .profile
+COPY ${TOPDIR}/kc-common/copy_kernel.sh copy_kernel
+SPECIAL chmod 755 copy_kernel
diff --git a/distrib/i386/floppies/kc-common/mtree.conf b/distrib/i386/floppies/kc-common/mtree.conf
new file mode 100644
index 00000000000..513f5b98ed4
--- /dev/null
+++ b/distrib/i386/floppies/kc-common/mtree.conf
@@ -0,0 +1,36 @@
+# $Id: mtree.conf,v 1.1 1995/10/18 08:37:35 deraadt Exp $
+
+/set type=dir uname=root gname=wheel mode=0755
+# .
+.
+
+# ./bin
+bin
+# ./bin
+..
+
+# ./dev
+dev
+# ./dev
+..
+
+#./mnt
+mnt
+# ./mnt
+..
+
+# ./sbin
+sbin
+# ./sbin
+..
+
+# ./usr
+usr
+
+# ./usr/mdec
+mdec
+# ./usr/mdec
+..
+
+# ./usr
+..
diff --git a/distrib/i386/floppies/kc/Makefile b/distrib/i386/floppies/kc/Makefile
new file mode 100644
index 00000000000..4b28f0c565a
--- /dev/null
+++ b/distrib/i386/floppies/kc/Makefile
@@ -0,0 +1,8 @@
+# $Id: Makefile,v 1.1 1995/10/18 08:37:35 deraadt Exp $
+
+TOP= ${.CURDIR}/..
+
+.include "${TOP}/Makefile.inc"
+IMAGE= kc-${REV}.fs
+
+.include "${TOP}/kc-common/Makefile.inc"
diff --git a/distrib/i386/floppies/kc/list b/distrib/i386/floppies/kc/list
new file mode 100644
index 00000000000..811e95ccd03
--- /dev/null
+++ b/distrib/i386/floppies/kc/list
@@ -0,0 +1,4 @@
+# $Id: list,v 1.1 1995/10/18 08:37:35 deraadt Exp $
+
+# copy the kernel
+COPY ${CURDIR}/../../../../sys/arch/i386/compile/INSTALL/netbsd netbsd
diff --git a/distrib/i386/floppies/list2sh.awk b/distrib/i386/floppies/list2sh.awk
new file mode 100644
index 00000000000..6d7898148ec
--- /dev/null
+++ b/distrib/i386/floppies/list2sh.awk
@@ -0,0 +1,55 @@
+# $Id: list2sh.awk,v 1.1 1995/10/18 08:37:33 deraadt Exp $
+
+BEGIN {
+ printf("cd ${CURDIR}\n");
+ printf("\n");
+}
+/^$/ || /^#/ {
+ print $0;
+ next;
+}
+$1 == "COPY" {
+ printf("echo '%s'\n", $0);
+ printf("rm -f ${TARGDIR}/%s\n", $3);
+ printf("cp %s ${TARGDIR}/%s\n", $2, $3);
+ next;
+}
+$1 == "LINK" {
+ printf("echo '%s'\n", $0);
+ printf("rm -f ${TARGDIR}/%s\n", $3);
+ printf("(cd ${TARGDIR}; ln %s %s)\n", $2, $3);
+ next;
+}
+$1 == "SYMLINK" {
+ printf("echo '%s'\n", $0);
+ printf("rm -f ${TARGDIR}/%s\n", $3);
+ printf("(cd ${TARGDIR}; ln -s %s %s)\n", $2, $3);
+ next;
+}
+$1 == "COPYDIR" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR}/%s && find . ! -name . | xargs /bin/rm -rf)\n",
+ $3);
+ printf("(cd %s && find . ! -name . | cpio -pdamu ${TARGDIR}/%s)\n", $2,
+ $3);
+ next;
+}
+$1 == "SPECIAL" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR};");
+ for (i = 2; i <= NF; i++)
+ printf(" %s", $i);
+ printf(")\n");
+ next;
+}
+{
+ printf("echo '%s'\n", $0);
+ printf("echo 'Unknown keyword \"%s\" at line %d of input.'\n", $1, NR);
+ printf("exit 1\n");
+ exit 1;
+}
+END {
+ printf("\n");
+ printf("exit 0\n");
+ exit 0;
+}
diff --git a/distrib/i386/floppies/runlist.sh b/distrib/i386/floppies/runlist.sh
new file mode 100644
index 00000000000..72d01961287
--- /dev/null
+++ b/distrib/i386/floppies/runlist.sh
@@ -0,0 +1,13 @@
+# $Id: runlist.sh,v 1.1 1995/10/18 08:37:33 deraadt Exp $
+
+if [ "X$1" = "X-d" ]; then
+ SHELLCMD=cat
+ shift
+else
+ SHELLCMD="sh -e"
+fi
+
+( while [ "X$1" != "X" ]; do
+ cat $1
+ shift
+done ) | awk -f ${TOPDIR}/list2sh.awk | ${SHELLCMD}
diff --git a/distrib/i386/floppies/upgr/Makefile b/distrib/i386/floppies/upgr/Makefile
new file mode 100644
index 00000000000..0ba5f863164
--- /dev/null
+++ b/distrib/i386/floppies/upgr/Makefile
@@ -0,0 +1,8 @@
+# $Id: Makefile,v 1.1 1995/10/18 08:37:35 deraadt Exp $
+
+TOP= ${.CURDIR}/..
+
+.include "${TOP}/Makefile.inc"
+IMAGE= upgr-${REV}.fs
+
+.include "${TOP}/inst-common/Makefile.inc"
diff --git a/distrib/i386/floppies/upgr/dot.hdprofile b/distrib/i386/floppies/upgr/dot.hdprofile
new file mode 100644
index 00000000000..f1fa65b4a9d
--- /dev/null
+++ b/distrib/i386/floppies/upgr/dot.hdprofile
@@ -0,0 +1,62 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: dot.hdprofile,v 1.1 1995/10/18 08:37:35 deraadt Exp $
+
+PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
+export PATH
+TERM=pc3
+export TERM
+
+umask 022
+
+if [ "X${DONEPROFILE}" = "X" ]; then
+ DONEPROFILE=YES
+
+ echo "Checking filesystems..."
+ fsck -y
+
+ echo "Mounting filesystems..."
+ mount -a
+
+ # set up some sane defaults
+ echo 'erase ^?, werase ^W, kill ^U, intr ^C'
+ stty newcrt werase ^W intr ^C kill ^U erase ^? 9600
+ echo ''
+
+ # run update, so that installed software is written as it goes.
+ update
+
+ # pull in the functions that people will use from the shell prompt.
+ . /.commonutils
+ . /.upgrutils
+
+ echo "Follow the installation directions to install the NetBSD"
+ echo "distribution sets."
+fi
diff --git a/distrib/i386/floppies/upgr/dot.profile b/distrib/i386/floppies/upgr/dot.profile
new file mode 100644
index 00000000000..6c7d5adc48b
--- /dev/null
+++ b/distrib/i386/floppies/upgr/dot.profile
@@ -0,0 +1,56 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: dot.profile,v 1.1 1995/10/18 08:37:35 deraadt Exp $
+
+PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
+export PATH
+TERM=pc3
+export TERM
+
+umask 022
+
+if [ "X${DONEPROFILE}" = "X" ]; then
+ DONEPROFILE=YES
+
+ # set up some sane defaults
+ echo 'erase ^?, werase ^W, kill ^U, intr ^C'
+ stty newcrt werase ^W intr ^C kill ^U erase ^? 9600
+ echo ''
+
+ # run update, so that installed software is written as it goes.
+ update
+
+ # pull in the functions that people will use from the shell prompt.
+ . /.commonutils
+ . /.upgrutils
+
+ # run the upgrade script.
+ upgrade
+fi
diff --git a/distrib/i386/floppies/upgr/dot.upgrutils b/distrib/i386/floppies/upgr/dot.upgrutils
new file mode 100644
index 00000000000..afc8f3df2cd
--- /dev/null
+++ b/distrib/i386/floppies/upgr/dot.upgrutils
@@ -0,0 +1,58 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: dot.upgrutils,v 1.1 1995/10/18 08:37:35 deraadt Exp $
+
+# Upgrade cleanup utilites (functions), to make sure a recently-upgraded
+# system is safely runnable. These are meant to be invoked from the shell
+# prompt, by people installing NetBSD.
+
+Cleanup()
+{
+ upgrade_dir=/
+
+ if [ ! -f /etc/fstab ]; then
+ upgrade_dir=/mnt
+ fi
+
+ echo "Cleaning up miscellaneous files in /etc..."
+ mv $upgrade_dir/etc/rc.bak $upgrade_dir/etc/rc
+ chroot $upgrade_dir /usr/sbin/pwd_mkdb -p /etc/master.passwd
+ chroot $upgrade_dir /bin/rm /etc/sendmail.fc > /dev/null 2>&1
+ sync
+ echo "Done."
+
+ echo ""
+ echo "All that's left to do now is to install a new NetBSD kernel"
+ echo "on your hard disk. You should now halt your machine using"
+ echo "the 'halt' command. Once the machine is halted, replace the"
+ echo "installation floppy with the kernel-copy floppy and hit any"
+ echo "key to reboot. Use the kernel-copy floppy to copy a kernel"
+ echo "to your hard disk."
+}
diff --git a/distrib/i386/floppies/upgr/list b/distrib/i386/floppies/upgr/list
new file mode 100644
index 00000000000..eb3850b4daa
--- /dev/null
+++ b/distrib/i386/floppies/upgr/list
@@ -0,0 +1,8 @@
+# $Id: list,v 1.1 1995/10/18 08:37:35 deraadt Exp $
+
+# and the upgrade tools
+COPY dot.profile .profile
+COPY dot.upgrutils .upgrutils
+COPY upgrade.sh upgrade
+COPY dot.hdprofile tmp/.hdprofile
+SPECIAL chmod 755 upgrade
diff --git a/distrib/i386/floppies/upgr/upgrade.sh b/distrib/i386/floppies/upgr/upgrade.sh
new file mode 100644
index 00000000000..8ac8eb5bbdf
--- /dev/null
+++ b/distrib/i386/floppies/upgr/upgrade.sh
@@ -0,0 +1,253 @@
+#!/bin/sh
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: upgrade.sh,v 1.1 1995/10/18 08:37:35 deraadt Exp $
+
+# NetBSD upgrade script.
+# In a perfect world, this would be a nice C program, with a reasonable
+# user interface.
+
+DT=/etc/disktab # /etc/disktab
+FSTABDIR=/mnt/etc # /mnt/etc
+#DONTDOIT=echo
+
+VERSION=1.0
+FSTAB=${FSTABDIR}/fstab
+
+getresp() {
+ read resp
+ if [ "X$resp" = "X" ]; then
+ resp=$1
+ fi
+}
+
+echo "Welcome to the NetBSD ${VERSION} upgrade program."
+echo ""
+echo "This program is designed to help you put the new version of NetBSD"
+echo "on your hard disk, in a simple and rational way. To upgrade, you"
+echo "must have plenty of free space on all partitions which will be"
+echo "upgraded. If you have at least 1MB free on your root partition,"
+echo "and several free on your /usr patition, you should be fine."
+echo ""
+echo "As with anything which modifies your hard drive's contents, this"
+echo "program can cause SIGNIFICANT data loss, and you are advised"
+echo "to make sure your hard drive is backed up before beginning the"
+echo "upgrade process."
+echo ""
+echo "Default answers are displyed in brackets after the questions."
+echo "You can hit Control-C at any time to quit, but if you do so at a"
+echo "prompt, you may have to hit return. Also, quitting in the middle of"
+echo "the upgrade may leave your system in an inconsistent (and unusable)"
+echo "state."
+echo ""
+echo -n "Proceed with upgrade? [n] "
+getresp "n"
+case "$resp" in
+ y*|Y*)
+ echo "Cool! Let's get to it..."
+ ;;
+ *)
+ echo ""
+ echo "OK, then. Enter 'halt' at the prompt to halt the"
+ echo "machine. Once the machine has halted, remove the"
+ echo "floppy and press any key to reboot."
+ exit
+ ;;
+esac
+
+# find out what units are possible, and query the user.
+driveunits=`ls /dev/[sw]d?a | sed -e 's,/dev/\(...\)a,\1,g'`
+if [ "X${driveunits}" = "X" ]; then
+ echo "FATAL ERROR:"
+ echo "No disk devices."
+ echo "This is probably a bug in the install disks."
+ echo "Exiting install program."
+ exit
+fi
+
+echo ""
+echo "The following disks are supported by this upgrade procedure:"
+echo " "${driveunits}
+echo "If your system was previously completely contained within the"
+echo "disks listed above (i.e. if your system didn't occupy any space"
+echo "on disks NOT listed above), this upgrade disk can upgrade your"
+echo "system. If it cannot, hit Control-C at the prompt."
+echo ""
+while [ "X${drivename}" = "X" ]; do
+ echo -n "Which disk contains your root partion? "
+ getresp
+ otherdrives=`echo "${driveunits}" | sed -e s,${resp},,`
+ if [ "X${driveunits}" = "X${otherdrives}" ]; then
+ echo ""
+ echo "\"${resp}\" is an invalid drive name. Valid choices"
+ echo "are: "${driveunits}
+ echo ""
+ else
+ drivename=${resp}
+ fi
+done
+
+echo ""
+echo "Root partition is on ${drivename}a."
+
+echo ""
+echo "Would you like to upgrade your file systems to the new file system"
+echo -n "format? [y] "
+getresp "y"
+case "$resp" in
+ n*|N*)
+ echo ""
+ echo "You should upgrade your file systems with 'fsck -c 2'"
+ echo "as soon as is feasible, because the new file system"
+ echo "code is better-tested and more performant."
+ upgradefs=NO
+ ;;
+ *)
+ upgradefs=YES
+ ;;
+esac
+
+if [ $upgradefs = YES ]; then
+ echo ""
+ echo "Upgrading the file system on ${drivename}a..."
+
+ fsck -p -c 2 /dev/r${drivename}a
+ if [ $? != 0 ]; then
+ echo "FATAL ERROR: FILE SYSTEM UPGRADE FAILED."
+ echo "You should probably reboot the machine, fsck your"
+ echo "disk(s), and try the upgrade procedure again."
+ exit 1
+ fi
+ echo "Done."
+fi
+
+echo ""
+echo "Mounting root partition on /mnt..."
+mount /dev/${drivename}a /mnt
+if [ $? != 0 ]; then
+ echo "FATAL ERROR: MOUNT FAILED."
+ echo "You should verify that your system is set up as you"
+ echo "described, and re-attempt the upgrade procedure."
+ exit 1
+fi
+echo "Done."
+
+if [ $upgradefs = YES ]; then
+ echo ""
+ echo -n "Copying new fsck binary to your hard disk..."
+ if [ ! -d /mnt/sbin ]; then
+ mkdir /mnt/sbin
+ fi
+ cp /sbin/fsck /mnt/sbin/fsck
+ if [ $? != 0 ]; then
+ echo "FATAL ERROR: COPY FAILED."
+ echo "It in unclear why this error would occur. It looks"
+ echo "like you may end up having to upgrade by hand."
+ exit 1
+ fi
+ echo " Done."
+
+ echo ""
+ echo "Re-mounting root partition read-only..."
+ mount -u -o ro /dev/${drivename}a /mnt
+ if [ $? != 0 ]; then
+ echo "FATAL ERROR: RE-MOUNT FAILED."
+ echo "It in unclear why this error would occur. It looks"
+ echo "like you may end up having to upgrade by hand."
+ exit 1
+ fi
+ echo "Done."
+
+ echo ""
+ echo "Upgrading the rest of your file systems..."
+ chroot /mnt fsck -p -c 2
+ if [ $? != 0 ]; then
+ echo "FATAL ERROR: FILE SYSTEM UPGRADE(S) FAILED."
+ echo "You should probably reboot the machine, fsck your"
+ echo "file system(s), and try the upgrade procedure"
+ echo "again."
+ exit 1
+ fi
+ echo "Done."
+
+ echo ""
+ echo "Re-mounting root partition read-write..."
+ mount -u -o rw /dev/${drivename}a /mnt
+ if [ $? != 0 ]; then
+ echo "FATAL ERROR: RE-MOUNT FAILED."
+ echo "It in unclear why this error would occur. It looks"
+ echo "like you may end up having to upgrade by hand."
+ exit 1
+ fi
+ echo "Done."
+fi
+
+echo ""
+echo "Updating boot blocks on ${drivename}..."
+disklabel -r $drivename > /mnt/tmp/${drivename}.label
+if [ $? != 0 ]; then
+ echo "FATAL ERROR: READ OF DISK LABEL FAILED."
+ echo "It in unclear why this error would occur. It looks"
+ echo "like you may end up having to upgrade by hand."
+ exit 1
+fi
+disklabel -R -B $drivename /mnt/tmp/${drivename}.label
+if [ $? != 0 ]; then
+ echo "FATAL ERROR: UPDATE OF DISK LABEL FAILED."
+ echo "It in unclear why this error would occur. It looks"
+ echo "like you may end up having to upgrade by hand."
+ exit 1
+fi
+echo "Done."
+
+echo ""
+echo "Copying bootstrapping binaries and config files to the hard drive..."
+$DONTDOIT cp /mnt/.profile /mnt/.profile.bak
+$DONTDOIT tar --exclude etc --one-file-system -cf - . | (cd /mnt ; tar --unlink -xpf - )
+$DONTDOIT mv /mnt/etc/rc /mnt/etc/rc.bak
+$DONTDOIT cp /tmp/.hdprofile /mnt/.profile
+
+echo ""
+echo "Mounting remaining partitions..."
+chroot /mnt mount -at ufs > /dev/null 2>&1
+echo "Done."
+
+echo ""
+echo ""
+echo "OK! The preliminary work of setting up your disk is now complete,"
+echo "and you can now upgrade the actual NetBSD software."
+echo ""
+echo "Right now, your hard disk is mounted on /mnt. You should consult"
+echo "the installation notes to determine how to load and install the new"
+echo "NetBSD distribution sets, and how to clean up after the upgrade"
+echo "software, when you are done."
+echo ""
+echo "GOOD LUCK!"
+echo ""
diff --git a/distrib/mac68k/Makefile b/distrib/mac68k/Makefile
new file mode 100644
index 00000000000..b0ce0865ae0
--- /dev/null
+++ b/distrib/mac68k/Makefile
@@ -0,0 +1,5 @@
+# $NetBSD: Makefile,v 1.1 1995/07/18 04:12:51 briggs Exp $
+
+SUBDIR= inst
+
+.include <bsd.subdir.mk>
diff --git a/distrib/mac68k/Makefile.inc b/distrib/mac68k/Makefile.inc
new file mode 100644
index 00000000000..3afe8f45c8b
--- /dev/null
+++ b/distrib/mac68k/Makefile.inc
@@ -0,0 +1,4 @@
+# $NetBSD: Makefile.inc,v 1.1 1995/07/18 04:12:57 briggs Exp $
+
+# Revision is 1.0
+REV= 10
diff --git a/distrib/mac68k/inst-common/Makefile.inc b/distrib/mac68k/inst-common/Makefile.inc
new file mode 100644
index 00000000000..c245b49f300
--- /dev/null
+++ b/distrib/mac68k/inst-common/Makefile.inc
@@ -0,0 +1,50 @@
+#
+# $NetBSD: Makefile.inc,v 1.1 1995/07/18 04:13:14 briggs Exp $
+#
+
+# TOP is assumed to be defined by Makefile including this one.
+
+CBIN= raminst
+COMMONDIR= ${TOP}/inst-common
+
+MOUNT_POINT?= /mnt
+VND?= vnd0
+VND_DEV= /dev/${VND}c
+VND_RDEV= /dev/r${VND}c
+IMAGE?= xxx-${REV}.fs
+MDEC= ${DESTDIR}/usr/mdec
+
+LISTS= ${COMMONDIR}/list ${.CURDIR}/list
+CRUNCHCONF= ${COMMONDIR}/${CBIN}.conf
+MTREE= ${COMMONDIR}/mtree.conf
+
+all: ${CBIN}
+ dd if=/dev/zero of=${IMAGE} bs=1k count=1024
+ vnconfig -v -c ${VND_DEV} ${IMAGE}
+ newfs -m 0 -o space -i 16384 ${VND_RDEV} ram
+ mount ${VND_DEV} ${MOUNT_POINT}
+ mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u
+ TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
+ TARGDIR=${MOUNT_POINT} sh ${TOP}/runlist.sh ${LISTS}
+ @echo ""
+ @df -i ${MOUNT_POINT}
+ @echo ""
+ umount ${MOUNT_POINT}
+ vnconfig -u ${VND_DEV}
+
+unconfig:
+ -umount -f ${MOUNT_POINT}
+ -vnconfig -u ${VND_DEV}
+ -/bin/rm -f ${IMAGE}
+
+${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
+ crunchgen ${CRUNCHCONF}
+
+${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
+ make -f ${CBIN}.mk all
+
+clean cleandir:
+ /bin/rm -f core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}.cache *.o *.lo *.c
+
+.include <bsd.obj.mk>
+.include <bsd.subdir.mk>
diff --git a/distrib/mac68k/inst-common/dot.commonutils b/distrib/mac68k/inst-common/dot.commonutils
new file mode 100644
index 00000000000..64f840321c8
--- /dev/null
+++ b/distrib/mac68k/inst-common/dot.commonutils
@@ -0,0 +1,129 @@
+#
+# $NetBSD: dot.commonutils,v 1.1 1995/07/18 04:13:18 briggs Exp $
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+
+# Installation utilites (functions), to get NetBSD installed on
+# the hard disk. These are meant to be invoked from the shell prompt,
+# by people installing NetBSD.
+
+Set_tmp_dir()
+{
+ def_tmp_dir=`pwd`
+ if [ "$def_tmp_dir" = "/" -o "$def_tmp_dir" = "/mnt" ]; then
+ def_tmp_dir=/mnt/usr/distrib
+ fi
+
+ echo -n "What directory should be used to find and/or store "
+ echo "installtion"
+ echo -n "files? [$def_tmp_dir] "
+ read tmp_dir
+ if [ "$tmp_dir" = "" ]; then
+ tmp_dir=$def_tmp_dir
+ fi
+ if [ ! -d "$tmp_dir" ]; then
+ /bin/rm -rf $tmp_dir
+ mkdir -p $tmp_dir
+ fi
+}
+
+Tmp_dir()
+{
+ if [ "$tmp_dir" = "" ]; then
+ Set_tmp_dir
+ fi
+ cd $tmp_dir
+}
+
+Load_fd()
+{
+ Tmp_dir
+ which=
+ while [ "$which" != "a" -a "$which" != "b" ]; do
+ echo -n "Read from which floppy drive ('a' or 'b')? [a] "
+ read which
+ if [ "X$which" = "X" ]; then
+ which=a
+ fi
+ done
+ while echo -n "Insert floppy (hit ^C to terminate, enter to load): "
+ do
+ mount -t msdos /dev/fd0$which /mnt2
+ cp -rp /mnt2/* .
+ umount /mnt2
+ done
+}
+
+Load_tape()
+{
+ Tmp_dir
+ echo -n "Which tape drive will you be using? [rst0] "
+ read which
+ if [ "X$which" = "X" ]; then
+ which=rst0
+ fi
+ echo -n "Insert the tape into the tape drive and hit return to "
+ echo -n "continue..."
+ read foo
+ echo "Extracting files from the tape..."
+ tar xvfp /dev/$which
+ echo "Done."
+}
+
+Extract()
+{
+ Tmp_dir
+ echo -n "Would you like to list the files as they're extracted? [n] "
+ read verbose
+ case $verbose in
+ y*|Y*)
+ tarverbose=v
+ ;;
+ *)
+ tarverbose=
+ ;;
+ esac
+ echo -n "Are you installing a '-current' snapshot? [n] "
+ read snapshot
+ case $snapshot in
+ y*|Y*)
+ snapshot=y
+ ;;
+ *)
+ snapshot=n
+ ;;
+ esac
+ if [ $snapshot = n ]
+ then
+ cat "$1".??? | gunzip | (cd / ; tar xfp$tarverbose -)
+ else
+ cat "$1".tar.gz | gunzip | (cd /mnt ; tar xfp$tarverbose -)
+ fi
+}
diff --git a/distrib/mac68k/inst-common/list b/distrib/mac68k/inst-common/list
new file mode 100644
index 00000000000..fa18961bb4f
--- /dev/null
+++ b/distrib/mac68k/inst-common/list
@@ -0,0 +1,77 @@
+#
+# $NetBSD: list,v 1.2 1995/08/13 13:21:07 briggs Exp $
+#
+
+# copy the crunched binary, link to it, and kill it
+COPY ${OBJDIR}/raminst raminst
+LINK raminst bin/cat
+LINK raminst bin/chmod
+LINK raminst bin/cp
+LINK raminst bin/df
+LINK raminst bin/dd
+LINK raminst bin/ed
+LINK raminst bin/expr
+LINK raminst bin/ln
+LINK raminst bin/ls
+LINK raminst bin/mkdir
+LINK raminst bin/mv
+LINK raminst bin/pwd
+LINK raminst bin/rm
+LINK raminst bin/sh
+LINK raminst bin/-sh
+LINK raminst bin/stty
+LINK raminst bin/sync
+LINK raminst bin/test
+LINK raminst bin/[
+LINK raminst sbin/disklabel
+LINK raminst sbin/fsck
+LINK raminst sbin/halt
+LINK raminst sbin/ifconfig
+LINK raminst sbin/init
+LINK raminst sbin/mknod
+LINK raminst sbin/mount
+LINK raminst sbin/mount_cd9660
+LINK raminst sbin/mount_ffs
+LINK raminst sbin/mount_nfs
+LINK raminst sbin/newfs
+LINK raminst sbin/reboot
+LINK raminst sbin/route
+LINK raminst sbin/shutdown
+LINK raminst sbin/slattach
+LINK raminst sbin/umount
+LINK raminst usr/bin/chgrp
+LINK raminst usr/bin/ftp
+LINK raminst usr/bin/gunzip
+LINK raminst usr/bin/gzcat
+LINK raminst usr/bin/gzip
+LINK raminst usr/bin/more
+LINK raminst usr/bin/printf
+LINK raminst usr/bin/sed
+LINK raminst usr/bin/strings
+LINK raminst usr/bin/tar
+LINK raminst usr/bin/tip
+LINK raminst usr/sbin/chown
+LINK raminst usr/sbin/chroot
+LINK raminst usr/sbin/update
+SPECIAL /bin/rm raminst
+
+# copy the MAKEDEV script and make some devices
+COPY ${DESTDIR}/dev/MAKEDEV dev/MAKEDEV
+SPECIAL cd dev; sh MAKEDEV raminst
+SPECIAL /bin/rm dev/MAKEDEV
+
+# we need the contents of /usr/mdec (XXX)
+# COPY ${DESTDIR}/usr/mdec/* usr/mdec
+
+# various files that we need in /etc for the install
+COPY ${DESTDIR}/etc/group etc
+COPY ${DESTDIR}/etc/master.passwd etc
+COPY ${DESTDIR}/etc/passwd etc
+COPY ${DESTDIR}/etc/protocols etc
+COPY ${DESTDIR}/etc/pwd.db etc
+COPY ${DESTDIR}/etc/services etc
+COPY ${DESTDIR}/etc/spwd.db etc
+
+# and the common installation tools
+COPY ${TOPDIR}/inst-common/dot.commonutils .commonutils
+COPY ${TOPDIR}/inst-common/termcap.vt usr/share/misc/termcap
diff --git a/distrib/mac68k/inst-common/mtree.conf b/distrib/mac68k/inst-common/mtree.conf
new file mode 100644
index 00000000000..b348b9773a3
--- /dev/null
+++ b/distrib/mac68k/inst-common/mtree.conf
@@ -0,0 +1,74 @@
+#
+# $NetBSD: mtree.conf,v 1.1 1995/07/18 04:13:24 briggs Exp $
+#
+
+/set type=dir uname=root gname=wheel mode=0755
+# .
+.
+
+# ./bin
+bin
+# ./bin
+..
+
+# ./dev
+dev
+# ./dev
+..
+
+# ./etc
+etc
+# ./etc
+..
+
+# ./mnt
+mnt
+# ./mnt
+..
+
+# ./mnt2
+mnt2
+# ./mnt2
+..
+
+# ./sbin
+sbin
+# ./sbin
+..
+
+# ./tmp
+tmp
+# ./tmp
+..
+
+# ./usr
+usr
+
+# ./usr/bin
+bin
+# ./usr/bin
+..
+
+# ./usr/mdec
+mdec
+# ./usr/mdec
+..
+
+# ./usr/sbin
+sbin
+# ./usr/sbin
+..
+
+# ./usr/share
+share
+
+# ./usr/share/misc
+misc
+# ./usr/share/misc
+..
+
+# ./usr/share
+..
+
+# ./usr
+..
diff --git a/distrib/mac68k/inst-common/raminst.conf b/distrib/mac68k/inst-common/raminst.conf
new file mode 100644
index 00000000000..55c01cc0543
--- /dev/null
+++ b/distrib/mac68k/inst-common/raminst.conf
@@ -0,0 +1,21 @@
+#
+# $NetBSD: raminst.conf,v 1.3 1995/09/30 20:00:47 briggs Exp $
+#
+# ram.conf - unified binary for the RAM disk
+#
+
+srcdirs /usr/src/bin /usr/src/sbin /usr/src/usr.bin /usr/src/usr.sbin
+srcdirs /usr/src/gnu/usr.bin
+
+progs cat chmod chown chroot cp dd df disklabel ed expr fsck ftp
+progs gzip ifconfig init halt ln ls mkdir mknod more mount mount_cd9660
+progs mount_ffs mount_msdos mount_nfs mv newfs printf pwd reboot rm route
+progs sed sh shutdown slattach strings stty sync tar test tip umount update
+
+ln chown chgrp
+ln gzip gzcat gunzip
+ln sh -sh # init invokes the shell this way
+ln test [
+ln mount_ffs ffs
+
+libs -ledit -lutil -ltermcap -lcrypt -ll -lm
diff --git a/distrib/mac68k/inst-common/termcap.vt b/distrib/mac68k/inst-common/termcap.vt
new file mode 100644
index 00000000000..d0c58f1022b
--- /dev/null
+++ b/distrib/mac68k/inst-common/termcap.vt
@@ -0,0 +1,67 @@
+#
+# $NetBSD: termcap.vt,v 1.1 1995/07/18 04:13:31 briggs Exp $
+#
+# Copyright (c) 1980, 1985, 1989 The Regents of the University of California.
+# 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.
+# 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 University of
+# California, Berkeley and its contributors.
+# 4. Neither the name of the University nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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, 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.
+#
+# @(#)termcap.src 5.109 (Berkeley) 3/8/93
+#
+vt200|vt220|dec-vt220|vt200-js|vt220-js|dec vt200 series with jump scroll:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:ct=\E[3g:dc=\E[P:dl=\E[M:\
+ :ei=\E[4l:im=\E[4h:k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:\
+ :k5=\E[21~:k6=\E[23~:k7=\E[24~:k8=\E[25~:kD=\E[3~:kH=\E[4~:\
+ :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:kh=\E[1~:km:mi:ms:\
+ :if=/usr/share/tabset/vt100:se=\E[27m:st=\EH:ue=\E[24m:\
+ :tc=vt100:
+vt100|dec-vt100|vt100-am|vt100am|dec vt100:\
+ :bl=^G:cr=^M:it#8:\
+ :do=^J:co#80:li#24:cl=50\E[;H\E[2J:sf=2*\ED:\
+ :le=^H:bs:am:cm=5\E[%i%d;%dH:nd=2\E[C:up=2\E[A:cb=3\E[1K:\
+ :ce=3\E[K:cd=50\E[J:so=2\E[7m:se=2\E[m:us=2\E[4m:ue=2\E[m:\
+ :md=2\E[1m:mr=2\E[7m:mb=2\E[5m:me=2\E[m:is=\E[1;24r\E[24;1H:\
+ :if=/usr/share/tabset/vt100:\
+ :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:ks=\E[?1h\E=:ke=\E[?1l\E>:\
+ :ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:kb=^H:\
+ :ho=\E[H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:pt:sr=2*\EM:vt#3:xn:\
+ :sc=\E7:rc=\E8:cs=\E[%i%d;%dr:
+vt300|vt320|vt300-80|VT 300 with 80 columns, on VMS:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:SR=1*\E[%dM:UP=\E[%dA:al=\E[L:\
+ :am:bl=^G:bs:cd=2*\E[J:ce=2*\E[K:cl=45\E[H\E[2J:\
+ :cm=%i\E[%d;%dH:co#80:cr=\r:cs=\E[%i%d;%dr:ct=\E[3g:\
+ :dc=\E[P:dl=\E[M:dm=:do=\ED:ec=\E[%dX:ed=:ei=\E[4l:\
+ :ho=\E[H:ic:im=\E[4h:it#8:k1=\EOP:k2=\EOQ:k3=\EOR:\
+ :k4=\EOS:kd=\E[B:ke=\E[?1l\E>:kl=\E[D:kn#4:kr=\E[C:ks=\E[?1h\E=:\
+ :ku=\E[A:le=^H:li#24:mb=\E[5m:md=\E[1m:me=\E[0m:mi:\
+ :mr=\E[7m:ms:nd=\E[C:nl=\ED:nw=\EE:pf=\E[?4i:po=\E[?5i:\
+ :ps=\E[i:rc=\E8:sc=\E7:se=\E[27m:sf=1*\ED:so=\E[7m:\
+ :sr=1*\EM:st=\EH:ue=\E[24m:up=\EM:us=\E[4m:xn:
diff --git a/distrib/mac68k/inst/Makefile b/distrib/mac68k/inst/Makefile
new file mode 100644
index 00000000000..2e19d860c8a
--- /dev/null
+++ b/distrib/mac68k/inst/Makefile
@@ -0,0 +1,8 @@
+# $NetBSD: Makefile,v 1.1 1995/07/18 04:13:06 briggs Exp $
+
+TOP= ${.CURDIR}/..
+
+.include "${TOP}/Makefile.inc"
+IMAGE= inst-${REV}.fs
+
+.include "${TOP}/inst-common/Makefile.inc"
diff --git a/distrib/mac68k/inst/disktab.preinstall b/distrib/mac68k/inst/disktab.preinstall
new file mode 100644
index 00000000000..81a0bb0a052
--- /dev/null
+++ b/distrib/mac68k/inst/disktab.preinstall
@@ -0,0 +1,32 @@
+#
+# $NetBSD: disktab.preinstall,v 1.1 1995/07/18 04:13:07 briggs Exp $
+#
+# Disk geometry and partition layout tables.
+# Key:
+# dt controller type
+# ty type of disk (fixed, removeable, simulated)
+# d[0-4] drive-type-dependent parameters
+# ns #sectors/track
+# nt #tracks/cylinder
+# nc #cylinders/disk
+# sc #sectors/cylinder, nc*nt default
+# su #sectors/unit, sc*nc default
+# se sector size, DEV_BSIZE default
+# rm rpm, 3600 default
+# sf supports bad144-style bad sector forwarding
+# sk sector skew per track, default 0
+# cs sector skew per cylinder, default 0
+# hs headswitch time, default 0
+# ts one-cylinder seek time, default 0
+# il sector interleave (n:1), 1 default
+# bs boot block size, default BBSIZE
+# sb superblock size, default SBSIZE
+# o[a-h] partition offsets in sectors
+# p[a-h] partition sizes in sectors
+# b[a-h] partition block sizes in bytes
+# f[a-h] partition fragment sizes in bytes
+# t[a-h] partition types (filesystem, swap, etc)
+#
+# All partition sizes reserve space for bad sector tables.
+# (5 cylinders needed for maintenance + replacement sectors)
+#
diff --git a/distrib/mac68k/inst/dot.instutils b/distrib/mac68k/inst/dot.instutils
new file mode 100644
index 00000000000..94a55659fe5
--- /dev/null
+++ b/distrib/mac68k/inst/dot.instutils
@@ -0,0 +1,156 @@
+#
+# $NetBSD: dot.instutils,v 1.1 1995/07/18 04:13:08 briggs Exp $
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+
+# Installation configuration utilites (functions), to get NetBSD configured
+# reasonably once it is installed on the hard disk. These are meant to be
+# invoked from the shell prompt, by people installing NetBSD.
+
+Configure()
+{
+ DEV=/mnt/dev
+ ETC=/mnt/etc
+
+ echo "You will now be prompted for information about this"
+ echo "machine. If you hit return, the default answer (in"
+ echo "brackets) will be used."
+
+ echo ""
+ echo -n "What is this machine's hostname? [unknown.host.domain] "
+ read hname
+ if [ "$hname" = "" ]; then
+ hname=unknown.host.domain
+ fi
+ echo $hname > ${ETC}/myname
+ proto_domain=`echo $hname | sed -e 's/[^.]*\.//'`
+
+ echo ""
+ echo "What domain is this machine in (this is NOT its YP"
+ echo -n "domain name)? [$proto_domain] "
+ read dname
+ if [ "$dname" = "" ]; then
+ dname=$proto_domain
+ fi
+
+ echo ""
+ if [ -e ${ETC}/sendmail.cf ]; then
+ echo "WARNING: A default sendmail.cf exists, and probably"
+ echo "needs to be tuned and/or replaced, to work properly at"
+ echo "your site!"
+ else
+ echo "WARNING: No default sendmail.cf installed. Did you"
+ echo "forget to install the 'etc' distribution?"
+ fi
+
+ echo "127.0.0.1 localhost localhost.$dname" > ${ETC}/hosts
+
+ echo ""
+ echo -n "Does this machine have an ethernet interface? [y] "
+ read resp
+ case "$resp" in
+ n*)
+ ;;
+ *)
+ intf=
+ while [ "$intf" = "" ]; do
+ echo -n "What is the primary interface name "
+ echo -n "(e.g. ae0, etc)? "
+ read intf
+ done
+ echo -n "What is the hostname for this interface? [$hname] "
+ read ifname
+ if [ "$ifname" = "" ]; then
+ ifname=$hname
+ fi
+ ifaddr=
+ while [ "$ifaddr" = "" ]; do
+ echo -n "What is the IP address associated with "
+ echo -n "interface ${intf}? "
+ read ifaddr
+ done
+ echo "$ifaddr $ifname `echo $ifname | sed -e s/\.$dname//`" \
+ >> ${ETC}/hosts
+
+ echo -n "Does this interface have a special netmask? [n] "
+ read resp
+ case "$resp" in
+ y*)
+ echo -n "What is the netmask? [0xffffff00] "
+ read ifnetmask
+ if [ "$ifnetmask" = "" ]; then
+ ifnetmask=0xffffff00
+ fi
+ ;;
+ *)
+ ifnetmask=
+ ;;
+ esac
+
+ echo -n "Does this interface need additional flags? [n] "
+ read resp
+ case "$resp" in
+ y*)
+ echo -n "What flags? [link0] "
+ read ifflags
+ if [ "$ifflags" = "" ]; then
+ ifflags=link0
+ fi
+ ;;
+ *)
+ ifflags=
+ ;;
+ esac
+ echo "inet $ifname $ifnetmask $ifflags" > ${ETC}/hostname.$intf
+
+ echo ""
+ echo -n "WARNING: if you have any more ethernet interfaces, "
+ echo "you will have to configure"
+ echo -n "them by hand. Read the comments in /etc/netstart to"
+ echo "learn how to do this."
+ ;;
+ esac
+
+ echo ""
+ echo -n "Making device nodes..."
+ cd ${DEV}
+ sh MAKEDEV all
+ echo " done."
+
+ sync
+
+ echo "You may now reboot your machine with the shutdown command."
+ echo " shutdown -r now"
+ echo "to reboot or"
+ echo " shutdown -h now"
+ echo "to halt."
+ echo "Remember to erase the miniroot name from the booter's"
+ echo "booting preferences dialog box before booting again."
+}
diff --git a/distrib/mac68k/inst/dot.profile b/distrib/mac68k/inst/dot.profile
new file mode 100644
index 00000000000..ae680ce4b40
--- /dev/null
+++ b/distrib/mac68k/inst/dot.profile
@@ -0,0 +1,52 @@
+#
+# $NetBSD: dot.profile,v 1.1 1995/07/18 04:13:09 briggs Exp $
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+
+PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
+export PATH
+TERM=vt200
+export TERM
+
+# set up some sane defaults
+echo 'erase ^?, werase ^H, kill ^U, intr ^C'
+stty newcrt werase ^H intr ^C kill ^U erase ^? 9600
+echo ''
+
+# start running update, so that installed software is written as it goes.
+update
+
+# pull in the function definitions that people will use from the shell prompt.
+. /.commonutils
+. /.instutils
+
+# run the installation script.
+umask 022
+install
diff --git a/distrib/mac68k/inst/install.sh b/distrib/mac68k/inst/install.sh
new file mode 100644
index 00000000000..1eec1d88717
--- /dev/null
+++ b/distrib/mac68k/inst/install.sh
@@ -0,0 +1,269 @@
+#!/bin/sh
+#
+# $NetBSD: install.sh,v 1.1 1995/07/18 04:13:10 briggs Exp $
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+
+# NetBSD installation script.
+# In a perfect world, this would be a nice C program, with a reasonable
+# user interface.
+
+FSTABDIR=/mnt/etc # /mnt/etc
+#DONTDOIT=echo
+
+VERSION=1.0
+FSTAB=${FSTABDIR}/fstab
+
+getresp() {
+ read resp
+ if [ "X$resp" = "X" ]; then
+ resp=$1
+ fi
+}
+
+getvar() {
+ echo $(eval $(echo "echo \$$1"))
+}
+
+shiftvar() {
+ local - var
+ var="$1"
+ list="$(getvar $var)"
+ set -- $list
+ shift
+ setvar $var "$*"
+}
+
+getparts() {
+ disklabel $1 2>/dev/null | sed -e '/^[ ][ ][ad-p]/!d' |
+ sed -e 's,^[ ]*\([a-p]\):[ ]*[0-9]*[ ]*[0-9]*[ ][ ]*\([a-zA-Z0-9.]*\).*,\1 \2,' |
+ sed -e ':a
+ N;${s/\n/ /g;p;d;}
+ ba'
+}
+
+getdrives() {
+ local du thispart
+ for du in /dev/r${drivetype}?a; do
+ dd if=$du of=/dev/null bs=1b count=1 >/dev/null 2>&1
+ if [ $? -eq 0 ]; then
+ thisunit=`echo $du | sed -e 's,/dev/r\(...\)a,\1,g'`
+ driveunits="$driveunits $thisunit"
+ else
+ continue;
+ fi
+ setvar $thisunit "$(getparts $thisunit)"
+ export $thisunit
+ done
+ export drivenunits
+}
+
+prepdrive() {
+ echo "which drive would you like to prepare next?"
+ echo "choices are: ${driveunits}"
+ echo ""
+ getresp
+ case $resp in
+ *) ;;
+ esac
+}
+
+echo "Welcome to the NetBSD ${VERSION} installation program."
+echo ""
+echo "This program is designed to help you put NetBSD on your hard disk,"
+echo "in a simple and rational way. Its main objective is to format,"
+echo "mount and create an fstab for your root (/) and user (/usr)"
+echo "partitions."
+echo ""
+echo "As with anything which modifies your hard drive's contents, this"
+echo "program can cause SIGNIFICANT data loss, and you are advised"
+echo "to make sure your hard drive is backed up before beginning the"
+echo "installation process."
+echo ""
+echo "Default answers are displyed in brackets after the questions."
+echo "You can hit Control-C at any time to quit, but if you do so at a"
+echo "prompt, you may have to hit return. Also, quitting in the middle of"
+echo "installation may leave your system in an inconsistent state."
+echo ""
+echo -n "Proceed with installation? [n] "
+getresp "n"
+case "$resp" in
+ y*|Y*)
+ echo "scanning for the root device"
+ ;;
+ *)
+ echo ""
+ echo "OK, then. Enter 'halt' at the prompt to halt the"
+ echo "machine or 'reboot' to reboot it."
+ exit
+ ;;
+esac
+
+drivetype=sd
+sect_fwd=""
+
+# find out what units are possible for that disk, and query the user.
+getdrives
+for du in $driveunits; do
+ set -- $(getvar $du)
+ if [ $# -ge 2 -a "$1" = "a" -a "`echo $2 | sed -e 's,.*BSD.*,BSD,'`" = "BSD" ]; then
+ rdev=$du
+ fi
+done
+
+echo ""
+echo "The root device you have chosen is on: ${rdev}"
+echo ""
+# driveunits=`ls /dev/${drivetype}?a | sed -e 's,/dev/\(...\)a,\1,g'`
+if [ "X${driveunits}" = "X" ]; then
+ echo "FATAL ERROR:"
+ echo "No devices for disks of type '${drivetype}'."
+ echo "This is probably a bug in the install disks."
+ echo "Exiting install program."
+ exit
+fi
+
+echo ""
+echo "THIS IS YOUR LAST CHANCE!!!"
+echo ""
+echo "(answering yes will format your root partition on $rdev)"
+echo -n "Are you SURE you want NetBSD installed on your hard drive? (yes/no) "
+answer=""
+while [ "$answer" = "" ]; do
+ getresp
+ case $resp in
+ yes|YES)
+ echo ""
+ answer=yes
+ ;;
+ no|NO)
+ echo ""
+ echo -n "OK, then. enter 'halt' to halt the machine. "
+ exit
+ ;;
+ *)
+ echo -n "Please answer 'yes' or 'no'."
+ ;;
+ esac
+done
+echo "Initializing / (root) filesystem, and mounting..."
+$DONTDOIT newfs /dev/r${rdev}a $name
+$DONTDOIT mount -v /dev/${rdev}a /mnt
+echo ""
+echo -n "Creating a fstab..."
+mkdir -p $FSTABDIR
+echo "/dev/${rdev}a / ufs rw 1 1" > $FSTAB
+
+# get rid of this partition
+shiftvar $rdev
+shiftvar $rdev
+
+echo ""
+echo "Now lets setup your /usr file system"
+echo "(Once a valid input for drive and partition is seen"
+echo "it will be FORMATTED and inserted in the fstab.)"
+while [ "X$usrpart" = "X" ]; do
+ resp=""
+ drivename=""
+ while [ "X$resp" = "X" ]; do
+ echo "choices: $driveunits"
+ echo "which drive do you want /usr on?"
+ getresp
+ set -- $driveunits
+ while [ $# -gt 0 ]; do
+ if [ "X$resp" = "X$1" ]; then
+ drivename=$1
+ break;
+ else
+ shift
+ fi
+ done
+ if [ "X$drivename" != "X" ]; then
+ break
+ fi
+ done
+
+ usrpart=""
+ echo "You have selected $drivename"
+ echo "here is a list of partitions on $drivename"
+ disklabel $drivename 2>/dev/null | sed -e '/^[ ][ ][ad-p]:/p;/^#[ \t]*size/p;d'
+ echo "which partition would you like to format and have"
+ echo -n "mounted as /usr? (supply the letter): "
+ getresp
+ if [ "X$resp" = "X" ]; then
+ continue;
+ fi
+
+ list=$(getvar $drivename)
+ set -- $list
+ while [ $# -gt 0 ]; do
+ if [ "$resp" = "$1" ]; then
+ if [ "`echo $2 | sed -e 's,.*BSD.*,BSD,'`" != "BSD" ]; then
+ echo ""
+ echo -n "$drivename$resp is of type $2 which is not"
+ echo " a BSD filesystem type"
+ break
+ fi
+ usrpart=$drivename$resp
+ break
+ else
+ shift
+ shift
+ fi
+ done
+ if [ "X$usrpart" = "X" ]; then
+ echo "$resp is not a valid input."
+ echo ""
+ fi
+done
+
+echo ""
+echo "Initializing /usr filesystem, and mounting..."
+$DONTDOIT newfs /dev/r${usrpart} $name
+$DONTDOIT mkdir -p /mnt/usr
+$DONTDOIT mount -v /dev/${usrpart} /mnt/usr
+echo ""
+echo -n "Adding to fstab..."
+echo "/dev/${usrpart} /usr ufs rw 1 2" >> $FSTAB
+sync
+echo " done."
+
+echo ""
+echo ""
+echo "OK! The preliminary work of setting up your disk is now complete,"
+echo "and you can install the actual NetBSD software."
+echo ""
+echo "Right now, your root is mounted on /mnt and your usr on /mnt/usr."
+echo "You should consult the installation notes to determine how to load"
+echo "and install the NetBSD distribution sets, and how to configure your"
+echo "system when you are done."
+echo ""
+echo "GOOD LUCK!"
+echo ""
diff --git a/distrib/mac68k/inst/list b/distrib/mac68k/inst/list
new file mode 100644
index 00000000000..c5cf8207ae7
--- /dev/null
+++ b/distrib/mac68k/inst/list
@@ -0,0 +1,10 @@
+# $NetBSD: list,v 1.1 1995/07/18 04:13:12 briggs Exp $
+
+# the disktab explanation file
+COPY disktab.preinstall etc
+
+# and the installation tools
+COPY dot.profile .profile
+COPY dot.instutils .instutils
+COPY install.sh install
+SPECIAL chmod 755 install
diff --git a/distrib/mac68k/list2sh.awk b/distrib/mac68k/list2sh.awk
new file mode 100644
index 00000000000..43008da5be9
--- /dev/null
+++ b/distrib/mac68k/list2sh.awk
@@ -0,0 +1,39 @@
+# $NetBSD: list2sh.awk,v 1.1 1995/07/18 04:12:59 briggs Exp $
+
+BEGIN {
+ printf("cd ${CURDIR}\n");
+ printf("\n");
+}
+/^$/ || /^#/ {
+ print $0;
+ next;
+}
+$1 == "COPY" {
+ printf("echo '%s'\n", $0);
+ printf("cp %s ${TARGDIR}/%s\n", $2, $3);
+ next;
+}
+$1 == "LINK" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR}; ln %s %s)\n", $2, $3);
+ next;
+}
+$1 == "SPECIAL" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR};");
+ for (i = 2; i <= NF; i++)
+ printf(" %s", $i);
+ printf(")\n");
+ next;
+}
+{
+ printf("echo '%s'\n", $0);
+ printf("echo 'Unknown keyword \"%s\" at line %d of input.'\n", $1, NR);
+ printf("exit 1\n");
+ exit 1;
+}
+END {
+ printf("\n");
+ printf("exit 0\n");
+ exit 0;
+}
diff --git a/distrib/mac68k/runlist.sh b/distrib/mac68k/runlist.sh
new file mode 100644
index 00000000000..172a536138c
--- /dev/null
+++ b/distrib/mac68k/runlist.sh
@@ -0,0 +1,13 @@
+# $NetBSD: runlist.sh,v 1.1 1995/07/18 04:13:01 briggs Exp $
+
+if [ "X$1" = "X-d" ]; then
+ SHELLCMD=cat
+ shift
+else
+ SHELLCMD="sh -e"
+fi
+
+( while [ "X$1" != "X" ]; do
+ cat $1
+ shift
+done ) | awk -f ${TOPDIR}/list2sh.awk | ${SHELLCMD}
diff --git a/distrib/notes/INSTALL b/distrib/notes/INSTALL
new file mode 100644
index 00000000000..5aede836e3d
--- /dev/null
+++ b/distrib/notes/INSTALL
@@ -0,0 +1,338 @@
+INSTALLATION NOTES for NetBSD/MACHINE 1.0
+
+
+
+Be sure to read _ALL_ of this document before you try to install
+NetBSD/MACHINE.
+
+
+
+What is NetBSD?
+---- -- ------
+
+NetBSD is a Berkeley Networking Release 2 (Net/2) and 4.4BSD-Lite
+-derived system. It is a fully functional UN*X-like system which runs
+on several architectures and is being ported to more. NetBSD, as the
+name implies, is a creation of the members of the network community
+and without the net it's likely that this release wouldn't have come
+about.
+
+NetBSD 1.0 is a milestone release. The hardest part of the 4.4BSD-Lite
+integration, the kernel, has been completed and has been running in
+"production use" for quite some time. Also, NetBSD 1.0 is the first
+true multi-architecture release of NetBSD. At the time of NetBSD 0.9,
+the i386 port was considered 'production quality' and the hp300 port was
+barely working. The NetBSD 1.0 source supports nine architectures, and
+complete binary releases for most of them will be made available.
+
+NetBSD 1.0 supports many new and improved features, the most important
+relating to file systems. New and improved versions of both the
+Berkeley Fast File System and the free implementation of the NFS
+protocol were provided, as part of the 4.4-Lite release. The new
+versions include such improvements as support for 64-bit file sizes,
+for local files, and "lease" support for NFS, to improve performance.
+In addition to the file system improvements, many other parts of the
+system have been improved considerably. For instance, the virtual
+memory code has substantially improved performance, and many of the
+kernel's interfaces have been cleaned up.
+
+Many new user programs have been added in NetBSD 1.0, as well,
+bringing it closer to our goal of supplying a complete UN*X-like
+environment. Additionally, support for shared libraries has been
+added, for most architectures, allowing a significant savings in both
+RAM consumption and disk space.
+
+#include "whatis"
+
+
+The Future of NetBSD:
+--- ------ -- ------
+
+We hope to have regular releases of the full binary and source trees,
+but these are difficult to coordinate, especially with all of the
+architectures which we now support! We hope to support even _more_
+hardware in the future, and have a rather large number of other ideas
+about what can be done to improve NetBSD. We intend to continue our
+current practice of making the NetBSD-current development source
+available on a daily or nearly-daily basis.
+
+We intend to integrate free, positive changes from whatever sources
+will provide them, providing that they are well thought-out and increase
+the usability of the system. This includes integrating the remainder of
+the 4.4BSD-Lite tape, as quickly as we can ensure that everything works
+properly.
+
+Above all, we hope to create a stable and accessible system, and to be
+responsive to the needs and desires of NetBSD users, because it is for
+and because of them that NetBSD exists.
+
+
+Sources of NetBSD:
+------- -- ------
+
+#include "mirrors"
+
+NetBSD 1.0 Release Contents:
+------ --- ------- --------
+
+The NetBSD 1.0 release is organized in the following way:
+
+.../NetBSD-1.0/
+ BUGS Known bugs list (incomplete
+ and out of date).
+
+ CHANGES Changes since NetBSD's last
+ release (and before).
+
+ LAST_MINUTE Last minute changes.
+
+ MIRRORS A list of sites that mirror
+ the NetBSD 1.0 distribution.
+
+ README.files README describing the
+ distribution's contents.
+
+ TODO NetBSD's todo list (incomplete
+ and out of date).
+
+ patches/ Post-release source code
+ patches.
+
+ source/ Source distribution sets; see
+ below.
+
+In addition to the files and directories listed above, there is one
+directory per architecture, for each of the architectures that NetBSD
+1.0 has a binary distribution for. There are also
+'README.export-control' files sprinkled liberally throughout the
+distribution tree, which point out that there are some portions of the
+distribution (e.g. those containing crypt(3)) that should not be
+exported from the United States, and that if you do export them, it's
+your fault, not ours.
+
+The source distribution sets can be found in subdirectories of the
+"source" subdirectory of the distribution tree. They contain the
+complete sources to the system, excluding those portions which should
+not be exported from the U.S. (Those are contained in each
+architecture's "security" binary distribution set.) The source
+distribution sets are as follows:
+
+ gsrc10 This set contains the "gnu" sources, including
+ the source for the compiler, assembler, groff,
+ and the other GNU utilities in the binary distribution
+ sets.
+ [ 7.7M gzipped, 32.0M uncompressed ]
+
+ ksrc10 This set contains the sources to the NetBSD 1.0
+ kernel, config(8), config.new(8) and dbsym(8).
+ [ 4.5M gzipped, 20.8M uncompressed ]
+
+ ssrc10 This set contains the "share" sources, which include
+ the sources for the man pages not associated with
+ any particular program, the sources for the
+ typesettable document set, the dictionaries, and more.
+ [ 2.3M gzipped, 8.5M uncompressed ]
+
+ src10 This set contains all of the NetBSD 1.0 sources which
+ are not mentioned above.
+ [ 7.1M gzipped, 33.4M uncompressed ]
+
+It is worth noting that unless all of the source distribution sets
+are installed, you can't rebuild and install the system from scratch,
+straight out of the box. However, all that is required to rebuild the
+system in that case is a trivial modification to one Makefile.
+
+The source distribution sets are distributed as groups of files named
+"set_name.xx" where "set_name" is the distribution set name, and "xx"
+is the sequence number of the file, starting with "aa" for the first
+file in the distribution set, then "ab" for the next, and so on. All
+of these files except the last one of each set should be exactly
+240,640 bytes long. (The last file is just long enough to contain the
+remainder of the data for that distribution set.)
+
+Catted together, the files belonging to a source distribution set
+comprise a gzipped tar file. If you want to look at list of the files
+contained in the set, you could use the command:
+
+ cat set_name.?? | gunzip | tar tvf -
+
+or to actually extract the files contained in the set:
+
+ cat set_name.?? | gunzip | tar xfp -
+
+In each of the source distribution set directories, there is a file
+named "CKSUMS" which contains the checksums of the files in that
+directory, as generated by the cksum(1) command. You can use cksum to
+check the integrity of the archives, if you suspect that one of the
+files is corrupt and have access to a cksum binary.
+
+#include "contents"
+
+
+NetBSD System Requirements and Supported Devices:
+------ ------ ------------ --- --------- -------
+
+#include "hardware"
+
+
+Getting the NetBSD System on to Useful Media:
+------- --- ------ ------ -- -- ------ -----
+
+#include "xfer"
+
+
+Preparing your System for NetBSD Installation:
+--------- ---- ------ --- ------ ------------
+
+#include "prep"
+
+
+Installing the NetBSD System:
+---------- --- ------ ------
+
+#include "install"
+
+
+Upgrading a previously-installed NetBSD System:
+--------- - ---------- --------- ------ ------
+
+#include "upgrade"
+
+
+Administrivia:
+-------------
+
+Registration? What's that?
+
+If you've got something to say, do so! We'd like your input.
+There are various mailing lists available via the mailing list
+server at <majordomo@NetBSD.ORG>. To get help on using the mailing
+list server, send mail to that address with an empty body, and it will
+reply with instructions.
+
+There are various mailing lists set up to deal with comments and
+questions about this release. Please send comments to:
+
+ netbsd-comments@NetBSD.ORG
+
+To report bugs, use the 'send-pr' command shipped with NetBSD,
+and fill in as much information about the problem as you can. Good
+bug reports include lots of details. Additionally, bug reports can
+be sent by mail to:
+
+ netbsd-bugs@NetBSD.ORG
+
+Use of 'send-pr' is encouraged, however, because bugs reported with it
+are entered into the NetBSD bugs database, and thus can't slip through
+the cracks.
+
+There are also port-specific mailing lists, to discuss aspects of
+each port of NetBSD. Use majordomo to find their addresses. If
+you're interested in doing a serious amount of work on a specific
+port, you probably should contact the "owner" of that port (listed
+below).
+
+If you'd like to help with this effort, and have an idea as to how
+you could be useful, send mail and/or subscribe to:
+
+ netbsd-help@NetBSD.ORG
+
+As a favor, please avoid mailing huge documents or files to these
+mailing lists. Instead, put the material you would have sent up
+for FTP somewhere, then mail the appropriate list about it, or, if
+you'd rather not do that, mail the list saying you'll send the data
+to those who want it.
+
+
+Thanks go to:
+------ -- --
+
+Members and former members of UCB's Computer Systems Research Group,
+including (but not limited to):
+ Keith Bostic
+ Ralph Campbell
+ Mike Karels
+ Marshall Kirk McKusick
+for their ongoing work on BSD systems, support, and encouragement.
+
+Also, our thanks go to:
+ Mike Hibler
+ Rick Macklem
+ Jan-Simon Pendry
+ Chris Torek
+for answering lots of questions, fixing bugs, and doing the various work
+they've done.
+
+UC Berkeley's Experimental Computing Facility has provided a home for
+sun-lamp, people to look after it, and a sense of humor. Rob
+Robertson, too, has added his unique sense of humor to things, and for
+a long time provided the primary FTP site for NetBSD.
+
+Without CVS, this project would be impossible to manage, so our hats
+go off to Brian Berliner, Jeff Polk, and the various other people
+who've had a hand in making CVS a useful tool.
+
+The following people (in alphabetical order) have made donations or
+loans of hardware and/or money, to support NetBSD development, and
+deserve credit for it:
+#include "donations"
+(If you're not on that list and should be, tell us! We probably were
+not able to get in touch with you, to verify that you wanted to be
+listed.)
+
+Dave Burgess <burgess@cynjut.infonet.net> has been maintaining the
+386BSD/NetBSD/FreeBSD FAQ for quite some time, and deserves to be
+recognized for it.
+
+Finally, we thank all of the people who've put sweat and tears into
+developing NetBSD since its inception in January, 1993. (Obviously,
+there are a lot more people who deserve thanks here. If you're one of
+them, and would like to mentioned, tell us!)
+
+
+We are:
+-- ---
+(in alphabetical order)
+
+The NetBSD core team:
+Chris G. Demetriou <cgd@sun-lamp.cs.berkeley.edu>
+Theo de Raadt <deraadt@sun-lamp.cs.berkeley.edu>
+Adam Glass <glass@sun-lamp.cs.berkeley.edu>
+Charles Hannum <mycroft@sun-lamp.cs.berkeley.edu>
+
+The port-masters (and their ports):
+Allen Briggs <briggs@mail.vt.edu> (mac68k)
+ (and the rest of the 'Alice' group)
+Theo de Raadt <deraadt@sun-lamp.cs.berkeley.edu> (sparc)
+Charles Hannum <mycroft@sun-lamp.cs.berkeley.edu> (i386, hp300)
+Chris Hopps <chopps@sun-lamp.cs.berkeley.edu> (amiga)
+Adam Glass <glass@sun-lamp.cs.berkeley.edu> (pmax)
+Paul Mackerras <paulus@sun-lamp.cs.berkeley.edu> (da30)
+Anders Magnusson <ragge@sun-lamp.cs.berkeley.edu> (vax)
+Phil Nelson <phil@sun-lamp.cs.berkeley.edu> (pc532)
+Gordon Ross <gwr@sun-lamp.cs.berkeley.edu> (sun3)
+
+Supporting cast:
+Steve Allen <wormey@eskimo.com>
+John Brezak <brezak@sun-lamp.cs.berkeley.edu>
+Dave Burgess <burgess@cynjut.infonet.net>
+J.T. Conklin <jtc@sun-lamp.cs.berkeley.edu>
+Hubert Feyrer <hubert.feyrer@rz.uni-regensburg.de>
+Brad Grantham <grantham@tenon.com>
+Lawrence Kesteloot <kesteloo@cs.unc.edu>
+Paul Kranenburg <pk@sun-lamp.cs.berkeley.edu>
+Herb Peyerl <hpeyerl@beer.org>
+Matthias Pfaller <leo@marco.de>
+Chris Provenzano <proven@sun-lamp.cs.berkeley.edu>
+Wolfgang Solfrank <ws@tools.de>
+
+
+Legal Mumbo-jumbo:
+----- ----- -----
+
+The following notices are required to satisfy the license terms of
+the software that we have mentioned in this document:
+
+#include "legal.common"
+
+#include "legal"
diff --git a/distrib/notes/Makefile b/distrib/notes/Makefile
new file mode 100644
index 00000000000..ff40afe09e9
--- /dev/null
+++ b/distrib/notes/Makefile
@@ -0,0 +1,16 @@
+# $NetBSD: Makefile,v 1.3 1994/10/31 05:01:45 cgd Exp $
+
+M?= ${MACHINE}
+
+TARG= INSTALL.$M
+SRC= ${.CURDIR}/INSTALL
+DEP= ${SRC} ${.CURDIR}/mirrors ${.CURDIR}/$M/whatis ${.CURDIR}/$M/contents \
+ ${.CURDIR}/$M/hardware ${.CURDIR}/$M/xfer ${.CURDIR}/$M/prep \
+ ${.CURDIR}/$M/install ${.CURDIR}/$M/upgrade ${.CURDIR}/donations \
+ ${.CURDIR}/legal.common ${.CURDIR}/$M/legal
+
+${TARG}: ${DEP}
+ cpp -I${.CURDIR}/$M -DMACHINE=$M -Uunix -U$M -C -P ${SRC} > $@
+
+clean cleandir:
+ /bin/rm INSTALL.*
diff --git a/distrib/notes/amiga/contents b/distrib/notes/amiga/contents
new file mode 100644
index 00000000000..2c728e54e55
--- /dev/null
+++ b/distrib/notes/amiga/contents
@@ -0,0 +1,141 @@
+The amiga-specific portion of the NetBSD 1.1 release is found in the
+"amiga" subdirectory of the distribution. That subdirectory is layed
+out as follows:
+
+.../NetBSD-1.1/amiga/
+ binary/ amiga binary distribution sets;
+ see below.
+
+ floppies/ amiga installation and upgrade
+>>> ^^^^^^^^ should this be miniroot/?
+ file system images; see below.
+
+ security/ amiga security distribution;
+ see below;
+
+ utils/ Miscellaneous amiga
+ installation utilities; see
+ installation section, below.
+
+There are two amiga file system images to be found in the "amiga/floppy"
+>>> ^^^^^^
+subdirectory of the NetBSD 1.1 distribution. One of them is a upgrade
+image and one is an installation image. They are described in more
+detail below. There are gzipped versions of each available, for easier
+downloading. (The gzipped version have the ".gz" extension added to
+their names.)
+
+Installation file system:
+
+ This file contains a BSD root file system setup to help
+ you install the rest of NetBSD. This includes formatting
+ and mounting your root and /usr partitions and getting
+ ready to extract (and possibly first fetching) the distribution
+ sets. There is enough on this file system to allow you to
+ make a slip or ppp connection, configure an ethernet, mount an
+ NFS file system or ftp. You can also load distribution sets from
+ a SCSI tape or from one of your existing AmigaDOS partitions.
+
+ This file is named "inst-11.fs".
+
+
+Upgrade file system:
+
+ This file contains a BSD root file system setup to help
+ you upgrade a previous version of NetBSD. This includes
+ converting existing partitions
+ and mounting your root and /usr partitions and getting
+ ready to extract (and possibly first fetching) the distribution
+ sets. There is enough on this file system to allow you to
+ make a slip or ppp connection, configure an ethernet, mount an
+ NFS file system or ftp. You can also load distribution sets from
+ a SCSI tape, from one of your existing AmigaDOS partitions, or
+ from an existing NetBSD partition.
+
+ This file is named "inst-11.fs".
+
+The NetBSD/amiga binary distribution sets contain the binaries which
+comprise the NetBSD 1.1 release for the amiga. There are seven binary
+distribution sets, and the "security" distribution set. The binary
+distribution sets can be found in subdirectories of the "amiga/binary"
+subdirectory of the NetBSD 1.1 distribution tree, and are as follows:
+
+ base11 The NetBSD/amiga 1.1 base binary distribution. You
+ MUST install this distribution set. It contains the
+ base NetBSD utilities that are necessary for the
+ system to run and be minimally functional. It
+ includes shared library support, and excludes
+ everything described below.
+ [ 7M gzipped, 19M uncompressed ]
+>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ comp11 The NetBSD/amiga Compiler tools. All of the tools
+ relating to C, C++, and FORTRAN (yes, there are two!).
+ This set includes the system include files
+ (/usr/include), the linker, the compiler tool chain,
+ and the various system libraries (except the shared
+ libraries, which are included as part of the base
+ set). This set also includes the manual pages for all
+ of the utilities it contains, as well as the system
+ call and library manual pages.
+ [ 4M gzipped, 12M uncompressed ]
+>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ etc11 This distribution set contains the system
+ configuration files that reside in /etc and in several
+ other places. This set MUST be installed if you are
+ installing the system from scratch, but should NOT be
+ used if you are upgrading. (If you are upgrading,
+ it's recommended that you get a copy of this set and
+ CAREFULLY upgrade your configuration files by hand.)
+ [ 50K gzipped, 280K uncompressed ]
+>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ games11 This set includes the games and their manual pages.
+ [ 1M gzipped, 3M uncompressed ]
+>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ man11 This set includes all of the manual pages for the
+ binaries and other software contained in the base set.
+ Note that it does not include any of the manual pages
+ that are included in the other sets.
+ [ 730K gzipped, 3M uncompressed ]
+>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ misc11 This set includes the system dictionaries (which are
+ rather large), the typesettable document set, and
+ man pages for other architectures which happen to be
+ installed from the source tree by default.
+ [ 2M gzipped, 6M uncompressed ]
+>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ text11 This set includes NetBSD's text processing tools,
+ including groff, all related programs, and their
+ manual pages.
+ [ 784K gzipped, 3M uncompressed ]
+>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The amiga security distribution set is named "secr11" and can be found
+in the "amiga/security" subdirectory of the NetBSD 1.1 distribution
+tree. It contains crypt.c (the source file for the DES encryption
+algorithm) and the binaries which depend on it. It can only be found
+on those sites which carry the complete NetBSD distribution and that
+can legally obtain it. (Remember, because of United States law, this
+distribution set may not be exported to locations outside of the
+United States and Canada.) [ 119K gzipped, 300K uncompressed ]
+>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The amiga binary distribution sets are distributed in the same form as
+the source distribution sets; catted together, the members of a set
+form a gzipped tar file. Each amiga binary distribution set also has
+its own "CKSUMS" file, just as the source distribution sets do.
+
+The instructions given for extracting the source sets work equally
+well for the binary sets, but it is worth noting that if you use that
+method, the files are extracted "below" the current directory. That
+is, if you want to extract the binaries "into" your system, i.e.
+replace the system binaries with them, you have to run the "tar xvfp"
+from /. Also note that if you upgrade or install this way, those
+programs that you are using at the time will NOT be replaced. If you
+follow the normal installation or upgrade procedures, this will be
+taken care of for you.
diff --git a/distrib/notes/amiga/hardware b/distrib/notes/amiga/hardware
new file mode 100644
index 00000000000..513236ac7cd
--- /dev/null
+++ b/distrib/notes/amiga/hardware
@@ -0,0 +1,58 @@
+NetBSD/amiga 1.1 runs on any amiga that has a 68020 or better CPU
+with some form of FPU and MMU. The minimal configuration requires
+4M of RAM and about 65M of disk space. To install the entire system
+>>> ^^^
+requires much more disk space, and to run X or compile the system,
+more RAM is recommended. (4M of RAM will actually allow you to
+compile, however it won't be speedy. X really isn't usable on a
+4M system)
+
+Here is a table of recommended HD partition sizes for a full install:
+ partition: advise, with X, needed, with X
+ root (/) 15M 15M 10M 10M
+ user (/usr) 65M 100M 45M 80M
+ swap ----- 2M for every M ram -----
+ local (/local) up to you
+>>> adjust sizes?
+
+As you may note the recommended size of /usr is 20M greater than
+needed. This is to leave room for a kernel source and compile tree
+as you will probably want to compile your own kernel. (GENERIC is
+large and bulky to accommodate all people).
+
+Supported devices include:
+ A4000/A1200 IDE controller.
+ SCSI host adapters:
+ 33c93 based boards: A2091, A3000 and GVP series II.
+ 53c80 based boards: 12 Gauge, IVS and Wordsync/Bytesync.
+ 53c710 based boards: A4091, Magnum, Warp Engine and Zeus.
+ FAS216 based boards: FastLane Z3, Blizzard.
+ Video controllers:
+ ECS, AGA and A2024 built in on various amigas.
+ Retina Z2 and Retina Z3.
+ Picasso II.
+ GVP Spectrum.
+ Piccalo.
+ A2410.
+ Ethernet controllers:
+ A2065 Ethernet
+ Hydra Ethernet
+ ASDG Ethernet
+ A4066 Ethernet
+ Ariadne Ethernet
+ Arcnet controllers:
+ A2060 Arcnet
+ Tape drives:
+ Most SCSI tape drives, including
+ Archive Viper, Cipher SCSI-2 ST150.
+ CD-ROM drives:
+ Most SCSI CD-ROM drives
+ Serial cards:
+ MultiFaceCard II and III
+ A2232
+ Amiga floppy drives.
+ Amiga parallel port.
+ Amiga serial port.
+ Amiga mouse.
+
+If its not on this list, there is no support for it in this release.
diff --git a/distrib/notes/amiga/install b/distrib/notes/amiga/install
new file mode 100644
index 00000000000..5b73f335e75
--- /dev/null
+++ b/distrib/notes/amiga/install
@@ -0,0 +1,314 @@
+Installing NetBSD is a relatively complex process, but, if you have
+this document in hand and are careful to read and remember the
+information which is presented to you by the install program, it
+shouldn't be too much trouble.
+
+Before you begin, you must have already prepared your hard disk as
+detailed in the section on preparing your system for install.
+
+The following is a walk-through of the steps necessary to get NetBSD
+installed on your hard disk. If you wish to stop the installation,
+you may hit Control-C at any prompt, but if you do, you'll have to
+begin again from scratch.
+
+>>> transfer installation file system to the swap partition.
+>>> Does this go here, or in the hard disk prep section?
+
+>>> Getting loadbsd, ixemul.library, and netbsd onto AmigaDOS
+>>> partition.
+ Next you need to get yourself into NetBSD by loading the
+ kernel from AmigaDOS with loadbsd like so:
+
+ loadbsd -b netbsd
+
+ You should see the screen clear and some information about
+ your system as the kernel configures the hardware. Note which
+ hard disk device(s) are configured (sd0, sd1, etc). Then
+ you will be prompted for a root device. At this time type
+ 'sd0*'.
+>>> Need to document what device number to actually use.
+
+ The system should continue to boot. For now ignore WARNING:
+ messages about bad dates in clocks and swap space. Eventually
+>>> ^^^^^^^^^^???
+ you will be asked to enter the pathname of the shell, just
+ hit return. After a short while you should see a welcome
+ message and a prompt, asking if you wish to proceed with the
+ installation.
+
+ If you wish to proceed, enter "y" and then return.
+
+ If you have configured your hard drive[s] correctly it
+ should find the drive and partition that you selected to
+ use as your root.
+
+ YOU ARE NOW AT THE POINT OF NO RETURN. If you confirm that
+ you want to install NetBSD, your hard drive will be modified,
+ and perhaps its contents scrambled at the whim of the install
+ program.
+
+ If you are sure you want to proceed, enter "yes" at the
+ prompt.
+
+ The install program will now make the root filesystem you
+ specified. There should be only one error in this section
+ of the installation. It will look like so:
+
+ newfs: ioctl (WDINFO): Invalid argument
+ newfs: /dev/rsd0a: can't rewrite disk label
+
+ If there are any others, restart from the the beginning of
+ the installation process. This error is ok as the Amiga
+ does not write disklabels currently. You should expect
+ this error whenever using newfs.
+
+ Next the install program will ask you which drive and
+ partition you wish to use as /usr. First it will list the
+ available drives. Choose one. Next it will give you a
+ list of the partitions on that disk along with their sizes,
+ types, etc.. Choose the letter that corresponds to the
+ partition you wish to use for /usr. If you are doing a
+ full install this should be at the very least 45M-50M large.
+ If everything is ok the install program will then format
+ and mount your /usr. If not then it will ask again for a
+ drive and partition.
+
+ When this completes your root partition will be mounted on
+ /mnt and your /usr partition on /mnt/usr. An fstab will
+ have been created and initialized to correctly mount these
+ two file systems. This fstab will be in /mnt/etc.
+
+ What you do from this point on depends on which media you're
+ using to install NetBSD. Follow the appropriate instructions,
+ given below.
+
+ To install from an AmigaDOS partition:
+
+ You first need to mount the AmigaDOS partition
+ using the mount_ados command. If e.g. your AmigaDOS
+ partition is the first partition on sd0 you could
+ type:
+
+ mkdir /mnt/ados
+ mount_ados /dev/sd0d /mnt/ados
+
+ You can use `disklabel sd0' to find out what types
+ of partitions are on the disk `sd0'.
+
+ Next goto the directory in which you stored the
+ distribution sets. If e.g. you stored them in the
+ root directory of the partition:
+
+ cd /mnt/ados
+
+ When there, run "Set_tmp_dir" and choose the default
+ temporary directory, by hitting return at the
+ prompt.
+
+ Run the "Extract" command, giving it as its sole
+ argument the name of the distribution set you wish
+ to extract. For example, to extract the base
+ distribution, use the command:
+
+ Extract base11
+
+ and to extract the games distribution:
+
+ Extract game11
+
+ If the distribution sets are in different directories,
+ you will need to cd to each directory in turn, runing
+ "Set_tmp_dir" and the appropriate "Extract" command(s).
+
+ Continue this process until you've finished installing
+ all of the sets which you desire to have on your
+ hard disk. Once you have extracted all sets and
+ are at the "#" prompt again, proceed to the section
+ "Configuring Your System," below.
+
+ To install from tape:
+
+ The first thing you should do is pick a temporary
+ directory where the distribution files can be stored.
+ To do this, use the command "Set_tmp_dir" and enter
+ your choice. The default is /mnt/usr/distrib.
+
+ After you have picked a temporary directory,
+ you should issue the load command:
+
+ Load_tape
+
+ Next, you will be told to insert the media into
+ the appropriate drive, and hit return. Continue
+ to follow instructions until you are returned to
+ the "#" prompt.
+
+ Go to the directory which contains the first
+ distribution set you wish to install. This is
+ either the directory you specified above, or possibly
+ a subdirectory of that directory.
+
+ When there, run "Set_tmp_dir" again, and choose
+ the default temporary directory, by hitting
+ return at the prompt.
+
+ Run the "Extract" command, giving it as its sole
+ argument the name of the distribution set you
+ wish to extract. For example, to extract the base
+ distribution, use the command:
+
+ Extract base11
+
+ and to extract the games distribution:
+
+ Extract game11
+
+ After the extraction is complete, go to the location
+ of the next set you want to extract, "Set_tmp_dir"
+ again, and once again issue the appropriate
+ extract command. Continue this process until
+ you've finished installing all of the sets which you
+ desire to have on your hard disk.
+
+ After each set is finished, if you know that you
+ are running low on space you can remove the
+ distribution files for that set by saying:
+
+ rm set_name.??
+
+ For example, if you wish to remove the distribution
+ files for the game09 set, after the "Extract game09"
+ command has completed, issue the command:
+
+ rm game11.??
+
+ Once you have extracted all sets and are at the "#" prompt
+ again, proceed to the section "Configuring Your System,"
+ below.
+
+ To install via FTP or NFS:
+
+ First, use Set_tmp_dir to pick a temporary directory
+ for the installation files. /mnt/usr/distrib is
+ suggested.
+
+>>> Document using ppp or slip?
+ Configure the appropriate ethernet interface i.e. le0
+ if you have a 2065 or ed0 if you have a AMIGNET from
+ Hydra Systems.
+
+ ifconfig <ifname> <ipaddr> [netmask <netmask>]
+
+ where <ifname> is the interface name (e.g. ed0, etc.),
+ and <ipaddr> is the numeric IP address of the interface.
+ If the interface has a special netmask, supply
+ the word "netmask" and that netmask at the end of the
+ command line. For instance, without a special netmask:
+
+ ifconfig ed0 129.133.10.10
+
+ or with a special netmask
+
+ ifconfig ed0 128.32.240.167 netmask 0xffffff00
+
+ If the NFS server or FTP server is not on a directly-
+ connected network, you should set up a route to it
+ with the command:
+
+ route add default <gate_ipaddr>
+
+ where <gate_ipaddr> is your gateway's numeric IP address.
+
+ If you are NFS-mounting the distribution sets,
+ mount them on the temporary directory with the command:
+
+ mount -t nfs <serv_ipaddr>:<dist_dir> <tmp_dir>
+
+ where <serv_ipaddr> is the server's numeric IP address,
+ <dist_dir> is the path to the distribution files on
+ the server, and <tmp_dir> is the name of the local
+ temporary directory.
+
+ Once this is done, proceed as if you had loaded the
+ files from tape, "cd"ing to the appropriate directories
+ and running "Set_tmp_dir" and "Extract" as appropriate.
+
+ If you are retrieving the distribution sets using ftp,
+ cd into the temp directory, and execute the command:
+
+ ftp <serv_ipaddr>
+
+ where <serv_ipaddr> is once again the server's
+ numeric IP address. Get the files with FTP,
+ taking care to use binary mode to transfer
+ all files.
+
+ Once you have all of the files for the distribution sets
+ you wish to install, you can proceed using the instructions
+ above as if you had installed the files from a tape.
+
+
+Configuring Your System:
+----------- ---- ------
+
+Once you have finished extracting all of the distribution sets that
+you want on your hard drive and are back at the "#" prompt,
+you are ready to configure your system.
+
+The configuration utility expects that you have installed the base
+system. If you have not, you will not be able to run it successfully
+(nor will you have a functional system regardless of configuration).
+
+To configure the newly installed operating system, run the
+command "Configure".
+
+Configure will ask for the machine's hostname, domain name, and other
+network configuration information.
+
+Once you have supplied `Configure' all that it requests, your machine
+will be configured well enough that when you reboot it it will
+almost be a completely functional NetBSD system. Note you should
+ignore the errors from `chown' they will be corrected shortly.
+
+Once you are done with `Configure', halt the system with the "halt"
+command (wait for "halted" to be displayed) and reboot. Then again
+boot NetBSD this time with the command:
+
+
+ loadbsd netbsd
+
+You need to do your final tweeks now. First mount your file systems
+like so:
+
+ mount -av
+
+Next you need to re-make your devices to get the ownership correct:
+
+ cd /dev
+ MAKEDEV all
+>>> Is this step still needed? - check on it!
+
+Your system is now complete but not completely configured; you
+should adjust the /etc/sendmail.cf file as necessary to suit your
+site and/or disable sendmail and other network related programs.
+These things can be found in /etc/netstart. Use vi, if you installed
+the man pages you can type `man vi' or `man ed' for instructions
+on how to use these somewhat non-intuitive editors.
+
+Once you are done with the rest of configuration unmount your file
+systems and halt your system, then reboot:
+
+ cd /
+ umount -av
+ halt
+ <reboot>
+
+Finally you can now boot your system and it will be completely
+functional:
+
+ loadbsd -a netbsd
+
+When it boots off of the hard drive, you will have a complete
+NetBSD system! CONGRATULATIONS! (You really deserve them!!!)
+
+>>> Missing the step to transfer the netbsd kernel to /
diff --git a/distrib/notes/amiga/legal b/distrib/notes/amiga/legal
new file mode 100644
index 00000000000..2a4b4e547b6
--- /dev/null
+++ b/distrib/notes/amiga/legal
@@ -0,0 +1,7 @@
+ This product includes software developed by Christian E. Hopps.
+
+ This product includes software developed by Timo Rossi
+
+ This product includes software developed by Michael L. Hitch
+
+>>> any others?
diff --git a/distrib/notes/amiga/prep b/distrib/notes/amiga/prep
new file mode 100644
index 00000000000..7e7f8c2919d
--- /dev/null
+++ b/distrib/notes/amiga/prep
@@ -0,0 +1,80 @@
+You will need an AmigaDOS hard drive prep tool to prepare you hard
+drives for use with NetBSD/amiga. HDToolBox is provided with the
+system software and on floppy installation disks since Release 2.0
+of AmigaDOS so we will provide instructions for its use.
+
+Preparing you hard disk with HDToolBox:
+
+ A full explanation of HDToolBox can be found with your
+ AmigaDOS manuals and is beyond the scope of this document.
+
+ Note you will be modifying your HD's if you mess something
+ up here you could lose everything on all the drives that
+ you configure. It is therefore advised that you:
+
+ Write down your current configurations. Do this
+ by examining each partition on the drive and the
+ drives parameters (from Change drive type.)
+
+ Back up the partitions you are keeping.
+
+ What you need to do is partition your drives; creating
+ at least root, swap and /usr partitions and possibly at least
+ one more for /local if you have the space.
+
+ This should be done as the HDToolBox manual describes. One thing
+ to note is that if you are not using a Commodore controller you
+ will need to specify the device your SCSI controller uses e.g.
+ if you have a Warp Engine you would:
+
+ from cli,
+ hdtoolbox warpdrive.device
+
+ from wb set the tooltype,
+ SCSI_DEVICE_NAME=warpdrive.device
+
+ The important things you need to do above and beyond normal
+ partitioning includes (from Partition Drive section):
+
+ Marking all NetBSD partitions as non-bootable.
+
+ Changing the file system parameters of the partitions
+ to NetBSD ones. This must be done from the
+ partitioning section and `Advanced options' must
+ be enabled. To Make the needed changes:
+
+ - Click the `Adv. Options' button
+ - Click the `Change filesystem' button
+
+ - Choose `Custom File System'
+ - Turn off `Automount' if on.
+ - Set the dostype to one of these three choices:
+
+ root partition : 0x4e425207
+ swap partition : 0x4e425301
+ other partitions: 0x4e425507
+
+ Here `other' refers to other partitions you will
+ format for reading and writing under NetBSD (e.g.
+ /usr)
+
+ Make sure you hit the return key to enter this value
+ as some versions of HDToolBox will forget your entry
+ if you don't.
+
+ - Turn custom boot code off
+ - Set Reserved Blocks start and end to 0.
+ - Click Ok.
+
+ Mask and maxtransfer are not used with NetBSD.
+
+ Until you compile your own kernel your swap partition
+ must exist on the drive that also holds your root
+ partition.
+
+
+ Once this is done NetBSD/amiga will be able to recognize your
+ disks and which partitions it should use.
+
+>>> Should the miniroot transfer to the swap partition instructions
+>>> go here?
diff --git a/distrib/notes/amiga/upgrade b/distrib/notes/amiga/upgrade
new file mode 100644
index 00000000000..d6fc606e39f
--- /dev/null
+++ b/distrib/notes/amiga/upgrade
@@ -0,0 +1,163 @@
+The upgrade to NetBSD 1.1 is a binary upgrade; it would be prohibitive
+to make users upgrade by compiling and installing the 1.1 sources, and
+it would be very difficult to even compile a set of instructions that
+allowed them to do so. Because of the various changes to the system,
+the largest being the 64-bit file size support and shared libraries,
+>>> just what are the major differences between 1.0 and 1.1??
+it is impractical to upgrade by recompiling from the sources and
+installing.
+
+>>> no kernel-copy!
+To do the upgrade, you must have the appropriate kernel-copy floppy
+image on a disk, and the upgr-11.fs floppy image on another. You must
+>>>
+also have at least the "base11" binary distribution set available,
+so that you can upgrade with it, using one of the upgrade methods
+described above. Finally, you must have sufficient disk space
+available to install the new binaries. Since the old binaries are
+being overwritten in place, you only need space for the new binaries,
+which weren't previously on the system. If you have a few megabytes
+free on each of your root and /usr partitions, you should have enough
+space.
+
+Since upgrading involves replacing the kernel, and most of the system
+binaries, it has the potential to cause data loss. You are strongly
+advised to BACK UP ANY IMPORTANT DATA ON YOUR DISK, whether on the
+NetBSD partition or on another operating system's partition, before
+beginning the upgrade process.
+
+To upgrade your system, follow the following instructions:
+
+>>> transfer upgrade file system image to swap partition
+>>> should this be in the hard disk prep section?
+
+ Boot your machine using of the appropriate kernel-copy floppy.
+ When presented with the boot prompt (the prompt begins with
+ "Boot" and ends with ":-"), hit return.
+
+ While booting, you will probably see several warnings. You
+ should be warned that no swap space is present, and that
+>>> ^^^^^^^^^^^^^^^^^^^^^
+ init(8) cannot find /etc/rc. Do not be alarmed, these are
+>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ completely normal. When you reach the prompt asking you for a
+ shell name, just hit return.
+
+ You will be presented with some information about the upgrade
+ process and a warning message, and will be asked if you wish
+ to proceed with the upgrade process. If you answer
+ negatively, the upgrade process will stop, and your disk will
+ not be modified. If you answer affirmatively, the upgrade
+ process will begin, and your disk will be modified. You may
+ hit Control-C to stop the upgrade process at any time.
+ However, if you hit it at an inopportune moment, your system
+ may be left in an inconsistent (and possibly unusable) state.
+
+ You will be asked if you wish to upgrade your file systems to
+ the new file system format. If you do, reply affirmatively.
+ If you don't have your file systems upgraded now, you should
+ probably do it manually after the install process is complete,
+ by using "fsck -c 2". Read the fsck(8) manual page for more
+ details.
+>>> Is this needed for 1.0 to 1.1 upgrade? Or mention that the upgrade
+>>> should be done if it wasn't previously done? [It shouldn't hurt
+>>> to run through the upgrade steps.]
+
+ The upgrade program will then check your root file system,
+ and, if you approved, will upgrade it to the new file system
+ format. It will then mount your root file system on /mnt.
+
+ If your file systems are being upgraded, the upgrade script
+ will copy the new fsck(8) program to your hard disk and
+ upgrade your remaining file systems.
+
+ The upgrade program will then mount all of your file systems
+ under /mnt. (In other words, your root partition will be
+ mounted on /mnt, your /usr partition on /mnt/usr, etc.)
+
+ If you don't already have the NetBSD distribution sets on your
+ disk, look in the installation section for information on how
+ to transfer them to your disk.
+>>> NetBSD or AmigaDOS partitions...
+
+ Once the distribution sets are transferred to your disk,
+ continue here. (Obviously, if the NetBSD distribution sets
+ are already on your disk, because you've transferred them
+ before starting the upgrade process, you don't need to
+ transfer them again now!)
+
+ After the software has been transferred to the machine (or
+ mounted, in the case of upgrading via NFS), change into the
+ directory containing the "base11" distribution set. Once you
+ are there, run the "Set_tmp_dir" command, and hit return at
+ the prompt to select the default answer for the temporary
+ directory's path name. (It should be the path name of the
+ directory that you're in.)
+
+ Run the command "Extract base11" to upgrade the base
+ distribution.
+
+ Repeat the above two steps for all of the sets you wish to
+ upgrade. (For each, change into the directory containing the
+ set, run "Set_tmp_dir" and accept the default path name, then
+ run the "Extract <setname>" command.)
+
+ If you were previously using the security distribution set,
+ you MUST upgrade to the new version, or you will not be able
+ to log in when the upgrade process is complete. Similarly, if
+ you were not previously using the security set, you must NOT
+ upgrade to the new version.
+
+ When you are done upgrading all of the distribution sets you
+ wish to upgrade, issue the command "Cleanup". It will clean
+ up the installation, by remaking some system databases. When
+ it is complete, you should use "halt" to halt the system.
+
+>>> transfer new kernel to /
+
+Your system has now been upgraded to NetBSD 1.1.
+
+After a new kernel has been copied to your hard disk, your
+ machine is a complete NetBSD 1.1 system. However, that
+ doesn't mean that you're finished with the upgrade process.
+ There are several things that you should do, or might have to
+ do, to insure that the system works properly.
+
+ First, if you did not upgrade your file systems to the new
+ file system format during the upgrade process, you may want to
+ do so now, with "fsck -c 2". If you are unsure about the
+ process, it's suggested that you read the fsck(8) manual page.
+
+ Second, you will probably want to get the etc11 distribution,
+ extract it, and compare its contents with those in your /etc/
+ directory. You will probably want to replace some of your
+ system configuration files, or incorporate some of the changes
+ in the new versions into yours.
+
+ Third, you will probably want to update the set of device
+ nodes you have in /dev. If you've changed the contents of
+ /dev by hand, you will need to be careful about this, but if
+ not, you can just cd into /dev, and run the command "sh
+ MAKEDEV all".
+
+ Fourth, you must deal with certain changes in the formats of
+ some of the configuration files. The most notable change is
+ that the "options" given to many of the file systems in
+ /etc/fstab or by hand have changed, and some of the file
+ systems have changed names. To find out what the new options
+ are, it's suggested that you read the manual page for the
+ file systems' mount commands, for example mount_nfs(8) for
+ NFS. (Note that the information for mounts of type "ufs",
+ i.e. Fast File Systems, are contained in the mount(8) man
+ page.)
+>>> Is this needed for 1.0 -> 1.1 upgrade?
+
+ Finally, you will want to delete old binaries that were part
+ of the version of NetBSD that you upgraded from and have since
+ been removed from the NetBSD distribution. You might also
+ want to recompile any locally-built binaries, to take
+ advantage of the shared libraries. (Note that any new
+ binaries that you build will be dynamically linked, and
+ therefore take advantage of the shared libraries, by default.
+ For information on how to make statically linked binaries,
+ see the cc(1) and ld(1) manual pages.)
diff --git a/distrib/notes/amiga/whatis b/distrib/notes/amiga/whatis
new file mode 100644
index 00000000000..bff5272d6c1
--- /dev/null
+++ b/distrib/notes/amiga/whatis
@@ -0,0 +1,4 @@
+
+>>> What should go here?
+This is the first public release of NetBSD for the Amiga line of
+computers.
diff --git a/distrib/notes/amiga/xfer b/distrib/notes/amiga/xfer
new file mode 100644
index 00000000000..602b2bb18e1
--- /dev/null
+++ b/distrib/notes/amiga/xfer
@@ -0,0 +1,128 @@
+Installation is supported from several media types, including:
+ AmigaDOS HD partitions
+ Tape
+ NFS partitions
+ FTP
+ NetBSD partitions, if doing an upgrade.
+
+>>> Transfering install/upgrade file system image to swap partition
+No matter what you do, however, you'll need to have one disk handy,
+on which you will put the install floppy image.
+
+All the images are available from the directory "amiga/floppies",
+>>> ^^^^^^^^
+under the root of the NetBSD tree at your favorite archive site.
+
+If you are using NetBSD/amiga to make the floppies, you should use
+the command dd(1) to write the raw floppy images (.fs files) to
+the disk. To write onto fd0 use:
+
+ dd if=inst-11.fs of=/dev/rfd0a bs=11b
+
+If you are using AmigaDOS to make the floppies, you should
+use the rawwrite utility, provided in the directory
+"amiga/utilities" in the distribution. To write the image to
+the floppy in df0 use (from cli):
+
+ rawwrite 0 inst-11.fs
+>>> fix above to document file system transfer to swap paritition
+>>> using xstreamtodev
+
+The steps necessary to prepare the distribution sets
+for installation depend on which method of installation
+you choose. The various methods are explained below.
+
+To prepare for installing via an AmigaDOS partition:
+
+ To install NetBSD from an AmigaDOS partition, you need to
+ get the NetBSD distribution sets you wish to install
+ on your system on to an AmigaDOS partition. All of the
+ set_name.xx pieces can be placed in a single directory
+ instead of separate ones for each distribution set. This
+ will also simplify the installation work later on.
+
+ Note where you place the files you will need this later.
+
+ Once you have done this, you can proceed to the next
+ step in the installation process, preparing your hard disk.
+
+To prepare for installing via a tape:
+
+ To install NetBSD from a tape, you need to somehow
+ get the NetBSD filesets you wish to install on
+ your system on to the appropriate kind of tape,
+ in tar format.
+
+ If you're making the tape on a UN*X system, the easiest
+ way to do so is:
+
+ tar cvf <tape_device> <files>
+
+ where "<tape_device>" is the name of the tape device
+ that describes the tape drive you're using (possibly
+ something like /dev/nrst0, but we make no guarantees 8-).
+ If you can't figure it out, ask your system administrator.
+ "<files>" are the names of the "set_name.nnn" files
+ which you want to be placed on the tape.
+
+ Once you have done this, you can proceed to the next
+ step in the installation process, preparing your hard disk.
+
+To prepare for installing via an NFS partition:
+
+ NOTE: this method of installation is recommended
+ only for those already familiar with using
+ the BSD network-manipulation commands and
+ interfaces. If you aren't, this documentation
+ should help, but is not intended to be
+ all-encompassing.
+
+ Place the NetBSD software you wish to install into
+ a directory on an NFS server, and make that directory
+ mountable by the machine which you will be installing
+ NetBSD on. This will probably require modifying the
+ /etc/exports file of the NFS server and resetting
+ mountd, acts which will require superuser privileges.
+ Note the numeric IP address of the NFS server and of
+ the router closest to the the new NetBSD machine,
+ if the NFS server is not on a network which is
+ directly attached to the NetBSD machine.
+
+ Once you have done this, you can proceed to the next
+ step in the installation process, preparing your hard disk.
+
+To prepare for installing via FTP:
+
+ NOTE: this method of installation is recommended
+ only for those already familiar with using
+ the BSD network-manipulation commands and
+ interfaces. If you aren't, this documentation
+ should help, but is not intended to be
+ all-encompassing.
+
+ The preparations for this method of installation
+ are easy: all you have to do is make sure that
+ there's some FTP site from which you can retrieve
+ the NetBSD installation when it's time to do
+ the install. You should know the numeric IP
+ address of that site, the numeric IP address of
+ your nearest router if one is necessary
+
+ Once you have done this, you can proceed to the next
+ step in the installation process, preparing your hard disk.
+
+If you are upgrading NetBSD, you also have the option of installing
+NetBSD by putting the new distribution sets somewhere in your existing
+file system, and using them from there. To do that, you must do the
+following:
+
+ Place the distribution sets you wish to upgrade somewhere in
+ your current file system tree. At a bare minimum, you must
+ upgrade the "base" binary distribution, and so must put the
+ "base11" set somewhere in your file system. If you wish,
+ you can do the other sets, as well, but you should NOT upgrade
+ the "etc" distribution; the "etc" distribution contains system
+ configuration files that you should review and update by hand.
+
+ Once you have done this, you can proceed to the next step in
+ the upgrade process, actually upgrading your system.
diff --git a/distrib/notes/atari/contents b/distrib/notes/atari/contents
new file mode 100644
index 00000000000..4746977bd42
--- /dev/null
+++ b/distrib/notes/atari/contents
@@ -0,0 +1,124 @@
+The Atari-specific portion of the NetBSD 1.1 release is found in the
+"atari" subdirectory of the distribution. That subdirectory is layed
+out as follows:
+
+.../NetBSD-1.1/atari/
+ binary/ atari binary distribution sets;
+ see below.
+
+ floppies/ atari boot and installation
+ floppies; see below.
+
+ security/ atari security distribution;
+ see below;
+
+ utils.netbsd/
+ utils.tos/ Miscellaneous atari
+ installation utilities; see
+ installation section, below.
+
+There are three atari floppy images to be found in the "atari/floppies"
+subdirectory of the NetBSD 1.1 distribution. One of them is a
+bootable TOS kernel floppy and the other two are installation floppy's.
+They are described in more detail below. There are gzipped versions
+of each available, for easier downloading. (The gzipped version
+have the ".gz" extension added to their names.)
+
+Bootable Kernel floppy:
+
+ This TOS disk contains the loadbsd and chg_part programs
+ and the GENERIC kernel. It is setup so that you can insert it
+ int your floppy drive, and start the programs from GEM.
+
+ This floppy is named boot-11.fs
+
+Installation floppy:
+
+ This disk contains a BSD root file system setup to help
+ you install the rest of NetBSD. This includes formatting
+ and mounting your root and /usr partitions and getting
+ ready to extract (and possibly first fetching) the distribution
+ sets. There is enough on this file system to allow you to
+ make a slip connection, configure an ethernet, mount an NFS
+ file system or ftp. You can also load distribution sets from
+ a SCSI tape or from one of your existing TOS partitions.
+
+ This floppy's are named "inst-11.fs.1" and "inst-11.fs.2".
+
+The NetBSD/atari binary distribution sets contain the binaries which
+comprise the NetBSD 1.1 release for the atari. There are seven binary
+distribution sets, and the "security" distribution set. The binary
+distribution sets can be found in subdirectories of the "atari/binary"
+subdirectory of the NetBSD 1.1 distribution tree, and are as follows:
+
+ base11 The NetBSD/atari 1.1 base binary distribution. You
+ MUST install this distribution set. It contains the
+ base NetBSD utilities that are necessary for the
+ system to run and be minimally functional. It
+ includes shared library support, and excludes
+ everything described below.
+ [ 7M gzipped, 19M uncompressed ]
+
+ comp11 The NetBSD/atari Compiler tools. All of the tools
+ relating to C, C++, and FORTRAN (yes, there are two!).
+ This set includes the system include files
+ (/usr/include), the linker, the compiler tool chain,
+ and the various system libraries (except the shared
+ libraries, which are included as part of the base
+ set). This set also includes the manual pages for all
+ of the utilities it contains, as well as the system
+ call and library manual pages.
+ [ 4M gzipped, 12M uncompressed ]
+
+ etc11 This distribution set contains the system
+ configuration files that reside in /etc and in several
+ other places. This set MUST be installed if you are
+ installing the system from scratch, but should NOT be
+ used if you are upgrading. (If you are upgrading,
+ it's recommended that you get a copy of this set and
+ CAREFULLY upgrade your configuration files by hand.)
+ [ 50K gzipped, 280K uncompressed ]
+
+ games11 This set includes the games and their manual pages.
+ [ 1M gzipped, 3M uncompressed ]
+
+ man11 This set includes all of the manual pages for the
+ binaries and other software contained in the base set.
+ Note that it does not include any of the manual pages
+ that are included in the other sets.
+ [ 730K gzipped, 3M uncompressed ]
+
+ misc11 This set includes the system dictionaries (which are
+ rather large), the typesettable document set, and
+ man pages for other architectures which happen to be
+ installed from the source tree by default.
+ [ 2M gzipped, 6M uncompressed ]
+
+ text11 This set includes NetBSD's text processing tools,
+ including groff, all related programs, and their
+ manual pages.
+ [ 784K gzipped, 3M uncompressed ]
+
+The atari security distribution set is named "secr11" and can be found
+in the "atari/security" subdirectory of the NetBSD 1.1 distribution
+tree. It contains crypt.c (the source file for the DES encryption
+algorithm) and the binaries which depend on it. It can only be found
+on those sites which carry the complete NetBSD distribution and that
+can legally obtain it. (Remember, because of United States law, this
+distribution set may not be exported to locations outside of the
+United States and Canada.) [ 119K gzipped, 300K uncompressed ]
+
+The atari binary distribution sets are distributed in the same form as
+the source distribution sets; catted together, the members of a set
+form a gzipped tar file. Each atari binary distribution set also has
+its own "CKSUMS" file, just as the source distribution sets do.
+
+The instructions given for extracting the source sets work equally
+well for the binary sets, but it is worth noting that if you use that
+method, the files are extracted "below" the current directory. That
+is, if you want to extract the binaries "into" your system, i.e.
+replace the system binaries with them, you have to run the "tar xvfp"
+from /. Also note that if you upgrade or install this way, those
+programs that you are using at the time will NOT be replaced. If you
+follow the normal installation or upgrade procedures, this will be
+taken care of for you.
diff --git a/distrib/notes/atari/hardware b/distrib/notes/atari/hardware
new file mode 100644
index 00000000000..cf708802f19
--- /dev/null
+++ b/distrib/notes/atari/hardware
@@ -0,0 +1,33 @@
+NetBSD/atari 1.1 runs on a TT030 and a Falcon. Currently an FPU is
+required, although this might change in the (near) future. The
+minimum amount of RAM required is 4Mb.
+
+Here is a table of recommended HD partition sizes for a full install:
+ partition: advise, with X, needed, with X
+ root (/) 15M 15M 10M 10M
+ user (/usr) 65M 100M 45M 80M
+ swap ----- 2M for every M ram -----
+ local (/local) up to you
+
+As you may note the recommended size of /usr is 20M greater than
+needed. This is to leave room for a kernel source and compile tree
+as you will probably want to compile your own kernel. (GENERIC is
+large and bulky to accommodate all people, BOOT is small and might
+not have all the features you want).
+
+Supported devices include:
+ - The buildin SCSI host adapter
+ - Should support most SCSI-drives. The drives that are
+ currently tested are:
+ MAXTOR 7245S, MAXTOR 7080S, SEAGATE ST157N
+ - Should support most tape drives. The drives that are
+ currently tested are:
+ TANDBERG 3600
+ - Should support most CD-ROM drives.
+ - The buildin video controller
+ - The building (720Kb/1.44Mb) floppydrive
+ - The serial2/modem2 ports
+ - The Falcon FX memory expansion
+ - The atari mouse
+
+If its not on this list, there is no support for it in this release.
diff --git a/distrib/notes/atari/install b/distrib/notes/atari/install
new file mode 100644
index 00000000000..cbc336a5196
--- /dev/null
+++ b/distrib/notes/atari/install
@@ -0,0 +1,278 @@
+Installing NetBSD is a relatively complex process, but, if you have
+this document in hand and are careful to read and remember the
+information which is presented to you by the install program, it
+shouldn't be too much trouble.
+
+Before you begin, you must have already prepared your hard disk as
+detailed in the section on preparing your system for install.
+
+The following is a walk-through of the steps necessary to get NetBSD
+installed on your hard disk. If you wish to stop the installation,
+you may hit Control-C at any prompt, but if you do, you'll have to
+begin again from scratch.
+
+ First you need to get yourself into NetBSD. This can be
+ done in a couple ways, both of which currently require
+ GEMDOS.
+
+ You can insert the GEMDOS kernel floppy and select
+ the loadbsd program. It will ask for parameters,
+ supply: '-b netbsd'. You can, of course, also run it
+ from the shell command-line in MiNT:
+
+ loadbsd -b a:/netbsd
+
+ You should see the screen clear and some information about
+ your system as the kernel configures the hardware. Then
+ you will be prompted for a root device. At this time remove
+ the GEMDOS kernel boot floppy from the drive if present and
+ insert the BSD install floppy 1. Now type `rd0' to tell the
+ kernel to load the install filesystem into RAMdisk. While
+ While the kernel is loading, it will show a '.' for each
+ track loaded. After loading 80 tracks, it will ask you
+ to insert the next floppy. At this time, inser the BSD
+ install floppy 2 and hit any key. The kernel continous
+ loading another 40 tracks before it continues to boot.
+
+ The system should continue to boot. For now ignore WARNING:
+ messages about bad dates in clocks. Eventually you will be
+ be asked to enter the pathname of the shell, just hit
+ return. After a short while you should see a welcome
+ message and a prompt, asking if you wish to proceed with the
+ installation.
+
+ If you wish to proceed, enter "y" and then return.
+
+ If you have configured your hard drive[s] correctly it
+ should find the drive and partition that you selected to
+ use as your root.
+
+ YOU ARE NOW AT THE POINT OF NO RETURN. If you confirm that
+ you want to install NetBSD, your hard drive will be modified,
+ and perhaps its contents scrambled at the whim of the install
+ program.
+
+ If you are sure you want to proceed, enter "yes" at the
+ prompt.
+
+ The install program will now make the root filesystem you
+ specified. There should be only one error in this section
+ of the installation. It will look like so:
+
+ newfs: ioctl (WDINFO): Invalid argument
+ newfs: /dev/rsd0a: can't rewrite disk label
+
+ If there are any others, restart from the the beginning of
+ the installation process. This error is ok as the Atari
+ does not write disklabels currently. You should expect
+ this error whenever using newfs.
+
+ Next the install program will ask you which drive and
+ partition you wish to use as /usr. First it will list the
+ available drives. Choose one. Next it will give you a
+ list of the partitions on that disk along with their sizes,
+ types, etc.. Choose the letter that corresponds to the
+ partition you wish to use for /usr. To be able to make the
+ proper selection, you need to know, that NetBSD assigns a
+ special meaning to some of the partition letters:
+ 'a' : root filesystem
+ 'b' : swap partition
+ 'c' : whole disk
+ You should choose a letter in the range 'd'-'p' for your
+ /usr filesystem. If you are doing a full install this should
+ be a partition that is at least 45M-50M large. If everything is
+ ok the install program will then format and mount your /usr. If
+ not then it will ask again for a drive and partition.
+
+ When this completes your root partition will be mounted on
+ /mnt and your /usr partition on /mnt/usr. An fstab will
+ have been created and initialized to correctly mount these
+ two file systems. This fstab will be in /mnt/etc.
+
+ What you do from this point on depends on which media you're
+ using to install NetBSD. Follow the appropriate instructions,
+ given below.
+
+ To install from an GEMDOS partition:
+
+ You first need to mount the GEMDOS partition
+ using the mount_msdos command. If e.g. your GEMDOS
+ partition is the first partition on sd0 you could
+ type:
+
+ mkdir /mnt/gemdos
+ mount_msdos /dev/sd0d /mnt/gemdos
+
+ You can use `disklabel sd0' to find out what types
+ of partitions are on the disk `sd0'.
+
+ Next goto the directory in which you stored the
+ distribution sets. If e.g. you stored them in the
+ root directory of the partition:
+
+ cd /mnt/gemdos
+
+ When there, run "Set_tmp_dir" and choose the default
+ temporary directory, by hitting return at the
+ prompt.
+
+ Run the "Extract" command, giving it as its sole
+ argument the name of the distribution set you wish
+ to extract. For example, to extract the base
+ distribution, use the command:
+
+ Extract base11
+
+ and to extract the games distribution:
+
+ Extract game11
+
+ If the distribution sets are in different directories,
+ you will need to cd to each directory in turn, runing
+ "Set_tmp_dir" and the appropriate "Extract" command(s).
+
+ Continue this process until you've finished installing
+ all of the sets which you desire to have on your
+ hard disk. Once you have extracted all sets and
+ are at the "#" prompt again, proceed to the section
+ "Configuring Your System," below.
+
+ To install from tape:
+
+ The first thing you should do is pick a temporary
+ directory where the distribution files can be stored.
+ To do this, use the command "Set_tmp_dir" and enter
+ your choice. The default is /mnt/usr/distrib.
+
+ After you have picked a temporary directory,
+ you should issue the load command:
+
+ Load_tape
+
+ Next, you will be told to insert the media into
+ the appropriate drive, and hit return. Continue
+ to follow instructions until you are returned to
+ the "#" prompt.
+
+ Go to the directory which contains the first
+ distribution set you wish to install. This is
+ either the directory you specified above, or possibly
+ a subdirectory of that directory.
+
+ When there, run "Set_tmp_dir" again, and choose
+ the default temporary directory, by hitting
+ return at the prompt.
+
+ Run the "Extract" command, giving it as its sole
+ argument the name of the distribution set you
+ wish to extract. For example, to extract the base
+ distribution, use the command:
+
+ Extract base11
+
+ and to extract the games distribution:
+
+ Extract game11
+
+ After the extraction is complete, go to the location
+ of the next set you want to extract, "Set_tmp_dir"
+ again, and once again issue the appropriate
+ extract command. Continue this process until
+ you've finished installing all of the sets which you
+ desire to have on your hard disk.
+
+ After each set is finished, if you know that you
+ are running low on space you can remove the
+ distribution files for that set by saying:
+
+ rm set_name.??
+
+ For example, if you wish to remove the distribution
+ files for the game09 set, after the "Extract game09"
+ command has completed, issue the command:
+
+ rm game11.??
+
+ Once you have extracted all sets and are at the "#" prompt
+ again, proceed to the section "Configuring Your System,"
+ below.
+
+Configuring Your System:
+----------- ---- ------
+
+Once you have finished extracting all of the distribution sets that
+you want on your hard drive and are back at the "#" prompt,
+you are ready to configure your system.
+
+The configuration utility expects that you have installed the base
+system. If you have not, you will not be able to run it successfully
+(nor will you have a functional system regardless of configuration).
+
+To configure the newly installed operating system, run the
+command "Configure".
+
+Configure will ask for the machine's hostname, domain name, and other
+network configuration information.
+
+Once you have supplied `Configure' all that it requests, your machine
+will be configured well enough that when you reboot it it will
+almost be a completely functional NetBSD system. Note you should
+ignore the errors from `chown' they will be corrected shortly.
+
+Once you are done with `Configure', halt the system with the "halt"
+command (wait for "halted" to be displayed) and reboot. Then again
+boot NetBSD this time with the command:
+
+ loadbsd netbsd
+
+You need to do your final tweeks now. First mount your file systems
+like so:
+
+ mount -av
+
+Next you need to re-make your devices to get the ownership correct:
+
+ cd /dev
+ MAKEDEV all
+
+Your system is now complete but not completely configured; you
+should adjust the /etc/sendmail.cf file as necessary to suit your
+site and/or disable sendmail and other network related programs.
+These things can be found in /etc/netstart. Use vi, if you installed
+the man pages you can type `man vi' or `man ed' for instructions
+on how to use these somewhat non-intuitive editors.
+
+As mentioned at the end of the `Configure' run, you should copy the
+NetBSD kernel onto the root partition as "/netbsd". There is also
+another option to this. As NetBSD/Atari has to be booted from TOS,
+you could do the following:
+ Reserve a small GEMDOS partition of about 4Mb. This is
+ enough to put in a few kernels. Put the netbsd kernel
+ into this partition. Also, edit your /etc/fstab to always
+ mount this partition, say as /kernels. Now make a symlink
+ from /netbsd to /kernels/netbsd.
+ This sceme is particulary handy when you want to make your
+ own kernel. When compilation is finished, you just copy
+ your kernel to /kernels/netbsd and reboot. It's wise to
+ make sure there is _always_ a 'know to work' kernel image
+ present.
+
+To get the proper timezone settings, link /etc/localtime to the
+appropriate file in /usr/share/zoneinfo. The link provided is to
+/usr/share/zoneinfo/US/Pacific.
+
+Once you are done with the rest of configuration unmount your file
+systems and halt your system, then reboot:
+
+ cd /
+ umount -av
+ halt
+ <reboot>
+
+Finally you can now boot your system and it will be completely
+functional:
+
+ loadbsd -a netbsd
+
+When it boots off of the hard drive, you will have a complete
+NetBSD system! CONGRATULATIONS! (You really deserve them!!!)
diff --git a/distrib/notes/atari/legal b/distrib/notes/atari/legal
new file mode 100644
index 00000000000..431e6c06461
--- /dev/null
+++ b/distrib/notes/atari/legal
@@ -0,0 +1,7 @@
+ This product includes software developed by Christian E. Hopps.
+
+ This product includes software developed by Gordon Ross
+
+ This product includes software developed by Leo Weppelman.
+
+ This product includes software developed by Markus Wild.
diff --git a/distrib/notes/atari/prep b/distrib/notes/atari/prep
new file mode 100644
index 00000000000..dd68c6ce618
--- /dev/null
+++ b/distrib/notes/atari/prep
@@ -0,0 +1,97 @@
+Note you will be modifying your HD's if you mess something up here you
+could lose everything on all the drives that you mess with. It is
+therefore advised that you:
+
+ Write down your current configurations. Do this
+ by writing down all partition info (especially their sizes).
+
+ Back up the partitions you are keeping.
+
+What you need to do is partition your drives; creating
+space for at least root, swap and /usr partitions and possibly at
+least one more for /local if you have the space.
+
+The partitioning can be done in two ways, the first method heavily
+relies on the AHDI way of partitioning, the second method nearly
+ignores the AHDI partitioning and gives you far more flexibility.
+Currently, the second method can only be achieved from a working
+NetBSD/atari system. How this should be done is described in
+"upgrading to NetBSD-labeling".
+
+Using AHDI partitioning:
+ The paritioning can be done with the AHDI-disk that is
+ provided with your TT or Falcon. Note that the AHDI partioning
+ function erases all partions on your harddisk even if they are
+ not changed!
+ I know this is rather stupid, but don't say I didn't warn you.
+
+ You will need the 'chg_part' program from the bootdisk to
+ prepare your harddisk a bit more. This program will change the
+ partition-id so NetBSD knows which partitions it can use. The
+ synopsis is:
+ chg_part <driveno> <partno> <new_id>
+
+ The drive number corresponds with the drive's SCSI-id. The new
+ id can be selected from one of the following acronyms:
+ NBU - NetBSD User partition
+ NBR - NetBSD Root partition
+ NBS - NetBSD Swap partition
+ Because NetBSD cannot be bootloaded (yet) and thus must be
+ loaded through GEM, it is unwise to use drive 'C'
+ (drive 0/partition 1) as a NetBSD partition. When a partition-id
+ is changed, GEMDOS won't be able to recognize your drive, so be
+ warned that the drive labels are shifted afterwards. The chg_part
+ program still recognizes them, take this into account when
+ re-labeling partitions. Also note that the chg_part process is
+ reversible. So don't panic if you made a mistake. Just run
+ chg_part again with the same drive/partition arguments but
+ supplied the original partition id.
+
+Upgrading to NetBSD-labeling:
+ First of all the new disk label functions are fully backwards
+ compatible with the current (old) behaviour, therefore you don't
+ have to rename partition identifiers if you don't want to. The only
+ limitation is that you won't be able to write a disklabel to your
+ harddisk ("Device not configured.").
+
+ If you'ld like to have the flexibility of the NetBSD disk label,
+ the procedure is very simple: change the identifier of the AHDI
+ partition that contains your NetBSD root filesystem from NBR to NBD.
+ Boot NetBSD; run `disklabel -e sd?'; disklabel will start vi;
+ quit vi without changing anything; now the disklabel should be
+ written to the NBD partition. If at this point disklabel tells
+ you that one or more of your partitions extend past the end of
+ the unit, then you have an old version of disklabel. Get the
+
+ If you like, you can now change the NBD partition id to RAW
+ (this would for example be necessary if the partition must be
+ shared with MiNT), but keep in mind that the partition id must
+ be either NBD or RAW, otherwise NetBSD won't be able to find the
+ disklabel. The NBS id (used for a swap partition) is no longer
+ needed, you can change it to whatever you like (or leave it as
+ is, if that's what you like :-) ). The same is true for the
+ NBU id's.
+
+ WARNINGS:
+ - the NBD partition does not necessarily have to be the
+ partition that contains the NetBSD root filesystem, but
+ it *must* be a partition that contains a fast filesystem.
+ Do *not* try this with a partition that contains a gemdos,
+ minix or ext2 filesystem; if you do, you'll *loose* a
+ filesystem.
+ - Now that you have a real disklabel, you can modify it in
+ (almost) any way you want. However, if you make a mess of
+ the disk label, NetBSD may (or may not) make a mess of
+ your disk! No freedom without responsibility.
+ NetBSD will try to warn you for a possibly dangerous
+ partition table, but it's up to you to either take that
+ warning serious or ignore it (there may be good reasons
+ to ignore the warning, if you know what you're doing).
+
+ So what do you do if you have a new disk, that will be exclusively
+ used by NetBSD? Very simple: don't let it get `infected' by the
+ AHDI `virus'. ,-) Just connect the disk to your TT/Falcon; boot
+ NetBSD; run `disklabel -e'; you'll see only one large partiton `d'
+ (there won't be any filesytem on it yet); you can create partitions
+ in any way you want, as you're no longer limited by an AHDI partition
+ table.
diff --git a/distrib/notes/atari/upgrade b/distrib/notes/atari/upgrade
new file mode 100644
index 00000000000..1ddc27fb372
--- /dev/null
+++ b/distrib/notes/atari/upgrade
@@ -0,0 +1,36 @@
+Before updating, you probably would want to backup your original
+filesystems!
+
+The update procedure will not overwrite or remove any files not present
+in the sets you install. If you've replaced programs present in the
+distribution, you have to replace them again after you did the update.
+The etc-set needs special caution. You generally don't want to install
+this one when upgrading. It is recommended that you get a copy of this
+set and _carefully_ upgrade your configuration files by hand.
+Before starting the actual procedure, make a note of the partitions your
+root- and usr-filesystems are on. You'll need to mount them by hand.
+
+Ok, let's go. Insert the bootfloppy and follow the 'normal' installation
+procedure until it asks you if you wish to proceed with the installation.
+Now enter 'n' and hit return. You will be left at the shell prompt. Now
+mount your root and usr filesystems on /mnt. If your root-filesystem is
+on sd1a and your usr-filesystem on sd1d this would require the following
+actions:
+ mount_ffs /dev/sd1a /mnt
+ mount_ffs /dev/sd1d /mnt/usr
+
+At this point, you can follow the section "Installing the NetBSD System"
+to install the sets. There is one difference: When Extract asks you
+ "Are you installing a -current snapshot? [n]"
+answer 'y'.
+
+Once you are done installing the upgrade sets, then reboot:
+ cd /
+ umount -av
+ halt
+ <reboot>
+
+Now you can boot your upgraded system as usually, but take the
+new kernel! To finish up, you should rebuild your /dev-directory:
+ cd /dev
+ MAKEDEV all
diff --git a/distrib/notes/atari/whatis b/distrib/notes/atari/whatis
new file mode 100644
index 00000000000..d9f2b34e087
--- /dev/null
+++ b/distrib/notes/atari/whatis
@@ -0,0 +1,2 @@
+The Atari release stepped in in March 1995. This means the NetBSD1.1
+is the first official release of NetBSD/Atari.
diff --git a/distrib/notes/atari/xfer b/distrib/notes/atari/xfer
new file mode 100644
index 00000000000..cb423915057
--- /dev/null
+++ b/distrib/notes/atari/xfer
@@ -0,0 +1,64 @@
+Installation is supported from several media types, including:
+ TOS HD partitions
+ Tape
+
+No matter what you do, however, you'll need to have three disks handy,
+on which you will put the install and boot floppy images.
+
+All the images are available from the directory "atari/floppies",
+under the root of the NetBSD tree at your favorite archive site.
+
+If you are using NetBSD/atari to make the floppies, you should use
+the command dd(1) to write the raw floppy images (.fs files) to
+the disk. To write onto fd0 use:
+
+ dd if=inst-10.fs.1 of=/dev/rfd0b bs=9b
+
+If you are using TOS to make the floppies, grab the 'rawwrite' utility
+from the "atari/utils" directory and issue the command:
+ rawwrite boot-10.fs
+
+This will create the boot-floppy on the floppy in drive a. The floppies
+should be pre-formatted on 720Kb for both the 'dd' and 'rawwrite' commands
+to work. Pre-formatting can be best done using the desktop format command.
+Some other utilities seem to be giving problems.
+
+The steps necessary to prepare the distribution sets
+for installation depend on which method of installation
+you choose. The various methods are explained below.
+
+To prepare for installing via an GEMDOS partition:
+
+ To install NetBSD from an GEMDOS partition, you need to
+ get the NetBSD distribution sets you wish to install
+ on your system on to an GEMDOS partition. All of the
+ set_name.xx pieces can be placed in a single directory
+ instead of separate ones for each distribution set. This
+ will also simplify the installation work later on.
+
+ Note where you place the files you will need this later.
+
+ Once you have done this, you can proceed to the next
+ step in the installation process, preparing your hard disk.
+
+To prepare for installing via a tape:
+
+ To install NetBSD from a tape, you need to somehow
+ get the NetBSD filesets you wish to install on
+ your system on to the appropriate kind of tape,
+ in tar format.
+
+ If you're making the tape on a UN*X system, the easiest
+ way to do so is:
+
+ tar cvf <tape_device> <files>
+
+ where "<tape_device>" is the name of the tape device
+ that describes the tape drive you're using (possibly
+ something like /dev/nrst0, but we make no guarantees 8-).
+ If you can't figure it out, ask your system administrator.
+ "<files>" are the names of the "set_name.nnn" files
+ which you want to be placed on the tape.
+
+ Once you have done this, you can proceed to the next
+ step in the installation process, preparing your hard disk.
diff --git a/distrib/notes/donations b/distrib/notes/donations
new file mode 100644
index 00000000000..eb5d1b0235c
--- /dev/null
+++ b/distrib/notes/donations
@@ -0,0 +1,8 @@
+ Brian Carlstrom
+ Demon Internet, UK
+ Michael L. Hitch
+ Herb Peyerl
+ Mike Price
+ Thor Lancelot Simon
+ Bill Sommerfeld
+ Steve Wadlow
diff --git a/distrib/notes/hp300/contents b/distrib/notes/hp300/contents
new file mode 100644
index 00000000000..e49dfb06299
--- /dev/null
+++ b/distrib/notes/hp300/contents
@@ -0,0 +1,91 @@
+The hp300-specific portion of the NetBSD 1.0 release is found in the
+"hp300" subdirectory of the distribution. That subdirectory is layed
+out as follows:
+
+.../NetBSD-1.0/hp300/
+ binary/ hp300 binary distribution sets;
+ see below.
+
+ install/ installation utilities and
+ bootstrap root filesystem
+ image; see below.
+
+ security/ hp300 security distribution;
+ see below;
+
+The NetBSD/hp300 binary distribution sets contain the binaries which
+comprise the NetBSD 1.0 release for the hp300. There are seven binary
+distribution sets, and the "security" distribution set. The binary
+distribution sets can be found in the "hp300/binary" subdirectory of
+the NetBSD 1.0 distribution tree, and are as follows:
+
+ base10 The NetBSD/hp300 1.0 base binary distribution. You
+ MUST install this distribution set. It contains the
+ base NetBSD utilities that are necessary for the
+ system to run and be minimally functional. It
+ includes shared library support, and excludes
+ everything described below.
+ [ 6.1M gzipped, 16.3M uncompressed ]
+
+ comp10 The NetBSD/hp300 Compiler tools. All of the tools
+ relating to C, C++, and FORTRAN (yes, there are two!).
+ This set includes the system include files
+ (/usr/include), the linker, the compiler tool chain,
+ and the various system libraries (except the shared
+ libraries, which are included as part of the base
+ set). This set also includes the manual pages for all
+ of the utilities it contains, as well as the system
+ call and library manual pages.
+ [ 4.1M gzipped, 12.6M uncompressed ]
+
+ etc10 This distribution set contains the system
+ configuration files that reside in /etc and in several
+ other places. This set MUST be installed if you are
+ installing the system from scratch, but should NOT be
+ used if you are upgrading. (If you are upgrading,
+ it's recommended that you get a copy of this set and
+ CAREFULLY upgrade your configuration files by hand.)
+ [ 51K gzipped, 290K uncompressed ]
+
+ games10 This set includes the games and their manual pages.
+ [ 1.1M gzipped, 2.7M uncompressed ]
+
+ man10 This set includes all of the manual pages for the
+ binaries and other software contained in the base set.
+ Note that it does not include any of the manual pages
+ that are included in the other sets.
+ [ 752K gzipped, 2.9M uncompressed ]
+
+ misc10 This set includes the system dictionaries (which are
+ rather large), the typesettable document set, and
+ man pages for other architectures which happen to be
+ installed from the source tree by default.
+ [ 1.6M gzipped, 5.6M uncompressed ]
+
+ text10 This set includes NetBSD's text processing tools,
+ including groff, all related programs, and their
+ manual pages.
+ [ 782K gzipped, 2.8M uncompressed ]
+
+The hp300 security distribution set is named "secr10" and can be found
+in the "hp300/security" subdirectory of the NetBSD 1.0 distribution
+tree. It contains crypt.c (the source file for the DES encryption
+algorithm) and the binaries which depend on it. It can only be found
+on those sites which carry the complete NetBSD distribution and that
+can legally obtain it. (Remember, because of United States law, this
+distribution set may not be exported to locations outside of the
+United States and Canada.) [ 119K gzipped, 270K uncompressed ]
+
+The hp300 binary distribution sets are distributed as gzipped tar files.
+Each hp300 binary distribution set also has its own "CKSUMS" file, just
+as the source distribution sets do.
+
+The instructions given for extracting the source sets work equally
+well for the binary sets, but it is worth noting that if you use that
+method, the files are extracted "below" the current directory. That
+is, if you want to extract the binaries "into" your system, i.e.
+replace the system binaries with them, you have to run the "tar xvfp"
+from /. Also note that if you upgrade or install this way, those
+programs that you are using at the time will NOT be replaced. If you
+follow the normal installation or upgrade procedures, this will be
+taken care of for you.
diff --git a/distrib/notes/hp300/hardware b/distrib/notes/hp300/hardware
new file mode 100644
index 00000000000..48f2ef8085c
--- /dev/null
+++ b/distrib/notes/hp300/hardware
@@ -0,0 +1,66 @@
+NetBSD/hp300 1.0 will run on most HP 9000/300 series machines.
+The lowest amount of RAM that has been tested is 7.5M, though it
+may run with less. Certainly, if you wish to run X, more RAM is
+recommended. Until you reach 16M, more RAM is more important than
+a faster CPU.
+
+Here is a table of recommended HD partition sizes for a full install:
+ partition: advise needed
+ root (/) 15M 15M (see note below)
+ user (/usr) 80M 45M
+ swap ----- 2M for every 1M of RAM -----
+ local (/local) up to you
+
+NOTE: Because of the nature of the hp300 bootstrap procedure, the root
+filesystem is a _fixed_size_! You may want to consider placing /var and
+/tmp on their own partitions. This, of course is up to you and your
+judgement. Also, note that the recommended size of /usr is 15M greater
+than the needed size. This is to allow room for kernel source and
+compile areas, as you may want to compile your own kernel.
+
+The following HP hardware is supported:
+
+ CPUs:
+ 68020-based: 318, 319, 320, 330, and 350.
+ 68030-based: 340, 345, 360, 370, 375, and 400.
+ 68040-based: 380, 425, and 433.
+
+ Disks:
+ HP-IB/CS80: 7912, 7914, 7933, 7936, 7937, 7945, 7957,
+ 7958, 7959, 2200, and 2203.
+ SCSI-I, including magneto-optical and CD-ROM. SCSI-II
+ drives should work if they can talk SCSI-I.
+
+ Tape drives:
+ Low-density CS80 cartridge: 7914, 7946, 9144.
+ High-density CS80 cartridge: 9145.
+ SCSI: HP DAT and Exabyte.
+
+ RS232 interfaces:
+ 98644 built-in single port (dca).
+ 98642 4-port (dcm).
+ 98638 8-port (dcm).
+
+ Network interfaces:
+ 98643 built-in and add-on LAN cards.
+
+ Displays:
+ 98544, 98545, and 98547 color and monochrome Topcat.
+ 98548, 98549, and 98550 color and monochrome Catseye.
+ 98700 and 98710 Gatorbox.
+ 98720 and 98721 Renaissance.
+ 98730 and 98731 DaVinci.
+ A1096A monochrome Hyperion.
+
+ Input devices:
+ General interface supporting all HIL devices: keyboard,
+ 2 and 3 button mice, and ID module.
+
+ Miscellaneous:
+ Battery-backed real-time clock.
+ 98625A and 98625B built-in HP-IB interface.
+ 98658A built-in SCSI interface.
+ Printers and plotters on RS232 and HP-IB.
+ SCSI autochanger.
+
+If it's not on this list, there is no support for it in this release.
diff --git a/distrib/notes/hp300/install b/distrib/notes/hp300/install
new file mode 100644
index 00000000000..9f33d0bc7ae
--- /dev/null
+++ b/distrib/notes/hp300/install
@@ -0,0 +1,222 @@
+NOTE: In the following examples you will see references to
+disk devices. For those not familiar with NetBSD, the following
+prefixes are used to denote drive types:
+
+ sd SCSI disk
+ rd HP-IB disk
+
+In the examples that follow, `rd' will be used. The steps are
+exactly the same for `sd' disks. Only the names have changed
+to protect the innocent.
+
+Assuming you have read this document thoroughly and kept good notes
+about your partitions, the rest should be fairly straight forward.
+
+Before you begin, you must have already prepared the target disk
+as detailed in the section on preparing your system for install.
+
+The following is a walk-through of the steps necessary to finish
+what the preparation process has already begun. You may choose to
+stop the process at any time, but if you do, it's recommended that
+you start over from scratch.
+
+ First you need to boot off of the target disk which
+ you have made in the preparation process. To do this,
+ halt HP-UX, power-cycle your machine, and hit the space
+ bar during the boot ROM's probing/testing sequence.
+ You should eventually be presented with a list of systems
+ from which to boot. You want the one called `SYS_PBOOT'.
+
+ After selecting `SYS_PBOOT', your system should load the
+ NetBSD boot block and ask you for a kernel to load.
+ Enter the following to boot NetBSD into single-user mode.
+ (Note: it will come into single-user anyway, as there is
+ not yet an fstab, but this makes it happen more gracefully.)
+
+ netbsd -s
+
+ The kernel will now load, and configure your hardware.
+ Make a note of the device it lists when mounting the
+ root filesystem. It should look something like this:
+
+ Changing root device to rd0a
+
+ The message above is an example only. Your message may
+ be different.
+
+ Check the root filesystem. Use the raw flavor of the
+ device listed during the `Changing root device...'
+ message. Example:
+
+ fsck -p /dev/rrd0a
+
+ Mount the root filesystem:
+
+ mount /dev/rd0a /
+
+ It's now time to newfs all of the other partitions you
+ listed in your disk label. So, for example, if rd0e and
+ rd0f were to have filesystems put on them, you would
+ do the following:
+
+ newfs /dev/rrd0e
+ newfs /dev/rrd0f
+
+ Ensure that the mount-points for these filesystems are clean.
+ If these filesystems are to be /var and /usr, respectively,
+ just check that there are no files in those directories.
+ There shouldn't be. Once you've made sure, go ahead and
+ mount those filesystems.
+
+ It's now time to get the distribution sets onto the root
+ or other filesystem. There are several programs in /ibin
+ to help you with this. At your disposal, you have:
+
+ ftp
+ gzip
+ tar
+ extract
+
+ Except for extract, which is just a script to help the
+ process along, these are statically-linked versions of
+ themselves, which normally appear in /usr/bin.
+
+ If you placed the distribution sets on tape, go to the
+ directory where you wish to temporarily place them and
+ extract them from tape, using /dev/nrstX for SCSI tapes
+ or /dev/nrctX for HP-IB cartridge tapes, where X is the
+ unit number of the tape, probably 0.
+
+ tar xvf /dev/nrst0
+
+ If this extracts the sets directly into your current
+ directory, terrific. Otherwise, go to the directory in
+ which they live. Skip on to extracting the sets.
+
+ If you will be grabbing the sets off of the network somehow,
+ configure your network interface:
+
+ ifconfig le0 inet <ipaddr> <netmask> <broadcast>
+ route add default <addr-of-default-router>
+
+ If you will be ftp'ing the sets from one of the NetBSD ftp
+ sites, go to the directory where you wish to temporarily
+ place them and download them from the ftp site of your choice.
+ Since you haven't yet created a resolv.conf, you'll need to
+ use the IP address.
+
+ /ibin/ftp <ftp_ipaddr>
+
+ If you will be getting the sets from an NFS server, mount
+ the filesystem on the server which has the sets, and go
+ to the directory that has them. Again, you'll need to use
+ the IP address of the server.
+
+ mount -t nfs <serv_ipaddr>:<server_dir> <mount_point>
+
+ At this point, you have everything necessary to label any
+ additional disks that you wish to label. If you created
+ additional labels in the preparation phase, and have
+ access to them now, go ahead and label the disks they
+ correspond to:
+
+ disklabel -W rd1
+ disklabel -r -R rd1 rd1.label
+ where:
+ rd1 additional disk you wish to label
+ rd1.label file containing disk label information
+
+ You may check these labels once they are on the disk:
+
+ disklabel -r rd1
+ where:
+ rd1 additional disk you wish to label
+
+ A problem with a partition (such as overlaps or not falling
+ on a cylinder boundary) will be noted with a `*'. If you see
+ these, re-edit your label by the method of your choice (on
+ another machine, perhaps, or with ed(1), for the brave),
+ transfer it to a place that's usable (if necessary) and
+ label the disk again.
+
+ Once these disks have been labeled, you may newfs the
+ partitions that are to contain filesystems and mount them.
+
+ You should now be ready to extract the filesets. The program
+ /ibin/extract should help you with this. For example:
+
+ /ibin/extract base
+ -or- /ibin/extract base.tar.gz
+
+ Do this for all of the filesets you wish to extract. As your disk
+ fills up, you may wish to remove the sets once you have extracted
+ them.
+
+ You should have everything necessary to use an editor by now.
+ Set your TERM environment variable:
+
+ setenv TERM hp300h (csh)
+ -or- export TERM=hp300h (sh)
+
+ hp300h is the terminal type for the HP 9000/300 ITE console.
+ If you are using a serial console, change the TERM variable
+ appropriately. Now, initialize the terminal:
+
+ tset
+
+ You should be able to use vi now.
+
+ Create an /etc/fstab. Example fstabs are provided in
+ /etc/fstab.sd and /etc/fstab.rd.
+
+ Edit your host table, /etc/hosts. In it, place the IP
+ address of this host and the IP address of your default
+ router.
+
+ Edit the file /etc/myname. In it, place the symbolic name
+ of your machine.
+
+ Edit the file /etc/defaultdomain. In it, place the name
+ of your YP domain. If you will not be using YP, simply
+ enter the domain name of your site.
+
+ Edit the file /etc/mygate. In it, place the name of
+ your default router, as your listed it in /etc/hosts.
+
+ Edit the file /etc/hostname.le0. In it, place the following
+ information:
+
+ inet <myname.my.domain> <netmask> <broadcast>
+
+ where:
+ <myname.my.domain> is the name corresponsing to
+ the IP address for that interface, as you listed in
+ /etc/hosts.
+
+ <netmask> is the netmask for your network.
+
+ <broadcast> is the broadcast address for your network.
+
+ Repeat this step for any additional network interfaces you
+ may have.
+
+ Edit the file /etc/ttys. Make sure that the entries are
+ correct for whichever console type you have. /dev/console
+ is correct for ITE, /dev/tty0 for console on dca, and
+ /dev/tty00 for console on dcm. You may get more information
+ about /etc/ttys by doing `man ttys', providing you have
+ installed the system manual set.
+
+ Ok, cross your fingers and reboot:
+
+ sync; sync; sync; reboot
+
+ Providing you entered all information correctly, your
+ machine will boot into multi-user mode. Your system
+ will need a few tweaks here and there (like /etc/sendmail.cf
+ and /etc/netstart, perhaps), but that's the easy stuff.
+
+ CONGRATULATIONS! You have successfully installed NetBSD
+ onto your hp300! Pat yourself on the back. This might also
+ be a good time to remove /ibin, as you will no longer need
+ it, and it is provided solely for bootstrapping purposes.
diff --git a/distrib/notes/hp300/legal b/distrib/notes/hp300/legal
new file mode 100644
index 00000000000..9ee96f95125
--- /dev/null
+++ b/distrib/notes/hp300/legal
@@ -0,0 +1,3 @@
+ This product includes software developed by Adam Glass.
+
+ This product includes software developed by Jason R. Thorpe.
diff --git a/distrib/notes/hp300/prep b/distrib/notes/hp300/prep
new file mode 100644
index 00000000000..5da019a2a6a
--- /dev/null
+++ b/distrib/notes/hp300/prep
@@ -0,0 +1,125 @@
+NOTE: These instructions are explicitly for installing NetBSD
+from an HP-UX system, version 7 or later. It has not been
+tested with HP-UX versions earlier than 7, and has also not
+been tested with HP-UX 8, although it is presumed to work.
+For the creative, similar steps may be taken from a system such
+as Utah's 4.3BSD release for the hp300, although bootstrapping
+from such a system has not been tested.
+
+Bootstrapping the hp300 is a complicated process, but it's a lot
+easier than it used to be. For this process you need the
+following items from the install/ directory:
+
+ boot NetBSD/hp300 boot block for
+ HP-IB and SCSI disks
+
+ rootimage.gz bootstrap root filesystem
+ image
+
+ label prototype disk label
+
+ makedisk a program for HP-UX that will
+ write a NetBSD disk label,
+ boot block, and root filesystem
+ image to the target disk
+ (NOTE: This is an HP-UX 7.x binary.
+ while it will work under HP-UX 9.x,
+ you may want to compile this yourself.
+ The source may be found in makedisk.tar.gz)
+
+VERY IMPORTANT NOTE: This procedure will destroy all data on the
+target disk. Because NetBSD uses a different filesystem format than
+HP-UX, your old data will be useless. If you wish to save anything,
+use tar(1) instead of dump(1M), again because of filesystem differences.
+
+First of all, you must have a second disk on which to install NetBSD.
+If possible, this disk should first be prepared with mediainit(1M).
+Once this disk is spotless, you should generate a disk label for it.
+Using the prototype label provided, fill in all of the necessary
+information. Remember, if you derive geometry information from an
+HP-UX disktab, your partition size will be off. This is because HP-UX
+uses a 1024-byte sector size, while NetBSD uses a 512-byte sector size.
+To avoid the problem, you may simply double the number of cylinders.
+(That's what I do...works great. -- JRT)
+
+IMPORTANT: Partition 'a' must be offset one cylinder. Since
+partition information is expressed in sectors, the offset of
+partition 'a' must be the value of `sectors/cylinder'. This is
+to leave room for the boot block.
+
+When you create your disklabel, be sure to specify whether or not
+the disk is HP-IB or SCSI in the `type:' field.
+
+Below is an example of what a disk label should look like. This
+is an example only! Do not attempt this at home!
+
+
+
+# Sample disklabel for example only. This is a comment.
+type: HP-IB
+disk:
+label: INSTALL-1_0
+flags:
+bytes/sector: 512
+sectors/track: 36
+tracks/cylinder: 7
+sectors/cylinder: 252
+cylinders: 1013
+rpm: 3600
+interleave: 1
+trackskew: 0
+cylinderskew: 0
+headswitch: 0 # milliseconds
+track-to-track seek: 0 # milliseconds
+drivedata: 0
+
+7 partitions:
+# size offset fstype [fsize bsize cpg]
+ a: 30744 252 4.2BSD 1024 8192 16 # (Cyl. 1 - 122)
+ b: 32760 30996 swap # (Cyl. 123 - 252)
+ c: 255276 0 boot # (Cyl. 0 - 1012)
+ e: 20412 63756 4.2BSD 1024 4096 16 # (Cyl. 253 - 333)
+ f: 40824 84168 4.2BSD 1024 8192 16 # (Cyl. 334 - 495)
+ g: 130284 124992 4.2BSD 1024 8192 16 # (Cyl. 496 - 1012)
+
+NOTE: Due to the nature of the bootstrapping procedure, your 'a'
+partition must be at least 30744 sectors long. Increase the size of
+your 'a' partition just enough to make it end on a cylinder boundary.
+If you make it any larger, you will just be wasting space, as the
+filesystem ends after 30744 sectors.
+
+Remember to write down the names of the partitions and what you
+will be using them for (i.e. 'a - root, b - swap, e - /usr, etc.')
+as you will need this information later on in the installation
+process.
+
+Once you are satisfied with your disklabel, you can write the
+root filesystem image to the target disk. Use the `makedisk'
+program for this. So, under HP-UX, do:
+
+ ./makedisk /dev/rdsk/c7d0s0 mylabel boot rootimage.gz
+
+where:
+ /dev/rdsk/c7d0s0 raw flavor of target disk device
+
+ mylabel disk label you just wrote
+
+ boot supplied boot block
+
+ rootimage.gz gzipped root filesystem image
+ NOTE: This requires that gzip be
+ installed on your HP-UX system.
+ If it is not, a gzip binary is
+ provided in the install/ directory.
+ Source for gzip may be found in the
+ gsrc10 distribution set. Again, this
+ gzip is an HP-UX 7.x binary.
+
+If you wish to label any additional disks, you will have to do this
+from NetBSD, although you will not have an editor at your disposal.
+To do this, simply generate the labels now, and then grab them at
+the same time and by the same method you use to grab the distrubtion
+sets.
+
+Once this is done, you should be ready to boot NetBSD from the target
+disk.
diff --git a/distrib/notes/hp300/upgrade b/distrib/notes/hp300/upgrade
new file mode 100644
index 00000000000..25bcdb9f97c
--- /dev/null
+++ b/distrib/notes/hp300/upgrade
@@ -0,0 +1 @@
+There is no previous release of NetBSD/hp300 to upgrade.
diff --git a/distrib/notes/hp300/whatis b/distrib/notes/hp300/whatis
new file mode 100644
index 00000000000..7a1b6055ef7
--- /dev/null
+++ b/distrib/notes/hp300/whatis
@@ -0,0 +1,2 @@
+This is the first public release of NetBSD for the HP 9000/300 series of
+computers.
diff --git a/distrib/notes/hp300/xfer b/distrib/notes/hp300/xfer
new file mode 100644
index 00000000000..a912c45d826
--- /dev/null
+++ b/distrib/notes/hp300/xfer
@@ -0,0 +1,78 @@
+Installation is supported from several media types, including:
+ Tape
+ NFS partitions
+ FTP
+
+The steps necessary to prepare the distribution sets
+for installation depend on which method of installation
+you choose. The various methods are explained below.
+
+To prepare for installing via a tape:
+
+ To install NetBSD from a tape, you need to somehow
+ get the NetBSD filesets you wish to install on
+ your system on to the appropriate kind of tape,
+ in tar format.
+
+ If you're making the tape on a UN*X system, the easiest
+ way to do so is:
+
+ tar cvf <tape_device> <files>
+
+ where "<tape_device>" is the name of the tape device
+ that describes the tape drive you're using (possibly
+ something like /dev/nrst0, but we make no guarantees 8-).
+ Under HP-UX, this would be something like /dev/rmt/c0ed03inb.
+ Again, your mileage may vary. If you can't figure it out,
+ ask your system administrator. "<files>" are the names
+ of the "set_name.nnn" files which you want to be placed
+ on the tape.
+
+ Once you have done this, you can proceed to the next
+ step in the installation process, preparing your
+ system for NetBSD installation.
+
+To prepare for installing via an NFS partition:
+
+ NOTE: this method of installation is recommended
+ only for those already familiar with using
+ the BSD network-manipulation commands and
+ interfaces. If you aren't, this documentation
+ should help, but is not intended to be
+ all-encompassing.
+
+ Place the NetBSD software you wish to install into
+ a directory on an NFS server, and make that directory
+ mountable by the machine which you will be installing
+ NetBSD on. This will probably require modifying the
+ /etc/exports file of the NFS server and resetting
+ mountd, acts which will require superuser privileges.
+ Note the numeric IP address of the NFS server and of
+ the router closest to the the new NetBSD machine,
+ if the NFS server is not on a network which is
+ directly attached to the NetBSD machine.
+
+ Once you have done this, you can proceed to the next
+ step in the installation process, preparing your
+ system for NetBSD installation.
+
+To prepare for installing via FTP:
+
+ NOTE: this method of installation is recommended
+ only for those already familiar with using
+ the BSD network-manipulation commands and
+ interfaces. If you aren't, this documentation
+ should help, but is not intended to be
+ all-encompassing.
+
+ The preparations for this method of installation
+ are easy: all you have to do is make sure that
+ there's some FTP site from which you can retrieve
+ the NetBSD installation when it's time to do
+ the install. You should know the numeric IP
+ address of that site, the numeric IP address of
+ your nearest router if one is necessary
+
+ Once you have done this, you can proceed to the next
+ step in the installation process, preparing your
+ system for NetBSD installation.
diff --git a/distrib/notes/i386/contents b/distrib/notes/i386/contents
new file mode 100644
index 00000000000..b8abea2173e
--- /dev/null
+++ b/distrib/notes/i386/contents
@@ -0,0 +1,135 @@
+The i386-specific portion of the NetBSD 1.0 release is found in the
+"i386" subdirectory of the distribution. That subdirectory is laid
+out as follows:
+
+.../NetBSD-1.0/i386/
+ INSTALL Installation notes; this file.
+
+ binary/ i386 binary distribution sets;
+ see below.
+
+ floppies/ i386 boot and installation
+ floppies; see below.
+
+ security/ i386 security distribution;
+ see below;
+
+ utils/ Miscellaneous i386
+ installation utilities; see
+ installation section, below.
+
+There are four i386 floppy images to be found in the "i386/floppy"
+subdirectory of the NetBSD 1.0 distribution. Two of them are bootable
+kernel-copy floppies, one is an installation floppy, and one is an
+upgrade floppy. They are all described in more detail below. There
+are gzipped versions of each available, for easier downloading. (The
+gzipped versions have the ".gz" extension added to their names.)
+
+Bootable Kernel-copy floppies:
+
+ These disks contain file systems, are bootable, and have
+ enough utilities on board to copy a new kernel to your hard
+ disk once you have it partitioned for NetBSD. They make
+ upgrading to a new kernel easy, because all you have to do is
+ get a new kernel-copy floppy with a new kernel, boot from it,
+ and confirm that you want to have the kernel copied to your
+ disk.
+
+ There are two different kernel copy floppy images,
+ "kcaha-10.fs", and "kcbt-10.fs". They are identical except
+ that the first has the driver for the Adaptec 1542 SCSI host
+ adapter and does not contain the driver for the Buslogic 74x
+ SCSI host adapters, and vice-versa for the second. (All other
+ drivers are present on both disks.)
+
+Installation floppy:
+
+ This disk contains the software necessary to prepare your hard
+ drive for NetBSD and install the NetBSD distribution. It is
+ not bootable, and must be used in conjunction with one of the
+ kernel-copy floppies. This floppy is named "inst-10.fs".
+
+Upgrade floppy:
+
+ This disk contains the software to be used in upgrading the
+ system from a previous version of NetBSD. It is not bootable,
+ and must be used in conjunction with one of the kernel-copy
+ floppies. This floppy is named "upgr-10.fs"
+
+The NetBSD/i386 binary distribution sets contain the binaries which
+comprise the NetBSD 1.0 release for the i386. There are seven binary
+distribution sets, and the "security" distribution set. The binary
+distribution sets can be found in subdirectories of the "i386/binary"
+subdirectory of the NetBSD 1.0 distribution tree, and are as follows:
+
+ base10 The NetBSD/i386 1.0 base binary distribution. You
+ MUST install this distribution set. It contains the
+ base NetBSD utilities that are necessary for the
+ system to run and be minimally functional. It
+ includes shared library support, and excludes
+ everything described below.
+ [ 6.2M gzipped, 16.7M uncompressed ]
+
+ comp10 The NetBSD/i386 Compiler tools. All of the tools
+ relating to C, C++, and FORTRAN (yes, there are two!).
+ This set includes the system include files
+ (/usr/include), the linker, the compiler tool chain,
+ and the various system libraries (except the shared
+ libraries, which are included as part of the base
+ set). This set also includes the manual pages for all
+ of the utilities it contains, as well as the system
+ call and library manual pages.
+ [ 4.2M gzipped, 12.9M uncompressed ]
+
+ etc10 This distribution set contains the system
+ configuration files that reside in /etc and in several
+ other places. This set MUST be installed if you are
+ installing the system from scratch, but should NOT be
+ used if you are upgrading. (If you are upgrading,
+ it's recommended that you get a copy of this set and
+ CAREFULLY upgrade your configuration files by hand.)
+ [ 50K gzipped, 263K uncompressed ]
+
+ games10 This set includes the games and their manual pages.
+ [ 1.0M gzipped, 2.7M uncompressed ]
+
+ man10 This set includes all of the manual pages for the
+ binaries and other software contained in the base set.
+ Note that it does not include any of the manual pages
+ that are included in the other sets.
+ [ 0.7M gzipped, 2.8M uncompressed ]
+
+ misc10 This set includes the system dictionaries (which are
+ rather large), the typesettable document set, and
+ man pages for other architectures which happen to be
+ installed from the source tree by default.
+ [ 1.6M gzipped, 5.6M uncompressed ]
+
+ text10 This set includes NetBSD's text processing tools,
+ including groff, all related programs, and their
+ manual pages.
+ [ 0.8M gzipped, 2.8M uncompressed ]
+
+The i386 security distribution set is named "secr10" and can be found
+in the "i386/security" subdirectory of the NetBSD 1.0 distribution
+tree. It contains crypt.c (the source file for the DES encryption
+algorithm) and the binaries which depend on it. It can only be found
+on those sites which carry the complete NetBSD distribution and that
+can legally obtain it. (Remember, because of United States law, this
+distribution set may not be exported to locations outside of the
+United States and Canada.) [ 114K gzipped, 253K uncompressed ]
+
+The i386 binary distribution sets are distributed in the same form as
+the source distribution sets; catted together, the members of a set
+form a gzipped tar file. Each i386 binary distribution set also has
+its own "CKSUMS" file, just as the source distribution sets do.
+
+The instructions given for extracting the source sets work equally
+well for the binary sets, but it is worth noting that if you use that
+method, the files are extracted "below" the current directory. That
+is, if you want to extract the binaries "into" your system, i.e.
+replace the system binaries with them, you have to run the "tar xfp"
+from /. Also note that if you upgrade or install this way, those
+programs that you are using at the time will NOT be replaced. If you
+follow the normal installation or upgrade procedures, this will be
+taken care of for you.
diff --git a/distrib/notes/i386/hardware b/distrib/notes/i386/hardware
new file mode 100644
index 00000000000..3e4ffa70274
--- /dev/null
+++ b/distrib/notes/i386/hardware
@@ -0,0 +1,143 @@
+NetBSD/i386 1.0 runs on ISA (AT-Bus), EISA, PCI, and VL-bus systems
+with 386-family processors, with or without math coprocessors. It
+does NOT support MCA systems, such as some IBM PS/2 systems. The
+minimal configuration requires 4M of RAM and 40M of disk space. To
+install the entire system requires much more disk space, and to run X
+or compile the system, more RAM is recommended. (4M of RAM will
+actually allow you to run X and/or compile, but it won't be speedy.
+Note that until you have around 16M of RAM, getting more RAM is more
+important than getting a faster CPU.)
+
+Supported devices include:
+ Floppy controllers.
+ MFM, ESDI, IDE, and RLL hard disk controllers.
+ SCSI host adapters:
+ Adaptec AHA-154xA, -B, -C, and -CF [only on kcaha floppy]
+ Adaptec AHA-174x
+ Adaptec AIC-6260- and AIC-6360-based boards, including
+ the Adaptec AHA-152x and the SoundBlaster SCSI
+ host adapter. (Note that you cannot boot from
+ these boards if they do not have a boot ROM,
+ and many do not.)
+ Buslogic 54x [AHA-154x clones; only on kcaha floppy]
+ Buslogic 445, 74x, 9xx [only on kcbt floppy]
+ NCR 53C810 PCI SCSI host adapter
+ Ultrastor 14f, 34f, and (possibly) 24f
+ MDA, CGA, VGA, SVGA, and HGC Display Adapters. (Note that not
+ all of the display adapters NetBSD/i386 can work with
+ are supported by X. See the XFree86 FAQ for more
+ information.)
+ Serial ports:
+ 8250/16450-based ports
+ 16550-based ports
+ AST-style 4-port serial boards [*]
+ IBM PC-RT 4-port serial boards [*]
+ Parallel ports.
+ Ethernet controllers:
+ AT&T StarLAN 10, EN100, and StarLAN Fiber
+ 3COM 3c501 [*]
+ 3COM 3c503
+ 3COM 3c505 [*]
+ 3COM 3c507
+ 3COM 3c509 and 3c579
+ Digital DEPCA [*]
+ BICC Isolan [* and not recently tested]
+ SMC/WD 8003, 8013, and the SMC "Elite16" ISA boards
+ SMC/WD 8216 (the SMC "Elite16 Ultra" ISA boards)
+ Novell NE1000, NE2000
+ Novell NE2100 [* and not recently tested]
+ Tape drives:
+ Most SCSI tape drives
+ QIC-02 and QIC-36 format (Archive- and Wangtek-
+ compatible) tape drives [*]
+ CD-ROM drives:
+ Mitsumi CD-ROM drives [*]
+ Most SCSI CD-ROM drives
+ Mice:
+ "Logitech"-style bus mice [*]
+ "Microsoft"-style bus mice [*]
+ "PS/2"-style mice [*]
+ Serial mice (no kernel support necessary)
+ Miscellaneous:
+ SoundBlaster [*]
+
+Drivers for hardware marked with "[*]" are NOT included on the
+distribution floppies. Except as noted above, all other drivers are
+present on both kernel-copy disks. Also, at the present time, the
+distributed kernels support only one SCSI host adapter per machine.
+NetBSD normally allows more, though, so if you have more than one, you
+can use all of them by compiling a custom kernel once NetBSD is
+installed.
+
+Hardware the we do NOT currently support, but get many questions
+about:
+ Adaptec AIC-7770-based SCSI host adapters (including the
+ Adaptec AHA-274x, AHA-284x, and AHA-294x families).
+ Intel EtherExpress Ethernet boards.
+ NCR 5380-based SCSI host adapters.
+ PCMCIA devices.
+ QIC-40 and QIC-80 tape drives. (Those are the tape drives
+ that connect to the floppy disk controller.)
+ WD-7000 SCSI host adapters.
+
+We are planning future support for most of these devices.
+
+To be detected by the distributed kernels, the devices must
+be configured as follows:
+
+Device Name Port IRQ DRQ Misc
+------ ---- ---- --- --- ----
+Serial ports com0 0x3f8 4 [8250/16450/16550/clones]
+ com1 0x2f8 3 [8250/16450/16550/clones]
+ com2 0x3e8 5 [8250/16450/16550/clones]
+
+Parallel ports lpt0 0x378 7 [interrupt-driven or polling]
+ lpt1 0x278 [polling only]
+ lpt2 0x3bc [polling only]
+
+MFM/ESDI/IDE/RLL hard disk controller
+ wdc0 0x1f0 14 [supports two disks]
+
+Floppy controller
+ fdc0 0x3f0 6 2 [supports two disks]
+
+AHA-154x, AHA-174x (in compatibility mode), or BT-54x SCSI host adapters
+ aha0 0x330 any any [only on kcaha kernel floppy]
+
+AHA-174x SCSI host adapters (in enhanced mode)
+ ahb0 any any any
+
+BT445, BT74x, or BT9xx SCSI host adapters
+ bt0 0x330 any any [only on kcbt kernel floppy]
+
+Ultrastor 14f, 24f (if it works), or 34f SCSI host adapters
+ uha0 0x330 any any
+
+AHA-152x, AIC-6260- or AIC-6360-based SCSI host adapters
+ aic0 0x340 11 6
+
+NCR 53C810 PCI SCSI host adapter
+ ncr0 any any any
+
+SCSI disks sd0 first SCSI disk (by SCSI id)
+ sd1 second SCSI disk (by SCSI id)
+ sd2 third SCSI disk (by SCSI id)
+ sd3 fourth SCSI disk (by SCSI id)
+
+SCSI tapes st0 first SCSI tape (by SCSI id)
+ st1 second SCSI tape (by SCSI id)
+
+SCSI CD-ROMs cd0 first SCSI CD-ROM (by SCSI id)
+ cd1 second SCSI CD-ROM (by SCSI id)
+
+SMC/WD 8003, 8013, Elite16, and Elite16 Ultra Ethernet boards, 3c503,
+Novell NE1000, or NE2000 Ethernet boards
+ ed0 0x280 2 iomem 0xd0000
+ ed1 0x250 2 iomem 0xd8000
+ ed2 0x300 10 iomem 0xcc000
+
+3COM 3c509 or 3COM 3c579 Ethernet boards
+ ep0 any any
+
+AT&T StarLAN 10, EN100, or StarLAN Fiber, or 3COM 3c507 Ethernet boards
+ ie0 0x360 7 iomem 0xd0000
diff --git a/distrib/notes/i386/install b/distrib/notes/i386/install
new file mode 100644
index 00000000000..6a62923824f
--- /dev/null
+++ b/distrib/notes/i386/install
@@ -0,0 +1,459 @@
+Installing NetBSD is a relatively complex process, but if you have
+this document in hand and are careful to read and remember the
+information which is presented to you by the install program, it
+shouldn't be too much trouble.
+
+Before you begin, you should know the geometry of your hard disk, i.e.
+the sector size (note that sector sizes other than 512 bytes are not
+currently supported), the number of sectors per track, the number of
+tracks per cylinder (also known as the number of heads), and the
+number of cylinders on the disk. The NetBSD kernel will try to
+discover these parameters on its own, and if it can it will print them
+at boot time. If possible, you should use the parameters it prints.
+(You might not be able to because you're sharing your disk with
+another operating system, or because your disk is old enough that the
+kernel can't figure out its geometry.)
+
+If NetBSD will be sharing the disk with DOS or another operating
+system, you should have already completed the section of these notes
+that instructed you on how to prepare your hard disk. You should know
+the size of the NetBSD area of the disk and its offset from the
+beginning of the disk. You will need this information when setting up
+your NetBSD partitions.
+
+You should now be ready to install NetBSD. It might be handy for you
+to have a pencil, some paper, and a calculator handy.
+
+The following is a walk-through of the steps you will take while
+getting NetBSD installed on your hard disk. If any question has a
+default answer, it will be displayed in brackets ("[]") after the
+question. If you wish to stop the installation, you may hit Control-C
+at any time, but if you do, you'll have to begin the installation
+process again from scratch.
+
+ Boot your machine using of the appropriate kernel-copy floppy.
+ When presented with the boot prompt (the prompt begins with
+ "Boot" and ends with ":-"), hit return. If the boot prompt
+ does not appear in a reasonable amount of time, you either
+ have a bad boot floppy or a hardware problem. Try writing the
+ kernel-copy floppy image to a different disk, and using that.
+ If that doesn't work, try booting after disabling your CPU's
+ internal and external caches (if any). If it still doesn't
+ work, NetBSD probably can't be run on your hardware. This can
+ probably be considered a bug, so you might want to report it.
+ If you do, please include as many details about your system
+ configuration as you can.
+
+ It will take a while to load the kernel from the floppy,
+ probably around a minute or so. After its loaded, you will be
+ presented with the message:
+ "Insert file system floppy"
+ If you do not see that message after a reasonable time has
+ elapsed, or the spinning cursor has stopped and nothing
+ further has happened, either your boot floppy is bad or you
+ are having hardware problems, and should proceed as outlined
+ above.
+
+ Once you have reached that prompt, remove the kernel-copy
+ floppy from the floppy drive. Make sure that the installation
+ disk (the "inst-10" floppy) is writable, insert it into the
+ floppy drive, and hit any key.
+
+ You will then be presented with the NetBSD kernel boot
+ messages. You will want to read them, to determine your
+ disk's name and geometry. Its name will be something like
+ "sd0" or "wd0" and the geometry will be printed on a line that
+ begins with its name. As mentioned above, you will need your
+ disk's geometry when creating NetBSD's partitions. You will
+ also need to know the name, to tell the install tools what
+ disk to install on.
+
+ While booting, you will probably see several warnings. You
+ should be warned that no swap space is present, and that
+ init(8) cannot find /etc/rc. Do not be alarmed, these are
+ completely normal. When you reach the prompt asking you for a
+ shell name, just hit return.
+
+ You will be presented with a welcome message and a prompt,
+ asking if you wish to proceed with the installation process.
+ If you wish to proceed, enter "y" and hit return.
+
+ You will be asked what type of disk driver you have. The
+ valid options are listed by the install program, to make sure
+ you get it right. If you're installing on an ST-506 or ESDI
+ drive, you'll be asked if your disk supports automatic sector
+ forwarding. If you are SURE that it does, reply
+ affirmatively. Otherwise, the install program will
+ automatically reserve space for bad144 tables.
+
+ The install program will then tell you which disks of that
+ type it can install on, and ask you which it should use.
+ Reply with the name of your disk. (The first disk of the type
+ you selected, either "wd0" for ST-506/ESDI/IDE disks, or "sd0"
+ for SCSI disks, is the default.)
+
+ You will then be asked to name your disk's disklabel. The
+ default response is "mywd" or "mysd" depending on the type of
+ your disk, and for most purposes it will be OK. If you choose
+ to name it something different, make sure the name is a single
+ word and contains no special characters. You don't need to
+ remember this name.
+
+ You will be prompted for your disk's geometry information,
+ i.e. the number of bytes per sector, cylinders on the disk,
+ tracks per cylinder (heads), and sectors per track. Enter
+ them when they are requested. If you make a mistake, hit
+ Control-C and when you get to the shell prompt, restart the
+ install process by running the "install" command. Once you
+ have entered this data, the install program will tell you the
+ total size of your disk, in both sectors, and cylinders.
+ Remember this number; if you're installing on the whole disk,
+ you'll need it again soon.
+
+ When describing your partitions, you will have the option of
+ entering data about them in units of disk sectors or
+ cylinders. If you choose to enter the information in units of
+ sectors, remember that, for optimal performance, partitions
+ should begin and end on cylinder boundaries. You will be
+ asked about which units you wish to use, and you should reply
+ with "c" for cylinders, or "s" for sectors.
+
+ You will be asked for the size of the NetBSD portion of the
+ disk. If you're installing on the whole disk, reply with the
+ size of the disk, as printed earlier by the install program.
+ If you're using only part of the disk, reply with the size
+ that you specified in the partition editor. (Don't forget to
+ enter the size in the units you specified in the last step!)
+
+ If you are not installing on the whole disk, you will be asked
+ fro the offset of the NetBSD partition from the beginning of
+ the disk. Reply with the appropriate offset (again, in
+ whichever units you specified), as determined by how you
+ set up your disk using the partition editor.
+
+ You will be asked to enter the size of your NetBSD root
+ partition. It should be at least 13M, but if you are going to
+ be doing development, 14-16M is a more desirable size. This
+ size should be expressed in units of sectors or cylinders,
+ depending on which you said you wanted to use.
+
+ Next, you will be asked for the size of your swap partition.
+ You should probably allocate twice as much swap space as you
+ have real memory. Systems that will be heavily used should
+ have more swap space allocated, and systems that will be
+ lightly used can get by with less. If you want the system to
+ be able to save crash dumps when it panics, you will need at
+ least as much swap space as you have RAM. Again, this number
+ should be expressed in units of sectors or cylinders, as
+ appropriate.
+
+ The install program will then ask you for information about
+ the rest of the partitions you want on your disk. For most
+ purposes, you will want only one more partition, "/usr".
+ (Machines used as servers will probably also want /var as a
+ separate partition. That can be done with these installation
+ tools, but is not covered here.) The install program will
+ tell you how much space there is left to be allocated in the
+ NetBSD area of the disk, and, if you only want one more
+ partition ("/usr"), you should enter it at the prompt when the
+ installer asks you how large the next partition should be.
+ It will then ask you for the name of the mount point for that
+ partition. If you're doing a basic installation, that is
+ "/usr".
+
+ YOU ARE NOW AT THE POINT OF NO RETURN. Nothing has been
+ written to your disk yet, but if you confirm that you want to
+ install NetBSD, your hard drive will be modified, and its
+ contents may be scrambled at the whim of the install program.
+ This is especially likely if you have given the install
+ program incorrect information. If you are sure you want to
+ proceed, enter "yes" at the prompt.
+
+ The install program will now label your disk and make the file
+ systems you specified. The filesystems will be initialized to
+ contain NetBSD bootstrapping binaries and configuration files.
+ It will also create an /etc/fstab for your system, and mount
+ all of the file systems under /mnt. (In other words, your root
+ partition will be mounted on /mnt, your /usr partition on
+ /mnt/usr, and so on.) There should be no errors in this
+ section of the installation. If there are, restart from the
+ beginning of the installation process.
+
+ You will be placed at a shell prompt ("#"). The remaining
+ tasks are to copy the kernel from the kernel copy floppy to
+ the hard drive's root filesystem and install the distribution
+ sets. The flow of installation differs depending on your
+ hardware resources, and on what media the distribution sets
+ reside.
+
+ To install from floppy:
+ If you only have only one floppy drive, the order of
+ installation is different. Follow the directions in
+ the "Kernel installation" section which will help you
+ install a kernel on the hard drive and then boot off
+ the hard drive, then continue with the rest of the
+ process described here to install the distribution
+ sets from floppy:
+
+ The first thing you should do is pick a temporary
+ directory where the distribution files can be stored.
+ To do this, enter the command "Set_tmp_dir", and enter
+ the name of the temporary directory. (Don't forget
+ that if your disk is still mounted under /mnt; you
+ should probably pick a directory under /mnt/usr.)
+
+ After you have picked a temporary directory, enter the
+ "Load_fd" command, to load the distribution sets from
+ your floppies.
+
+ You will be asked which floppy drive to use. Enter
+ "0" (zero) if you're using the first floppy drive
+ (i.e. what DOS would call "A:"), or enter "1" if
+ you're using the second. (Remember that you CANNOT
+ use the floppy drive that you booted from. If you
+ booted from "A:", you must load from "B:".)
+
+ You will be prompted to insert a floppy into the drive,
+ to have its contents copied to your hard disk. Do so,
+ and hit return to begin copying. When that is done,
+ read the remainder of the floppies that contain the
+ distribution sets that you want to install, one by
+ one. When the last is read, and you are being
+ prompted for another, hit Control-C.
+
+ Run the "Extract" command once for each distribution
+ set you wish to install. For instance, if you wish to
+ install the "base10" distribution set, followed by the
+ "man10" distribution set, and finally the "etc10"
+ distribution set, use the commands:
+ Extract base10
+ Extract man10
+ Extract etc10
+
+ For each extraction, it will ask you if the extraction
+ should be verbose. If you reply affirmatively, it
+ will print out the name of each file that's being
+ extracted.
+
+ (Note: if you know that you will be running low on
+ disk space when installing NetBSD, you can load and
+ extract one distribution set at a time. To do this,
+ load only the floppies which contain the files for the
+ first distribution set, extract them, and then change
+ to the temporary directory and remove them with the
+ command "rm set_name.??".)
+
+ Once you are finished extracting all of the sets that
+ you wish to install, you should proceed to the
+ instructions below (after the last install medium
+ type-specific instructions), that explain how you
+ should configure your system.
+
+ To install from tape:
+ The first thing you should do is pick a temporary
+ directory where the distribution files can be stored.
+ To do this, enter the command "Set_tmp_dir", and enter
+ the name of the temporary directory. (Don't forget
+ that your disk is mounted under /mnt; you should
+ probably pick a directory under /mnt/usr.) The
+ default is /mnt/usr/distrib.
+
+ After you have picked a temporary directory, enter the
+ "Load_tape" command, to load the distribution sets from
+ tape.
+
+ You will be asked which tape drive to use. The
+ default is "rst0", which is correct if you're using
+ the SCSI tape drive with the lowest SCSI ID number.
+ (For the SCSI tape drive with the next lowest SCSI ID
+ number, you should use "rst1", and so on.)
+
+ You will be prompted to hit return when you have
+ inserted the tape into the tape drive. When you do,
+ the contents of the tape will be extracted into the
+ temporary directory, and the names of the files being
+ extracted will be printed.
+
+ After the tape has been extracted, to go the directory
+ containing the first distribution set you wish to
+ install. (Depending on how you made the tape, it's
+ probably a subdirectory of the temporary directory you
+ specified above.) Once there, run the "Set_tmp_dir"
+ command again, and accept its default answer by
+ hitting return at the prompt.
+
+ Use the "Extract" command to extract the distribution
+ set. For instance, if you're extracting the "base10"
+ set, use the command:
+ Extract base10
+ You will be asked if you wish the extraction to be
+ verbose. If you reply affirmatively, the name of each
+ file being extracted will be printed.
+
+ Repeat the previous two steps for each distribution
+ set you wish to install. Change to the set's
+ directory, run "Set_tmp_dir", and then run
+ "Extract <set_name>" to extract the set.
+
+ Once you are finished extracting all of the sets that
+ you wish to install, you should proceed to the
+ instructions below (after the last install medium
+ type-specific instructions), that explain how you
+ should configure your system.
+
+ To install via FTP or NFS:
+ The first thing you should do is pick a temporary
+ directory where the distribution files can be stored.
+ To do this, enter the command "Set_tmp_dir", and enter
+ the name of the temporary directory. (Don't forget
+ that your disk is mounted under /mnt; you should
+ probably pick a directory under /mnt/usr.) The
+ default is /mnt/usr/distrib.
+
+ Configure the appropriate ethernet interface (e.g.
+ ed0, ep0, etc.) up, with a command like:
+
+ ifconfig <ifname> <ipaddr> [netmask <netmask>]
+
+ where "<ifname>" is the interface name, like those
+ listed above, and "<ipaddr>" is the numeric IP address
+ of the interface. If the interface has a special
+ netmask, supply the word "netmask" at and that netmask
+ at the end of the command line. (The brackets
+ indicate that those arguments are optional.) For
+ instance, to configure interface ed0 with IP address
+ 129.133.10.10, use the command:
+
+ ifconfig ed0 129.133.10.10
+
+ and to configure interface ep0 with IP address
+ 128.32.240.167 and a special netmask, 0xffffff00, use
+ the command:
+
+ ifconfig ep0 128.32.240.167 netmask 0xffffff00
+
+ If your board selects software selection of the
+ ethernet interface to use, you might have to add
+ special flags to the "ifconfig" command you use.
+ Consult the table below for the appropriate flags:
+
+ Interface Type Connector Flags
+ --------- ---- --------- -----
+ ed with WD/SMC* BNC [none necessary]
+ ed with WD/SMC* UTP [none necessary]
+ ed with WD/SMC* AUI link0
+ ed with 3c503 BNC [none necessary]
+ ed with 3c503 AUI link0
+ ep BNC [none necessary]
+ ep AUI link0
+ ep UTP link0 link1
+
+ * Older WD boards do not support software configuration,
+ and must be configured via jumpers. These flags
+ will have no effect on them.
+
+ In other words, if, in the last example, the AUI port
+ of the board were being used, you would use the
+ command:
+
+ ifconfig ep0 128.32.240.167 netmask 0xffffff00 link0
+
+ If the NFS server or FTP server is not on a directly-
+ connected network, you need to set up a route to it
+ using a command like:
+
+ route add default <gate_ipaddr>
+
+ where <gate_ipaddr> is your gateway's numeric IP
+ address.
+
+ If you are NFS-mounting the distribution sets, mount
+ them on the temporary directory with a command like:
+
+ mount -t nfs <serv_ipaddr>:<dist_dir> <tmp_dir>
+
+ where <serv_ipaddr> is the server's numeric IP address,
+ <dist_dir> is the path to the distribution files on
+ the server, and <tmp_dir> is the name of the local
+ temporary directory.
+
+ Once this is done, proceed as if you had loaded the
+ files from tape, changing to the appropriate
+ directories, running "Set_tmp_dir", and running
+ "Extract" as appropriate.
+
+ If you are retrieving the distribution sets using ftp,
+ change into the temporary directory, and execute the
+ command:
+
+ ftp <serv_ipaddr>
+
+ where <serv_ipaddr> is once again the server's numeric
+ IP address. Get the files with FTP, taking care to
+ use binary mode when transferring the files.
+
+ Once you have all of the files for the distribution
+ sets that you wish to install, you can proceed using
+ the instructions above, as if you had installed from a
+ floppy. (Note that as with the floppy install, if
+ you're short on disk space, you can transfer only one
+ set at a time, extract it, then delete it, to save
+ space.)
+
+ Once you have finished extracting all of the distribution sets
+ that you wish to install, and are back at the "#" prompt, you
+ are ready to configure your system. The configuration utility
+ expects that you have installed the "base10" and "etc10"
+ distribution sets. If you have not, you will not be able to
+ run it successfully (nor will you have a functional system, in
+ any case). To configure your newly-installed NetBSD system,
+ run the command "Configure". It will ask you for the system's
+ host name, domain name, and other network configuration
+ information. It will set up your configuration files and make
+ the device nodes for the newly-installed system.
+
+Kernel Installation:
+
+ Enter "halt" at the prompt to halt the system. When the
+ system is halted, remove the "inst-10" floppy from the floppy
+ drive, and replace it with the NetBSD 1.0 kernel-copy floppy
+ that you previously booted from. Reboot with that floppy.
+ with that floppy.
+
+ Once again, you will be prompted to insert a file system
+ floppy. DO NOT replace the kernel-copy floppy, just hit any
+ key.
+
+ Again, While booting, you may see several warnings. You may
+ be warned that no swap space is present, that init(8) cannot
+ find /etc/rc, and that one or more databases with names like
+ "pwd.db" cannot be found. Do not be alarmed, as, again, these
+ are completely normal. Hit return at the prompt asking you
+ for a shell name.
+
+ You will be presented with a shell prompt, at which you should
+ enter the "copy_kernel" command. It will ask you what
+ partition to copy the kernel to, and you should reply with the
+ name of your root partition (e.g. sd0a or wd0a).
+
+ You will be asked if you are sure that you want to copy the
+ kernel. Reply affirmatively, and it will check the file
+ system on your root partition, mount it, and copy the kernel.
+ Once the kernel is copied, you should use "halt" to halt the
+ system.
+
+ Once the system is halted, remove the kernel-copy floppy from
+ the floppy disk drive, and hit any key to reboot.
+
+Congratulations, you have successfully installed NetBSD 1.0. When you
+reboot into NetBSD, you should log in as "root" at the login prompt.
+There is no initial password, but if you're using the machine in a
+networked environment, you should create yourself an account and
+protect it and the "root" account with good passwords.
+
+Some of the files in the NetBSD 1.0 distribution might need to be
+tailored for your site. In particular, the /etc/sendmail.cf file will
+almost definitely need to be adjusted, and other files in /etc will
+probably need to be modified, as well. If you are unfamiliar with
+UN*X-like system administration, it's recommended that you buy a book
+that discusses it.
diff --git a/distrib/notes/i386/legal b/distrib/notes/i386/legal
new file mode 100644
index 00000000000..323043159d4
--- /dev/null
+++ b/distrib/notes/i386/legal
@@ -0,0 +1,29 @@
+ This product includes software developed by Charles Hannum.
+
+ This product includes software developed by Charles Hannum, by
+ the University of Vermont and State Agricultural College and
+ Garrett A. Wollman, by William F. Jolitz, and by the
+ University of California, Berkeley, Lawrence Berkeley
+ Laboratory, and its contributors.
+
+ This product includes software developed by the University of
+ Vermont and State Agricultural College and Garrett A. Wollman.
+
+ This product includes software developed by Dean Huxley.
+
+ This product includes software developed by Herb Peyerl.
+
+In the following statement, "This software" refers to the Mitsumi
+CD-ROM driver:
+
+ This software was developed by Holger Veit and Brian Moore for
+ use with "386BSD" and similar operating systems. "Similar
+ operating systems" includes mainly non-profit oriented systems
+ for research and education, including but not restricted to
+ "NetBSD", "FreeBSD", "Mach" (by CMU).
+
+In the following statement, "This software" refers to the parallel
+port driver:
+
+ This software is a component of "386BSD" developed by
+ William F. Jolitz, TeleMuse.
diff --git a/distrib/notes/i386/prep b/distrib/notes/i386/prep
new file mode 100644
index 00000000000..d926ee2ce54
--- /dev/null
+++ b/distrib/notes/i386/prep
@@ -0,0 +1,40 @@
+NOTE: If you wish to install NetBSD on your whole disk, i.e. you do
+not want DOS or any other operating system to reside on your hard
+disk, you can skip this section and go on to the section that
+describes installation, below. If you're upgrading your system from a
+previous release of NetBSD, you shouldn't have proceeded directly to
+the section about upgrading; you need none of the information
+presented here.
+
+First and foremost, before beginning the installation process, MAKE
+SURE YOU HAVE A RELIABLE BACKUP of any data on your hard disk that you
+wish to keep. Repartitioning your hard disk is an excellent way to
+destroy important data.
+
+Second, if you are using a disk controller which supports disk
+geometry translation, be sure to use the same parameters for NetBSD as
+for DOS or the other operating systems installed on your disk. If you
+do not, it will be much harder to make NetBSD properly coexist with
+them.
+
+Third, use the DOS "fdisk" program or another partition editor to
+repartition your hard disk. Create a partition of at least 40M in
+size, and note its starting offset and its length (preferably in units
+of disk sectors or cylinders). You will need that information when
+installing NetBSD (and if the offset and length are not in those
+units, you will have to convert them). Once you have created the new
+NetBSD partition, mark it as having a partition type of 0xA5 (165, in
+decimal). If you used "fdisk" to partition your disk, you will
+probably have to use a different partition editor to mark the
+partition with the correct type.
+
+Finally, do whatever is necessary to restore order to the partition
+you took space away from. If it was a DOS partition, you probably
+will need to use "format" to create a new file system on it, and then
+restore your important files from your backups. Other operating
+systems will have different needs; most will need to reformat the
+partition, and if it was their "main" partition, will probably need
+to be reinstalled.
+
+Your hard disk is now prepared to have NetBSD installed on it, and
+you should proceed with the installation instructions.
diff --git a/distrib/notes/i386/upgrade b/distrib/notes/i386/upgrade
new file mode 100644
index 00000000000..719149c224a
--- /dev/null
+++ b/distrib/notes/i386/upgrade
@@ -0,0 +1,193 @@
+The upgrade to NetBSD 1.0 is a binary upgrade; it would be prohibitive
+to make users upgrade by compiling and installing the 1.0 sources, and
+it would be very difficult to even compile a set of instructions that
+allowed them to do so. Because of the various changes to the system,
+the largest being the 64-bit file size support and shared libraries,
+it is impractical to upgrade by recompiling from the sources and
+installing.
+
+To do the upgrade, you must have the appropriate kernel-copy floppy
+image on a disk, and the upgr-10.fs floppy image on another. You must
+also have at least the "base10" binary distribution set available,
+so that you can upgrade with it, using one of the upgrade methods
+described above. Finally, you must have sufficient disk space
+available to install the new binaries. Since the old binaries are
+being overwritten in place, you only need space for the new binaries,
+which weren't previously on the system. If you have a few megabytes
+free on each of your root and /usr partitions, you should have enough
+space.
+
+Since upgrading involves replacing the boot blocks on your NetBSD
+partition, the kernel, and most of the system binaries, it has the
+potential to cause data loss. You are strongly advised to BACK UP ANY
+IMPORTANT DATA ON YOUR DISK, whether on the NetBSD partition or on
+another operating system's partition, before beginning the upgrade
+process.
+
+To upgrade your system, follow the following instructions:
+
+ Boot your machine using of the appropriate kernel-copy floppy.
+ When presented with the boot prompt (the prompt begins with
+ "Boot" and ends with ":-"), hit return.
+
+ You will be prompted to insert a file system floppy. Remove
+ the kernel-copy floppy and insert the upgr-10 floppy, then hit
+ any key to continue booting.
+
+ While booting, you will probably see several warnings. You
+ should be warned that no swap space is present, and that
+ init(8) cannot find /etc/rc. Do not be alarmed, these are
+ completely normal. When you reach the prompt asking you for a
+ shell name, just hit return.
+
+ You will be presented with some information about the upgrade
+ process and a warning message, and will be asked if you wish
+ to proceed with the upgrade process. If you answer
+ negatively, the upgrade process will stop, and your disk will
+ not be modified. If you answer affirmatively, the upgrade
+ process will begin, and your disk will be modified. You may
+ hit Control-C to stop the upgrade process at any time.
+ However, if you hit it at an inopportune moment, your system
+ may be left in an inconsistent (and possibly unusable) state.
+
+ You will be asked if you wish to upgrade your file systems to
+ the new file system format. If you do, reply affirmatively.
+ If you don't have your file systems upgraded now, you should
+ probably do it manually after the install process is complete,
+ by using "fsck -c 2". Read the fsck(8) manual page for more
+ details.
+
+ The upgrade program will then check your root file system,
+ and, if you approved, will upgrade it to the new file system
+ format. It will then mount your root file system on /mnt.
+
+ If your file systems are being upgraded, the upgrade script
+ will copy the new fsck(8) program to your hard disk and
+ upgrade your remaining file systems.
+
+ The upgrade program will then automatically replace the boot
+ blocks on your disk with newer versions, and mount all of your
+ file systems under /mnt. (In other words, your root partition
+ will be mounted on /mnt, your /usr partition on /mnt/usr, etc.)
+
+ If you don't already have the NetBSD distribution sets on your
+ disk, look in the installation section for information on how
+ to transfer them to your disk.
+
+ If you have only one floppy drive, and don't have the disk
+ space to copy all of the distribution onto the hard drive, you
+ can do the following:
+
+ Install a kernel on the hard drive as detailed a few
+ paragraphs below, then boot off the hard drive. Now
+ you can copy and install distribution sets
+ incrementally from your lone floppy drive.
+
+ Once the distribution sets are transferred to your disk,
+ continue here. (Obviously, if the NetBSD distribution sets
+ are already on your disk, because you've transferred them
+ before starting the upgrade process, you don't need to
+ transfer them again now!)
+
+ After the software has been transferred to the machine (or
+ mounted, in the case of upgrading via NFS), change into the
+ directory containing the "base10" distribution set. Once you
+ are there, run the "Set_tmp_dir" command, and hit return at
+ the prompt to select the default answer for the temporary
+ directory's path name. (It should be the path name of the
+ directory that you're in.)
+
+ Run the command "Extract base10" to upgrade the base
+ distribution.
+
+ Repeat the above two steps for all of the sets you wish to
+ upgrade. (For each, change into the directory containing the
+ set, run "Set_tmp_dir" and accept the default path name, then
+ run the "Extract <setname>" command.)
+
+ If you were previously using the security distribution set,
+ you MUST upgrade to the new version, or you will not be able
+ to log in when the upgrade process is complete. Similarly, if
+ you were not previously using the security set, you must NOT
+ upgrade to the new version.
+
+ When you are done upgrading all of the distribution sets you
+ wish to upgrade, issue the command "Cleanup". It will clean
+ up the installation, by remaking some system databases. When
+ it is complete, you should use "halt" to halt the system.
+
+ When the system is halted, remove the "upgr-10" floppy from
+ the floppy drive, and replace it with the NetBSD 1.0
+ kernel-copy floppy that you previously booted from. Reboot
+ with that floppy.
+
+ Once again, you will be prompted to insert a file system
+ floppy. DO NOT replace the kernel-copy floppy, just hit any
+ key.
+
+ Again, While booting, you may see several warnings. You may
+ be warned that no swap space is present, that init(8) cannot
+ find /etc/rc, and that one or more databases with names like
+ "pwd.db" cannot be found. Do not be alarmed, as, again, these
+ are completely normal. Hit return at the prompt asking you
+ for a shell name.
+
+ You will be presented with a shell prompt, at which you should
+ enter the "copy_kernel" command. It will ask you what
+ partition to copy the kernel to, and you should reply with the
+ name of your root partition (e.g. sd0a or wd0a).
+
+ You will be asked if you are sure that you want to copy the
+ kernel. Reply affirmatively, and it will check the file
+ system on your root partition, mount it, and copy the kernel.
+ Once the kernel is copied, you should use "halt" to halt the
+ system.
+
+ Once the system is halted, remove the kernel-copy floppy from
+ the floppy disk drive, and hit any key to reboot.
+
+Your system has now been upgraded to NetBSD 1.0.
+
+After a new kernel has been copied to your hard disk, your
+ machine is a complete NetBSD 1.0 system. However, that
+ doesn't mean that you're finished with the upgrade process.
+ There are several things that you should do, or might have to
+ do, to insure that the system works properly.
+
+ First, if you did not upgrade your file systems to the new
+ file system format during the upgrade process, you may want to
+ do so now, with "fsck -c 2". If you are unsure about the
+ process, it's suggested that you read the fsck(8) manual page.
+
+ Second, you will probably want to get the etc10 distribution,
+ extract it, and compare its contents with those in your /etc/
+ directory. You will probably want to replace some of your
+ system configuration files, or incorporate some of the changes
+ in the new versions into yours.
+
+ Third, you will probably want to update the set of device
+ nodes you have in /dev. If you've changed the contents of
+ /dev by hand, you will need to be careful about this, but if
+ not, you can just cd into /dev, and run the command "sh
+ MAKEDEV all".
+
+ Fourth, you must deal with certain changes in the formats of
+ some of the configuration files. The most notable change is
+ that the "options" given to many of the file systems in
+ /etc/fstab or by hand have changed, and some of the file
+ systems have changed names. To find out what the new options
+ are, it's suggested that you read the manual page for the
+ file systems' mount commands, for example mount_nfs(8) for
+ NFS. (Note that the information for mounts of type "ufs",
+ i.e. Fast File Systems, are contained in the mount(8) man
+ page.)
+
+ Finally, you will want to delete old binaries that were part
+ of the version of NetBSD that you upgraded from and have since
+ been removed from the NetBSD distribution. You might also
+ want to recompile any locally-built binaries, to take
+ advantage of the shared libraries. (Note that any new
+ binaries that you build will be dynamically linked, and
+ therefore take advantage of the shared libraries, by default.
+ For information on how to make statically linked binaries,
+ see the cc(1) and ld(1) manual pages.)
diff --git a/distrib/notes/i386/whatis b/distrib/notes/i386/whatis
new file mode 100644
index 00000000000..d622f17d6a7
--- /dev/null
+++ b/distrib/notes/i386/whatis
@@ -0,0 +1,9 @@
+For the i386, NetBSD 1.0 brings greatly improved performance, stability,
+and device support. To complement the added device drivers, NetBSD
+1.0's i386 port has greatly improved device autoconfiguration,
+allowing it to correctly find more devices on more machines. The
+final, and perhaps most important point about NetBSD 1.0's i386
+support is that it is fully backward compatible with old NetBSD
+binaries, so you don't need to recompile all your local programs.
+(Note, however, that because of the shared library support, you still
+have a lot to gain by doing so.)
diff --git a/distrib/notes/i386/xfer b/distrib/notes/i386/xfer
new file mode 100644
index 00000000000..41cfdeccfe1
--- /dev/null
+++ b/distrib/notes/i386/xfer
@@ -0,0 +1,185 @@
+Installation is supported from several media types, including:
+
+ DOS floppies
+ Tape
+ Remote NFS partition
+ FTP
+
+No matter which installation medium you choose, you'll need to have
+two floppy disks available (either 1.2M or 1.44 will work, though
+both should be the same type). On the first, you'll put the
+kernel-copy image that's appropriate for your system. On the second,
+you'll put the install or upgrade floppy image, depending on whether
+you're installing NetBSD for the first time, or upgrading a previous
+installation.
+
+If you are using an Adaptec AHA-154x or Buslogic BT-54x SCSI host
+adapter, you need the kcaha-10.fs kernel-copy image. If you're using
+a Buslogic BT-445, BT-74x, or BT-9xx SCSI host adapter, you'll need
+the kcbt-10.fs image. If you're using a disk controller other than
+those mentioned above, either kernel-copy disk image will work for
+you.
+
+If you are using a UN*X-like system to write the floppy images to
+disks, you should use the "dd" command to copy the file system images
+(.fs files) directly to the raw floppy disks. It is suggested that
+you read the dd(1) manual page or ask your system administrator to
+determine the correct set of arguments to use; it will be slightly
+different from system to system, and a comprehensive list of the
+possibilities is beyond the scope of this document.
+
+If you are using DOS to write the floppy images to disks, you should
+use the "rawrite" utility, provided in the "i386/utilities" directory
+of the NetBSD distribution. It will write the file system images (.fs
+files) to disks.
+
+Note that, when installing, the kernel-copy floppy can be write-protected
+(i.e. read-only), but the install floppy MUST not be write-protected.
+The install program needs to write some temporary files, and if the
+disk is write-protected, it can't. If you're upgrading your system,
+both the kernel-copy and upgrade floppies may be write-protected.
+
+Obviously, the steps necessary to prepare the distribution sets for
+installation or upgrade depend on which installation medium you
+choose. The steps for the various media are outlined below.
+
+To install or upgrade NetBSD using DOS floppies, you need to do the
+following:
+
+ Count the number of "set_name.xx" files that make up the
+ distribution sets you want to install or upgrade. You will
+ need one fifth that number of 1.2M floppies, or one sixth that
+ number of 1.44M floppies. You should only use one size of
+ floppy for the install or upgrade procedure; you can't use
+ some 1.2M floppies and some 1.44M floppies.
+
+ Format all of the floppies with DOS. DO NOT make any of them
+ bootable DOS floppies, i.e. don't use "format/s" to format
+ them. (If the floppies are bootable, then the DOS system
+ files that make them bootable will take up some space, and you
+ won't be able to fit as many distribution set parts per disk.)
+ If you're using floppies that are formatted for DOS by their
+ manufacturers, they probably aren't bootable, and you can use
+ them out of the box.
+
+ Place all of the "set_name.xx" files on the DOS disks, five
+ per disk if you're using 1.2M disks, six per disk if you're
+ using 1.44M disks. How you do this is up to you; there are
+ many possibilities. You could, for instance, use a DOS
+ terminal program to download them on to the floppies, or use
+ a UN*X-like system capable of reading and writing DOS file
+ systems (either with "mtools" or a real DOS file system)
+ to place them on the disk.
+
+ Once you have the files on DOS disks, you can proceed to the
+ next step in the installation or upgrade process. If you're
+ installing NetBSD from scratch, go to the section on preparing
+ your hard disk, below. If you're upgrading an existing
+ installation, go directly to the section on upgrading.
+
+To install or upgrade NetBSD using a tape, you need to do the
+following:
+
+ To install NetBSD from a tape, you need to make a tape that
+ contains the distribution set files, in "tar" format. If
+ you're making the tape on a UN*X-like system, the easiest way
+ to do so is probably something like:
+
+ tar cf <tape_device> <dist_directories>
+
+ where "<tape_device>" is the name of the tape device that
+ describes the tape drive you're using (possibly /dev/rst0, or
+ something similar, but it will vary from system to system.
+ (If you can't figure it out, ask your system administrator.)
+ In the above example, "<dist_directories>" are the
+ distribution sets' directories, for the distribution sets you
+ wish to place on the tape. For instance, to put the "base10"
+ and "etc10" distributions on tape (in order to do the absolute
+ minimum installation to a new disk), you would do the
+ following:
+
+ cd .../NetBSD-1.0 # the top of the tree
+ cd i386/binary
+ tar cf <tape_device> base10 etc10
+
+ (Note that you still need to fill in "<tape_device>" in the
+ example.)
+
+ Once you have the files on the tape, you can proceed to the
+ next step in the installation or upgrade process. If you're
+ installing NetBSD from scratch, go to the section on preparing
+ your hard disk, below. If you're upgrading an existing
+ installation, go directly to the section on upgrading.
+
+To install or upgrade NetBSD using a remote partition, mounted via
+NFS, you must do the following:
+
+ NOTE: This method of installation is recommended only for
+ those already familiar with using BSD network
+ configuration and management commands. If you aren't,
+ this documentation should help, but is not intended to
+ be all-encompassing.
+
+ Place the NetBSD distribution sets you wish to install into a
+ directory on an NFS server, and make that directory mountable
+ by the machine on which you are installing or upgrading NetBSD.
+ This will probably require modifying the /etc/exports file on
+ of the NFS server and resetting its mount daemon (mountd).
+ (Both of these actions will probably require superuser
+ privileges on the server.)
+
+ You need to know the the numeric IP address of the NFS server,
+ and, if the server is not on a network directly connected to
+ the machine on which you're installing or upgrading NetBSD,
+ you need to know the numeric IP address of the router closest
+ to the NetBSD machine. Finally, you need to know the numeric
+ IP address of the NetBSD machine itself.
+
+ Once the NFS server is set up properly and you have the
+ information mentioned above, you can proceed to the next step
+ in the installation or upgrade process. If you're installing
+ NetBSD from scratch, go to the section on preparing your hard
+ disk, below. If you're upgrading an existing installation, go
+ directly to the section on upgrading.
+
+To install or upgrade NetBSD by using FTP to get the installation
+sets, you must do the following:
+
+ NOTE: This method of installation is recommended only for
+ those already familiar with using BSD network
+ configuration and management commands. If you aren't,
+ this documentation should help, but is not intended to
+ be all-encompassing.
+
+ The preparations for this installation/upgrade method are
+ easy; all you make sure that there's some FTP site from which
+ you can retrieve the NetBSD distribution when you're about to
+ install or upgrade. You need to know the numeric IP address
+ of that site, and, if it's not on a network directly connected
+ to the machine on which you're installing or upgrading NetBSD,
+ you need to know the numeric IP address of the router closest
+ to the NetBSD machine. Finally, you need to know the numeric
+ IP address of the NetBSD machine itself.
+
+ Once you have this information, you can proceed to the next
+ step in the installation or upgrade process. If you're
+ installing NetBSD from scratch, go to the section on
+ preparing your hard disk, below. If you're upgrading an
+ existing installation, go directly to the section on
+ upgrading.
+
+If you are upgrading NetBSD, you also have the option of installing
+NetBSD by putting the new distribution sets somewhere in your existing
+file system, and using them from there. To do that, you must do the
+following:
+
+ Place the distribution sets you wish to upgrade somewhere in
+ your current file system tree. At a bare minimum, you must
+ upgrade the "base" binary distribution, and so must put the
+ "base10" set somewhere in your file system. If you wish,
+ you can do the other sets, as well, but you should NOT upgrade
+ the "etc" distribution; the "etc" distribution contains system
+ configuration files that you should review and update by hand.
+
+ Once you have done this, you can proceed to the next step in
+ the upgrade process, actually upgrading your system.
diff --git a/distrib/notes/legal.common b/distrib/notes/legal.common
new file mode 100644
index 00000000000..1a8343e8960
--- /dev/null
+++ b/distrib/notes/legal.common
@@ -0,0 +1,7 @@
+ This product includes software developed by the University of
+ California, Berkeley and its contributors.
+
+ This product includes software developed by the Computer
+ Systems Engineering Group at Lawrence Berkeley Laboratory.
+
+ This product includes software developed by Paul Kranenburg.
diff --git a/distrib/notes/mac68k/contents b/distrib/notes/mac68k/contents
new file mode 100644
index 00000000000..da024f11c28
--- /dev/null
+++ b/distrib/notes/mac68k/contents
@@ -0,0 +1,94 @@
+The mac68k-specific portion of the NetBSD 1.0 release is found in the
+"mac68k" subdirectory of the distribution. That subdirectory is laid
+out as follows:
+
+.../NetBSD-1.0/mac68k/
+ binary/ mac68k binary distribution sets;
+ see below.
+
+ security/ mac68k security distribution;
+ see below.
+
+ utils/ The mac68k installation utilities.
+
+The NetBSD/mac68k binary distribution sets contain the binaries which
+comprise the NetBSD 1.0 release for the mac68k. There are eight binary
+distribution sets, and the "security" distribution set. The binary
+distribution sets can be found in subdirectories of the "mac68k/binary"
+subdirectory of the NetBSD 1.0 distribution tree, and are as follows:
+
+ netbsd10 The NetBSD/mac68k 1.0 kernel binary. You MUST
+ install this file. It is the kernel that you need
+ to boot the system.
+ [ 307K gzipped, 610K uncompressed ]
+
+ base10 The NetBSD/mac68k 1.0 base binary distribution. You
+ MUST install this distribution set. It contains the
+ base NetBSD utilities that are necessary for the
+ system to run and be minimally functional. It
+ includes shared library support, and excludes
+ everything described below.
+ [ 6.2M gzipped, 18.4M uncompressed ]
+
+ comp10 The NetBSD/mac68k Compiler tools. All of the tools
+ relating to C, C++, and FORTRAN (yes, there are two!).
+ This set includes the system include files
+ (/usr/include), the linker, the compiler tool chain,
+ and the various system libraries (except the shared
+ libraries, which are included as part of the base
+ set). This set also includes the manual pages for all
+ of the utilities it contains, as well as the system
+ call and library manual pages.
+ [ 4.0M gzipped, 12.7M uncompressed ]
+
+ etc10 This distribution set contains the system
+ configuration files that reside in /etc and in several
+ other places. This set MUST be installed if you are
+ installing the system from scratch, but should NOT be
+ used if you are upgrading. (If you are upgrading,
+ it's recommended that you get a copy of this set and
+ CAREFULLY upgrade your configuration files by hand.)
+ [ 50K gzipped, 280K uncompressed ]
+
+ games10 This set includes the games and their manual pages.
+ [ 1.0M gzipped, 3.0M uncompressed ]
+
+ man10 This set includes all of the manual pages for the
+ binaries and other software contained in the base set.
+ Note that it does not include any of the manual pages
+ that are included in the other sets.
+ [ 0.7M gzipped, 2.8M uncompressed ]
+
+ misc10 This set includes the system dictionaries (which are
+ rather large), the typesettable document set, and
+ man pages for other architectures which happen to be
+ installed from the source tree by default.
+ [ 1.6M gzipped, 5.7M uncompressed ]
+
+ text10 This set includes NetBSD's text processing tools,
+ including groff, all related programs, and their
+ manual pages.
+ [ 0.8M gzipped, 2.9M uncompressed ]
+
+The mac68k security distribution set is named "secr10" and can be found
+in the "mac68k/security" subdirectory of the NetBSD 1.0 distribution
+tree. It contains the crypt libraries (for the DES encryption algorithm)
+and the binaries which depend on it. It can only be found on those sites
+which carry the complete NetBSD distribution and that can legally obtain
+it. (Remember, because of United States law, this distribution set may
+not be exported to locations outside of the United States and Canada.)
+[ 109K gzipped, 260K uncompressed ]
+
+The mac68k binary distribution sets are distributed in the same form as
+the source distribution sets; catted together, the members of a set
+form a gzipped tar file.
+
+The instructions given for extracting the source sets work equally
+well for the binary sets, but it is worth noting that if you use that
+method, the files are extracted "below" the current directory. That
+is, if you want to extract the binaries "into" your system, i.e.
+replace the system binaries with them, you have to run the "tar xfp"
+from /. Also note that if you upgrade or install this way, those
+programs that you are using at the time will NOT be replaced. If you
+follow the normal installation or upgrade procedures, this will be
+taken care of for you.
diff --git a/distrib/notes/mac68k/hardware b/distrib/notes/mac68k/hardware
new file mode 100644
index 00000000000..c0d053e0c46
--- /dev/null
+++ b/distrib/notes/mac68k/hardware
@@ -0,0 +1,37 @@
+NetBSD/mac68k 1.0 runs on several of the older Macintosh computers.
+4MB of RAM should be sufficient to boot and the system can probably
+be squeezed onto a 40MB hard disk by leaving off a package or two.
+To actually do much compiling or anything more interesting than
+booting, at least 8MB of RAM and more disk space is recommended.
+About 50MB will be necessary to install all of the NetBSD 1.0 binary
+distribution (note that this does not count swap space!). Much more
+disk space is required to install the source and objects as well (about
+another 105MB).
+
+Supported models:
+ Mac II
+ Mac IIx
+ Mac IIcx
+ Mac IIci
+ Mac SE/30
+
+Supported devices on all of the above systems include:
+ Internal SCSI bus and most SCSI tapes, hard drives, and CD-ROMs
+ Internal sound--enough to beep, anyway
+ Most basic NuBUS video cards (there have been some
+ problems with some 24-bit color cards)
+ Both internal serial ports
+ ADB keyboards and mice
+
+Some systems will boot and are usable from an external terminal
+(serial tty or SL/IP):
+ Mac IIsi
+ Mac IIvx
+ possibly others
+
+What isn't supported, but often asked about:
+ Ethernet cards. There is a driver that is very close to working
+ for a number of cards. Contributions are very welcome.
+ 68040-based Macs. Work is in progress on getting a Quadra 700
+ running. This requires a new scsi driver and a new
+ ethernet driver.
diff --git a/distrib/notes/mac68k/install b/distrib/notes/mac68k/install
new file mode 100644
index 00000000000..f95f7a2b3c6
--- /dev/null
+++ b/distrib/notes/mac68k/install
@@ -0,0 +1,119 @@
+The installation can be broken down into three basic steps:
+ * Run Mkfs to build a filesystem or filesystems.
+ * Run Install Utility to load the files onto your filesystems.
+ * Run the booter to boot the system.
+
+**** Preparing the filesystem(s)
+
+Double-click on the Mkfs application icon to start it up. It will ask
+you for the SCSI ID of the drive that you are installing upon. Once
+this is selected, it will present a list of the partitions on that disk.
+Select the partition on which you wish to build a filesystem and click
+on the "Format" button. You will now be asked for a bunch of parameters
+for the hard drive and the filesystem. Usually, you can just take the
+defaults. If you are installing onto a Syquest, please see the FAQ.
+Note that although this dialog only has the "OK" button, you are not
+committed, yet. Once you get the values you want, press the "OK" button.
+A dialog will be presented at this point with two options: "Format" and
+"Cancel." If you choose "Cancel," nothing will be written to your drive.
+If you choose "Format," the program will proceed to make a filesystem.
+
+Mkfs is not a well-behaved Macintosh application. It will not allow
+any other tasks to run while it does (cooperative multitasking at its
+best). When it's finished, the program will put up a dialog to ask if
+you have scanned the output for any error messages. Usually there won't
+have been any errors, but do scan the output to make sure. Simply click
+on the "I Read It" button and the program will quit.
+
+Repeat as necessary for any extra partitions that you wish to make
+filesystems on. Note that you do _not_ need a filesystem on your swap
+partition.
+
+**** Installing the files
+
+Double-click on the Install Utility icon to start it up. The installer
+will present the same SCSI ID menu that mkfs did. Select the same SCSI
+ID that you did for mkfs--i.e., the one you are installing onto.
+
+If you are installing onto a single root partition, proceed to the
+"Installation of base files" section, below.
+
+ If you have not created filesystems for the root, usr, and
+ any other filesystems, go back to "Preparing the filesystem(s),"
+ above.
+
+ When you started the installer, it mounted your root partition.
+ Just before it printed, "Mounting partition 'A' as /," it printed
+ lines like:
+ sd1 at scsi ID 5.
+ This means that the device for scsi ID 5 is sd1. The partitions
+ are signified by a trailing letter. For instance, sd1a would be
+ the root partition of the second scsi disk in the chain, and sd0g
+ would be the first usr partition on the first scsi disk.
+
+ You will need to know the proper device to mount the remaining
+ partition(s) by hand:
+
+ * Select "Build Devices" from the "File" menu.
+
+ * Select "Mini Shell" from the "File" menu.
+
+ * Mount the filesystems you wish with the command:
+ mount device path
+ For example, if you wish to mount a usr partition from
+ the first scsi disk, sd0, on /usr, you would type:
+ mount /dev/sd0g /usr
+
+ * Type "quit" after you have mounted all the filesystems.
+
+Installation of base files:
+
+ Select the "Install" menu item from the "File" menu and install
+ base10, netbsd, and any other packages you wish to install at
+ this time (see the contents section for information about what's
+ in each package). The installer will print out the filename of
+ each file as it is installed, and will take quite some time to
+ install everything.
+
+ As is the case with Mkfs, this is not a particularly well-behaved
+ Macintosh application and the machine will be completely tied up
+ while the installation takes place.
+
+ At some point after installing the base package, select the "Build
+ Devices" option from the "File" menu. This will create a bunch of
+ device nodes for you and will create your initial /etc/fstab. The
+ installer program also has an option to give you a mini-shell. Do
+ not use this unless you know what you are doing.
+
+**** Booting the system
+
+Double-click on the MacBSD Booter icon to start the application. Check
+that the options in the Booting dialog look sane--especially the SCSI ID.
+If not, correct them to your preference. When you are satisfied with
+your choices, try booting NetBSD.
+
+If you wish to save your preferences, choose the "Save Preferences"
+option in the "File" menu, then quit the application and restart. Due
+to a long-standing bug, the preferences will not be saved unless you
+quit.
+
+If the system does not come up:
+ * Check the "diagnostic gray bars" check-box.
+ * Count the number of "gray bars" you see.
+ * Send mail to alice@cray-ymp.acm.stuorg.vt.edu describing
+ your software, your hardware, and the number of bars that
+ you saw.
+
+If the system does come up, congratulations, you have successfully
+installed NetBSD 1.0. When you reboot into NetBSD, you should log
+in as "root" at the login prompt. There is no initial password, but
+if you're using the machine in a networked environment, you should
+create yourself an account and protect it and the "root" account with
+good passwords.
+
+Some of the files in the NetBSD 1.0 distribution might need to be
+tailored for your site. In particular, the /etc/sendmail.cf file will
+almost definitely need to be adjusted, and other files in /etc will
+probably need to be modified, as well. If you are unfamiliar with
+UN*X-like system administration, it's recommended that you buy a book
+that discusses it.
diff --git a/distrib/notes/mac68k/legal b/distrib/notes/mac68k/legal
new file mode 100644
index 00000000000..38de539c961
--- /dev/null
+++ b/distrib/notes/mac68k/legal
@@ -0,0 +1,33 @@
+ This product includes software developed by the Alice Group.
+
+ This product includes software developed by Christopher G. Demetriou.
+
+ This product includes software developed by Christian E. Hopps.
+
+
+Contributions:
+-------------
+
+The following people have made contributions of various sorts
+specificially for the Macintosh port (in alphabetical order):
+
+ All of the users who have supplied us with good bug reports and
+ moral support.
+ Scott Kaplan for lending his IIci and Kensington Turbo Mouse for
+ IIci/IIsi banked memory and internal video as well as
+ non-Apple ADB devices.
+ Markus Krummenacker for monetary donations.
+ Glan Lalonde for an invaluable IIci page table dump.
+ Brad Parker for serial and ethernet drivers/improvements.
+ Scott Redman for lending Brad Grantham a PowerBook 160.
+ Craig Ruff for assembling an '030 "pmove ttx" instruction.
+ Larry Samuels for monetary donations.
+ Peter Siebold for lending his IIvx in support of ADB and IIvx
+ internal video.
+ Schuyler Stultz for the loan of his Macintosh II when we
+ desperately needed another machine on which to compile
+ and test during the '93 Xmas vacation.
+ Tenon Intersystems for monetary donations, MachTen, and Brad's
+ access to several machines and documentation after hours.
+ Virginia Tech English Department for loan of a IIci w/ NuBus
+ video and 32MB of RAM--the first IIci to run NetBSD/Mac68k.
diff --git a/distrib/notes/mac68k/prep b/distrib/notes/mac68k/prep
new file mode 100644
index 00000000000..8f6a5552df9
--- /dev/null
+++ b/distrib/notes/mac68k/prep
@@ -0,0 +1,33 @@
+Find your favorite disk partitioning utility. Some
+of the ones that have been tried and seem to work are:
+ SCSI Directory Lite
+ Disk Manager Mac from OnTrack
+ HD SC Setup from Apple
+ I/O Formatter from Diversified (?)
+ Silverlining from LaCie
+ APS Disk Tools
+
+The last can be found on any A/UX ftp site--for example:
+jagubox.gsfc.nasa.gov:/pub/mac/APS273.sit.hqx, or
+dunkin.princeton.edu:/pub/jagubox/mac/APS273.sit.hqx.
+
+** First, be sure you have a reliable backup of any data
+** which you may want to keep. Repartitioning your hard
+** drive is an excellent way to destroy important data.
+
+Second, use your favorite partitioning utility to make
+at least an A/UX "Root & Usr" partition and an A/UX "Swap"
+partition. The "Root & Usr" partition should be _at least_
+50MB in size if you wish to install everything. Generally,
+you should allocate twice as much swap space as you have real
+memory (so, if you have 8MB of RAM, specify 16MB of swap space).
+Systems that will be heavily used or that are low on real
+memory should have more swap space allocated. Systems that
+will be only lightly used can get away with less.
+
+If you like, you can also create a smaller root partition
+and a larger /usr. If you plan to use this machine as a
+server, you may also want a separate /var. Create these
+partitions as the BSD "usr" or "User slice X" type.
+
+You are now set to install NetBSD on your hard drive.
diff --git a/distrib/notes/mac68k/upgrade b/distrib/notes/mac68k/upgrade
new file mode 100644
index 00000000000..444bc128b3a
--- /dev/null
+++ b/distrib/notes/mac68k/upgrade
@@ -0,0 +1,4 @@
+There is no upgrade to release 1.0 for the NetBSD/mac68k architecture.
+This is impractical as there is no good, standard point to provide an
+upgrade path from. It is hoped that there will be a good upgrade
+procedure for future releases.
diff --git a/distrib/notes/mac68k/whatis b/distrib/notes/mac68k/whatis
new file mode 100644
index 00000000000..6a6eddea9af
--- /dev/null
+++ b/distrib/notes/mac68k/whatis
@@ -0,0 +1,6 @@
+NetBSD 1.0 is the first "real" release of NetBSD for the mac68k.
+Previous releases have been alpha or beta quality. There is still a
+lot of work to be done, but this should be a usable system for a number
+of people. Quite a few features are available: shared libraries, new
+file systems, binary compatibility with the other m68k ports for most
+binaries, SunOS compatibility, and numerous others.
diff --git a/distrib/notes/mac68k/xfer b/distrib/notes/mac68k/xfer
new file mode 100644
index 00000000000..dcfb410bce6
--- /dev/null
+++ b/distrib/notes/mac68k/xfer
@@ -0,0 +1,29 @@
+Installation is really only supported from the local Macintosh
+hard drive or from an AppleShare volume. This means that you'll
+need at least enough room for the largest file that you will have
+to install. This is the 6.2M base10 file. There has been talk
+of allowing an install from split files. If you have the time,
+desire, and knowledge, please feel free to add that functionality.
+
+If the install is being done from an AppleShare-mounted volume,
+the install utility must be in the same folder as the data files.
+
+There will be two images of each file. One in "raw" Unix format
+and one in a binhex format. Therefore, base10 and base10.hqx both
+contain the same information, but base10.hqx has been encoded in
+binhex format. Download the files; if necessary, decode them so
+you have all of the files as base10, etc10, etc. This can be
+accomplished from the .hqx files by using _Stuffit Expander_ or
+any one of a number of freeware and shareware Macintosh tools.
+
+You will also need to collect the MacOS tools:
+ Mkfs,
+ MacBSD Install Utility, and
+ MacBSD Booter.
+
+These three are compacted and in binhex form as mkfs.cpt.hqx,
+installer.1.0.cpt.hqx, and booter.1.4.cpt.hqx, respectively.
+
+Extract them as you would any other Macintosh applications. The
+sources should be in the same place with "src" somewhere in the
+filename.
diff --git a/distrib/notes/mirrors b/distrib/notes/mirrors
new file mode 100644
index 00000000000..b62366ce756
--- /dev/null
+++ b/distrib/notes/mirrors
@@ -0,0 +1,58 @@
+Host name Services Provided
+---- ---- -------- --------
+ftp.iastate.edu Anonymous FTP, AFS
+
+ Anon-FTP path: pub/netbsd/NetBSD-1.0
+ AFS path: /afs/iastate.edu/public/ftp/pub/netbsd/NetBSD-1.0
+
+ftp.eecs.umich.edu Anonymous FTP
+
+ Anon-FTP path: BSD/NetBSD/NetBSD-1.0
+
+gatekeeper.dec.com Anonymous FTP
+
+ Anon-FTP path: pub/BSD/NetBSD/NetBSD-1.0
+
+wipux2.wifo.uni-mannheim.de Anonymous FTP, SUP
+
+ Anon-FTP path: pub/NetBSD/NetBSD-1.0
+ SUP: get the file pub/misc/sup/supfile.example via
+ anonymous FTP and read it as an example.
+
+ftp.demon.co.uk Anonymous FTP, possibly SUP
+
+ Anon-FTP path: pub/BSD/NetBSD/NetBSD-1.0
+ SUP: contact peter@demon.net for SUP server status/information
+
+ftp.uni-regensburg.de Anonymous FTP
+
+ Anon-FTP path: pub/NetBSD/NetBSD-1.0
+
+ftp.unit.no Anonymous FTP
+
+ Anon-FTP path: pub/NetBSD/NetBSD-1.0
+
+ftp.stacken.kth.se Anonymous FTP
+
+ Anon-FTP path: pub/OS/NetBSD/NetBSD-1.0
+
+flick.lerc.nasa.gov Anonymous FTP
+
+ Anon-FTP path: pub/NetBSD/NetBSD-1.0
+
+coombs.anu.edu.au Anonymous FTP
+
+ Anon-FTP path: pub/NetBSD/NetBSD-1.0
+
+ftp.funet.fi Anonymous FTP
+
+ Anon-FTP path: pub/unix/NetBSD/NetBSD-1.0
+
+ftp.netbsd.org Anonymous FTP, SUP
+
+ Anon-FTP path: pub/NetBSD/NetBSD-1.0
+ SUP: get the file pub/sup/README.sup via anonymous FTP from
+ ftp.netbsd.org, and read it for instructions.
+
+If you wish to become a distribution site for NetBSD, contact Chris
+Demetriou <cgd@NetBSD.ORG>.
diff --git a/distrib/notes/pc532/contents b/distrib/notes/pc532/contents
new file mode 100644
index 00000000000..469913d7fa6
--- /dev/null
+++ b/distrib/notes/pc532/contents
@@ -0,0 +1,113 @@
+The pc532-specific portion of the NetBSD 1.0 release is found in the
+"pc532" subdirectory of the distribution. That subdirectory contains
+the files as follows:
+
+.../NetBSD-1.0/pc532/
+
+ INSTALL Installation notes; this file.
+ CKSUM output of "cksum *.gz"
+ ram.root.gz Ram root disk
+ util.tar.gz things to help the install
+ netbsd.rd.9600.gz "ram disk" root kernel, 9600 baud
+ netbsd.rd.19200.gz "ram disk" root kernel, 19200 baud
+ netbsd.sd0.9600.gz sd0a root, 9600 baud console
+ netbsd.sd0.19200.gz sd0a root, 19200 baud console
+ netbsd.sd1.9600.gz sd1a root, 9600 baud console
+ netbsd.sd1.19200.gz sd1a root, 19200 baud console
+ base.tar.gz base distribution
+ comp.tar.gz compiler tools & libraries
+ etc.tar.gz files for /etc
+ games.tar.gz /usr/games and friends
+ man.tar.gz /usr/man
+ misc.tar.gz various
+ text.tar.gz groff and friends
+
+
+The binary distribution consists of the following files:
+
+ base.tar.gz
+ The NetBSD/pc532 1.0 base binary distribution. You
+ MUST install this distribution set. It contains the
+ base NetBSD utilities that are necessary for the
+ system to run and be minimally functional. It
+ excludes everything described below.
+ [ 15.1M gzipped ]
+
+ comp.tar.gz
+ The NetBSD/pc532 Compiler tools. All of the tools
+ relating to C, C++, and FORTRAN (yes, there are two!).
+ This set includes the system include files
+ (/usr/include), the linker, the compiler tool chain,
+ and the various system libraries. This set also includes
+ the manual pages for all the utilities it contains, as well
+ as the system call and library manual pages.
+ [ 4.2M gzipped ]
+
+ etc.tar.gz
+ This distribution set contains the system
+ configuration files that reside in /etc and in several
+ other places. This set MUST be installed if you are
+ installing the system from scratch, but should NOT be
+ used if you are upgrading. (If you are upgrading,
+ it's recommended that you get a copy of this set and
+ CAREFULLY upgrade your configuration files by hand.)
+ [ 50K gzipped ]
+
+ games.tar.gz
+ This set includes the games and their manual pages.
+ [ 2.4M gzipped ]
+
+ man.tar.gz
+ This set includes all of the manual pages for the
+ binaries and other software contained in the base set.
+ Note that it does not include any of the manual pages
+ that are included in the other sets.
+ [ 0.7M gzipped ]
+
+ misc.tar.gz
+ This set includes the system dictionaries (which are
+ rather large), the typesettable document set, and
+ man pages for other architectures which happen to be
+ installed from the source tree by default.
+ [ 1.7M gzipped, 5.6M uncompressed ]
+
+ text.tar.gz
+ This set includes NetBSD's text processing tools,
+ including groff, all related programs, and their
+ manual pages.
+ [ 1.1M gzipped ]
+
+The pc532 distribution set does not include a security distribution.
+If you are in the US and want the security distribution you must
+get the security source distribution and recompile libcrypt.a and
+recompile the following programs:
+ ed, ftpd, makekey, rexecd, uucpd, init, lock, login, passwd,
+ skeyinit, su, tn3270, pppd
+
+
+The initial installation process on a pc532 without NetBSD/pc532
+is supported by the following files:
+
+ Initial kernels to loaded into memory and run:
+
+ netbsd.rd.9600.gz "ram disk" root kernel, 9600 baud
+ netbsd.rd.19200.gz "ram disk" root kernel, 19200 baud
+
+ The initial root file system for the above kernels
+
+ ram.root.gz Ram root disk
+
+ Utility programs for helping with the install after a
+ mini-root has been built on a hard disk
+
+ util.tar.gz things to help the install
+
+ Bootable kernels for placement in the file system to boot
+ from hard disk.
+
+ netbsd.sd0.9600.gz sd0a root, 9600 baud console
+ netbsd.sd0.19200.gz sd0a root, 19200 baud console
+ netbsd.sd1.9600.gz sd1a root, 9600 baud console
+ netbsd.sd1.19200.gz sd1a root, 19200 baud console
+
+
diff --git a/distrib/notes/pc532/hardware b/distrib/notes/pc532/hardware
new file mode 100644
index 00000000000..1a338056462
--- /dev/null
+++ b/distrib/notes/pc532/hardware
@@ -0,0 +1,20 @@
+NetBSD/pc532 1.0 runs on a PC532 computer. It supports a subset of the
+"standard" hardware to date. This is defined as:
+
+ 4 - 32 Megs of memory
+ 8 serial lines done by 4 scn2681 chips
+ the NCR DP8490 SCSI chip (scsi only)
+ Most SCSI disks work (fixed and floppy)
+ A few SCSI tapes work
+ Some SCSI CD-ROM drives work
+
+NetBSD/pc532 currently expects the ROM monitor to be the "autoboot
+monitor" of Oct/Nov 1991. It includes support to set up auto booting
+of NetBSD, including a secondary boot program that the autoboot monitor
+will load that in turn loads the NetBSD kernel from a NetBSD file system.
+
+Most of the pc532 specific development of NetBSD/pc532 was done on a
+machine with 8-Megs of memory. It should run with 4-Megs of memory
+although it may be slower.
+
+
diff --git a/distrib/notes/pc532/install b/distrib/notes/pc532/install
new file mode 100644
index 00000000000..fb9e521ff6e
--- /dev/null
+++ b/distrib/notes/pc532/install
@@ -0,0 +1,220 @@
+(IF you already have NetBSD/pc532 installed and you only want to update
+your system, see the next section.)
+
+To install NetBSD/pc532, there are several things you need to know.
+First, NetBSD "autoconfigs" the scsi devices. inst-11.fs has only
+support for disks configured into the kernel. Starting the search at
+SCSI address 0, lun 0 and increasing, the first disk found will be sd0
+regardless of the address, the second will be sd1. KLONDIKE for example
+has the following devices installed:
+
+ sd0 -> ID 0 LUN 0: Quantum LP52S hard disk drive
+ sd1 -> ID 1 LUN 0: Micropolis 4110 hard disk drive
+ sd2 -> ID 2 LUN 0: Teac FC-1, 3.5" floppy disk drive
+ sd3 -> ID 2 LUN 1: Teac FC-1, 5.25" floppy disk drive
+ cd0 -> ID 3 LUN 0: Toshiba XM-4101TA CD-ROM drive
+ st0 -> ID 4 LUN 0: Tandberg TDC3600 QIC tape drive
+
+Only sd0-sd3 are supported by the inst-11.fs kernel.
+
+Next you need to know what the install script wants to do. This install
+is script on the ram disk root that can do most of the work of configuring
+your disk.
+
+ a) The script assumes your are using the first n sectors of your
+ disk, where you can specify n. It will allow you to create
+ up to 5 file system partitions, one swap partition and one
+ boot partition.
+
+ b) You should know how many total sectors are on your disk. The
+ configure will report a head, track, and cylinder count, but
+ I have found that on my disks, it reports something that makes
+ a smaller disk than I really had.
+
+ c) It is possible to have the install script make a partition
+ over your save area AND not make a new file system, thus
+ preserving what is there. Then, later you can make a new
+ file system after you no longer need the stuff there. You
+ will need to do only one boot to get things working from
+ the disk.
+
+The Install Procedure:
+
+ a) Adjust your console device settings.
+ The inst-11.fs kernel will come up with 9600 baud, 7 bits,
+ even parity and one stop bit. Adjust your terminal to match
+ these settings. The monitor's baud rate can be changed with
+ "baud d'9600".
+
+ b) Get inst-11.fs.
+ If you have a 1.44 meg SCSI floppy drive, you can put this
+ onto a 3.5" floppy disk. Insert the disk into your floppy
+ drive and use the monitor's boot command to boot the default
+ image from the floppy. The image booted will ask you for a
+ kernel to load. Answer
+ sdXa:/netbsd
+ Replace X with your drive number. For KLONDIKE X would be "2".
+
+ If you don't have a floppy drive, you will have to
+ - load the inst-11.fs at 0x288000
+ - run at 0x3EB820
+ The boot program will ask you now for a kernel to load. Answer
+ rd0a:/netbsd
+
+ c) Choose a disk geometry. For me, the reported geometry left
+ some sectors "unallocated". That is, the autoconfig message
+ said the disk had 2428 cylinders, 9 heads, and 93 sectors/track.
+ This gives a total of 2032236 sectors, but I knew that I had
+ 2053880 sectors.
+
+ To help in this process, there is a program "factor" that is
+ on the inst-11.fs. The usage is "factor number" and it lists
+ the prime factors of number.
+ For example, with the 2053880 sector disk I got:
+
+ ---->~/sd1
+
+ steelhead[3]$ factor 2053880
+ 2053880: 2 2 2 5 51347
+
+ Not many to choose from, so I tried ...
+
+ ---->~/sd1
+ steelhead[4]$ factor 2053820
+ 2053820: 2 2 5 103 997
+
+ Now I'd like to get about a meg per track:
+ steelhead[5]$ echo "2 * 997"|bc
+ 1994
+
+ Now I the number of tracks:
+ steelhead[5]$ echo "2 * 5 * 103"|bc
+ 1030
+
+ So I ended up choosing 1030 cylinders, 1 head, 1994 sectors/track.
+ I "lost" only 60 sectors, but got a "resonable geometry".
+
+ d) run "install" -- it will ask you for the disk geometry and other
+ questions. It will ask you for the geometry and then ask you
+ how many of those sectors you want to use for NetBSD. It also
+ wants to know the size of your boot partition (to be used with
+ the auto-boot monitor), your root partition, your swap partition,
+ and then any other partitions you may want. For the "other"
+ partitions, it will ask for a mount point. The mount point will
+ be "relative to /" and should not include the leading "/". Also,
+ IF you do not want the partition to have newfs run on it (that is
+ it might be the last one and have a copy of ram.root and your
+ kernels) enter "NO" to the mount point and it will not run newfs
+ on the partition. It will enter the partition into the disklabel.
+
+ e) look around, if you want ... and then halt NetBSD.
+
+ f) reboot the machine. Using the autoboot monitor, all you should have
+ to do is give the ROM monitor command "boot". The secondary
+ UFS boot program eventually times out and auto-loads /netbsd.
+ You can get it to do it faster by hitting "return".
+ If you are NOT using the autoboot monitor, it's time to warm
+ up your eprom burner :-)
+
+ g) Now it is time to load all the other files of the distribution:
+ You can do this via --
+
+ a) a TCP/IP link (slip, ppp or plip)
+ you have ifconfig, slattach, route, netstat,
+ hostname and ftp on the mini-root. You can even
+ use nfs...
+ Plip is only an option if you have installed a
+ centronics port in your pc532.
+
+ b) floppy disk
+
+ c) tape
+
+ d) cdrom (If you have a CD with NetBSD/532 ...)
+
+ e) using kermit. (See the notes at the end of this file.)
+
+ f) some other method? (Let me know about it.)
+
+ h) Load the tar.gz files. Choose a place to put them. I would make
+ a directory /gz.files and put them there. If you are "short
+ on space," you might want to load them and extract them one
+ at a time. A minimum installation is "base" and "etc". It
+ takes about 32 Megs installed + 15 Megs for the base.tar.gz.
+
+ i) Extract the tar files in /. For example, if your *.tar.gz were
+ in a directory /gz.files, to extract base.tar.gz you would:
+
+ - cd /
+ - tar -xpzf /gz.files/base.tar.gz --unlink
+
+ Add v to the flags if you want a verbose extract.
+ The --unlink is to make sure that the "ram.root" versions
+ of sh, init, ... are replaced by their full featured versons
+ in base.tar.gz. I think it is wise to include the --unlink
+ for other things.
+
+ j) Extract at least "base" and "etc" for a new installation. For
+ "update" extracts, don't extract "etc" directly unless you
+ have saved your current /etc tree. For "full" installations,
+ extract all files.
+
+ k) Edit the information in /etc
+
+ - hosts - host name and address information
+ - myname - your host name
+ - mygate - hostname of gateway (assuming you have one)
+ - resolv.conf - which nameserver to use
+ - hostname.{sl0,ppp0,plip0} - interface hostname
+ - netstart - configures the network and says if sendmail should
+ be started
+ - ttys - make sure the console entry has the correct speed
+ - gettytab - I find "ap" instead of "ep" in the default entry
+ works better for me.
+ - fstab - make sure it includes all partitions you want mounted
+ - localtime - this is usually a link into /usr/share/zoneinfo
+
+ Now you can adjust the kernel's default baud rate to match your
+ monitor's default baud rate. Do the following:
+ gdb -w /netbsd
+ set scndefaultrate = YOUR_BAUD_RATE
+ quit
+ If you set scndefaultrate to something bogus, you'll probably
+ not be able to reboot... So be carefull!
+
+ l) Reboot the machine and it should come up in multi-user mode *IF*
+ you got it configured correctly.
+
+ m) Enjoy! And help fix bugs and improve NetBSD/pc532!
+
+
+For those who choose to use kermit to help in getting NetBSD/pc532
+installed:
+
+ The following is the Kermit copyright:
+
+ Copyright (C) 1985, 1994, Trustees of Columbia University in the
+ City of New York. The C-Kermit software may not be, in whole or
+ in part, licensed or sold for profit as a software product
+ itself, nor may it be included in or distributed with commercial
+ products or otherwise distributed by commercial concerns to their
+ clients or customers without written permission of the Office of
+ Kermit Development and Distribution, Columbia University. This
+ copyright notice must not be removed, altered, or obscured.
+
+ Due to this copyright, we can not include kermit with the standard
+ NetBSD/pc532 distribution.
+
+ The Office of Kermit Development and Distribution of Columbia
+ University in the City of New York has given permission for
+ us to distribute a NetBSD/pc532 binary. It is available primarily
+ for bootstrapping purposes and therefore is not a complete package,
+ lacking source code, various supporting text files, and the user
+ manual. Users who wish to use C-Kermit after the bootstrapping
+ process should obtain the full package, including the manual
+ "Using C-Kermit", from Columbia University.
+
+ The NetBSD/pc532 binary is available via ftp from
+ iceberg.cs.wwu.edu in the directory pub/NetBSD/pc532 as the file
+ kermitbin.tar.gz.
+
diff --git a/distrib/notes/pc532/legal b/distrib/notes/pc532/legal
new file mode 100644
index 00000000000..c61c3a90db2
--- /dev/null
+++ b/distrib/notes/pc532/legal
@@ -0,0 +1,85 @@
+
+ This product includes software developed by the Alice Group.
+
+ This product includes software developed by Philip L. Budne.
+
+ This product includes software developed by Christopher G. Demetriou.
+
+ This product includes software developed by Philip A. Nelson.
+
+ This product includes software at the Helsinki University of
+ Technology.
+
+Some files have the following copyright:
+/*
+ * Copyright (c) 1992 Helsinki University of Technology
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * HELSINKI UNIVERSITY OF TECHNOLOGY ALLOWS FREE USE OF THIS SOFTWARE IN
+ * ITS "AS IS" CONDITION. HELSINKI UNIVERSITY OF TECHNOLOGY DISCLAIMS ANY
+ * LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE
+ * USE OF THIS SOFTWARE.
+ */
+
+
+At least one file contains:
+
+ * Copyright 1990 by Open Software Foundation,
+ * Grenoble, FRANCE
+ *
+ * All Rights Reserved
+ *
+ * Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appears in all copies and
+ * that both the copyright notice and this permission notice appear in
+ * supporting documentation, and that the name of OSF or Open Software
+ * Foundation not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission.
+ *
+ * OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
+ * IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
+ * NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+
+Some files have the following copyright:
+
+/*
+ * Mach Operating System
+ * Copyright (c) 1992 Carnegie Mellon University
+ * Copyright (c) 1992 Helsinki University of Technology
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON AND HELSINKI UNIVERSITY OF TECHNOLOGY ALLOW FREE USE
+ * OF THIS SOFTWARE IN ITS "AS IS" CONDITION. CARNEGIE MELLON AND
+ * HELSINKI UNIVERSITY OF TECHNOLOGY DISCLAIM ANY LIABILITY OF ANY KIND
+ * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
+ * School of Computer Science
+ * Carnegie Mellon University
+ * Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
diff --git a/distrib/notes/pc532/prep b/distrib/notes/pc532/prep
new file mode 100644
index 00000000000..73ad339805e
--- /dev/null
+++ b/distrib/notes/pc532/prep
@@ -0,0 +1,3 @@
+The major preparation needed is to make sure you can recover any
+current bits stored on your pc532. If you don't care about your
+data on the disk, you don't need to do anything. \ No newline at end of file
diff --git a/distrib/notes/pc532/upgrade b/distrib/notes/pc532/upgrade
new file mode 100644
index 00000000000..57b3b74eaef
--- /dev/null
+++ b/distrib/notes/pc532/upgrade
@@ -0,0 +1,55 @@
+The upgrade to NetBSD 1.0 is a binary upgrade; it would be prohibitive
+to make users upgrade by compiling and installing the 1.0 sources, and
+it would be very difficult to even compile a set of instructions that
+allowed them to do so.
+
+To do the upgrade, you must have at least base.tar.gz on disk and
+a copy of the proper netbsd.sdx.yyyy. It will require quite a bit
+of disk space to do the upgrade.
+
+Since upgrading involves replacing the kernel, and most of the system
+binaries, it has the potential to cause data loss. You are strongly
+advised to BACK UP ANY IMPORTANT DATA ON YOUR DISK, whether on the
+NetBSD partition or on another operating system's partition, before
+beginning the upgrade process.
+
+To upgrade your system, follow the following instructions:
+
+ Make sure your are root. Just in case the new binaries don't
+ run with the old kernel, make copies of several key binaries
+ from /bin, /sbin and /usr/bin in some directory. (Things like
+ sh, cp, ls, rm, tar, halt, and others.)
+
+ Extract the tar.gz files. Remember to use the --unlink
+ option with tar so it can replace binaries currently in use.
+ For example, to extract base.tar.gz:
+
+ cd /
+ tar -xpzf /gz.files/base.tar.gz --unlink
+
+ Extract all the tar.gz files you want. You should carefully
+ work at upgrading /etc. There may be changes to file formats
+ depending on what version of NetBSD/pc532 you are running.
+
+ BE CAREFUL IF YOU ARE RUNNING WITH SECURITY. The distribution
+ binaries don't support it. It would be reasonable to save a
+ copy of master.passwd and remove all passwords until after
+ you upgrade to the new security level.
+
+ Place the proper netbsd.sdX.YYYY in / as the file netbsd.
+
+ Reboot.
+
+ After reboot, you should make sure you check your new file systems.
+ Also, you may wish to upgrade your file systems to the new file
+ system format. After the install process is complete,
+ use "fsck -c 2" to upgrade the file systems. Read the fsck(8)
+ manual page for more details.
+
+ If you upgrade your file systems, you will want to make sure
+ you have the most recent ufs boot program if you use the
+ NetBSD boot program to read the kernel off a ufs file system.
+ Use bim(8) to remove your old boot program and install the
+ newest one if you are using the autoboot monitor.
+
+
diff --git a/distrib/notes/pc532/whatis b/distrib/notes/pc532/whatis
new file mode 100644
index 00000000000..3399a139941
--- /dev/null
+++ b/distrib/notes/pc532/whatis
@@ -0,0 +1,14 @@
+For the pc532 port, there are a few known problems. They include:
+
+ a) ppp reports a lot of input errors on some machines.
+
+ b) Some tape drives do not work very well. Some have hung the system.
+
+ c) The serial drivers do not have all the desired features. (ttyflags
+ is the most glaring.)
+
+ d) The disk driver is polled, not interrupt driven.
+
+ e) kernel support for debugging is not working correctly.
+
+ f) shared libraries are not used yet. \ No newline at end of file
diff --git a/distrib/notes/pc532/xfer b/distrib/notes/pc532/xfer
new file mode 100644
index 00000000000..a36b90a8c78
--- /dev/null
+++ b/distrib/notes/pc532/xfer
@@ -0,0 +1,19 @@
+The "standard" method of getting NetBSD/pc532 onto your pc532 is
+via the console terminal and using the downloading parts of the
+ROM monitor. As such, usually another computer has the distribution
+on disk and is connected via a serial line to your pc532's console
+port. A terminal connected to the attached host computer is used
+to access the pc532 console via a terminal program.
+
+You may need to find and read the documentation about the ROM monitor
+download command and other low level comands.
+
+Other methods of getting NetBSD/pc532 on your pc532 may include
+SCSI tape or SCSI floppy disk or cloning a disk on a system
+already running NetBSD/pc532.
+
+If you have some operating system already running on your pc532,
+you can use that OS to get NetBSD/pc532 on a hard disk much easier than
+with the ROM monitor. (NetBSD/pc532 was developed from Minix/pc532
+until it was self hosting. You can run NetBSD and Minix or other OS
+off the same disk.) \ No newline at end of file
diff --git a/distrib/notes/sparc/contents b/distrib/notes/sparc/contents
new file mode 100644
index 00000000000..8e22ef36da0
--- /dev/null
+++ b/distrib/notes/sparc/contents
@@ -0,0 +1,92 @@
+The sparc-specific portion of the NetBSD 1.0 release is found in the
+"sparc" subdirectory of the distribution. That subdirectory is laid
+out as follows:
+
+.../NetBSD-1.0/sparc/
+ binary/ sparc binary distribution sets;
+ see below.
+
+ security/ sparc security distribution;
+ see below;
+
+ install/ Base GENERIC kernels, tools,
+ and installation script.
+
+The NetBSD/sparc binary distribution sets contain the binaries which
+comprise the NetBSD 1.0 release for the sparc. There are seven binary
+distribution sets, and the "security" distribution set. The binary
+distribution sets can be found in subdirectories of the "sparc/binary"
+subdirectory of the NetBSD 1.0 distribution tree, and are as follows:
+
+ base10 The NetBSD/sparc 1.0 base binary distribution. You
+ MUST install this distribution set. It contains the
+ base NetBSD utilities that are necessary for the
+ system to run and be minimally functional. It
+ includes shared library support, and excludes
+ everything described below.
+ [ 7.3M gzipped, 22.7M uncompressed ]
+
+ comp10 The NetBSD/sparc Compiler tools. All of the tools
+ relating to C, C++, and FORTRAN (yes, there are two!).
+ This set includes the system include files
+ (/usr/include), the linker, the compiler tool chain,
+ and the various system libraries (except the shared
+ libraries, which are included as part of the base
+ set). This set also includes the manual pages for all
+ of the utilities it contains, as well as the system
+ call and library manual pages.
+ [ 4.9M gzipped, 15.9M uncompressed ]
+
+ etc10 This distribution set contains the system
+ configuration files that reside in /etc and in several
+ other places. This set MUST be installed if you are
+ installing the system from scratch, but should NOT be
+ used if you are upgrading. (If you are upgrading,
+ it's recommended that you get a copy of this set and
+ CAREFULLY upgrade your configuration files by hand.)
+ [ 50K gzipped, 285K uncompressed ]
+
+ games10 This set includes the games and their manual pages.
+ [ 1.2M gzipped, 3.3M uncompressed ]
+
+ man10 This set includes all of the manual pages for the
+ binaries and other software contained in the base set.
+ Note that it does not include any of the manual pages
+ that are included in the other sets.
+ [ 0.7M gzipped, 2.9M uncompressed ]
+
+ misc10 This set includes the system dictionaries (which are
+ rather large), the typesettable document set, and
+ man pages for other architectures which happen to be
+ installed from the source tree by default.
+ [ 1.7M gzipped, 5.9M uncompressed ]
+
+ text10 This set includes NetBSD's text processing tools,
+ including groff, all related programs, and their
+ manual pages.
+ [ 0.8M gzipped, 3.1M uncompressed ]
+
+The sparc security distribution set is named "secr10" and can be found
+in the "sparc/security" subdirectory of the NetBSD 1.0 distribution
+tree. It contains crypt.c (the source file for the DES encryption
+algorithm) and the binaries which depend on it. It can only be found
+on those sites which carry the complete NetBSD distribution and that
+can legally obtain it. (Remember, because of United States law, this
+distribution set may not be exported to locations outside of the
+United States and Canada.) [ 127K gzipped, 337K uncompressed ]
+
+The sparc binary distribution sets are distributed in the same form as
+the source distribution sets; catted together, the members of a set
+form a gzipped tar file. Each sparc binary distribution set also has
+its own "CKSUMS" file, just as the source distribution sets do. The
+binary sets are "rooted" at /, that is, if you want to extract the
+binaries "into" your system, i.e. replace the system binaries with
+them, you have to run the "tar xfp" from /. Also note that if you
+upgrade or install this way, those programs that you are using at the
+time will NOT be replaced. If you follow the normal installation or
+upgrade procedures, this will be taken care of for you.
+
+The "sparc/install" directory contains an install script, and two
+GENERIC kernels. As well, the distribution cannot be extracted using
+the SunOS "tar" program so SunOS statically-linked versions of gzip
+(GNU gzip) and gtar (GNU tar) are provided.
diff --git a/distrib/notes/sparc/hardware b/distrib/notes/sparc/hardware
new file mode 100644
index 00000000000..977abd4f808
--- /dev/null
+++ b/distrib/notes/sparc/hardware
@@ -0,0 +1,25 @@
+NetBSD/sparc 1.0 runs on Sun4c class machines only, which includes
+the SS1, SS1+, SS2, IPC, ELC, IPX, and the SLC. It does not run
+on Sun4, Sun4m, or Sun4d machines.
+
+The minimal configuration requires 4M of RAM and ~60M of disk space.
+To install the entire system requires much more disk space, and to run
+X or compile the system, more RAM is recommended. (NetBSD with 4M of
+RAM feels like Solaris with 4M of RAM.) Note that until you have
+around 16M of RAM, getting more RAM is more important than getting a
+faster CPU.)
+
+Supported devices include:
+ Video: cgthree, cgsix, and bwtwo frame buffers
+ Serial ports: ttya and ttyb
+ On-board AMD Lance ethernet
+ Some SCSI CD-ROM drives
+ Sun keyboard and mouse
+
+Hardware the we do NOT currently support, but get many questions
+about:
+ The floppy drive.
+
+The next release will likely run on many more machines. In
+particular, some Sun4 support will be there, and perhaps even
+Sun4m.
diff --git a/distrib/notes/sparc/install b/distrib/notes/sparc/install
new file mode 100644
index 00000000000..cb9437e7f6c
--- /dev/null
+++ b/distrib/notes/sparc/install
@@ -0,0 +1,182 @@
+Installing NetBSD is a relatively complex process, but if you have
+this document in hand it shouldn't be too much trouble.
+
+There are several ways to install NetBSD onto a disk. If your Sparcstation
+is hooked up in a network you can find find a server and arrange for a
+diskless setup which is a convenient way to install on a machine with
+a single disk attached. Alternatively, you could use SunOS (booted from
+a local disk) and install NetBSD onto a second disk. For the latter method,
+skip to the section "Installing from SunOS" below.
+
+Installing using a diskless setup.
+
+First, you must setup a diskless client configuration on a server. Consult
+your server installation documents on how to proceed with this.
+Put all the *.tar.gz files you want to install into the root directory
+for your client on the server.
+
+Next, unpack base.tar.gz on the server in the root directory for your machine.
+A few configuration files need to be edited:
+
+ <root>/etc/hosts
+ <root>/etc/myname
+ <root>/etc/fstab
+
+Boot your workstation from the server by entering the appropriate `boot'
+command at the monitor prompt. Depending on the PROM version in your machine,
+this command takes one of the following forms:
+
+ > b le()netbsd -s # for sun4 monitors
+ ok boot le()netbsd -s # for version 1 OpenBOOT ROMs
+ ok boot net netbsd -s # for version 2 OpenBOOT ROMs
+
+This will boot the NetBSD kernel in single-user mode.
+
+[[
+NOTE: the latter two examples assume you operate the OpenBOOT ROM in
+"new command mode". If your machine comes up and gives you a `>' prompt
+instead of `ok', type:
+
+ >n # enter native OpenBOOT mode
+ ok setenv sunmon-compat? false # make it permanent
+ ok
+]]
+
+Start the installation procedure:
+
+netbsd# ./install.sh
+
+
+This script will do most of the work of transferring the system from the
+tar files onto your disk. You will frequently be asked for confirmation
+before the script proceeds with each phase of the installation process.
+Occasionally, you'll have to provide a piece of information such as the
+name of the disk you want to install on or IP addresses and domain names
+you want to assign.
+
+The installation script goes through the following phases:
+
+ - determination of the disk to install NetBSD on
+ - checking of the partition information on the disk
+ - creating and mounting the NetBSD filesystems
+ - setup of IP configuration
+ - extraction of the distribution tar files
+ - installation of boot programs
+
+
+Now try a reboot. (If needed, swap your scsi id's first). Initially
+I'd suggest you "boot sd()netbsd -bs", then try multiuser after that.
+if you boot single-user the NetBSD incantation to make the root
+filesystem writable is
+
+ netbsd# mount -u /dev/sd0a /
+
+The Sun monitor normally tries to load a file called "vmunix". On
+OpenBOOT ROM systems you can change it to load NetBSD instead using
+the following commands:
+
+On version 1 OpenBOOT ROMs:
+ >n
+ ok setenv boot-from sd(0,0,0)netbsd
+ ok
+
+On version 2 OpenBOOT ROMs:
+ ok setenv boot-file netbsd
+ ok setenv boot-device /sbus/esp/sd@0,0
+
+
+Congratulations, you have successfully installed NetBSD 1.0. When you
+reboot into NetBSD, you should log in as "root" at the login prompt.
+There is no initial password, but if you're using the machine in a
+networked environment, you should create yourself an account and
+protect it and the "root" account with good passwords.
+
+Some of the files in the NetBSD 1.0 distribution might need to be
+tailored for your site. In particular, the /etc/sendmail.cf file will
+almost definitely need to be adjusted, and other files in /etc will
+probably need to be modified. If you are unfamiliar with UN*X-like
+system administration, it's recommended that you buy a book that
+discusses it.
+
+
+
+Installing from SunOS.
+
+You need a SunOS machine to install NetBSD. You also need at
+least the following pieces:
+
+ the *.tar.gz files you want to install (as a minimum, base.tar.gz)
+ gzip (GNU gzip) SunOS binary
+ gtar (GNU tar) SunOS binary
+ the "install.sh" script
+ a "/boot" file from a SunOS sun4c machine
+ a kernel, most likely "/netbsd"
+
+All these pieces, except "/boot", are supplied in the NetBSD/sparc
+distribution.
+
+You need to format and partition the disk using SunOS (since
+NetBSD/sparc uses SunOS disk labels.) Give yourself adequate
+partition sizes. Here is an example layout:
+
+ partition size offset will be..
+ sd2a 28140 0 /
+ sd2b 16170 28140 swap
+ sd2c 204540 0 `whole disk'
+ sd2g 160230 44310 /usr
+
+BTW, These are not recommended sizes. They simply match the first
+(tiny) disk that NetBSD/sparc ran on.
+
+Use SunOS to newfs the partitions which will have filesystems on them.
+(NetBSD's filesystem format is identical to SunOS).
+
+ sunos# newfs /dev/rsd2a
+ [... lots of output]
+ sunos# newfs /dev/rsd2g
+ [... lots of output]
+
+NOTE: If you are able to, there is a performance benefit from
+newfs'ing using NetBSD. If you newfs using the NetBSD newfs command,
+be sure to use the -O flag for your / partition, so that newfs will
+use the 4.3BSD filesystem format, rather than the new 4.4BSD filesystem
+format. If you forget, you will not be able to boot -- the SunOS boot
+blocks do not understand the extended 4.4BSD filesystem format.
+
+Mount those partitions in a tree formation, under /mnt; ie:
+
+ sunos# df
+ Filesystem kbytes used avail capacity Mounted on
+ [...]
+ /dev/sd2a 11501 0 11501 0% /mnt
+ /dev/sd2g 179529 0 179529 0% /mnt/usr
+
+Place a standard SunOS "/boot" program in /mnt (your new root
+partition), and use the SunOS command "installboot" to make it work.
+The installboot man page says to do something like this:
+
+ sunos# cp /boot /mnt/boot
+ sunos# /usr/mdec/installboot -vlt /mnt/boot /usr/mdec/bootsd /dev/rsd2a
+
+You can now extract the provided "*.tar.gz files onto your disk. The
+provided script, "install.sh" will help you:
+
+ sunos# ls -FC
+ base.tar.gz etc.tar.gz man.tar.gz secr.tar.gz
+ comp.tar.gz games.tar.gz misc.tar.gz text.tar.gz
+ install.sh netbsd.id3_scsi
+ sunos# ./install.sh
+ [...]
+
+This script NEEDS gzip and gtar (GNU gzip and GNU tar) on your
+execution path! The tar files are in a "new format" that includes
+directory information, and SunOS tar will not read them. Statically
+linked versions of these programs for SunOS are supplied in the
+distribution.
+
+After the files have been extracted, repair /mnt/etc/fstab to match
+your actual disk layout. (Minus the "/mnt" component of each path, of
+course :-)
+
+Now proceed to reboot the machine as described above in "Installing
+using a diskless setup".
diff --git a/distrib/notes/sparc/legal b/distrib/notes/sparc/legal
new file mode 100644
index 00000000000..295e8480bdc
--- /dev/null
+++ b/distrib/notes/sparc/legal
@@ -0,0 +1,4 @@
+ This product includes software developed by Philip A. Nelson.
+
+ This product includes software developed by Paul Kranenburg.
+
diff --git a/distrib/notes/sparc/prep b/distrib/notes/sparc/prep
new file mode 100644
index 00000000000..c055fa624b8
--- /dev/null
+++ b/distrib/notes/sparc/prep
@@ -0,0 +1,49 @@
+Before you start you might need to consider your disk configuration
+to sort out a quirk in SCSI-ID to SD-UNIT mapping that exists on
+Sun Sparcstations.
+
+Upon leaving the factory, SunOS and the OpenBOOT ROM map according to
+this table:
+
+ SCSI-ID -> SunOS SD-UNIT
+ 0 sd3
+ 1 sd1
+ 2 sd2
+ 3 sd0
+ 4 sd4
+ 5 sd5
+ 6 sd6
+
+Unlike SunOS and the OpenBOOT ROM, a generic NetBSD kernel numbers
+scsi drives sequentially as it finds them. The drive with the
+lowest scsi-id will be called sd0, the next one sd1, etc.
+
+To ease the installation process, the default NetBSD kernel in the
+distribution is setup to match the Sun mapping above by hard-wiring
+scsi-id#3 to sd0 and scsi-id#0 to sd3. The remaining drives will be
+dynamically mapped to other sd* numbers.
+
+A truely generic NetBSD kernel is also provided as `/netbsd.GENERIC',
+which will do the standard NetBSD probe ordering. If your configuration
+differs from the default Sun setup, you can try to use this kernel to
+complete the installation.
+
+NOTE: this is also a concern when you start building your own customised
+kernels.
+
+
+Your OpenBOOT ROM may need some setup. make sure you boot from `new
+command mode'. If your machine comes up and gives you a `>' prompt
+instead of `ok', type:
+
+ >n
+ ok setenv sunmon-compat? false
+ ok
+
+This is needed because netbsd cannot handle the old-mode yet, and will
+firework on you.
+
+Also, you cannot use the security modes of the sparc OpenBOOT ROM.
+
+ ok setenv security-mode none
+
diff --git a/distrib/notes/sparc/upgrade b/distrib/notes/sparc/upgrade
new file mode 100644
index 00000000000..4141ecd51e6
--- /dev/null
+++ b/distrib/notes/sparc/upgrade
@@ -0,0 +1,5 @@
+Upgrading NetBSD/sparc is not something someone is likely to do,
+since this is the first real distribution. Since a number of
+critical interfaces have changed quite significantly, your best
+bet is to reinstall completely, perhaps saving a few files in
+/etc and /usr/local.
diff --git a/distrib/notes/sparc/whatis b/distrib/notes/sparc/whatis
new file mode 100644
index 00000000000..a354a011d93
--- /dev/null
+++ b/distrib/notes/sparc/whatis
@@ -0,0 +1,5 @@
+NetBSD 1.0 is the first release for the sparc, although numerous
+people have been running "snapshots" for some time. It has all the
+standard NetBSD features, plus you can also enable SunOS binary
+compatibility in the kernel which will run more than 95% of SunOS
+executables.
diff --git a/distrib/notes/sparc/xfer b/distrib/notes/sparc/xfer
new file mode 100644
index 00000000000..445ec92c59f
--- /dev/null
+++ b/distrib/notes/sparc/xfer
@@ -0,0 +1 @@
+Installation is done from SunOS, or a previous NetBSD install.
diff --git a/distrib/pc532/floppies/Makefile b/distrib/pc532/floppies/Makefile
new file mode 100644
index 00000000000..ecbc7cc99e3
--- /dev/null
+++ b/distrib/pc532/floppies/Makefile
@@ -0,0 +1,5 @@
+# $Id
+
+SUBDIR= inst upgr
+
+.include <bsd.subdir.mk>
diff --git a/distrib/pc532/floppies/Makefile.inc b/distrib/pc532/floppies/Makefile.inc
new file mode 100644
index 00000000000..7151331df30
--- /dev/null
+++ b/distrib/pc532/floppies/Makefile.inc
@@ -0,0 +1,4 @@
+# $Id: Makefile.inc,v 1.1 1995/10/18 08:37:41 deraadt Exp $
+
+# Revision is 1.0A
+REV= 10A
diff --git a/distrib/pc532/floppies/inst-common/Makefile.inc b/distrib/pc532/floppies/inst-common/Makefile.inc
new file mode 100644
index 00000000000..cac1045fafd
--- /dev/null
+++ b/distrib/pc532/floppies/inst-common/Makefile.inc
@@ -0,0 +1,96 @@
+# $Id: Makefile.inc,v 1.1 1995/10/18 08:37:42 deraadt Exp $
+
+# TOP is assumed to be defined by Makefile including this one.
+
+CBIN= instbin
+COMMONDIR= ${TOP}/inst-common
+
+MOUNT_POINT?= /mnt
+VND?= vnd0
+VND_DEV= /dev/${VND}a
+VND_RDEV= /dev/r${VND}a
+IMAGE?= xxx-${REV}.fs
+MDEC= ${DESTDIR}/usr/mdec
+
+LISTS= ${COMMONDIR}/list ${.CURDIR}/list
+CRUNCHCONF= ${COMMONDIR}/${CBIN}.conf
+MTREE= ${COMMONDIR}/mtree.conf
+ADIR= ${TOP}/../../../sys/arch/pc532
+PWDSRC= ${TOP}/../../../usr.sbin/pwd_mkdb
+.if exists(${PWDSRC}/obj)
+PWDOBJ= ${PWDSRC}/obj
+.else
+PWDOBJ= ${PWDSRC}
+.endif
+
+all: netbsd
+ dd if=/dev/zero of=${IMAGE} bs=18k count=80
+ disklabel -r -w ${.OBJDIR}/${IMAGE} boot3 2>/dev/null
+ -yes|bim -c init -c "add ${MDEC}/boot boot" -c "default 0" \
+ -c "exit" ${.OBJDIR}/${IMAGE} 2>/dev/null >/dev/null
+ vnconfig -v -c ${VND_DEV} ${IMAGE}
+ newfs -b 8192 -f 1024 -O -m 0 -o space -i 204800 -c 80 ${VND_RDEV} boot3
+ mount ${VND_DEV} ${MOUNT_POINT}
+ cp netbsd ${MOUNT_POINT}/netbsd
+ @df -i ${MOUNT_POINT}
+ @echo ""
+ umount ${MOUNT_POINT}
+ vnconfig -u ${VND_DEV}
+
+inject.fs: ${CBIN} ${LISTS} netbsd.gz
+ (cd ${PWDSRC}; ${MAKE})
+ ${CC} -static -o pwd_mkdb ${PWDOBJ}/*.o
+ dd if=/dev/zero of=${.TARGET} bs=128k count=16
+ vnconfig -v -c ${VND_DEV} ${.TARGET}
+ newfs -b 8192 -f 1024 -O -m 0 -o space -i 7168 ${VND_RDEV} rd
+ mount ${VND_DEV} ${MOUNT_POINT}
+ mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u
+ TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
+ TARGDIR=${MOUNT_POINT} sh ${TOP}/runlist.sh ${LISTS}
+ @echo ""
+ @df -i ${MOUNT_POINT}
+ @echo ""
+ umount ${MOUNT_POINT}
+ vnconfig -u ${VND_DEV}
+
+unconfig:
+ -umount -f ${MOUNT_POINT}
+ -vnconfig -u ${VND_DEV}
+ -/bin/rm -f ${IMAGE}
+
+${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
+ crunchgen -D ${TOP}/../../.. -L ${DESTDIR}/usr/lib ${CRUNCHCONF}
+
+${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
+ make -f ${CBIN}.mk all
+
+cloak: ${COMMONDIR}/cloak.c
+
+inject: ${COMMONDIR}/inject.c
+
+netbsd.gz:
+ gzip -9 <${ADIR}/compile/DEFAULT/netbsd >netbsd.gz
+# cp ${ADIR}/compile/DEFAULT/netbsd /var/tmp/$$$$; \
+# strip /var/tmp/$$$$; \
+# gzip -9 </var/tmp/$$$$ >netbsd.gz; \
+# rm /var/tmp/$$$$
+
+
+netbsd.o: inject cloak inject.fs
+ cp ${ADIR}/compile/INSTALL/netbsd /var/tmp/$$$$; \
+ strip /var/tmp/$$$$; \
+ ./inject /var/tmp/$$$$ inject.fs; \
+ gzip -9 </var/tmp/$$$$ | ./cloak >netbsd.o; \
+ rm /var/tmp/$$$$
+
+go.o: ${COMMONDIR}/go.c
+
+netbsd: netbsd.o go.o
+ ld -s -z -T 240000 -e _go go.o netbsd.o ${MDEC}/zboot.o -o netbsd
+
+clean cleandir:
+ /bin/rm -f core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}.cache *.o *.lo *.c
+ /bin/rm -f netbsd* inject* cloak pwd_mkdb
+
+.include <bsd.obj.mk>
+.include <bsd.subdir.mk>
diff --git a/distrib/pc532/floppies/inst-common/cloak.c b/distrib/pc532/floppies/inst-common/cloak.c
new file mode 100644
index 00000000000..54ccd23694c
--- /dev/null
+++ b/distrib/pc532/floppies/inst-common/cloak.c
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 1995 Matthias Pfaller.
+ * 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.
+ * 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 Matthias Pfaller.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+ *
+ * $Id: cloak.c,v 1.1 1995/10/18 08:37:42 deraadt Exp $
+ */
+
+#include <stdio.h>
+#include <unistd.h>
+#include <a.out.h>
+#include <sys/param.h>
+
+#define SYM_DATA "_input_data"
+#define SYM_LEN "_input_len"
+void
+writex(int fd, void *buf, int cnt, char *prog)
+{
+ if (write(fd, buf, cnt) != cnt) {
+ perror(prog);
+ exit(1);
+ }
+}
+
+main(int argc, char **argv)
+{
+ int n, data_len = 0;
+ static struct exec exec;
+ static struct nlist nlist[2];
+ static char buf[10240];
+
+ if (argc != 1) {
+ fprintf(stderr, "usage: %s <file1 >file2", argv[0]);
+ exit(1);
+ }
+ writex(1, &exec, sizeof(exec), argv[0]);
+ while ((n = read(0, buf, sizeof(buf))) > 0) {
+ data_len += n;
+ writex(1, buf, n, argv[0]);
+ }
+
+ memset(buf, 0, sizeof(buf));
+ if (ALIGN(data_len) - data_len)
+ writex(1, buf, ALIGN(data_len) - data_len, argv[0]);
+ writex(1, (void *)&data_len, sizeof(data_len), argv[0]);
+
+ n = sizeof(SYM_DATA) + sizeof(SYM_LEN) + sizeof(n);
+ nlist[0].n_un.n_strx = sizeof(n);
+ nlist[0].n_type = N_TEXT | N_EXT;
+ nlist[0].n_value = 0;
+ nlist[1].n_un.n_strx = nlist[0].n_un.n_strx + sizeof(SYM_DATA);
+ nlist[1].n_type = N_TEXT | N_EXT;
+ nlist[1].n_value = ALIGN(data_len);
+ writex(1, nlist, sizeof(nlist), argv[0]);
+ writex(1, &n, sizeof(n), argv[0]);
+ writex(1, SYM_DATA, sizeof(SYM_DATA), argv[0]);
+ writex(1, SYM_LEN, sizeof(SYM_LEN), argv[0]);
+
+ N_SETMAGIC(exec, OMAGIC, MID_MACHINE, 0);
+ exec.a_text = ALIGN(data_len) + sizeof(data_len);
+ exec.a_data = 0;
+ exec.a_bss = 0;
+ exec.a_syms = sizeof(nlist);
+ exec.a_trsize = 0;
+ exec.a_drsize = 0;
+ lseek(1, (off_t)0, SEEK_SET);
+ writex(1, &exec, sizeof(exec), argv[0]);
+ exit(0);
+}
diff --git a/distrib/pc532/floppies/inst-common/dot.commonutils b/distrib/pc532/floppies/inst-common/dot.commonutils
new file mode 100644
index 00000000000..f3a8d65018d
--- /dev/null
+++ b/distrib/pc532/floppies/inst-common/dot.commonutils
@@ -0,0 +1,137 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: dot.commonutils,v 1.1 1995/10/18 08:37:42 deraadt Exp $
+
+# Installation utilites (functions), to get NetBSD installed on
+# the hard disk. These are meant to be invoked from the shell prompt,
+# by people installing NetBSD.
+
+# we know that /etc/fstab is only generated on the hard drive
+dest_dir=/
+if [ ! -f /etc/fstab ]; then
+ dest_dir=/mnt/
+fi
+
+# counter for possible shared library confusion
+TAR=/usr/bin/tar
+GUNZIP=/usr/bin/gunzip
+
+Set_tmp_dir()
+{
+ def_tmp_dir=`pwd`
+ if [ "$def_tmp_dir" = "/" -o "$def_tmp_dir" = "/mnt" ]; then
+ def_tmp_dir="$dest_dir"usr/distrib
+ fi
+
+ echo -n "What directory should be used to find and/or store "
+ echo "installtion"
+ echo -n "files? [$def_tmp_dir] "
+ read tmp_dir
+ if [ "$tmp_dir" = "" ]; then
+ tmp_dir=$def_tmp_dir
+ fi
+ if [ ! -d "$tmp_dir" ]; then
+ /bin/rm -rf $tmp_dir
+ mkdir -p $tmp_dir
+ fi
+}
+
+Tmp_dir()
+{
+ if [ "$tmp_dir" = "" ]; then
+ Set_tmp_dir
+ fi
+ cd $tmp_dir
+}
+
+Load_fd()
+{
+ Tmp_dir
+ which=
+ echo "Don't forget that you can't load from the drive you booted from."
+ echo ""
+
+ while [ "$which" != "0" -a "$which" != "1" ]; do
+ echo -n "Read from which floppy drive ('0' or '1')? [1] "
+ read which
+ if [ "X$which" = "X" ]; then
+ which=1
+ fi
+ done
+ echo ""
+ echo "WARNING: during the floppy loading process, you should only"
+ echo "use Control-C at the prompt."
+ echo ""
+ while echo -n \
+ "Insert floppy (hit Control-C to terminate, enter to load): "
+ do
+ read foo
+ mount -t msdos /dev/fd${which}a /mnt2
+ cp -rp /mnt2/* .
+ umount /mnt2
+ done
+}
+
+Load_tape()
+{
+ Tmp_dir
+ echo -n "Which tape drive will you be using? [rst0] "
+ read which
+ if [ "X$which" = "X" ]; then
+ which=rst0
+ fi
+ echo -n "Insert the tape into the tape drive and hit return to "
+ echo -n "continue..."
+ read foo
+ echo "Extracting files from the tape..."
+ $TAR xvpf --unlink /dev/$which
+ echo "Done."
+}
+
+Extract()
+{
+ Tmp_dir
+ echo -n "Would you like to list the files as they're extracted? [n] "
+ read verbose
+ case $verbose in
+ y*|Y*)
+ tarverbose=v
+ ;;
+ *)
+ tarverbose=
+ ;;
+ esac
+ cat "$1"* | $GUNZIP | (cd $dest_dir ; $TAR --unlink -xp"$tarverbose"f - )
+}
+
+xd()
+{
+ hexdump -e '"%6_ax " 4/1 "%02x " " " 4/1 "%02x " " " 4/1 "%02x " " " 4/1 "%02x " " "' -e '16/1 "%_p" "\n"' $*
+}
diff --git a/distrib/pc532/floppies/inst-common/download.c b/distrib/pc532/floppies/inst-common/download.c
new file mode 100644
index 00000000000..35081488753
--- /dev/null
+++ b/distrib/pc532/floppies/inst-common/download.c
@@ -0,0 +1,532 @@
+/* $NetBSD: download.c,v 1.1 1995/10/06 21:00:16 phil Exp $ */
+
+/*
+ Hacked by Phil Nelson for use with NetBSD, 10/5/95.
+ This source is in the public domain except for the makeraw function.
+
+ The upload part of this program is taken from Bruce's ROM debugger
+ code.
+
+ For NetBSD, the usages are:
+
+ download file
+ - open "file" and ship it out standard output with the
+ format expected by the pc532 ROM monitor download
+ command.
+
+ download -r nfile
+ - standard input was generated by a "download file" command.
+ Capture it, checking the CRC and store it in "nfile".
+
+
+ Note: This program uses termios.
+
+Date: Tue, 27 Feb 90 11:47:38 pst
+From: Bruce Culbertson <culberts@hplwbc.hpl.hp.com>
+To: pc532@daver.bungi.com
+Subject: Re: ROM Debugger -- download command..
+
+John L. Connin <johnc%manatee%uunet@daver> writes:
+> Dave, what data format / protocol does the ROM debugger 'download' command
+> expect ??
+
+Here is the download program which I run at the other end of the
+serial line -- in my case, on an AT clone. The download protocol
+is explained in the comments in the program. I just recently added
+the download command to the monitor so let me know if you have
+problems with it or if you wish it worked differently.
+
+Bruce Culbertson
+----------------------------------------------------------------------
+*/
+/* MS-DOS Program for downloading to the NSC32000 Monitor. Use this as a
+ * template for writing downloaders for other OS's. Compile the MS-DOS
+ * version with the Microsoft C compiler.
+ *
+ * Bruce Culbertson 18 February 1990
+ */
+
+/* Instructions for use:
+ *
+ * machine prompt, command, etc.
+ * -------------------------------------------------------------------
+ * 32000 Command (? for help): download <address>
+ * MS-DOS [exit terminal emulator]
+ * MS-DOS C> <this program> <file name to download>
+ * MS-DOS [re-enter terminal emulator]
+ * 32000 [hit return to get status of download]
+ * 32000 Command (? for help): ...
+ *
+ * At any point you can send control-C (e.g. using your terminal emulator)
+ * to the 32000 monitor to abort the download and return to the monitor
+ * prompt.
+ */
+
+/* Download protocol:
+ *
+ * <start mark> <length> <data> <CRC>
+ *
+ * Below, the sending machine is called SRC, receiving machine is DST.
+ * Eight bit characters are used.
+ *
+ * Control-C (0x03) aborts the transfer. This capability is nice
+ * to have if, for example, length is garbled and the DST expects
+ * billions of characters. Since any byte of <length>, <data>,
+ * or <CRC> could be control-C, we need to have a quote character.
+ * I use ESC (0x1b). Thus, control-C and ESC are sent as
+ * {0x1b 0x03} and {0x1b 0x1b}, respectively.
+ *
+ * Start mark:
+ * This is a colon. When SRC begins sending, DST loops until it sees
+ * the start mark. Thus, if spurious characters are sent as the
+ * user switches from terminal emulator to download program on SRC,
+ * DST can ignore them.
+ *
+ * Length:
+ * Four bytes, least significant first. The length is number of
+ * data bytes to be transfered, not including quote characters.
+ * The two CRC bytes are also not included in the length.
+ *
+ * Data:
+ * A byte is sent as a byte, with quoting if necessary.
+ *
+ * CRC:
+ * Two bytes, least significant first. Use CCITT CRC generator
+ * polynomial (x^16 + x^12 + x^5 + 1). Compute on data only (not
+ * length or start) and exclude quotes. (This is the same CRC
+ * as computed by Minix's CRC command.)
+ */
+
+#include <stdio.h>
+#include <fcntl.h>
+
+#ifdef MSDOS
+
+# define OPEN_FLAGS (O_RDONLY | O_BINARY)
+# define off_t long
+# define DEFAULT_PORT 1
+long lseek();
+int port_num = DEFAULT_PORT;
+int port;
+
+#else
+
+# include <unistd.h>
+# define OPEN_FLAGS O_RDONLY
+
+#endif
+
+#define CCITT_GEN 0x11021 /* x^16 + x^12 + x^5 + 1 */
+#define BUFSZ 0x1000
+#define ESC 0x1b
+#define CTL_C 0x03
+#define START ':'
+
+char buf[BUFSZ];
+long write_data(), write_header();
+
+void putch ();
+
+void
+usage(name)
+ char *name;
+{
+ fprintf (stderr, "usage: %s [-r] <file>\n", name);
+ exit (-1);
+}
+
+/* Output a character. If it is a CLT_C or ESC, then quote (preceed)
+ * it with a ESC.
+ */
+void
+write_ch (c)
+int c;
+{
+ if (c == ESC || c == CTL_C)
+ putch (ESC);
+ putch (c);
+}
+
+/* Write two CRC bytes, LSB first.
+ */
+void
+write_crc (crc)
+long crc;
+{
+ write_ch ((int)((crc >> 0) & 0xff));
+ write_ch ((int)((crc >> 8) & 0xff));
+}
+
+
+/* Given old CRC and new character, return new CRC. Uses standard
+ * CCITT CRC generator polynomial.
+ */
+unsigned long
+update_crc (crc, ch)
+long crc;
+int ch;
+{
+ int i;
+
+ for (i = 0x80; i; i >>= 1) {
+ crc = (crc << 1) | (i & ch? 1: 0);
+ if (crc & 0x10000) crc ^= CCITT_GEN;
+ }
+ return crc;
+}
+
+/* Write header. Format is a colon followed by four byte length,
+ * LSB first. Length is the number of data bytes after quotes are
+ * removed.
+ */
+long
+write_header (fd)
+int fd;
+{
+ long len;
+
+ if (0 == (len = lseek (fd, (off_t)0, 2))) {
+ fprintf (stderr, "file length is zero\n");
+ exit (-1);
+ }
+ lseek (fd, (off_t)0, 0);
+ write_ch (START);
+ write_ch ((int)((len >> 0) & 0xff));
+ write_ch ((int)((len >> 8) & 0xff));
+ write_ch ((int)((len >> 16) & 0xff));
+ write_ch ((int)((len >> 24) & 0xff));
+ return len;
+}
+
+/* Write data.
+ */
+long
+write_data (fd)
+int fd;
+{
+ long len, crc = 0;
+ char *p;
+
+ for (;;) {
+ len = read (fd, buf, BUFSZ);
+ if (-1 == len) {
+ fprintf (stderr, "read failed\n");
+ exit (-1);
+ }
+ if (len == 0) break;
+ for (p = buf; p < buf + len; ++p) {
+ write_ch (*p);
+ crc = update_crc (crc, *p);
+ }
+ }
+ return crc;
+}
+
+
+#ifdef MSDOS
+/* Write hardware directly since BIOS and DOS are not reliable.
+ */
+#define COM_WR 0
+#define COM_RD 0
+#define COM_IER 1
+#define COM_CTL 3
+#define COM_STAT 5
+#define COM_CTL_VAL 3 /* 8 bits, 1 stop, no parity */
+#define COM_IER_VAL 0 /* interrupts off */
+#define COM_TX_RDY 0x20
+
+int old_control, old_ier;
+
+/* Output a character to the serial port.
+ */
+void
+putch (c)
+int c;
+{
+ int stat;
+
+ for (;;) {
+ stat = inp (port + COM_STAT);
+ if (stat & COM_TX_RDY) break;
+ }
+ outp (port + COM_WR, c);
+}
+
+/* Initialize serial port and save old values. Assume baud rate
+ * already set.
+ */
+init_port()
+{
+ old_control = inp (port + COM_IER);
+ old_ier = inp (port + COM_CTL);
+ outp (port + COM_CTL, COM_CTL_VAL);
+ outp (port + COM_IER, COM_IER_VAL);
+}
+
+/* Restore serial port to old configuration.
+ */
+restore_port()
+{
+ outp (port + COM_CTL, old_control);
+ outp (port + COM_IER, old_ier);
+}
+
+#else
+
+/* dummy routines for Unix! */
+void
+putch (int c)
+{
+ putchar (c);
+}
+
+#include <termios.h>
+
+struct termios oldstate;
+struct termios newstate;
+int atty;
+
+/* The following function is covered by: */
+
+/*-
+ * Copyright (c) 1989, 1993
+ * The Regents of the University of California. 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.
+ * 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 University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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, 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.
+ */
+
+/*
+ * Make a pre-existing termios structure into "raw" mode: character-at-a-time
+ * mode with no characters interpreted, 8-bit data path.
+ */
+void
+makeraw(t)
+ struct termios *t;
+{
+ t->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON);
+ t->c_oflag &= ~OPOST;
+ t->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
+ t->c_cflag &= ~(CSIZE|PARENB);
+ t->c_cflag |= CS8;
+}
+
+/* End of copyrighted material. */
+
+void
+init_port(int fd)
+{
+ atty = isatty(fd);
+ if (atty) {
+ tcgetattr (fd, &oldstate);
+ newstate = oldstate;
+ makeraw(&newstate);
+ tcsetattr (fd, TCSANOW, &newstate);
+ }
+}
+
+void
+restore_port(int fd)
+{
+ if (atty) {
+ tcsetattr (fd, TCSANOW, &oldstate);
+ }
+}
+
+int
+get_int (val, len)
+unsigned long *val;
+long len;
+{
+ unsigned char c;
+ int shift = 0;
+
+ *val = 0;
+
+ while (len > 0) {
+ c = getchar ();
+ if (c == CTL_C) return 0; /* handle control-C */
+ if (c == ESC) c = getchar (); /* handle quote */
+ *val = *val + (c<<(8*shift++));
+ --len;
+ }
+ return 1;
+}
+
+int
+get_file (f, len, crc)
+FILE *f;
+unsigned long len, *crc;
+{
+ unsigned char c;
+
+ while (len > 0) {
+ c = getchar ();
+ if (c == CTL_C) return 0; /* handle control-C */
+ if (c == ESC) c = getchar (); /* handle quote */
+ fputc(c,f);
+ *crc = update_crc (*crc, c); /* compute crc, skip quote */
+ --len;
+ }
+ return 1;
+}
+
+/* Upload end of the commands for Unix! */
+
+void
+upload (name)
+char *name;
+{
+ unsigned long crc, adr, len;
+ unsigned char c;
+ unsigned long xcrc;
+ FILE *f;
+
+ /* Open the file. */
+ f = fopen (name, "w");
+ if (f == NULL) {
+ printf ("Could not open \"%s\" for writing.\n", name);
+ exit(1);
+ }
+
+ /* set raw mode for input. */
+ init_port(0);
+
+ /* get start character */
+ for (;;) {
+ c = getchar();
+ if (c == START) break;
+ if (c == CTL_C) return;
+ }
+
+ /* get len in little endian form */
+ if (!get_int (&len, 4)) {
+ fprintf (stderr, "Upload interrupted.\n");
+ restore_port(0);
+ exit(2);
+ }
+ crc = 0; /* crc on data only */
+ if (!get_file (f, len, &crc)) { /* get data */
+ fprintf (stderr, "Upload interrupted.\n");
+ restore_port(0);
+ exit(3);
+ }
+ /* get crc in little endian */
+ if (!get_int (&xcrc, 2)) {
+ fprintf (stderr, "Upload interrupted.\n");
+ restore_port(0);
+ exit(4);
+ }
+ if (crc == xcrc) /* print status */
+ printf ("CRC ok, length = %d\n", len);
+ else
+ printf ("CRC error, received %d, expected %d, length %d\n",
+ xcrc, crc, len);
+
+ fclose (f);
+
+ /* Restore tty parameters. */
+ restore_port(0);
+}
+
+#endif
+
+
+/* Main program */
+int
+main (argc, argv)
+ int argc;
+ char **argv;
+{
+ int fd;
+ long crc, len;
+
+#ifdef MSDOS
+ /* MSDOS argument processing */
+ if (argc == 3) {
+ if (1 != sscanf (argv[2], "%d", &port_num)) {
+ fprintf (stderr, "Bad serial port, use 1 or 2\n");
+ exit (-1);
+ }
+ --argc;
+ }
+ if (argc != 2) {
+ fprintf (stderr, "usage: %s <file> [<serial port>]\n", argv[0]);
+ exit (-1);
+ }
+ if (port_num == 1) port = 0x3f8;
+ else if (port_num == 2) port = 0x2f8;
+ else {
+ fprintf (stderr, "Bad serial port, use 1 or 2\n");
+ exit (-1);
+ }
+
+#else
+
+ int do_receive = 0;
+ int ch;
+ extern int optind;
+
+ /* Unix argument processing */
+ while ((ch = getopt(argc, argv, "r")) != -1) {
+ switch (ch) {
+
+ case 'r': /* Receive end of a download, use "upload()". */
+ do_receive = 1;
+ break;
+
+ case '?':
+ default:
+ usage(argv[0]);
+ return (1);
+ }
+ }
+
+ if (argc-1 != optind)
+ usage(argv[0]);
+
+ if (do_receive) {
+ upload (argv[2]);
+ exit (0);
+ }
+
+#endif
+
+ if (0 > (fd = open (argv[1], OPEN_FLAGS))) {
+ fprintf (stderr, "can not open \"%s\" for reading\n", argv[1]);
+ exit (-1);
+ }
+
+ init_port(1);
+ len = write_header (fd);
+ crc = write_data (fd);
+ write_crc (crc);
+ printf ("Length=%ld CRC=%ld\n", len, crc);
+ restore_port(1);
+ exit (0);
+}
diff --git a/distrib/pc532/floppies/inst-common/go.c b/distrib/pc532/floppies/inst-common/go.c
new file mode 100644
index 00000000000..ecee0b7233b
--- /dev/null
+++ b/distrib/pc532/floppies/inst-common/go.c
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 1995 Matthias Pfaller.
+ * 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.
+ * 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 Matthias Pfaller.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+ *
+ * $Id: go.c,v 1.1 1995/10/18 08:37:42 deraadt Exp $
+ */
+
+#include <sys/reboot.h>
+register r6 asm("r6");
+
+/*
+ * In order to install netbsd on 4mb machines, netbsd must survive an overflow
+ * of the real kernel into the netbsd image. So the compressed kernel image
+ * has to be linked in front of the uncompressing code. This code fragment
+ * sets the default root disk to rd0 and then jumps behind the compressed
+ * kernel image.
+ */
+
+go()
+{
+ extern begin() asm("begin");
+ /* One more place that knows that rd is at major 3 ... */
+ r6 = MAKEBOOTDEV(3, 0, 0, 0, 0);
+ begin();
+}
diff --git a/distrib/pc532/floppies/inst-common/inject.c b/distrib/pc532/floppies/inst-common/inject.c
new file mode 100644
index 00000000000..d5dd4bcc0f0
--- /dev/null
+++ b/distrib/pc532/floppies/inst-common/inject.c
@@ -0,0 +1,124 @@
+/*
+ * Copyright (c) 1995 Matthias Pfaller.
+ * 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.
+ * 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 Matthias Pfaller.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+ *
+ * $Id: inject.c,v 1.1 1995/10/18 08:37:42 deraadt Exp $
+ */
+
+#include <stdio.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/mman.h>
+#include <bm.h>
+
+/*
+ * Map a file
+ */
+
+void *map(char *file, int mode, int *len)
+{
+ int fd;
+ struct stat sb;
+ void *p;
+
+ /* Open the file we'd like map */
+ fd = open(file, mode);
+ if (fd < 0) {
+ perror(file);
+ exit(1);
+ }
+
+ /* Get the length of the file */
+ if (fstat(fd, &sb) < 0) {
+ perror("fstat");
+ exit(1);
+ }
+
+ /* Return the length of file in len */
+ *len = sb.st_size;
+
+ /* Now map the file */
+ p = mmap(NULL, *len, PROT_READ | (mode == O_RDWR ? PROT_WRITE : 0),
+ MAP_SHARED, fd, 0);
+ if (p == NULL) {
+ perror("mmap");
+ exit(1);
+ }
+
+ /*
+ * We will access this mostly sequential.
+ * So let's tell it to the vm system.
+ */
+ madvise(p, *len, MADV_SEQUENTIAL);
+ close(fd);
+ return(p);
+}
+
+main(int argc, char **argv)
+{
+ void *kern, *filesys, *ramdisk;
+ int kernlen, filesyslen;
+ bm_pat *bm;
+ static char pattern[] = "Ramdiskorigin";
+
+ if (argc != 3) {
+ fprintf(stderr, "usage: %s kernel filesystem", argv[0]);
+ exit(1);
+ }
+
+ /* Map the kernel image read/write */
+ kern = map(argv[1], O_RDWR, &kernlen);
+
+ /* Map the filesystem image read only */
+ filesys = map(argv[2], O_RDONLY, &filesyslen);
+
+ /* Search the kernel image for the ramdisk signature */
+ bm = bm_comp(pattern, sizeof(pattern), NULL);
+ ramdisk = bm_exec(bm, kern, kernlen);
+ if (!ramdisk) {
+ fprintf(stderr, "Origin of ramdisk not found in kernel\n");
+ exit(1);
+ }
+
+ /* Does the filesystem image fit into the kernel image? */
+ if ((kernlen - (ramdisk - kern)) < filesyslen) {
+ fprintf(stderr, "Kernel image to small\n");
+ exit(1);
+ }
+
+ /* Copy the filesystem image into the kernel image */
+ memcpy(ramdisk, filesys, filesyslen);
+
+ /* Sync vm/fs and unmap the images */
+ msync(kern, kernlen);
+ munmap(kern, kernlen);
+ munmap(filesys, filesyslen);
+ exit(0);
+}
diff --git a/distrib/pc532/floppies/inst-common/instbin.conf b/distrib/pc532/floppies/inst-common/instbin.conf
new file mode 100644
index 00000000000..43bb6b399c6
--- /dev/null
+++ b/distrib/pc532/floppies/inst-common/instbin.conf
@@ -0,0 +1,38 @@
+#
+# kcbin.conf - unified binary for the kc floppy
+# $Id: instbin.conf,v 1.1 1995/10/18 08:37:42 deraadt Exp $
+#
+
+srcdirs bin sbin usr.bin usr.sbin gnu/usr.bin games
+
+progs basename bc bim cat chat chmod chown chroot cp
+progs date dd df dirname disklabel dmesg domainname dump
+progs expr factor find fsck ftp gawk gzip hostname hexdump ifconfig init
+progs kill kvm_mkdb ln ls mkdir mknod more
+progs mount mount_cd9660 mount_ffs mount_msdos mount_nfs mt mv netstat newfs
+progs pax ping pppd pppstats ps pwd rcp reboot restore rm rmdir route
+progs sed sh shutdown slattach strings stty swapon sync test tip traceroute
+progs umount update vi
+
+special chat srcdir /usr/src/usr.sbin/pppd/chat
+special pppstats srcdir /usr/src/usr.sbin/pppd/pppstats
+special vi srcdir /usr/src/usr.bin/vi/common
+
+ln chown chgrp
+ln dump rdump
+ln gawk awk
+ln gzip gzcat gunzip
+ln sh -sh # init invokes the shell this way
+ln test [
+ln mount_cd9660 cd9660
+ln mount_ffs ffs
+ln mount_msdos msdos
+ln mount_nfs nfs
+ln pax tar
+ln pax cpio
+ln restore rrestore
+ln vi ex
+ln vi view
+ln reboot halt
+
+libs -lkvm -ledit -lcurses -lutil -ltermcap -lcrypt -ll -lm
diff --git a/distrib/pc532/floppies/inst-common/list b/distrib/pc532/floppies/inst-common/list
new file mode 100644
index 00000000000..d63c66bc7fb
--- /dev/null
+++ b/distrib/pc532/floppies/inst-common/list
@@ -0,0 +1,109 @@
+# $Id: list,v 1.1 1995/10/18 08:37:42 deraadt Exp $
+
+# copy the MAKEDEV script and make some devices
+COPY ${DESTDIR}/dev/MAKEDEV dev/MAKEDEV
+SPECIAL cd dev; sh MAKEDEV floppy
+SPECIAL /bin/rm dev/MAKEDEV
+
+# we need the contents of /usr/mdec (XXX)
+COPY ${DESTDIR}/usr/mdec/* usr/mdec
+
+# various files that we need in /etc for the install
+COPY ${TOPDIR}/../../../etc/group etc
+COPY ${TOPDIR}/../../../etc/master.passwd etc
+COPY ${TOPDIR}/../../../etc/protocols etc
+COPY ${TOPDIR}/../../../etc/services etc
+SPECIAL >etc/ppp/options
+COPY ${OBJDIR}/pwd_mkdb pwd_mkdb
+SPECIAL /usr/sbin/chroot . ./pwd_mkdb -p /etc/master.passwd
+SPECIAL /bin/rm pwd_mkdb
+
+# copy the crunched binary, link to it
+COPY ${OBJDIR}/netbsd.gz netbsd.gz
+COPY ${OBJDIR}/instbin instbin
+LINK instbin bin/cat
+LINK instbin bin/chmod
+LINK instbin bin/cp
+LINK instbin bin/date
+LINK instbin bin/dd
+LINK instbin bin/df
+LINK instbin bin/domainname
+LINK instbin bin/expr
+LINK instbin bin/hostname
+LINK instbin bin/kill
+LINK instbin bin/ln
+LINK instbin bin/ls
+LINK instbin bin/mkdir
+LINK instbin bin/mt
+LINK instbin bin/mv
+LINK instbin bin/pax
+LINK instbin bin/ps
+LINK instbin bin/pwd
+LINK instbin bin/rcp
+LINK instbin bin/rm
+LINK instbin bin/rmdir
+LINK instbin bin/sh
+LINK instbin bin/stty
+LINK instbin bin/sync
+LINK instbin bin/test
+LINK instbin bin/[
+LINK instbin sbin/bim
+LINK instbin sbin/disklabel
+LINK instbin sbin/dmesg
+LINK instbin sbin/dump
+LINK instbin sbin/fsck
+LINK instbin sbin/halt
+LINK instbin sbin/ifconfig
+LINK instbin sbin/init
+LINK instbin sbin/mknod
+LINK instbin sbin/mount
+LINK instbin sbin/mount_cd9660
+LINK instbin sbin/mount_ffs
+LINK instbin sbin/mount_msdos
+LINK instbin sbin/mount_nfs
+LINK instbin sbin/newfs
+LINK instbin sbin/ping
+LINK instbin sbin/rdump
+LINK instbin sbin/reboot
+LINK instbin sbin/restore
+LINK instbin sbin/route
+LINK instbin sbin/rrestore
+LINK instbin sbin/shutdown
+LINK instbin sbin/slattach
+LINK instbin sbin/swapon
+LINK instbin sbin/umount
+SYMLINK /instbin usr/bin/awk
+SYMLINK /instbin usr/bin/basename
+SYMLINK /instbin usr/bin/chgrp
+SYMLINK /instbin usr/bin/cpio
+SYMLINK /instbin usr/bin/dirname
+SYMLINK /instbin usr/bin/hexdump
+SYMLINK /instbin usr/bin/ex
+SYMLINK /instbin usr/bin/find
+SYMLINK /instbin usr/bin/ftp
+SYMLINK /instbin usr/bin/gunzip
+SYMLINK /instbin usr/bin/gzcat
+SYMLINK /instbin usr/bin/gzip
+SYMLINK /instbin usr/bin/more
+SYMLINK /instbin usr/bin/netstat
+SYMLINK /instbin usr/bin/sed
+SYMLINK /instbin usr/bin/strings
+SYMLINK /instbin usr/bin/tar
+SYMLINK /instbin usr/bin/tip
+SYMLINK /instbin usr/bin/vi
+SYMLINK /instbin usr/bin/view
+SYMLINK /instbin usr/games/factor
+SYMLINK /instbin usr/sbin/chat
+SYMLINK /instbin usr/sbin/chown
+SYMLINK /instbin usr/sbin/chroot
+SYMLINK /instbin usr/sbin/kvm_mkdb
+SYMLINK /instbin usr/sbin/pppd
+SYMLINK /instbin usr/sbin/pppstats
+SYMLINK /instbin usr/sbin/traceroute
+SYMLINK /instbin usr/sbin/update
+
+#SPECIAL /bin/rm instbin
+
+# and the common installation tools
+COPY ${TOPDIR}/inst-common/dot.commonutils .commonutils
+COPY ${TOPDIR}/inst-common/termcap.vt100 usr/share/misc/termcap
diff --git a/distrib/pc532/floppies/inst-common/memory_map b/distrib/pc532/floppies/inst-common/memory_map
new file mode 100644
index 00000000000..2017799dfd7
--- /dev/null
+++ b/distrib/pc532/floppies/inst-common/memory_map
@@ -0,0 +1,5 @@
+0x400000 Top of physical RAM for 4mb machine
+0x3EB800 Start of boot code
+0x288000 Start of ramdisk when booting from rd0
+0x240000 Start of netbsd image (may overflow into rd0 image)
+0x002000 Start of kernel (may overflow into netbsd image)
diff --git a/distrib/pc532/floppies/inst-common/mtree.conf b/distrib/pc532/floppies/inst-common/mtree.conf
new file mode 100644
index 00000000000..e8a96b45693
--- /dev/null
+++ b/distrib/pc532/floppies/inst-common/mtree.conf
@@ -0,0 +1,111 @@
+# $Id: mtree.conf,v 1.1 1995/10/18 08:37:42 deraadt Exp $
+
+/set type=dir uname=root gname=wheel mode=0755
+# .
+.
+
+# ./bin
+bin
+# ./bin
+..
+
+# ./dev
+dev
+# ./dev
+..
+
+# ./etc
+etc
+
+# ./etc/ppp
+ppp
+# ./etc/ppp
+..
+
+# ./etc
+..
+
+# ./mnt
+mnt
+# ./mnt
+..
+
+# ./mnt2
+mnt2
+# ./mnt2
+..
+
+# ./sbin
+sbin
+# ./sbin
+..
+
+# ./tmp
+tmp
+# ./tmp
+..
+
+# ./var
+var
+
+# ,/var/run
+run
+# ./var/run
+..
+
+# ,/var/db
+db
+# ./var/db
+..
+
+# ./var/tmp
+tmp
+
+# ./var/tmp/vi.recover
+vi.recover
+# ./var/tmp/vi.recover
+..
+
+# ./var/tmp
+..
+
+# ./var
+..
+
+# ./usr
+usr
+
+# ./usr/bin
+bin
+# ./usr/bin
+..
+
+# ./usr/games
+games
+# ./usr/games
+..
+
+
+# ./usr/mdec
+mdec
+# ./usr/mdec
+..
+
+# ./usr/sbin
+sbin
+# ./usr/sbin
+..
+
+# ./usr/share
+share
+
+# ./usr/share/misc
+misc
+# ./usr/share/misc
+..
+
+# ./usr/share
+..
+
+# ./usr
+..
diff --git a/distrib/pc532/floppies/inst-common/termcap.vt100 b/distrib/pc532/floppies/inst-common/termcap.vt100
new file mode 100644
index 00000000000..4710fb55d15
--- /dev/null
+++ b/distrib/pc532/floppies/inst-common/termcap.vt100
@@ -0,0 +1,16 @@
+vt_keys:\
+ :Pu=\E[A!\EOA:Pd=\E[B!\EOB:Pr=\E[C!\EOC:Pl=\E[D!\EOD:\
+ :P0=\EOp!\E[3~:P1=\EOq!\E[12~:P2=\EOr!\E[20~:P3=\EOs!\E[13~:\
+ :P4=\EOt!\E[11~:P5=\EOu!\E[21~:P6=\EOv!\E[14~:P7=\EOw!\E[15~:\
+ :P8=\EOx!\E[5~:P9=\EOy!\E[24~:PE=\EOM:PD=\EOn!\E[2~:\
+ :PL=\EOP!\E[4~!\E[H:PR=\EOQ!\E[6~:PS=\EOR!\E[23~:\
+ :PX=\EOS!\E[18~!\E[1~:PM=\EOm!\E[19~:PP=\EOl!\E[17~:
+
+vt100|xterm:\
+ :AL=\E[%dL:DL=\E[%dM:al=\E[L:bs:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
+ :cm=\E[%i%d;%dH:co#80:cs=\E[%i%r%d;%dr:dc=\E[P:dl=\E[M:do=^J:\
+ :ei=:ic=\E[@:im=:k0=\EOY:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
+ :k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:k9=\EOX:kb=^H:kd=\EOB:\
+ :ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:li#24:\
+ :nd=\E[C:pt:rs=\E[?5l:se=\E[m:so=\E[7m:sr=\EM:te=\E>:ti=\E=:\
+ :up=\E[A:xn:tc=vt_keys:
diff --git a/distrib/pc532/floppies/inst/Makefile b/distrib/pc532/floppies/inst/Makefile
new file mode 100644
index 00000000000..b72b0db71df
--- /dev/null
+++ b/distrib/pc532/floppies/inst/Makefile
@@ -0,0 +1,8 @@
+# $Id: Makefile,v 1.1 1995/10/18 08:37:43 deraadt Exp $
+
+TOP= ${.CURDIR}/..
+
+.include "${TOP}/Makefile.inc"
+IMAGE= inst-${REV}.fs
+
+.include "${TOP}/inst-common/Makefile.inc"
diff --git a/distrib/pc532/floppies/inst/disktab.preinstall b/distrib/pc532/floppies/inst/disktab.preinstall
new file mode 100644
index 00000000000..5fe26a7d81c
--- /dev/null
+++ b/distrib/pc532/floppies/inst/disktab.preinstall
@@ -0,0 +1,29 @@
+# Disk geometry and partition layout tables.
+# Key:
+# dt controller type
+# ty type of disk (fixed, removeable, simulated)
+# d[0-4] drive-type-dependent parameters
+# ns #sectors/track
+# nt #tracks/cylinder
+# nc #cylinders/disk
+# sc #sectors/cylinder, nc*nt default
+# su #sectors/unit, sc*nc default
+# se sector size, DEV_BSIZE default
+# rm rpm, 3600 default
+# sf supports bad144-style bad sector forwarding
+# sk sector skew per track, default 0
+# cs sector skew per cylinder, default 0
+# hs headswitch time, default 0
+# ts one-cylinder seek time, default 0
+# il sector interleave (n:1), 1 default
+# bs boot block size, default BBSIZE
+# sb superblock size, default SBSIZE
+# o[a-h] partition offsets in sectors
+# p[a-h] partition sizes in sectors
+# b[a-h] partition block sizes in bytes
+# f[a-h] partition fragment sizes in bytes
+# t[a-h] partition types (filesystem, swap, etc)
+#
+# All partition sizes reserve space for bad sector tables.
+# (5 cylinders needed for maintenance + replacement sectors)
+#
diff --git a/distrib/pc532/floppies/inst/dot.hdprofile b/distrib/pc532/floppies/inst/dot.hdprofile
new file mode 100644
index 00000000000..82e5f5ef570
--- /dev/null
+++ b/distrib/pc532/floppies/inst/dot.hdprofile
@@ -0,0 +1,62 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: dot.hdprofile,v 1.1 1995/10/18 08:37:43 deraadt Exp $
+
+PATH=/sbin:/bin:/usr/bin:/usr/sbin:/usr/games:/
+export PATH
+TERM=vt100
+export TERM
+
+umask 022
+
+if [ "X${DONEPROFILE}" = "X" ]; then
+ DONEPROFILE=YES
+
+ echo "Checking filesystems..."
+ fsck -y
+
+ echo "Mounting filesystems..."
+ mount -a
+
+ # set up some sane defaults
+ echo 'erase ^?, werase ^W, kill ^U, intr ^C'
+ stty newcrt werase ^W intr ^C kill ^U erase ^?
+ echo ''
+
+ # run update, so that installed software is written as it goes.
+ update
+
+ # pull in the functions that people will use from the shell prompt.
+ . /.commonutils
+ . /.instutils
+
+ echo "Follow the installation directions to install the NetBSD"
+ echo "distribution sets."
+fi
diff --git a/distrib/pc532/floppies/inst/dot.instutils b/distrib/pc532/floppies/inst/dot.instutils
new file mode 100644
index 00000000000..7fbc8927ac5
--- /dev/null
+++ b/distrib/pc532/floppies/inst/dot.instutils
@@ -0,0 +1,157 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: dot.instutils,v 1.1 1995/10/18 08:37:43 deraadt Exp $
+
+# Installation configuration utilites (functions), to get NetBSD configured
+# reasonably once it is installed on the hard disk. These are meant to be
+# invoked from the shell prompt, by people installing NetBSD.
+
+Configure()
+{
+ DEV=/dev
+ ETC=/etc
+ if [ ! -f /etc/fstab ]; then
+ DEV=/mnt/dev
+ ETC=/mnt/etc
+ fi
+
+ echo "You will now be prompted for information about this"
+ echo "machine. If you hit return, the default answer (in"
+ echo "brackets) will be used."
+
+ echo ""
+ echo -n "What is this machine's hostname? [unknown.host.domain] "
+ read hname
+ if [ "$hname" = "" ]; then
+ hname=unknown.host.domain
+ fi
+ echo $hname > ${ETC}/myname
+ proto_domain=`echo $hname | sed -e 's/[^.]*\.//'`
+
+ echo ""
+ echo "What domain is this machine in (this is NOT its YP"
+ echo -n "domain name)? [$proto_domain] "
+ read dname
+ if [ "$dname" = "" ]; then
+ dname=$proto_domain
+ fi
+
+ echo ""
+ if [ -e $ETC/sendmail.cf ]; then
+ echo "WARNING: A default sendmail.cf exists, and probably"
+ echo "needs to be tuned and/or replaced, to work properly at"
+ echo "your site!"
+ else
+ echo "WARNING: No default sendmail.cf installed. Did you"
+ echo "forget to install the 'etc' distribution?"
+ fi
+
+ echo "127.0.0.1 localhost localhost.$dname" > ${ETC}/hosts
+
+ echo ""
+ echo -n "Does this machine have an ethernet interface? [y] "
+ read resp
+ case "$resp" in
+ n*)
+ ;;
+ *)
+ intf=
+ while [ "$intf" = "" ]; do
+ echo -n "What is the primary interface name "
+ echo -n "(e.g. ed0, ep0, etc)? "
+ read intf
+ done
+ echo -n "What is the hostname for this interface? [$hname] "
+ read ifname
+ if [ "$ifname" = "" ]; then
+ ifname=$hname
+ fi
+ ifaddr=
+ while [ "$ifaddr" = "" ]; do
+ echo -n "What is the IP address associated with "
+ echo -n "interface ${intf}? "
+ read ifaddr
+ done
+ echo "$ifaddr $ifname `echo $ifname | sed -e s/\.$dname//`" \
+ >> ${ETC}/hosts
+
+ echo -n "Does this interface have a special netmask? [n] "
+ read resp
+ case "$resp" in
+ y*)
+ echo -n "What is the netmask? [0xffffff00] "
+ read ifnetmask
+ if [ "$ifnetmask" = "" ]; then
+ ifnetmask=0xffffff00
+ fi
+ ;;
+ *)
+ ifnetmask=
+ ;;
+ esac
+
+ echo -n "Does this interface need additional flags? [n] "
+ read resp
+ case "$resp" in
+ y*)
+ echo -n "What flags? [link0] "
+ read ifflags
+ if [ "$ifflags" = "" ]; then
+ ifflags=link0
+ fi
+ ;;
+ *)
+ ifflags=
+ ;;
+ esac
+ echo "inet $ifname $ifnetmask $ifflags" > ${ETC}/hostname.$intf
+
+ echo ""
+ echo -n "WARNING: if you have any more ethernet interfaces, "
+ echo "you will have to configure"
+ echo -n "them by hand. Read the comments in /etc/netstart to "
+ echo "learn how to do this."
+ ;;
+ esac
+
+ echo ""
+ echo -n "Making device nodes (may take a while)..."
+ cd ${DEV}
+ sh MAKEDEV all
+ echo " done."
+
+ sync
+
+ echo ""
+ echo "If you haven't already installed a kernel on the hard drive"
+ echo "using your kernel-copy floppy, do so now. Kernel"
+ echo "installation instructions can be found in the"
+ echo "installation notes."
+}
diff --git a/distrib/pc532/floppies/inst/dot.profile b/distrib/pc532/floppies/inst/dot.profile
new file mode 100644
index 00000000000..2f597b89b8f
--- /dev/null
+++ b/distrib/pc532/floppies/inst/dot.profile
@@ -0,0 +1,56 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: dot.profile,v 1.1 1995/10/18 08:37:43 deraadt Exp $
+
+PATH=/sbin:/bin:/usr/bin:/usr/sbin:/usr/games:/
+export PATH
+TERM=vt100
+export TERM
+
+umask 022
+
+if [ "X${DONEPROFILE}" = "X" ]; then
+ DONEPROFILE=YES
+
+ # set up some sane defaults
+ echo 'erase ^?, werase ^W, kill ^U, intr ^C'
+ stty werase ^W intr ^C kill ^U erase ^?
+ echo ''
+
+ # run update, so that installed software is written as it goes.
+ update
+
+ # pull in the functions that people will use from the shell prompt.
+ . /.commonutils
+ . /.instutils
+
+ # run the installation script.
+ install
+fi
diff --git a/distrib/pc532/floppies/inst/install.sh b/distrib/pc532/floppies/inst/install.sh
new file mode 100644
index 00000000000..9cf4a58f1a3
--- /dev/null
+++ b/distrib/pc532/floppies/inst/install.sh
@@ -0,0 +1,476 @@
+#!/bin/sh
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: install.sh,v 1.1 1995/10/18 08:37:43 deraadt Exp $
+
+# NetBSD installation script.
+# In a perfect world, this would be a nice C program, with a reasonable
+# user interface.
+
+DT=/etc/disktab # /etc/disktab
+FSTABDIR=/mnt/etc # /mnt/etc
+#DONTDOIT=echo
+
+VERSION=1.0
+FSTAB=${FSTABDIR}/fstab
+
+getresp() {
+ read resp
+ if [ "X$resp" = "X" ]; then
+ resp=$1
+ fi
+}
+
+echo "Welcome to the NetBSD ${VERSION} installation program."
+echo ""
+echo "This program is designed to help you put NetBSD on your hard disk,"
+echo "in a simple and rational way. You'll be asked several questions,"
+echo "and it would probably be useful to have your disk's hardware"
+echo "manual, the installation notes, and a calculator handy."
+echo ""
+echo "In particular, you will need to know some reasonably detailed"
+echo "information about your disk's geometry, because there is currently"
+echo "no way this this program can figure that information out."
+echo ""
+echo "As with anything which modifies your hard drive's contents, this"
+echo "program can cause SIGNIFICANT data loss, and you are advised"
+echo "to make sure your hard drive is backed up before beginning the"
+echo "installation process."
+echo ""
+echo "Default answers are displyed in brackets after the questions."
+echo "You can hit Control-C at any time to quit, but if you do so at a"
+echo "prompt, you may have to hit return. Also, quitting in the middle of"
+echo "installation may leave your system in an inconsistent state."
+echo ""
+echo -n "Proceed with installation? [n] "
+getresp "n"
+case "$resp" in
+ y*|Y*)
+ echo "Cool! Let's get to it..."
+ ;;
+ *)
+ echo ""
+ echo "OK, then. Enter 'halt' at the prompt to halt the"
+ echo "machine. Once the machine has halted, remove the"
+ echo "floppy and press any key to reboot."
+ exit
+ ;;
+esac
+
+echo ""
+echo "To do the installation, you'll need to provide some information about"
+echo "your disk."
+echo ""
+drivetype=sd
+sect_fwd=""
+type=SCSI
+
+# find out what units are possible for that disk, and query the user.
+driveunits=`ls /dev/${drivetype}?a | sed -e 's,/dev/\(...\)a,\1,g'`
+if [ "X${driveunits}" = "X" ]; then
+ echo "FATAL ERROR:"
+ echo "No devices for disks of type '${drivetype}'."
+ echo "This is probably a bug in the install disks."
+ echo "Exiting install program."
+ exit
+fi
+prefdrive=${drivetype}0
+
+echo ""
+echo "The following ${drivetype}-type disks are supported by this"
+echo "installation procedure:"
+echo " "${driveunits}
+echo "Note that they may not exist in _your_ machine; the list of"
+echo "disks in your machine was printed when the system was booting."
+echo ""
+while [ "X${drivename}" = "X" ]; do
+ echo -n "Which disk would like to install on? [${prefdrive}] "
+ getresp ${prefdrive}
+ otherdrives=`echo "${driveunits}" | sed -e s,${resp},,`
+ if [ "X${driveunits}" = "X${otherdrives}" ]; then
+ echo ""
+ echo "\"${resp}\" is an invalid drive name. Valid choices"
+ echo "are: "${driveunits}
+ echo ""
+ else
+ drivename=${resp}
+ fi
+done
+
+echo ""
+echo "Using disk ${drivename}."
+echo ""
+echo -n "What kind of disk is it? (one word please) [my${drivetype}] "
+getresp "my${drivetype}"
+labelname=$resp
+
+echo ""
+echo "You will now need to provide some information about your disk's"
+echo "geometry. This should either be in the User's Manual for your disk,"
+echo "or you should have written down what NetBSD printed when booting."
+echo "(Note that he geometry that's printed at boot time is preferred.)"
+echo ""
+echo -n "Number of bytes per disk sector? [512] "
+getresp 512
+bytes_per_sect="$resp"
+
+echo -n "Number of disk cylinders? "
+getresp
+cyls_per_disk="$resp"
+
+echo -n "Number of disk tracks (heads) per disk cylinder? "
+getresp
+tracks_per_cyl="$resp"
+
+echo -n "Number of disk sectors per disk track? "
+getresp
+sects_per_track="$resp"
+
+cylindersize=`expr $sects_per_track \* $tracks_per_cyl`
+cylbytes=`expr $cylindersize \* $bytes_per_sect`
+disksize=`expr $cylindersize \* $cyls_per_disk`
+
+echo ""
+echo "Your disk has a total of $disksize $bytes_per_sect byte sectors,"
+echo "arranged as $cyls_per_disk cylinders which contain $cylindersize "
+echo "sectors ($cylbytes bytes) each."
+echo ""
+echo "You can specify partition sizes in cylinders ('c') or sectors ('s')."
+while [ "X${sizemult}" = "X" ]; do
+ echo -n "What units would you like to use? [cylinders] "
+ getresp cylinders
+ case "$resp" in
+ c*|C*)
+ sizemult=$cylindersize
+ sizeunit="cylinders"
+ ;;
+ s*|S*)
+ sizemult=1
+ sizeunit="sectors"
+ ;;
+ *)
+ echo ""
+ echo "Enter cylinders ('c') or sectors ('s')."
+ ;;
+ esac
+done
+
+if [ $sizeunit = "sectors" ]; then
+ echo ""
+ echo "For best disk performance, partitions should begin and end on"
+ echo "cylinder boundaries. Wherever possible, pick sizes that are"
+ echo "multiples of the cylinder size ($cylindersize sectors)."
+fi
+
+partition=`expr $disksize / $sizemult`
+partition_sects=`expr $partition \* $sizemult`
+part_offset=0
+badspacesec=0
+if [ "$sect_fwd" = "sf:" ]; then
+ badspacecyl=`expr $sects_per_track + 126`
+ badspacecyl=`expr $badspacecyl + $cylindersize - 1`
+ badspacecyl=`expr $badspacecyl / $cylindersize`
+ badspacesec=`expr $badspacecyl \* $cylindersize`
+ echo ""
+ echo -n "Using $badspacesec sectors ($badspacecyl cylinders) for the "
+ echo "bad144 bad block table"
+fi
+
+sects_left=`expr $partition_sects - $badspacesec`
+units_left=`expr $sects_left / $sizemult`
+echo ""
+echo "There are $units_left $sizeunit left to allocate."
+echo ""
+root=0
+while [ $root -eq 0 ]; do
+ echo -n "Root partition size (in $sizeunit)? "
+ getresp
+ case $resp in
+ [1-9]*)
+ total=$resp
+ if [ $total -gt $units_left ]; then
+ echo -n "Root size is greater than remaining "
+ echo "free space on disk."
+ else
+ root=$resp
+ fi
+ ;;
+ esac
+done
+root_offset=$part_offset
+part_used=`expr $root + $badspacesec / $sizemult`
+units_left=`expr $partition - $part_used`
+echo ""
+
+swap=0
+while [ $swap -eq 0 ]; do
+ echo "$units_left $sizeunit remaining in NetBSD portion of disk."
+ echo -n "Swap partition size (in $sizeunit)? "
+ getresp
+ case $resp in
+ [1-9]*)
+ if [ $swap -gt $units_left ]; then
+ echo -n "Swap size is greater than remaining "
+ echo "free space on disk."
+ else
+ swap=$resp
+ fi
+ ;;
+ esac
+done
+swap_offset=`expr $root_offset + $root`
+part_used=`expr $part_used + $swap`
+units_left=`expr $partition - $part_used`
+echo ""
+
+boot=0
+while [ $boot -eq 0 ]; do
+ echo "$units_left $sizeunit remaining in NetBSD portion of disk."
+ echo -n "Boot partition size (in $sizeunit)? "
+ getresp
+ case $resp in
+ [1-9]*)
+ if [ $boot -gt $units_left ]; then
+ echo -n "Boot size is greater than remaining "
+ echo "free space on disk."
+ else
+ boot=$resp
+ fi
+ ;;
+ esac
+done
+boot_offset=`expr $root_offset + $root + $swap + $units_left - $boot`
+part_used=`expr $part_used + $boot`
+echo ""
+
+fragsize=1024
+blocksize=8192
+$DONTDOIT mount -u /dev/rd0 /
+cat /etc/disktab.preinstall > $DT
+echo "" >> $DT
+echo "$labelname|NetBSD installation generated:\\" >> $DT
+echo " :dt=${type}:ty=winchester:\\" >> $DT
+echo -n " :nc#${cyls_per_disk}:ns#${sects_per_track}" >> $DT
+echo ":nt#${tracks_per_cyl}:\\" >> $DT
+echo " :se#${bytes_per_sect}:${sect_fwd}\\" >> $DT
+_size=`expr $root \* $sizemult`
+_offset=`expr $root_offset \* $sizemult`
+echo -n " :pa#${_size}:oa#${_offset}" >> $DT
+echo ":ta=4.2BSD:ba#${blocksize}:fa#${fragsize}:\\" >> $DT
+_size=`expr $swap \* $sizemult`
+_offset=`expr $swap_offset \* $sizemult`
+echo " :pb#${_size}:ob#${_offset}:tb=swap:\\" >> $DT
+_size=`expr $partition \* $sizemult`
+_offset=`expr $part_offset \* $sizemult`
+echo " :pc#${_size}:oc#${_offset}:\\" >> $DT
+_size=`expr $boot \* $sizemult`
+_offset=`expr $boot_offset \* $sizemult`
+echo " :ph#${_size}:oh#${_offset}:th=boot:\\" >> $DT
+
+echo "You will now have to enter information about any other partitions"
+echo "to be created in the NetBSD portion of the disk. This process will"
+echo "be complete when you've filled up all remaining space in the NetBSD"
+echo "portion of the disk."
+
+while [ $part_used -lt $partition ]; do
+ part_size=0
+ units_left=`expr $partition - $part_used`
+ while [ $part_size -eq 0 ]; do
+ echo ""
+ echo -n "$units_left $sizeunit remaining in NetBSD portion of "
+ echo "the disk"
+ echo -n "Next partition size (in $sizeunit)? "
+ getresp
+ case $resp in
+ [1-9]*)
+ total=`expr $part_used + $resp`
+ if [ $total -gt $partition ]; then
+ echo -n "That would make the parition"
+ echo "too large to fit!"
+ else
+ part_size=$resp
+ part_used=$total
+ part_name=""
+ while [ "$part_name" = "" ]; do
+ echo -n "Mount point? "
+ getresp
+ part_name=$resp
+ done
+ fi
+ ;;
+ esac
+ done
+ if [ "$dname" = "" ]; then
+ dname=$part_name
+ offset=`expr $part_offset + $root + $swap`
+ _size=`expr $part_size \* $sizemult`
+ _offset=`expr $offset \* $sizemult`
+ echo -n " :pd#${_size}:od#${_offset}" >> $DT
+ echo ":td=4.2BSD:bd#${blocksize}:fd#${fragsize}:\\" >> $DT
+ offset=`expr $offset + $part_size`
+ elif [ "$ename" = "" ]; then
+ ename=$part_name
+ _size=`expr $part_size \* $sizemult`
+ _offset=`expr $offset \* $sizemult`
+ echo -n " :pe#${_size}:oe#${_offset}" >> $DT
+ echo ":te=4.2BSD:be#${blocksize}:fe#${fragsize}:\\" >> $DT
+ offset=`expr $offset + $part_size`
+ elif [ "$fname" = "" ]; then
+ fname=$part_name
+ _size=`expr $part_size \* $sizemult`
+ _offset=`expr $offset \* $sizemult`
+ echo -n " :pf#${_size}:of#${_offset}" >> $DT
+ echo ":tf=4.2BSD:bf#${blocksize}:ff#${fragsize}:\\" >> $DT
+ offset=`expr $offset + $part_size`
+ elif [ "$gname" = "" ]; then
+ gname=$part_name
+ _size=`expr $part_size \* $sizemult`
+ _offset=`expr $offset \* $sizemult`
+ echo -n " :pg#${_size}:og#${_offset}" >> $DT
+ echo ":tg=4.2BSD:bg#${blocksize}:fg#${fragsize}:\\" >> $DT
+ offset=`expr $offset + $part_size`
+ fi
+done
+echo " :pd#${disksize}:od#0:" >> $DT
+sync
+
+echo ""
+echo "THIS IS YOUR LAST CHANCE!!!"
+echo ""
+echo -n "Are you SURE you want NetBSD installed on your hard drive? (yes/no) "
+answer=""
+while [ "$answer" = "" ]; do
+ getresp
+ case $resp in
+ yes|YES)
+ echo ""
+ echo "Here we go..."
+ answer=yes
+ ;;
+ no|NO)
+ echo ""
+ echo -n "OK, then. enter 'halt' to halt the machine. "
+ echo "Once the machine has halted,"
+ echo -n "remove the floppy, and press any key to "
+ echo "reboot."
+ exit
+ ;;
+ *)
+ echo -n "I want a yes or no answer... well? "
+ ;;
+ esac
+done
+
+echo ""
+echo -n "Labeling disk $drivename..."
+$DONTDOIT disklabel -r -w $drivename $labelname
+$DONTDOIT echo "y"|bim -c init -c "add /usr/mdec/boot boot" -c "default 0" -c "exit" /dev/${drivename}c
+echo " done."
+
+if [ "$sect_fwd" = "sf:" ]; then
+ echo -n "Initializing bad144 badblock table..."
+ $DONTDOIT bad144 $drivename 0
+ echo " done."
+fi
+
+echo "Initializing root filesystem, and mounting..."
+$DONTDOIT newfs /dev/r${drivename}a $name
+$DONTDOIT mount -v /dev/${drivename}a /mnt
+if [ "$dname" != "" -a "$dname" != "NO" ]; then
+ echo ""
+ echo "Initializing $dname filesystem, and mounting..."
+ $DONTDOIT newfs /dev/r${drivename}d $name
+ $DONTDOIT mkdir -p /mnt/$dname
+ $DONTDOIT mount -v /dev/${drivename}d /mnt/$dname
+fi
+if [ "$ename" != "" -a "$ename" != "NO" ]; then
+ echo ""
+ echo "Initializing $ename filesystem, and mounting..."
+ $DONTDOIT newfs /dev/r${drivename}e $name
+ $DONTDOIT mkdir -p /mnt/$ename
+ $DONTDOIT mount -v /dev/${drivename}e /mnt/$ename
+fi
+if [ "$fname" != "" -a "$fname" != "NO" ]; then
+ echo ""
+ echo "Initializing $fname filesystem, and mounting..."
+ $DONTDOIT newfs /dev/r${drivename}f $name
+ $DONTDOIT mkdir -p /mnt/$fname
+ $DONTDOIT mount -v /dev/${drivename}f /mnt/$fname
+fi
+if [ "$gname" != "" -a "$gname" != "NO" ]; then
+ echo ""
+ echo "Initializing $gname filesystem, and mounting..."
+ $DONTDOIT newfs /dev/r${drivename}g $name
+ $DONTDOIT mkdir -p /mnt/$gname
+ $DONTDOIT mount -v /dev/${drivename}g /mnt/$gname
+fi
+
+echo ""
+echo "Populating filesystems with bootstrapping binaries and config files"
+$DONTDOIT tar --one-file-system -cf - . | (cd /mnt ; tar --unlink -xpf - )
+$DONTDOIT cp /tmp/.hdprofile /mnt/.profile
+$DONTDOIT gzip -d /mnt/netbsd.gz
+
+echo ""
+echo -n "Creating an fstab..."
+echo /dev/${drivename}a / ffs rw 1 1 | sed -e s,//,/, > $FSTAB
+if [ "$dname" != "" ]; then
+ echo /dev/${drivename}d /$dname ffs rw 1 2 | sed -e s,//,/, >> $FSTAB
+fi
+if [ "$ename" != "" ]; then
+ echo /dev/${drivename}e /$ename ffs rw 1 2 | sed -e s,//,/, >> $FSTAB
+fi
+if [ "$fname" != "" ]; then
+ echo /dev/${drivename}f /$fname ffs rw 1 3 | sed -e s,//,/, >> $FSTAB
+fi
+if [ "$gname" != "" ]; then
+ echo /dev/${drivename}g /$gname ffs rw 1 4 | sed -e s,//,/, >> $FSTAB
+fi
+if [ "$hname" != "" ]; then
+ echo /dev/${drivename}h /$hname ffs rw 1 5 | sed -e s,//,/, >> $FSTAB
+fi
+sync
+echo " done."
+
+echo ""
+echo ""
+echo "OK! The preliminary work of setting up your disk is now complete."
+echo "You can now boot off the hard drive."
+echo ""
+echo "The remaining tasks are:"
+echo ""
+echo "To load and install the NetBSD distribution sets."
+echo "Currently the hard drive's root filesystem is mounted on /mnt"
+echo ""
+echo "Consult the installation notes which will describe how to"
+echo "install the distribution sets and kernel. Post-installation"
+echo "configuration is also discussed therein."
+echo ""
+echo "GOOD LUCK!"
+echo ""
diff --git a/distrib/pc532/floppies/inst/list b/distrib/pc532/floppies/inst/list
new file mode 100644
index 00000000000..96ff20acdb5
--- /dev/null
+++ b/distrib/pc532/floppies/inst/list
@@ -0,0 +1,11 @@
+# $Id: list,v 1.1 1995/10/18 08:37:43 deraadt Exp $
+
+# the disktab explanation file
+COPY disktab.preinstall etc
+
+# and the installation tools
+COPY dot.profile .profile
+COPY dot.instutils .instutils
+COPY install.sh install
+COPY dot.hdprofile tmp/.hdprofile
+SPECIAL chmod 755 install
diff --git a/distrib/pc532/floppies/list2sh.awk b/distrib/pc532/floppies/list2sh.awk
new file mode 100644
index 00000000000..3155014e722
--- /dev/null
+++ b/distrib/pc532/floppies/list2sh.awk
@@ -0,0 +1,44 @@
+# $Id: list2sh.awk,v 1.1 1995/10/18 08:37:41 deraadt Exp $
+
+BEGIN {
+ printf("cd ${CURDIR}\n");
+ printf("\n");
+}
+/^$/ || /^#/ {
+ print $0;
+ next;
+}
+$1 == "COPY" {
+ printf("echo '%s'\n", $0);
+ printf("cp %s ${TARGDIR}/%s\n", $2, $3);
+ next;
+}
+$1 == "LINK" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR}; ln %s %s)\n", $2, $3);
+ next;
+}
+$1 == "SYMLINK" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR}; ln -s %s %s)\n", $2, $3);
+ next;
+}
+$1 == "SPECIAL" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR};");
+ for (i = 2; i <= NF; i++)
+ printf(" %s", $i);
+ printf(")\n");
+ next;
+}
+{
+ printf("echo '%s'\n", $0);
+ printf("echo 'Unknown keyword \"%s\" at line %d of input.'\n", $1, NR);
+ printf("exit 1\n");
+ exit 1;
+}
+END {
+ printf("\n");
+ printf("exit 0\n");
+ exit 0;
+}
diff --git a/distrib/pc532/floppies/runlist.sh b/distrib/pc532/floppies/runlist.sh
new file mode 100644
index 00000000000..1e5bde71da0
--- /dev/null
+++ b/distrib/pc532/floppies/runlist.sh
@@ -0,0 +1,13 @@
+# $Id: runlist.sh,v 1.1 1995/10/18 08:37:41 deraadt Exp $
+
+if [ "X$1" = "X-d" ]; then
+ SHELLCMD=cat
+ shift
+else
+ SHELLCMD="sh -e"
+fi
+
+( while [ "X$1" != "X" ]; do
+ cat $1
+ shift
+done ) | awk -f ${TOPDIR}/list2sh.awk | ${SHELLCMD}
diff --git a/distrib/pc532/floppies/upgr/Makefile b/distrib/pc532/floppies/upgr/Makefile
new file mode 100644
index 00000000000..246d91c455f
--- /dev/null
+++ b/distrib/pc532/floppies/upgr/Makefile
@@ -0,0 +1,8 @@
+# $Id: Makefile,v 1.1 1995/10/18 08:37:43 deraadt Exp $
+
+TOP= ${.CURDIR}/..
+
+.include "${TOP}/Makefile.inc"
+IMAGE= upgr-${REV}.fs
+
+.include "${TOP}/inst-common/Makefile.inc"
diff --git a/distrib/pc532/floppies/upgr/dot.hdprofile b/distrib/pc532/floppies/upgr/dot.hdprofile
new file mode 100644
index 00000000000..0a692babcee
--- /dev/null
+++ b/distrib/pc532/floppies/upgr/dot.hdprofile
@@ -0,0 +1,62 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: dot.hdprofile,v 1.1 1995/10/18 08:37:43 deraadt Exp $
+
+PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
+export PATH
+TERM=pc3
+export TERM
+
+umask 022
+
+if [ "X${DONEPROFILE}" = "X" ]; then
+ DONEPROFILE=YES
+
+ echo "Checking filesystems..."
+ fsck -y
+
+ echo "Mounting filesystems..."
+ mount -a
+
+ # set up some sane defaults
+ echo 'erase ^?, werase ^W, kill ^U, intr ^C'
+ stty newcrt werase ^W intr ^C kill ^U erase ^? 9600
+ echo ''
+
+ # run update, so that installed software is written as it goes.
+ update
+
+ # pull in the functions that people will use from the shell prompt.
+ . /.commonutils
+ . /.upgrutils
+
+ echo "Follow the installation directions to install the NetBSD"
+ echo "distribution sets."
+fi
diff --git a/distrib/pc532/floppies/upgr/dot.profile b/distrib/pc532/floppies/upgr/dot.profile
new file mode 100644
index 00000000000..6d3172db208
--- /dev/null
+++ b/distrib/pc532/floppies/upgr/dot.profile
@@ -0,0 +1,56 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: dot.profile,v 1.1 1995/10/18 08:37:43 deraadt Exp $
+
+PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
+export PATH
+TERM=pc3
+export TERM
+
+umask 022
+
+if [ "X${DONEPROFILE}" = "X" ]; then
+ DONEPROFILE=YES
+
+ # set up some sane defaults
+ echo 'erase ^?, werase ^W, kill ^U, intr ^C'
+ stty newcrt werase ^W intr ^C kill ^U erase ^? 9600
+ echo ''
+
+ # run update, so that installed software is written as it goes.
+ update
+
+ # pull in the functions that people will use from the shell prompt.
+ . /.commonutils
+ . /.upgrutils
+
+ # run the upgrade script.
+ upgrade
+fi
diff --git a/distrib/pc532/floppies/upgr/dot.upgrutils b/distrib/pc532/floppies/upgr/dot.upgrutils
new file mode 100644
index 00000000000..96a7f92639e
--- /dev/null
+++ b/distrib/pc532/floppies/upgr/dot.upgrutils
@@ -0,0 +1,58 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: dot.upgrutils,v 1.1 1995/10/18 08:37:43 deraadt Exp $
+
+# Upgrade cleanup utilites (functions), to make sure a recently-upgraded
+# system is safely runnable. These are meant to be invoked from the shell
+# prompt, by people installing NetBSD.
+
+Cleanup()
+{
+ upgrade_dir=/
+
+ if [ ! -f /etc/fstab ]; then
+ upgrade_dir=/mnt
+ fi
+
+ echo "Cleaning up miscellaneous files in /etc..."
+ mv $upgrade_dir/etc/rc.bak $upgrade_dir/etc/rc
+ chroot $upgrade_dir /usr/sbin/pwd_mkdb -p /etc/master.passwd
+ chroot $upgrade_dir /bin/rm /etc/sendmail.fc > /dev/null 2>&1
+ sync
+ echo "Done."
+
+ echo ""
+ echo "All that's left to do now is to install a new NetBSD kernel"
+ echo "on your hard disk. You should now halt your machine using"
+ echo "the 'halt' command. Once the machine is halted, replace the"
+ echo "installation floppy with the kernel-copy floppy and hit any"
+ echo "key to reboot. Use the kernel-copy floppy to copy a kernel"
+ echo "to your hard disk."
+}
diff --git a/distrib/pc532/floppies/upgr/list b/distrib/pc532/floppies/upgr/list
new file mode 100644
index 00000000000..e4be825d30a
--- /dev/null
+++ b/distrib/pc532/floppies/upgr/list
@@ -0,0 +1,8 @@
+# $Id: list,v 1.1 1995/10/18 08:37:43 deraadt Exp $
+
+# and the upgrade tools
+COPY dot.profile .profile
+COPY dot.upgrutils .upgrutils
+COPY upgrade.sh upgrade
+COPY dot.hdprofile tmp/.hdprofile
+SPECIAL chmod 755 upgrade
diff --git a/distrib/pc532/floppies/upgr/upgrade.sh b/distrib/pc532/floppies/upgr/upgrade.sh
new file mode 100644
index 00000000000..0d8bd1f12eb
--- /dev/null
+++ b/distrib/pc532/floppies/upgr/upgrade.sh
@@ -0,0 +1,253 @@
+#!/bin/sh
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+# $Id: upgrade.sh,v 1.1 1995/10/18 08:37:44 deraadt Exp $
+
+# NetBSD upgrade script.
+# In a perfect world, this would be a nice C program, with a reasonable
+# user interface.
+
+DT=/etc/disktab # /etc/disktab
+FSTABDIR=/mnt/etc # /mnt/etc
+#DONTDOIT=echo
+
+VERSION=1.0
+FSTAB=${FSTABDIR}/fstab
+
+getresp() {
+ read resp
+ if [ "X$resp" = "X" ]; then
+ resp=$1
+ fi
+}
+
+echo "Welcome to the NetBSD ${VERSION} upgrade program."
+echo ""
+echo "This program is designed to help you put the new version of NetBSD"
+echo "on your hard disk, in a simple and rational way. To upgrade, you"
+echo "must have plenty of free space on all partitions which will be"
+echo "upgraded. If you have at least 1MB free on your root partition,"
+echo "and several free on your /usr patition, you should be fine."
+echo ""
+echo "As with anything which modifies your hard drive's contents, this"
+echo "program can cause SIGNIFICANT data loss, and you are advised"
+echo "to make sure your hard drive is backed up before beginning the"
+echo "upgrade process."
+echo ""
+echo "Default answers are displyed in brackets after the questions."
+echo "You can hit Control-C at any time to quit, but if you do so at a"
+echo "prompt, you may have to hit return. Also, quitting in the middle of"
+echo "the upgrade may leave your system in an inconsistent (and unusable)"
+echo "state."
+echo ""
+echo -n "Proceed with upgrade? [n] "
+getresp "n"
+case "$resp" in
+ y*|Y*)
+ echo "Cool! Let's get to it..."
+ ;;
+ *)
+ echo ""
+ echo "OK, then. Enter 'halt' at the prompt to halt the"
+ echo "machine. Once the machine has halted, remove the"
+ echo "floppy and press any key to reboot."
+ exit
+ ;;
+esac
+
+# find out what units are possible, and query the user.
+driveunits=`ls /dev/[sw]d?a | sed -e 's,/dev/\(...\)a,\1,g'`
+if [ "X${driveunits}" = "X" ]; then
+ echo "FATAL ERROR:"
+ echo "No disk devices."
+ echo "This is probably a bug in the install disks."
+ echo "Exiting install program."
+ exit
+fi
+
+echo ""
+echo "The following disks are supported by this upgrade procedure:"
+echo " "${driveunits}
+echo "If your system was previously completely contained within the"
+echo "disks listed above (i.e. if your system didn't occupy any space"
+echo "on disks NOT listed above), this upgrade disk can upgrade your"
+echo "system. If it cannot, hit Control-C at the prompt."
+echo ""
+while [ "X${drivename}" = "X" ]; do
+ echo -n "Which disk contains your root partion? "
+ getresp
+ otherdrives=`echo "${driveunits}" | sed -e s,${resp},,`
+ if [ "X${driveunits}" = "X${otherdrives}" ]; then
+ echo ""
+ echo "\"${resp}\" is an invalid drive name. Valid choices"
+ echo "are: "${driveunits}
+ echo ""
+ else
+ drivename=${resp}
+ fi
+done
+
+echo ""
+echo "Root partition is on ${drivename}a."
+
+echo ""
+echo "Would you like to upgrade your file systems to the new file system"
+echo -n "format? [y] "
+getresp "y"
+case "$resp" in
+ n*|N*)
+ echo ""
+ echo "You should upgrade your file systems with 'fsck -c 2'"
+ echo "as soon as is feasible, because the new file system"
+ echo "code is better-tested and more performant."
+ upgradefs=NO
+ ;;
+ *)
+ upgradefs=YES
+ ;;
+esac
+
+if [ $upgradefs = YES ]; then
+ echo ""
+ echo "Upgrading the file system on ${drivename}a..."
+
+ fsck -p -c 2 /dev/r${drivename}a
+ if [ $? != 0 ]; then
+ echo "FATAL ERROR: FILE SYSTEM UPGRADE FAILED."
+ echo "You should probably reboot the machine, fsck your"
+ echo "disk(s), and try the upgrade procedure again."
+ exit 1
+ fi
+ echo "Done."
+fi
+
+echo ""
+echo "Mounting root partition on /mnt..."
+mount /dev/${drivename}a /mnt
+if [ $? != 0 ]; then
+ echo "FATAL ERROR: MOUNT FAILED."
+ echo "You should verify that your system is set up as you"
+ echo "described, and re-attempt the upgrade procedure."
+ exit 1
+fi
+echo "Done."
+
+if [ $upgradefs = YES ]; then
+ echo ""
+ echo -n "Copying new fsck binary to your hard disk..."
+ if [ ! -d /mnt/sbin ]; then
+ mkdir /mnt/sbin
+ fi
+ cp /sbin/fsck /mnt/sbin/fsck
+ if [ $? != 0 ]; then
+ echo "FATAL ERROR: COPY FAILED."
+ echo "It in unclear why this error would occur. It looks"
+ echo "like you may end up having to upgrade by hand."
+ exit 1
+ fi
+ echo " Done."
+
+ echo ""
+ echo "Re-mounting root partition read-only..."
+ mount -u -o ro /dev/${drivename}a /mnt
+ if [ $? != 0 ]; then
+ echo "FATAL ERROR: RE-MOUNT FAILED."
+ echo "It in unclear why this error would occur. It looks"
+ echo "like you may end up having to upgrade by hand."
+ exit 1
+ fi
+ echo "Done."
+
+ echo ""
+ echo "Upgrading the rest of your file systems..."
+ chroot /mnt fsck -p -c 2
+ if [ $? != 0 ]; then
+ echo "FATAL ERROR: FILE SYSTEM UPGRADE(S) FAILED."
+ echo "You should probably reboot the machine, fsck your"
+ echo "file system(s), and try the upgrade procedure"
+ echo "again."
+ exit 1
+ fi
+ echo "Done."
+
+ echo ""
+ echo "Re-mounting root partition read-write..."
+ mount -u -o rw /dev/${drivename}a /mnt
+ if [ $? != 0 ]; then
+ echo "FATAL ERROR: RE-MOUNT FAILED."
+ echo "It in unclear why this error would occur. It looks"
+ echo "like you may end up having to upgrade by hand."
+ exit 1
+ fi
+ echo "Done."
+fi
+
+echo ""
+echo "Updating boot blocks on ${drivename}..."
+disklabel -r $drivename > /mnt/tmp/${drivename}.label
+if [ $? != 0 ]; then
+ echo "FATAL ERROR: READ OF DISK LABEL FAILED."
+ echo "It in unclear why this error would occur. It looks"
+ echo "like you may end up having to upgrade by hand."
+ exit 1
+fi
+disklabel -R -B $drivename /mnt/tmp/${drivename}.label
+if [ $? != 0 ]; then
+ echo "FATAL ERROR: UPDATE OF DISK LABEL FAILED."
+ echo "It in unclear why this error would occur. It looks"
+ echo "like you may end up having to upgrade by hand."
+ exit 1
+fi
+echo "Done."
+
+echo ""
+echo "Copying bootstrapping binaries and config files to the hard drive..."
+$DONTDOIT cp /mnt/.profile /mnt/.profile.bak
+$DONTDOIT tar --exclude etc --one-file-system -cf - . | (cd /mnt ; tar --unlink -xpf - )
+$DONTDOIT mv /mnt/etc/rc /mnt/etc/rc.bak
+$DONTDOIT cp /tmp/.hdprofile /mnt/.profile
+
+echo ""
+echo "Mounting remaining partitions..."
+chroot /mnt mount -at ufs > /dev/null 2>&1
+echo "Done."
+
+echo ""
+echo ""
+echo "OK! The preliminary work of setting up your disk is now complete,"
+echo "and you can now upgrade the actual NetBSD software."
+echo ""
+echo "Right now, your hard disk is mounted on /mnt. You should consult"
+echo "the installation notes to determine how to load and install the new"
+echo "NetBSD distribution sets, and how to clean up after the upgrade"
+echo "software, when you are done."
+echo ""
+echo "GOOD LUCK!"
+echo ""
diff --git a/distrib/sets/README b/distrib/sets/README
new file mode 100644
index 00000000000..d427f8971b0
--- /dev/null
+++ b/distrib/sets/README
@@ -0,0 +1,129 @@
+From cgd@alpha.bostic.com Mon Jul 18 02:06:15 1994
+Received: from alpha.bostic.com (alpha.BOSTIC.COM [198.3.132.5]) by sun-lamp.cs.berkeley.edu (8.6.9/8.6.9) with SMTP id CAA18402 for <port-masters@sun-lamp.CS.Berkeley.EDU>; Mon, 18 Jul 1994 02:01:32 -0700
+Received: by alpha.bostic.com; id AA06610; Mon, 18 Jul 1994 05:02:11 -0400
+Message-Id: <9407180902.AA06610@alpha.bostic.com>
+To: port-masters@sun-lamp.CS.Berkeley.EDU
+Cc: cgd@alpha.bostic.com
+Precedence: special-delivery
+X-Notice: Do not redistribute in any form without prior explicit
+ consent of the author.
+Subject: distribution sets, etc...
+Date: Mon, 18 Jul 1994 05:02:11 -0400
+From: "Chris G. Demetriou" <cgd@alpha.bostic.com>
+Status: R
+
+[ this is also going in a README in the 'sets' directory... ]
+
+well, i've finally sat down and started doing distribution set
+stuff in a "nice, machine-independent way." Should have done
+it months ago, but too much other stuff going on then...
+
+anyway, grab ~cgd/sets.tar.gz -- it's three scripts, and a bunch
+of files.
+
+the scripts should be run from the directory where they reside.
+
+makeflist: output the list of files that should be in a
+ distribution, according to the contents of the
+ 'lists' directory.
+
+checkflist: check the file list (as internally generated
+ by makeflist) against the tree living in $DESTDIR.
+ (that tree should be made with 'make distribution'.)
+
+maketars: make tarballs of the various sets in the distribution,
+ based on the contents of the lists, the tree in
+ $DESTDIR, and put the tarballs in $RELEASEDIR.
+ Note that this script _doesn't_ create the 'secr'
+ distribution, because (for now) it requires
+ manual intervention to get the binaries right...
+ (i'll add another script to create that dist, later.)
+
+what's in 'lists':
+
+lists describing file sets. There are two sets of lists per file
+set: machine dependent and machine-independent files. (there's
+also another file in the 'man' dir, which is used by the 'man'
+and 'misc' sets, but that's explained later.)
+
+There is one machine-independent file, named "mi". There are
+N machine-dependent files (one per architecture), named "md.${ARCH}".
+
+the sets are as follows:
+
+ secr: security software -- the non-exportable bits, i.e.
+ those that actually use crypt, and have it compiled
+ in.
+
+ base: the base binary set. excludes everything described
+ below.
+
+ comp: compiler tools. All of the tools relating to C, C++,
+ and FORTRAN (yes, there are two!) that are in the
+ tree. This includes includes, the linker, tool chain,
+ and the .a versions of the libraries. (obviously,
+ base includes ldd, ld.so, and the shared versions.
+ base also includes 'cpp', because that's used by X11.)
+ includes the man pages for all the binaries contained
+ within. Also, includes all library and system call
+ manual pages.
+
+ etc: /etc, and associated files (/var/cron/tabs, /root,
+ etc.). things that shouldn't be blindly reinstalled
+ on an upgrade.
+
+ games: the games and their man pages.
+
+ man: all of the man pages for the system, except those
+ listed elsewhere (e.g. in comp, games, misc, text).
+ Includes machine-dependent man pages for this CPU.
+
+ misc: share/dict, share/doc, and the machine-dependent
+ man pages for other cpu's which happen to always
+ be installed.
+
+ text: text processing tools. groff and all of its friends.
+ includes man pages for all bins contained within.
+
+
+as noted, in addition to the "standard" files in each dir, there's
+a file called 'md_share' in lists/man. it's the list of man pages
+that are installed from /usr/src/share, which are machine-dependent.
+(note that ones that are installed from elsewhere, and thus are
+installed on only one architecture, are listed in the md.${ARCH}
+file.) basically, it's grepped through, to see which of the
+machine-dependent man pages that are always installed should go
+in the 'man' set, and which should go into the 'misc' set.
+
+
+I've made attempts to get the md files for the amiga, i386, hp300,
+pc532, and sparc done. I've not attempted the rest (though there
+are empty files for all architectures except the da30, in the
+various directories). I think i got the amiga, i386, and sparc
+done correctly, but i know that (because of weirdnesses in how
+their last snapshots were built) i didn't get hp300 or pc532
+done right.
+
+what you folks need to do:
+
+run 'checkflist' on a tree that you've created with 'make
+distribution'. send me the output, and i'll take care of putting
+stuff on the right lists for you. In the future, you'll get
+to do it yourselves, as you add programs and include files, but
+i'd prefer to do it the first time (unless you really want to do it
+yourself -- in that case, please ask me to check your suggestions
+re: the appropriate sets for things...) There should be a minimal
+list output by checkflist -- it should all be things that
+_should_ be on your lsits, but aren't, i.e. machine-dependent
+binaries, man pages, and include files.
+
+Also, please look through the lists, and tell me if you think
+i've put anything in the wrong place. i think i've
+taken care of all of the machine-dependence bugaboos, by
+doing it for the N architectures, but i'm not _sure_... 8-)
+
+
+thanks,
+
+chris
+
diff --git a/distrib/sets/checkflist b/distrib/sets/checkflist
new file mode 100644
index 00000000000..b028bf41027
--- /dev/null
+++ b/distrib/sets/checkflist
@@ -0,0 +1,13 @@
+#!/bin/csh -f
+
+if (! $?DESTDIR) then
+ echo DESTDIR must be set
+ exit 1
+endif
+
+set fsdir=$DESTDIR
+
+./makeflist >! /tmp/_CHECK.$$
+( cd $fsdir ; find . \( -type d -o -type f -o -type l \) ) | sort | \
+ diff /tmp/_CHECK.$$ -
+/bin/rm -f /tmp/_CHECK.$$
diff --git a/distrib/sets/lists/base/md.amiga b/distrib/sets/lists/base/md.amiga
new file mode 100644
index 00000000000..a1263941497
--- /dev/null
+++ b/distrib/sets/lists/base/md.amiga
@@ -0,0 +1,19 @@
+./usr/lib/libc.so.12.3
+./usr/lib/libcrypt.so.0.0
+./usr/lib/libcurses.so.2.1
+./usr/lib/libedit.so.0.0
+./usr/lib/libg++.so.2.0
+./usr/lib/libgnumalloc.so.0.0
+./usr/lib/libkvm.so.4.0
+./usr/lib/libm.so.0.1
+./usr/lib/libpcap.so.0.0
+./usr/lib/libresolv.so.1.0
+./usr/lib/libskey.so.0.0
+./usr/lib/libtelnet.so.1.0
+./usr/lib/libtermcap.so.0.0
+./usr/lib/libtermlib.so.0.0
+./usr/lib/libutil.so.3.1
+./usr/libexec/ld.so
+./usr/sbin/grfconfig
+./usr/sbin/iteconfig
+./usr/sbin/videomode
diff --git a/distrib/sets/lists/base/md.atari b/distrib/sets/lists/base/md.atari
new file mode 100644
index 00000000000..42fea79f6ab
--- /dev/null
+++ b/distrib/sets/lists/base/md.atari
@@ -0,0 +1,17 @@
+./usr/lib/libc.so.12.3
+./usr/lib/libcrypt.so.0.0
+./usr/lib/libcurses.so.2.1
+./usr/lib/libedit.so.0.0
+./usr/lib/libg++.so.2.0
+./usr/lib/libgnumalloc.so.0.0
+./usr/lib/libkvm.so.4.0
+./usr/lib/libm.so.0.1
+./usr/lib/libpcap.so.0.0
+./usr/lib/libresolv.so.1.0
+./usr/lib/libskey.so.0.0
+./usr/lib/libtelnet.so.1.0
+./usr/lib/libtermcap.so.0.0
+./usr/lib/libtermlib.so.0.0
+./usr/lib/libutil.so.3.1
+./usr/libexec/ld.so
+./usr/sbin/iteconfig
diff --git a/distrib/sets/lists/base/md.hp300 b/distrib/sets/lists/base/md.hp300
new file mode 100644
index 00000000000..f5cc8de342b
--- /dev/null
+++ b/distrib/sets/lists/base/md.hp300
@@ -0,0 +1,27 @@
+./usr/lib/libc.so.12.3
+./usr/lib/libcrypt.so.0.0
+./usr/lib/libcurses.so.2.1
+./usr/lib/libedit.so.0.0
+./usr/lib/libg++.so.2.0
+./usr/lib/libgnumalloc.so.0.0
+./usr/lib/libkvm.so.4.0
+./usr/lib/libm.so.0.1
+./usr/lib/libpcap.so.0.0
+./usr/lib/libresolv.so.1.0
+./usr/lib/libskey.so.0.0
+./usr/lib/libtelnet.so.1.0
+./usr/lib/libtermcap.so.0.0
+./usr/lib/libtermlib.so.0.0
+./usr/lib/libutil.so.3.1
+./usr/libexec/ld.so
+./usr/mdec/bootct
+./usr/mdec/bootrd
+./usr/mdec/bootsd
+./usr/mdec/installboot
+./usr/mdec/rdboot
+./usr/mdec/sdboot
+./usr/mdec/rbootd
+./usr/mdec/rbootd/SYS_INST
+./usr/mdec/rbootd/SYS_NBOOT
+./usr/sbin/grfinfo
+./usr/sbin/hilinfo
diff --git a/distrib/sets/lists/base/md.i386 b/distrib/sets/lists/base/md.i386
new file mode 100644
index 00000000000..aecffa42431
--- /dev/null
+++ b/distrib/sets/lists/base/md.i386
@@ -0,0 +1,25 @@
+./sbin/fdisk
+./usr/lib/libc.so.12.3
+./usr/lib/libcrypt.so.0.0
+./usr/lib/libcurses.so.2.1
+./usr/lib/libedit.so.0.0
+./usr/lib/libg++.so.2.0
+./usr/lib/libgnumalloc.so.0.0
+./usr/lib/libi386.so.0.0
+./usr/lib/libkvm.so.4.0
+./usr/lib/libm.so.0.1
+./usr/lib/libpcap.so.0.0
+./usr/lib/libresolv.so.1.0
+./usr/lib/libskey.so.0.0
+./usr/lib/libtelnet.so.1.0
+./usr/lib/libtermcap.so.0.0
+./usr/lib/libtermlib.so.0.0
+./usr/lib/libutil.so.3.1
+./usr/libexec/ld.so
+./usr/mdec/bootfd
+./usr/mdec/bootsd
+./usr/mdec/bootwd
+./usr/mdec/fdboot
+./usr/mdec/sdboot
+./usr/mdec/wdboot
+./usr/sbin/bad144
diff --git a/distrib/sets/lists/base/md.mac68k b/distrib/sets/lists/base/md.mac68k
new file mode 100644
index 00000000000..05ee428beda
--- /dev/null
+++ b/distrib/sets/lists/base/md.mac68k
@@ -0,0 +1,16 @@
+./usr/lib/libc.so.12.3
+./usr/lib/libcrypt.so.0.0
+./usr/lib/libcurses.so.2.1
+./usr/lib/libedit.so.0.0
+./usr/lib/libg++.so.2.0
+./usr/lib/libgnumalloc.so.0.0
+./usr/lib/libkvm.so.4.0
+./usr/lib/libm.so.0.1
+./usr/lib/libpcap.so.0.0
+./usr/lib/libresolv.so.1.0
+./usr/lib/libskey.so.0.0
+./usr/lib/libtelnet.so.1.0
+./usr/lib/libtermcap.so.0.0
+./usr/lib/libtermlib.so.0.0
+./usr/lib/libutil.so.3.1
+./usr/libexec/ld.so
diff --git a/distrib/sets/lists/base/md.pc532 b/distrib/sets/lists/base/md.pc532
new file mode 100644
index 00000000000..988a4434349
--- /dev/null
+++ b/distrib/sets/lists/base/md.pc532
@@ -0,0 +1 @@
+./sbin/bim
diff --git a/distrib/sets/lists/base/md.pmax b/distrib/sets/lists/base/md.pmax
new file mode 100644
index 00000000000..6fb6daa6caf
--- /dev/null
+++ b/distrib/sets/lists/base/md.pmax
@@ -0,0 +1,2 @@
+./usr/mdec/bootrz
+./usr/mdec/rzboot
diff --git a/distrib/sets/lists/base/md.sparc b/distrib/sets/lists/base/md.sparc
new file mode 100644
index 00000000000..f4396e907ec
--- /dev/null
+++ b/distrib/sets/lists/base/md.sparc
@@ -0,0 +1,23 @@
+./usr/lib/libc.so.12.3
+./usr/lib/libcrypt.so.0.0
+./usr/lib/libcurses.so.2.1
+./usr/lib/libedit.so.0.0
+./usr/lib/libg++.so.2.0
+./usr/lib/libgnumalloc.so.0.0
+./usr/lib/libkvm.so.4.0
+./usr/lib/libm.so.0.1
+./usr/lib/libpcap.so.0.0
+./usr/lib/libresolv.so.1.0
+./usr/lib/libskey.so.0.0
+./usr/lib/libtelnet.so.1.0
+./usr/lib/libtermcap.so.0.0
+./usr/lib/libtermlib.so.0.0
+./usr/lib/libutil.so.3.1
+./usr/libexec/ld.so
+./usr/mdec/bootxx
+./usr/mdec/boot
+./usr/mdec/binstall
+./usr/bin/fdeject
+./usr/sbin/eeprom
+./usr/sbin/installboot
+./usr/sbin/screenblank
diff --git a/distrib/sets/lists/base/md.sun3 b/distrib/sets/lists/base/md.sun3
new file mode 100644
index 00000000000..032ccfcf919
--- /dev/null
+++ b/distrib/sets/lists/base/md.sun3
@@ -0,0 +1,22 @@
+./sbin/edlabel
+./usr/lib/libc.so.12.0
+./usr/lib/libcrypt.so.0.0
+./usr/lib/libcurses.so.2.1
+./usr/lib/libedit.so.0.0
+./usr/lib/libg++.so.2.0
+./usr/lib/libgnumalloc.so.0.0
+./usr/lib/libkvm.so.4.0
+./usr/lib/libm.so.0.0
+./usr/lib/libresolv.so.1.0
+./usr/lib/libskey.so.0.0
+./usr/lib/libtelnet.so.1.0
+./usr/lib/libtermcap.so.0.0
+./usr/lib/libtermlib.so.0.0
+./usr/lib/libutil.so.3.1
+./usr/libexec/ld.so
+./usr/mdec/bootxx
+./usr/mdec/installboot
+./usr/mdec/netboot
+./usr/mdec/ufsboot
+./usr/sbin/eeprom
+./usr/sbin/screenblank
diff --git a/distrib/sets/lists/base/mi b/distrib/sets/lists/base/mi
new file mode 100644
index 00000000000..4dd0955d658
--- /dev/null
+++ b/distrib/sets/lists/base/mi
@@ -0,0 +1,1240 @@
+.
+./altroot
+./bin
+./bin/[
+./bin/cat
+./bin/chmod
+./bin/cp
+./bin/csh
+./bin/date
+./bin/dd
+./bin/df
+./bin/domainname
+./bin/echo
+./bin/ed
+./bin/expr
+./bin/hostname
+./bin/kill
+./bin/ln
+./bin/ls
+./bin/mkdir
+./bin/mt
+./bin/mv
+./bin/pax
+./bin/ps
+./bin/pwd
+./bin/rcp
+./bin/rm
+./bin/rmail
+./bin/rmdir
+./bin/sh
+./bin/sleep
+./bin/stty
+./bin/sync
+./bin/test
+./dev
+./dev/MAKEDEV
+./dev/fd
+./etc
+./etc/disklabels
+./etc/kerberosIV
+./etc/mtree
+./etc/namedb
+./etc/sliphome
+./etc/uucp
+./home
+./mnt
+./root
+./sbin
+./sbin/badsect
+./sbin/ccdconfig
+./sbin/clri
+./sbin/disklabel
+./sbin/dmesg
+./sbin/dump
+./sbin/dumpfs
+./sbin/dumplfs
+./sbin/fastboot
+./sbin/fasthalt
+./sbin/fsck
+./sbin/fsdb
+./sbin/halt
+./sbin/ifconfig
+./sbin/init
+./sbin/ldconfig
+./sbin/mknod
+./sbin/modload
+./sbin/modunload
+./sbin/mount
+./sbin/mount_ados
+./sbin/mount_cd9660
+./sbin/mount_fdesc
+./sbin/mount_ffs
+./sbin/mount_kernfs
+./sbin/mount_lfs
+./sbin/mount_mfs
+./sbin/mount_msdos
+./sbin/mount_nfs
+./sbin/mount_null
+./sbin/mount_portal
+./sbin/mount_procfs
+./sbin/mount_ufs
+./sbin/mount_umap
+./sbin/mount_union
+./sbin/mountd
+./sbin/newfs
+./sbin/newlfs
+./sbin/nfsd
+./sbin/nfsiod
+./sbin/nologin
+./sbin/ping
+./sbin/quotacheck
+./sbin/rdump
+./sbin/reboot
+./sbin/restore
+./sbin/route
+./sbin/routed
+./sbin/rrestore
+./sbin/savecore
+./sbin/shutdown
+./sbin/slattach
+./sbin/swapon
+./sbin/ttyflags
+./sbin/tunefs
+./sbin/umount
+./stand
+./tmp
+./usr
+./usr/bin
+./usr/bin/Mail
+./usr/bin/apply
+./usr/bin/apropos
+./usr/bin/at
+./usr/bin/atq
+./usr/bin/atrm
+./usr/bin/awk
+./usr/bin/banner
+./usr/bin/basename
+./usr/bin/batch
+./usr/bin/bc
+./usr/bin/bdes
+./usr/bin/biff
+./usr/bin/cal
+./usr/bin/calendar
+./usr/bin/cap_mkdb
+./usr/bin/chflags
+./usr/bin/chfn
+./usr/bin/chgrp
+./usr/bin/chpass
+./usr/bin/chsh
+./usr/bin/ci
+./usr/bin/cksum
+./usr/bin/clear
+./usr/bin/cmp
+./usr/bin/co
+./usr/bin/col
+./usr/bin/colcrt
+./usr/bin/colrm
+./usr/bin/column
+./usr/bin/comm
+./usr/bin/compress
+./usr/bin/cpio
+./usr/bin/cpp
+./usr/bin/crontab
+./usr/bin/ctags
+./usr/bin/cu
+./usr/bin/cut
+./usr/bin/dc
+./usr/bin/diff
+./usr/bin/diff3
+./usr/bin/dirname
+./usr/bin/du
+./usr/bin/egrep
+./usr/bin/env
+./usr/bin/error
+./usr/bin/ex
+./usr/bin/expand
+./usr/bin/false
+./usr/bin/fgrep
+./usr/bin/file
+./usr/bin/find
+./usr/bin/finger
+./usr/bin/fmt
+./usr/bin/fold
+./usr/bin/from
+./usr/bin/fsplit
+./usr/bin/fstat
+./usr/bin/ftp
+./usr/bin/gcpp
+./usr/bin/gencat
+./usr/bin/getconf
+./usr/bin/getopt
+./usr/bin/grep
+./usr/bin/groups
+./usr/bin/gunzip
+./usr/bin/gzcat
+./usr/bin/gzexe
+./usr/bin/gzip
+./usr/bin/head
+./usr/bin/hexdump
+./usr/bin/id
+./usr/bin/ident
+./usr/bin/indent
+./usr/bin/install
+./usr/bin/install-sid
+./usr/bin/ipcrm
+./usr/bin/ipcs
+./usr/bin/join
+./usr/bin/jot
+./usr/bin/kdump
+./usr/bin/ktrace
+./usr/bin/lam
+./usr/bin/last
+./usr/bin/lastcomm
+./usr/bin/ldd
+./usr/bin/leave
+./usr/bin/locate
+./usr/bin/lock
+./usr/bin/logger
+./usr/bin/login
+./usr/bin/logname
+./usr/bin/look
+./usr/bin/lpq
+./usr/bin/lpr
+./usr/bin/lprm
+./usr/bin/m4
+./usr/bin/machine
+./usr/bin/mail
+./usr/bin/mailq
+./usr/bin/mailx
+./usr/bin/make
+./usr/bin/man
+./usr/bin/merge
+./usr/bin/mesg
+./usr/bin/mkdep
+./usr/bin/mkfifo
+./usr/bin/modstat
+./usr/bin/more
+./usr/bin/mset
+./usr/bin/msgs
+./usr/bin/netstat
+./usr/bin/newaliases
+./usr/bin/newsyslog
+./usr/bin/nfsstat
+./usr/bin/nice
+./usr/bin/nm
+./usr/bin/nohup
+./usr/bin/od
+./usr/bin/page
+./usr/bin/pagesize
+./usr/bin/passwd
+./usr/bin/paste
+./usr/bin/patch
+./usr/bin/pr
+./usr/bin/printenv
+./usr/bin/printf
+./usr/bin/quota
+./usr/bin/rcs
+./usr/bin/rcsclean
+./usr/bin/rcsdiff
+./usr/bin/rcsfreeze
+./usr/bin/rcsmerge
+./usr/bin/rdist
+./usr/bin/renice
+./usr/bin/reset
+./usr/bin/rev
+./usr/bin/rlog
+./usr/bin/rlogin
+./usr/bin/rpcinfo
+./usr/bin/rs
+./usr/bin/rsh
+./usr/bin/rup
+./usr/bin/ruptime
+./usr/bin/rusers
+./usr/bin/rwall
+./usr/bin/rwho
+./usr/bin/script
+./usr/bin/sdiff
+./usr/bin/sed
+./usr/bin/send-pr
+./usr/bin/shar
+./usr/bin/showmount
+./usr/bin/size
+./usr/bin/skey
+./usr/bin/skeyaudit
+./usr/bin/skeyinfo
+./usr/bin/skeyinit
+./usr/bin/sort
+./usr/bin/split
+./usr/bin/strings
+./usr/bin/su
+./usr/bin/sum
+./usr/bin/systat
+./usr/bin/tail
+./usr/bin/talk
+./usr/bin/tar
+./usr/bin/tcopy
+./usr/bin/tee
+./usr/bin/telnet
+./usr/bin/tftp
+./usr/bin/time
+./usr/bin/tip
+./usr/bin/tn3270
+./usr/bin/touch
+./usr/bin/tput
+./usr/bin/tr
+./usr/bin/true
+./usr/bin/tset
+./usr/bin/tsort
+./usr/bin/tty
+./usr/bin/ul
+./usr/bin/uname
+./usr/bin/uncompress
+./usr/bin/unexpand
+./usr/bin/unifdef
+./usr/bin/uniq
+./usr/bin/units
+./usr/bin/unvis
+./usr/bin/uptime
+./usr/bin/users
+./usr/bin/uucp
+./usr/bin/uudecode
+./usr/bin/uuencode
+./usr/bin/uulog
+./usr/bin/uuname
+./usr/bin/uupick
+./usr/bin/uusched
+./usr/bin/uustat
+./usr/bin/uuto
+./usr/bin/uux
+./usr/bin/vacation
+./usr/bin/vi
+./usr/bin/view
+./usr/bin/vis
+./usr/bin/vmstat
+./usr/bin/w
+./usr/bin/wall
+./usr/bin/wc
+./usr/bin/what
+./usr/bin/whatis
+./usr/bin/whereis
+./usr/bin/which
+./usr/bin/who
+./usr/bin/whoami
+./usr/bin/whois
+./usr/bin/window
+./usr/bin/write
+./usr/bin/xargs
+./usr/bin/yes
+./usr/bin/ypcat
+./usr/bin/ypmatch
+./usr/bin/yppasswd
+./usr/bin/ypwhich
+./usr/bin/zcat
+./usr/bin/zdiff
+./usr/bin/zforce
+./usr/bin/zgrep
+./usr/bin/zmore
+./usr/bin/znew
+./usr/games
+./usr/games/hide
+./usr/include
+./usr/include/arpa
+./usr/include/dev
+./usr/include/g++
+./usr/include/g++/gen
+./usr/include/kerberosIV
+./usr/include/machine
+./usr/include/net
+./usr/include/netccitt
+./usr/include/netinet
+./usr/include/netiso
+./usr/include/netns
+./usr/include/nfs
+./usr/include/protocols
+./usr/include/rpc
+./usr/include/rpcsvc
+./usr/include/sys
+./usr/include/ufs
+./usr/include/ufs/ffs
+./usr/include/ufs/lfs
+./usr/include/ufs/mfs
+./usr/include/ufs/ufs
+./usr/include/vm
+./usr/lib
+./usr/libdata
+./usr/libdata/lint
+./usr/libexec
+./usr/libexec/atrun
+./usr/libexec/comsat
+./usr/libexec/cpp
+./usr/libexec/fingerd
+./usr/libexec/ftpd
+./usr/libexec/getNAME
+./usr/libexec/getty
+./usr/libexec/identd
+./usr/libexec/lfs_cleanerd
+./usr/libexec/locate.bigram
+./usr/libexec/locate.code
+./usr/libexec/locate.updatedb
+./usr/libexec/lpr
+./usr/libexec/lpr/lpf
+./usr/libexec/mail.local
+./usr/libexec/makekey
+./usr/libexec/makewhatis
+./usr/libexec/named-xfer
+./usr/libexec/ntalkd
+./usr/libexec/rexecd
+./usr/libexec/rlogind
+./usr/libexec/rpc.rquotad
+./usr/libexec/rpc.rstatd
+./usr/libexec/rpc.rusersd
+./usr/libexec/rpc.rwalld
+./usr/libexec/rpc.sprayd
+./usr/libexec/rshd
+./usr/libexec/telnetd
+./usr/libexec/tftpd
+./usr/libexec/uucp
+./usr/libexec/uucp/uuchk
+./usr/libexec/uucp/uucico
+./usr/libexec/uucp/uuconv
+./usr/libexec/uucp/uuxqt
+./usr/libexec/uucpd
+./usr/local
+./usr/local/bin
+./usr/local/lib
+./usr/local/libdata
+./usr/local/libexec
+./usr/local/man
+./usr/local/man/cat1
+./usr/local/man/cat2
+./usr/local/man/cat3
+./usr/local/man/cat4
+./usr/local/man/cat5
+./usr/local/man/cat6
+./usr/local/man/cat7
+./usr/local/man/cat8
+./usr/local/man/man1
+./usr/local/man/man2
+./usr/local/man/man3
+./usr/local/man/man4
+./usr/local/man/man5
+./usr/local/man/man6
+./usr/local/man/man7
+./usr/local/man/man8
+./usr/local/sbin
+./usr/mdec
+./usr/obj
+./usr/sbin
+./usr/sbin/ac
+./usr/sbin/accton
+./usr/sbin/amd
+./usr/sbin/amq
+./usr/sbin/arp
+./usr/sbin/bootpd
+./usr/sbin/bootpef
+./usr/sbin/bootpgw
+./usr/sbin/bootptest
+./usr/sbin/chat
+./usr/sbin/chown
+./usr/sbin/chroot
+./usr/sbin/cron
+./usr/sbin/dev_mkdb
+./usr/sbin/diskpart
+./usr/sbin/edquota
+./usr/sbin/fsinfo
+./usr/sbin/gettable
+./usr/sbin/htable
+./usr/sbin/inetd
+./usr/sbin/iostat
+./usr/sbin/kvm_mkdb
+./usr/sbin/lpc
+./usr/sbin/lpd
+./usr/sbin/lptest
+./usr/sbin/mailstats
+./usr/sbin/makemap
+./usr/sbin/map-mbone
+./usr/sbin/mk-amd-map
+./usr/sbin/mrinfo
+./usr/sbin/mrouted
+./usr/sbin/mtrace
+./usr/sbin/mtree
+./usr/sbin/named
+./usr/sbin/named.reload
+./usr/sbin/named.restart
+./usr/sbin/netgroup_mkdb
+./usr/sbin/nslookup
+./usr/sbin/nsquery
+./usr/sbin/nstest
+./usr/sbin/pac
+./usr/sbin/portmap
+./usr/sbin/pppd
+./usr/sbin/pppstats
+./usr/sbin/praliases
+./usr/sbin/pstat
+./usr/sbin/pwd_mkdb
+./usr/sbin/quot
+./usr/sbin/quotaoff
+./usr/sbin/quotaon
+./usr/sbin/rarpd
+./usr/sbin/rbootd
+./usr/sbin/rdate
+./usr/sbin/rdconfig
+./usr/sbin/repquota
+./usr/sbin/rmt
+./usr/sbin/rpc.bootparamd
+./usr/sbin/rpc.pcnfsd
+./usr/sbin/rwhod
+./usr/sbin/sa
+./usr/sbin/sendmail
+./usr/sbin/sliplogin
+./usr/sbin/slstats
+./usr/sbin/spray
+./usr/sbin/sysctl
+./usr/sbin/syslogd
+./usr/sbin/tcpdump
+./usr/sbin/timed
+./usr/sbin/timedc
+./usr/sbin/traceroute
+./usr/sbin/trpt
+./usr/sbin/trsp
+./usr/sbin/update
+./usr/sbin/vipw
+./usr/sbin/vnconfig
+./usr/sbin/ypbind
+./usr/sbin/yppoll
+./usr/sbin/ypset
+./usr/sbin/zdump
+./usr/sbin/zic
+./usr/share
+./usr/share/calendar
+./usr/share/calendar/calendar.birthday
+./usr/share/calendar/calendar.christian
+./usr/share/calendar/calendar.computer
+./usr/share/calendar/calendar.history
+./usr/share/calendar/calendar.holiday
+./usr/share/calendar/calendar.judaic
+./usr/share/calendar/calendar.music
+./usr/share/calendar/calendar.usholiday
+./usr/share/dict
+./usr/share/dict/papers
+./usr/share/dict/special
+./usr/share/doc
+./usr/share/doc/psd
+./usr/share/doc/psd/01.cacm
+./usr/share/doc/psd/02.implement
+./usr/share/doc/psd/03.iosys
+./usr/share/doc/psd/04.uprog
+./usr/share/doc/psd/05.sysman
+./usr/share/doc/psd/06.Clang
+./usr/share/doc/psd/07.pascal
+./usr/share/doc/psd/08.f77
+./usr/share/doc/psd/09.f77io
+./usr/share/doc/psd/10.gdb
+./usr/share/doc/psd/11.adb
+./usr/share/doc/psd/12.make
+./usr/share/doc/psd/13.rcs
+./usr/share/doc/psd/14.sccs
+./usr/share/doc/psd/15.yacc
+./usr/share/doc/psd/16.lex
+./usr/share/doc/psd/17.m4
+./usr/share/doc/psd/18.gprof
+./usr/share/doc/psd/19.curses
+./usr/share/doc/psd/20.ipctut
+./usr/share/doc/psd/21.ipc
+./usr/share/doc/smm
+./usr/share/doc/smm/01.setup
+./usr/share/doc/smm/01.setup/tahoe
+./usr/share/doc/smm/01.setup/vax
+./usr/share/doc/smm/02.config
+./usr/share/doc/smm/03.fsck
+./usr/share/doc/smm/04.quotas
+./usr/share/doc/smm/05.fastfs
+./usr/share/doc/smm/06.nfs
+./usr/share/doc/smm/07.lpd
+./usr/share/doc/smm/08.sendmailop
+./usr/share/doc/smm/09.sendmail
+./usr/share/doc/smm/10.named
+./usr/share/doc/smm/11.timedop
+./usr/share/doc/smm/12.timed
+./usr/share/doc/smm/13.amd
+./usr/share/doc/smm/14.uucpimpl
+./usr/share/doc/smm/15.uucpnet
+./usr/share/doc/smm/16.security
+./usr/share/doc/smm/17.password
+./usr/share/doc/smm/18.net
+./usr/share/doc/usd
+./usr/share/doc/usd/01.begin
+./usr/share/doc/usd/02.learn
+./usr/share/doc/usd/03.shell
+./usr/share/doc/usd/04.csh
+./usr/share/doc/usd/05.dc
+./usr/share/doc/usd/06.bc
+./usr/share/doc/usd/07.mail
+./usr/share/doc/usd/08.mh
+./usr/share/doc/usd/09.edtut
+./usr/share/doc/usd/10.edadv
+./usr/share/doc/usd/11.edit
+./usr/share/doc/usd/12.vi
+./usr/share/doc/usd/13.ex
+./usr/share/doc/usd/14.jove
+./usr/share/doc/usd/15.sed
+./usr/share/doc/usd/16.awk
+./usr/share/doc/usd/17.msmacros
+./usr/share/doc/usd/18.msdiffs
+./usr/share/doc/usd/19.memacros
+./usr/share/doc/usd/20.meref
+./usr/share/doc/usd/21.troff
+./usr/share/doc/usd/22.trofftut
+./usr/share/doc/usd/23.eqn
+./usr/share/doc/usd/24.eqnguide
+./usr/share/doc/usd/25.tbl
+./usr/share/doc/usd/26.refer
+./usr/share/doc/usd/27.invert
+./usr/share/doc/usd/28.bib
+./usr/share/doc/usd/29.diction
+./usr/share/doc/usd/30.rogue
+./usr/share/doc/usd/31.trek
+./usr/share/games
+./usr/share/games/atc
+./usr/share/games/boggle
+./usr/share/games/ching
+./usr/share/games/fortune
+./usr/share/games/larn
+./usr/share/games/quiz.db
+./usr/share/gnats
+./usr/share/gnats/netbsd
+./usr/share/groff_font
+./usr/share/groff_font/devX100
+./usr/share/groff_font/devX100-12
+./usr/share/groff_font/devX75
+./usr/share/groff_font/devX75-12
+./usr/share/groff_font/devascii
+./usr/share/groff_font/devdvi
+./usr/share/groff_font/devdvi/generate
+./usr/share/groff_font/devlatin1
+./usr/share/groff_font/devps
+./usr/share/groff_font/devps/generate
+./usr/share/lkm
+./usr/share/lkm/misc
+./usr/share/lkm/misc/module
+./usr/share/lkm/misc/test
+./usr/share/lkm/syscall
+./usr/share/lkm/syscall/module
+./usr/share/lkm/syscall/test
+./usr/share/lkm/vfs
+./usr/share/lkm/vfs/module
+./usr/share/locale
+./usr/share/man
+./usr/share/man/COPYRIGHT
+./usr/share/man/cat1
+./usr/share/man/cat2
+./usr/share/man/cat3
+./usr/share/man/cat3f
+./usr/share/man/cat4
+./usr/share/man/cat4/amiga
+./usr/share/man/cat4/hp300
+./usr/share/man/cat4/i386
+./usr/share/man/cat4/mac68k
+./usr/share/man/cat4/pc532
+./usr/share/man/cat4/sparc
+./usr/share/man/cat4/tahoe
+./usr/share/man/cat4/vax
+./usr/share/man/cat5
+./usr/share/man/cat6
+./usr/share/man/cat7
+./usr/share/man/cat8
+./usr/share/man/cat8/amiga
+./usr/share/man/cat8/hp300
+./usr/share/man/cat8/i386
+./usr/share/man/cat8/mac68k
+./usr/share/man/cat8/pc532
+./usr/share/man/cat8/sparc
+./usr/share/man/cat8/tahoe
+./usr/share/man/cat8/vax
+./usr/share/man/makewhatis.sed
+./usr/share/man/man1
+./usr/share/man/man2
+./usr/share/man/man3
+./usr/share/man/man3f
+./usr/share/man/man4
+./usr/share/man/man4/amiga
+./usr/share/man/man4/hp300
+./usr/share/man/man4/i386
+./usr/share/man/man4/mac68k
+./usr/share/man/man4/pc532
+./usr/share/man/man4/sparc
+./usr/share/man/man4/sun3
+./usr/share/man/man4/tahoe
+./usr/share/man/man4/vax
+./usr/share/man/man5
+./usr/share/man/man6
+./usr/share/man/man7
+./usr/share/man/man8
+./usr/share/man/man8/amiga
+./usr/share/man/man8/hp300
+./usr/share/man/man8/i386
+./usr/share/man/man8/mac68k
+./usr/share/man/man8/pc532
+./usr/share/man/man8/sparc
+./usr/share/man/man8/sun3
+./usr/share/man/man8/tahoe
+./usr/share/man/man8/vax
+./usr/share/man/whatis.db
+./usr/share/me
+./usr/share/misc
+./usr/share/misc/airport
+./usr/share/misc/ascii
+./usr/share/misc/birthtoken
+./usr/share/misc/inter.phone
+./usr/share/misc/mail.help
+./usr/share/misc/mail.tildehelp
+./usr/share/misc/map3270
+./usr/share/misc/more.help
+./usr/share/misc/na.phone
+./usr/share/misc/nslookup.help
+./usr/share/misc/sendmail.hf
+./usr/share/misc/termcap
+./usr/share/misc/termcap.db
+./usr/share/misc/units.lib
+./usr/share/misc/vgrindefs.db
+./usr/share/misc/zipcodes
+./usr/share/mk
+./usr/share/mk/sys.mk
+./usr/share/ms
+./usr/share/nls
+./usr/share/nls/C
+./usr/share/nls/C/libc.cat
+./usr/share/nls/Pig
+./usr/share/nls/Pig/libc.cat
+./usr/share/nls/de
+./usr/share/nls/de/libc.cat
+./usr/share/nls/fr
+./usr/share/nls/fr/libc.cat
+./usr/share/skel
+./usr/share/skel/dot.cshrc
+./usr/share/skel/dot.login
+./usr/share/skel/dot.mailrc
+./usr/share/skel/dot.profile
+./usr/share/skel/dot.rhosts
+./usr/share/tabset
+./usr/share/tabset/3101
+./usr/share/tabset/9837
+./usr/share/tabset/aa
+./usr/share/tabset/aed512
+./usr/share/tabset/beehive
+./usr/share/tabset/diablo
+./usr/share/tabset/dtc382
+./usr/share/tabset/hp700-wy
+./usr/share/tabset/ibm3101
+./usr/share/tabset/std
+./usr/share/tabset/stdcrt
+./usr/share/tabset/tandem653
+./usr/share/tabset/teleray
+./usr/share/tabset/vt100
+./usr/share/tabset/wyse-adds
+./usr/share/tabset/xerox1720
+./usr/share/tabset/xerox1730
+./usr/share/tabset/xerox1730-lm
+./usr/share/tabset/zenith29
+./usr/share/tmac
+./usr/share/tmac/mm
+./usr/share/zoneinfo
+./usr/share/zoneinfo/Africa
+./usr/share/zoneinfo/Africa/Abidjan
+./usr/share/zoneinfo/Africa/Accra
+./usr/share/zoneinfo/Africa/Addis_Ababa
+./usr/share/zoneinfo/Africa/Algiers
+./usr/share/zoneinfo/Africa/Asmera
+./usr/share/zoneinfo/Africa/Bamako
+./usr/share/zoneinfo/Africa/Bangui
+./usr/share/zoneinfo/Africa/Banjul
+./usr/share/zoneinfo/Africa/Bissau
+./usr/share/zoneinfo/Africa/Blantyre
+./usr/share/zoneinfo/Africa/Brazzaville
+./usr/share/zoneinfo/Africa/Bujumbura
+./usr/share/zoneinfo/Africa/Cairo
+./usr/share/zoneinfo/Africa/Casablanca
+./usr/share/zoneinfo/Africa/Conakry
+./usr/share/zoneinfo/Africa/Dakar
+./usr/share/zoneinfo/Africa/Dar_es_Salaam
+./usr/share/zoneinfo/Africa/Djibouti
+./usr/share/zoneinfo/Africa/Douala
+./usr/share/zoneinfo/Africa/Freetown
+./usr/share/zoneinfo/Africa/Gaborone
+./usr/share/zoneinfo/Africa/Harare
+./usr/share/zoneinfo/Africa/Johannesburg
+./usr/share/zoneinfo/Africa/Kampala
+./usr/share/zoneinfo/Africa/Khartoum
+./usr/share/zoneinfo/Africa/Kigali
+./usr/share/zoneinfo/Africa/Kinshasa
+./usr/share/zoneinfo/Africa/Lagos
+./usr/share/zoneinfo/Africa/Libreville
+./usr/share/zoneinfo/Africa/Lome
+./usr/share/zoneinfo/Africa/Luanda
+./usr/share/zoneinfo/Africa/Lumumbashi
+./usr/share/zoneinfo/Africa/Lusaka
+./usr/share/zoneinfo/Africa/Malabo
+./usr/share/zoneinfo/Africa/Maputo
+./usr/share/zoneinfo/Africa/Maseru
+./usr/share/zoneinfo/Africa/Mbabane
+./usr/share/zoneinfo/Africa/Mogadishu
+./usr/share/zoneinfo/Africa/Monrovia
+./usr/share/zoneinfo/Africa/Nairobi
+./usr/share/zoneinfo/Africa/Ndjamena
+./usr/share/zoneinfo/Africa/Niamey
+./usr/share/zoneinfo/Africa/Nouakchott
+./usr/share/zoneinfo/Africa/Ouagadougou
+./usr/share/zoneinfo/Africa/Porto-Novo
+./usr/share/zoneinfo/Africa/Sao_Tome
+./usr/share/zoneinfo/Africa/Timbuktu
+./usr/share/zoneinfo/Africa/Tripoli
+./usr/share/zoneinfo/Africa/Tunis
+./usr/share/zoneinfo/Africa/Windhoek
+./usr/share/zoneinfo/America
+./usr/share/zoneinfo/America/Anchorage
+./usr/share/zoneinfo/America/Anguilla
+./usr/share/zoneinfo/America/Antigua
+./usr/share/zoneinfo/America/Asuncion
+./usr/share/zoneinfo/America/Atka
+./usr/share/zoneinfo/America/Barbados
+./usr/share/zoneinfo/America/Belize
+./usr/share/zoneinfo/America/Bogota
+./usr/share/zoneinfo/America/Buenos_Aires
+./usr/share/zoneinfo/America/Caracas
+./usr/share/zoneinfo/America/Cayenne
+./usr/share/zoneinfo/America/Cayman
+./usr/share/zoneinfo/America/Chicago
+./usr/share/zoneinfo/America/Costa_Rica
+./usr/share/zoneinfo/America/Curacao
+./usr/share/zoneinfo/America/Denver
+./usr/share/zoneinfo/America/Detroit
+./usr/share/zoneinfo/America/Dominica
+./usr/share/zoneinfo/America/Edmonton
+./usr/share/zoneinfo/America/El_Salvador
+./usr/share/zoneinfo/America/Ensenada
+./usr/share/zoneinfo/America/Fort_Wayne
+./usr/share/zoneinfo/America/Godthab
+./usr/share/zoneinfo/America/Grand_Turk
+./usr/share/zoneinfo/America/Grenada
+./usr/share/zoneinfo/America/Guadeloupe
+./usr/share/zoneinfo/America/Guatemala
+./usr/share/zoneinfo/America/Guayaquil
+./usr/share/zoneinfo/America/Guyana
+./usr/share/zoneinfo/America/Halifax
+./usr/share/zoneinfo/America/Havana
+./usr/share/zoneinfo/America/Jamaica
+./usr/share/zoneinfo/America/Knox_IN
+./usr/share/zoneinfo/America/La_Paz
+./usr/share/zoneinfo/America/Lima
+./usr/share/zoneinfo/America/Los_Angeles
+./usr/share/zoneinfo/America/Managua
+./usr/share/zoneinfo/America/Manaus
+./usr/share/zoneinfo/America/Martinique
+./usr/share/zoneinfo/America/Mazatlan
+./usr/share/zoneinfo/America/Mexico_City
+./usr/share/zoneinfo/America/Miquelon
+./usr/share/zoneinfo/America/Montevideo
+./usr/share/zoneinfo/America/Montreal
+./usr/share/zoneinfo/America/Montserrat
+./usr/share/zoneinfo/America/Nassau
+./usr/share/zoneinfo/America/New_York
+./usr/share/zoneinfo/America/Noronha
+./usr/share/zoneinfo/America/Panama
+./usr/share/zoneinfo/America/Paramaribo
+./usr/share/zoneinfo/America/Phoenix
+./usr/share/zoneinfo/America/Port-au-Prince
+./usr/share/zoneinfo/America/Port_of_Spain
+./usr/share/zoneinfo/America/Porto_Acre
+./usr/share/zoneinfo/America/Puerto_Rico
+./usr/share/zoneinfo/America/Regina
+./usr/share/zoneinfo/America/Santiago
+./usr/share/zoneinfo/America/Santo_Domingo
+./usr/share/zoneinfo/America/Sao_Paulo
+./usr/share/zoneinfo/America/Scoresbysund
+./usr/share/zoneinfo/America/Shiprock
+./usr/share/zoneinfo/America/St_Johns
+./usr/share/zoneinfo/America/St_Kitts
+./usr/share/zoneinfo/America/St_Lucia
+./usr/share/zoneinfo/America/St_Vincent
+./usr/share/zoneinfo/America/Tegucigalpa
+./usr/share/zoneinfo/America/Thule
+./usr/share/zoneinfo/America/Tijuana
+./usr/share/zoneinfo/America/Vancouver
+./usr/share/zoneinfo/America/Virgin
+./usr/share/zoneinfo/America/Whitehorse
+./usr/share/zoneinfo/America/Winnipeg
+./usr/share/zoneinfo/Asia
+./usr/share/zoneinfo/Asia/Aden
+./usr/share/zoneinfo/Asia/Alma-Ata
+./usr/share/zoneinfo/Asia/Amman
+./usr/share/zoneinfo/Asia/Anadyr
+./usr/share/zoneinfo/Asia/Ashkhabad
+./usr/share/zoneinfo/Asia/Baghdad
+./usr/share/zoneinfo/Asia/Bahrain
+./usr/share/zoneinfo/Asia/Baku
+./usr/share/zoneinfo/Asia/Bangkok
+./usr/share/zoneinfo/Asia/Beirut
+./usr/share/zoneinfo/Asia/Bishkek
+./usr/share/zoneinfo/Asia/Brunei
+./usr/share/zoneinfo/Asia/Calcutta
+./usr/share/zoneinfo/Asia/Colombo
+./usr/share/zoneinfo/Asia/Dacca
+./usr/share/zoneinfo/Asia/Damascus
+./usr/share/zoneinfo/Asia/Dubai
+./usr/share/zoneinfo/Asia/Dushanbe
+./usr/share/zoneinfo/Asia/Gaza
+./usr/share/zoneinfo/Asia/Hong_Kong
+./usr/share/zoneinfo/Asia/Irkutsk
+./usr/share/zoneinfo/Asia/Istanbul
+./usr/share/zoneinfo/Asia/Jakarta
+./usr/share/zoneinfo/Asia/Jayapura
+./usr/share/zoneinfo/Asia/Kabul
+./usr/share/zoneinfo/Asia/Kamchatka
+./usr/share/zoneinfo/Asia/Karachi
+./usr/share/zoneinfo/Asia/Katmandu
+./usr/share/zoneinfo/Asia/Kuala_Lumpur
+./usr/share/zoneinfo/Asia/Kuwait
+./usr/share/zoneinfo/Asia/Macao
+./usr/share/zoneinfo/Asia/Magadan
+./usr/share/zoneinfo/Asia/Manila
+./usr/share/zoneinfo/Asia/Muscat
+./usr/share/zoneinfo/Asia/Nicosia
+./usr/share/zoneinfo/Asia/Novosibirsk
+./usr/share/zoneinfo/Asia/Omsk
+./usr/share/zoneinfo/Asia/Phnom_Penh
+./usr/share/zoneinfo/Asia/Pyongyang
+./usr/share/zoneinfo/Asia/Qatar
+./usr/share/zoneinfo/Asia/Rangoon
+./usr/share/zoneinfo/Asia/Riyadh
+./usr/share/zoneinfo/Asia/Saigon
+./usr/share/zoneinfo/Asia/Seoul
+./usr/share/zoneinfo/Asia/Shanghai
+./usr/share/zoneinfo/Asia/Singapore
+./usr/share/zoneinfo/Asia/Taipei
+./usr/share/zoneinfo/Asia/Tashkent
+./usr/share/zoneinfo/Asia/Tbilisi
+./usr/share/zoneinfo/Asia/Tehran
+./usr/share/zoneinfo/Asia/Tel_Aviv
+./usr/share/zoneinfo/Asia/Thimbu
+./usr/share/zoneinfo/Asia/Tokyo
+./usr/share/zoneinfo/Asia/Tomsk
+./usr/share/zoneinfo/Asia/Ujung_Pandang
+./usr/share/zoneinfo/Asia/Ulan_Bator
+./usr/share/zoneinfo/Asia/Vientiane
+./usr/share/zoneinfo/Asia/Vladivostok
+./usr/share/zoneinfo/Asia/Yakutsk
+./usr/share/zoneinfo/Asia/Yekaterinburg
+./usr/share/zoneinfo/Asia/Yerevan
+./usr/share/zoneinfo/Atlantic
+./usr/share/zoneinfo/Atlantic/Azores
+./usr/share/zoneinfo/Atlantic/Bermuda
+./usr/share/zoneinfo/Atlantic/Canary
+./usr/share/zoneinfo/Atlantic/Cape_Verde
+./usr/share/zoneinfo/Atlantic/Faeroe
+./usr/share/zoneinfo/Atlantic/Jan_Mayen
+./usr/share/zoneinfo/Atlantic/Madeira
+./usr/share/zoneinfo/Atlantic/Reykjavik
+./usr/share/zoneinfo/Atlantic/South_Georgia
+./usr/share/zoneinfo/Atlantic/St_Helena
+./usr/share/zoneinfo/Atlantic/Stanley
+./usr/share/zoneinfo/Australia
+./usr/share/zoneinfo/Australia/ACT
+./usr/share/zoneinfo/Australia/Adelaide
+./usr/share/zoneinfo/Australia/Brisbane
+./usr/share/zoneinfo/Australia/Broken_Hill
+./usr/share/zoneinfo/Australia/Canberra
+./usr/share/zoneinfo/Australia/Darwin
+./usr/share/zoneinfo/Australia/Hobart
+./usr/share/zoneinfo/Australia/LHI
+./usr/share/zoneinfo/Australia/Lord_Howe
+./usr/share/zoneinfo/Australia/Melbourne
+./usr/share/zoneinfo/Australia/NSW
+./usr/share/zoneinfo/Australia/North
+./usr/share/zoneinfo/Australia/Perth
+./usr/share/zoneinfo/Australia/Queensland
+./usr/share/zoneinfo/Australia/South
+./usr/share/zoneinfo/Australia/Sydney
+./usr/share/zoneinfo/Australia/Tasmania
+./usr/share/zoneinfo/Australia/Victoria
+./usr/share/zoneinfo/Australia/West
+./usr/share/zoneinfo/Australia/Yancowinna
+./usr/share/zoneinfo/Brazil
+./usr/share/zoneinfo/Brazil/Acre
+./usr/share/zoneinfo/Brazil/DeNoronha
+./usr/share/zoneinfo/Brazil/East
+./usr/share/zoneinfo/Brazil/West
+./usr/share/zoneinfo/CET
+./usr/share/zoneinfo/CST6CDT
+./usr/share/zoneinfo/Canada
+./usr/share/zoneinfo/Canada/Atlantic
+./usr/share/zoneinfo/Canada/Central
+./usr/share/zoneinfo/Canada/East-Saskatchewan
+./usr/share/zoneinfo/Canada/Eastern
+./usr/share/zoneinfo/Canada/Mountain
+./usr/share/zoneinfo/Canada/Newfoundland
+./usr/share/zoneinfo/Canada/Pacific
+./usr/share/zoneinfo/Canada/Saskatchewan
+./usr/share/zoneinfo/Canada/Yukon
+./usr/share/zoneinfo/Chile
+./usr/share/zoneinfo/Chile/Continental
+./usr/share/zoneinfo/Chile/EasterIsland
+./usr/share/zoneinfo/Cuba
+./usr/share/zoneinfo/EET
+./usr/share/zoneinfo/EST
+./usr/share/zoneinfo/EST5EDT
+./usr/share/zoneinfo/Egypt
+./usr/share/zoneinfo/Eire
+./usr/share/zoneinfo/Etc
+./usr/share/zoneinfo/Etc/GMT
+./usr/share/zoneinfo/Etc/GMT+0
+./usr/share/zoneinfo/Etc/GMT+1
+./usr/share/zoneinfo/Etc/GMT+10
+./usr/share/zoneinfo/Etc/GMT+11
+./usr/share/zoneinfo/Etc/GMT+12
+./usr/share/zoneinfo/Etc/GMT+2
+./usr/share/zoneinfo/Etc/GMT+3
+./usr/share/zoneinfo/Etc/GMT+4
+./usr/share/zoneinfo/Etc/GMT+5
+./usr/share/zoneinfo/Etc/GMT+6
+./usr/share/zoneinfo/Etc/GMT+7
+./usr/share/zoneinfo/Etc/GMT+8
+./usr/share/zoneinfo/Etc/GMT+9
+./usr/share/zoneinfo/Etc/GMT-0
+./usr/share/zoneinfo/Etc/GMT-1
+./usr/share/zoneinfo/Etc/GMT-10
+./usr/share/zoneinfo/Etc/GMT-11
+./usr/share/zoneinfo/Etc/GMT-12
+./usr/share/zoneinfo/Etc/GMT-13
+./usr/share/zoneinfo/Etc/GMT-2
+./usr/share/zoneinfo/Etc/GMT-3
+./usr/share/zoneinfo/Etc/GMT-4
+./usr/share/zoneinfo/Etc/GMT-5
+./usr/share/zoneinfo/Etc/GMT-6
+./usr/share/zoneinfo/Etc/GMT-7
+./usr/share/zoneinfo/Etc/GMT-8
+./usr/share/zoneinfo/Etc/GMT-9
+./usr/share/zoneinfo/Etc/GMT0
+./usr/share/zoneinfo/Etc/Greenwich
+./usr/share/zoneinfo/Etc/UCT
+./usr/share/zoneinfo/Etc/UTC
+./usr/share/zoneinfo/Etc/Universal
+./usr/share/zoneinfo/Etc/Zulu
+./usr/share/zoneinfo/Europe
+./usr/share/zoneinfo/Europe/Amsterdam
+./usr/share/zoneinfo/Europe/Andorra
+./usr/share/zoneinfo/Europe/Athens
+./usr/share/zoneinfo/Europe/Belfast
+./usr/share/zoneinfo/Europe/Belgrade
+./usr/share/zoneinfo/Europe/Berlin
+./usr/share/zoneinfo/Europe/Bratislava
+./usr/share/zoneinfo/Europe/Brussels
+./usr/share/zoneinfo/Europe/Bucharest
+./usr/share/zoneinfo/Europe/Budapest
+./usr/share/zoneinfo/Europe/Chisinau
+./usr/share/zoneinfo/Europe/Copenhagen
+./usr/share/zoneinfo/Europe/Dublin
+./usr/share/zoneinfo/Europe/Gibraltar
+./usr/share/zoneinfo/Europe/Helsinki
+./usr/share/zoneinfo/Europe/Istanbul
+./usr/share/zoneinfo/Europe/Kiev
+./usr/share/zoneinfo/Europe/Kuybyshev
+./usr/share/zoneinfo/Europe/Lisbon
+./usr/share/zoneinfo/Europe/Ljubljana
+./usr/share/zoneinfo/Europe/London
+./usr/share/zoneinfo/Europe/Luxembourg
+./usr/share/zoneinfo/Europe/Madrid
+./usr/share/zoneinfo/Europe/Malta
+./usr/share/zoneinfo/Europe/Minsk
+./usr/share/zoneinfo/Europe/Monaco
+./usr/share/zoneinfo/Europe/Moscow
+./usr/share/zoneinfo/Europe/Oslo
+./usr/share/zoneinfo/Europe/Paris
+./usr/share/zoneinfo/Europe/Prague
+./usr/share/zoneinfo/Europe/Riga
+./usr/share/zoneinfo/Europe/Rome
+./usr/share/zoneinfo/Europe/San_Marino
+./usr/share/zoneinfo/Europe/Sarajevo
+./usr/share/zoneinfo/Europe/Simferopol
+./usr/share/zoneinfo/Europe/Skopje
+./usr/share/zoneinfo/Europe/Sofia
+./usr/share/zoneinfo/Europe/Stockholm
+./usr/share/zoneinfo/Europe/Tallinn
+./usr/share/zoneinfo/Europe/Tirane
+./usr/share/zoneinfo/Europe/Vaduz
+./usr/share/zoneinfo/Europe/Vatican
+./usr/share/zoneinfo/Europe/Vienna
+./usr/share/zoneinfo/Europe/Vilnius
+./usr/share/zoneinfo/Europe/Warsaw
+./usr/share/zoneinfo/Europe/Zagreb
+./usr/share/zoneinfo/Europe/Zurich
+./usr/share/zoneinfo/Factory
+./usr/share/zoneinfo/GB
+./usr/share/zoneinfo/GMT
+./usr/share/zoneinfo/GMT+0
+./usr/share/zoneinfo/GMT-0
+./usr/share/zoneinfo/GMT0
+./usr/share/zoneinfo/Greenwich
+./usr/share/zoneinfo/HST
+./usr/share/zoneinfo/Hongkong
+./usr/share/zoneinfo/Iceland
+./usr/share/zoneinfo/Indian
+./usr/share/zoneinfo/Indian/Antananarivo
+./usr/share/zoneinfo/Indian/Chagos
+./usr/share/zoneinfo/Indian/Christmas
+./usr/share/zoneinfo/Indian/Cocos
+./usr/share/zoneinfo/Indian/Comoro
+./usr/share/zoneinfo/Indian/Mahe
+./usr/share/zoneinfo/Indian/Maldives
+./usr/share/zoneinfo/Indian/Mauritius
+./usr/share/zoneinfo/Indian/Mayotte
+./usr/share/zoneinfo/Indian/Reunion
+./usr/share/zoneinfo/Iran
+./usr/share/zoneinfo/Israel
+./usr/share/zoneinfo/Jamaica
+./usr/share/zoneinfo/Japan
+./usr/share/zoneinfo/Kwajalein
+./usr/share/zoneinfo/Libya
+./usr/share/zoneinfo/MET
+./usr/share/zoneinfo/MST
+./usr/share/zoneinfo/MST7MDT
+./usr/share/zoneinfo/Mexico
+./usr/share/zoneinfo/Mexico/BajaNorte
+./usr/share/zoneinfo/Mexico/BajaSur
+./usr/share/zoneinfo/Mexico/General
+./usr/share/zoneinfo/Mideast
+./usr/share/zoneinfo/Mideast/Riyadh87
+./usr/share/zoneinfo/Mideast/Riyadh88
+./usr/share/zoneinfo/Mideast/Riyadh89
+./usr/share/zoneinfo/NZ
+./usr/share/zoneinfo/NZ-CHAT
+./usr/share/zoneinfo/Navajo
+./usr/share/zoneinfo/PRC
+./usr/share/zoneinfo/PST8PDT
+./usr/share/zoneinfo/Pacific
+./usr/share/zoneinfo/Pacific/Auckland
+./usr/share/zoneinfo/Pacific/Chatham
+./usr/share/zoneinfo/Pacific/Easter
+./usr/share/zoneinfo/Pacific/Efate
+./usr/share/zoneinfo/Pacific/Enderbury
+./usr/share/zoneinfo/Pacific/Fakaofo
+./usr/share/zoneinfo/Pacific/Fiji
+./usr/share/zoneinfo/Pacific/Funafuti
+./usr/share/zoneinfo/Pacific/Galapagos
+./usr/share/zoneinfo/Pacific/Gambier
+./usr/share/zoneinfo/Pacific/Guadalcanal
+./usr/share/zoneinfo/Pacific/Guam
+./usr/share/zoneinfo/Pacific/Honolulu
+./usr/share/zoneinfo/Pacific/Kiritimati
+./usr/share/zoneinfo/Pacific/Kwajalein
+./usr/share/zoneinfo/Pacific/Majuro
+./usr/share/zoneinfo/Pacific/Marquesas
+./usr/share/zoneinfo/Pacific/Midway
+./usr/share/zoneinfo/Pacific/Nauru
+./usr/share/zoneinfo/Pacific/Niue
+./usr/share/zoneinfo/Pacific/Norfolk
+./usr/share/zoneinfo/Pacific/Noumea
+./usr/share/zoneinfo/Pacific/Palau
+./usr/share/zoneinfo/Pacific/Pitcairn
+./usr/share/zoneinfo/Pacific/Ponape
+./usr/share/zoneinfo/Pacific/Port_Moresby
+./usr/share/zoneinfo/Pacific/Rarotonga
+./usr/share/zoneinfo/Pacific/Samoa
+./usr/share/zoneinfo/Pacific/Tahiti
+./usr/share/zoneinfo/Pacific/Tarawa
+./usr/share/zoneinfo/Pacific/Tongatapu
+./usr/share/zoneinfo/Pacific/Truk
+./usr/share/zoneinfo/Pacific/Wake
+./usr/share/zoneinfo/Pacific/Wallis
+./usr/share/zoneinfo/Pacific/Yap
+./usr/share/zoneinfo/Poland
+./usr/share/zoneinfo/Portugal
+./usr/share/zoneinfo/ROC
+./usr/share/zoneinfo/ROK
+./usr/share/zoneinfo/Singapore
+./usr/share/zoneinfo/SystemV
+./usr/share/zoneinfo/SystemV/AST4
+./usr/share/zoneinfo/SystemV/AST4ADT
+./usr/share/zoneinfo/SystemV/CST6
+./usr/share/zoneinfo/SystemV/CST6CDT
+./usr/share/zoneinfo/SystemV/EST5
+./usr/share/zoneinfo/SystemV/EST5EDT
+./usr/share/zoneinfo/SystemV/HST10
+./usr/share/zoneinfo/SystemV/MST7
+./usr/share/zoneinfo/SystemV/MST7MDT
+./usr/share/zoneinfo/SystemV/PST8
+./usr/share/zoneinfo/SystemV/PST8PDT
+./usr/share/zoneinfo/SystemV/YST9
+./usr/share/zoneinfo/SystemV/YST9YDT
+./usr/share/zoneinfo/Turkey
+./usr/share/zoneinfo/UCT
+./usr/share/zoneinfo/US
+./usr/share/zoneinfo/US/Alaska
+./usr/share/zoneinfo/US/Aleutian
+./usr/share/zoneinfo/US/Arizona
+./usr/share/zoneinfo/US/Central
+./usr/share/zoneinfo/US/East-Indiana
+./usr/share/zoneinfo/US/Eastern
+./usr/share/zoneinfo/US/Hawaii
+./usr/share/zoneinfo/US/Indiana-Starke
+./usr/share/zoneinfo/US/Michigan
+./usr/share/zoneinfo/US/Mountain
+./usr/share/zoneinfo/US/Pacific
+./usr/share/zoneinfo/US/Pacific-New
+./usr/share/zoneinfo/US/Samoa
+./usr/share/zoneinfo/UTC
+./usr/share/zoneinfo/Universal
+./usr/share/zoneinfo/W-SU
+./usr/share/zoneinfo/WET
+./usr/share/zoneinfo/Zulu
+./usr/share/zoneinfo/posixrules
+./usr/src
+./var
+./var/account
+./var/at
+./var/at/jobs
+./var/at/spool
+./var/backups
+./var/crash
+./var/cron
+./var/cron/log
+./var/cron/tabs
+./var/db
+./var/db/locate.database
+./var/db/ns
+./var/games
+./var/games/hackdir
+./var/games/hackdir/save
+./var/games/larn
+./var/games/phantasia
+./var/games/save
+./var/log
+./var/log/lastlog
+./var/log/lpd-errs
+./var/log/maillog
+./var/log/messages
+./var/log/rdist
+./var/log/sendmail.st
+./var/log/wtmp
+./var/mail
+./var/msgs
+./var/preserve
+./var/quotas
+./var/run
+./var/run/utmp
+./var/rwho
+./var/spool
+./var/spool/ftp
+./var/spool/ftp/bin
+./var/spool/ftp/etc
+./var/spool/ftp/hidden
+./var/spool/lock
+./var/spool/lpd
+./var/spool/mqueue
+./var/spool/output
+./var/spool/secretmail
+./var/spool/sockets
+./var/spool/uucp
+./var/spool/uucppublic
+./var/tmp
+./var/tmp/vi.recover
diff --git a/distrib/sets/lists/comp/md.amiga b/distrib/sets/lists/comp/md.amiga
new file mode 100644
index 00000000000..3710a16e4ef
--- /dev/null
+++ b/distrib/sets/lists/comp/md.amiga
@@ -0,0 +1,65 @@
+./usr/include/m68k
+./usr/include/m68k/ansi.h
+./usr/include/m68k/asm.h
+./usr/include/m68k/cdefs.h
+./usr/include/m68k/db_machdep.h
+./usr/include/m68k/endian.h
+./usr/include/m68k/float.h
+./usr/include/m68k/frame.h
+./usr/include/m68k/ieeefp.h
+./usr/include/m68k/limits.h
+./usr/include/m68k/profile.h
+./usr/include/m68k/psl.h
+./usr/include/m68k/ptrace.h
+./usr/include/m68k/reg.h
+./usr/include/m68k/setjmp.h
+./usr/include/m68k/signal.h
+./usr/include/m68k/stdarg.h
+./usr/include/m68k/trap.h
+./usr/include/m68k/types.h
+./usr/include/m68k/varargs.h
+./usr/include/machine/ansi.h
+./usr/include/machine/asm.h
+./usr/include/machine/cdefs.h
+./usr/include/machine/cpu.h
+./usr/include/machine/cpufunc.h
+./usr/include/machine/db_machdep.h
+./usr/include/machine/disklabel.h
+./usr/include/machine/endian.h
+./usr/include/machine/exec.h
+./usr/include/machine/float.h
+./usr/include/machine/frame.h
+./usr/include/machine/ieeefp.h
+./usr/include/machine/limits.h
+./usr/include/machine/mtpr.h
+./usr/include/machine/param.h
+./usr/include/machine/pcb.h
+./usr/include/machine/pmap.h
+./usr/include/machine/proc.h
+./usr/include/machine/profile.h
+./usr/include/machine/psl.h
+./usr/include/machine/pte.h
+./usr/include/machine/ptrace.h
+./usr/include/machine/reg.h
+./usr/include/machine/setjmp.h
+./usr/include/machine/signal.h
+./usr/include/machine/stdarg.h
+./usr/include/machine/trap.h
+./usr/include/machine/types.h
+./usr/include/machine/varargs.h
+./usr/include/machine/vmparam.h
+./usr/lib/libc_pic.a
+./usr/lib/libcrypt_pic.a
+./usr/lib/libcurses_pic.a
+./usr/lib/libedit_pic.a
+./usr/lib/libg++_pic.a
+./usr/lib/libgnumalloc_pic.a
+./usr/lib/libkvm_pic.a
+./usr/lib/libm_pic.a
+./usr/lib/libpcap_pic.a
+./usr/lib/libresolv_pic.a
+./usr/lib/libskey_pic.a
+./usr/lib/libtelnet_pic.a
+./usr/lib/libtermcap_pic.a
+./usr/lib/libutil_pic.a
+./usr/lib/scrt0.o
diff --git a/distrib/sets/lists/comp/md.atari b/distrib/sets/lists/comp/md.atari
new file mode 100644
index 00000000000..4c21ad23514
--- /dev/null
+++ b/distrib/sets/lists/comp/md.atari
@@ -0,0 +1,72 @@
+./usr/include/m68k
+./usr/include/m68k/ansi.h
+./usr/include/m68k/asm.h
+./usr/include/m68k/cdefs.h
+./usr/include/m68k/db_machdep.h
+./usr/include/m68k/endian.h
+./usr/include/m68k/float.h
+./usr/include/m68k/frame.h
+./usr/include/m68k/ieeefp.h
+./usr/include/m68k/limits.h
+./usr/include/m68k/profile.h
+./usr/include/m68k/psl.h
+./usr/include/m68k/ptrace.h
+./usr/include/m68k/reg.h
+./usr/include/m68k/setjmp.h
+./usr/include/m68k/signal.h
+./usr/include/m68k/stdarg.h
+./usr/include/m68k/trap.h
+./usr/include/m68k/types.h
+./usr/include/m68k/varargs.h
+./usr/include/machine/acia.h
+./usr/include/machine/ansi.h
+./usr/include/machine/asm.h
+./usr/include/machine/cdefs.h
+./usr/include/machine/cpu.h
+./usr/include/machine/cpufunc.h
+./usr/include/machine/db_machdep.h
+./usr/include/machine/disklabel.h
+./usr/include/machine/dma.h
+./usr/include/machine/endian.h
+./usr/include/machine/exec.h
+./usr/include/machine/float.h
+./usr/include/machine/frame.h
+./usr/include/machine/ieeefp.h
+./usr/include/machine/iomap.h
+./usr/include/machine/limits.h
+./usr/include/machine/mfp.h
+./usr/include/machine/mtpr.h
+./usr/include/machine/param.h
+./usr/include/machine/pcb.h
+./usr/include/machine/pmap.h
+./usr/include/machine/proc.h
+./usr/include/machine/profile.h
+./usr/include/machine/psl.h
+./usr/include/machine/pte.h
+./usr/include/machine/ptrace.h
+./usr/include/machine/reg.h
+./usr/include/machine/scu.h
+./usr/include/machine/setjmp.h
+./usr/include/machine/signal.h
+./usr/include/machine/stdarg.h
+./usr/include/machine/tospart.h
+./usr/include/machine/trap.h
+./usr/include/machine/types.h
+./usr/include/machine/varargs.h
+./usr/include/machine/video.h
+./usr/include/machine/vmparam.h
+./usr/lib/libc_pic.a
+./usr/lib/libcrypt_pic.a
+./usr/lib/libcurses_pic.a
+./usr/lib/libedit_pic.a
+./usr/lib/libg++_pic.a
+./usr/lib/libgnumalloc_pic.a
+./usr/lib/libkvm_pic.a
+./usr/lib/libm_pic.a
+./usr/lib/libpcap_pic.a
+./usr/lib/libresolv_pic.a
+./usr/lib/libskey_pic.a
+./usr/lib/libtelnet_pic.a
+./usr/lib/libtermcap_pic.a
+./usr/lib/libutil_pic.a
+./usr/lib/scrt0.o
diff --git a/distrib/sets/lists/comp/md.hp300 b/distrib/sets/lists/comp/md.hp300
new file mode 100644
index 00000000000..f16eddf41d7
--- /dev/null
+++ b/distrib/sets/lists/comp/md.hp300
@@ -0,0 +1,65 @@
+./usr/include/m68k
+./usr/include/m68k/ansi.h
+./usr/include/m68k/asm.h
+./usr/include/m68k/cdefs.h
+./usr/include/m68k/db_machdep.h
+./usr/include/m68k/endian.h
+./usr/include/m68k/float.h
+./usr/include/m68k/frame.h
+./usr/include/m68k/ieeefp.h
+./usr/include/m68k/limits.h
+./usr/include/m68k/profile.h
+./usr/include/m68k/psl.h
+./usr/include/m68k/ptrace.h
+./usr/include/m68k/reg.h
+./usr/include/m68k/setjmp.h
+./usr/include/m68k/signal.h
+./usr/include/m68k/stdarg.h
+./usr/include/m68k/trap.h
+./usr/include/m68k/types.h
+./usr/include/m68k/varargs.h
+./usr/include/machine/ansi.h
+./usr/include/machine/asm.h
+./usr/include/machine/cdefs.h
+./usr/include/machine/cpu.h
+./usr/include/machine/db_machdep.h
+./usr/include/machine/disklabel.h
+./usr/include/machine/endian.h
+./usr/include/machine/exec.h
+./usr/include/machine/float.h
+./usr/include/machine/frame.h
+./usr/include/machine/ieeefp.h
+./usr/include/machine/limits.h
+./usr/include/machine/mtpr.h
+./usr/include/machine/param.h
+./usr/include/machine/pcb.h
+./usr/include/machine/pmap.h
+./usr/include/machine/proc.h
+./usr/include/machine/profile.h
+./usr/include/machine/psl.h
+./usr/include/machine/pte.h
+./usr/include/machine/ptrace.h
+./usr/include/machine/reg.h
+./usr/include/machine/setjmp.h
+./usr/include/machine/signal.h
+./usr/include/machine/stdarg.h
+./usr/include/machine/trap.h
+./usr/include/machine/types.h
+./usr/include/machine/varargs.h
+./usr/include/machine/vmparam.h
+./usr/lib/libc_pic.a
+./usr/lib/libcrypt_pic.a
+./usr/lib/libcurses_pic.a
+./usr/lib/libedit_pic.a
+./usr/lib/libg++_pic.a
+./usr/lib/libgnumalloc_pic.a
+./usr/lib/libkvm_pic.a
+./usr/lib/libm_pic.a
+./usr/lib/libpcap_pic.a
+./usr/lib/libresolv_pic.a
+./usr/lib/libskey_pic.a
+./usr/lib/libtelnet_pic.a
+./usr/lib/libtermcap_pic.a
+./usr/lib/libutil_pic.a
+./usr/lib/scrt0.o
+./usr/sbin/config.old
diff --git a/distrib/sets/lists/comp/md.i386 b/distrib/sets/lists/comp/md.i386
new file mode 100644
index 00000000000..ab00d5c86dc
--- /dev/null
+++ b/distrib/sets/lists/comp/md.i386
@@ -0,0 +1,62 @@
+./usr/include/i386
+./usr/include/machine/ansi.h
+./usr/include/machine/asm.h
+./usr/include/machine/cdefs.h
+./usr/include/machine/cpu.h
+./usr/include/machine/cpufunc.h
+./usr/include/machine/cputypes.h
+./usr/include/machine/db_machdep.h
+./usr/include/machine/disklabel.h
+./usr/include/machine/endian.h
+./usr/include/machine/exec.h
+./usr/include/machine/float.h
+./usr/include/machine/frame.h
+./usr/include/machine/ieeefp.h
+./usr/include/machine/limits.h
+./usr/include/machine/linux_machdep.h
+./usr/include/machine/mouse.h
+./usr/include/machine/npx.h
+./usr/include/machine/param.h
+./usr/include/machine/pcb.h
+./usr/include/machine/pccons.h
+./usr/include/machine/pio.h
+./usr/include/machine/pmap.h
+./usr/include/machine/proc.h
+./usr/include/machine/profile.h
+./usr/include/machine/psl.h
+./usr/include/machine/pte.h
+./usr/include/machine/ptrace.h
+./usr/include/machine/reg.h
+./usr/include/machine/segments.h
+./usr/include/machine/setjmp.h
+./usr/include/machine/signal.h
+./usr/include/machine/specialreg.h
+./usr/include/machine/spkr.h
+./usr/include/machine/stdarg.h
+./usr/include/machine/svr4_machdep.h
+./usr/include/machine/sysarch.h
+./usr/include/machine/trap.h
+./usr/include/machine/tss.h
+./usr/include/machine/types.h
+./usr/include/machine/varargs.h
+./usr/include/machine/vmparam.h
+./usr/lib/libc_pic.a
+./usr/lib/libcrypt_pic.a
+./usr/lib/libcurses_pic.a
+./usr/lib/libedit_pic.a
+./usr/lib/libg++_pic.a
+./usr/lib/libgnumalloc_pic.a
+./usr/lib/libi386.a
+./usr/lib/libi386_p.a
+./usr/lib/libi386_pic.a
+./usr/lib/libkvm_pic.a
+./usr/lib/libm_pic.a
+./usr/lib/libpcap_pic.a
+./usr/lib/libresolv_pic.a
+./usr/lib/libskey_pic.a
+./usr/lib/libtelnet_pic.a
+./usr/lib/libtermcap_pic.a
+./usr/lib/libutil_pic.a
+./usr/lib/scrt0.o
+./usr/share/man/cat2/i386_get_ldt.0
+./usr/share/man/cat2/i386_set_ldt.0
diff --git a/distrib/sets/lists/comp/md.mac68k b/distrib/sets/lists/comp/md.mac68k
new file mode 100644
index 00000000000..497bb4f1c96
--- /dev/null
+++ b/distrib/sets/lists/comp/md.mac68k
@@ -0,0 +1,70 @@
+./usr/include/m68k
+./usr/include/m68k/ansi.h
+./usr/include/m68k/asm.h
+./usr/include/m68k/cdefs.h
+./usr/include/m68k/db_machdep.h
+./usr/include/m68k/endian.h
+./usr/include/m68k/float.h
+./usr/include/m68k/frame.h
+./usr/include/m68k/ieeefp.h
+./usr/include/m68k/limits.h
+./usr/include/m68k/profile.h
+./usr/include/m68k/psl.h
+./usr/include/m68k/ptrace.h
+./usr/include/m68k/reg.h
+./usr/include/m68k/setjmp.h
+./usr/include/m68k/signal.h
+./usr/include/m68k/stdarg.h
+./usr/include/m68k/trap.h
+./usr/include/m68k/types.h
+./usr/include/m68k/varargs.h
+./usr/include/machine/adbsys.h
+./usr/include/machine/ansi.h
+./usr/include/machine/asm.h
+./usr/include/machine/cdefs.h
+./usr/include/machine/cpu.h
+./usr/include/machine/db_machdep.h
+./usr/include/machine/disklabel.h
+./usr/include/machine/endian.h
+./usr/include/machine/exec.h
+./usr/include/machine/float.h
+./usr/include/machine/frame.h
+./usr/include/machine/grfioctl.h
+./usr/include/machine/ieeefp.h
+./usr/include/machine/iteioctl.h
+./usr/include/machine/keyboard.h
+./usr/include/machine/limits.h
+./usr/include/machine/param.h
+./usr/include/machine/pcb.h
+./usr/include/machine/pio.h
+./usr/include/machine/pmap.h
+./usr/include/machine/proc.h
+./usr/include/machine/profile.h
+./usr/include/machine/psl.h
+./usr/include/machine/pte.h
+./usr/include/machine/ptrace.h
+./usr/include/machine/reg.h
+./usr/include/machine/scsi96reg.h
+./usr/include/machine/scsi_5380.h
+./usr/include/machine/setjmp.h
+./usr/include/machine/signal.h
+./usr/include/machine/stdarg.h
+./usr/include/machine/trap.h
+./usr/include/machine/types.h
+./usr/include/machine/varargs.h
+./usr/include/machine/vmparam.h
+./usr/lib/libc_pic.a
+./usr/lib/libcrypt_pic.a
+./usr/lib/libcurses_pic.a
+./usr/lib/libedit_pic.a
+./usr/lib/libg++_pic.a
+./usr/lib/libgnumalloc_pic.a
+./usr/lib/libkvm_pic.a
+./usr/lib/libm_pic.a
+./usr/lib/libpcap_pic.a
+./usr/lib/libresolv_pic.a
+./usr/lib/libskey_pic.a
+./usr/lib/libtelnet_pic.a
+./usr/lib/libtermcap_pic.a
+./usr/lib/libutil_pic.a
+./usr/lib/scrt0.o
diff --git a/distrib/sets/lists/comp/md.pc532 b/distrib/sets/lists/comp/md.pc532
new file mode 100644
index 00000000000..ae5c4d7e232
--- /dev/null
+++ b/distrib/sets/lists/comp/md.pc532
@@ -0,0 +1,27 @@
+./usr/include/machine/ansi.h
+./usr/include/machine/asm.h
+./usr/include/machine/cpu.h
+./usr/include/machine/db_machdep.h
+./usr/include/machine/endian.h
+./usr/include/machine/exec.h
+./usr/include/machine/float.h
+./usr/include/machine/frame.h
+./usr/include/machine/icu.h
+./usr/include/machine/jmpbuf.h
+./usr/include/machine/limits.h
+./usr/include/machine/mtpr.h
+./usr/include/machine/param.h
+./usr/include/machine/pcb.h
+./usr/include/machine/pmap.h
+./usr/include/machine/proc.h
+./usr/include/machine/profile.h
+./usr/include/machine/psl.h
+./usr/include/machine/ptrace.h
+./usr/include/machine/reg.h
+./usr/include/machine/signal.h
+./usr/include/machine/stdarg.h
+./usr/include/machine/trap.h
+./usr/include/machine/types.h
+./usr/include/machine/varargs.h
+./usr/include/machine/vmparam.h
+./usr/include/ns32k
diff --git a/distrib/sets/lists/comp/md.pmax b/distrib/sets/lists/comp/md.pmax
new file mode 100644
index 00000000000..6b0e95de147
--- /dev/null
+++ b/distrib/sets/lists/comp/md.pmax
@@ -0,0 +1,66 @@
+./usr/bin/elf2aout
+./usr/bin/objcopy
+./usr/bin/objdump
+./usr/include/machine
+./usr/include/machine/ansi.h
+./usr/include/machine/bsd-aout.h
+./usr/include/machine/cpu.h
+./usr/include/machine/dc7085cons.h
+./usr/include/machine/disklabel.h
+./usr/include/machine/ecoff.h
+./usr/include/machine/elf.h
+./usr/include/machine/endian.h
+./usr/include/machine/exec.h
+./usr/include/machine/float.h
+./usr/include/machine/kdbparam.h
+./usr/include/machine/limits.h
+./usr/include/machine/machAsmDefs.h
+./usr/include/machine/machConst.h
+./usr/include/machine/mips_opcode.h
+./usr/include/machine/param.h
+./usr/include/machine/pcb.h
+./usr/include/machine/pmap.h
+./usr/include/machine/pmioctl.h
+./usr/include/machine/proc.h
+./usr/include/machine/profile.h
+./usr/include/machine/psl.h
+./usr/include/machine/pte.h
+./usr/include/machine/ptrace.h
+./usr/include/machine/reg.h
+./usr/include/machine/regdef.h
+./usr/include/machine/reloc.h
+./usr/include/machine/setjmp.h
+./usr/include/machine/signal.h
+./usr/include/machine/stdarg.h
+./usr/include/machine/trap.h
+./usr/include/machine/types.h
+./usr/include/machine/varargs.h
+./usr/include/machine/vmparam.h
+./usr/lib/gcc-lib
+./usr/lib/gcc-lib/mipsel-elf-netbsd
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/SYSCALLS.c.X
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/cc1
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/cc1obj
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/cc1plus
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/cpp
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/include
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/include/README
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/include/float.h
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/include/objc
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/include/objc/Object.h
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/include/objc/Protocol.h
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/include/objc/encoding.h
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/include/objc/hash.h
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/include/objc/list.h
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/include/objc/objc-api.h
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/include/objc/objc.h
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/include/objc/sarray.h
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/include/objc/typedstream.h
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/include/stdarg.h
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/include/va-mips.h
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/include/varargs.h
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/libgcc.a
+./usr/lib/gcc-lib/mipsel-elf-netbsd/2.6.4/specs
+./usr/share/man/cat1/objcopy.0
+./usr/share/man/cat1/objdump.0
diff --git a/distrib/sets/lists/comp/md.sparc b/distrib/sets/lists/comp/md.sparc
new file mode 100644
index 00000000000..0895923d50d
--- /dev/null
+++ b/distrib/sets/lists/comp/md.sparc
@@ -0,0 +1,65 @@
+./usr/include/machine/ansi.h
+./usr/include/machine/asm.h
+./usr/include/machine/autoconf.h
+./usr/include/machine/bsd_audioio.h
+./usr/include/machine/bsd_openprom.h
+./usr/include/machine/cdefs.h
+./usr/include/machine/cgtworeg.h
+./usr/include/machine/cpu.h
+./usr/include/machine/ctlreg.h
+./usr/include/machine/db_machdep.h
+./usr/include/machine/disklabel.h
+./usr/include/machine/eeprom.h
+./usr/include/machine/endian.h
+./usr/include/machine/exec.h
+./usr/include/machine/fbio.h
+./usr/include/machine/fbvar.h
+./usr/include/machine/float.h
+./usr/include/machine/frame.h
+./usr/include/machine/fsr.h
+./usr/include/machine/idprom.h
+./usr/include/machine/ieee.h
+./usr/include/machine/ieeefp.h
+./usr/include/machine/instr.h
+./usr/include/machine/kbd.h
+./usr/include/machine/kbio.h
+./usr/include/machine/limits.h
+./usr/include/machine/oldmon.h
+./usr/include/machine/openpromio.h
+./usr/include/machine/param.h
+./usr/include/machine/pcb.h
+./usr/include/machine/pmap.h
+./usr/include/machine/proc.h
+./usr/include/machine/profile.h
+./usr/include/machine/psl.h
+./usr/include/machine/pte.h
+./usr/include/machine/ptrace.h
+./usr/include/machine/reg.h
+./usr/include/machine/reloc.h
+./usr/include/machine/remote-sl.h
+./usr/include/machine/setjmp.h
+./usr/include/machine/signal.h
+./usr/include/machine/stdarg.h
+./usr/include/machine/sun_disklabel.h
+./usr/include/machine/svr4_machdep.h
+./usr/include/machine/trap.h
+./usr/include/machine/types.h
+./usr/include/machine/varargs.h
+./usr/include/machine/vmparam.h
+./usr/include/machine/vuid_event.h
+./usr/include/sparc
+./usr/lib/libc_pic.a
+./usr/lib/libcrypt_pic.a
+./usr/lib/libcurses_pic.a
+./usr/lib/libedit_pic.a
+./usr/lib/libg++_pic.a
+./usr/lib/libgnumalloc_pic.a
+./usr/lib/libkvm_pic.a
+./usr/lib/libm_pic.a
+./usr/lib/libpcap_pic.a
+./usr/lib/libresolv_pic.a
+./usr/lib/libskey_pic.a
+./usr/lib/libtelnet_pic.a
+./usr/lib/libtermcap_pic.a
+./usr/lib/libutil_pic.a
+./usr/lib/scrt0.o
diff --git a/distrib/sets/lists/comp/md.sun3 b/distrib/sets/lists/comp/md.sun3
new file mode 100644
index 00000000000..bfa816d4385
--- /dev/null
+++ b/distrib/sets/lists/comp/md.sun3
@@ -0,0 +1,80 @@
+./usr/include/m68k
+./usr/include/m68k/ansi.h
+./usr/include/m68k/asm.h
+./usr/include/m68k/cdefs.h
+./usr/include/m68k/db_machdep.h
+./usr/include/m68k/endian.h
+./usr/include/m68k/float.h
+./usr/include/m68k/frame.h
+./usr/include/m68k/ieeefp.h
+./usr/include/m68k/limits.h
+./usr/include/m68k/profile.h
+./usr/include/m68k/psl.h
+./usr/include/m68k/ptrace.h
+./usr/include/m68k/reg.h
+./usr/include/m68k/setjmp.h
+./usr/include/m68k/signal.h
+./usr/include/m68k/stdarg.h
+./usr/include/m68k/trap.h
+./usr/include/m68k/types.h
+./usr/include/m68k/varargs.h
+./usr/include/machine/ansi.h
+./usr/include/machine/asm.h
+./usr/include/machine/autoconf.h
+./usr/include/machine/cdefs.h
+./usr/include/machine/cg2reg.h
+./usr/include/machine/control.h
+./usr/include/machine/cpu.h
+./usr/include/machine/cpufunc.h
+./usr/include/machine/db_machdep.h
+./usr/include/machine/disklabel.h
+./usr/include/machine/eeprom.h
+./usr/include/machine/endian.h
+./usr/include/machine/exec.h
+./usr/include/machine/fbio.h
+./usr/include/machine/float.h
+./usr/include/machine/frame.h
+./usr/include/machine/idprom.h
+./usr/include/machine/ieeefp.h
+./usr/include/machine/isr.h
+./usr/include/machine/kbd.h
+./usr/include/machine/kbio.h
+./usr/include/machine/limits.h
+./usr/include/machine/mon.h
+./usr/include/machine/obctl.h
+./usr/include/machine/obio.h
+./usr/include/machine/obmem.h
+./usr/include/machine/param.h
+./usr/include/machine/pcb.h
+./usr/include/machine/pmap.h
+./usr/include/machine/proc.h
+./usr/include/machine/profile.h
+./usr/include/machine/psl.h
+./usr/include/machine/pte.h
+./usr/include/machine/ptrace.h
+./usr/include/machine/reg.h
+./usr/include/machine/saio.h
+./usr/include/machine/setjmp.h
+./usr/include/machine/signal.h
+./usr/include/machine/stdarg.h
+./usr/include/machine/sun_disklabel.h
+./usr/include/machine/trap.h
+./usr/include/machine/types.h
+./usr/include/machine/varargs.h
+./usr/include/machine/vmparam.h
+./usr/include/machine/vuid_event.h
+./usr/lib/libc_pic.a
+./usr/lib/libcrypt_pic.a
+./usr/lib/libcurses_pic.a
+./usr/lib/libedit_pic.a
+./usr/lib/libg++_pic.a
+./usr/lib/libgnumalloc_pic.a
+./usr/lib/libkvm_pic.a
+./usr/lib/libm_pic.a
+./usr/lib/libresolv_pic.a
+./usr/lib/libskey_pic.a
+./usr/lib/libtelnet_pic.a
+./usr/lib/libtermcap_pic.a
+./usr/lib/libutil_pic.a
+./usr/lib/scrt0.o
+./usr/sbin/dbsym
diff --git a/distrib/sets/lists/comp/mi b/distrib/sets/lists/comp/mi
new file mode 100644
index 00000000000..ada56c38ab6
--- /dev/null
+++ b/distrib/sets/lists/comp/mi
@@ -0,0 +1,1542 @@
+./sys
+./usr/bin/ar
+./usr/bin/as
+./usr/bin/asa
+./usr/bin/c++
+./usr/bin/cc
+./usr/bin/flex
+./usr/bin/flex++
+./usr/bin/fpr
+./usr/bin/g++
+./usr/bin/gcc
+./usr/bin/gdb
+./usr/bin/genclass
+./usr/bin/gprof
+./usr/bin/ld
+./usr/bin/lex
+./usr/bin/lint
+./usr/bin/lorder
+./usr/bin/mkstr
+./usr/bin/ranlib
+./usr/bin/rpcgen
+./usr/bin/strip
+./usr/bin/xstr
+./usr/bin/yacc
+./usr/include/a.out.h
+./usr/include/ar.h
+./usr/include/arpa/ftp.h
+./usr/include/arpa/inet.h
+./usr/include/arpa/nameser.h
+./usr/include/arpa/telnet.h
+./usr/include/arpa/tftp.h
+./usr/include/assert.h
+./usr/include/bitstring.h
+./usr/include/bm.h
+./usr/include/ctype.h
+./usr/include/curses.h
+./usr/include/db.h
+./usr/include/dev/audio_if.h
+./usr/include/dev/audiovar.h
+./usr/include/dev/ccdvar.h
+./usr/include/dev/cons.h
+./usr/include/dev/ramdisk.h
+./usr/include/dev/eisa
+./usr/include/dev/eisa/eisareg.h
+./usr/include/dev/eisa/eisavar.h
+./usr/include/dev/ic
+./usr/include/dev/ic/ad1848reg.h
+./usr/include/dev/ic/aic7xxxvar.h
+./usr/include/dev/ic/am7930reg.h
+./usr/include/dev/ic/am7990reg.h
+./usr/include/dev/ic/am7990var.h
+./usr/include/dev/ic/cd1400reg.h
+./usr/include/dev/ic/cs4231reg.h
+./usr/include/dev/ic/dc21040reg.h
+./usr/include/dev/ic/dp8390reg.h
+./usr/include/dev/ic/i8042reg.h
+./usr/include/dev/ic/i8237reg.h
+./usr/include/dev/ic/i82586reg.h
+./usr/include/dev/ic/ics2101reg.h
+./usr/include/dev/ic/mb86960reg.h
+./usr/include/dev/ic/mc146818reg.h
+./usr/include/dev/ic/ncr5380reg.h
+./usr/include/dev/ic/ncr5380var.h
+./usr/include/dev/ic/nec765reg.h
+./usr/include/dev/ic/ns16450reg.h
+./usr/include/dev/ic/ns16550reg.h
+./usr/include/dev/ic/pdqreg.h
+./usr/include/dev/ic/pdqvar.h
+./usr/include/dev/ic/z8530reg.h
+./usr/include/dev/isa
+./usr/include/dev/isa/ad1848var.h
+./usr/include/dev/isa/comreg.h
+./usr/include/dev/isa/cs4231var.h
+./usr/include/dev/isa/elink.h
+./usr/include/dev/isa/gusreg.h
+./usr/include/dev/isa/ics2101var.h
+./usr/include/dev/isa/if_edreg.h
+./usr/include/dev/isa/if_egreg.h
+./usr/include/dev/isa/if_elreg.h
+./usr/include/dev/isa/if_epreg.h
+./usr/include/dev/isa/if_fereg.h
+./usr/include/dev/isa/if_ie507.h
+./usr/include/dev/isa/if_ieatt.h
+./usr/include/dev/isa/if_iee16.h
+./usr/include/dev/isa/if_levar.h
+./usr/include/dev/isa/isadmareg.h
+./usr/include/dev/isa/isadmavar.h
+./usr/include/dev/isa/isareg.h
+./usr/include/dev/isa/isavar.h
+./usr/include/dev/isa/lptreg.h
+./usr/include/dev/isa/mcdreg.h
+./usr/include/dev/isa/pasreg.h
+./usr/include/dev/isa/pssreg.h
+./usr/include/dev/isa/sbdspvar.h
+./usr/include/dev/isa/sbreg.h
+./usr/include/dev/isa/wdreg.h
+./usr/include/dev/isa/wssreg.h
+./usr/include/dev/isa/wtreg.h
+./usr/include/dev/mulaw.h
+./usr/include/dev/pci
+./usr/include/dev/pci/ncr_reg.h
+./usr/include/dev/pci/pcidevs.h
+./usr/include/dev/pci/pcidevs_data.h
+./usr/include/dev/pci/pcireg.h
+./usr/include/dev/pci/pcivar.h
+./usr/include/dev/rcons
+./usr/include/dev/rcons/raster.h
+./usr/include/dev/rcons/rcons.h
+./usr/include/dev/rcons/rcons_subr.h
+./usr/include/dev/vndioctl.h
+./usr/include/dirent.h
+./usr/include/disktab.h
+./usr/include/dlfcn.h
+./usr/include/err.h
+./usr/include/errno.h
+./usr/include/fcntl.h
+./usr/include/float.h
+./usr/include/fnmatch.h
+./usr/include/frame.h
+./usr/include/fstab.h
+./usr/include/fts.h
+./usr/include/g++/ACG.h
+./usr/include/g++/AllocRing.h
+./usr/include/g++/Binomial.h
+./usr/include/g++/BitSet.h
+./usr/include/g++/BitString.h
+./usr/include/g++/Complex.h
+./usr/include/g++/CursesW.h
+./usr/include/g++/DLList.h
+./usr/include/g++/DiscUnif.h
+./usr/include/g++/Erlang.h
+./usr/include/g++/Fix.h
+./usr/include/g++/Fix16.h
+./usr/include/g++/Fix24.h
+./usr/include/g++/FlexLexer.h
+./usr/include/g++/Geom.h
+./usr/include/g++/GetOpt.h
+./usr/include/g++/HypGeom.h
+./usr/include/g++/Integer.h
+./usr/include/g++/LogNorm.h
+./usr/include/g++/MLCG.h
+./usr/include/g++/NegExp.h
+./usr/include/g++/Normal.h
+./usr/include/g++/Obstack.h
+./usr/include/g++/Pix.h
+./usr/include/g++/PlotFile.h
+./usr/include/g++/Poisson.h
+./usr/include/g++/RNG.h
+./usr/include/g++/Random.h
+./usr/include/g++/Rational.h
+./usr/include/g++/Regex.h
+./usr/include/g++/RndInt.h
+./usr/include/g++/SFile.h
+./usr/include/g++/SLList.h
+./usr/include/g++/SmplHist.h
+./usr/include/g++/SmplStat.h
+./usr/include/g++/String.h
+./usr/include/g++/Uniform.h
+./usr/include/g++/Weibull.h
+./usr/include/g++/_G_config.h
+./usr/include/g++/builtin.h
+./usr/include/g++/compare.h
+./usr/include/g++/editbuf.h
+./usr/include/g++/floatio.h
+./usr/include/g++/fstream.h
+./usr/include/g++/gen/AVLMap.ccP
+./usr/include/g++/gen/AVLMap.hP
+./usr/include/g++/gen/AVLSet.ccP
+./usr/include/g++/gen/AVLSet.hP
+./usr/include/g++/gen/AVec.ccP
+./usr/include/g++/gen/AVec.hP
+./usr/include/g++/gen/BSTSet.ccP
+./usr/include/g++/gen/BSTSet.hP
+./usr/include/g++/gen/Bag.ccP
+./usr/include/g++/gen/Bag.hP
+./usr/include/g++/gen/CHBag.ccP
+./usr/include/g++/gen/CHBag.hP
+./usr/include/g++/gen/CHMap.ccP
+./usr/include/g++/gen/CHMap.hP
+./usr/include/g++/gen/CHSet.ccP
+./usr/include/g++/gen/CHSet.hP
+./usr/include/g++/gen/DLDeque.ccP
+./usr/include/g++/gen/DLDeque.hP
+./usr/include/g++/gen/DLList.ccP
+./usr/include/g++/gen/DLList.hP
+./usr/include/g++/gen/Deque.ccP
+./usr/include/g++/gen/Deque.hP
+./usr/include/g++/gen/FPQueue.ccP
+./usr/include/g++/gen/FPQueue.hP
+./usr/include/g++/gen/FPStack.ccP
+./usr/include/g++/gen/FPStack.hP
+./usr/include/g++/gen/FPlex.ccP
+./usr/include/g++/gen/FPlex.hP
+./usr/include/g++/gen/List.ccP
+./usr/include/g++/gen/List.hP
+./usr/include/g++/gen/MPlex.ccP
+./usr/include/g++/gen/MPlex.hP
+./usr/include/g++/gen/Map.ccP
+./usr/include/g++/gen/Map.hP
+./usr/include/g++/gen/OSLBag.ccP
+./usr/include/g++/gen/OSLBag.hP
+./usr/include/g++/gen/OSLSet.ccP
+./usr/include/g++/gen/OSLSet.hP
+./usr/include/g++/gen/OXPBag.ccP
+./usr/include/g++/gen/OXPBag.hP
+./usr/include/g++/gen/OXPSet.ccP
+./usr/include/g++/gen/OXPSet.hP
+./usr/include/g++/gen/PHPQ.ccP
+./usr/include/g++/gen/PHPQ.hP
+./usr/include/g++/gen/PQ.ccP
+./usr/include/g++/gen/PQ.hP
+./usr/include/g++/gen/Plex.ccP
+./usr/include/g++/gen/Plex.hP
+./usr/include/g++/gen/Queue.ccP
+./usr/include/g++/gen/Queue.hP
+./usr/include/g++/gen/RAVLMap.ccP
+./usr/include/g++/gen/RAVLMap.hP
+./usr/include/g++/gen/RPlex.ccP
+./usr/include/g++/gen/RPlex.hP
+./usr/include/g++/gen/SLBag.ccP
+./usr/include/g++/gen/SLBag.hP
+./usr/include/g++/gen/SLList.ccP
+./usr/include/g++/gen/SLList.hP
+./usr/include/g++/gen/SLQueue.ccP
+./usr/include/g++/gen/SLQueue.hP
+./usr/include/g++/gen/SLSet.ccP
+./usr/include/g++/gen/SLSet.hP
+./usr/include/g++/gen/SLStack.ccP
+./usr/include/g++/gen/SLStack.hP
+./usr/include/g++/gen/Set.ccP
+./usr/include/g++/gen/Set.hP
+./usr/include/g++/gen/SplayBag.ccP
+./usr/include/g++/gen/SplayBag.hP
+./usr/include/g++/gen/SplayMap.ccP
+./usr/include/g++/gen/SplayMap.hP
+./usr/include/g++/gen/SplayPQ.ccP
+./usr/include/g++/gen/SplayPQ.hP
+./usr/include/g++/gen/SplaySet.ccP
+./usr/include/g++/gen/SplaySet.hP
+./usr/include/g++/gen/Stack.ccP
+./usr/include/g++/gen/Stack.hP
+./usr/include/g++/gen/VHBag.ccP
+./usr/include/g++/gen/VHBag.hP
+./usr/include/g++/gen/VHMap.ccP
+./usr/include/g++/gen/VHMap.hP
+./usr/include/g++/gen/VHSet.ccP
+./usr/include/g++/gen/VHSet.hP
+./usr/include/g++/gen/VOHSet.ccP
+./usr/include/g++/gen/VOHSet.hP
+./usr/include/g++/gen/VQueue.ccP
+./usr/include/g++/gen/VQueue.hP
+./usr/include/g++/gen/VStack.ccP
+./usr/include/g++/gen/VStack.hP
+./usr/include/g++/gen/Vec.ccP
+./usr/include/g++/gen/Vec.hP
+./usr/include/g++/gen/XPBag.ccP
+./usr/include/g++/gen/XPBag.hP
+./usr/include/g++/gen/XPDeque.ccP
+./usr/include/g++/gen/XPDeque.hP
+./usr/include/g++/gen/XPPQ.ccP
+./usr/include/g++/gen/XPPQ.hP
+./usr/include/g++/gen/XPQueue.ccP
+./usr/include/g++/gen/XPQueue.hP
+./usr/include/g++/gen/XPSet.ccP
+./usr/include/g++/gen/XPSet.hP
+./usr/include/g++/gen/XPStack.ccP
+./usr/include/g++/gen/XPStack.hP
+./usr/include/g++/gen/XPlex.ccP
+./usr/include/g++/gen/XPlex.hP
+./usr/include/g++/gen/defs.hP
+./usr/include/g++/indstream.h
+./usr/include/g++/iomanip.h
+./usr/include/g++/ioprivate.h
+./usr/include/g++/iostream.h
+./usr/include/g++/new.h
+./usr/include/g++/osfcn.h
+./usr/include/g++/parsestream.h
+./usr/include/g++/procbuf.h
+./usr/include/g++/regex.h
+./usr/include/g++/std.h
+./usr/include/g++/stdiostream.h
+./usr/include/g++/stream.h
+./usr/include/g++/streambuf.h
+./usr/include/g++/strstream.h
+./usr/include/g++/values.h
+./usr/include/glob.h
+./usr/include/grp.h
+./usr/include/histedit.h
+./usr/include/ieeefp.h
+./usr/include/iso646.h
+./usr/include/kvm.h
+./usr/include/langinfo.h
+./usr/include/limits.h
+./usr/include/link.h
+./usr/include/locale.h
+./usr/include/malloc.h
+./usr/include/math.h
+./usr/include/memory.h
+./usr/include/mpool.h
+./usr/include/ndbm.h
+./usr/include/net/bpf.h
+./usr/include/net/bpfdesc.h
+./usr/include/net/if.h
+./usr/include/net/if_arp.h
+./usr/include/net/if_dl.h
+./usr/include/net/if_fddi.h
+./usr/include/net/if_llc.h
+./usr/include/net/if_ppp.h
+./usr/include/net/if_pppvar.h
+./usr/include/net/if_slvar.h
+./usr/include/net/if_tun.h
+./usr/include/net/if_types.h
+./usr/include/net/netisr.h
+./usr/include/net/ppp-comp.h
+./usr/include/net/ppp_defs.h
+./usr/include/net/radix.h
+./usr/include/net/raw_cb.h
+./usr/include/net/route.h
+./usr/include/net/slcompress.h
+./usr/include/net/slip.h
+./usr/include/netccitt/dll.h
+./usr/include/netccitt/hd_var.h
+./usr/include/netccitt/hdlc.h
+./usr/include/netccitt/llc_var.h
+./usr/include/netccitt/pk.h
+./usr/include/netccitt/pk_var.h
+./usr/include/netccitt/x25.h
+./usr/include/netccitt/x25acct.h
+./usr/include/netccitt/x25err.h
+./usr/include/netdb.h
+./usr/include/netgroup.h
+./usr/include/netinet/icmp_var.h
+./usr/include/netinet/if_arc.h
+./usr/include/netinet/if_ether.h
+./usr/include/netinet/igmp.h
+./usr/include/netinet/igmp_var.h
+./usr/include/netinet/in.h
+./usr/include/netinet/in_pcb.h
+./usr/include/netinet/in_systm.h
+./usr/include/netinet/in_var.h
+./usr/include/netinet/ip.h
+./usr/include/netinet/ip_icmp.h
+./usr/include/netinet/ip_mroute.h
+./usr/include/netinet/ip_var.h
+./usr/include/netinet/tcp.h
+./usr/include/netinet/tcp_debug.h
+./usr/include/netinet/tcp_fsm.h
+./usr/include/netinet/tcp_seq.h
+./usr/include/netinet/tcp_timer.h
+./usr/include/netinet/tcp_var.h
+./usr/include/netinet/tcpip.h
+./usr/include/netinet/udp.h
+./usr/include/netinet/udp_var.h
+./usr/include/netiso/argo_debug.h
+./usr/include/netiso/clnl.h
+./usr/include/netiso/clnp.h
+./usr/include/netiso/clnp_stat.h
+./usr/include/netiso/cltp_var.h
+./usr/include/netiso/cons.h
+./usr/include/netiso/cons_pcb.h
+./usr/include/netiso/eonvar.h
+./usr/include/netiso/esis.h
+./usr/include/netiso/iso.h
+./usr/include/netiso/iso_errno.h
+./usr/include/netiso/iso_pcb.h
+./usr/include/netiso/iso_snpac.h
+./usr/include/netiso/iso_var.h
+./usr/include/netiso/tp_clnp.h
+./usr/include/netiso/tp_events.h
+./usr/include/netiso/tp_ip.h
+./usr/include/netiso/tp_meas.h
+./usr/include/netiso/tp_param.h
+./usr/include/netiso/tp_pcb.h
+./usr/include/netiso/tp_seq.h
+./usr/include/netiso/tp_stat.h
+./usr/include/netiso/tp_states.h
+./usr/include/netiso/tp_timer.h
+./usr/include/netiso/tp_tpdu.h
+./usr/include/netiso/tp_trace.h
+./usr/include/netiso/tp_user.h
+./usr/include/netiso/tuba_table.h
+./usr/include/netns/idp.h
+./usr/include/netns/idp_var.h
+./usr/include/netns/ns.h
+./usr/include/netns/ns_error.h
+./usr/include/netns/ns_if.h
+./usr/include/netns/ns_pcb.h
+./usr/include/netns/sp.h
+./usr/include/netns/spidp.h
+./usr/include/netns/spp_debug.h
+./usr/include/netns/spp_timer.h
+./usr/include/netns/spp_var.h
+./usr/include/nfs/krpc.h
+./usr/include/nfs/nfs.h
+./usr/include/nfs/nfsdiskless.h
+./usr/include/nfs/nfsm_subs.h
+./usr/include/nfs/nfsmount.h
+./usr/include/nfs/nfsnode.h
+./usr/include/nfs/nfsrtt.h
+./usr/include/nfs/nfsrvcache.h
+./usr/include/nfs/nfsv2.h
+./usr/include/nfs/nqnfs.h
+./usr/include/nfs/rpcv2.h
+./usr/include/nfs/xdr_subs.h
+./usr/include/nl_types.h
+./usr/include/nlist.h
+./usr/include/paths.h
+./usr/include/pcap-namedb.h
+./usr/include/pcap.h
+./usr/include/protocols/dumprestore.h
+./usr/include/protocols/routed.h
+./usr/include/protocols/rwhod.h
+./usr/include/protocols/talkd.h
+./usr/include/protocols/timed.h
+./usr/include/pwd.h
+./usr/include/ranlib.h
+./usr/include/regex.h
+./usr/include/regexp.h
+./usr/include/resolv.h
+./usr/include/rpc/auth.h
+./usr/include/rpc/auth_unix.h
+./usr/include/rpc/clnt.h
+./usr/include/rpc/pmap_clnt.h
+./usr/include/rpc/pmap_prot.h
+./usr/include/rpc/pmap_rmt.h
+./usr/include/rpc/rpc.h
+./usr/include/rpc/rpc_msg.h
+./usr/include/rpc/svc.h
+./usr/include/rpc/svc_auth.h
+./usr/include/rpc/types.h
+./usr/include/rpc/xdr.h
+./usr/include/rpcsvc/bootparam_prot.h
+./usr/include/rpcsvc/bootparam_prot.x
+./usr/include/rpcsvc/klm_prot.h
+./usr/include/rpcsvc/klm_prot.x
+./usr/include/rpcsvc/mount.h
+./usr/include/rpcsvc/mount.x
+./usr/include/rpcsvc/nfs_prot.h
+./usr/include/rpcsvc/nfs_prot.x
+./usr/include/rpcsvc/nlm_prot.h
+./usr/include/rpcsvc/nlm_prot.x
+./usr/include/rpcsvc/rex.h
+./usr/include/rpcsvc/rex.x
+./usr/include/rpcsvc/rnusers.h
+./usr/include/rpcsvc/rnusers.x
+./usr/include/rpcsvc/rquota.h
+./usr/include/rpcsvc/rquota.x
+./usr/include/rpcsvc/rstat.h
+./usr/include/rpcsvc/rstat.x
+./usr/include/rpcsvc/rusers.h
+./usr/include/rpcsvc/rusers.x
+./usr/include/rpcsvc/rwall.h
+./usr/include/rpcsvc/rwall.x
+./usr/include/rpcsvc/sm_inter.h
+./usr/include/rpcsvc/sm_inter.x
+./usr/include/rpcsvc/spray.h
+./usr/include/rpcsvc/spray.x
+./usr/include/rpcsvc/yp.h
+./usr/include/rpcsvc/yp.x
+./usr/include/rpcsvc/yp_prot.h
+./usr/include/rpcsvc/ypclnt.h
+./usr/include/rpcsvc/yppasswd.h
+./usr/include/rpcsvc/yppasswd.x
+./usr/include/search.h
+./usr/include/setjmp.h
+./usr/include/sgtty.h
+./usr/include/signal.h
+./usr/include/stab.h
+./usr/include/stdarg.h
+./usr/include/stddef.h
+./usr/include/stdio.h
+./usr/include/stdlib.h
+./usr/include/string.h
+./usr/include/strings.h
+./usr/include/struct.h
+./usr/include/sys/acct.h
+./usr/include/sys/audioio.h
+./usr/include/sys/buf.h
+./usr/include/sys/callout.h
+./usr/include/sys/cdefs.h
+./usr/include/sys/cdio.h
+./usr/include/sys/chio.h
+./usr/include/sys/clist.h
+./usr/include/sys/conf.h
+./usr/include/sys/core.h
+./usr/include/sys/device.h
+./usr/include/sys/dir.h
+./usr/include/sys/dirent.h
+./usr/include/sys/disk.h
+./usr/include/sys/disklabel.h
+./usr/include/sys/dkbad.h
+./usr/include/sys/dkstat.h
+./usr/include/sys/dmap.h
+./usr/include/sys/domain.h
+./usr/include/sys/errno.h
+./usr/include/sys/exec.h
+./usr/include/sys/exec_aout.h
+./usr/include/sys/exec_ecoff.h
+./usr/include/sys/exec_elf.h
+./usr/include/sys/exec_script.h
+./usr/include/sys/fcntl.h
+./usr/include/sys/file.h
+./usr/include/sys/filedesc.h
+./usr/include/sys/filio.h
+./usr/include/sys/gmon.h
+./usr/include/sys/ioccom.h
+./usr/include/sys/ioctl.h
+./usr/include/sys/ioctl_compat.h
+./usr/include/sys/ipc.h
+./usr/include/sys/kernel.h
+./usr/include/sys/ktrace.h
+./usr/include/sys/lkm.h
+./usr/include/sys/localedef.h
+./usr/include/sys/lockf.h
+./usr/include/sys/malloc.h
+./usr/include/sys/map.h
+./usr/include/sys/mbuf.h
+./usr/include/sys/mman.h
+./usr/include/sys/mount.h
+./usr/include/sys/msg.h
+./usr/include/sys/msgbuf.h
+./usr/include/sys/mtio.h
+./usr/include/sys/namei.h
+./usr/include/sys/param.h
+./usr/include/sys/proc.h
+./usr/include/sys/protosw.h
+./usr/include/sys/ptrace.h
+./usr/include/sys/queue.h
+./usr/include/sys/reboot.h
+./usr/include/sys/resource.h
+./usr/include/sys/resourcevar.h
+./usr/include/sys/scsiio.h
+./usr/include/sys/select.h
+./usr/include/sys/sem.h
+./usr/include/sys/shm.h
+./usr/include/sys/signal.h
+./usr/include/sys/signalvar.h
+./usr/include/sys/socket.h
+./usr/include/sys/socketvar.h
+./usr/include/sys/sockio.h
+./usr/include/sys/stat.h
+./usr/include/sys/syscall.h
+./usr/include/sys/syscallargs.h
+./usr/include/sys/sysctl.h
+./usr/include/sys/syslimits.h
+./usr/include/sys/syslog.h
+./usr/include/sys/systm.h
+./usr/include/sys/tablet.h
+./usr/include/sys/termios.h
+./usr/include/sys/time.h
+./usr/include/sys/timeb.h
+./usr/include/sys/times.h
+./usr/include/sys/tprintf.h
+./usr/include/sys/trace.h
+./usr/include/sys/tty.h
+./usr/include/sys/ttychars.h
+./usr/include/sys/ttycom.h
+./usr/include/sys/ttydefaults.h
+./usr/include/sys/ttydev.h
+./usr/include/sys/types.h
+./usr/include/sys/ucred.h
+./usr/include/sys/uio.h
+./usr/include/sys/un.h
+./usr/include/sys/unistd.h
+./usr/include/sys/unpcb.h
+./usr/include/sys/user.h
+./usr/include/sys/utsname.h
+./usr/include/sys/vadvise.h
+./usr/include/sys/vcmd.h
+./usr/include/sys/vlimit.h
+./usr/include/sys/vmmeter.h
+./usr/include/sys/vnode.h
+./usr/include/sys/vsio.h
+./usr/include/sys/wait.h
+./usr/include/sysexits.h
+./usr/include/syslog.h
+./usr/include/termios.h
+./usr/include/time.h
+./usr/include/ttyent.h
+./usr/include/tzfile.h
+./usr/include/ufs/ffs/ffs_extern.h
+./usr/include/ufs/ffs/fs.h
+./usr/include/ufs/lfs/lfs.h
+./usr/include/ufs/lfs/lfs_extern.h
+./usr/include/ufs/mfs/mfs_extern.h
+./usr/include/ufs/mfs/mfsiom.h
+./usr/include/ufs/mfs/mfsnode.h
+./usr/include/ufs/ufs/dinode.h
+./usr/include/ufs/ufs/dir.h
+./usr/include/ufs/ufs/inode.h
+./usr/include/ufs/ufs/quota.h
+./usr/include/ufs/ufs/ufs_extern.h
+./usr/include/ufs/ufs/ufsmount.h
+./usr/include/unistd.h
+./usr/include/utime.h
+./usr/include/utmp.h
+./usr/include/varargs.h
+./usr/include/vis.h
+./usr/include/vm/device_pager.h
+./usr/include/vm/lock.h
+./usr/include/vm/pmap.h
+./usr/include/vm/swap_pager.h
+./usr/include/vm/vm.h
+./usr/include/vm/vm_extern.h
+./usr/include/vm/vm_inherit.h
+./usr/include/vm/vm_kern.h
+./usr/include/vm/vm_map.h
+./usr/include/vm/vm_object.h
+./usr/include/vm/vm_page.h
+./usr/include/vm/vm_pageout.h
+./usr/include/vm/vm_pager.h
+./usr/include/vm/vm_param.h
+./usr/include/vm/vm_prot.h
+./usr/include/vm/vnode_pager.h
+./usr/lib/c++rt0.o
+./usr/lib/crt0.o
+./usr/lib/gcrt0.o
+./usr/lib/libc.a
+./usr/lib/libc_p.a
+./usr/lib/libcompat.a
+./usr/lib/libcompat_p.a
+./usr/lib/libcrypt.a
+./usr/lib/libcrypt_p.a
+./usr/lib/libcurses.a
+./usr/lib/libcurses_p.a
+./usr/lib/libedit.a
+./usr/lib/libedit_p.a
+./usr/lib/libfl.a
+./usr/lib/libfl_p.a
+./usr/lib/libg++.a
+./usr/lib/libg++_p.a
+./usr/lib/libgcc.a
+./usr/lib/libgnumalloc.a
+./usr/lib/libgnumalloc_p.a
+./usr/lib/libkvm.a
+./usr/lib/libkvm_p.a
+./usr/lib/libl.a
+./usr/lib/libl_p.a
+./usr/lib/libm.a
+./usr/lib/libm_p.a
+./usr/lib/libpcap.a
+./usr/lib/libpcap_p.a
+./usr/lib/libresolv.a
+./usr/lib/libresolv_p.a
+./usr/lib/librpcsvc.a
+./usr/lib/librpcsvc_p.a
+./usr/lib/libskey.a
+./usr/lib/libskey_p.a
+./usr/lib/libtelnet.a
+./usr/lib/libtelnet_p.a
+./usr/lib/libtermcap.a
+./usr/lib/libtermcap_p.a
+./usr/lib/libtermlib.a
+./usr/lib/libtermlib_p.a
+./usr/lib/libutil.a
+./usr/lib/libutil_p.a
+./usr/lib/liby.a
+./usr/lib/liby_p.a
+./usr/libdata/lint/llib-lposix.ln
+./usr/libdata/lint/llib-lstdc.ln
+./usr/libexec/cc1
+./usr/libexec/cc1obj
+./usr/libexec/cc1plus
+./usr/libexec/lint1
+./usr/libexec/lint2
+./usr/sbin/config
+./usr/sbin/gspa
+./usr/sbin/gspahextoc
+./usr/sbin/kgmon
+./usr/share/lkm/README
+./usr/share/lkm/misc/Makefile
+./usr/share/lkm/misc/README
+./usr/share/lkm/misc/module/Makefile
+./usr/share/lkm/misc/module/misccall.c
+./usr/share/lkm/misc/module/miscmod.c
+./usr/share/lkm/misc/test/Makefile
+./usr/share/lkm/misc/test/testmisc.c
+./usr/share/lkm/syscall/Makefile
+./usr/share/lkm/syscall/README
+./usr/share/lkm/syscall/module/Makefile
+./usr/share/lkm/syscall/module/mycall.c
+./usr/share/lkm/syscall/module/newsyscall.c
+./usr/share/lkm/syscall/test/Makefile
+./usr/share/lkm/syscall/test/testsyscall.c
+./usr/share/lkm/vfs/Makefile
+./usr/share/lkm/vfs/README
+./usr/share/lkm/vfs/module/Makefile
+./usr/share/lkm/vfs/module/kernfsmod.c
+./usr/share/man/cat1/ar.0
+./usr/share/man/cat1/as.0
+./usr/share/man/cat1/asa.0
+./usr/share/man/cat1/c++.0
+./usr/share/man/cat1/cc.0
+./usr/share/man/cat1/flex.0
+./usr/share/man/cat1/fpr.0
+./usr/share/man/cat1/g++.0
+./usr/share/man/cat1/gcc.0
+./usr/share/man/cat1/gdb.0
+./usr/share/man/cat1/gprof.0
+./usr/share/man/cat1/ld.0
+./usr/share/man/cat1/lex.0
+./usr/share/man/cat1/lint.0
+./usr/share/man/cat1/lorder.0
+./usr/share/man/cat1/mkstr.0
+./usr/share/man/cat1/ranlib.0
+./usr/share/man/cat1/rpcgen.0
+./usr/share/man/cat1/strip.0
+./usr/share/man/cat1/xstr.0
+./usr/share/man/cat1/yacc.0
+./usr/share/man/cat2/__syscall.0
+./usr/share/man/cat2/_exit.0
+./usr/share/man/cat2/accept.0
+./usr/share/man/cat2/access.0
+./usr/share/man/cat2/acct.0
+./usr/share/man/cat2/adjtime.0
+./usr/share/man/cat2/bind.0
+./usr/share/man/cat2/brk.0
+./usr/share/man/cat2/chdir.0
+./usr/share/man/cat2/chflags.0
+./usr/share/man/cat2/chmod.0
+./usr/share/man/cat2/chown.0
+./usr/share/man/cat2/chroot.0
+./usr/share/man/cat2/close.0
+./usr/share/man/cat2/connect.0
+./usr/share/man/cat2/dup.0
+./usr/share/man/cat2/dup2.0
+./usr/share/man/cat2/errno.0
+./usr/share/man/cat2/execve.0
+./usr/share/man/cat2/fchdir.0
+./usr/share/man/cat2/fchflags.0
+./usr/share/man/cat2/fchmod.0
+./usr/share/man/cat2/fchown.0
+./usr/share/man/cat2/fcntl.0
+./usr/share/man/cat2/flock.0
+./usr/share/man/cat2/fork.0
+./usr/share/man/cat2/fpathconf.0
+./usr/share/man/cat2/fstat.0
+./usr/share/man/cat2/fstatfs.0
+./usr/share/man/cat2/fsync.0
+./usr/share/man/cat2/ftruncate.0
+./usr/share/man/cat2/getdirentries.0
+./usr/share/man/cat2/getegid.0
+./usr/share/man/cat2/geteuid.0
+./usr/share/man/cat2/getfh.0
+./usr/share/man/cat2/getfsstat.0
+./usr/share/man/cat2/getgid.0
+./usr/share/man/cat2/getgroups.0
+./usr/share/man/cat2/getitimer.0
+./usr/share/man/cat2/getlogin.0
+./usr/share/man/cat2/getpeername.0
+./usr/share/man/cat2/getpgrp.0
+./usr/share/man/cat2/getpid.0
+./usr/share/man/cat2/getppid.0
+./usr/share/man/cat2/getpriority.0
+./usr/share/man/cat2/getrlimit.0
+./usr/share/man/cat2/getrusage.0
+./usr/share/man/cat2/getsockname.0
+./usr/share/man/cat2/getsockopt.0
+./usr/share/man/cat2/gettimeofday.0
+./usr/share/man/cat2/getuid.0
+./usr/share/man/cat2/intro.0
+./usr/share/man/cat2/ioctl.0
+./usr/share/man/cat2/kill.0
+./usr/share/man/cat2/link.0
+./usr/share/man/cat2/listen.0
+./usr/share/man/cat2/lseek.0
+./usr/share/man/cat2/lstat.0
+./usr/share/man/cat2/madvise.0
+./usr/share/man/cat2/mincore.0
+./usr/share/man/cat2/mkdir.0
+./usr/share/man/cat2/mkfifo.0
+./usr/share/man/cat2/mknod.0
+./usr/share/man/cat2/mlock.0
+./usr/share/man/cat2/mmap.0
+./usr/share/man/cat2/mount.0
+./usr/share/man/cat2/mprotect.0
+./usr/share/man/cat2/msync.0
+./usr/share/man/cat2/munlock.0
+./usr/share/man/cat2/munmap.0
+./usr/share/man/cat2/nfssvc.0
+./usr/share/man/cat2/open.0
+./usr/share/man/cat2/pathconf.0
+./usr/share/man/cat2/pipe.0
+./usr/share/man/cat2/profil.0
+./usr/share/man/cat2/ptrace.0
+./usr/share/man/cat2/quotactl.0
+./usr/share/man/cat2/read.0
+./usr/share/man/cat2/readlink.0
+./usr/share/man/cat2/readv.0
+./usr/share/man/cat2/reboot.0
+./usr/share/man/cat2/recv.0
+./usr/share/man/cat2/recvfrom.0
+./usr/share/man/cat2/recvmsg.0
+./usr/share/man/cat2/rename.0
+./usr/share/man/cat2/revoke.0
+./usr/share/man/cat2/rmdir.0
+./usr/share/man/cat2/sbrk.0
+./usr/share/man/cat2/seek.0
+./usr/share/man/cat2/select.0
+./usr/share/man/cat2/send.0
+./usr/share/man/cat2/sendmsg.0
+./usr/share/man/cat2/sendto.0
+./usr/share/man/cat2/setegid.0
+./usr/share/man/cat2/seteuid.0
+./usr/share/man/cat2/setgid.0
+./usr/share/man/cat2/setgroups.0
+./usr/share/man/cat2/setitimer.0
+./usr/share/man/cat2/setlogin.0
+./usr/share/man/cat2/setpgid.0
+./usr/share/man/cat2/setpgrp.0
+./usr/share/man/cat2/setpriority.0
+./usr/share/man/cat2/setrlimit.0
+./usr/share/man/cat2/setsid.0
+./usr/share/man/cat2/setsockopt.0
+./usr/share/man/cat2/settimeofday.0
+./usr/share/man/cat2/setuid.0
+./usr/share/man/cat2/shutdown.0
+./usr/share/man/cat2/sigaction.0
+./usr/share/man/cat2/sigaltstack.0
+./usr/share/man/cat2/sigpending.0
+./usr/share/man/cat2/sigprocmask.0
+./usr/share/man/cat2/sigreturn.0
+./usr/share/man/cat2/sigstack.0
+./usr/share/man/cat2/sigsuspend.0
+./usr/share/man/cat2/socket.0
+./usr/share/man/cat2/socketpair.0
+./usr/share/man/cat2/stat.0
+./usr/share/man/cat2/statfs.0
+./usr/share/man/cat2/swapon.0
+./usr/share/man/cat2/symlink.0
+./usr/share/man/cat2/sync.0
+./usr/share/man/cat2/sysarch.0
+./usr/share/man/cat2/syscall.0
+./usr/share/man/cat2/truncate.0
+./usr/share/man/cat2/umask.0
+./usr/share/man/cat2/unlink.0
+./usr/share/man/cat2/unmount.0
+./usr/share/man/cat2/utimes.0
+./usr/share/man/cat2/vfork.0
+./usr/share/man/cat2/wait.0
+./usr/share/man/cat2/wait3.0
+./usr/share/man/cat2/wait4.0
+./usr/share/man/cat2/waitpid.0
+./usr/share/man/cat2/write.0
+./usr/share/man/cat2/writev.0
+./usr/share/man/cat3/_longjmp.0
+./usr/share/man/cat3/_setjmp.0
+./usr/share/man/cat3/abort.0
+./usr/share/man/cat3/abs.0
+./usr/share/man/cat3/acos.0
+./usr/share/man/cat3/acosh.0
+./usr/share/man/cat3/addr.0
+./usr/share/man/cat3/alarm.0
+./usr/share/man/cat3/alloca.0
+./usr/share/man/cat3/alphasort.0
+./usr/share/man/cat3/asctime.0
+./usr/share/man/cat3/asin.0
+./usr/share/man/cat3/asinh.0
+./usr/share/man/cat3/assert.0
+./usr/share/man/cat3/atan.0
+./usr/share/man/cat3/atan2.0
+./usr/share/man/cat3/atanh.0
+./usr/share/man/cat3/atexit.0
+./usr/share/man/cat3/atof.0
+./usr/share/man/cat3/atoi.0
+./usr/share/man/cat3/atol.0
+./usr/share/man/cat3/auth_destroy.0
+./usr/share/man/cat3/authnone_create.0
+./usr/share/man/cat3/authunix_create.0
+./usr/share/man/cat3/authunix_create_default.0
+./usr/share/man/cat3/bcmp.0
+./usr/share/man/cat3/bcopy.0
+./usr/share/man/cat3/bindresvport.0
+./usr/share/man/cat3/bitstring.0
+./usr/share/man/cat3/bm.0
+./usr/share/man/cat3/bm_comp.0
+./usr/share/man/cat3/bm_exec.0
+./usr/share/man/cat3/bm_free.0
+./usr/share/man/cat3/bsearch.0
+./usr/share/man/cat3/bstring.0
+./usr/share/man/cat3/btree.0
+./usr/share/man/cat3/byteorder.0
+./usr/share/man/cat3/bzero.0
+./usr/share/man/cat3/cabs.0
+./usr/share/man/cat3/calloc.0
+./usr/share/man/cat3/callrpc.0
+./usr/share/man/cat3/catclose.0
+./usr/share/man/cat3/catgets.0
+./usr/share/man/cat3/catopen.0
+./usr/share/man/cat3/cbrt.0
+./usr/share/man/cat3/ceil.0
+./usr/share/man/cat3/cfgetispeed.0
+./usr/share/man/cat3/cfgetospeed.0
+./usr/share/man/cat3/cfmakeraw.0
+./usr/share/man/cat3/cfsetispeed.0
+./usr/share/man/cat3/cfsetospeed.0
+./usr/share/man/cat3/cfsetspeed.0
+./usr/share/man/cat3/cgetcap.0
+./usr/share/man/cat3/cgetclose.0
+./usr/share/man/cat3/cgetent.0
+./usr/share/man/cat3/cgetfirst.0
+./usr/share/man/cat3/cgetmatch.0
+./usr/share/man/cat3/cgetnext.0
+./usr/share/man/cat3/cgetnum.0
+./usr/share/man/cat3/cgetset.0
+./usr/share/man/cat3/cgetstr.0
+./usr/share/man/cat3/cgetustr.0
+./usr/share/man/cat3/circleq_entry.0
+./usr/share/man/cat3/circleq_head.0
+./usr/share/man/cat3/circleq_init.0
+./usr/share/man/cat3/circleq_insert_after.0
+./usr/share/man/cat3/circleq_insert_before.0
+./usr/share/man/cat3/circleq_insert_head.0
+./usr/share/man/cat3/circleq_insert_tail.0
+./usr/share/man/cat3/circleq_remove.0
+./usr/share/man/cat3/clearerr.0
+./usr/share/man/cat3/clnt_broadcast.0
+./usr/share/man/cat3/clnt_call.0
+./usr/share/man/cat3/clnt_control.0
+./usr/share/man/cat3/clnt_create.0
+./usr/share/man/cat3/clnt_destroy.0
+./usr/share/man/cat3/clnt_freeres.0
+./usr/share/man/cat3/clnt_geterr.0
+./usr/share/man/cat3/clnt_pcreateerror.0
+./usr/share/man/cat3/clnt_perrno.0
+./usr/share/man/cat3/clnt_perror.0
+./usr/share/man/cat3/clnt_spcreateerror.0
+./usr/share/man/cat3/clnt_sperrno.0
+./usr/share/man/cat3/clnt_sperror.0
+./usr/share/man/cat3/clntraw_create.0
+./usr/share/man/cat3/clnttcp_create.0
+./usr/share/man/cat3/clntudp_bufcreate.0
+./usr/share/man/cat3/clntudp_create.0
+./usr/share/man/cat3/clock.0
+./usr/share/man/cat3/closedir.0
+./usr/share/man/cat3/closelog.0
+./usr/share/man/cat3/confstr.0
+./usr/share/man/cat3/copysign.0
+./usr/share/man/cat3/cos.0
+./usr/share/man/cat3/cosh.0
+./usr/share/man/cat3/creat.0
+./usr/share/man/cat3/crypt.0
+./usr/share/man/cat3/ctermid.0
+./usr/share/man/cat3/ctime.0
+./usr/share/man/cat3/ctype.0
+./usr/share/man/cat3/curses.0
+./usr/share/man/cat3/cuserid.0
+./usr/share/man/cat3/daemon.0
+./usr/share/man/cat3/db.0
+./usr/share/man/cat3/dbopen.0
+./usr/share/man/cat3/devname.0
+./usr/share/man/cat3/difftime.0
+./usr/share/man/cat3/directory.0
+./usr/share/man/cat3/dirfd.0
+./usr/share/man/cat3/div.0
+./usr/share/man/cat3/dn_comp.0
+./usr/share/man/cat3/dn_expand.0
+./usr/share/man/cat3/drand48.0
+./usr/share/man/cat3/edata.0
+./usr/share/man/cat3/encrypt.0
+./usr/share/man/cat3/end.0
+./usr/share/man/cat3/endfsent.0
+./usr/share/man/cat3/endgrent.0
+./usr/share/man/cat3/endhostent.0
+./usr/share/man/cat3/endnetent.0
+./usr/share/man/cat3/endnetgrent.0
+./usr/share/man/cat3/endprotoent.0
+./usr/share/man/cat3/endpwent.0
+./usr/share/man/cat3/endrpcent.0
+./usr/share/man/cat3/endservent.0
+./usr/share/man/cat3/endttyent.0
+./usr/share/man/cat3/endusershell.0
+./usr/share/man/cat3/erand48.0
+./usr/share/man/cat3/erf.0
+./usr/share/man/cat3/erfc.0
+./usr/share/man/cat3/err.0
+./usr/share/man/cat3/errx.0
+./usr/share/man/cat3/etext.0
+./usr/share/man/cat3/ether_aton.0
+./usr/share/man/cat3/ether_hostton.0
+./usr/share/man/cat3/ether_line.0
+./usr/share/man/cat3/ether_ntoa.0
+./usr/share/man/cat3/ether_ntohost.0
+./usr/share/man/cat3/ethers.0
+./usr/share/man/cat3/exec.0
+./usr/share/man/cat3/execl.0
+./usr/share/man/cat3/execle.0
+./usr/share/man/cat3/execlp.0
+./usr/share/man/cat3/execv.0
+./usr/share/man/cat3/execvp.0
+./usr/share/man/cat3/exit.0
+./usr/share/man/cat3/exp.0
+./usr/share/man/cat3/expm1.0
+./usr/share/man/cat3/fabs.0
+./usr/share/man/cat3/fclose.0
+./usr/share/man/cat3/fdopen.0
+./usr/share/man/cat3/feof.0
+./usr/share/man/cat3/ferror.0
+./usr/share/man/cat3/fflush.0
+./usr/share/man/cat3/ffs.0
+./usr/share/man/cat3/fgetc.0
+./usr/share/man/cat3/fgetln.0
+./usr/share/man/cat3/fgetpos.0
+./usr/share/man/cat3/fgets.0
+./usr/share/man/cat3/fileno.0
+./usr/share/man/cat3/finite.0
+./usr/share/man/cat3/floor.0
+./usr/share/man/cat3/fmod.0
+./usr/share/man/cat3/fnmatch.0
+./usr/share/man/cat3/fopen.0
+./usr/share/man/cat3/fprintf.0
+./usr/share/man/cat3/fpurge.0
+./usr/share/man/cat3/fputc.0
+./usr/share/man/cat3/fputs.0
+./usr/share/man/cat3/fread.0
+./usr/share/man/cat3/free.0
+./usr/share/man/cat3/freopen.0
+./usr/share/man/cat3/frexp.0
+./usr/share/man/cat3/fropen.0
+./usr/share/man/cat3/fscanf.0
+./usr/share/man/cat3/fseek.0
+./usr/share/man/cat3/fsetpos.0
+./usr/share/man/cat3/ftell.0
+./usr/share/man/cat3/ftime.0
+./usr/share/man/cat3/ftok.0
+./usr/share/man/cat3/fts.0
+./usr/share/man/cat3/fts_children.0
+./usr/share/man/cat3/fts_close.0
+./usr/share/man/cat3/fts_open.0
+./usr/share/man/cat3/fts_read.0
+./usr/share/man/cat3/fts_set.0
+./usr/share/man/cat3/funopen.0
+./usr/share/man/cat3/fwopen.0
+./usr/share/man/cat3/fwrite.0
+./usr/share/man/cat3/gamma.0
+./usr/share/man/cat3/get_myaddress.0
+./usr/share/man/cat3/getbsize.0
+./usr/share/man/cat3/getc.0
+./usr/share/man/cat3/getcap.0
+./usr/share/man/cat3/getchar.0
+./usr/share/man/cat3/getcwd.0
+./usr/share/man/cat3/getdiskbyname.0
+./usr/share/man/cat3/getdomainname.0
+./usr/share/man/cat3/getdtablesize.0
+./usr/share/man/cat3/getenv.0
+./usr/share/man/cat3/getfsent.0
+./usr/share/man/cat3/getfsfile.0
+./usr/share/man/cat3/getfsspec.0
+./usr/share/man/cat3/getfstype.0
+./usr/share/man/cat3/getgrent.0
+./usr/share/man/cat3/getgrgid.0
+./usr/share/man/cat3/getgrnam.0
+./usr/share/man/cat3/getgrouplist.0
+./usr/share/man/cat3/gethostbyaddr.0
+./usr/share/man/cat3/gethostbyname.0
+./usr/share/man/cat3/gethostent.0
+./usr/share/man/cat3/gethostid.0
+./usr/share/man/cat3/gethostname.0
+./usr/share/man/cat3/getloadavg.0
+./usr/share/man/cat3/getmntinfo.0
+./usr/share/man/cat3/getmode.0
+./usr/share/man/cat3/getnetbyaddr.0
+./usr/share/man/cat3/getnetbyname.0
+./usr/share/man/cat3/getnetent.0
+./usr/share/man/cat3/getnetgrent.0
+./usr/share/man/cat3/getopt.0
+./usr/share/man/cat3/getpagesize.0
+./usr/share/man/cat3/getpass.0
+./usr/share/man/cat3/getprotobyname.0
+./usr/share/man/cat3/getprotobynumber.0
+./usr/share/man/cat3/getprotoent.0
+./usr/share/man/cat3/getpw.0
+./usr/share/man/cat3/getpwent.0
+./usr/share/man/cat3/getpwnam.0
+./usr/share/man/cat3/getpwuid.0
+./usr/share/man/cat3/getrpcbyname.0
+./usr/share/man/cat3/getrpcbynumber.0
+./usr/share/man/cat3/getrpcent.0
+./usr/share/man/cat3/getrpcport.0
+./usr/share/man/cat3/gets.0
+./usr/share/man/cat3/getservbyname.0
+./usr/share/man/cat3/getservbyport.0
+./usr/share/man/cat3/getservent.0
+./usr/share/man/cat3/getsubopt.0
+./usr/share/man/cat3/getttyent.0
+./usr/share/man/cat3/getttynam.0
+./usr/share/man/cat3/getusershell.0
+./usr/share/man/cat3/getw.0
+./usr/share/man/cat3/getwd.0
+./usr/share/man/cat3/glob.0
+./usr/share/man/cat3/globfree.0
+./usr/share/man/cat3/gmtime.0
+./usr/share/man/cat3/group_from_gid.0
+./usr/share/man/cat3/gtty.0
+./usr/share/man/cat3/hash.0
+./usr/share/man/cat3/heapsort.0
+./usr/share/man/cat3/herror.0
+./usr/share/man/cat3/htonl.0
+./usr/share/man/cat3/htons.0
+./usr/share/man/cat3/hypot.0
+./usr/share/man/cat3/ieee.0
+./usr/share/man/cat3/ieee_test.0
+./usr/share/man/cat3/ilogb.0
+./usr/share/man/cat3/index.0
+./usr/share/man/cat3/inet.0
+./usr/share/man/cat3/inet_addr.0
+./usr/share/man/cat3/inet_aton.0
+./usr/share/man/cat3/inet_lnaof.0
+./usr/share/man/cat3/inet_makeaddr.0
+./usr/share/man/cat3/inet_netof.0
+./usr/share/man/cat3/inet_network.0
+./usr/share/man/cat3/inet_ntoa.0
+./usr/share/man/cat3/initgroups.0
+./usr/share/man/cat3/initstate.0
+./usr/share/man/cat3/innetgr.0
+./usr/share/man/cat3/insque.0
+./usr/share/man/cat3/intro.0
+./usr/share/man/cat3/iruserok.0
+./usr/share/man/cat3/isalnum.0
+./usr/share/man/cat3/isalpha.0
+./usr/share/man/cat3/isascii.0
+./usr/share/man/cat3/isatty.0
+./usr/share/man/cat3/isblank.0
+./usr/share/man/cat3/iscntrl.0
+./usr/share/man/cat3/isdigit.0
+./usr/share/man/cat3/isgraph.0
+./usr/share/man/cat3/isinf.0
+./usr/share/man/cat3/islower.0
+./usr/share/man/cat3/isnan.0
+./usr/share/man/cat3/isprint.0
+./usr/share/man/cat3/ispunct.0
+./usr/share/man/cat3/isspace.0
+./usr/share/man/cat3/isupper.0
+./usr/share/man/cat3/isxdigit.0
+./usr/share/man/cat3/j0.0
+./usr/share/man/cat3/j1.0
+./usr/share/man/cat3/jn.0
+./usr/share/man/cat3/jrand48.0
+./usr/share/man/cat3/killpg.0
+./usr/share/man/cat3/kvm.0
+./usr/share/man/cat3/kvm_close.0
+./usr/share/man/cat3/kvm_getargv.0
+./usr/share/man/cat3/kvm_getenvv.0
+./usr/share/man/cat3/kvm_geterr.0
+./usr/share/man/cat3/kvm_getfiles.0
+./usr/share/man/cat3/kvm_getloadavg.0
+./usr/share/man/cat3/kvm_getprocs.0
+./usr/share/man/cat3/kvm_nlist.0
+./usr/share/man/cat3/kvm_open.0
+./usr/share/man/cat3/kvm_openfiles.0
+./usr/share/man/cat3/kvm_read.0
+./usr/share/man/cat3/kvm_write.0
+./usr/share/man/cat3/labs.0
+./usr/share/man/cat3/lcong48.0
+./usr/share/man/cat3/ldexp.0
+./usr/share/man/cat3/ldiv.0
+./usr/share/man/cat3/lfind.0
+./usr/share/man/cat3/lgamma.0
+./usr/share/man/cat3/linkaddr.0
+./usr/share/man/cat3/linkntoa.0
+./usr/share/man/cat3/list_entry.0
+./usr/share/man/cat3/list_head.0
+./usr/share/man/cat3/list_init.0
+./usr/share/man/cat3/list_insert_after.0
+./usr/share/man/cat3/list_insert_before.0
+./usr/share/man/cat3/list_insert_head.0
+./usr/share/man/cat3/list_remove.0
+./usr/share/man/cat3/localtime.0
+./usr/share/man/cat3/log.0
+./usr/share/man/cat3/log10.0
+./usr/share/man/cat3/log1p.0
+./usr/share/man/cat3/logb.0
+./usr/share/man/cat3/longjmp.0
+./usr/share/man/cat3/longjmperror.0
+./usr/share/man/cat3/lrand48.0
+./usr/share/man/cat3/lsearch.0
+./usr/share/man/cat3/malloc.0
+./usr/share/man/cat3/math.0
+./usr/share/man/cat3/memccpy.0
+./usr/share/man/cat3/memchr.0
+./usr/share/man/cat3/memcmp.0
+./usr/share/man/cat3/memcpy.0
+./usr/share/man/cat3/memmove.0
+./usr/share/man/cat3/memory.0
+./usr/share/man/cat3/memset.0
+./usr/share/man/cat3/mergesort.0
+./usr/share/man/cat3/mkstemp.0
+./usr/share/man/cat3/mktemp.0
+./usr/share/man/cat3/mktime.0
+./usr/share/man/cat3/modf.0
+./usr/share/man/cat3/moncontrol.0
+./usr/share/man/cat3/mrand48.0
+./usr/share/man/cat3/network.0
+./usr/share/man/cat3/nextafter.0
+./usr/share/man/cat3/nice.0
+./usr/share/man/cat3/nl_langinfo.0
+./usr/share/man/cat3/nlist.0
+./usr/share/man/cat3/nrand48.0
+./usr/share/man/cat3/ns.0
+./usr/share/man/cat3/ns_addr.0
+./usr/share/man/cat3/ns_ntoa.0
+./usr/share/man/cat3/ntoa.0
+./usr/share/man/cat3/ntohl.0
+./usr/share/man/cat3/ntohs.0
+./usr/share/man/cat3/opendir.0
+./usr/share/man/cat3/openlog.0
+./usr/share/man/cat3/pause.0
+./usr/share/man/cat3/pcap.0
+./usr/share/man/cat3/pclose.0
+./usr/share/man/cat3/perror.0
+./usr/share/man/cat3/pmap_getmaps.0
+./usr/share/man/cat3/pmap_getport.0
+./usr/share/man/cat3/pmap_rmtcall.0
+./usr/share/man/cat3/pmap_set.0
+./usr/share/man/cat3/pmap_unset.0
+./usr/share/man/cat3/popen.0
+./usr/share/man/cat3/pow.0
+./usr/share/man/cat3/printf.0
+./usr/share/man/cat3/psignal.0
+./usr/share/man/cat3/putc.0
+./usr/share/man/cat3/putchar.0
+./usr/share/man/cat3/putenv.0
+./usr/share/man/cat3/puts.0
+./usr/share/man/cat3/putw.0
+./usr/share/man/cat3/pwcache.0
+./usr/share/man/cat3/qabs.0
+./usr/share/man/cat3/qdiv.0
+./usr/share/man/cat3/qsort.0
+./usr/share/man/cat3/queue.0
+./usr/share/man/cat3/radixsort.0
+./usr/share/man/cat3/raise.0
+./usr/share/man/cat3/rand.0
+./usr/share/man/cat3/rand48.0
+./usr/share/man/cat3/random.0
+./usr/share/man/cat3/rcmd.0
+./usr/share/man/cat3/re_comp.0
+./usr/share/man/cat3/re_exec.0
+./usr/share/man/cat3/readdir.0
+./usr/share/man/cat3/realloc.0
+./usr/share/man/cat3/realpath.0
+./usr/share/man/cat3/recno.0
+./usr/share/man/cat3/regcomp.0
+./usr/share/man/cat3/regerror.0
+./usr/share/man/cat3/regex.0
+./usr/share/man/cat3/regexec.0
+./usr/share/man/cat3/regexp.0
+./usr/share/man/cat3/regfree.0
+./usr/share/man/cat3/regsterrpc.0
+./usr/share/man/cat3/remainder.0
+./usr/share/man/cat3/remove.0
+./usr/share/man/cat3/remque.0
+./usr/share/man/cat3/res_init.0
+./usr/share/man/cat3/res_mkquery.0
+./usr/share/man/cat3/res_query.0
+./usr/share/man/cat3/res_search.0
+./usr/share/man/cat3/res_send.0
+./usr/share/man/cat3/resolver.0
+./usr/share/man/cat3/rewind.0
+./usr/share/man/cat3/rewinddir.0
+./usr/share/man/cat3/rexec.0
+./usr/share/man/cat3/rindex.0
+./usr/share/man/cat3/rint.0
+./usr/share/man/cat3/rpc.0
+./usr/share/man/cat3/rpc_createerr.0
+./usr/share/man/cat3/rresvport.0
+./usr/share/man/cat3/ruserok.0
+./usr/share/man/cat3/scalb.0
+./usr/share/man/cat3/scalbn.0
+./usr/share/man/cat3/scandir.0
+./usr/share/man/cat3/scanf.0
+./usr/share/man/cat3/seed48.0
+./usr/share/man/cat3/seekdir.0
+./usr/share/man/cat3/setbuf.0
+./usr/share/man/cat3/setbuffer.0
+./usr/share/man/cat3/setdomainname.0
+./usr/share/man/cat3/setenv.0
+./usr/share/man/cat3/setfsent.0
+./usr/share/man/cat3/setgrent.0
+./usr/share/man/cat3/setgrfile.0
+./usr/share/man/cat3/setgroupent.0
+./usr/share/man/cat3/sethostent.0
+./usr/share/man/cat3/sethostid.0
+./usr/share/man/cat3/sethostname.0
+./usr/share/man/cat3/setjmp.0
+./usr/share/man/cat3/setkey.0
+./usr/share/man/cat3/setlinebuf.0
+./usr/share/man/cat3/setlogmask.0
+./usr/share/man/cat3/setmode.0
+./usr/share/man/cat3/setnetent.0
+./usr/share/man/cat3/setnetgrent.0
+./usr/share/man/cat3/setpassent.0
+./usr/share/man/cat3/setproctitle.0
+./usr/share/man/cat3/setprotoent.0
+./usr/share/man/cat3/setpwent.0
+./usr/share/man/cat3/setpwfile.0
+./usr/share/man/cat3/setregid.0
+./usr/share/man/cat3/setreuid.0
+./usr/share/man/cat3/setrgid.0
+./usr/share/man/cat3/setrpcent.0
+./usr/share/man/cat3/setruid.0
+./usr/share/man/cat3/setservent.0
+./usr/share/man/cat3/setstate.0
+./usr/share/man/cat3/setttyent.0
+./usr/share/man/cat3/setusershell.0
+./usr/share/man/cat3/setvbuf.0
+./usr/share/man/cat3/sigaddset.0
+./usr/share/man/cat3/sigblock.0
+./usr/share/man/cat3/sigdelset.0
+./usr/share/man/cat3/sigemptyset.0
+./usr/share/man/cat3/sigfillset.0
+./usr/share/man/cat3/siginterrupt.0
+./usr/share/man/cat3/sigismember.0
+./usr/share/man/cat3/siglongjmp.0
+./usr/share/man/cat3/signal.0
+./usr/share/man/cat3/significand.0
+./usr/share/man/cat3/sigpause.0
+./usr/share/man/cat3/sigsetjmp.0
+./usr/share/man/cat3/sigsetmask.0
+./usr/share/man/cat3/sigsetops.0
+./usr/share/man/cat3/sigvec.0
+./usr/share/man/cat3/sin.0
+./usr/share/man/cat3/sinh.0
+./usr/share/man/cat3/sleep.0
+./usr/share/man/cat3/snprintf.0
+./usr/share/man/cat3/sprintf.0
+./usr/share/man/cat3/sqrt.0
+./usr/share/man/cat3/srand.0
+./usr/share/man/cat3/srand48.0
+./usr/share/man/cat3/srandom.0
+./usr/share/man/cat3/sscanf.0
+./usr/share/man/cat3/stdarg.0
+./usr/share/man/cat3/stdio.0
+./usr/share/man/cat3/strcasecmp.0
+./usr/share/man/cat3/strcat.0
+./usr/share/man/cat3/strchr.0
+./usr/share/man/cat3/strcmp.0
+./usr/share/man/cat3/strcoll.0
+./usr/share/man/cat3/strcpy.0
+./usr/share/man/cat3/strcspn.0
+./usr/share/man/cat3/strdup.0
+./usr/share/man/cat3/strerror.0
+./usr/share/man/cat3/strftime.0
+./usr/share/man/cat3/string.0
+./usr/share/man/cat3/strlen.0
+./usr/share/man/cat3/strmode.0
+./usr/share/man/cat3/strncasecmp.0
+./usr/share/man/cat3/strncat.0
+./usr/share/man/cat3/strncmp.0
+./usr/share/man/cat3/strncpy.0
+./usr/share/man/cat3/strpbrk.0
+./usr/share/man/cat3/strrchr.0
+./usr/share/man/cat3/strsep.0
+./usr/share/man/cat3/strsignal.0
+./usr/share/man/cat3/strspn.0
+./usr/share/man/cat3/strstr.0
+./usr/share/man/cat3/strtod.0
+./usr/share/man/cat3/strtok.0
+./usr/share/man/cat3/strtol.0
+./usr/share/man/cat3/strtoq.0
+./usr/share/man/cat3/strtoul.0
+./usr/share/man/cat3/strtouq.0
+./usr/share/man/cat3/strunvis.0
+./usr/share/man/cat3/strvis.0
+./usr/share/man/cat3/strvisx.0
+./usr/share/man/cat3/strxfrm.0
+./usr/share/man/cat3/stty.0
+./usr/share/man/cat3/svc_destroy.0
+./usr/share/man/cat3/svc_fds.0
+./usr/share/man/cat3/svc_fdset.0
+./usr/share/man/cat3/svc_getargs.0
+./usr/share/man/cat3/svc_getcaller.0
+./usr/share/man/cat3/svc_getreg.0
+./usr/share/man/cat3/svc_getregset.0
+./usr/share/man/cat3/svc_register.0
+./usr/share/man/cat3/svc_run.0
+./usr/share/man/cat3/svc_sendreply.0
+./usr/share/man/cat3/svc_unregister.0
+./usr/share/man/cat3/svcerr_auth.0
+./usr/share/man/cat3/svcerr_decode.0
+./usr/share/man/cat3/svcerr_noproc.0
+./usr/share/man/cat3/svcerr_noprog.0
+./usr/share/man/cat3/svcerr_progvers.0
+./usr/share/man/cat3/svcerr_systemerr.0
+./usr/share/man/cat3/svcerr_weakauth.0
+./usr/share/man/cat3/svcfd_create.0
+./usr/share/man/cat3/svcraw_create.0
+./usr/share/man/cat3/svctcp_create.0
+./usr/share/man/cat3/svcudp_bufcreate.0
+./usr/share/man/cat3/swab.0
+./usr/share/man/cat3/sys_siglist.0
+./usr/share/man/cat3/sys_signame.0
+./usr/share/man/cat3/sysconf.0
+./usr/share/man/cat3/sysctl.0
+./usr/share/man/cat3/syslog.0
+./usr/share/man/cat3/system.0
+./usr/share/man/cat3/tailq_entry.0
+./usr/share/man/cat3/tailq_head.0
+./usr/share/man/cat3/tailq_init.0
+./usr/share/man/cat3/tailq_insert_after.0
+./usr/share/man/cat3/tailq_insert_before.0
+./usr/share/man/cat3/tailq_insert_head.0
+./usr/share/man/cat3/tailq_insert_tail.0
+./usr/share/man/cat3/tailq_remove.0
+./usr/share/man/cat3/tan.0
+./usr/share/man/cat3/tanh.0
+./usr/share/man/cat3/tcdrain.0
+./usr/share/man/cat3/tcflow.0
+./usr/share/man/cat3/tcflush.0
+./usr/share/man/cat3/tcgetattr.0
+./usr/share/man/cat3/tcgetpgrp.0
+./usr/share/man/cat3/tcsendbreak.0
+./usr/share/man/cat3/tcsetattr.0
+./usr/share/man/cat3/tcsetpgrp.0
+./usr/share/man/cat3/telldir.0
+./usr/share/man/cat3/tempnam.0
+./usr/share/man/cat3/termcap.0
+./usr/share/man/cat3/tgetent.0
+./usr/share/man/cat3/tgetflag.0
+./usr/share/man/cat3/tgetnum.0
+./usr/share/man/cat3/tgetstr.0
+./usr/share/man/cat3/tgoto.0
+./usr/share/man/cat3/time.0
+./usr/share/man/cat3/time2posix.0
+./usr/share/man/cat3/times.0
+./usr/share/man/cat3/timezone.0
+./usr/share/man/cat3/tmpfile.0
+./usr/share/man/cat3/tmpnam.0
+./usr/share/man/cat3/tolower.0
+./usr/share/man/cat3/toupper.0
+./usr/share/man/cat3/tputs.0
+./usr/share/man/cat3/ttyname.0
+./usr/share/man/cat3/ttyslot.0
+./usr/share/man/cat3/tzset.0
+./usr/share/man/cat3/tzsetwall.0
+./usr/share/man/cat3/ualarm.0
+./usr/share/man/cat3/uname.0
+./usr/share/man/cat3/ungetc.0
+./usr/share/man/cat3/unsetenv.0
+./usr/share/man/cat3/unvis.0
+./usr/share/man/cat3/user_from_uid.0
+./usr/share/man/cat3/usleep.0
+./usr/share/man/cat3/utime.0
+./usr/share/man/cat3/va_arg.0
+./usr/share/man/cat3/va_end.0
+./usr/share/man/cat3/va_start.0
+./usr/share/man/cat3/valloc.0
+./usr/share/man/cat3/varargs.0
+./usr/share/man/cat3/verr.0
+./usr/share/man/cat3/verrx.0
+./usr/share/man/cat3/vfprintf.0
+./usr/share/man/cat3/vfscanf.0
+./usr/share/man/cat3/vis.0
+./usr/share/man/cat3/vlimit.0
+./usr/share/man/cat3/vprintf.0
+./usr/share/man/cat3/vscanf.0
+./usr/share/man/cat3/vsnprintf.0
+./usr/share/man/cat3/vsprintf.0
+./usr/share/man/cat3/vsscanf.0
+./usr/share/man/cat3/vsyslog.0
+./usr/share/man/cat3/vtimes.0
+./usr/share/man/cat3/vwarn.0
+./usr/share/man/cat3/vwarnx.0
+./usr/share/man/cat3/warn.0
+./usr/share/man/cat3/warnx.0
+./usr/share/man/cat3/xdr.0
+./usr/share/man/cat3/xdr_accepted_reply.0
+./usr/share/man/cat3/xdr_array.0
+./usr/share/man/cat3/xdr_authunix_parms.0
+./usr/share/man/cat3/xdr_bool.0
+./usr/share/man/cat3/xdr_bytes.0
+./usr/share/man/cat3/xdr_callhdr.0
+./usr/share/man/cat3/xdr_callmsg.0
+./usr/share/man/cat3/xdr_char.0
+./usr/share/man/cat3/xdr_destroy.0
+./usr/share/man/cat3/xdr_double.0
+./usr/share/man/cat3/xdr_enum.0
+./usr/share/man/cat3/xdr_float.0
+./usr/share/man/cat3/xdr_free.0
+./usr/share/man/cat3/xdr_getpos.0
+./usr/share/man/cat3/xdr_inline.0
+./usr/share/man/cat3/xdr_int.0
+./usr/share/man/cat3/xdr_long.0
+./usr/share/man/cat3/xdr_opaque.0
+./usr/share/man/cat3/xdr_opaque_auth.0
+./usr/share/man/cat3/xdr_pmap.0
+./usr/share/man/cat3/xdr_pmaplist.0
+./usr/share/man/cat3/xdr_pointer.0
+./usr/share/man/cat3/xdr_reference.0
+./usr/share/man/cat3/xdr_rejected_reply.0
+./usr/share/man/cat3/xdr_replymsg.0
+./usr/share/man/cat3/xdr_setpos.0
+./usr/share/man/cat3/xdr_short.0
+./usr/share/man/cat3/xdr_string.0
+./usr/share/man/cat3/xdr_u_char.0
+./usr/share/man/cat3/xdr_u_long.0
+./usr/share/man/cat3/xdr_u_short.0
+./usr/share/man/cat3/xdr_union.0
+./usr/share/man/cat3/xdr_vector.0
+./usr/share/man/cat3/xdr_void.0
+./usr/share/man/cat3/xdr_wrapstring.0
+./usr/share/man/cat3/xdrmem_create.0
+./usr/share/man/cat3/xdrrec_create.0
+./usr/share/man/cat3/xdrrec_endofrecord.0
+./usr/share/man/cat3/xdrrec_eof.0
+./usr/share/man/cat3/xdrrec_skiprecord.0
+./usr/share/man/cat3/xdrstdio_create.0
+./usr/share/man/cat3/xprt_register.0
+./usr/share/man/cat3/xprt_unregister.0
+./usr/share/man/cat3/y0.0
+./usr/share/man/cat3/y1.0
+./usr/share/man/cat3/yn.0
+./usr/share/man/cat3/yp_all.0
+./usr/share/man/cat3/yp_bind.0
+./usr/share/man/cat3/yp_first.0
+./usr/share/man/cat3/yp_get_default_domain.0
+./usr/share/man/cat3/yp_master.0
+./usr/share/man/cat3/yp_match.0
+./usr/share/man/cat3/yp_next.0
+./usr/share/man/cat3/yp_order.0
+./usr/share/man/cat3/yp_unbind.0
+./usr/share/man/cat3/ypclnt.0
+./usr/share/man/cat3/yperr_string.0
+./usr/share/man/cat3/ypprot_err.0
+./usr/share/man/cat7/operator.0
+./usr/share/man/cat8/config.0
+./usr/share/man/cat8/kgmon.0
+./usr/share/misc/getopt
+./usr/share/misc/gprof.callg
+./usr/share/misc/gprof.flat
+./usr/share/misc/operator
+./usr/share/misc/style
+./usr/share/mk/bsd.README
+./usr/share/mk/bsd.dep.mk
+./usr/share/mk/bsd.doc.mk
+./usr/share/mk/bsd.lib.mk
+./usr/share/mk/bsd.man.mk
+./usr/share/mk/bsd.nls.mk
+./usr/share/mk/bsd.obj.mk
+./usr/share/mk/bsd.own.mk
+./usr/share/mk/bsd.prog.mk
+./usr/share/mk/bsd.subdir.mk
+./var/db/libc.tags
diff --git a/distrib/sets/lists/etc/md.amiga b/distrib/sets/lists/etc/md.amiga
new file mode 100644
index 00000000000..0c5bed6e496
--- /dev/null
+++ b/distrib/sets/lists/etc/md.amiga
@@ -0,0 +1 @@
+./etc/fstab.tmp
diff --git a/distrib/sets/lists/etc/md.atari b/distrib/sets/lists/etc/md.atari
new file mode 100644
index 00000000000..0c5bed6e496
--- /dev/null
+++ b/distrib/sets/lists/etc/md.atari
@@ -0,0 +1 @@
+./etc/fstab.tmp
diff --git a/distrib/sets/lists/etc/md.hp300 b/distrib/sets/lists/etc/md.hp300
new file mode 100644
index 00000000000..c9fa422bfef
--- /dev/null
+++ b/distrib/sets/lists/etc/md.hp300
@@ -0,0 +1,2 @@
+./etc/fstab.rd
+./etc/fstab.sd
diff --git a/distrib/sets/lists/etc/md.i386 b/distrib/sets/lists/etc/md.i386
new file mode 100644
index 00000000000..3eb69feee0d
--- /dev/null
+++ b/distrib/sets/lists/etc/md.i386
@@ -0,0 +1 @@
+./etc/fstab.wd
diff --git a/distrib/sets/lists/etc/md.mac68k b/distrib/sets/lists/etc/md.mac68k
new file mode 100644
index 00000000000..1b4d8c24036
--- /dev/null
+++ b/distrib/sets/lists/etc/md.mac68k
@@ -0,0 +1 @@
+./etc/fstab.sd
diff --git a/distrib/sets/lists/etc/md.pc532 b/distrib/sets/lists/etc/md.pc532
new file mode 100644
index 00000000000..1b4d8c24036
--- /dev/null
+++ b/distrib/sets/lists/etc/md.pc532
@@ -0,0 +1 @@
+./etc/fstab.sd
diff --git a/distrib/sets/lists/etc/md.pmax b/distrib/sets/lists/etc/md.pmax
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/etc/md.pmax
diff --git a/distrib/sets/lists/etc/md.sparc b/distrib/sets/lists/etc/md.sparc
new file mode 100644
index 00000000000..1b4d8c24036
--- /dev/null
+++ b/distrib/sets/lists/etc/md.sparc
@@ -0,0 +1 @@
+./etc/fstab.sd
diff --git a/distrib/sets/lists/etc/md.sun3 b/distrib/sets/lists/etc/md.sun3
new file mode 100644
index 00000000000..e1bb3e31e7c
--- /dev/null
+++ b/distrib/sets/lists/etc/md.sun3
@@ -0,0 +1 @@
+./etc/fstab.nfs
diff --git a/distrib/sets/lists/etc/mi b/distrib/sets/lists/etc/mi
new file mode 100644
index 00000000000..973fd45b219
--- /dev/null
+++ b/distrib/sets/lists/etc/mi
@@ -0,0 +1,61 @@
+./.cshrc
+./.profile
+./dev/MAKEDEV.local
+./etc/aliases
+./etc/bootptab
+./etc/changelist
+./etc/csh.cshrc
+./etc/csh.login
+./etc/csh.logout
+./etc/daily
+./etc/disktab
+./etc/dm.conf
+./etc/dumpdates
+./etc/ftpchroot
+./etc/ftpusers
+./etc/gettytab
+./etc/group
+./etc/hosts
+./etc/hosts.equiv
+./etc/hosts.lpd
+./etc/inetd.conf
+./etc/localtime
+./etc/magic
+./etc/mail.rc
+./etc/man.conf
+./etc/master.passwd
+./etc/monthly
+./etc/motd
+./etc/mtree/4.4BSD.dist
+./etc/mtree/special
+./etc/myname
+./etc/namedb/localhost.rev
+./etc/namedb/named.boot
+./etc/namedb/root.cache
+./etc/netstart
+./etc/newsyslog.conf
+./etc/passwd
+./etc/phones
+./etc/printcap
+./etc/protocols
+./etc/pwd.db
+./etc/rc
+./etc/rc.local
+./etc/remote
+./etc/rmt
+./etc/rpc
+./etc/security
+./etc/sendmail.cf
+./etc/services
+./etc/shells
+./etc/skeykeys
+./etc/spwd.db
+./etc/syslog.conf
+./etc/ttys
+./etc/weekly
+./root/.cshrc
+./root/.klogin
+./root/.login
+./root/.profile
+./var/cron/tabs/root
+./var/msgs/bounds
diff --git a/distrib/sets/lists/games/md.amiga b/distrib/sets/lists/games/md.amiga
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/games/md.amiga
diff --git a/distrib/sets/lists/games/md.atari b/distrib/sets/lists/games/md.atari
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/games/md.atari
diff --git a/distrib/sets/lists/games/md.hp300 b/distrib/sets/lists/games/md.hp300
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/games/md.hp300
diff --git a/distrib/sets/lists/games/md.i386 b/distrib/sets/lists/games/md.i386
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/games/md.i386
diff --git a/distrib/sets/lists/games/md.mac68k b/distrib/sets/lists/games/md.mac68k
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/games/md.mac68k
diff --git a/distrib/sets/lists/games/md.pc532 b/distrib/sets/lists/games/md.pc532
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/games/md.pc532
diff --git a/distrib/sets/lists/games/md.pmax b/distrib/sets/lists/games/md.pmax
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/games/md.pmax
diff --git a/distrib/sets/lists/games/md.sparc b/distrib/sets/lists/games/md.sparc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/games/md.sparc
diff --git a/distrib/sets/lists/games/md.sun3 b/distrib/sets/lists/games/md.sun3
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/games/md.sun3
diff --git a/distrib/sets/lists/games/mi b/distrib/sets/lists/games/mi
new file mode 100644
index 00000000000..bd70ea0a236
--- /dev/null
+++ b/distrib/sets/lists/games/mi
@@ -0,0 +1,206 @@
+./usr/games/adventure
+./usr/games/arithmetic
+./usr/games/atc
+./usr/games/backgammon
+./usr/games/banner
+./usr/games/battlestar
+./usr/games/bcd
+./usr/games/boggle
+./usr/games/caesar
+./usr/games/canfield
+./usr/games/cfscores
+./usr/games/chess
+./usr/games/cribbage
+./usr/games/dm
+./usr/games/factor
+./usr/games/fish
+./usr/games/fortune
+./usr/games/hack
+./usr/games/hangman
+./usr/games/hide/adventure
+./usr/games/hide/arithmetic
+./usr/games/hide/atc
+./usr/games/hide/backgammon
+./usr/games/hide/battlestar
+./usr/games/hide/bcd
+./usr/games/hide/boggle
+./usr/games/hide/canfield
+./usr/games/hide/cfscores
+./usr/games/hide/chess
+./usr/games/hide/cribbage
+./usr/games/hide/fish
+./usr/games/hide/hack
+./usr/games/hide/hangman
+./usr/games/hide/larn
+./usr/games/hide/mille
+./usr/games/hide/monop
+./usr/games/hide/morse
+./usr/games/hide/phantasia
+./usr/games/hide/ppt
+./usr/games/hide/quiz
+./usr/games/hide/robots
+./usr/games/hide/rogue
+./usr/games/hide/sail
+./usr/games/hide/snake
+./usr/games/hide/snscore
+./usr/games/hide/teachgammon
+./usr/games/hide/tetris
+./usr/games/hide/trek
+./usr/games/hide/worm
+./usr/games/hide/wump
+./usr/games/larn
+./usr/games/mille
+./usr/games/monop
+./usr/games/morse
+./usr/games/number
+./usr/games/phantasia
+./usr/games/pig
+./usr/games/pom
+./usr/games/ppt
+./usr/games/primes
+./usr/games/quiz
+./usr/games/rain
+./usr/games/random
+./usr/games/robots
+./usr/games/rogue
+./usr/games/rot13
+./usr/games/sail
+./usr/games/snake
+./usr/games/snscore
+./usr/games/teachgammon
+./usr/games/tetris
+./usr/games/trek
+./usr/games/wargames
+./usr/games/worm
+./usr/games/worms
+./usr/games/wump
+./usr/share/games/atc/ATC_scores
+./usr/share/games/atc/Atlantis
+./usr/share/games/atc/Game_List
+./usr/share/games/atc/Killer
+./usr/share/games/atc/OHare
+./usr/share/games/atc/Tic-Tac-Toe
+./usr/share/games/atc/airports
+./usr/share/games/atc/box
+./usr/share/games/atc/crosshatch
+./usr/share/games/atc/crossover
+./usr/share/games/atc/default
+./usr/share/games/atc/easy
+./usr/share/games/atc/game_2
+./usr/share/games/atc/game_3
+./usr/share/games/atc/game_4
+./usr/share/games/atc/novice
+./usr/share/games/atc/two-corners
+./usr/share/games/boggle/dictindex
+./usr/share/games/boggle/dictionary
+./usr/share/games/boggle/helpfile
+./usr/share/games/cards.pck
+./usr/share/games/cribbage.instr
+./usr/share/games/fish.instr
+./usr/share/games/fortune/fortunes
+./usr/share/games/fortune/fortunes-o
+./usr/share/games/fortune/fortunes-o.dat
+./usr/share/games/fortune/fortunes.dat
+./usr/share/games/fortune/fortunes2
+./usr/share/games/fortune/fortunes2-o
+./usr/share/games/fortune/fortunes2-o.dat
+./usr/share/games/fortune/fortunes2.dat
+./usr/share/games/fortune/limerick
+./usr/share/games/fortune/limerick.dat
+./usr/share/games/fortune/startrek
+./usr/share/games/fortune/startrek.dat
+./usr/share/games/fortune/zippy
+./usr/share/games/fortune/zippy.dat
+./usr/share/games/gnuchess.book
+./usr/share/games/larn/larn.help
+./usr/share/games/larn/larnmaze
+./usr/share/games/larn/larnopts
+./usr/share/games/quiz.db/africa
+./usr/share/games/quiz.db/america
+./usr/share/games/quiz.db/areas
+./usr/share/games/quiz.db/arith
+./usr/share/games/quiz.db/asia
+./usr/share/games/quiz.db/babies
+./usr/share/games/quiz.db/bard
+./usr/share/games/quiz.db/chinese
+./usr/share/games/quiz.db/collectives
+./usr/share/games/quiz.db/ed
+./usr/share/games/quiz.db/elements
+./usr/share/games/quiz.db/europe
+./usr/share/games/quiz.db/flowers
+./usr/share/games/quiz.db/greek
+./usr/share/games/quiz.db/inca
+./usr/share/games/quiz.db/index
+./usr/share/games/quiz.db/latin
+./usr/share/games/quiz.db/locomotive
+./usr/share/games/quiz.db/midearth
+./usr/share/games/quiz.db/morse
+./usr/share/games/quiz.db/mult
+./usr/share/games/quiz.db/murders
+./usr/share/games/quiz.db/poetry
+./usr/share/games/quiz.db/posneg
+./usr/share/games/quiz.db/pres
+./usr/share/games/quiz.db/province
+./usr/share/games/quiz.db/seq-easy
+./usr/share/games/quiz.db/seq-hard
+./usr/share/games/quiz.db/sexes
+./usr/share/games/quiz.db/sov
+./usr/share/games/quiz.db/spell
+./usr/share/games/quiz.db/state
+./usr/share/games/quiz.db/trek
+./usr/share/games/quiz.db/ucc
+./usr/share/games/wump.info
+./usr/share/man/cat6/adventure.0
+./usr/share/man/cat6/arithmetic.0
+./usr/share/man/cat6/atc.0
+./usr/share/man/cat6/backgammon.0
+./usr/share/man/cat6/banner.0
+./usr/share/man/cat6/battlestar.0
+./usr/share/man/cat6/bcd.0
+./usr/share/man/cat6/boggle.0
+./usr/share/man/cat6/caesar.0
+./usr/share/man/cat6/canfield.0
+./usr/share/man/cat6/chess.0
+./usr/share/man/cat6/cribbage.0
+./usr/share/man/cat6/factor.0
+./usr/share/man/cat6/fish.0
+./usr/share/man/cat6/fortune.0
+./usr/share/man/cat6/hack.0
+./usr/share/man/cat6/hangman.0
+./usr/share/man/cat6/larn.0
+./usr/share/man/cat6/mille.0
+./usr/share/man/cat6/monop.0
+./usr/share/man/cat6/morse.0
+./usr/share/man/cat6/number.0
+./usr/share/man/cat6/phantasia.0
+./usr/share/man/cat6/pig.0
+./usr/share/man/cat6/pom.0
+./usr/share/man/cat6/ppt.0
+./usr/share/man/cat6/primes.0
+./usr/share/man/cat6/quiz.0
+./usr/share/man/cat6/rain.0
+./usr/share/man/cat6/random.0
+./usr/share/man/cat6/robots.0
+./usr/share/man/cat6/rogue.0
+./usr/share/man/cat6/rot13.0
+./usr/share/man/cat6/sail.0
+./usr/share/man/cat6/snake.0
+./usr/share/man/cat6/tetris.0
+./usr/share/man/cat6/trek.0
+./usr/share/man/cat6/worm.0
+./usr/share/man/cat6/worms.0
+./usr/share/man/cat6/wump.0
+./var/games/hackdir/data
+./var/games/hackdir/help
+./var/games/hackdir/hh
+./var/games/hackdir/perm
+./var/games/hackdir/record
+./var/games/phantasia/characs
+./var/games/phantasia/gold
+./var/games/phantasia/lastdead
+./var/games/phantasia/mess
+./var/games/phantasia/monsters
+./var/games/phantasia/motd
+./var/games/phantasia/scoreboard
+./var/games/phantasia/void
+./var/games/robots_roll
diff --git a/distrib/sets/lists/man/md.amiga b/distrib/sets/lists/man/md.amiga
new file mode 100644
index 00000000000..7ec558d7c8b
--- /dev/null
+++ b/distrib/sets/lists/man/md.amiga
@@ -0,0 +1,11 @@
+./usr/share/man/cat1/ld.so.0
+./usr/share/man/cat1/rtld.0
+./usr/share/man/cat3/dlfcn.0
+./usr/share/man/cat3/dlopen.0
+./usr/share/man/cat3/dlclose.0
+./usr/share/man/cat3/dlsym.0
+./usr/share/man/cat3/dlctl.0
+./usr/share/man/cat3/dlerror.0
+./usr/share/man/cat8/grfconfig.0
+./usr/share/man/cat8/iteconfig.0
+./usr/share/man/cat8/iteconfig_amiga.0
diff --git a/distrib/sets/lists/man/md.atari b/distrib/sets/lists/man/md.atari
new file mode 100644
index 00000000000..54df93159f3
--- /dev/null
+++ b/distrib/sets/lists/man/md.atari
@@ -0,0 +1,10 @@
+./usr/share/man/cat1/ld.so.0
+./usr/share/man/cat1/rtld.0
+./usr/share/man/cat3/dlfcn.0
+./usr/share/man/cat3/dlopen.0
+./usr/share/man/cat3/dlclose.0
+./usr/share/man/cat3/dlsym.0
+./usr/share/man/cat3/dlctl.0
+./usr/share/man/cat3/dlerror.0
+./usr/share/man/cat8/iteconfig.0
+./usr/share/man/cat8/iteconfig_atari.0
diff --git a/distrib/sets/lists/man/md.hp300 b/distrib/sets/lists/man/md.hp300
new file mode 100644
index 00000000000..dd77fa44391
--- /dev/null
+++ b/distrib/sets/lists/man/md.hp300
@@ -0,0 +1,9 @@
+./usr/share/man/cat1/ld.so.0
+./usr/share/man/cat1/rtld.0
+./usr/share/man/cat3/dlfcn.0
+./usr/share/man/cat3/dlopen.0
+./usr/share/man/cat3/dlclose.0
+./usr/share/man/cat3/dlsym.0
+./usr/share/man/cat3/dlctl.0
+./usr/share/man/cat3/dlerror.0
+./usr/share/man/cat8/config.old.0
diff --git a/distrib/sets/lists/man/md.i386 b/distrib/sets/lists/man/md.i386
new file mode 100644
index 00000000000..1961ae78112
--- /dev/null
+++ b/distrib/sets/lists/man/md.i386
@@ -0,0 +1,10 @@
+./usr/share/man/cat1/ld.so.0
+./usr/share/man/cat1/rtld.0
+./usr/share/man/cat3/dlfcn.0
+./usr/share/man/cat3/dlopen.0
+./usr/share/man/cat3/dlclose.0
+./usr/share/man/cat3/dlsym.0
+./usr/share/man/cat3/dlctl.0
+./usr/share/man/cat3/dlerror.0
+./usr/share/man/cat8/fdisk.0
+./usr/share/man/cat8/i386/bad144.0
diff --git a/distrib/sets/lists/man/md.mac68k b/distrib/sets/lists/man/md.mac68k
new file mode 100644
index 00000000000..2234afaf9d0
--- /dev/null
+++ b/distrib/sets/lists/man/md.mac68k
@@ -0,0 +1,8 @@
+./usr/share/man/cat1/ld.so.0
+./usr/share/man/cat1/rtld.0
+./usr/share/man/cat3/dlfcn.0
+./usr/share/man/cat3/dlopen.0
+./usr/share/man/cat3/dlclose.0
+./usr/share/man/cat3/dlsym.0
+./usr/share/man/cat3/dlctl.0
+./usr/share/man/cat3/dlerror.0
diff --git a/distrib/sets/lists/man/md.pc532 b/distrib/sets/lists/man/md.pc532
new file mode 100644
index 00000000000..2234afaf9d0
--- /dev/null
+++ b/distrib/sets/lists/man/md.pc532
@@ -0,0 +1,8 @@
+./usr/share/man/cat1/ld.so.0
+./usr/share/man/cat1/rtld.0
+./usr/share/man/cat3/dlfcn.0
+./usr/share/man/cat3/dlopen.0
+./usr/share/man/cat3/dlclose.0
+./usr/share/man/cat3/dlsym.0
+./usr/share/man/cat3/dlctl.0
+./usr/share/man/cat3/dlerror.0
diff --git a/distrib/sets/lists/man/md.pmax b/distrib/sets/lists/man/md.pmax
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/man/md.pmax
diff --git a/distrib/sets/lists/man/md.sparc b/distrib/sets/lists/man/md.sparc
new file mode 100644
index 00000000000..f39da0ef010
--- /dev/null
+++ b/distrib/sets/lists/man/md.sparc
@@ -0,0 +1,11 @@
+./usr/share/man/cat1/ld.so.0
+./usr/share/man/cat1/rtld.0
+./usr/share/man/cat1/screenblank.0
+./usr/share/man/cat3/dlfcn.0
+./usr/share/man/cat3/dlopen.0
+./usr/share/man/cat3/dlclose.0
+./usr/share/man/cat3/dlsym.0
+./usr/share/man/cat3/dlctl.0
+./usr/share/man/cat3/dlerror.0
+./usr/share/man/cat8/eeprom.0
+./usr/share/man/cat8/installboot.0
diff --git a/distrib/sets/lists/man/md.sun3 b/distrib/sets/lists/man/md.sun3
new file mode 100644
index 00000000000..66d808b8cfc
--- /dev/null
+++ b/distrib/sets/lists/man/md.sun3
@@ -0,0 +1,12 @@
+./usr/share/man/cat1/ld.so.0
+./usr/share/man/cat1/rtld.0
+./usr/share/man/cat3/dlfcn.0
+./usr/share/man/cat3/dlopen.0
+./usr/share/man/cat3/dlclose.0
+./usr/share/man/cat3/dlsym.0
+./usr/share/man/cat3/dlctl.0
+./usr/share/man/cat3/dlerror.0
+./usr/share/man/cat8/dbsym.0
+./usr/share/man/cat8/eeprom.0
+./usr/share/man/cat8/installboot.0
+./usr/share/man/cat1/screenblank.0
diff --git a/distrib/sets/lists/man/md_share b/distrib/sets/lists/man/md_share
new file mode 100644
index 00000000000..ef08713b3d5
--- /dev/null
+++ b/distrib/sets/lists/man/md_share
@@ -0,0 +1,183 @@
+./usr/share/man/cat4/amiga/ae.0
+./usr/share/man/cat4/amiga/afsc.0
+./usr/share/man/cat4/amiga/ahsc.0
+./usr/share/man/cat4/amiga/atzsc.0
+./usr/share/man/cat4/amiga/autoconf.0
+./usr/share/man/cat4/amiga/bah.0
+./usr/share/man/cat4/amiga/console.0
+./usr/share/man/cat4/amiga/ed.0
+./usr/share/man/cat4/amiga/es.0
+./usr/share/man/cat4/amiga/gtsc.0
+./usr/share/man/cat4/amiga/intro.0
+./usr/share/man/cat4/amiga/ite.0
+./usr/share/man/cat4/amiga/kmem.0
+./usr/share/man/cat4/amiga/le.0
+./usr/share/man/cat4/amiga/mem.0
+./usr/share/man/cat4/amiga/mfcs.0
+./usr/share/man/cat4/amiga/mgnsc.0
+./usr/share/man/cat4/amiga/qn.0
+./usr/share/man/cat4/amiga/ser.0
+./usr/share/man/cat4/amiga/wesc.0
+./usr/share/man/cat4/amiga/zssc.0
+./usr/share/man/cat4/hp300/autoconf.0
+./usr/share/man/cat4/hp300/cons.0
+./usr/share/man/cat4/hp300/ct.0
+./usr/share/man/cat4/hp300/dca.0
+./usr/share/man/cat4/hp300/dcl.0
+./usr/share/man/cat4/hp300/dcm.0
+./usr/share/man/cat4/hp300/dv.0
+./usr/share/man/cat4/hp300/gb.0
+./usr/share/man/cat4/hp300/grf.0
+./usr/share/man/cat4/hp300/hil.0
+./usr/share/man/cat4/hp300/intro.0
+./usr/share/man/cat4/hp300/ite.0
+./usr/share/man/cat4/hp300/kmem.0
+./usr/share/man/cat4/hp300/le.0
+./usr/share/man/cat4/hp300/mem.0
+./usr/share/man/cat4/hp300/ppi.0
+./usr/share/man/cat4/hp300/rb.0
+./usr/share/man/cat4/hp300/rd.0
+./usr/share/man/cat4/hp300/rmp.0
+./usr/share/man/cat4/hp300/tc.0
+./usr/share/man/cat4/i386/aha.0
+./usr/share/man/cat4/i386/ahb.0
+./usr/share/man/cat4/i386/aic.0
+./usr/share/man/cat4/i386/ast.0
+./usr/share/man/cat4/i386/autoconf.0
+./usr/share/man/cat4/i386/boca.0
+./usr/share/man/cat4/i386/bt.0
+./usr/share/man/cat4/i386/com.0
+./usr/share/man/cat4/i386/cy.0
+./usr/share/man/cat4/i386/ed.0
+./usr/share/man/cat4/i386/eg.0
+./usr/share/man/cat4/i386/el.0
+./usr/share/man/cat4/i386/ep.0
+./usr/share/man/cat4/i386/ie.0
+./usr/share/man/cat4/i386/intro.0
+./usr/share/man/cat4/i386/kmem.0
+./usr/share/man/cat4/i386/le.0
+./usr/share/man/cat4/i386/lms.0
+./usr/share/man/cat4/i386/lpt.0
+./usr/share/man/cat4/i386/mcd.0
+./usr/share/man/cat4/i386/mem.0
+./usr/share/man/cat4/i386/mms.0
+./usr/share/man/cat4/i386/ncr.0
+./usr/share/man/cat4/i386/npx.0
+./usr/share/man/cat4/i386/pms.0
+./usr/share/man/cat4/i386/rtfps.0
+./usr/share/man/cat4/i386/sea.0
+./usr/share/man/cat4/i386/speaker.0
+./usr/share/man/cat4/i386/uha.0
+./usr/share/man/cat4/i386/wd.0
+./usr/share/man/cat4/i386/wt.0
+./usr/share/man/cat4/pc532/lpt.0
+./usr/share/man/cat4/pc532/plip.0
+./usr/share/man/cat4/sparc/bwtwo.0
+./usr/share/man/cat4/sparc/cgsix.0
+./usr/share/man/cat4/sparc/cgthree.0
+./usr/share/man/cat4/sparc/kmem.0
+./usr/share/man/cat4/sparc/le.0
+./usr/share/man/cat4/sparc/mem.0
+./usr/share/man/cat4/sparc/openprom.0
+./usr/share/man/cat4/sun3
+./usr/share/man/cat4/sun3/bwtwo.0
+./usr/share/man/cat4/sun3/cgfour.0
+./usr/share/man/cat4/sun3/cgtwo.0
+./usr/share/man/cat4/sun3/ie.0
+./usr/share/man/cat4/sun3/kmem.0
+./usr/share/man/cat4/sun3/le.0
+./usr/share/man/cat4/sun3/mem.0
+./usr/share/man/cat4/tahoe/ace.0
+./usr/share/man/cat4/tahoe/autoconf.0
+./usr/share/man/cat4/tahoe/cons.0
+./usr/share/man/cat4/tahoe/cy.0
+./usr/share/man/cat4/tahoe/dr.0
+./usr/share/man/cat4/tahoe/enp.0
+./usr/share/man/cat4/tahoe/ik.0
+./usr/share/man/cat4/tahoe/intro.0
+./usr/share/man/cat4/tahoe/kmem.0
+./usr/share/man/cat4/tahoe/lp.0
+./usr/share/man/cat4/tahoe/mem.0
+./usr/share/man/cat4/tahoe/mtio.0
+./usr/share/man/cat4/tahoe/vd.0
+./usr/share/man/cat4/tahoe/vx.0
+./usr/share/man/cat4/vax/acc.0
+./usr/share/man/cat4/vax/ad.0
+./usr/share/man/cat4/vax/autoconf.0
+./usr/share/man/cat4/vax/cons.0
+./usr/share/man/cat4/vax/crl.0
+./usr/share/man/cat4/vax/css.0
+./usr/share/man/cat4/vax/ct.0
+./usr/share/man/cat4/vax/ddn.0
+./usr/share/man/cat4/vax/de.0
+./usr/share/man/cat4/vax/dh.0
+./usr/share/man/cat4/vax/dhu.0
+./usr/share/man/cat4/vax/dmc.0
+./usr/share/man/cat4/vax/dmf.0
+./usr/share/man/cat4/vax/dmz.0
+./usr/share/man/cat4/vax/dn.0
+./usr/share/man/cat4/vax/dz.0
+./usr/share/man/cat4/vax/ec.0
+./usr/share/man/cat4/vax/en.0
+./usr/share/man/cat4/vax/ex.0
+./usr/share/man/cat4/vax/fl.0
+./usr/share/man/cat4/vax/hdh.0
+./usr/share/man/cat4/vax/hk.0
+./usr/share/man/cat4/vax/hp.0
+./usr/share/man/cat4/vax/ht.0
+./usr/share/man/cat4/vax/hy.0
+./usr/share/man/cat4/vax/ik.0
+./usr/share/man/cat4/vax/il.0
+./usr/share/man/cat4/vax/intro.0
+./usr/share/man/cat4/vax/ix.0
+./usr/share/man/cat4/vax/kg.0
+./usr/share/man/cat4/vax/kmem.0
+./usr/share/man/cat4/vax/lp.0
+./usr/share/man/cat4/vax/mem.0
+./usr/share/man/cat4/vax/mt.0
+./usr/share/man/cat4/vax/mtio.0
+./usr/share/man/cat4/vax/np.0
+./usr/share/man/cat4/vax/pcl.0
+./usr/share/man/cat4/vax/ps.0
+./usr/share/man/cat4/vax/qe.0
+./usr/share/man/cat4/vax/rx.0
+./usr/share/man/cat4/vax/tm.0
+./usr/share/man/cat4/vax/tmscp.0
+./usr/share/man/cat4/vax/ts.0
+./usr/share/man/cat4/vax/tu.0
+./usr/share/man/cat4/vax/uda.0
+./usr/share/man/cat4/vax/up.0
+./usr/share/man/cat4/vax/ut.0
+./usr/share/man/cat4/vax/uu.0
+./usr/share/man/cat4/vax/va.0
+./usr/share/man/cat4/vax/vp.0
+./usr/share/man/cat4/vax/vv.0
+./usr/share/man/cat8/amiga/MAKEDEV.0
+./usr/share/man/cat8/amiga/makedev.0
+./usr/share/man/cat8/boot_hp300.0
+./usr/share/man/cat8/boot_i386.0
+./usr/share/man/cat8/boot_mac68k.0
+./usr/share/man/cat8/boot_pmax.0
+./usr/share/man/cat8/boot_sparc.0
+./usr/share/man/cat8/boot_sun3.0
+./usr/share/man/cat8/boot_tahoe.0
+./usr/share/man/cat8/boot_vax.0
+./usr/share/man/cat8/hp300/MAKEDEV.0
+./usr/share/man/cat8/hp300/crash.0
+./usr/share/man/cat8/hp300/format.0
+./usr/share/man/cat8/hp300/makedev.0
+./usr/share/man/cat8/i386/MAKEDEV.0
+./usr/share/man/cat8/i386/makedev.0
+./usr/share/man/cat8/sparc/MAKEDEV.0
+./usr/share/man/cat8/sparc/makedev.0
+./usr/share/man/cat8/sun3
+./usr/share/man/cat8/sun3/MAKEDEV.0
+./usr/share/man/cat8/sun3/makedev.0
+./usr/share/man/cat8/tahoe/MAKEDEV.0
+./usr/share/man/cat8/tahoe/makedev.0
+./usr/share/man/cat8/vax/MAKEDEV.0
+./usr/share/man/cat8/vax/crash.0
+./usr/share/man/cat8/vax/drtest.0
+./usr/share/man/cat8/vax/format.0
+./usr/share/man/cat8/vax/installboot.0
+./usr/share/man/cat8/vax/makedev.0
diff --git a/distrib/sets/lists/man/mi b/distrib/sets/lists/man/mi
new file mode 100644
index 00000000000..59f37ed8af2
--- /dev/null
+++ b/distrib/sets/lists/man/mi
@@ -0,0 +1,539 @@
+./usr/share/man/cat1/Mail.0
+./usr/share/man/cat1/[.0
+./usr/share/man/cat1/alias.0
+./usr/share/man/cat1/apply.0
+./usr/share/man/cat1/apropos.0
+./usr/share/man/cat1/at.0
+./usr/share/man/cat1/atq.0
+./usr/share/man/cat1/atrm.0
+./usr/share/man/cat1/awk.0
+./usr/share/man/cat1/banner.0
+./usr/share/man/cat1/basename.0
+./usr/share/man/cat1/batch.0
+./usr/share/man/cat1/bc.0
+./usr/share/man/cat1/bdes.0
+./usr/share/man/cat1/bg.0
+./usr/share/man/cat1/biff.0
+./usr/share/man/cat1/cal.0
+./usr/share/man/cat1/calendar.0
+./usr/share/man/cat1/cap_mkdb.0
+./usr/share/man/cat1/cat.0
+./usr/share/man/cat1/cd.0
+./usr/share/man/cat1/chflags.0
+./usr/share/man/cat1/chfn.0
+./usr/share/man/cat1/chgrp.0
+./usr/share/man/cat1/chmod.0
+./usr/share/man/cat1/chpass.0
+./usr/share/man/cat1/chsh.0
+./usr/share/man/cat1/ci.0
+./usr/share/man/cat1/cksum.0
+./usr/share/man/cat1/clear.0
+./usr/share/man/cat1/cmp.0
+./usr/share/man/cat1/co.0
+./usr/share/man/cat1/col.0
+./usr/share/man/cat1/colcrt.0
+./usr/share/man/cat1/colrm.0
+./usr/share/man/cat1/column.0
+./usr/share/man/cat1/comm.0
+./usr/share/man/cat1/compress.0
+./usr/share/man/cat1/cp.0
+./usr/share/man/cat1/cpio.0
+./usr/share/man/cat1/cpp.0
+./usr/share/man/cat1/crontab.0
+./usr/share/man/cat1/csh.0
+./usr/share/man/cat1/ctags.0
+./usr/share/man/cat1/cu.0
+./usr/share/man/cat1/cut.0
+./usr/share/man/cat1/date.0
+./usr/share/man/cat1/dc.0
+./usr/share/man/cat1/dd.0
+./usr/share/man/cat1/df.0
+./usr/share/man/cat1/diff.0
+./usr/share/man/cat1/diff3.0
+./usr/share/man/cat1/dirname.0
+./usr/share/man/cat1/dirs.0
+./usr/share/man/cat1/domainname.0
+./usr/share/man/cat1/du.0
+./usr/share/man/cat1/echo.0
+./usr/share/man/cat1/ed.0
+./usr/share/man/cat1/egrep.0
+./usr/share/man/cat1/env.0
+./usr/share/man/cat1/error.0
+./usr/share/man/cat1/ex.0
+./usr/share/man/cat1/expand.0
+./usr/share/man/cat1/expr.0
+./usr/share/man/cat1/false.0
+./usr/share/man/cat1/fg.0
+./usr/share/man/cat1/fgrep.0
+./usr/share/man/cat1/file.0
+./usr/share/man/cat1/find.0
+./usr/share/man/cat1/finger.0
+./usr/share/man/cat1/fmt.0
+./usr/share/man/cat1/fold.0
+./usr/share/man/cat1/foreach.0
+./usr/share/man/cat1/from.0
+./usr/share/man/cat1/fsplit.0
+./usr/share/man/cat1/fstat.0
+./usr/share/man/cat1/ftp.0
+./usr/share/man/cat1/gcpp.0
+./usr/share/man/cat1/getconf.0
+./usr/share/man/cat1/getopt.0
+./usr/share/man/cat1/grep.0
+./usr/share/man/cat1/groups.0
+./usr/share/man/cat1/gunzip.0
+./usr/share/man/cat1/gzcat.0
+./usr/share/man/cat1/gzexe.0
+./usr/share/man/cat1/gzip.0
+./usr/share/man/cat1/head.0
+./usr/share/man/cat1/hexdump.0
+./usr/share/man/cat1/history.0
+./usr/share/man/cat1/hostname.0
+./usr/share/man/cat1/id.0
+./usr/share/man/cat1/ident.0
+./usr/share/man/cat1/indent.0
+./usr/share/man/cat1/install.0
+./usr/share/man/cat1/intro.0
+./usr/share/man/cat1/ipcrm.0
+./usr/share/man/cat1/ipcs.0
+./usr/share/man/cat1/jobs.0
+./usr/share/man/cat1/join.0
+./usr/share/man/cat1/jot.0
+./usr/share/man/cat1/kdump.0
+./usr/share/man/cat1/kill.0
+./usr/share/man/cat1/ktrace.0
+./usr/share/man/cat1/lam.0
+./usr/share/man/cat1/last.0
+./usr/share/man/cat1/lastcomm.0
+./usr/share/man/cat1/ldd.0
+./usr/share/man/cat1/leave.0
+./usr/share/man/cat1/limit.0
+./usr/share/man/cat1/ln.0
+./usr/share/man/cat1/locate.0
+./usr/share/man/cat1/lock.0
+./usr/share/man/cat1/logger.0
+./usr/share/man/cat1/login.0
+./usr/share/man/cat1/logname.0
+./usr/share/man/cat1/look.0
+./usr/share/man/cat1/lpq.0
+./usr/share/man/cat1/lpr.0
+./usr/share/man/cat1/lprm.0
+./usr/share/man/cat1/lptest.0
+./usr/share/man/cat1/ls.0
+./usr/share/man/cat1/m4.0
+./usr/share/man/cat1/machine.0
+./usr/share/man/cat1/mail.0
+./usr/share/man/cat1/mailq.0
+./usr/share/man/cat1/mailx.0
+./usr/share/man/cat1/make.0
+./usr/share/man/cat1/man.0
+./usr/share/man/cat1/merge.0
+./usr/share/man/cat1/mesg.0
+./usr/share/man/cat1/mkdep.0
+./usr/share/man/cat1/mkdir.0
+./usr/share/man/cat1/mkfifo.0
+./usr/share/man/cat1/more.0
+./usr/share/man/cat1/mset.0
+./usr/share/man/cat1/msgs.0
+./usr/share/man/cat1/mt.0
+./usr/share/man/cat1/mv.0
+./usr/share/man/cat1/netstat.0
+./usr/share/man/cat1/newaliases.0
+./usr/share/man/cat1/nfsstat.0
+./usr/share/man/cat1/nice.0
+./usr/share/man/cat1/nm.0
+./usr/share/man/cat1/nohup.0
+./usr/share/man/cat1/od.0
+./usr/share/man/cat1/page.0
+./usr/share/man/cat1/pagesize.0
+./usr/share/man/cat1/passwd.0
+./usr/share/man/cat1/paste.0
+./usr/share/man/cat1/patch.0
+./usr/share/man/cat1/pax.0
+./usr/share/man/cat1/popd.0
+./usr/share/man/cat1/pr.0
+./usr/share/man/cat1/printenv.0
+./usr/share/man/cat1/printf.0
+./usr/share/man/cat1/ps.0
+./usr/share/man/cat1/pushd.0
+./usr/share/man/cat1/pwd.0
+./usr/share/man/cat1/quota.0
+./usr/share/man/cat1/rcp.0
+./usr/share/man/cat1/rcs.0
+./usr/share/man/cat1/rcsclean.0
+./usr/share/man/cat1/rcsdiff.0
+./usr/share/man/cat1/rcsfreeze.0
+./usr/share/man/cat1/rcsintro.0
+./usr/share/man/cat1/rcsmerge.0
+./usr/share/man/cat1/rdist.0
+./usr/share/man/cat1/rehash.0
+./usr/share/man/cat1/repeat.0
+./usr/share/man/cat1/reset.0
+./usr/share/man/cat1/rev.0
+./usr/share/man/cat1/rlog.0
+./usr/share/man/cat1/rlogin.0
+./usr/share/man/cat1/rm.0
+./usr/share/man/cat1/rmdir.0
+./usr/share/man/cat1/rs.0
+./usr/share/man/cat1/rsh.0
+./usr/share/man/cat1/rup.0
+./usr/share/man/cat1/ruptime.0
+./usr/share/man/cat1/rusers.0
+./usr/share/man/cat1/rwall.0
+./usr/share/man/cat1/rwho.0
+./usr/share/man/cat1/script.0
+./usr/share/man/cat1/sdiff.0
+./usr/share/man/cat1/sed.0
+./usr/share/man/cat1/send-pr.0
+./usr/share/man/cat1/sh.0
+./usr/share/man/cat1/shar.0
+./usr/share/man/cat1/size.0
+./usr/share/man/cat1/skey.0
+./usr/share/man/cat1/skeyaudit.0
+./usr/share/man/cat1/skeyinfo.0
+./usr/share/man/cat1/skeyinit.0
+./usr/share/man/cat1/sleep.0
+./usr/share/man/cat1/sort.0
+./usr/share/man/cat1/source.0
+./usr/share/man/cat1/split.0
+./usr/share/man/cat1/stop.0
+./usr/share/man/cat1/strings.0
+./usr/share/man/cat1/stty.0
+./usr/share/man/cat1/su.0
+./usr/share/man/cat1/sum.0
+./usr/share/man/cat1/suspend.0
+./usr/share/man/cat1/systat.0
+./usr/share/man/cat1/tail.0
+./usr/share/man/cat1/talk.0
+./usr/share/man/cat1/tar.0
+./usr/share/man/cat1/tcopy.0
+./usr/share/man/cat1/tee.0
+./usr/share/man/cat1/telnet.0
+./usr/share/man/cat1/test.0
+./usr/share/man/cat1/tftp.0
+./usr/share/man/cat1/time.0
+./usr/share/man/cat1/tip.0
+./usr/share/man/cat1/tn3270.0
+./usr/share/man/cat1/touch.0
+./usr/share/man/cat1/tput.0
+./usr/share/man/cat1/tr.0
+./usr/share/man/cat1/true.0
+./usr/share/man/cat1/tset.0
+./usr/share/man/cat1/tsort.0
+./usr/share/man/cat1/tty.0
+./usr/share/man/cat1/ul.0
+./usr/share/man/cat1/uname.0
+./usr/share/man/cat1/uncompress.0
+./usr/share/man/cat1/unexpand.0
+./usr/share/man/cat1/unifdef.0
+./usr/share/man/cat1/uniq.0
+./usr/share/man/cat1/units.0
+./usr/share/man/cat1/unvis.0
+./usr/share/man/cat1/uptime.0
+./usr/share/man/cat1/users.0
+./usr/share/man/cat1/uucp.0
+./usr/share/man/cat1/uudecode.0
+./usr/share/man/cat1/uuencode.0
+./usr/share/man/cat1/uustat.0
+./usr/share/man/cat1/uux.0
+./usr/share/man/cat1/vacation.0
+./usr/share/man/cat1/vi.0
+./usr/share/man/cat1/view.0
+./usr/share/man/cat1/vis.0
+./usr/share/man/cat1/w.0
+./usr/share/man/cat1/wait.0
+./usr/share/man/cat1/wall.0
+./usr/share/man/cat1/wc.0
+./usr/share/man/cat1/what.0
+./usr/share/man/cat1/whatis.0
+./usr/share/man/cat1/whereis.0
+./usr/share/man/cat1/which.0
+./usr/share/man/cat1/who.0
+./usr/share/man/cat1/whoami.0
+./usr/share/man/cat1/whois.0
+./usr/share/man/cat1/window.0
+./usr/share/man/cat1/write.0
+./usr/share/man/cat1/xargs.0
+./usr/share/man/cat1/yes.0
+./usr/share/man/cat1/ypcat.0
+./usr/share/man/cat1/ypmatch.0
+./usr/share/man/cat1/yppasswd.0
+./usr/share/man/cat1/ypwhich.0
+./usr/share/man/cat1/zcat.0
+./usr/share/man/cat1/zdiff.0
+./usr/share/man/cat1/zforce.0
+./usr/share/man/cat1/zgrep.0
+./usr/share/man/cat1/zmore.0
+./usr/share/man/cat1/znew.0
+./usr/share/man/cat4/arp.0
+./usr/share/man/cat4/bpf.0
+./usr/share/man/cat4/ccd.0
+./usr/share/man/cat4/clnp.0
+./usr/share/man/cat4/cltp.0
+./usr/share/man/cat4/ddb.0
+./usr/share/man/cat4/drum.0
+./usr/share/man/cat4/esis.0
+./usr/share/man/cat4/fd.0
+./usr/share/man/cat4/icmp.0
+./usr/share/man/cat4/idp.0
+./usr/share/man/cat4/imp.0
+./usr/share/man/cat4/inet.0
+./usr/share/man/cat4/ip.0
+./usr/share/man/cat4/iso.0
+./usr/share/man/cat4/lkm.0
+./usr/share/man/cat4/lo.0
+./usr/share/man/cat4/netintro.0
+./usr/share/man/cat4/networking.0
+./usr/share/man/cat4/ns.0
+./usr/share/man/cat4/nsip.0
+./usr/share/man/cat4/null.0
+./usr/share/man/cat4/pty.0
+./usr/share/man/cat4/route.0
+./usr/share/man/cat4/spp.0
+./usr/share/man/cat4/stderr.0
+./usr/share/man/cat4/stdin.0
+./usr/share/man/cat4/stdout.0
+./usr/share/man/cat4/tb.0
+./usr/share/man/cat4/tcp.0
+./usr/share/man/cat4/termios.0
+./usr/share/man/cat4/tp.0
+./usr/share/man/cat4/tty.0
+./usr/share/man/cat4/udp.0
+./usr/share/man/cat4/unix.0
+./usr/share/man/cat5/a.out.0
+./usr/share/man/cat5/acct.0
+./usr/share/man/cat5/aliases.0
+./usr/share/man/cat5/ar.0
+./usr/share/man/cat5/bootparams.0
+./usr/share/man/cat5/bootptab.0
+./usr/share/man/cat5/core.0
+./usr/share/man/cat5/crontab.0
+./usr/share/man/cat5/dir.0
+./usr/share/man/cat5/dirent.0
+./usr/share/man/cat5/disklabel.0
+./usr/share/man/cat5/disktab.0
+./usr/share/man/cat5/dm.conf.0
+./usr/share/man/cat5/ethers.0
+./usr/share/man/cat5/exports.0
+./usr/share/man/cat5/fs.0
+./usr/share/man/cat5/fstab.0
+./usr/share/man/cat5/gettytab.0
+./usr/share/man/cat5/group.0
+./usr/share/man/cat5/hosts.0
+./usr/share/man/cat5/inetd.0
+./usr/share/man/cat5/inode.0
+./usr/share/man/cat5/lastlog.0
+./usr/share/man/cat5/link.0
+./usr/share/man/cat5/magic.0
+./usr/share/man/cat5/man.conf.0
+./usr/share/man/cat5/map3270.0
+./usr/share/man/cat5/motd.0
+./usr/share/man/cat5/netgroup.0
+./usr/share/man/cat5/networks.0
+./usr/share/man/cat5/passwd.0
+./usr/share/man/cat5/phones.0
+./usr/share/man/cat5/printcap.0
+./usr/share/man/cat5/protocols.0
+./usr/share/man/cat5/ranlib.0
+./usr/share/man/cat5/rcsfile.0
+./usr/share/man/cat5/remote.0
+./usr/share/man/cat5/resolv.conf.0
+./usr/share/man/cat5/rpc.0
+./usr/share/man/cat5/services.0
+./usr/share/man/cat5/shells.0
+./usr/share/man/cat5/stab.0
+./usr/share/man/cat5/syslog.conf.0
+./usr/share/man/cat5/termcap.0
+./usr/share/man/cat5/ttys.0
+./usr/share/man/cat5/types.0
+./usr/share/man/cat5/tzfile.0
+./usr/share/man/cat5/utmp.0
+./usr/share/man/cat5/uuencode.format.0
+./usr/share/man/cat5/vgrindefs.0
+./usr/share/man/cat5/wtmp.0
+./usr/share/man/cat7/ascii.0
+./usr/share/man/cat7/environ.0
+./usr/share/man/cat7/hier.0
+./usr/share/man/cat7/hostname.0
+./usr/share/man/cat7/intro.0
+./usr/share/man/cat7/mailaddr.0
+./usr/share/man/cat7/mdoc.0
+./usr/share/man/cat7/re_format.0
+./usr/share/man/cat7/symlink.0
+./usr/share/man/cat8/ac.0
+./usr/share/man/cat8/accton.0
+./usr/share/man/cat8/adduser.0
+./usr/share/man/cat8/amd.0
+./usr/share/man/cat8/amq.0
+./usr/share/man/cat8/arp.0
+./usr/share/man/cat8/atrun.0
+./usr/share/man/cat8/badsect.0
+./usr/share/man/cat8/bootparamd.0
+./usr/share/man/cat8/bootpd.0
+./usr/share/man/cat8/bootpef.0
+./usr/share/man/cat8/bootpgw.0
+./usr/share/man/cat8/bootptest.0
+./usr/share/man/cat8/ccdconfig.0
+./usr/share/man/cat8/chat.0
+./usr/share/man/cat8/chown.0
+./usr/share/man/cat8/chroot.0
+./usr/share/man/cat8/clri.0
+./usr/share/man/cat8/compat_linux.0
+./usr/share/man/cat8/compat_sunos.0
+./usr/share/man/cat8/comsat.0
+./usr/share/man/cat8/cron.0
+./usr/share/man/cat8/dev_mkdb.0
+./usr/share/man/cat8/disklabel.0
+./usr/share/man/cat8/diskless.0
+./usr/share/man/cat8/diskpart.0
+./usr/share/man/cat8/dm.0
+./usr/share/man/cat8/dmesg.0
+./usr/share/man/cat8/dump.0
+./usr/share/man/cat8/dumpfs.0
+./usr/share/man/cat8/dumplfs.0
+./usr/share/man/cat8/edquota.0
+./usr/share/man/cat8/fastboot.0
+./usr/share/man/cat8/fasthalt.0
+./usr/share/man/cat8/fingerd.0
+./usr/share/man/cat8/fsck.0
+./usr/share/man/cat8/fsdb.0
+./usr/share/man/cat8/fsinfo.0
+./usr/share/man/cat8/ftpd.0
+./usr/share/man/cat8/gettable.0
+./usr/share/man/cat8/getty.0
+./usr/share/man/cat8/halt.0
+./usr/share/man/cat8/htable.0
+./usr/share/man/cat8/identd.0
+./usr/share/man/cat8/ifconfig.0
+./usr/share/man/cat8/inetd.0
+./usr/share/man/cat8/init.0
+./usr/share/man/cat8/intro.0
+./usr/share/man/cat8/iostat.0
+./usr/share/man/cat8/kvm_mkdb.0
+./usr/share/man/cat8/ldconfig.0
+./usr/share/man/cat8/lfs_cleanerd.0
+./usr/share/man/cat8/lpc.0
+./usr/share/man/cat8/lpd.0
+./usr/share/man/cat8/mail.local.0
+./usr/share/man/cat8/makekey.0
+./usr/share/man/cat8/makemap.0
+./usr/share/man/cat8/map-mbone.0
+./usr/share/man/cat8/mfs.0
+./usr/share/man/cat8/mk-amd-map.0
+./usr/share/man/cat8/mknod.0
+./usr/share/man/cat8/modload.0
+./usr/share/man/cat8/modstat.0
+./usr/share/man/cat8/modunload.0
+./usr/share/man/cat8/mount.0
+./usr/share/man/cat8/mount_ados.0
+./usr/share/man/cat8/mount_cd9660.0
+./usr/share/man/cat8/mount_fdesc.0
+./usr/share/man/cat8/mount_ffs.0
+./usr/share/man/cat8/mount_kernfs.0
+./usr/share/man/cat8/mount_lfs.0
+./usr/share/man/cat8/mount_mfs.0
+./usr/share/man/cat8/mount_msdos.0
+./usr/share/man/cat8/mount_nfs.0
+./usr/share/man/cat8/mount_null.0
+./usr/share/man/cat8/mount_portal.0
+./usr/share/man/cat8/mount_procfs.0
+./usr/share/man/cat8/mount_ufs.0
+./usr/share/man/cat8/mount_umap.0
+./usr/share/man/cat8/mount_union.0
+./usr/share/man/cat8/mountd.0
+./usr/share/man/cat8/mrinfo.0
+./usr/share/man/cat8/mrouted.0
+./usr/share/man/cat8/mtrace.0
+./usr/share/man/cat8/mtree.0
+./usr/share/man/cat8/named-xfer.0
+./usr/share/man/cat8/named.0
+./usr/share/man/cat8/netgroup_mkdb.0
+./usr/share/man/cat8/newfs.0
+./usr/share/man/cat8/newlfs.0
+./usr/share/man/cat8/newsyslog.0
+./usr/share/man/cat8/nfsd.0
+./usr/share/man/cat8/nfsiod.0
+./usr/share/man/cat8/nologin.0
+./usr/share/man/cat8/nslookup.0
+./usr/share/man/cat8/pac.0
+./usr/share/man/cat8/pcnfsd.0
+./usr/share/man/cat8/ping.0
+./usr/share/man/cat8/portmap.0
+./usr/share/man/cat8/pppd.0
+./usr/share/man/cat8/pppstats.0
+./usr/share/man/cat8/pstat.0
+./usr/share/man/cat8/pwd_mkdb.0
+./usr/share/man/cat8/quot.0
+./usr/share/man/cat8/quotacheck.0
+./usr/share/man/cat8/quotaoff.0
+./usr/share/man/cat8/quotaon.0
+./usr/share/man/cat8/rarpd.0
+./usr/share/man/cat8/rbootd.0
+./usr/share/man/cat8/rc.0
+./usr/share/man/cat8/rdate.0
+./usr/share/man/cat8/rdconfig.0
+./usr/share/man/cat8/rdump.0
+./usr/share/man/cat8/reboot.0
+./usr/share/man/cat8/renice.0
+./usr/share/man/cat8/repquota.0
+./usr/share/man/cat8/restore.0
+./usr/share/man/cat8/rexecd.0
+./usr/share/man/cat8/rlogind.0
+./usr/share/man/cat8/rmail.0
+./usr/share/man/cat8/rmt.0
+./usr/share/man/cat8/route.0
+./usr/share/man/cat8/routed.0
+./usr/share/man/cat8/rpc.bootparamd.0
+./usr/share/man/cat8/rpc.pcnfsd.0
+./usr/share/man/cat8/rpc.rquotad.0
+./usr/share/man/cat8/rpc.rstatd.0
+./usr/share/man/cat8/rpc.rusersd.0
+./usr/share/man/cat8/rpc.rwalld.0
+./usr/share/man/cat8/rpc.sprayd.0
+./usr/share/man/cat8/rpcinfo.0
+./usr/share/man/cat8/rquotad.0
+./usr/share/man/cat8/rrestore.0
+./usr/share/man/cat8/rshd.0
+./usr/share/man/cat8/rstatd.0
+./usr/share/man/cat8/rusersd.0
+./usr/share/man/cat8/rwalld.0
+./usr/share/man/cat8/rwhod.0
+./usr/share/man/cat8/sa.0
+./usr/share/man/cat8/savecore.0
+./usr/share/man/cat8/sendmail.0
+./usr/share/man/cat8/showmount.0
+./usr/share/man/cat8/shutdown.0
+./usr/share/man/cat8/slattach.0
+./usr/share/man/cat8/slip.0
+./usr/share/man/cat8/sliplogin.0
+./usr/share/man/cat8/slstats.0
+./usr/share/man/cat8/spray.0
+./usr/share/man/cat8/sprayd.0
+./usr/share/man/cat8/sticky.0
+./usr/share/man/cat8/swapon.0
+./usr/share/man/cat8/sync.0
+./usr/share/man/cat8/sysctl.0
+./usr/share/man/cat8/syslogd.0
+./usr/share/man/cat8/talkd.0
+./usr/share/man/cat8/tcpdump.0
+./usr/share/man/cat8/telnetd.0
+./usr/share/man/cat8/tftpd.0
+./usr/share/man/cat8/timed.0
+./usr/share/man/cat8/timedc.0
+./usr/share/man/cat8/traceroute.0
+./usr/share/man/cat8/trpt.0
+./usr/share/man/cat8/trsp.0
+./usr/share/man/cat8/ttyflags.0
+./usr/share/man/cat8/tunefs.0
+./usr/share/man/cat8/umount.0
+./usr/share/man/cat8/update.0
+./usr/share/man/cat8/uucico.0
+./usr/share/man/cat8/uuxqt.0
+./usr/share/man/cat8/vipw.0
+./usr/share/man/cat8/vmstat.0
+./usr/share/man/cat8/vnconfig.0
+./usr/share/man/cat8/yp.0
+./usr/share/man/cat8/ypbind.0
+./usr/share/man/cat8/yppoll.0
+./usr/share/man/cat8/ypset.0
+./usr/share/man/cat8/zdump.0
+./usr/share/man/cat8/zic.0
diff --git a/distrib/sets/lists/misc/md.amiga b/distrib/sets/lists/misc/md.amiga
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/misc/md.amiga
diff --git a/distrib/sets/lists/misc/md.atari b/distrib/sets/lists/misc/md.atari
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/misc/md.atari
diff --git a/distrib/sets/lists/misc/md.hp300 b/distrib/sets/lists/misc/md.hp300
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/misc/md.hp300
diff --git a/distrib/sets/lists/misc/md.i386 b/distrib/sets/lists/misc/md.i386
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/misc/md.i386
diff --git a/distrib/sets/lists/misc/md.mac68k b/distrib/sets/lists/misc/md.mac68k
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/misc/md.mac68k
diff --git a/distrib/sets/lists/misc/md.pc532 b/distrib/sets/lists/misc/md.pc532
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/misc/md.pc532
diff --git a/distrib/sets/lists/misc/md.pmax b/distrib/sets/lists/misc/md.pmax
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/misc/md.pmax
diff --git a/distrib/sets/lists/misc/md.sparc b/distrib/sets/lists/misc/md.sparc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/misc/md.sparc
diff --git a/distrib/sets/lists/misc/md.sun3 b/distrib/sets/lists/misc/md.sun3
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/misc/md.sun3
diff --git a/distrib/sets/lists/misc/mi b/distrib/sets/lists/misc/mi
new file mode 100644
index 00000000000..38ee9aed09e
--- /dev/null
+++ b/distrib/sets/lists/misc/mi
@@ -0,0 +1,205 @@
+./usr/share/dict/README
+./usr/share/dict/eign
+./usr/share/dict/propernames
+./usr/share/dict/web2
+./usr/share/dict/web2a
+./usr/share/dict/words
+./usr/share/doc/psd/00.contents
+./usr/share/doc/psd/05.sysman/0.t
+./usr/share/doc/psd/05.sysman/1.0.t
+./usr/share/doc/psd/05.sysman/1.1.t
+./usr/share/doc/psd/05.sysman/1.2.t
+./usr/share/doc/psd/05.sysman/1.3.t
+./usr/share/doc/psd/05.sysman/1.4.t
+./usr/share/doc/psd/05.sysman/1.5.t
+./usr/share/doc/psd/05.sysman/1.6.t
+./usr/share/doc/psd/05.sysman/1.7.t
+./usr/share/doc/psd/05.sysman/2.0.t
+./usr/share/doc/psd/05.sysman/2.1.t
+./usr/share/doc/psd/05.sysman/2.2.t
+./usr/share/doc/psd/05.sysman/2.3.t
+./usr/share/doc/psd/05.sysman/2.4.t
+./usr/share/doc/psd/05.sysman/2.5.t
+./usr/share/doc/psd/05.sysman/Makefile
+./usr/share/doc/psd/05.sysman/a.t
+./usr/share/doc/psd/12.make/Makefile
+./usr/share/doc/psd/12.make/tutorial.ms
+./usr/share/doc/psd/18.gprof/Makefile
+./usr/share/doc/psd/18.gprof/abstract.me
+./usr/share/doc/psd/18.gprof/gathering.me
+./usr/share/doc/psd/18.gprof/header.me
+./usr/share/doc/psd/18.gprof/intro.me
+./usr/share/doc/psd/18.gprof/postp.me
+./usr/share/doc/psd/18.gprof/postp1.pic
+./usr/share/doc/psd/18.gprof/postp2.pic
+./usr/share/doc/psd/18.gprof/postp3.pic
+./usr/share/doc/psd/18.gprof/pres1.pic
+./usr/share/doc/psd/18.gprof/pres2.pic
+./usr/share/doc/psd/18.gprof/present.me
+./usr/share/doc/psd/18.gprof/profiling.me
+./usr/share/doc/psd/18.gprof/refs.me
+./usr/share/doc/psd/19.curses/Makefile
+./usr/share/doc/psd/19.curses/Master
+./usr/share/doc/psd/19.curses/appen.A
+./usr/share/doc/psd/19.curses/appen.B
+./usr/share/doc/psd/19.curses/appen.C
+./usr/share/doc/psd/19.curses/c_macros
+./usr/share/doc/psd/19.curses/doc.I
+./usr/share/doc/psd/19.curses/doc.II
+./usr/share/doc/psd/19.curses/doc.III
+./usr/share/doc/psd/19.curses/doc.IV
+./usr/share/doc/psd/19.curses/ex1.c
+./usr/share/doc/psd/19.curses/ex2.c
+./usr/share/doc/psd/19.curses/fns.doc
+./usr/share/doc/psd/19.curses/intro.0
+./usr/share/doc/psd/19.curses/intro.1
+./usr/share/doc/psd/19.curses/intro.2
+./usr/share/doc/psd/19.curses/intro.3
+./usr/share/doc/psd/19.curses/intro.4
+./usr/share/doc/psd/19.curses/intro.5
+./usr/share/doc/psd/19.curses/intro.6
+./usr/share/doc/psd/19.curses/life.c
+./usr/share/doc/psd/19.curses/macros
+./usr/share/doc/psd/19.curses/twinkle1.c
+./usr/share/doc/psd/19.curses/twinkle2.c
+./usr/share/doc/psd/19.curses/win_st.c
+./usr/share/doc/psd/20.ipctut/Makefile
+./usr/share/doc/psd/20.ipctut/dgramread.c
+./usr/share/doc/psd/20.ipctut/dgramsend.c
+./usr/share/doc/psd/20.ipctut/fig2.pic
+./usr/share/doc/psd/20.ipctut/fig3.pic
+./usr/share/doc/psd/20.ipctut/fig8.pic
+./usr/share/doc/psd/20.ipctut/pipe.c
+./usr/share/doc/psd/20.ipctut/socketpair.c
+./usr/share/doc/psd/20.ipctut/strchkread.c
+./usr/share/doc/psd/20.ipctut/streamread.c
+./usr/share/doc/psd/20.ipctut/streamwrite.c
+./usr/share/doc/psd/20.ipctut/tutor.me
+./usr/share/doc/psd/20.ipctut/udgramread.c
+./usr/share/doc/psd/20.ipctut/udgramsend.c
+./usr/share/doc/psd/20.ipctut/ustreamread.c
+./usr/share/doc/psd/20.ipctut/ustreamwrite.c
+./usr/share/doc/psd/21.ipc/0.t
+./usr/share/doc/psd/21.ipc/1.t
+./usr/share/doc/psd/21.ipc/2.t
+./usr/share/doc/psd/21.ipc/3.t
+./usr/share/doc/psd/21.ipc/4.t
+./usr/share/doc/psd/21.ipc/5.t
+./usr/share/doc/psd/21.ipc/Makefile
+./usr/share/doc/psd/Makefile
+./usr/share/doc/psd/Title
+./usr/share/doc/smm/00.contents
+./usr/share/doc/smm/01.setup/0.t
+./usr/share/doc/smm/01.setup/1.t
+./usr/share/doc/smm/01.setup/2.t
+./usr/share/doc/smm/01.setup/3.t
+./usr/share/doc/smm/01.setup/4.t
+./usr/share/doc/smm/01.setup/5.t
+./usr/share/doc/smm/01.setup/6.t
+./usr/share/doc/smm/01.setup/Makefile
+./usr/share/doc/smm/03.fsck/0.t
+./usr/share/doc/smm/03.fsck/1.t
+./usr/share/doc/smm/03.fsck/2.t
+./usr/share/doc/smm/03.fsck/3.t
+./usr/share/doc/smm/03.fsck/4.t
+./usr/share/doc/smm/03.fsck/Makefile
+./usr/share/doc/smm/04.quotas/Makefile
+./usr/share/doc/smm/04.quotas/quotas.ms
+./usr/share/doc/smm/05.fastfs/0.t
+./usr/share/doc/smm/05.fastfs/1.t
+./usr/share/doc/smm/05.fastfs/2.t
+./usr/share/doc/smm/05.fastfs/3.t
+./usr/share/doc/smm/05.fastfs/4.t
+./usr/share/doc/smm/05.fastfs/5.t
+./usr/share/doc/smm/05.fastfs/6.t
+./usr/share/doc/smm/05.fastfs/Makefile
+./usr/share/doc/smm/06.nfs/0.t
+./usr/share/doc/smm/06.nfs/1.t
+./usr/share/doc/smm/06.nfs/2.t
+./usr/share/doc/smm/06.nfs/Makefile
+./usr/share/doc/smm/06.nfs/ref.t
+./usr/share/doc/smm/07.lpd/0.t
+./usr/share/doc/smm/07.lpd/1.t
+./usr/share/doc/smm/07.lpd/2.t
+./usr/share/doc/smm/07.lpd/3.t
+./usr/share/doc/smm/07.lpd/4.t
+./usr/share/doc/smm/07.lpd/5.t
+./usr/share/doc/smm/07.lpd/6.t
+./usr/share/doc/smm/07.lpd/7.t
+./usr/share/doc/smm/07.lpd/Makefile
+./usr/share/doc/smm/08.sendmailop/Makefile
+./usr/share/doc/smm/08.sendmailop/op.me
+./usr/share/doc/smm/09.sendmail/Makefile
+./usr/share/doc/smm/09.sendmail/intro.me
+./usr/share/doc/smm/18.net/0.t
+./usr/share/doc/smm/18.net/1.t
+./usr/share/doc/smm/18.net/2.t
+./usr/share/doc/smm/18.net/3.t
+./usr/share/doc/smm/18.net/4.t
+./usr/share/doc/smm/18.net/5.t
+./usr/share/doc/smm/18.net/6.t
+./usr/share/doc/smm/18.net/7.t
+./usr/share/doc/smm/18.net/8.t
+./usr/share/doc/smm/18.net/9.t
+./usr/share/doc/smm/18.net/Makefile
+./usr/share/doc/smm/18.net/a.t
+./usr/share/doc/smm/18.net/b.t
+./usr/share/doc/smm/18.net/c.t
+./usr/share/doc/smm/18.net/d.t
+./usr/share/doc/smm/18.net/e.t
+./usr/share/doc/smm/18.net/f.t
+./usr/share/doc/smm/Makefile
+./usr/share/doc/smm/Title
+./usr/share/doc/usd/00.contents
+./usr/share/doc/usd/04.csh/Makefile
+./usr/share/doc/usd/04.csh/csh.1
+./usr/share/doc/usd/04.csh/csh.2
+./usr/share/doc/usd/04.csh/csh.3
+./usr/share/doc/usd/04.csh/csh.4
+./usr/share/doc/usd/04.csh/csh.a
+./usr/share/doc/usd/04.csh/csh.g
+./usr/share/doc/usd/04.csh/tabs
+./usr/share/doc/usd/07.mail/Makefile
+./usr/share/doc/usd/07.mail/mail0.nr
+./usr/share/doc/usd/07.mail/mail1.nr
+./usr/share/doc/usd/07.mail/mail2.nr
+./usr/share/doc/usd/07.mail/mail3.nr
+./usr/share/doc/usd/07.mail/mail4.nr
+./usr/share/doc/usd/07.mail/mail5.nr
+./usr/share/doc/usd/07.mail/mail6.nr
+./usr/share/doc/usd/07.mail/mail7.nr
+./usr/share/doc/usd/07.mail/mail8.nr
+./usr/share/doc/usd/07.mail/mail9.nr
+./usr/share/doc/usd/07.mail/maila.nr
+./usr/share/doc/usd/11.edit/Makefile
+./usr/share/doc/usd/11.edit/edit.vindex
+./usr/share/doc/usd/11.edit/edittut.ms
+./usr/share/doc/usd/12.vi/Makefile
+./usr/share/doc/usd/12.vi/vi.apwh.ms
+./usr/share/doc/usd/12.vi/vi.chars
+./usr/share/doc/usd/12.vi/vi.in
+./usr/share/doc/usd/12.vi/vi.summary
+./usr/share/doc/usd/13.ex/Makefile
+./usr/share/doc/usd/13.ex/ex.rm
+./usr/share/doc/usd/13.ex/ex.summary
+./usr/share/doc/usd/13.viref
+./usr/share/doc/usd/13.viref/Makefile
+./usr/share/doc/usd/13.viref/ex.cmd.roff
+./usr/share/doc/usd/13.viref/merge.awk
+./usr/share/doc/usd/13.viref/ref.so
+./usr/share/doc/usd/13.viref/set.opt.roff
+./usr/share/doc/usd/13.viref/spell.ok
+./usr/share/doc/usd/13.viref/vi.cmd.roff
+./usr/share/doc/usd/13.viref/vi.ref
+./usr/share/doc/usd/18.msdiffs/Makefile
+./usr/share/doc/usd/18.msdiffs/ms.diffs
+./usr/share/doc/usd/19.memacros/Makefile
+./usr/share/doc/usd/19.memacros/intro.me
+./usr/share/doc/usd/20.meref/Makefile
+./usr/share/doc/usd/20.meref/ref.me
+./usr/share/doc/usd/30.rogue/Makefile
+./usr/share/doc/usd/30.rogue/rogue.me
+./usr/share/doc/usd/31.trek/Makefile
+./usr/share/doc/usd/31.trek/trek.me
+./usr/share/doc/usd/Makefile
+./usr/share/doc/usd/Title
diff --git a/distrib/sets/lists/secr/md.amiga b/distrib/sets/lists/secr/md.amiga
new file mode 100644
index 00000000000..fadabe0059b
--- /dev/null
+++ b/distrib/sets/lists/secr/md.amiga
@@ -0,0 +1,2 @@
+./usr/lib/libcrypt.so.0.0
+./usr/lib/libcrypt_pic.a
diff --git a/distrib/sets/lists/secr/md.atari b/distrib/sets/lists/secr/md.atari
new file mode 100644
index 00000000000..fadabe0059b
--- /dev/null
+++ b/distrib/sets/lists/secr/md.atari
@@ -0,0 +1,2 @@
+./usr/lib/libcrypt.so.0.0
+./usr/lib/libcrypt_pic.a
diff --git a/distrib/sets/lists/secr/md.hp300 b/distrib/sets/lists/secr/md.hp300
new file mode 100644
index 00000000000..fadabe0059b
--- /dev/null
+++ b/distrib/sets/lists/secr/md.hp300
@@ -0,0 +1,2 @@
+./usr/lib/libcrypt.so.0.0
+./usr/lib/libcrypt_pic.a
diff --git a/distrib/sets/lists/secr/md.i386 b/distrib/sets/lists/secr/md.i386
new file mode 100644
index 00000000000..fadabe0059b
--- /dev/null
+++ b/distrib/sets/lists/secr/md.i386
@@ -0,0 +1,2 @@
+./usr/lib/libcrypt.so.0.0
+./usr/lib/libcrypt_pic.a
diff --git a/distrib/sets/lists/secr/md.mac68k b/distrib/sets/lists/secr/md.mac68k
new file mode 100644
index 00000000000..fadabe0059b
--- /dev/null
+++ b/distrib/sets/lists/secr/md.mac68k
@@ -0,0 +1,2 @@
+./usr/lib/libcrypt.so.0.0
+./usr/lib/libcrypt_pic.a
diff --git a/distrib/sets/lists/secr/md.pc532 b/distrib/sets/lists/secr/md.pc532
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/secr/md.pc532
diff --git a/distrib/sets/lists/secr/md.pmax b/distrib/sets/lists/secr/md.pmax
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/secr/md.pmax
diff --git a/distrib/sets/lists/secr/md.sparc b/distrib/sets/lists/secr/md.sparc
new file mode 100644
index 00000000000..fadabe0059b
--- /dev/null
+++ b/distrib/sets/lists/secr/md.sparc
@@ -0,0 +1,2 @@
+./usr/lib/libcrypt.so.0.0
+./usr/lib/libcrypt_pic.a
diff --git a/distrib/sets/lists/secr/md.sun3 b/distrib/sets/lists/secr/md.sun3
new file mode 100644
index 00000000000..fadabe0059b
--- /dev/null
+++ b/distrib/sets/lists/secr/md.sun3
@@ -0,0 +1,2 @@
+./usr/lib/libcrypt.so.0.0
+./usr/lib/libcrypt_pic.a
diff --git a/distrib/sets/lists/secr/mi b/distrib/sets/lists/secr/mi
new file mode 100644
index 00000000000..09d6b38ebc0
--- /dev/null
+++ b/distrib/sets/lists/secr/mi
@@ -0,0 +1,5 @@
+./bin/ed
+./sbin/init
+./usr/bin/bdes
+./usr/lib/libcrypt.a
+./usr/lib/libcrypt_p.a
diff --git a/distrib/sets/lists/text/md.amiga b/distrib/sets/lists/text/md.amiga
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/text/md.amiga
diff --git a/distrib/sets/lists/text/md.atari b/distrib/sets/lists/text/md.atari
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/text/md.atari
diff --git a/distrib/sets/lists/text/md.hp300 b/distrib/sets/lists/text/md.hp300
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/text/md.hp300
diff --git a/distrib/sets/lists/text/md.i386 b/distrib/sets/lists/text/md.i386
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/text/md.i386
diff --git a/distrib/sets/lists/text/md.mac68k b/distrib/sets/lists/text/md.mac68k
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/text/md.mac68k
diff --git a/distrib/sets/lists/text/md.pc532 b/distrib/sets/lists/text/md.pc532
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/text/md.pc532
diff --git a/distrib/sets/lists/text/md.pmax b/distrib/sets/lists/text/md.pmax
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/text/md.pmax
diff --git a/distrib/sets/lists/text/md.sparc b/distrib/sets/lists/text/md.sparc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/text/md.sparc
diff --git a/distrib/sets/lists/text/md.sun3 b/distrib/sets/lists/text/md.sun3
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/distrib/sets/lists/text/md.sun3
diff --git a/distrib/sets/lists/text/mi b/distrib/sets/lists/text/mi
new file mode 100644
index 00000000000..bf9aaf230c0
--- /dev/null
+++ b/distrib/sets/lists/text/mi
@@ -0,0 +1,270 @@
+./usr/bin/addftinfo
+./usr/bin/checknr
+./usr/bin/eqn
+./usr/bin/grodvi
+./usr/bin/groff
+./usr/bin/grog
+./usr/bin/grops
+./usr/bin/grotty
+./usr/bin/indxbib
+./usr/bin/lkbib
+./usr/bin/lookbib
+./usr/bin/neqn
+./usr/bin/nroff
+./usr/bin/pfbtops
+./usr/bin/pic
+./usr/bin/psbb
+./usr/bin/psroff
+./usr/bin/refer
+./usr/bin/soelim
+./usr/bin/tbl
+./usr/bin/tfmtodit
+./usr/bin/troff
+./usr/bin/vgrind
+./usr/libexec/vfontedpr
+./usr/share/groff_font/devX100-12/CB
+./usr/share/groff_font/devX100-12/CBI
+./usr/share/groff_font/devX100-12/CI
+./usr/share/groff_font/devX100-12/CR
+./usr/share/groff_font/devX100-12/DESC
+./usr/share/groff_font/devX100-12/HB
+./usr/share/groff_font/devX100-12/HBI
+./usr/share/groff_font/devX100-12/HI
+./usr/share/groff_font/devX100-12/HR
+./usr/share/groff_font/devX100-12/NB
+./usr/share/groff_font/devX100-12/NBI
+./usr/share/groff_font/devX100-12/NI
+./usr/share/groff_font/devX100-12/NR
+./usr/share/groff_font/devX100-12/S
+./usr/share/groff_font/devX100-12/TB
+./usr/share/groff_font/devX100-12/TBI
+./usr/share/groff_font/devX100-12/TI
+./usr/share/groff_font/devX100-12/TR
+./usr/share/groff_font/devX100/CB
+./usr/share/groff_font/devX100/CBI
+./usr/share/groff_font/devX100/CI
+./usr/share/groff_font/devX100/CR
+./usr/share/groff_font/devX100/DESC
+./usr/share/groff_font/devX100/HB
+./usr/share/groff_font/devX100/HBI
+./usr/share/groff_font/devX100/HI
+./usr/share/groff_font/devX100/HR
+./usr/share/groff_font/devX100/NB
+./usr/share/groff_font/devX100/NBI
+./usr/share/groff_font/devX100/NI
+./usr/share/groff_font/devX100/NR
+./usr/share/groff_font/devX100/S
+./usr/share/groff_font/devX100/TB
+./usr/share/groff_font/devX100/TBI
+./usr/share/groff_font/devX100/TI
+./usr/share/groff_font/devX100/TR
+./usr/share/groff_font/devX75-12/CB
+./usr/share/groff_font/devX75-12/CBI
+./usr/share/groff_font/devX75-12/CI
+./usr/share/groff_font/devX75-12/CR
+./usr/share/groff_font/devX75-12/DESC
+./usr/share/groff_font/devX75-12/HB
+./usr/share/groff_font/devX75-12/HBI
+./usr/share/groff_font/devX75-12/HI
+./usr/share/groff_font/devX75-12/HR
+./usr/share/groff_font/devX75-12/NB
+./usr/share/groff_font/devX75-12/NBI
+./usr/share/groff_font/devX75-12/NI
+./usr/share/groff_font/devX75-12/NR
+./usr/share/groff_font/devX75-12/S
+./usr/share/groff_font/devX75-12/TB
+./usr/share/groff_font/devX75-12/TBI
+./usr/share/groff_font/devX75-12/TI
+./usr/share/groff_font/devX75-12/TR
+./usr/share/groff_font/devX75/CB
+./usr/share/groff_font/devX75/CBI
+./usr/share/groff_font/devX75/CI
+./usr/share/groff_font/devX75/CR
+./usr/share/groff_font/devX75/DESC
+./usr/share/groff_font/devX75/HB
+./usr/share/groff_font/devX75/HBI
+./usr/share/groff_font/devX75/HI
+./usr/share/groff_font/devX75/HR
+./usr/share/groff_font/devX75/NB
+./usr/share/groff_font/devX75/NBI
+./usr/share/groff_font/devX75/NI
+./usr/share/groff_font/devX75/NR
+./usr/share/groff_font/devX75/S
+./usr/share/groff_font/devX75/TB
+./usr/share/groff_font/devX75/TBI
+./usr/share/groff_font/devX75/TI
+./usr/share/groff_font/devX75/TR
+./usr/share/groff_font/devascii/B
+./usr/share/groff_font/devascii/BI
+./usr/share/groff_font/devascii/DESC
+./usr/share/groff_font/devascii/I
+./usr/share/groff_font/devascii/R
+./usr/share/groff_font/devdvi/B
+./usr/share/groff_font/devdvi/BI
+./usr/share/groff_font/devdvi/CW
+./usr/share/groff_font/devdvi/DESC
+./usr/share/groff_font/devdvi/EX
+./usr/share/groff_font/devdvi/H
+./usr/share/groff_font/devdvi/HB
+./usr/share/groff_font/devdvi/HI
+./usr/share/groff_font/devdvi/I
+./usr/share/groff_font/devdvi/MI
+./usr/share/groff_font/devdvi/R
+./usr/share/groff_font/devdvi/S
+./usr/share/groff_font/devdvi/SA
+./usr/share/groff_font/devdvi/SB
+./usr/share/groff_font/devdvi/generate/CompileFonts
+./usr/share/groff_font/devdvi/generate/Makefile
+./usr/share/groff_font/devdvi/generate/msam.map
+./usr/share/groff_font/devdvi/generate/msbm.map
+./usr/share/groff_font/devdvi/generate/texb.map
+./usr/share/groff_font/devdvi/generate/texex.map
+./usr/share/groff_font/devdvi/generate/texi.map
+./usr/share/groff_font/devdvi/generate/texmi.map
+./usr/share/groff_font/devdvi/generate/texr.map
+./usr/share/groff_font/devdvi/generate/texsy.map
+./usr/share/groff_font/devdvi/generate/textt.map
+./usr/share/groff_font/devlatin1/B
+./usr/share/groff_font/devlatin1/BI
+./usr/share/groff_font/devlatin1/DESC
+./usr/share/groff_font/devlatin1/I
+./usr/share/groff_font/devlatin1/R
+./usr/share/groff_font/devps/AB
+./usr/share/groff_font/devps/ABI
+./usr/share/groff_font/devps/AI
+./usr/share/groff_font/devps/AR
+./usr/share/groff_font/devps/BMB
+./usr/share/groff_font/devps/BMBI
+./usr/share/groff_font/devps/BMI
+./usr/share/groff_font/devps/BMR
+./usr/share/groff_font/devps/CB
+./usr/share/groff_font/devps/CBI
+./usr/share/groff_font/devps/CI
+./usr/share/groff_font/devps/CR
+./usr/share/groff_font/devps/DESC
+./usr/share/groff_font/devps/HB
+./usr/share/groff_font/devps/HBI
+./usr/share/groff_font/devps/HI
+./usr/share/groff_font/devps/HNB
+./usr/share/groff_font/devps/HNBI
+./usr/share/groff_font/devps/HNI
+./usr/share/groff_font/devps/HNR
+./usr/share/groff_font/devps/HR
+./usr/share/groff_font/devps/NB
+./usr/share/groff_font/devps/NBI
+./usr/share/groff_font/devps/NI
+./usr/share/groff_font/devps/NR
+./usr/share/groff_font/devps/PB
+./usr/share/groff_font/devps/PBI
+./usr/share/groff_font/devps/PI
+./usr/share/groff_font/devps/PR
+./usr/share/groff_font/devps/S
+./usr/share/groff_font/devps/SS
+./usr/share/groff_font/devps/TB
+./usr/share/groff_font/devps/TBI
+./usr/share/groff_font/devps/TI
+./usr/share/groff_font/devps/TR
+./usr/share/groff_font/devps/ZCMI
+./usr/share/groff_font/devps/ZD
+./usr/share/groff_font/devps/ZDR
+./usr/share/groff_font/devps/download
+./usr/share/groff_font/devps/generate/Makefile
+./usr/share/groff_font/devps/generate/afmname
+./usr/share/groff_font/devps/generate/dingbatsmap
+./usr/share/groff_font/devps/generate/dingbatsrmap
+./usr/share/groff_font/devps/generate/lgreekmap
+./usr/share/groff_font/devps/generate/symbol.sed
+./usr/share/groff_font/devps/generate/symbolchars
+./usr/share/groff_font/devps/generate/symbolsl.afm
+./usr/share/groff_font/devps/generate/textmap
+./usr/share/groff_font/devps/prologue
+./usr/share/groff_font/devps/symbolsl.pfa
+./usr/share/groff_font/devps/text.enc
+./usr/share/groff_font/devps/zapfdr.pfa
+./usr/share/man/cat1/addftinfo.0
+./usr/share/man/cat1/checknr.0
+./usr/share/man/cat1/eqn.0
+./usr/share/man/cat1/grodvi.0
+./usr/share/man/cat1/groff.0
+./usr/share/man/cat1/grog.0
+./usr/share/man/cat1/grops.0
+./usr/share/man/cat1/grotty.0
+./usr/share/man/cat1/indxbib.0
+./usr/share/man/cat1/lkbib.0
+./usr/share/man/cat1/lookbib.0
+./usr/share/man/cat1/nroff.0
+./usr/share/man/cat1/pfbtops.0
+./usr/share/man/cat1/pic.0
+./usr/share/man/cat1/psbb.0
+./usr/share/man/cat1/refer.0
+./usr/share/man/cat1/soelim.0
+./usr/share/man/cat1/tbl.0
+./usr/share/man/cat1/tfmtodit.0
+./usr/share/man/cat1/troff.0
+./usr/share/man/cat1/vgrind.0
+./usr/share/man/cat5/groff_font.0
+./usr/share/man/cat5/groff_out.0
+./usr/share/man/cat7/groff_char.0
+./usr/share/man/cat7/groff_mm.0
+./usr/share/man/cat7/groff_mmse.0
+./usr/share/man/cat7/groff_ms.0
+./usr/share/man/cat7/mdoc.samples.0
+./usr/share/man/cat7/me.0
+./usr/share/man/cat7/mm.0
+./usr/share/man/cat7/mmse.0
+./usr/share/man/cat7/ms.0
+./usr/share/me/acm.me
+./usr/share/me/chars.me
+./usr/share/me/deltext.me
+./usr/share/me/eqn.me
+./usr/share/me/float.me
+./usr/share/me/footnote.me
+./usr/share/me/index.me
+./usr/share/me/letterhead.me
+./usr/share/me/local.me
+./usr/share/me/null.me
+./usr/share/me/refer.me
+./usr/share/me/revisions
+./usr/share/me/sh.me
+./usr/share/me/tbl.me
+./usr/share/me/thesis.me
+./usr/share/misc/eqnchar
+./usr/share/misc/man.template
+./usr/share/misc/mdoc.template
+./usr/share/misc/vgrindefs
+./usr/share/tmac/eqnrc
+./usr/share/tmac/hyphen.us
+./usr/share/tmac/man.local
+./usr/share/tmac/mm/0.MT
+./usr/share/tmac/mm/4.MT
+./usr/share/tmac/mm/5.MT
+./usr/share/tmac/mm/locale
+./usr/share/tmac/mm/ms.cov
+./usr/share/tmac/mm/se_locale
+./usr/share/tmac/mm/se_ms.cov
+./usr/share/tmac/tmac.X
+./usr/share/tmac/tmac.Xps
+./usr/share/tmac/tmac.an
+./usr/share/tmac/tmac.an.old
+./usr/share/tmac/tmac.andoc
+./usr/share/tmac/tmac.doc
+./usr/share/tmac/tmac.doc-common
+./usr/share/tmac/tmac.doc-ditroff
+./usr/share/tmac/tmac.doc-nroff
+./usr/share/tmac/tmac.doc-syms
+./usr/share/tmac/tmac.dvi
+./usr/share/tmac/tmac.e
+./usr/share/tmac/tmac.latin1
+./usr/share/tmac/tmac.m
+./usr/share/tmac/tmac.mse
+./usr/share/tmac/tmac.pic
+./usr/share/tmac/tmac.ps
+./usr/share/tmac/tmac.psatk
+./usr/share/tmac/tmac.psnew
+./usr/share/tmac/tmac.psold
+./usr/share/tmac/tmac.pspic
+./usr/share/tmac/tmac.s
+./usr/share/tmac/tmac.tty
+./usr/share/tmac/tmac.tty-char
+./usr/share/tmac/tmac.vgrind
+./usr/share/tmac/troffrc
diff --git a/distrib/sets/makeflist b/distrib/sets/makeflist
new file mode 100644
index 00000000000..04b3e39ac57
--- /dev/null
+++ b/distrib/sets/makeflist
@@ -0,0 +1,25 @@
+#!/bin/csh -f
+
+set arch=`uname -m`
+set listsdir=`pwd`/lists
+
+set TMPFILE=/tmp/_LIST.$$
+
+set lists=(base comp etc games text)
+# SPECIAL: man misc
+# EXTRA SPECIAL (not done here): secr
+
+foreach setname ($lists)
+ cat $listsdir/$setname/mi $listsdir/$setname/md.${arch} >>! $TMPFILE
+end
+
+set setname=man
+grep ${arch} $listsdir/man/md_share | \
+ cat $listsdir/$setname/mi $listsdir/$setname/md.${arch} - >>! $TMPFILE
+
+set setname=misc
+grep -v ${arch} $listsdir/man/md_share | \
+ cat $listsdir/$setname/mi $listsdir/$setname/md.${arch} - >>! $TMPFILE
+
+sort $TMPFILE
+/bin/rm $TMPFILE
diff --git a/distrib/sets/maketars b/distrib/sets/maketars
new file mode 100644
index 00000000000..3107e5d146f
--- /dev/null
+++ b/distrib/sets/maketars
@@ -0,0 +1,43 @@
+#!/bin/csh -f
+
+if (! $?RELEASEDIR) then
+ echo RELEASEDIR must be set
+ exit 1
+endif
+
+if (! $?DESTDIR) then
+ echo DESTDIR must be set
+ exit 1
+endif
+
+set arch=`uname -m`
+set listsdir=`pwd`/lists
+set tardir=$RELEASEDIR
+set fsdir=$DESTDIR
+
+cd $fsdir
+
+set lists=(base comp etc games text)
+# SPECIAL: man misc
+# EXTRA SPECIAL (not done here): secr
+
+foreach setname ($lists)
+ echo -n "${setname}: "
+ cat $listsdir/$setname/mi $listsdir/$setname/md.${arch} | sort | \
+ pax -w -d | gzip -9 > ${tardir}/$setname.tar.gz
+ echo "done."
+end
+
+set setname=man
+echo -n "${setname}: "
+grep ${arch} $listsdir/man/md_share | \
+ cat $listsdir/$setname/mi $listsdir/$setname/md.${arch} - | sort | \
+ pax -w -d | gzip -9 > ${tardir}/$setname.tar.gz
+echo "done."
+
+set setname=misc
+echo -n "${setname}: "
+grep -v ${arch} $listsdir/man/md_share | \
+ cat $listsdir/$setname/mi $listsdir/$setname/md.${arch} - | sort | \
+ pax -w -d | gzip -9 > ${tardir}/$setname.tar.gz
+echo "done."
diff --git a/distrib/sparc/install.sh b/distrib/sparc/install.sh
new file mode 100644
index 00000000000..68f1e320aed
--- /dev/null
+++ b/distrib/sparc/install.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+# $Id: install.sh,v 1.1 1995/10/18 08:37:49 deraadt Exp $
+umask 0
+
+TAR="base.tar.gz comp.tar.gz etc.tar.gz games.tar.gz man.tar.gz
+ misc.tar.gz secr.tar.gz text.tar.gz"
+
+for i in $TAR
+do
+ if [ -f $i ]; then
+ echo -n $i...
+ cat $i | gzip -d | (cd /mnt; gtar xvpf -)
+ else
+ echo skipping $i because you do not want it
+ fi
+done
+echo
+cp netbsd.id3_scsi /mnt/netbsd
+chmod 640 /mnt/netbsd; chown root.kmem /mnt/netbsd
+cd /mnt/dev; ./MAKEDEV all
+mv /mnt/etc/fstab.sd /mnt/etc/fstab
diff --git a/distrib/sun3/Makefile b/distrib/sun3/Makefile
new file mode 100644
index 00000000000..0a317598577
--- /dev/null
+++ b/distrib/sun3/Makefile
@@ -0,0 +1,5 @@
+# $NetBSD: Makefile,v 1.2 1995/10/12 21:16:53 gwr Exp $
+
+SUBDIR= miniroot ramdisk
+
+.include <bsd.subdir.mk>
diff --git a/distrib/sun3/Makefile.inc b/distrib/sun3/Makefile.inc
new file mode 100644
index 00000000000..69f3e1e8cc7
--- /dev/null
+++ b/distrib/sun3/Makefile.inc
@@ -0,0 +1,10 @@
+# $NetBSD: Makefile.inc,v 1.2 1995/10/13 16:01:02 gwr Exp $
+
+# Revision is 1.1
+REV= 11
+
+LDSTATIC= -static
+
+# Hack needed to find kernel images...
+BSDSRCDIR?= /usr/src
+SRCSYSDIR?= ${BSDSRCDIR}/sys
diff --git a/distrib/sun3/common/Make.crunch b/distrib/sun3/common/Make.crunch
new file mode 100644
index 00000000000..b89e7576c2c
--- /dev/null
+++ b/distrib/sun3/common/Make.crunch
@@ -0,0 +1,20 @@
+# $NetBSD: Make.crunch,v 1.2 1995/10/13 16:38:20 gwr Exp $
+#
+# This is included by subdirectories building a crunched binary.
+# Assume the following are already defined: TOP, CBIN
+
+CBIN?= xxx-crunched
+CRUNCHCONF= ${TOP}/common/${CBIN}.conf
+
+CLEANFILES+= ${CBIN} ${CBIN}.c ${CBIN}.cache ${CBIN}.mk ${CBIN}.syms
+CLEANFILES+= *.lo *_stub.o *_stub.c
+
+# Keep a copy that is not stripped so I can debug...
+${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
+ make -f ${CBIN}.mk all STRIP=true
+ cp -p ${CBIN} ${CBIN}.syms
+ strip ${CBIN}
+
+${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
+ crunchgen ${CRUNCHCONF}
+
diff --git a/distrib/sun3/common/Make.fsimage b/distrib/sun3/common/Make.fsimage
new file mode 100644
index 00000000000..53c19d6d192
--- /dev/null
+++ b/distrib/sun3/common/Make.fsimage
@@ -0,0 +1,42 @@
+#
+# $NetBSD: Make.fsimage,v 1.2 1995/10/13 16:38:26 gwr Exp $
+#
+
+# TOP is assumed to be defined by Makefile including this one.
+# These will be defined by it too:
+
+IMAGE?= xxx-${REV}
+CBIN?= xxx-crunched
+
+TREE?= ${.CURDIR}/${CBIN}.tree
+LISTS?= ${.CURDIR}/${CBIN}.list
+
+MOUNT_POINT?= /mnt
+DISKTYPE?= xxx-disktype
+BDEV?= /dev/rd0
+CDEV?= /dev/rd0
+
+IMAGE_DEPS?= ${CBIN}
+CLEANFILES+= ${IMAGE}.fs
+
+# These are all the parameters for the root fs:
+NBLKS?= 512
+# args: old fmt, minfree, opt, ...
+NEWFSARGS?= -O -m 0 -o space
+
+do_mount:
+ -newfs ${NEWFSARGS} -s ${NBLKS} ${CDEV} ${DISKTYPE}
+ mount ${BDEV} ${MOUNT_POINT}
+
+do_files:
+ mtree -def ${TREE} -p ${MOUNT_POINT}/ -u
+ TOPDIR=${TOP} CURDIR=${.CURDIR} \
+ OBJDIR=${.OBJDIR} TARGDIR=${MOUNT_POINT} \
+ sh ${TOP}/common/RunList.sh ${LISTS}
+
+do_umount:
+ @echo ""
+ @df -i ${MOUNT_POINT}
+ @echo ""
+ -umount ${MOUNT_POINT}
+
diff --git a/distrib/sun3/common/Makefile.inc b/distrib/sun3/common/Makefile.inc
new file mode 100644
index 00000000000..69eb1490626
--- /dev/null
+++ b/distrib/sun3/common/Makefile.inc
@@ -0,0 +1,31 @@
+#
+# $NetBSD: Makefile.inc,v 1.1.1.1 1995/10/08 23:07:45 gwr Exp $
+#
+
+# TOP is assumed to be defined by Makefile including this one.
+
+CBIN?= instbin
+COMMONDIR= ${TOP}/common
+
+MOUNT_POINT?= /mnt
+BDEV?= /dev/rd0
+DISKTYPE?= xxx-disktype
+IMAGE?= xxx-${REV}.fs
+MDEC= ${DESTDIR}/usr/mdec
+
+LISTS= ${.CURDIR}/list
+MTREE= ${.CURDIR}/mtree.conf
+
+fsimage:
+ newfs -O -m 0 -o space -i 3052 -c 60 ${BDEV} ${DISKTYPE}
+ mount ${BDEV} ${MOUNT_POINT}
+ mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u
+ TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
+ TARGDIR=${MOUNT_POINT} sh ${TOP}/Runlist.sh ${LISTS}
+ @echo ""
+ @df -i ${MOUNT_POINT}
+ @echo ""
+ -umount ${MOUNT_POINT}
+
+.include <bsd.obj.mk>
+.include <bsd.subdir.mk>
diff --git a/distrib/sun3/common/RunList.awk b/distrib/sun3/common/RunList.awk
new file mode 100644
index 00000000000..e404a702c60
--- /dev/null
+++ b/distrib/sun3/common/RunList.awk
@@ -0,0 +1,39 @@
+# $NetBSD: RunList.awk,v 1.1.1.1 1995/10/08 23:07:46 gwr Exp $
+
+BEGIN {
+ printf("cd ${CURDIR}\n");
+ printf("\n");
+}
+/^$/ || /^#/ {
+ print $0;
+ next;
+}
+$1 == "COPY" {
+ printf("echo '%s'\n", $0);
+ printf("cp %s ${TARGDIR}/%s\n", $2, $3);
+ next;
+}
+$1 == "LINK" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR}; ln %s %s)\n", $2, $3);
+ next;
+}
+$1 == "SPECIAL" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR};");
+ for (i = 2; i <= NF; i++)
+ printf(" %s", $i);
+ printf(")\n");
+ next;
+}
+{
+ printf("echo '%s'\n", $0);
+ printf("echo 'Unknown keyword \"%s\" at line %d of input.'\n", $1, NR);
+ printf("exit 1\n");
+ exit 1;
+}
+END {
+ printf("\n");
+ printf("exit 0\n");
+ exit 0;
+}
diff --git a/distrib/sun3/common/RunList.sh b/distrib/sun3/common/RunList.sh
new file mode 100644
index 00000000000..380cd2512bd
--- /dev/null
+++ b/distrib/sun3/common/RunList.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+# $NetBSD: RunList.sh,v 1.1.1.1 1995/10/08 23:07:47 gwr Exp $
+
+if [ "X$1" = "X-d" ]; then
+ SHELLCMD=cat
+ shift
+else
+ SHELLCMD="sh -e"
+fi
+
+cat "$@" |
+awk -f ${TOPDIR}/common/RunList.awk |
+${SHELLCMD}
diff --git a/distrib/sun3/common/dot.cmnutils b/distrib/sun3/common/dot.cmnutils
new file mode 100644
index 00000000000..cea610a4478
--- /dev/null
+++ b/distrib/sun3/common/dot.cmnutils
@@ -0,0 +1,110 @@
+#
+# $NetBSD: dot.cmnutils,v 1.1.1.1 1995/10/08 23:07:50 gwr Exp $
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+
+# Installation utilites (functions), to get NetBSD installed on
+# the hard disk. These are meant to be invoked from the shell prompt,
+# by people installing NetBSD.
+
+Set_tmp_dir()
+{
+ def_tmp_dir=`pwd`
+ if [ "$def_tmp_dir" = "/" -o "$def_tmp_dir" = "/mnt" ]; then
+ def_tmp_dir=/mnt/usr/distrib
+ fi
+
+ echo -n "What directory should be used to find and/or store "
+ echo "installtion"
+ echo -n "files? [$def_tmp_dir] "
+ read tmp_dir
+ if [ "$tmp_dir" = "" ]; then
+ tmp_dir=$def_tmp_dir
+ fi
+ if [ ! -d "$tmp_dir" ]; then
+ /bin/rm -rf $tmp_dir
+ mkdir -p $tmp_dir
+ fi
+}
+
+Tmp_dir()
+{
+ if [ "$tmp_dir" = "" ]; then
+ Set_tmp_dir
+ fi
+ cd $tmp_dir
+}
+
+Load_tape()
+{
+ Tmp_dir
+ echo -n "Which tape drive will you be using? [rst0] "
+ read which
+ if [ "X$which" = "X" ]; then
+ which=rst0
+ fi
+ echo -n "Insert the tape into the tape drive and hit return to "
+ echo -n "continue..."
+ read foo
+ echo "Extracting files from the tape..."
+ tar xvfp /dev/$which
+ echo "Done."
+}
+
+Extract()
+{
+ Tmp_dir
+ echo -n "Would you like to list the files as they're extracted? [n] "
+ read verbose
+ case $verbose in
+ y*|Y*)
+ tarverbose=v
+ ;;
+ *)
+ tarverbose=
+ ;;
+ esac
+ echo -n "Are you installing a '-current' snapshot? [n] "
+ read snapshot
+ case $snapshot in
+ y*|Y*)
+ snapshot=y
+ ;;
+ *)
+ snapshot=n
+ ;;
+ esac
+ if [ $snapshot = n ]
+ then
+ cat "$1".??? | gunzip | (cd / ; tar xfp$tarverbose -)
+ else
+ cat "$1".tar.gz | gunzip | (cd /mnt ; tar xfp$tarverbose -)
+ fi
+}
diff --git a/distrib/sun3/common/install.sh b/distrib/sun3/common/install.sh
new file mode 100644
index 00000000000..c687b726bb3
--- /dev/null
+++ b/distrib/sun3/common/install.sh
@@ -0,0 +1,280 @@
+#!/bin/sh
+#
+# $NetBSD: install.sh,v 1.1.1.1 1995/10/08 23:07:50 gwr Exp $
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+
+# NetBSD installation script.
+# In a perfect world, this would be a nice C program, with a reasonable
+# user interface.
+
+FSTABDIR=/mnt/etc # /mnt/etc
+#DONTDOIT=echo
+
+VERSION=1.0
+FSTAB=${FSTABDIR}/fstab
+
+getresp() {
+ read resp
+ if [ "X$resp" = "X" ]; then
+ resp=$1
+ fi
+}
+
+getvar() {
+ echo $(eval $(echo "echo \$$1"))
+}
+
+shiftvar() {
+ local - var
+ var="$1"
+ list="$(getvar $var)"
+ set -- $list
+ shift
+ setvar $var "$*"
+}
+
+getparts() {
+ disklabel $1 2>/dev/null | sed -e '/^[ ][ ][ad-p]/!d' |
+ sed -e 's,^[ ]*\([a-p]\):[ ]*[0-9]*[ ]*[0-9]*[ ][ ]*\([a-zA-Z0-9.]*\).*,\1 \2,' |
+ sed -e ':a
+ N;${s/\n/ /g;p;d;}
+ ba'
+}
+
+getdrives() {
+ local du thispart
+ for du in /dev/r${drivetype}?a; do
+ dd if=$du of=/dev/null bs=1b count=1 >/dev/null 2>&1
+ if [ $? -eq 0 ]; then
+ thisunit=`echo $du | sed -e 's,/dev/r\(...\)a,\1,g'`
+ driveunits="$driveunits $thisunit"
+ else
+ continue;
+ fi
+ setvar $thisunit "$(getparts $thisunit)"
+ export $thisunit
+ done
+ export drivenunits
+}
+
+prepdrive() {
+ echo "which drive would you like to prepare next?"
+ echo "choices are: ${driveunits}"
+ echo ""
+ getresp
+ case $resp in
+ *) ;;
+ esac
+}
+
+echo "Welcome to the NetBSD ${VERSION} installation program."
+echo ""
+echo "This program is designed to help you put NetBSD on your hard disk,"
+echo "in a simple and rational way. Its main objective is to format,"
+echo "mount and create an fstab for your root (/) and user (/usr)"
+echo "partitions."
+echo ""
+echo "As with anything which modifies your hard drive's contents, this"
+echo "program can cause SIGNIFICANT data loss, and you are advised"
+echo "to make sure your hard drive is backed up before beginning the"
+echo "installation process."
+echo ""
+echo "Default answers are displyed in brackets after the questions."
+echo "You can hit Control-C at any time to quit, but if you do so at a"
+echo "prompt, you may have to hit return. Also, quitting in the middle of"
+echo "installation may leave your system in an inconsistent state."
+echo ""
+echo -n "Proceed with installation? [n] "
+getresp "n"
+case "$resp" in
+ y*|Y*)
+ echo "scanning for the root device"
+ ;;
+ *)
+ echo '
+OK, then. Enter "halt" at the prompt to halt the machine.
+If you have set the default boot device using the "eeprom"
+command, you can use the "reboot" command now. Otherwise,
+you may need to specify a boot device for the PROM monitor.'
+ exit
+ ;;
+esac
+
+drivetype=sd
+sect_fwd=""
+
+# find out what units are possible for that disk, and query the user.
+getdrives
+for du in $driveunits; do
+ set -- $(getvar $du)
+ if [ $# -ge 2 -a "$1" = "a" -a "`echo $2 | sed -e 's,.*BSD.*,BSD,'`" = "BSD" ]; then
+ rdev=$du
+ fi
+done
+
+echo ""
+echo "The root device you have chosen is on: ${rdev}"
+echo ""
+# driveunits=`ls /dev/${drivetype}?a | sed -e 's,/dev/\(...\)a,\1,g'`
+if [ "X${driveunits}" = "X" ]; then
+ echo "FATAL ERROR:"
+ echo "No devices for disks of type '${drivetype}'."
+ echo "This is probably a bug in the install disks."
+ echo "Exiting install program."
+ exit
+fi
+
+echo ""
+echo "THIS IS YOUR LAST CHANCE!!!"
+echo ""
+echo "(answering yes will format your root partition on $rdev)"
+echo -n "Are you SURE you want NetBSD installed on your hard drive? (yes/no) "
+answer=""
+while [ "$answer" = "" ]; do
+ getresp
+ case $resp in
+ yes|YES)
+ echo ""
+ answer=yes
+ ;;
+ no|NO)
+ echo '
+OK, then. enter "halt" or "reboot" at the prompt.'
+ exit
+ ;;
+ *)
+ echo -n "I want a yes or no answer... well? "
+ ;;
+ esac
+done
+echo "Initializing / (root) filesystem, and mounting..."
+$DONTDOIT newfs /dev/r${rdev}a $name
+$DONTDOIT mount_ffs /dev/${rdev}a /mnt
+echo ""
+echo -n "Creating a fstab..."
+mkdir -p $FSTABDIR
+echo "/dev/${rdev}a / ffs rw 1 1" > $FSTAB
+
+# get rid of this partition
+shiftvar $rdev
+shiftvar $rdev
+
+echo ""
+echo "Now lets setup your /usr file system"
+echo "(Once a valid input for drive and partition is seen"
+echo "it will be FORMATTED and inserted in the fstab.)"
+while [ "X$usrpart" = "X" ]; do
+ resp=""
+ drivename=""
+ while [ "X$resp" = "X" ]; do
+ echo "choices: $driveunits"
+ echo "which drive do you want /usr on?"
+ getresp
+ set -- $driveunits
+ while [ $# -gt 0 ]; do
+ if [ "X$resp" = "X$1" ]; then
+ drivename=$1
+ break;
+ else
+ shift
+ fi
+ done
+ if [ "X$drivename" != "X" ]; then
+ break
+ fi
+ done
+
+ usrpart=""
+ echo "You have selected $drivename"
+ echo "here is a list of partitions on $drivename"
+ disklabel $drivename 2>/dev/null | sed -e '/^[ ][ ][ad-p]:/p;/^#[ \t]*size/p;d'
+ echo "which partition would you like to format and have"
+ echo -n "mounted as /usr? (supply the letter): "
+ getresp
+ if [ "X$resp" = "X" ]; then
+ continue;
+ fi
+
+ list=$(getvar $drivename)
+ set -- $list
+ while [ $# -gt 0 ]; do
+ if [ "$resp" = "$1" ]; then
+ if [ "`echo $2 | sed -e 's,.*BSD.*,BSD,'`" != "BSD" ]; then
+ echo ""
+ echo -n "$drivename$resp is of type $2 which is not"
+ echo " a BSD filesystem type"
+ break
+ fi
+ usrpart=$drivename$resp
+ break
+ else
+ shift
+ shift
+ fi
+ done
+ if [ "X$usrpart" = "X" ]; then
+ echo "$resp is not a valid input."
+ echo ""
+ fi
+done
+
+echo ""
+echo "Initializing /usr filesystem, and mounting..."
+$DONTDOIT newfs /dev/r${usrpart} $name
+$DONTDOIT mkdir -p /mnt/usr
+$DONTDOIT mount_ffs /dev/${usrpart} /mnt/usr
+echo ""
+echo -n "Adding to fstab..."
+echo "/dev/${usrpart} /usr ffs rw 1 2" >> $FSTAB
+sync
+echo " done."
+
+echo '
+You might want to set the PROM default boot device.
+The current settings can be examined using:
+ eeprom bootdev
+ eeprom default_boot
+and they can be modified by adding "=value" i.e.:
+ eeprom bootdev=sd(0,0,0)
+ eeprom default_boot=true
+'
+
+echo '
+OK! The preliminary work of setting up your disk is now complete,
+and you can install the actual NetBSD software.
+
+Right now, your root is mounted on /mnt and your usr on /mnt/usr.
+You should consult the installation notes to determine how to load
+and install the NetBSD distribution sets, and how to configure your
+system when you are done.
+
+GOOD LUCK!
+'
diff --git a/distrib/sun3/common/mini_bin.list b/distrib/sun3/common/mini_bin.list
new file mode 100644
index 00000000000..0d10ae1d43b
--- /dev/null
+++ b/distrib/sun3/common/mini_bin.list
@@ -0,0 +1,39 @@
+#
+# $NetBSD: mini_bin.list,v 1.1.1.1 1995/10/08 23:07:48 gwr Exp $
+#
+
+# miniroot files from /bin:
+
+# Note: /bin/rcp is handled in mini_usr.list (crunched with rsh)
+# Everything else here is just copied from ${DESTDIR}
+
+COPY ${DESTDIR}/bin/cat bin
+COPY ${DESTDIR}/bin/chmod bin
+COPY ${DESTDIR}/bin/cp bin
+# COPY ${DESTDIR}/bin/csh bin
+COPY ${DESTDIR}/bin/date bin
+COPY ${DESTDIR}/bin/dd bin
+COPY ${DESTDIR}/bin/df bin
+COPY ${DESTDIR}/bin/echo bin
+COPY ${DESTDIR}/bin/ed bin
+COPY ${DESTDIR}/bin/expr bin
+COPY ${DESTDIR}/bin/kill bin
+COPY ${DESTDIR}/bin/ln bin
+COPY ${DESTDIR}/bin/ls bin
+COPY ${DESTDIR}/bin/mkdir bin
+COPY ${DESTDIR}/bin/mt bin
+COPY ${DESTDIR}/bin/mv bin
+COPY ${DESTDIR}/bin/pax bin
+COPY ${DESTDIR}/bin/ps bin
+COPY ${DESTDIR}/bin/pwd bin
+# COPY ${DESTDIR}/bin/rcp # See mini_usr.list
+COPY ${DESTDIR}/bin/rm bin
+
+COPY ${DESTDIR}/bin/rmdir bin
+COPY ${DESTDIR}/bin/sh bin
+COPY ${DESTDIR}/bin/stty bin
+COPY ${DESTDIR}/bin/sync bin
+
+COPY ${DESTDIR}/bin/test bin
+LINK bin/test bin/[
+
diff --git a/distrib/sun3/common/mini_sbin.list b/distrib/sun3/common/mini_sbin.list
new file mode 100644
index 00000000000..9325fa7ef0a
--- /dev/null
+++ b/distrib/sun3/common/mini_sbin.list
@@ -0,0 +1,38 @@
+#
+# $NetBSD: mini_sbin.list,v 1.1.1.1 1995/10/08 23:07:50 gwr Exp $
+#
+
+# XXX - Need these? ping,
+
+# miniroot files from /sbin:
+
+COPY ${DESTDIR}/sbin/disklabel sbin
+COPY ${DESTDIR}/sbin/dmesg sbin
+
+COPY ${DESTDIR}/sbin/edlabel sbin
+
+COPY ${DESTDIR}/sbin/fsck sbin
+COPY ${DESTDIR}/sbin/ifconfig sbin
+COPY ${DESTDIR}/sbin/init sbin
+COPY ${DESTDIR}/sbin/mknod sbin
+
+COPY ${DESTDIR}/sbin/mount sbin
+COPY ${DESTDIR}/sbin/mount_cd9660 sbin
+COPY ${DESTDIR}/sbin/mount_ffs sbin
+LINK sbin/mount_ffs sbin/mount_ufs
+
+COPY ${DESTDIR}/sbin/mount_nfs sbin
+COPY ${DESTDIR}/sbin/newfs sbin
+COPY ${DESTDIR}/sbin/ping sbin
+COPY ${DESTDIR}/sbin/reboot sbin
+LINK sbin/reboot sbin/halt
+
+COPY ${DESTDIR}/sbin/restore sbin
+LINK sbin/restore sbin/rrestore
+
+COPY ${DESTDIR}/sbin/route sbin
+COPY ${DESTDIR}/sbin/shutdown sbin
+COPY ${DESTDIR}/sbin/slattach sbin
+COPY ${DESTDIR}/sbin/swapon sbin
+COPY ${DESTDIR}/sbin/umount sbin
+
diff --git a/distrib/sun3/common/mini_usr.conf b/distrib/sun3/common/mini_usr.conf
new file mode 100644
index 00000000000..46223f0608c
--- /dev/null
+++ b/distrib/sun3/common/mini_usr.conf
@@ -0,0 +1,25 @@
+#
+# $NetBSD: mini_usr.conf,v 1.1.1.1 1995/10/08 23:07:50 gwr Exp $
+#
+# common/mini_usr.conf
+#
+# The only real purpose of this crunched binary is to
+# provide statically linked versions of some programs
+# that would normally reside in usr/bin or usr/sbin.
+# A few related ones are thrown in to save space:
+# chgrp, rcp
+#
+
+srcdirs /usr/src/bin /usr/src/sbin /usr/src/usr.bin /usr/src/usr.sbin
+
+progs chown chroot cksum cmp eeprom ftp more printf
+progs rcp rsh sed strings tftp tip update
+
+ln chown chgrp
+
+# These are linked -static so they are not needed here.
+# srcdirs /usr/src/gnu/usr.bin
+# progs gzip, tar
+# ln gzip gzcat gunzip
+
+libs -ltermcap
diff --git a/distrib/sun3/common/mini_usr.list b/distrib/sun3/common/mini_usr.list
new file mode 100644
index 00000000000..268a18569bf
--- /dev/null
+++ b/distrib/sun3/common/mini_usr.list
@@ -0,0 +1,42 @@
+#
+# $NetBSD: mini_usr.list,v 1.1.1.1 1995/10/08 23:07:46 gwr Exp $
+#
+
+# copy the crunched binary, link to it, and kill it
+
+COPY ${OBJDIR}/mini_usr mini_usr
+
+# Note: On the miniroot, /usr is part of the root fs,
+# so we can just make a link for /bin/rcp
+LINK mini_usr bin/rcp
+
+# usr/sbin:
+
+LINK mini_usr usr/sbin/chown
+LINK mini_usr usr/sbin/chroot
+LINK mini_usr usr/sbin/eeprom
+LINK mini_usr usr/sbin/update
+
+# usr/bin:
+
+LINK mini_usr usr/bin/chgrp
+LINK mini_usr usr/bin/cksum
+LINK mini_usr usr/bin/cmp
+LINK mini_usr usr/bin/ftp
+LINK mini_usr usr/bin/more
+LINK mini_usr usr/bin/printf
+LINK mini_usr usr/bin/rsh
+LINK mini_usr usr/bin/sed
+LINK mini_usr usr/bin/strings
+LINK mini_usr usr/bin/tftp
+LINK mini_usr usr/bin/tip
+
+SPECIAL rm mini_usr
+
+# These are linked statically, so just copy from ${DESTDIR}:
+
+COPY ${DESTDIR}/usr/bin/tar usr/bin
+COPY ${DESTDIR}/usr/bin/gzip usr/bin
+LINK usr/bin/gzip usr/bin/gunzip
+LINK usr/bin/gzip usr/bin/gzcat
+
diff --git a/distrib/sun3/common/miniroot.list b/distrib/sun3/common/miniroot.list
new file mode 100644
index 00000000000..008b928a31f
--- /dev/null
+++ b/distrib/sun3/common/miniroot.list
@@ -0,0 +1,41 @@
+# $NetBSD: miniroot.list,v 1.1.1.1 1995/10/08 23:07:48 gwr Exp $
+
+# From usr/mdec:
+COPY ${DESTDIR}/usr/mdec/bootxx usr/mdec
+COPY ${DESTDIR}/usr/mdec/installboot usr/mdec
+COPY ${DESTDIR}/usr/mdec/netboot usr/mdec
+COPY ${DESTDIR}/usr/mdec/ufsboot usr/mdec
+LINK usr/mdec/ufsboot ufsboot
+# XXX - How to do installboot?
+
+# various files that we need in /etc for the install
+COPY ${DESTDIR}/etc/disktab etc
+COPY ${DESTDIR}/etc/group etc
+COPY ${DESTDIR}/etc/master.passwd etc
+COPY ${DESTDIR}/etc/passwd etc
+COPY ${DESTDIR}/etc/protocols etc
+COPY ${DESTDIR}/etc/pwd.db etc
+COPY ${DESTDIR}/etc/services etc
+COPY ${DESTDIR}/etc/spwd.db etc
+
+# copy the MAKEDEV script and make some devices
+COPY ${DESTDIR}/dev/MAKEDEV dev/MAKEDEV
+SPECIAL cd dev; sh MAKEDEV std rd0 sd0 sd2 st0
+SPECIAL /bin/rm dev/MAKEDEV
+SPECIAL mkfifo dev/pipe
+
+# and the common installation tools
+COPY ${TOPDIR}/common/dot.cmnutils .cmnutils
+
+# the disktab explanation file (XXX need this?)
+# COPY ${TOPDIR}/common/mr.disktab etc/disktab.preinstall
+
+# and the miniroot installation tools
+COPY ${TOPDIR}/common/mr.instutils .instutils
+COPY ${TOPDIR}/common/mr.profile .profile
+COPY ${TOPDIR}/common/mr.termcap usr/share/misc/termcap
+
+# and the "install" command
+COPY ${TOPDIR}/common/install.sh install
+SPECIAL chmod 755 install
+
diff --git a/distrib/sun3/common/miniroot.tree b/distrib/sun3/common/miniroot.tree
new file mode 100644
index 00000000000..9e66a282636
--- /dev/null
+++ b/distrib/sun3/common/miniroot.tree
@@ -0,0 +1,74 @@
+#
+# $NetBSD: miniroot.tree,v 1.1.1.1 1995/10/08 23:07:47 gwr Exp $
+#
+
+/set type=dir uname=root gname=wheel mode=0755
+# .
+.
+
+# ./bin
+bin
+# ./bin
+..
+
+# ./dev
+dev
+# ./dev
+..
+
+# ./etc
+etc
+# ./etc
+..
+
+# ./mnt
+mnt
+# ./mnt
+..
+
+# ./mnt2
+mnt2
+# ./mnt2
+..
+
+# ./sbin
+sbin
+# ./sbin
+..
+
+# ./tmp
+tmp
+# ./tmp
+..
+
+# ./usr
+usr
+
+# ./usr/bin
+bin
+# ./usr/bin
+..
+
+# ./usr/mdec
+mdec
+# ./usr/mdec
+..
+
+# ./usr/sbin
+sbin
+# ./usr/sbin
+..
+
+# ./usr/share
+share
+
+# ./usr/share/misc
+misc
+# ./usr/share/misc
+..
+
+# ./usr/share
+..
+
+# ./usr
+..
diff --git a/distrib/sun3/common/mr.disktab b/distrib/sun3/common/mr.disktab
new file mode 100644
index 00000000000..91768474fad
--- /dev/null
+++ b/distrib/sun3/common/mr.disktab
@@ -0,0 +1,32 @@
+#
+# $NetBSD: mr.disktab,v 1.1.1.1 1995/10/08 23:07:47 gwr Exp $
+#
+# Disk geometry and partition layout tables.
+# Key:
+# dt controller type
+# ty type of disk (fixed, removeable, simulated)
+# d[0-4] drive-type-dependent parameters
+# ns #sectors/track
+# nt #tracks/cylinder
+# nc #cylinders/disk
+# sc #sectors/cylinder, nc*nt default
+# su #sectors/unit, sc*nc default
+# se sector size, DEV_BSIZE default
+# rm rpm, 3600 default
+# sf supports bad144-style bad sector forwarding
+# sk sector skew per track, default 0
+# cs sector skew per cylinder, default 0
+# hs headswitch time, default 0
+# ts one-cylinder seek time, default 0
+# il sector interleave (n:1), 1 default
+# bs boot block size, default BBSIZE
+# sb superblock size, default SBSIZE
+# o[a-h] partition offsets in sectors
+# p[a-h] partition sizes in sectors
+# b[a-h] partition block sizes in bytes
+# f[a-h] partition fragment sizes in bytes
+# t[a-h] partition types (filesystem, swap, etc)
+#
+# All partition sizes reserve space for bad sector tables.
+# (5 cylinders needed for maintenance + replacement sectors)
+#
diff --git a/distrib/sun3/common/mr.etc.rc b/distrib/sun3/common/mr.etc.rc
new file mode 100644
index 00000000000..272302f54b3
--- /dev/null
+++ b/distrib/sun3/common/mr.etc.rc
@@ -0,0 +1,9 @@
+#!/bin/sh
+# $NetBSD: mr.etc.rc,v 1.2 1995/10/13 16:38:27 gwr Exp $
+
+# This is run by /sbin/init as:
+# /bin/sh /etc/rc
+# Just force init to go single-user...
+
+echo "/etc/rc: miniroot forces single-user mode..."
+exit 1
diff --git a/distrib/sun3/common/mr.instutils b/distrib/sun3/common/mr.instutils
new file mode 100644
index 00000000000..9d509f857fe
--- /dev/null
+++ b/distrib/sun3/common/mr.instutils
@@ -0,0 +1,148 @@
+#
+# $NetBSD: mr.instutils,v 1.1.1.1 1995/10/08 23:07:46 gwr Exp $
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+
+# Installation configuration utilites (functions), to get NetBSD configured
+# reasonably once it is installed on the hard disk. These are meant to be
+# invoked from the shell prompt, by people installing NetBSD.
+
+Configure()
+{
+ DEV=/mnt/dev
+ ETC=/mnt/etc
+
+ echo "You will now be prompted for information about this"
+ echo "machine. If you hit return, the default answer (in"
+ echo "brackets) will be used."
+
+ echo ""
+ echo -n "What is this machine's hostname? [unknown.host.domain] "
+ read hname
+ if [ "$hname" = "" ]; then
+ hname=unknown.host.domain
+ fi
+ echo $hname > ${ETC}/myname
+ proto_domain=`echo $hname | sed -e 's/[^.]*\.//'`
+
+ echo ""
+ echo "What domain is this machine in (this is NOT its YP"
+ echo -n "domain name)? [$proto_domain] "
+ read dname
+ if [ "$dname" = "" ]; then
+ dname=$proto_domain
+ fi
+
+ echo ""
+ if [ -e ${ETC}/sendmail.cf ]; then
+ echo "WARNING: A default sendmail.cf exists, and probably"
+ echo "needs to be tuned and/or replaced, to work properly at"
+ echo "your site!"
+ else
+ echo "WARNING: No default sendmail.cf installed. Did you"
+ echo "forget to install the 'etc' distribution?"
+ fi
+
+ echo "127.0.0.1 localhost localhost.$dname" > ${ETC}/hosts
+
+ echo ""
+ echo -n "Does this machine have an ethernet interface? [y] "
+ read resp
+ case "$resp" in
+ n*)
+ ;;
+ *)
+ intf=
+ while [ "$intf" = "" ]; do
+ echo -n "What is the primary interface name "
+ echo -n "(e.g. ed0, ep0, etc)? "
+ read intf
+ done
+ echo -n "What is the hostname for this interface? [$hname] "
+ read ifname
+ if [ "$ifname" = "" ]; then
+ ifname=$hname
+ fi
+ ifaddr=
+ while [ "$ifaddr" = "" ]; do
+ echo -n "What is the IP address associated with "
+ echo -n "interface ${intf}? "
+ read ifaddr
+ done
+ echo "$ifaddr $ifname `echo $ifname | sed -e s/\.$dname//`" \
+ >> ${ETC}/hosts
+
+ echo -n "Does this interface have a special netmask? [n] "
+ read resp
+ case "$resp" in
+ y*)
+ echo -n "What is the netmask? [0xffffff00] "
+ read ifnetmask
+ if [ "$ifnetmask" = "" ]; then
+ ifnetmask=0xffffff00
+ fi
+ ;;
+ *)
+ ifnetmask=
+ ;;
+ esac
+
+ echo -n "Does this interface need additional flags? [n] "
+ read resp
+ case "$resp" in
+ y*)
+ echo -n "What flags? [link0] "
+ read ifflags
+ if [ "$ifflags" = "" ]; then
+ ifflags=link0
+ fi
+ ;;
+ *)
+ ifflags=
+ ;;
+ esac
+ echo "inet $ifname $ifnetmask $ifflags" > ${ETC}/hostname.$intf
+
+ echo ""
+ echo -n "WARNING: if you have any more ethernet interfaces, "
+ echo "you will have to configure"
+ echo -n "them by hand. Read the comments in /etc/netstart to"
+ echo "learn how to do this."
+ ;;
+ esac
+
+ echo ""
+ echo -n "Making device nodes..."
+ cd ${DEV}
+ sh MAKEDEV all
+ echo " done."
+
+ sync
+}
diff --git a/distrib/sun3/common/mr.profile b/distrib/sun3/common/mr.profile
new file mode 100644
index 00000000000..8aa3bafd9cc
--- /dev/null
+++ b/distrib/sun3/common/mr.profile
@@ -0,0 +1,52 @@
+#
+# $NetBSD: mr.profile,v 1.1.1.1 1995/10/08 23:07:47 gwr Exp $
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+#
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin:/
+export PATH
+TERM=ansi
+export TERM
+
+# set up some sane defaults
+echo 'erase ^?, werase ^H, kill ^U, intr ^C'
+stty newcrt werase '^H' intr '^C' kill '^U' erase '^?'
+echo ''
+
+# start running update, so that installed software is written as it goes.
+update
+
+# pull in the function definitions that people will use from the shell prompt.
+. /.cmnutils
+. /.instutils
+
+# run the installation script.
+umask 022
+install
diff --git a/distrib/sun3/common/mr.termcap b/distrib/sun3/common/mr.termcap
new file mode 100644
index 00000000000..360e98bcfc7
--- /dev/null
+++ b/distrib/sun3/common/mr.termcap
@@ -0,0 +1,91 @@
+#
+# $NetBSD: mr.termcap,v 1.1.1.1 1995/10/08 23:07:47 gwr Exp $
+#
+
+#
+# Customized for installation on Sun machines.
+#
+
+dumb:\
+ :am:\
+ :co#80:\
+ :bl=^G:cr=^M:do=^J:sf=^J:
+unknown:\
+ :gn:\
+ :tc=dumb:
+other|none of the above, but not exactly unknown:\
+ :am:gn:\
+ :co#80:\
+ :cl=^M^J:do=^J:ho=^M:
+
+arpanet|bussiplexer|dialup|ethernet|network|net|patch|plugboard|switch|network switch or dialup:\
+ :tc=unknown:
+lpr|printer|print|printing|line printer:\
+ :hc:os:\
+ :co#132:li#66:\
+ :bl=^G:cr=^M:do=^J:ff=^L:le=^H:sf=^J:
+
+#### ANSI terminals and terminal emulators
+#
+# See near the end of this file for details on ANSI conformance.
+# Don't mess with these entries! Lots of other entries depend on them!
+#
+
+# (ansi: changed ":pt:" to ":it#8:" -- esr)
+ansi|any ansi terminal with pessimistic assumptions:\
+ :am:bs:\
+ :co#80:it#8:li#24:\
+ :ce=\E[K:cl=\E[;H\E[2J:cm=\E[%i%d;%dH:do=\E[B:\
+ :ho=\E[H:le=\E[D:nd=\E[C:up=\E[A:
+#
+vt100|dec-vt100|vt100-am|vt100am|dec vt100:\
+ :bl=^G:cr=^M:it#8:\
+ :do=^J:co#80:li#24:cl=50\E[;H\E[2J:sf=2*\ED:\
+ :le=^H:bs:am:cm=5\E[%i%d;%dH:nd=2\E[C:up=2\E[A:cb=3\E[1K:\
+ :ce=3\E[K:cd=50\E[J:so=2\E[7m:se=2\E[m:us=2\E[4m:ue=2\E[m:\
+ :md=2\E[1m:mr=2\E[7m:mb=2\E[5m:me=2\E[m:is=\E[1;24r\E[24;1H:\
+ :if=/usr/share/tabset/vt100:\
+ :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:ks=\E[?1h\E=:ke=\E[?1l\E>:\
+ :ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:kb=^H:\
+ :ho=\E[H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:pt:sr=2*\EM:vt#3:xn:\
+ :sc=\E7:rc=\E8:cs=\E[%i%d;%dr:
+#
+sun|Sun Microsystems Workstation console:\
+ :am:bs:km:mi:ms:pt:\
+ :co#80:it#8:li#34:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:al=\E[L:\
+ :bl=^G:cd=\E[J:ce=\E[K:cl=^L:cm=\E[%i%d;%dH:cr=^M:\
+ :dc=\E[P:dl=\E[M:do=\E[B:ei=:ic=\E[@:im=:is=\E[1r:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kd=\E[B:kh=\E[H:\
+ :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:nd=\E[C:rs=\E[1r:\
+ :se=\E[m:sf=^J:so=\E[7m:ta=^I:up=\E[A:
+#
+xterm|vs100|xterm terminal emulator (X11R6 Window System):\
+ :am:bs:km:mi:ms:pt:xn:xo:\
+ :co#80:it#8:li#65:\
+ :@7=\E[[:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:F1=\E[23~:\
+ :F2=\E[24~:IC=\E[%d@:LE=\E[%dD:UP=\E[%dA:\
+ :ac=++\054\054..00II--``aaffgghhjjkkllmmnnooqqssttuuvvwwxx~~:\
+ :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
+ :ct=\E[3k:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\
+ :ic=\E[@:im=\E[4h:\
+ :is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\
+ :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
+ :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\
+ :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:\
+ :ke=\E[?1l\E>:kh=\E[@:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
+ :ku=\EOA:le=^H:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\
+ :r2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E<:\
+ :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\
+ :te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:u6=\E[%d;%dR:\
+ :u7=\E[6n:u8=\E[?1;2c:u9=\E[c:ue=\E[m:up=\E[A:\
+ :us=\E[4m:
+xterm24|vs100-24|xterm terminal emulator (24 lines) (X11R6 window system):\
+ :co#80:li#24:\
+ :tc=xterm:
+xterm25|vs100-25|xterm terminal emulator (25 lines) (X11R6 window system):\
+ :co#80:li#24:\
+ :tc=xterm:
+xterms|vs100s|xterm terminal emulator (small) (X11R6 window system):\
+ :tc=xterm24:
diff --git a/distrib/sun3/common/ramdisk.list b/distrib/sun3/common/ramdisk.list
new file mode 100644
index 00000000000..3d8e29ec80a
--- /dev/null
+++ b/distrib/sun3/common/ramdisk.list
@@ -0,0 +1,21 @@
+# $NetBSD: ramdisk.list,v 1.1.1.1 1995/10/08 23:07:46 gwr Exp $
+
+# copy the MAKEDEV script and make some devices
+COPY ${DESTDIR}/dev/MAKEDEV dev/MAKEDEV
+SPECIAL cd dev; sh MAKEDEV std rd0 sd0 sd2 st0
+SPECIAL /bin/rm dev/MAKEDEV
+SPECIAL mkfifo dev/pipe
+SPECIAL ln -s . usr
+
+# various files that we need in /etc for the install
+
+COPY ${TOPDIR}/common/rd.disktab etc/disktab
+COPY ${TOPDIR}/common/rd.fstab etc/fstab
+COPY ${TOPDIR}/common/rd.protocols etc/protocols
+COPY ${TOPDIR}/common/rd.services etc/services
+COPY ${TOPDIR}/common/rd.passwd etc/passwd
+
+# and the RC file
+COPY ${TOPDIR}/common/rd.sshrc .sshrc
+COPY ${TOPDIR}/common/rd.welcome .welcome
+
diff --git a/distrib/sun3/common/ramdisk.tree b/distrib/sun3/common/ramdisk.tree
new file mode 100644
index 00000000000..a242e6aa48b
--- /dev/null
+++ b/distrib/sun3/common/ramdisk.tree
@@ -0,0 +1,39 @@
+#
+# $NetBSD: ramdisk.tree,v 1.1.1.1 1995/10/08 23:07:48 gwr Exp $
+#
+
+/set type=dir uname=root gname=wheel mode=0755
+# .
+.
+
+# ./bin
+bin
+# ./bin
+..
+
+# ./dev
+dev
+# ./dev
+..
+
+# ./etc
+etc
+# ./etc
+..
+
+# ./mnt
+mnt
+# ./mnt
+..
+
+# ./sbin
+sbin
+# ./sbin
+..
+
+# ./tmp
+tmp
+# ./tmp
+..
+
+# ./usr will be a link to root
diff --git a/distrib/sun3/common/rd.disktab b/distrib/sun3/common/rd.disktab
new file mode 100644
index 00000000000..76067644074
--- /dev/null
+++ b/distrib/sun3/common/rd.disktab
@@ -0,0 +1,2 @@
+# $NetBSD: rd.disktab,v 1.2 1995/10/13 16:38:29 gwr Exp $
+# The ramdisk has no need for disktab (yet)
diff --git a/distrib/sun3/common/rd.fstab b/distrib/sun3/common/rd.fstab
new file mode 100644
index 00000000000..78bfa72a8b0
--- /dev/null
+++ b/distrib/sun3/common/rd.fstab
@@ -0,0 +1,2 @@
+# $NetBSD: rd.fstab,v 1.2 1995/10/13 16:38:31 gwr Exp $
+/dev/rd0 / ufs rw 1 1
diff --git a/distrib/sun3/common/rd.passwd b/distrib/sun3/common/rd.passwd
new file mode 100644
index 00000000000..b524734954a
--- /dev/null
+++ b/distrib/sun3/common/rd.passwd
@@ -0,0 +1 @@
+root::0:0:NetBSD RAM-disk root:/root:/bin/sh
diff --git a/distrib/sun3/common/rd.protocols b/distrib/sun3/common/rd.protocols
new file mode 100644
index 00000000000..0a0432edded
--- /dev/null
+++ b/distrib/sun3/common/rd.protocols
@@ -0,0 +1,6 @@
+#
+# etc/protocols (ramdisk version)
+# $NetBSD: rd.protocols,v 1.1.1.1 1995/10/08 23:07:49 gwr Exp $
+#
+ip 0 IP
+icmp 1 ICMP
diff --git a/distrib/sun3/common/rd.services b/distrib/sun3/common/rd.services
new file mode 100644
index 00000000000..15e200020c7
--- /dev/null
+++ b/distrib/sun3/common/rd.services
@@ -0,0 +1,56 @@
+#
+# etc/services (ramdisk version)
+# $NetBSD: rd.services,v 1.1.1.1 1995/10/08 23:07:49 gwr Exp $
+#
+tcpmux 1/tcp
+echo 7/tcp
+echo 7/udp
+discard 9/tcp sink null
+discard 9/udp sink null
+systat 11/tcp users
+daytime 13/tcp
+daytime 13/udp
+netstat 15/tcp
+chargen 19/tcp ttytst source
+chargen 19/udp ttytst source
+ftp-data 20/tcp
+ftp 21/tcp
+telnet 23/tcp
+smtp 25/tcp mail
+time 37/tcp timserver
+time 37/udp timserver
+nameserver 42/tcp name # IEN 116
+whois 43/tcp nicname
+domain 53/tcp nameserver
+domain 53/udp nameserver
+bootps 67/udp
+bootpc 68/udp
+tftp 69/udp
+#
+rje 77/tcp netrjs
+finger 79/tcp
+link 87/tcp ttylink
+kerberos 88/tcp krb5 # Kerberos v5
+kerberos 88/udp
+supdup 95/tcp
+# 100 - reserved
+hostnames 101/tcp hostname
+iso-tsap 102/tcp tsap
+#
+sunrpc 111/tcp
+sunrpc 111/udp
+
+#
+# UNIX specific services
+#
+exec 512/tcp
+biff 512/udp comsat
+login 513/tcp
+who 513/udp whod
+shell 514/tcp cmd
+syslog 514/udp
+printer 515/tcp spooler
+talk 517/udp
+ntalk 518/udp
+route 520/udp router routed
+
diff --git a/distrib/sun3/common/rd.sshrc b/distrib/sun3/common/rd.sshrc
new file mode 100644
index 00000000000..1964fc43814
--- /dev/null
+++ b/distrib/sun3/common/rd.sshrc
@@ -0,0 +1,4 @@
+# .sshrc
+# $NetBSD: rd.sshrc,v 1.2 1995/10/13 16:38:34 gwr Exp $
+path /sbin:/bin
+run cat /.welcome
diff --git a/distrib/sun3/common/rd.welcome b/distrib/sun3/common/rd.welcome
new file mode 100644
index 00000000000..b0600385aa5
--- /dev/null
+++ b/distrib/sun3/common/rd.welcome
@@ -0,0 +1,24 @@
+
+ Welcome to the NetBSD/sun3 RAMDISK root!
+
+This environment is designed to do only three things:
+1: Partititon your disk (use the command: edlabel /dev/rsd0c)
+2: Copy a miniroot image into the swap partition (/dev/rsd0b)
+3: Reboot (using the swap partition, i.e. /dev/sd?b).
+
+Copying the miniroot can be done several ways, allowing
+the source of the miniroot image to be on any of these:
+ boot tape, NFS server, TFTP server, rsh server
+
+The easiest is loading from tape, which is done as follows:
+ mt -f /dev/nrst0 rewind
+ mt -f /dev/nrst0 fsf 1
+ dd bs=16k if=/dev/nrst0 of=/dev/rsd0b
+(For help with other methods, please see the install notes.)
+
+To reboot using the swap partition, first use "halt",
+then at the PROM monitor prompt use a command like:
+ b sd(0,0,1)netbsd -s
+ ^-- 1 selects the swap partition
+
+To view this message again, type: cat /.welcome
diff --git a/distrib/sun3/common/rd_bin.conf b/distrib/sun3/common/rd_bin.conf
new file mode 100644
index 00000000000..fa40e778c99
--- /dev/null
+++ b/distrib/sun3/common/rd_bin.conf
@@ -0,0 +1,83 @@
+#
+# $NetBSD: rd_bin.conf,v 1.1.1.1 1995/10/08 23:07:47 gwr Exp $
+#
+# common/rd_bin.conf - unified binary for the ramdisk.
+#
+# The ramdisk root has to stay small enough so the kernel
+# can be loaded in less than one megabyte of ram, including
+# uninitialized data (bss). Otherwise it will not work on
+# the Sun3/50. This is not too hard, because the ONLY
+# tools needed in this root are those that one might use
+# to initialize the disk label and copy a miniroot image
+# into the swap partiton. Everything else is done after
+# the machine is rebooted from the miniroot.
+#
+# Note that the "ln" directives below are not really about
+# filesystem links, but rather the ability of the resulting
+# crunched binary to select the right program when argv[0]
+# matches the names on right of the "ln prog" directive.
+# For example, the shell can be run with argv[0]="-sh"
+# (login shell convention) but no such file will exist.
+# Similarly, one may want to run "init" as "oinit"...
+#
+# Notes about what is included (or not) and why:
+#
+# Include mknod incase I forgot some device nodes...
+# Support copying miniroot from NFS, TFTP, or CDROM.
+# Need mount_ffs, mount_ufs to remount the ramdisk.
+#
+# Might use cat to look at files (it's small anyway).
+# Need for copying miniroot from tape: dd, mt
+# Keep to allow minor fixes: ln, mkdir, mv
+# Small and handy: cat, echo, pwd, sync
+#
+# Note: ssh has no "if", so "test" is useless. Also,
+# left out: cp, chmod, rm. The ramdisk does not really
+# need them, and they pull in fts_* from libc.
+#
+# Might use these to get the miniroot: rsh, tftp
+#
+# Assume gunzip can run elsewhere, i.e.:
+# rsh gzcat sun3.miniroot.gz
+# No need to extract archives either...
+#
+
+#
+# Here are all the programs, ordered by source location:
+
+# Special programs used to save space...
+#srcdirs /usr/src/distrib/utils
+srcdirs ../../utils
+progs init_s ssh tls
+ln init_s init oinit
+ln ssh sh
+ln ssh -sh # login shell (not actual file name)
+ln tls ls
+# These are built with special flags to save a little space.
+# The x_ prefix is just to make them unique among all srcdirs.
+progs x_dd x_ifconfig
+ln x_dd dd
+ln x_ifconfig ifconfig
+
+srcdirs /usr/src/sbin
+progs edlabel mknod mount
+progs mount_cd9660 mount_ffs mount_nfs
+progs reboot umount
+ln mount_ffs ffs mount_ufs ufs
+ln mount_nfs nfs
+ln mount_cd9660 cd9660
+ln reboot halt
+
+srcdirs /usr/src/bin
+progs cat echo ln mkdir mt mv pwd sync
+
+srcdirs /usr/src/usr.bin
+progs rsh tftp
+
+# srcdirs /usr/src/usr.sbin
+
+# srcdirs /usr/src/gnu/usr.bin
+# progs cpio, gzip, tar
+# ln gzip gzcat gunzip
+
+libs libhack.o -lutil
diff --git a/distrib/sun3/common/rd_bin.list b/distrib/sun3/common/rd_bin.list
new file mode 100644
index 00000000000..7c7c855d1f6
--- /dev/null
+++ b/distrib/sun3/common/rd_bin.list
@@ -0,0 +1,44 @@
+#
+# $NetBSD: rd_bin.list,v 1.2 1995/10/13 16:38:36 gwr Exp $
+#
+
+# copy the crunched binary, link to it, and kill it
+
+COPY ${OBJDIR}/rd_bin rd_bin
+
+# From /usr/src/distrib/utils:
+LINK rd_bin sbin/init
+LINK rd_bin sbin/ifconfig
+LINK rd_bin sbin/edlabel
+LINK rd_bin bin/dd
+LINK rd_bin bin/ls
+LINK rd_bin bin/rsh
+LINK rd_bin bin/sh
+LINK rd_bin bin/ssh
+LINK rd_bin bin/tftp
+
+# From /usr/src/sbin:
+LINK rd_bin sbin/halt
+LINK rd_bin sbin/mknod
+LINK rd_bin sbin/mount
+LINK rd_bin sbin/mount_cd9660
+LINK rd_bin sbin/mount_ffs
+LINK rd_bin sbin/mount_nfs
+LINK rd_bin sbin/mount_ufs
+LINK rd_bin sbin/reboot
+LINK rd_bin sbin/umount
+
+# From /usr/src/bin:
+LINK rd_bin bin/cat
+# LINK rd_bin bin/chmod
+# LINK rd_bin bin/cp
+LINK rd_bin bin/echo
+LINK rd_bin bin/ln
+LINK rd_bin bin/mkdir
+LINK rd_bin bin/mt
+LINK rd_bin bin/mv
+LINK rd_bin bin/pwd
+# LINK rd_bin bin/rm
+LINK rd_bin bin/sync
+
+SPECIAL rm rd_bin
diff --git a/distrib/sun3/common/rdsetroot.c b/distrib/sun3/common/rdsetroot.c
new file mode 100644
index 00000000000..ba0575c1f51
--- /dev/null
+++ b/distrib/sun3/common/rdsetroot.c
@@ -0,0 +1,230 @@
+/* $NetBSD: rdsetroot.c,v 1.2 1995/10/13 16:38:39 gwr Exp $ */
+
+/*
+ * Copyright (c) 1994 Gordon W. Ross
+ * 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.
+ * 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. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+ *
+ * $Id: rdsetroot.c,v 1.1 1995/10/18 08:37:51 deraadt Exp $
+ */
+
+/*
+ * Copy a ramdisk image into the space reserved for it.
+ * Kernel variables: rd_root_size, rd_root_image
+ */
+
+#include <sys/types.h>
+#include <sys/file.h>
+#include <sys/mman.h>
+
+#include <stdio.h>
+#include <a.out.h>
+
+extern off_t lseek();
+
+struct exec head;
+char *file;
+
+/* Virtual addresses of the symbols we frob. */
+long rd_root_image_va, rd_root_size_va;
+
+/* Offsets relative to start of data segment. */
+long rd_root_image_off, rd_root_size_off;
+
+/* value in the location at rd_root_size_off */
+int rd_root_size_val;
+
+/* pointers to pieces of mapped file */
+char *dataseg;
+
+/* and lengths */
+int data_len;
+int data_off;
+int data_pgoff;
+
+main(argc,argv)
+ char **argv;
+{
+ int fd, n;
+ int *ip;
+ char *cp;
+
+ if (argc < 2) {
+ printf("%s: missing file name\n", argv[0]);
+ exit(1);
+ }
+ file = argv[1];
+
+ fd = open(file, O_RDWR);
+ if (fd < 0) {
+ perror(file);
+ exit(1);
+ }
+
+ n = read(fd, &head, sizeof(head));
+ if (n < sizeof(head)) {
+ printf("%s: reading header\n", file);
+ exit(1);
+ }
+
+ if (N_BADMAG(head)) {
+ printf("%s: bad magic number\n");
+ exit(1);
+ }
+
+#ifdef DEBUG
+ printf(" text: %9d\n", head.a_text);
+ printf(" data: %9d\n", head.a_data);
+ printf(" bss: %9d\n", head.a_bss);
+ printf(" syms: %9d\n", head.a_syms);
+ printf("entry: 0x%08X\n", head.a_entry);
+ printf("trsiz: %9d\n", head.a_trsize);
+ printf("drsiz: %9d\n", head.a_drsize);
+#endif
+
+ if (head.a_syms <= 0) {
+ printf("%s: no symbols\n", file);
+ exit(1);
+ }
+ if (head.a_trsize ||
+ head.a_drsize)
+ {
+ printf("%s: has relocations\n");
+ exit(1);
+ }
+
+ find_rd_root_image(file);
+
+ /*
+ * Map in the whole data segment.
+ * The file offset needs to be page aligned.
+ */
+ data_off = N_DATOFF(head);
+ data_len = head.a_data;
+ /* align... */
+ data_pgoff = N_PAGSIZ(head) - 1;
+ data_pgoff &= data_off;
+ data_off -= data_pgoff;
+ data_len += data_pgoff;
+ /* map in in... */
+ dataseg = mmap(NULL, /* any address is ok */
+ data_len, /* length */
+ PROT_READ | PROT_WRITE,
+ MAP_SHARED,
+ fd, data_off);
+ if ((long)dataseg == -1) {
+ printf("%s: can not map data seg\n", file);
+ perror(file);
+ exit(1);
+ }
+ dataseg += data_pgoff;
+
+ /*
+ * Find value in the location: rd_root_size
+ */
+ ip = (int*) (dataseg + rd_root_size_off);
+ rd_root_size_val = *ip;
+#ifdef DEBUG
+ printf("rd_root_size val: 0x%08X (%d blocks)\n",
+ rd_root_size_val, (rd_root_size_val >> 9));
+#endif
+
+ /*
+ * Copy the symbol table and string table.
+ */
+#ifdef DEBUG
+ printf("copying root image...\n");
+#endif
+ n = read(0, dataseg + rd_root_image_off,
+ rd_root_size_val);
+ if (n < 0) {
+ perror("read");
+ exit(1);
+ }
+
+ msync(dataseg - data_pgoff, data_len
+#ifdef sun
+ ,0
+#endif
+ );
+
+#ifdef DEBUG
+ printf("...copied %d bytes\n", n);
+#endif
+ close(fd);
+ exit(0);
+}
+
+
+/*
+ * Find locations of the symbols to patch.
+ */
+struct nlist wantsyms[] = {
+ { "_rd_root_size", 0 },
+ { "_rd_root_image", 0 },
+ { NULL, 0 },
+};
+
+find_rd_root_image(file)
+ char *file;
+{
+ int data_va;
+ int std_entry;
+
+ if (nlist(file, wantsyms)) {
+ printf("%s: no rd_root_image symbols?\n", file);
+ exit(1);
+ }
+ std_entry = N_TXTADDR(head) +
+ (head.a_entry & (N_PAGSIZ(head)-1));
+ data_va = N_DATADDR(head);
+ if (head.a_entry != std_entry) {
+ printf("%s: warning: non-standard entry point: 0x%08x\n",
+ file, head.a_entry);
+ printf("\texpecting entry=0x%X\n", std_entry);
+ data_va += (head.a_entry - std_entry);
+ }
+
+ rd_root_size_off = wantsyms[0].n_value - data_va;
+ rd_root_image_off = wantsyms[1].n_value - data_va;
+#ifdef DEBUG
+ printf(".data segment va: 0x%08X\n", data_va);
+ printf("rd_root_size va: 0x%08X\n", wantsyms[0].n_value);
+ printf("rd_root_image va: 0x%08X\n", wantsyms[1].n_value);
+ printf("rd_root_size off: 0x%08X\n", rd_root_size_off);
+ printf("rd_root_image off: 0x%08X\n", rd_root_image_off);
+#endif
+
+ /*
+ * Sanity check locations of db_* symbols
+ */
+ if (rd_root_image_off < 0 || rd_root_image_off >= head.a_data) {
+ printf("%s: rd_root_image not in data segment?\n", file);
+ exit(1);
+ }
+ if (rd_root_size_off < 0 || rd_root_size_off >= head.a_data) {
+ printf("%s: rd_root_size not in data segment?\n", file);
+ exit(1);
+ }
+}
diff --git a/distrib/sun3/miniroot/Makefile b/distrib/sun3/miniroot/Makefile
new file mode 100644
index 00000000000..b3defc8ae66
--- /dev/null
+++ b/distrib/sun3/miniroot/Makefile
@@ -0,0 +1,57 @@
+# $NetBSD: Makefile,v 1.2 1995/10/13 16:46:47 gwr Exp $
+
+TOP= ${.CURDIR}/..
+
+# This include just sets REV=XX
+.include "${TOP}/Makefile.inc"
+
+IMAGE= miniroot
+CBIN= mini_usr
+
+TREE= ${TOP}/common/${IMAGE}.tree
+
+LISTS= ${TOP}/common/mini_sbin.list \
+ ${TOP}/common/mini_bin.list \
+ ${TOP}/common/${CBIN}.list \
+ ${TOP}/common/${IMAGE}.list
+
+MOUNT_POINT= /mnt
+DISKTYPE= miniroot
+BDEV= /dev/sd2b
+CDEV= /dev/rsd2b
+
+KERNEL=${SRCSYSDIR}/arch/sun3/compile/GENERIC/netbsd
+
+# These are all the parameters for the miniroot: (6MB)
+NBLKS= 12288
+# old format, minfree, opt, b/i trks, sects, cpg
+NEWFSARGS= -O -m 0 -o space -i 8192 -t 8 -u 32 -c 16
+
+${IMAGE}.fs: ${CBIN} do_mount do_files do_bootxx do_kernel do_umount
+ dd if=${CDEV} of=$@ bs=64b count=`expr ${NBLKS} / 64`
+
+# Only do these for the miniroot, not the ramdisk.
+do_bootxx:
+ sync ; sleep 1 ; sync
+ cd ${MOUNT_POINT} ;\
+ usr/mdec/installboot -v ufsboot usr/mdec/bootxx ${CDEV}
+
+# Copy the generic kernel
+do_kernel:
+ cp -p ${KERNEL} ${MOUNT_POINT}/netbsd
+
+# Do not delete this if I change my mind and kill make...
+.PRECIOUS: ${IMAGE}.fs
+
+# Rules used making ${IMAGE}.fs (do_*)
+.include "${TOP}/common/Make.fsimage"
+
+# Rules for making ${CBIN} ...
+.include "${TOP}/common/Make.crunch"
+
+clean cleandir:
+ -rm -f a.out core *.core *.o
+ -rm -f ${CLEANFILES}
+
+# Standard rules needed by the above...
+.include <bsd.obj.mk>
diff --git a/distrib/sun3/ramdisk/Findrefs b/distrib/sun3/ramdisk/Findrefs
new file mode 100644
index 00000000000..2a098b5df7a
--- /dev/null
+++ b/distrib/sun3/ramdisk/Findrefs
@@ -0,0 +1,12 @@
+#!/bin/sh
+# $NetBSD: Findrefs,v 1.2 1995/10/13 16:51:28 gwr Exp $
+
+# Small helper to find out who pulls in X
+
+[ "$1" ] || { echo "$0: match_string" ; exit 1; }
+
+for f in *.lo
+do
+ nm -p $f | grep "$1" && echo $f
+done
+
diff --git a/distrib/sun3/ramdisk/Makefile b/distrib/sun3/ramdisk/Makefile
new file mode 100644
index 00000000000..0a7294833bb
--- /dev/null
+++ b/distrib/sun3/ramdisk/Makefile
@@ -0,0 +1,61 @@
+# $NetBSD: Makefile,v 1.2 1995/10/13 16:51:30 gwr Exp $
+
+TOP= ${.CURDIR}/..
+
+# This include just sets REV=XX
+.include "${TOP}/Makefile.inc"
+
+IMAGE= ramdisk
+CBIN= rd_bin
+
+TREE= ${TOP}/common/${IMAGE}.tree
+
+LISTS= ${TOP}/common/${CBIN}.list \
+ ${TOP}/common/${IMAGE}.list
+
+MOUNT_POINT= /mnt
+DISKTYPE= rdroot
+BDEV= /dev/rd0
+CDEV?= /dev/rd0
+
+KERNEL=${SRCSYSDIR}/arch/sun3/compile/RAMDISK/netbsd
+
+# These are all the parameters for the root fs: (256K)
+NBLKS= 512
+# args: old fmt, minfree, opt, b/i trks, sects, cpg
+NEWFSARGS= -O -m 0 -o space -i 2048 -t 2 -u 16 -c 16
+
+CLEANFILES= netbsd-rd rdsetroot
+
+netbsd-rd : rdsetroot ${IMAGE}.fs
+ cp ${KERNEL} netbsd-tmp
+ ./rdsetroot netbsd-tmp < ${IMAGE}.fs
+ -mv -f netbsd-tmp $@
+
+rdsetroot: ${TOP}/common/rdsetroot.c
+ $(CC) -o $@ -DDEBUG ${TOP}/common/rdsetroot.c
+
+${IMAGE}.fs: ${CBIN} do_mount do_files do_umount
+ dd if=${CDEV} of=$@ count=${NBLKS}
+
+# Do not delete this if I change my mind and kill make...
+.PRECIOUS: ${IMAGE}.fs
+
+# Rules used making ${IMAGE}.fs (do_*)
+.include "${TOP}/common/Make.fsimage"
+
+# Rules for making ${CBIN} ...
+.include "${TOP}/common/Make.crunch"
+
+${CBIN} : libhack.o
+
+# Use stubs to eliminate some large stuff from libc
+HACKSRC=${TOP}/../utils/libhack
+.include "${HACKSRC}/Makefile.inc"
+
+clean cleandir:
+ -rm -f a.out core *.core *.o
+ -rm -f ${CLEANFILES}
+
+# Standard rules needed by the above...
+.include <bsd.obj.mk>
diff --git a/distrib/sun3/ramdisk/Showsyms b/distrib/sun3/ramdisk/Showsyms
new file mode 100644
index 00000000000..a854d3ce55c
--- /dev/null
+++ b/distrib/sun3/ramdisk/Showsyms
@@ -0,0 +1,9 @@
+#!/bin/sh
+# $NetBSD: Showsyms,v 1.2 1995/10/13 16:51:31 gwr Exp $
+# Small helper to print out symbols in a useful order.
+
+nm -n rd_bin.syms |grep -i ' a '
+nm -n rd_bin.syms |grep -i ' t '
+nm -n rd_bin.syms |grep -i ' d '
+nm -n rd_bin.syms |grep -i ' b '
+nm -p rd_bin.syms |grep -i ' c '
diff --git a/distrib/utils/Makefile b/distrib/utils/Makefile
new file mode 100644
index 00000000000..3fac6077dae
--- /dev/null
+++ b/distrib/utils/Makefile
@@ -0,0 +1,5 @@
+# $NetBSD: Makefile,v 1.2 1995/10/13 18:10:06 gwr Exp $
+
+SUBDIR= libhack init_s ssh tls x_dd x_ifconfig
+
+.include <bsd.subdir.mk>
diff --git a/distrib/utils/Makefile.inc b/distrib/utils/Makefile.inc
new file mode 100644
index 00000000000..0b9a8e7d181
--- /dev/null
+++ b/distrib/utils/Makefile.inc
@@ -0,0 +1,9 @@
+# $NetBSD: Makefile.inc,v 1.2 1995/10/13 18:10:07 gwr Exp $
+# utils one might want in a crunched binary
+
+BSDSRCDIR?= /usr/src
+LDSTATIC= -static
+
+install:
+ @echo "install not expected"
+
diff --git a/distrib/utils/README b/distrib/utils/README
new file mode 100644
index 00000000000..6a940c065ca
--- /dev/null
+++ b/distrib/utils/README
@@ -0,0 +1,43 @@
+From: "Gordon W. Ross" <gwr>
+Date: Tue, 3 Oct 95 16:37:39 EDT
+Subject: New ramdisk, tiny shell, etc.
+[ edited since the original mail ]
+
+As part of my efforts to build a RAM-disk root kernel for the
+sun3 port, I've developed some things that others may want:
+
+New RAM-disk: [ see sys/dev/ramdisk.c ]
+
+New "small/tiny" tools, to replace some of the larger
+programs that one usually wants on a ramdisk root:
+
+ssh: (small shell)
+ * Consumes only about 8K of memory on an m68k!
+ (saves about 100K in the ramdisk...)
+ * Can run programs, possibly with I/O redirection
+ * Just enough to let you run the programs needed
+ while partitioning and copying miniroot to swap.
+
+tls: (tiny ls)
+ * Consumes only about 4K of memory on an m68k!
+ (saves about 10K in the ramdisk...)
+ * Long format only, nothing fancy.
+
+Also, in the new "src/distrib/utils" area, I've made build
+directories for some programs that build smaller versions,
+usually by adding special CFLAGS
+
+init_s: (built with -DLETS_GET_SMALL)
+ * Forces single-user mode
+ * Eliminates unnecessary code
+
+libhack: small implementation of some libc functions
+ * Needs only /etc/passwd (not pwd.db, spwd.db)
+ * Reduces size of an m68k crunched binary by about 64K
+
+x_dd: built with -DNO_CONV (no conv=* options)
+
+x_ifconfig: supports inet only
+
+The x_ prefix on the above is to make the names unique so
+crunchgen will not confuse them with the real sources.
diff --git a/distrib/utils/init_s/Makefile b/distrib/utils/init_s/Makefile
new file mode 100644
index 00000000000..60a638bab4f
--- /dev/null
+++ b/distrib/utils/init_s/Makefile
@@ -0,0 +1,18 @@
+# $NetBSD: Makefile,v 1.3 1995/10/13 18:35:17 gwr Exp $
+# Build a "small init" (i.e. for boot media)
+
+PROG= init
+NOMAN=
+
+# Need -lutil for: logout, logwtmp, login_tty
+DPADD= ${LIBUTIL}
+LDADD= -lutil
+
+SRCDIR= ${BSDSRCDIR}/sbin/init
+CFLAGS+= -DLETS_GET_SMALL -I${SRCDIR}
+
+all: ${PROG}
+
+.include <bsd.prog.mk>
+
+.PATH: ${SRCDIR}
diff --git a/distrib/utils/libhack/Makefile b/distrib/utils/libhack/Makefile
new file mode 100644
index 00000000000..907ee043651
--- /dev/null
+++ b/distrib/utils/libhack/Makefile
@@ -0,0 +1,19 @@
+# $NetBSD: Makefile,v 1.2 1995/10/13 18:10:19 gwr Exp $
+#
+# Stubs to kill off some things from libc:
+# This save space on a boot system.
+#
+
+LIB= hack
+SRCS= getgrent.c gethost.c getnetgr.c getpwent.c
+
+NOPIC=
+NOPROFILE=
+
+all: libhack.a
+
+tpwent: getpwent.c
+ $(CC) -g -o $@.o -DTEST_MAIN -c getpwent.c
+ $(CC) -o $@ $@.o
+
+.include <bsd.lib.mk>
diff --git a/distrib/utils/libhack/Makefile.inc b/distrib/utils/libhack/Makefile.inc
new file mode 100644
index 00000000000..586153eda55
--- /dev/null
+++ b/distrib/utils/libhack/Makefile.inc
@@ -0,0 +1,25 @@
+# $NetBSD: Makefile.inc,v 1.2 1995/10/13 18:10:20 gwr Exp $
+# Include this fragment to build libhack.o
+# It is .o and not .a to make sure these are the
+# objects you get (and not the ones in libc.a)
+
+HACKOBJS= gethost.o getpwent.o getgrent.o getnetgr.o
+
+libhack.o : $(HACKOBJS)
+ $(LD) -r -o $@ $(HACKOBJS)
+
+gethost.o : ${HACKSRC}/gethost.c
+ $(CC) -c ${HACKSRC}/gethost.c
+
+getpwent.o : ${HACKSRC}/getpwent.c
+ $(CC) -c ${HACKSRC}/getpwent.c
+
+getgrent.o : ${HACKSRC}/getgrent.c
+ $(CC) -c ${HACKSRC}/getgrent.c
+
+getnetgr.o : ${HACKSRC}/getnetgr.c
+ $(CC) -c ${HACKSRC}/getnetgr.c
+
+yplib.o : ${HACKSRC}/yplib.c
+ $(CC) -c ${HACKSRC}/yplib.c
+
diff --git a/distrib/utils/libhack/getgrent.c b/distrib/utils/libhack/getgrent.c
new file mode 100644
index 00000000000..66e65987609
--- /dev/null
+++ b/distrib/utils/libhack/getgrent.c
@@ -0,0 +1,187 @@
+/* $NetBSD: getgrent.c,v 1.2 1995/10/13 18:10:23 gwr Exp $ */
+
+/*
+ * Copyright (c) 1989, 1993
+ * The Regents of the University of California. All rights reserved.
+ * Portions Copyright (c) 1994, Jason Downs. 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.
+ * 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 University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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, 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.
+ */
+
+/*
+ * Copied from: lib/libc/gen/getgrent.c
+ * and then gutted, leaving only /etc/group support.
+ */
+
+#include <sys/types.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <grp.h>
+
+static FILE *_gr_fp;
+static struct group _gr_group;
+static int _gr_stayopen;
+static int grscan(), start_gr();
+
+#define MAXGRP 200
+static char *members[MAXGRP];
+#define MAXLINELENGTH 1024
+static char line[MAXLINELENGTH];
+
+struct group *
+getgrent()
+{
+ if (!_gr_fp && !start_gr() || !grscan(0, 0, NULL))
+ return(NULL);
+ return(&_gr_group);
+}
+
+struct group *
+getgrnam(name)
+ const char *name;
+{
+ int rval;
+
+ if (!start_gr())
+ return(NULL);
+ rval = grscan(1, 0, name);
+ if (!_gr_stayopen)
+ endgrent();
+ return(rval ? &_gr_group : NULL);
+}
+
+struct group *
+#ifdef __STDC__
+getgrgid(gid_t gid)
+#else
+getgrgid(gid)
+ gid_t gid;
+#endif
+{
+ int rval;
+
+ if (!start_gr())
+ return(NULL);
+ rval = grscan(1, gid, NULL);
+ if (!_gr_stayopen)
+ endgrent();
+ return(rval ? &_gr_group : NULL);
+}
+
+static int
+start_gr()
+{
+ if (_gr_fp) {
+ rewind(_gr_fp);
+ return(1);
+ }
+ return((_gr_fp = fopen(_PATH_GROUP, "r")) ? 1 : 0);
+}
+
+void
+setgrent()
+{
+ (void) setgroupent(0);
+}
+
+int
+setgroupent(stayopen)
+ int stayopen;
+{
+ if (!start_gr())
+ return(0);
+ _gr_stayopen = stayopen;
+ return(1);
+}
+
+void
+endgrent()
+{
+ if (_gr_fp) {
+ (void)fclose(_gr_fp);
+ _gr_fp = NULL;
+ }
+}
+
+static int
+grscan(search, gid, name)
+ register int search, gid;
+ register char *name;
+{
+ register char *cp, **m;
+ char *bp;
+
+ for (;;) {
+ if (!fgets(line, sizeof(line), _gr_fp))
+ return(0);
+ bp = line;
+ /* skip lines that are too big */
+ if (!strchr(line, '\n')) {
+ int ch;
+
+ while ((ch = getc(_gr_fp)) != '\n' && ch != EOF)
+ ;
+ continue;
+ }
+ _gr_group.gr_name = strsep(&bp, ":\n");
+ if (search && name && strcmp(_gr_group.gr_name, name))
+ continue;
+ _gr_group.gr_passwd = strsep(&bp, ":\n");
+ if (!(cp = strsep(&bp, ":\n")))
+ continue;
+ _gr_group.gr_gid = atoi(cp);
+ if (search && name == NULL && _gr_group.gr_gid != gid)
+ continue;
+ cp = NULL;
+ if (bp == NULL)
+ continue;
+ for (m = _gr_group.gr_mem = members;; bp++) {
+ if (m == &members[MAXGRP - 1])
+ break;
+ if (*bp == ',') {
+ if (cp) {
+ *bp = '\0';
+ *m++ = cp;
+ cp = NULL;
+ }
+ } else if (*bp == '\0' || *bp == '\n' || *bp == ' ') {
+ if (cp) {
+ *bp = '\0';
+ *m++ = cp;
+ }
+ break;
+ } else if (cp == NULL)
+ cp = bp;
+ }
+ *m = NULL;
+ return(1);
+ }
+ /* NOTREACHED */
+}
diff --git a/distrib/utils/libhack/gethost.c b/distrib/utils/libhack/gethost.c
new file mode 100644
index 00000000000..8a2d3649e35
--- /dev/null
+++ b/distrib/utils/libhack/gethost.c
@@ -0,0 +1,266 @@
+/* $NetBSD: gethost.c,v 1.2 1995/10/13 18:10:25 gwr Exp $ */
+
+/*-
+ * Copyright (c) 1985, 1988, 1993
+ * The Regents of the University of California. 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.
+ * 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 University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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, 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.
+ * -
+ * Portions Copyright (c) 1993 by Digital Equipment Corporation.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies, and that
+ * the name of Digital Equipment Corporation not be used in advertising or
+ * publicity pertaining to distribution of the document or software without
+ * specific, written prior permission.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
+ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ * -
+ * --Copyright--
+ */
+
+/*
+ * Copied from: lib/libc/net/gethostnamadr.c
+ * and then gutted, leaving only /etc/hosts support.
+ */
+
+#include <sys/param.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <arpa/nameser.h>
+#include <netdb.h>
+#include <resolv.h>
+#include <stdio.h>
+#include <ctype.h>
+#include <errno.h>
+#include <string.h>
+
+#define MAXALIASES 35
+#define MAXADDRS 35
+
+static char *h_addr_ptrs[MAXADDRS + 1];
+
+static struct hostent host;
+static char *host_aliases[MAXALIASES];
+static char hostbuf[BUFSIZ+1];
+static struct in_addr host_addr;
+static FILE *hostf = NULL;
+static int stayopen = 0;
+
+#if PACKETSZ > 1024
+#define MAXPACKET PACKETSZ
+#else
+#define MAXPACKET 1024
+#endif
+
+extern int h_errno;
+
+struct hostent *
+gethostbyname(name)
+ const char *name;
+{
+ register const char *cp;
+ int n, i;
+ extern struct hostent *_gethtbyname();
+
+ /*
+ * disallow names consisting only of digits/dots, unless
+ * they end in a dot.
+ */
+ if (isdigit(name[0]))
+ for (cp = name;; ++cp) {
+ if (!*cp) {
+ if (*--cp == '.')
+ break;
+ /*
+ * All-numeric, no dot at the end.
+ * Fake up a hostent as if we'd actually
+ * done a lookup.
+ */
+ if (!inet_aton(name, &host_addr)) {
+ h_errno = HOST_NOT_FOUND;
+ return((struct hostent *) NULL);
+ }
+ host.h_name = (char *)name;
+ host.h_aliases = host_aliases;
+ host_aliases[0] = NULL;
+ host.h_addrtype = AF_INET;
+ host.h_length = sizeof(u_int32_t);
+ h_addr_ptrs[0] = (char *)&host_addr;
+ h_addr_ptrs[1] = NULL;
+ host.h_addr_list = h_addr_ptrs;
+ return (&host);
+ }
+ if (!isdigit(*cp) && *cp != '.')
+ break;
+ }
+
+ /* XXX - Force host table lookup. */
+ return (_gethtbyname(name));
+}
+
+struct hostent *
+gethostbyaddr(addr, len, type)
+ const char *addr;
+ int len, type;
+{
+ int n, i;
+ char qbuf[MAXDNAME];
+ extern struct hostent *_gethtbyaddr();
+
+ if (type != AF_INET)
+ return ((struct hostent *) NULL);
+ (void)sprintf(qbuf, "%u.%u.%u.%u.in-addr.arpa",
+ ((unsigned)addr[3] & 0xff),
+ ((unsigned)addr[2] & 0xff),
+ ((unsigned)addr[1] & 0xff),
+ ((unsigned)addr[0] & 0xff));
+
+ /* XXX - Force host table lookup. */
+ return (_gethtbyaddr(addr, len, type));
+}
+
+void
+_sethtent(f)
+ int f;
+{
+ if (hostf == NULL)
+ hostf = fopen(_PATH_HOSTS, "r" );
+ else
+ rewind(hostf);
+ stayopen = f;
+}
+
+void
+_endhtent()
+{
+ if (hostf && !stayopen) {
+ (void) fclose(hostf);
+ hostf = NULL;
+ }
+}
+
+struct hostent *
+_gethtent()
+{
+ char *p;
+ register char *cp, **q;
+
+ if (hostf == NULL && (hostf = fopen(_PATH_HOSTS, "r" )) == NULL)
+ return (NULL);
+again:
+ if ((p = fgets(hostbuf, BUFSIZ, hostf)) == NULL)
+ return (NULL);
+ if (*p == '#')
+ goto again;
+ cp = strpbrk(p, "#\n");
+ if (cp == NULL)
+ goto again;
+ *cp = '\0';
+ cp = strpbrk(p, " \t");
+ if (cp == NULL)
+ goto again;
+ *cp++ = '\0';
+ /* THIS STUFF IS INTERNET SPECIFIC */
+ h_addr_ptrs[0] = (char *)&host_addr;
+ h_addr_ptrs[1] = NULL;
+ (void) inet_aton(p, &host_addr);
+ host.h_addr_list = h_addr_ptrs;
+ host.h_length = sizeof(u_int32_t);
+ host.h_addrtype = AF_INET;
+ while (*cp == ' ' || *cp == '\t')
+ cp++;
+ host.h_name = cp;
+ q = host.h_aliases = host_aliases;
+ cp = strpbrk(cp, " \t");
+ if (cp != NULL)
+ *cp++ = '\0';
+ while (cp && *cp) {
+ if (*cp == ' ' || *cp == '\t') {
+ cp++;
+ continue;
+ }
+ if (q < &host_aliases[MAXALIASES - 1])
+ *q++ = cp;
+ cp = strpbrk(cp, " \t");
+ if (cp != NULL)
+ *cp++ = '\0';
+ }
+ *q = NULL;
+ return (&host);
+}
+
+struct hostent *
+_gethtbyname(name)
+ char *name;
+{
+ register struct hostent *p;
+ register char **cp;
+
+ _sethtent(0);
+ while (p = _gethtent()) {
+ if (strcasecmp(p->h_name, name) == 0)
+ break;
+ for (cp = p->h_aliases; *cp != 0; cp++)
+ if (strcasecmp(*cp, name) == 0)
+ goto found;
+ }
+found:
+ _endhtent();
+ if (p==NULL)
+ h_errno = HOST_NOT_FOUND;
+ return (p);
+}
+
+struct hostent *
+_gethtbyaddr(addr, len, type)
+ const char *addr;
+ int len, type;
+{
+ register struct hostent *p;
+
+ _sethtent(0);
+ while (p = _gethtent())
+ if (p->h_addrtype == type && !bcmp(p->h_addr, addr, len))
+ break;
+ _endhtent();
+ if (p==NULL)
+ h_errno = HOST_NOT_FOUND;
+ return (p);
+}
+
diff --git a/distrib/utils/libhack/getnetgr.c b/distrib/utils/libhack/getnetgr.c
new file mode 100644
index 00000000000..31a928c1e45
--- /dev/null
+++ b/distrib/utils/libhack/getnetgr.c
@@ -0,0 +1,33 @@
+/* $NetBSD: getnetgr.c,v 1.2 1995/10/13 18:10:26 gwr Exp $ */
+
+/*
+ * Just stub these out, so it looks like
+ * we are not in any any netgroups.
+ */
+
+void
+endnetgrent()
+{
+}
+
+void
+setnetgrent(ng)
+ const char *ng;
+{
+}
+
+int
+getnetgrent(host, user, domain)
+ const char **host;
+ const char **user;
+ const char **domain;
+{
+ return 0;
+}
+
+int
+innetgr(grp, host, user, domain)
+ const char *grp, *host, *user, *domain;
+{
+ return 0;
+}
diff --git a/distrib/utils/libhack/getpwent.c b/distrib/utils/libhack/getpwent.c
new file mode 100644
index 00000000000..2d730bd6abf
--- /dev/null
+++ b/distrib/utils/libhack/getpwent.c
@@ -0,0 +1,171 @@
+/* $NetBSD: getpwent.c,v 1.2 1995/10/13 18:10:27 gwr Exp $ */
+
+/*
+ * Copyright (c) 1995 Gordon W. Ross
+ * 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.
+ * 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. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ * 4. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Gordon W. Ross
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+ */
+
+/*
+ * Smaller replacement for: libc/gen/getpwent.c
+ * Needed by programs like: rsh, rlogin
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <pwd.h>
+
+#define PWNULL (struct passwd *)0
+#define MAXFIELD 8
+
+static char *pw_file = "/etc/passwd";
+static FILE *pw_fp;
+static char pw_line[128];
+static struct passwd pw_ent;
+
+/*
+ * Open passwd file if necessary, and
+ * get the next entry.
+ */
+struct passwd *
+getpwent()
+{
+ char *fv[MAXFIELD];
+ char *p;
+ int fc;
+
+ /* Open passwd file if not already. */
+ if (pw_fp == NULL)
+ pw_fp = fopen(pw_file, "r");
+ /* Still NULL. No passwd file? */
+ if (pw_fp == NULL)
+ return PWNULL;
+
+readnext:
+ /* Read the next line... */
+ if (fgets(pw_line, sizeof(pw_line), pw_fp) == NULL)
+ return PWNULL;
+
+ /* ...and parse it. */
+ p = pw_line;
+ fc = 0;
+ while (fc < MAXFIELD) {
+ fv[fc] = strsep(&p, ":\n");
+ if (fv[fc] == NULL)
+ break;
+ fc++;
+ }
+
+ /* Need at least 0..5 */
+ if (fc < 6)
+ goto readnext;
+ while (fc < MAXFIELD)
+ fv[fc++] = "";
+
+ /* Build the pw entry... */
+ pw_ent.pw_name = fv[0];
+ pw_ent.pw_passwd = fv[1];
+ pw_ent.pw_uid = atoi(fv[2]);
+ pw_ent.pw_gid = atoi(fv[3]);
+ pw_ent.pw_gecos = fv[4];
+ pw_ent.pw_dir = fv[5];
+ pw_ent.pw_shell = fv[6];
+
+ return (&pw_ent);
+}
+
+/* internal for setpwent() */
+int
+setpassent(stayopen)
+ int stayopen;
+{
+ if (pw_fp)
+ rewind(pw_fp);
+}
+
+/* rewind to the beginning. */
+void
+setpwent()
+{
+ (void) setpassent(0);
+}
+
+/* done with the passwd file */
+void
+endpwent()
+{
+ if (pw_fp) {
+ fclose(pw_fp);
+ pw_fp = NULL;
+ }
+}
+
+struct passwd *
+getpwnam(name)
+ const char *name;
+{
+ struct passwd *pw;
+
+ setpwent();
+ while ((pw = getpwent()) != PWNULL)
+ if (!strcmp(pw->pw_name, name))
+ break;
+
+ endpwent();
+ return(pw);
+}
+
+struct passwd *
+getpwuid(uid)
+ uid_t uid;
+{
+ struct passwd *pw;
+
+ setpwent();
+ while ((pw = getpwent()) != PWNULL)
+ if (pw->pw_uid == uid)
+ break;
+
+ endpwent();
+ return(pw);
+}
+
+#ifdef TEST_MAIN
+main() {
+ struct passwd *pw;
+
+ printf("#name, password, uid, gid, comment, dir, shell\n");
+
+ while ((pw = getpwent()) != NULL) {
+ printf("%s:%s:", pw->pw_name, pw->pw_passwd);
+ printf("%d:%d:", pw->pw_uid, pw->pw_gid);
+ printf("%s:", pw->pw_gecos);
+ printf("%s:", pw->pw_dir);
+ printf("%s\n", pw->pw_shell);
+ }
+}
+#endif
diff --git a/distrib/utils/libhack/yplib.c b/distrib/utils/libhack/yplib.c
new file mode 100644
index 00000000000..4b787e056a9
--- /dev/null
+++ b/distrib/utils/libhack/yplib.c
@@ -0,0 +1,222 @@
+/* $NetBSD: yplib.c,v 1.1.1.1 1995/10/08 23:08:48 gwr Exp $ */
+
+/*
+ * Copyright (c) 1992, 1993 Theo de Raadt <deraadt@fsa.ca>
+ * 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.
+ * 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 Theo de Raadt.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+ */
+
+/*
+ * This file provides "stubs" for all the YP library functions.
+ * It is not needed unless you pull in things that call YP, and
+ * if you use all the get* files here then the YP stuff should
+ * not get dragged in. But if it does, one can use this.
+ *
+ * This was copied from:
+ * lib/libc/yp/yplib.c
+ * (and then completely gutted! 8^)
+ */
+
+#include <sys/types.h>
+
+/* #include <rpcsvc/yp_prot.h> */
+#define YP_TRUE ((long)1) /* general purpose success code */
+#define YP_FALSE ((long)0) /* general purpose failure code */
+
+/* #include <rpcsvc/ypclnt.h> */
+#define YPERR_DOMAIN 3 /* can't bind to a server for domain */
+#define YPERR_YPERR 6 /* some internal YP server or client error */
+#define YPERR_YPBIND 10 /* can't communicate with ypbind */
+#define YPERR_NODOM 12 /* local domain name not set */
+
+#ifndef NULL
+#define NULL (void*)0
+#endif
+
+
+static char _yp_domain[256];
+
+int
+_yp_dobind(dom, ypdb)
+ const char *dom;
+ void **ypdb;
+{
+ return YPERR_YPBIND;
+}
+
+int
+yp_bind(dom)
+ const char *dom;
+{
+ return _yp_dobind(dom, NULL);
+}
+
+void
+yp_unbind(dom)
+ const char *dom;
+{
+}
+
+int
+yp_match(indomain, inmap, inkey, inkeylen, outval, outvallen)
+ const char *indomain;
+ const char *inmap;
+ const char *inkey;
+ int inkeylen;
+ char **outval;
+ int *outvallen;
+{
+ *outval = NULL;
+ *outvallen = 0;
+
+ return YPERR_DOMAIN;
+}
+
+int
+yp_get_default_domain(domp)
+ char **domp;
+{
+ *domp = NULL;
+ if (_yp_domain[0] == '\0')
+ if (getdomainname(_yp_domain, sizeof(_yp_domain)))
+ return YPERR_NODOM;
+ *domp = _yp_domain;
+ return 0;
+}
+
+int
+yp_first(indomain, inmap, outkey, outkeylen, outval, outvallen)
+ const char *indomain;
+ const char *inmap;
+ char **outkey;
+ int *outkeylen;
+ char **outval;
+ int *outvallen;
+{
+
+ *outkey = *outval = NULL;
+ *outkeylen = *outvallen = 0;
+
+ return YPERR_DOMAIN;
+}
+
+int
+yp_next(indomain, inmap, inkey, inkeylen, outkey, outkeylen, outval, outvallen)
+ const char *indomain;
+ const char *inmap;
+ const char *inkey;
+ int inkeylen;
+ char **outkey;
+ int *outkeylen;
+ char **outval;
+ int *outvallen;
+{
+ *outkey = *outval = NULL;
+ *outkeylen = *outvallen = 0;
+
+ return YPERR_DOMAIN;
+}
+
+int
+yp_all(indomain, inmap, incallback)
+ const char *indomain;
+ const char *inmap;
+ void *incallback;
+{
+ return YPERR_DOMAIN;
+}
+
+int
+yp_order(indomain, inmap, outorder)
+ const char *indomain;
+ const char *inmap;
+ int *outorder;
+{
+ return YPERR_DOMAIN;
+}
+
+int
+yp_master(indomain, inmap, outname)
+ const char *indomain;
+ const char *inmap;
+ char **outname;
+{
+ return YPERR_DOMAIN;
+}
+
+int
+yp_maplist(indomain, outmaplist)
+ const char *indomain;
+ struct ypmaplist **outmaplist;
+{
+ return YPERR_DOMAIN;
+}
+
+char *
+yperr_string(incode)
+ int incode;
+{
+ static char err[80];
+
+ if (incode == 0)
+ return "Success";
+
+ sprintf(err, "YP FAKE error %d\n", incode);
+ return err;
+}
+
+int
+ypprot_err(incode)
+ unsigned int incode;
+{
+ switch (incode) {
+ case YP_TRUE: /* success */
+ return 0;
+ case YP_FALSE: /* failure */
+ return YPERR_YPBIND;
+ }
+ return YPERR_YPERR;
+}
+
+int
+_yp_check(dom)
+ char **dom;
+{
+ char *unused;
+
+ if (_yp_domain[0] == '\0')
+ if (yp_get_default_domain(&unused))
+ return 0;
+
+ if (dom)
+ *dom = _yp_domain;
+
+ if (yp_bind(_yp_domain) == 0)
+ return 1;
+ return 0;
+}
diff --git a/distrib/utils/ssh/Makefile b/distrib/utils/ssh/Makefile
new file mode 100644
index 00000000000..98bf174717e
--- /dev/null
+++ b/distrib/utils/ssh/Makefile
@@ -0,0 +1,9 @@
+# $NetBSD: Makefile,v 1.1.1.1 1995/10/08 23:08:46 gwr Exp $
+# Small Shell (i.e. for boot media)
+
+PROG= ssh
+NOMAN=
+
+all: ${PROG}
+
+.include <bsd.prog.mk>
diff --git a/distrib/utils/ssh/ssh.c b/distrib/utils/ssh/ssh.c
new file mode 100644
index 00000000000..3bdd00da282
--- /dev/null
+++ b/distrib/utils/ssh/ssh.c
@@ -0,0 +1,608 @@
+/* $NetBSD: ssh.c,v 1.1.1.1 1995/10/08 23:08:46 gwr Exp $ */
+
+/*
+ * Copyright (c) 1995 Gordon W. Ross
+ * 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.
+ * 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. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ * 4. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Gordon W. Ross
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+ */
+
+/*
+ * Small Shell - Nothing fancy. Just runs programs.
+ * The RAMDISK root uses this to save space.
+ */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <setjmp.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/param.h>
+#include <sys/wait.h>
+
+/* XXX - SunOS hacks... */
+#ifndef WCOREDUMP
+#define WCOREDUMP(x) ((x) & 0200)
+#endif
+
+#ifndef __P
+#ifdef __STDC__
+#define __P(x) x
+#else /* STDC */
+#define __P(x) ()
+#endif /* STDC */
+#endif /* __P */
+
+extern char *optarg;
+extern int optind, opterr;
+
+#define MAXLINE 256
+#define MAXARGS 32
+
+#define MAXPATH 256
+char cur_path[MAXPATH] = "PATH=/bin:/usr/bin";
+
+char rc_name[] = ".sshrc";
+char *prompt = "ssh: ";
+
+int eflag; /* exit on cmd failure */
+int iflag; /* interactive mode (catch interrupts) */
+int sflag; /* read from stdin (ignore file arg) */
+int xflag; /* execution trace */
+
+/* Command file: name, line number, arg count, arg vector */
+char *cf_name;
+int cf_line;
+int cf_argc;
+char **cf_argv;
+
+int def_omode = 0666;
+int run_bg_pid;
+
+jmp_buf next_cmd;
+
+void catchsig __P((int sig));
+void child_newfd __P((int setfd, char *file, int otype));
+int find_in_path __P((char *cmd, char *filebuf));
+void print_termsig __P((FILE *fp, int cstat));
+int runfile __P((FILE *fp));
+
+
+main(argc, argv)
+ int argc;
+ char **argv;
+{
+ struct sigaction sa;
+ FILE *cfp; /* command file ptr */
+ int c, sig;
+ int error = 0;
+
+ while ((c = getopt(argc, argv, "eisx")) != -1) {
+ switch (c) {
+ case 'e':
+ eflag++;
+ break;
+ case 'i':
+ eflag++;
+ break;
+ case 's':
+ sflag++;
+ break;
+ case 'x':
+ xflag++;
+ break;
+ case '?':
+ error++;
+ break;
+ }
+ }
+ if (error) {
+ fprintf(stderr, "usage: ssh [-eisx] [cmd_file [...]]\n");
+ exit(1);
+ }
+ cf_argc = argc - optind;
+ cf_argv = &argv[optind];
+
+ /* If this is a login shell, run the rc file. */
+ if (argv[0] && argv[0][0] == '-') {
+ cf_line = 0;
+ cf_name = rc_name;
+ if ((cfp = fopen(cf_name, "r")) != NULL) {
+ error = runfile(cfp);
+ fclose(cfp);
+ }
+ }
+
+ /* If no file names, read commands from stdin. */
+ if (cf_argc == 0)
+ sflag++;
+ /* If stdin is a tty, be interactive. */
+ if (sflag && isatty(fileno(stdin)))
+ iflag++;
+
+ /* Maybe run a command file... */
+ if (!sflag && cf_argc) {
+ cf_line = 0;
+ cf_name = cf_argv[0];
+ cfp = fopen(cf_name, "r");
+ if (cfp == NULL) {
+ perror(cf_name);
+ exit(1);
+ }
+ error = runfile(cfp);
+ fclose(cfp);
+ exit(error);
+ }
+
+ /* Read commands from stdin. */
+ cf_line = 0;
+ cf_name = "(stdin)";
+ if (iflag) {
+ eflag = 0; /* don't kill shell on error. */
+ sig = setjmp(next_cmd);
+ if (sig == 0) {
+ /* Initialization... */
+ sa.sa_handler = catchsig;
+ sa.sa_flags = 0;
+ sigemptyset(&sa.sa_mask);
+ sigaction(SIGINT, &sa, NULL);
+ sigaction(SIGQUIT, &sa, NULL);
+ sigaction(SIGTERM, &sa, NULL);
+ } else {
+ /* Got here via longjmp. */
+ fprintf(stderr, " signal %d\n", sig);
+ sigemptyset(&sa.sa_mask);
+ sigprocmask(SIG_SETMASK, &sa.sa_mask, NULL);
+ }
+ }
+ error = runfile(stdin);
+ exit (error);
+}
+
+void
+catchsig(sig)
+ int sig;
+{
+ longjmp(next_cmd, sig);
+}
+
+/*
+ * Run command from the passed stdio file pointer.
+ * Returns exit status.
+ */
+int
+runfile(cfp)
+ FILE *cfp;
+{
+ char ibuf[MAXLINE];
+ char *argv[MAXARGS];
+ char *p;
+ int i, argc, exitcode, cpid, cstat;
+
+ /* The command loop. */
+ exitcode = 0;
+ for (;;) {
+ if (iflag) {
+ fprintf(stderr, prompt);
+ fflush(stderr);
+ }
+
+ if ((fgets(ibuf, sizeof(ibuf), cfp)) == NULL)
+ break;
+ cf_line++;
+
+ argc = 0;
+ p = ibuf;
+
+ while (argc < MAXARGS-1) {
+ /* skip blanks or tabs */
+ while ((*p == ' ') || (*p == '\t')) {
+ next_token:
+ *p++ = '\0';
+ }
+ /* end of line? */
+ if ((*p == '\n') || (*p == '#')) {
+ *p = '\0';
+ break; /* to eol */
+ }
+ if (*p == '\0')
+ break;
+ /* save start of token */
+ argv[argc++] = p;
+ /* find end of token */
+ while (*p) {
+ if ((*p == '\n') || (*p == '#')) {
+ *p = '\0';
+ goto eol;
+ }
+ if ((*p == ' ') || (*p == '\t'))
+ goto next_token;
+ p++;
+ }
+ }
+ eol:
+
+ if (argc > 0) {
+ if (xflag) {
+ fprintf(stderr, "x");
+ for (i = 0; i < argc; i++) {
+ fprintf(stderr, " %s", argv[i]);
+ }
+ fprintf(stderr, "\n");
+ }
+ argv[argc] = NULL;
+ exitcode = cmd_eval(argc, argv);
+ }
+
+ /* Collect children. */
+ while ((cpid = waitpid(0, &cstat, WNOHANG)) > 0) {
+ if (iflag) {
+ fprintf(stderr, "[%d] ", cpid);
+ if (WTERMSIG(cstat)) {
+ print_termsig(stderr, cstat);
+ } else {
+ fprintf(stderr, "Exited, status %d\n",
+ WEXITSTATUS(cstat));
+ }
+ }
+ }
+
+ if (exitcode && eflag)
+ break;
+ }
+ /* return status of last command */
+ return (exitcode);
+}
+
+
+/****************************************************************
+ * Table of buildin commands
+ * for cmd_eval() to search...
+ ****************************************************************/
+
+struct cmd {
+ char *name;
+ int (*func)();
+ char *help;
+};
+struct cmd cmd_table[];
+
+/*
+ * Evaluate a command named as argv[0]
+ * with arguments argv[1],argv[2]...
+ * Returns exit status.
+ */
+int
+cmd_eval(argc, argv)
+ int argc;
+ char **argv;
+{
+ struct cmd *cp;
+
+ /*
+ * Do linear search for a builtin command.
+ * Performance does not matter here.
+ */
+ for (cp = cmd_table; cp->name; cp++) {
+ if (!strcmp(cp->name, argv[0])) {
+ /* Pass only args to builtin. */
+ --argc; argv++;
+ return (cp->func(argc, argv));
+ }
+ }
+
+ /*
+ * If no matching builtin, let "run ..."
+ * have a chance to try an external.
+ */
+ return (cmd_run(argc, argv));
+}
+
+/*****************************************************************
+ * Here are the actual commands. For these,
+ * the command name has been skipped, so
+ * argv[0] is the first arg (if any args).
+ * All return an exit status.
+ ****************************************************************/
+
+char help_cd[] = "cd [dir]";
+
+int
+cmd_cd(argc, argv)
+ int argc;
+ char **argv;
+{
+ char *dir;
+ int err;
+
+ if (argc > 0)
+ dir = argv[0];
+ else {
+ dir = getenv("HOME");
+ if (dir == NULL)
+ dir = "/";
+ }
+ if (chdir(dir)) {
+ perror(dir);
+ return (1);
+ }
+ return(0);
+}
+
+char help_exit[] = "exit [n]";
+
+int
+cmd_exit(argc, argv)
+ int argc;
+ char **argv;
+{
+ int val = 0;
+
+ if (argc > 0)
+ val = atoi(argv[0]);
+ exit(val);
+}
+
+char help_help[] = "help [command]";
+
+int
+cmd_help(argc, argv)
+ int argc;
+ char **argv;
+{
+ struct cmd *cp;
+
+ if (argc > 0) {
+ for (cp = cmd_table; cp->name; cp++) {
+ if (!strcmp(cp->name, argv[0])) {
+ printf("usage: %s\n", cp->help);
+ return (0);
+ }
+ }
+ printf("%s: no such command\n", argv[0]);
+ }
+
+ printf("Builtin commands: ");
+ for (cp = cmd_table; cp->name; cp++) {
+ printf(" %s", cp->name);
+ }
+ printf("\nFor specific usage: help [command]\n");
+ return (0);
+}
+
+char help_path[] = "path [dir1:dir2:...]";
+
+int
+cmd_path(argc, argv)
+ int argc;
+ char **argv;
+{
+ int i;
+
+ if (argc <= 0) {
+ printf("%s\n", cur_path);
+ return(0);
+ }
+
+ strncpy(cur_path+5, argv[0], MAXPATH-6);
+ putenv(cur_path);
+
+ return (0);
+}
+
+/*****************************************************************
+ * The "run" command is the big one.
+ * Does fork/exec/wait, redirection...
+ * Returns exit status of child
+ * (or zero for a background job)
+ ****************************************************************/
+
+char help_run[] = "\
+run [-bg] [-i ifile] [-o ofile] [-e efile] program [args...]\n\
+or simply: program [args...]";
+
+int
+cmd_run(argc, argv)
+ int argc;
+ char **argv;
+{
+ struct sigaction sa;
+ int pid, err, cstat, fd;
+ char file[MAXPATHLEN];
+ int background;
+ char *opt, *ifile, *ofile, *efile;
+ extern char **environ;
+
+ /*
+ * Parse options:
+ * -b : background
+ * -i : input file
+ * -o : output file
+ * -e : error file
+ */
+ background = 0;
+ ifile = ofile = efile = NULL;
+ while ((argc > 0) && (argv[0][0] == '-')) {
+ opt = argv[0];
+ --argc; argv++;
+ switch (opt[1]) {
+ case 'b':
+ background++;
+ break;
+ case 'i':
+ ifile = argv[0];
+ goto shift;
+ case 'o':
+ ofile = argv[0];
+ goto shift;
+ case 'e':
+ efile = argv[0];
+ goto shift;
+ default:
+ fprintf(stderr, "run %s: bad option\n", opt);
+ return (1);
+ shift:
+ --argc; argv++;
+ }
+ }
+
+ if (argc <= 0) {
+ fprintf(stderr, "%s:%d run: missing command\n",
+ cf_name, cf_line);
+ return (1);
+ }
+
+ /* Commands containing '/' get no path search. */
+ if (strchr(argv[0], '/')) {
+ strncpy(file, argv[0], sizeof(file)-1);
+ if (access(file, X_OK)) {
+ perror(file);
+ return (1);
+ }
+ } else {
+ if (find_in_path(argv[0], file)) {
+ fprintf(stderr, "%s: command not found\n", argv[0]);
+ return (1);
+ }
+ }
+
+ pid = fork();
+ if (pid == 0) {
+ /* child runs this */
+ /* handle redirection options... */
+ if (ifile)
+ child_newfd(0, ifile, O_RDONLY);
+ if (ofile)
+ child_newfd(1, ofile, O_WRONLY|O_CREAT);
+ if (efile)
+ child_newfd(2, efile, O_WRONLY|O_CREAT);
+ if (background) {
+ /* Ignore SIGINT, SIGQUIT */
+ sa.sa_handler = SIG_IGN;
+ sa.sa_flags = 0;
+ sigemptyset(&sa.sa_mask);
+ sigaction(SIGINT, &sa, NULL);
+ sigaction(SIGQUIT, &sa, NULL);
+ }
+ err = execve(file, argv, environ);
+ perror(argv[0]);
+ return (1);
+ }
+ /* parent */
+ /* Handle background option... */
+ if (background) {
+ fprintf(stderr, "[%d]\n", pid);
+ run_bg_pid = pid;
+ return (0);
+ }
+ if (waitpid(pid, &cstat, 0) < 0) {
+ perror("waitpid");
+ return (1);
+ }
+ if (WTERMSIG(cstat)) {
+ print_termsig(stderr, cstat);
+ }
+ return (WEXITSTATUS(cstat));
+}
+
+/*****************************************************************
+ * table of builtin commands
+ ****************************************************************/
+struct cmd cmd_table[] = {
+ { "cd", cmd_cd, help_cd },
+ { "exit", cmd_exit, help_exit },
+ { "help", cmd_help, help_help },
+ { "path", cmd_path, help_path },
+ { "run", cmd_run, help_run },
+ { 0 },
+};
+
+/*****************************************************************
+ * helper functions for the "run" command
+ ****************************************************************/
+
+int
+find_in_path(cmd, filebuf)
+ char *cmd;
+ char *filebuf;
+{
+ char *dirp, *endp, *bufp; /* dir, end */
+
+ dirp = cur_path + 5;
+ while (*dirp) {
+ endp = dirp;
+ bufp = filebuf;
+ while (*endp && (*endp != ':'))
+ *bufp++ = *endp++;
+ *bufp++ = '/';
+ strcpy(bufp, cmd);
+ if (access(filebuf, X_OK) == 0)
+ return (0);
+ if (*endp == ':')
+ endp++;
+ dirp = endp; /* next dir */
+ }
+ return (-1);
+}
+
+/*
+ * Set the file descriptor SETFD to FILE,
+ * which was opened with OTYPE and MODE.
+ */
+void
+child_newfd(setfd, file, otype)
+ int setfd; /* what to set (i.e. 0,1,2) */
+ char *file;
+ int otype; /* O_RDONLY, etc. */
+{
+ int newfd;
+
+ close(setfd);
+ if ((newfd = open(file, otype, def_omode)) < 0) {
+ perror(file);
+ exit(1);
+ }
+ if (newfd != setfd) {
+ dup2(newfd, setfd);
+ close(newfd);
+ }
+}
+
+void
+print_termsig(fp, cstat)
+ FILE *fp;
+ int cstat;
+{
+ fprintf(fp, "Terminated, signal %d",
+ WTERMSIG(cstat));
+ if (WCOREDUMP(cstat))
+ fprintf(fp, " (core dumped)");
+ fprintf(fp, "\n");
+}
diff --git a/distrib/utils/tls/Makefile b/distrib/utils/tls/Makefile
new file mode 100644
index 00000000000..b91891dbdc2
--- /dev/null
+++ b/distrib/utils/tls/Makefile
@@ -0,0 +1,9 @@
+# $NetBSD: Makefile,v 1.1.1.1 1995/10/08 23:08:47 gwr Exp $
+# Tiny ls (i.e. for boot media)
+
+PROG= tls
+NOMAN=
+
+all: ${PROG}
+
+.include <bsd.prog.mk>
diff --git a/distrib/utils/tls/tls.c b/distrib/utils/tls/tls.c
new file mode 100644
index 00000000000..96ffa759d42
--- /dev/null
+++ b/distrib/utils/tls/tls.c
@@ -0,0 +1,154 @@
+/* $NetBSD: tls.c,v 1.1.1.1 1995/10/08 23:08:47 gwr Exp $ */
+
+/*
+ * Copyright (c) 1995 Gordon W. Ross
+ * 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.
+ * 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. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ * 4. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Gordon W. Ross
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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 <sys/types.h>
+#include <sys/stat.h>
+
+#include <dirent.h>
+#include <stdio.h>
+#include <time.h>
+
+int iflag;
+
+void show_long(char *fname);
+
+main(argc, argv)
+ int argc;
+ char **argv;
+{
+ DIR *dfp;
+ struct dirent *d;
+
+ /* If given an arg, just cd there first. */
+ if (argc > 1) {
+ if (chdir(argv[1])) {
+ perror(argv[1]);
+ exit(1);
+ }
+ }
+ if (argc > 2)
+ fprintf(stderr, "extra args ignored\n");
+
+ dfp = opendir(".");
+ if (dfp == NULL) {
+ perror("opendir");
+ return;
+ }
+
+ while ((d = readdir(dfp)) != NULL)
+ show_long(d->d_name);
+
+ closedir(dfp);
+ exit(0);
+}
+
+/* XXX - This is system dependent... */
+char ifmt_name[16] = {
+ '?', /* 0: nothing */
+ 'P', /* 1: fifo (pipe) */
+ 'C', /* 2: chr device */
+ '?', /* 3: ? */
+ 'D', /* 4: dir */
+ '?', /* 5: ? */
+ 'B', /* 6: blk device */
+ '?', /* 7: ? */
+ 'F', /* 8: file */
+ '?', /* 9: ? */
+ 'L', /* A: link */
+ '?', /* B: ? */
+ 'S', /* C: socket */
+ '?', /* D: ? */
+ 'W', /* E: whiteout */
+ '?' /* F: ? */
+};
+
+void
+show_long(fname)
+ char *fname;
+{
+ struct stat st;
+ int ifmt;
+ char ifmt_c;
+ char *date;
+
+ if (lstat(fname, &st)) {
+ perror(fname);
+ return;
+ }
+ ifmt = (st.st_mode >> 12) & 15;
+ ifmt_c = ifmt_name[ifmt];
+
+ if (iflag) {
+ /* inode number */
+ printf("%6d ", st.st_ino);
+ }
+
+ /* fmt/mode */
+ printf("%c:", ifmt_c);
+ printf("%04o ", st.st_mode & 07777);
+
+ /* nlinks, uid, gid */
+ printf("%2d ", st.st_nlink);
+ printf("%4d ", st.st_uid);
+ printf("%4d ", st.st_gid);
+
+ /* size or major/minor */
+ if ((ifmt_c == 'B') || (ifmt_c == 'C')) {
+ printf("%2d, ", major(st.st_rdev));
+ printf("%3d ", minor(st.st_rdev));
+ } else {
+ printf("%7d ", (int) st.st_size);
+ }
+
+ /* date */
+ date = ctime(&st.st_mtime);
+ date += 4; /* skip day-of-week */
+ date[12] = '\0'; /* to the minute */
+ printf("%s ", date);
+
+ /* name */
+ printf("%s", fname);
+
+ if (ifmt_c == 'L') {
+ char linkto[256];
+ int n;
+
+ n = readlink(fname, linkto, sizeof(linkto)-1);
+ if (n < 0) {
+ perror(fname);
+ return;
+ }
+ linkto[n] = '\0';
+ printf(" -> %s", linkto);
+ }
+ printf("\n");
+}
diff --git a/distrib/utils/x_dd/Makefile b/distrib/utils/x_dd/Makefile
new file mode 100644
index 00000000000..208facc52ad
--- /dev/null
+++ b/distrib/utils/x_dd/Makefile
@@ -0,0 +1,18 @@
+# $NetBSD: Makefile,v 1.3 1995/10/13 18:35:26 gwr Exp $
+# Build a smaller dd (i.e. for boot media)
+
+PROG= dd
+NOMAN=
+
+SRCDIR= ${BSDSRCDIR}/bin/dd
+
+SRCS= args.c conv.c dd.c misc.c position.c
+# SRCS+= conv_tab.c (not used)
+
+CFLAGS+= -DNO_CONV -I${SRCDIR}
+
+all: ${PROG}
+
+.include <bsd.prog.mk>
+
+.PATH: ${SRCDIR}
diff --git a/distrib/utils/x_ifconfig/Makefile b/distrib/utils/x_ifconfig/Makefile
new file mode 100644
index 00000000000..1a778e00fe1
--- /dev/null
+++ b/distrib/utils/x_ifconfig/Makefile
@@ -0,0 +1,14 @@
+# $NetBSD: Makefile,v 1.3 1995/10/13 18:35:28 gwr Exp $
+# Build a smaller ifconfig (i.e. for boot media)
+
+PROG= ifconfig
+NOMAN=
+
+SRCDIR= ${BSDSRCDIR}/sbin/ifconfig
+CFLAGS+= -DINET_ONLY -I${SRCDIR}
+
+all: ${PROG}
+
+.include <bsd.prog.mk>
+
+.PATH: ${SRCDIR}
diff --git a/distrib/vax/Makefile b/distrib/vax/Makefile
new file mode 100644
index 00000000000..078cbf559f1
--- /dev/null
+++ b/distrib/vax/Makefile
@@ -0,0 +1,5 @@
+# $NetBSD: Makefile,v 1.1 1995/10/01 21:22:13 ragge Exp $
+
+SUBDIR= inst tk50 rx50 rx33
+
+.include <bsd.subdir.mk>
diff --git a/distrib/vax/Makefile.inc b/distrib/vax/Makefile.inc
new file mode 100644
index 00000000000..002fe3895cb
--- /dev/null
+++ b/distrib/vax/Makefile.inc
@@ -0,0 +1,4 @@
+# $Id: Makefile.inc,v 1.1 1995/10/18 08:37:54 deraadt Exp $
+
+# Revision is 1.0
+REV= 10A
diff --git a/distrib/vax/inst-common/Makefile.inc b/distrib/vax/inst-common/Makefile.inc
new file mode 100644
index 00000000000..e7dbaa55dde
--- /dev/null
+++ b/distrib/vax/inst-common/Makefile.inc
@@ -0,0 +1,66 @@
+# $Id: Makefile.inc,v 1.1 1995/10/18 08:37:54 deraadt Exp $
+
+# TOP is assumed to be defined by Makefile including this one.
+
+CBIN= instbin
+COMMONDIR= ${TOP}/inst-common
+
+MOUNT_POINT?= /mnt
+VND?= vnd0
+VND_DEV= /dev/${VND}c
+VND_RDEV= /dev/r${VND}c
+IMAGE?= miniroot-${REV}.fs
+BOOTSYS= bootroot-${REV}.fs
+MDEC= ${DESTDIR}/usr/mdec
+
+LISTS= ${COMMONDIR}/list ${.CURDIR}/list
+CRUNCHCONF= ${COMMONDIR}/${CBIN}.conf
+MTREE= ${COMMONDIR}/mtree.conf
+
+all: ${CBIN} bootroot
+ dd if=/dev/zero of=${IMAGE} bs=64k count=32
+ vnconfig -v -c ${VND_DEV} ${IMAGE}
+ newfs -O -m 0 -o space -i 8192 ${VND_RDEV} miniroot
+ mount ${VND_DEV} ${MOUNT_POINT}
+ mtree -def ${MTREE} -p ${MOUNT_POINT}/ -u
+ TOPDIR=${TOP} CURDIR=${.CURDIR} OBJDIR=${.OBJDIR} \
+ TARGDIR=${MOUNT_POINT} sh ${TOP}/runlist.sh ${LISTS}
+ @echo ""
+ @df -i ${MOUNT_POINT}
+ @echo ""
+ umount -f ${MOUNT_POINT}
+ vnconfig -u ${VND_DEV}
+
+bootroot: edlabel copy xxboot boot
+ dd if=/dev/zero of=${BOOTSYS} bs=64k count=4
+ vnconfig -v -c ${VND_DEV} ${BOOTSYS}
+ newfs -O -m 0 -o space -i 8192 ${VND_RDEV} bootroot
+ dd if=xxboot of=/dev/rvnd0a count=16
+ mount ${VND_DEV} ${MOUNT_POINT}
+ cp edlabel copy boot ${MOUNT_POINT}
+ umount -f ${MOUNT_POINT}
+ vnconfig -u ${VND_DEV}
+
+edlabel copy xxboot boot:
+ (cd /sys/arch/vax/boot;make)
+ cp /sys/arch/vax/boot/edlabel .
+ cp /sys/arch/vax/boot/copy .
+ cp /sys/arch/vax/boot/xxboot .
+ cp /sys/arch/vax/boot/boot .
+
+unconfig:
+ -umount -f ${MOUNT_POINT}
+ -vnconfig -u ${VND_DEV} ${IMAGE}
+ -/bin/rm -f ${IMAGE}
+
+${CBIN}.mk ${CBIN}.cache ${CBIN}.c: ${CRUNCHCONF}
+ crunchgen ${CRUNCHCONF}
+
+${CBIN}: ${CBIN}.mk ${CBIN}.cache ${CBIN}.c
+ make -f ${CBIN}.mk
+
+clean cleandir:
+ /bin/rm -f core ${IMAGE} ${CBIN} ${CBIN}.mk ${CBIN}.cache *.o *.lo *.c
+
+.include <bsd.obj.mk>
+.include <bsd.subdir.mk>
diff --git a/distrib/vax/inst-common/dot.commonutils b/distrib/vax/inst-common/dot.commonutils
new file mode 100644
index 00000000000..53ca17fc97c
--- /dev/null
+++ b/distrib/vax/inst-common/dot.commonutils
@@ -0,0 +1,113 @@
+#
+# Copyright (c) 1994 Christopher G. Demetriou
+# 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.
+# 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 Christopher G. Demetriou.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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, 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.
+$
+$ $Id: dot.commonutils,v 1.1 1995/10/18 08:37:54 deraadt Exp $
+
+# Installation utilites (functions), to get NetBSD installed on
+# the hard disk. These are meant to be invoked from the shell prompt,
+# by people installing NetBSD.
+
+Set_tmp_dir()
+{
+ def_tmp_dir=`pwd`
+ if [ "$def_tmp_dir" = "/" -o "$def_tmp_dir" = "/mnt" ]; then
+ def_tmp_dir=/mnt/usr/distrib
+ fi
+
+ echo -n "What directory should be used to find and/or store "
+ echo "installtion"
+ echo -n "files? [$def_tmp_dir] "
+ read tmp_dir
+ if [ "$tmp_dir" = "" ]; then
+ tmp_dir=$def_tmp_dir
+ fi
+ if [ ! -d "$tmp_dir" ]; then
+ /bin/rm -rf $tmp_dir
+ mkdir -p $tmp_dir
+ fi
+}
+
+Tmp_dir()
+{
+ if [ "$tmp_dir" = "" ]; then
+ Set_tmp_dir
+ fi
+ cd $tmp_dir
+}
+
+Load_fd()
+{
+ Tmp_dir
+ which=
+ while [ "$which" != "a" -a "$which" != "b" ]; do
+ echo -n "Read from which floppy drive ('a' or 'b')? [a] "
+ read which
+ if [ "X$which" = "X" ]; then
+ which=a
+ fi
+ done
+ while echo -n "Insert floppy (hit ^C to terminate, enter to load): "
+ do
+ mount -t msdos /dev/fd0$which /mnt2
+ cp -rp /mnt2/* .
+ umount /mnt2
+ done
+}
+
+Load_tape()
+{
+ Tmp_dir
+ echo -n "Which tape drive will you be using? [rst0] "
+ read which
+ if [ "X$which" = "X" ]; then
+ which=rst0
+ fi
+ echo -n "Insert the tape into the tape drive and hit return to "
+ echo -n "continue..."
+ read foo
+ echo "Extracting files from the tape..."
+ tar xvfp /dev/$which
+ echo "Done."
+}
+
+Extract()
+{
+ Tmp_dir
+ echo -n "Would you like to list the files as they're extracted? [n] "
+ read verbose
+ case $verbose in
+ y*|Y*)
+ tarverbose=v
+ ;;
+ *)
+ tarverbose=
+ ;;
+ esac
+ cat "$1".??? | gunzip | (cd / ; tar xfp$tarverbose -)
+}
diff --git a/distrib/vax/inst-common/instbin.conf b/distrib/vax/inst-common/instbin.conf
new file mode 100644
index 00000000000..d8378a91b69
--- /dev/null
+++ b/distrib/vax/inst-common/instbin.conf
@@ -0,0 +1,23 @@
+#
+# kcbin.conf - unified binary for the kc floppy
+# $Id: instbin.conf,v 1.1 1995/10/18 08:37:54 deraadt Exp $
+#
+
+srcdirs /usr/src/bin /usr/src/sbin /usr/src/usr.bin /usr/src/usr.sbin
+srcdirs /usr/src/gnu/usr.bin
+
+progs gawk cat chmod chown chroot cp df disklabel ed expr fsck ftp
+progs gzip ifconfig init ln ls mkdir mknod more mount mt dd
+progs mount_ffs mount_nfs mv newfs reboot rm route sed sh shutdown
+progs slattach strings stty sync tar test umount update
+
+ln chown chgrp
+ln gzip gzcat gunzip
+ln mount_ffs ffs
+ln mount_nfs nfs
+ln gawk awk
+ln sh -sh # init invokes the shell this way
+ln test [
+ln reboot halt
+
+libs -ledit -lutil -ltermcap -lcrypt -ll -lm
diff --git a/distrib/vax/inst-common/list b/distrib/vax/inst-common/list
new file mode 100644
index 00000000000..6f9a778ef5d
--- /dev/null
+++ b/distrib/vax/inst-common/list
@@ -0,0 +1,75 @@
+# $Id: list,v 1.1 1995/10/18 08:37:54 deraadt Exp $
+
+# copy the crunched binary, link to it, and kill it
+COPY ${OBJDIR}/instbin instbin
+LINK instbin bin/cat
+LINK instbin bin/chmod
+LINK instbin bin/cp
+LINK instbin bin/dd
+LINK instbin bin/df
+LINK instbin bin/ed
+LINK instbin bin/expr
+LINK instbin bin/ln
+LINK instbin bin/ls
+LINK instbin bin/mkdir
+LINK instbin bin/mv
+LINK instbin bin/mt
+LINK instbin bin/rm
+LINK instbin bin/sh
+LINK instbin bin/-sh
+LINK instbin bin/stty
+LINK instbin bin/sync
+LINK instbin bin/test
+LINK instbin bin/[
+LINK instbin sbin/disklabel
+LINK instbin sbin/fsck
+LINK instbin sbin/halt
+LINK instbin sbin/ifconfig
+LINK instbin sbin/init
+LINK instbin sbin/mknod
+LINK instbin sbin/mount
+LINK instbin sbin/mount_ffs
+LINK instbin sbin/mount_nfs
+LINK instbin sbin/newfs
+LINK instbin sbin/reboot
+LINK instbin sbin/route
+LINK instbin sbin/shutdown
+LINK instbin sbin/slattach
+LINK instbin sbin/umount
+LINK instbin usr/bin/awk
+LINK instbin usr/bin/chgrp
+LINK instbin usr/bin/ftp
+LINK instbin usr/bin/gunzip
+LINK instbin usr/bin/gzcat
+LINK instbin usr/bin/gzip
+LINK instbin usr/bin/more
+LINK instbin usr/bin/sed
+LINK instbin usr/bin/strings
+LINK instbin usr/bin/tar
+# LINK instbin usr/sbin/bad144
+LINK instbin usr/sbin/chown
+LINK instbin usr/sbin/chroot
+LINK instbin usr/sbin/update
+SPECIAL /bin/rm instbin
+
+# copy the MAKEDEV script and make some devices
+COPY ${DESTDIR}/dev/MAKEDEV dev/MAKEDEV
+SPECIAL cd dev; sh MAKEDEV std tms0 ra0 ra1 ra2 ra3 ra4 ra5 ra6 ra7
+
+# we need the contents of /usr/mdec (XXX)
+# COPY ${DESTDIR}/usr/mdec/* usr/mdec
+
+# various files that we need in /etc for the install
+COPY ${DESTDIR}/etc/group etc
+COPY ${DESTDIR}/etc/master.passwd etc
+COPY ${DESTDIR}/etc/passwd etc
+COPY ${DESTDIR}/etc/protocols etc
+COPY ${DESTDIR}/etc/pwd.db etc
+COPY ${DESTDIR}/etc/services etc
+COPY ${DESTDIR}/etc/spwd.db etc
+
+# and the common installation tools
+COPY ${TOPDIR}/inst-common/termcap.vt usr/share/misc/termcap
+
+COPY /gennetbsd .
+COPY /boot .
diff --git a/distrib/vax/inst-common/mtree.conf b/distrib/vax/inst-common/mtree.conf
new file mode 100644
index 00000000000..f9283142efe
--- /dev/null
+++ b/distrib/vax/inst-common/mtree.conf
@@ -0,0 +1,72 @@
+# $Id: mtree.conf,v 1.1 1995/10/18 08:37:54 deraadt Exp $
+
+/set type=dir uname=root gname=wheel mode=0755
+# .
+.
+
+# ./bin
+bin
+# ./bin
+..
+
+# ./dev
+dev
+# ./dev
+..
+
+# ./etc
+etc
+# ./etc
+..
+
+# ./mnt
+mnt
+# ./mnt
+..
+
+# ./mnt2
+mnt2
+# ./mnt2
+..
+
+# ./sbin
+sbin
+# ./sbin
+..
+
+# ./tmp
+tmp
+# ./tmp
+..
+
+# ./usr
+usr
+
+# ./usr/bin
+bin
+# ./usr/bin
+..
+
+# ./usr/mdec
+mdec
+# ./usr/mdec
+..
+
+# ./usr/sbin
+sbin
+# ./usr/sbin
+..
+
+# ./usr/share
+share
+
+# ./usr/share/misc
+misc
+# ./usr/share/misc
+..
+
+# ./usr/share
+..
+
+# ./usr
+..
diff --git a/distrib/vax/inst-common/termcap.vt b/distrib/vax/inst-common/termcap.vt
new file mode 100644
index 00000000000..b885de9d0a6
--- /dev/null
+++ b/distrib/vax/inst-common/termcap.vt
@@ -0,0 +1,64 @@
+# Copyright (c) 1980, 1985, 1989 The Regents of the University of California.
+# 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.
+# 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 University of
+# California, Berkeley and its contributors.
+# 4. Neither the name of the University nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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, 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.
+#
+# @(#)termcap.src 5.109 (Berkeley) 3/8/93
+#
+vt200|vt220|dec-vt220|vt200-js|vt220-js|dec vt200 series with jump scroll:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:ct=\E[3g:dc=\E[P:dl=\E[M:\
+ :ei=\E[4l:im=\E[4h:k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:\
+ :k5=\E[21~:k6=\E[23~:k7=\E[24~:k8=\E[25~:kD=\E[3~:kH=\E[4~:\
+ :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:kh=\E[1~:km:mi:ms:\
+ :if=/usr/share/tabset/vt100:se=\E[27m:st=\EH:ue=\E[24m:\
+ :tc=vt100:
+vt100|dec-vt100|vt100-am|vt100am|dec vt100:\
+ :bl=^G:cr=^M:it#8:\
+ :do=^J:co#80:li#24:cl=50\E[;H\E[2J:sf=2*\ED:\
+ :le=^H:bs:am:cm=5\E[%i%d;%dH:nd=2\E[C:up=2\E[A:cb=3\E[1K:\
+ :ce=3\E[K:cd=50\E[J:so=2\E[7m:se=2\E[m:us=2\E[4m:ue=2\E[m:\
+ :md=2\E[1m:mr=2\E[7m:mb=2\E[5m:me=2\E[m:is=\E[1;24r\E[24;1H:\
+ :if=/usr/share/tabset/vt100:\
+ :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:ks=\E[?1h\E=:ke=\E[?1l\E>:\
+ :ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:kb=^H:\
+ :ho=\E[H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:pt:sr=2*\EM:vt#3:xn:\
+ :sc=\E7:rc=\E8:cs=\E[%i%d;%dr:
+vt300|vt320|vt300-80|VT 300 with 80 columns, on VMS:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:SR=1*\E[%dM:UP=\E[%dA:al=\E[L:\
+ :am:bl=^G:bs:cd=2*\E[J:ce=2*\E[K:cl=45\E[H\E[2J:\
+ :cm=%i\E[%d;%dH:co#80:cr=\r:cs=\E[%i%d;%dr:ct=\E[3g:\
+ :dc=\E[P:dl=\E[M:dm=:do=\ED:ec=\E[%dX:ed=:ei=\E[4l:\
+ :ho=\E[H:ic:im=\E[4h:it#8:k1=\EOP:k2=\EOQ:k3=\EOR:\
+ :k4=\EOS:kd=\E[B:ke=\E[?1l\E>:kl=\E[D:kn#4:kr=\E[C:ks=\E[?1h\E=:\
+ :ku=\E[A:le=^H:li#24:mb=\E[5m:md=\E[1m:me=\E[0m:mi:\
+ :mr=\E[7m:ms:nd=\E[C:nl=\ED:nw=\EE:pf=\E[?4i:po=\E[?5i:\
+ :ps=\E[i:rc=\E8:sc=\E7:se=\E[27m:sf=1*\ED:so=\E[7m:\
+ :sr=1*\EM:st=\EH:ue=\E[24m:up=\EM:us=\E[4m:xn:
diff --git a/distrib/vax/inst/Makefile b/distrib/vax/inst/Makefile
new file mode 100644
index 00000000000..fdf54525970
--- /dev/null
+++ b/distrib/vax/inst/Makefile
@@ -0,0 +1,8 @@
+# $Id: Makefile,v 1.1 1995/10/18 08:37:54 deraadt Exp $
+
+TOP= ${.CURDIR}/..
+
+.include "${TOP}/Makefile.inc"
+IMAGE= miniroot-${REV}.fs
+
+.include "${TOP}/inst-common/Makefile.inc"
diff --git a/distrib/vax/inst/disktab.preinstall b/distrib/vax/inst/disktab.preinstall
new file mode 100644
index 00000000000..5fe26a7d81c
--- /dev/null
+++ b/distrib/vax/inst/disktab.preinstall
@@ -0,0 +1,29 @@
+# Disk geometry and partition layout tables.
+# Key:
+# dt controller type
+# ty type of disk (fixed, removeable, simulated)
+# d[0-4] drive-type-dependent parameters
+# ns #sectors/track
+# nt #tracks/cylinder
+# nc #cylinders/disk
+# sc #sectors/cylinder, nc*nt default
+# su #sectors/unit, sc*nc default
+# se sector size, DEV_BSIZE default
+# rm rpm, 3600 default
+# sf supports bad144-style bad sector forwarding
+# sk sector skew per track, default 0
+# cs sector skew per cylinder, default 0
+# hs headswitch time, default 0
+# ts one-cylinder seek time, default 0
+# il sector interleave (n:1), 1 default
+# bs boot block size, default BBSIZE
+# sb superblock size, default SBSIZE
+# o[a-h] partition offsets in sectors
+# p[a-h] partition sizes in sectors
+# b[a-h] partition block sizes in bytes
+# f[a-h] partition fragment sizes in bytes
+# t[a-h] partition types (filesystem, swap, etc)
+#
+# All partition sizes reserve space for bad sector tables.
+# (5 cylinders needed for maintenance + replacement sectors)
+#
diff --git a/distrib/vax/inst/dot.profile b/distrib/vax/inst/dot.profile
new file mode 100644
index 00000000000..a4bd1fdfa81
--- /dev/null
+++ b/distrib/vax/inst/dot.profile
@@ -0,0 +1,15 @@
+PATH=/sbin:/bin:/usr/bin:/usr/sbin:/ export PATH
+TERM=vt100 export TERM
+
+# set up some sane defaults
+echo 'erase ^?, werase ^H, kill ^U, intr ^C'
+stty newcrt werase ^H intr ^C kill ^U erase ^?
+echo
+echo "Now when NetBSD is booted you're on your own."
+echo "Remember to write bootblocks and to make devices"
+echo "in dev in your new root filesystem before booting."
+echo "Also remember to copy /gennetbsd and /boot to the"
+echo "new root; it's not there by default."
+echo
+echo "Good luck!"
+echo
diff --git a/distrib/vax/inst/list b/distrib/vax/inst/list
new file mode 100644
index 00000000000..a36d92e3a00
--- /dev/null
+++ b/distrib/vax/inst/list
@@ -0,0 +1,7 @@
+# $Id: list,v 1.1 1995/10/18 08:37:55 deraadt Exp $
+
+# the disktab explanation file
+COPY disktab.preinstall etc
+
+# and the installation tools
+COPY dot.profile .profile
diff --git a/distrib/vax/list2sh.awk b/distrib/vax/list2sh.awk
new file mode 100644
index 00000000000..239c42f5133
--- /dev/null
+++ b/distrib/vax/list2sh.awk
@@ -0,0 +1,39 @@
+# $Id: list2sh.awk,v 1.1 1995/10/18 08:37:54 deraadt Exp $
+
+BEGIN {
+ printf("cd ${CURDIR}\n");
+ printf("\n");
+}
+/^$/ || /^#/ {
+ print $0;
+ next;
+}
+$1 == "COPY" {
+ printf("echo '%s'\n", $0);
+ printf("cp %s ${TARGDIR}/%s\n", $2, $3);
+ next;
+}
+$1 == "LINK" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR}; ln %s %s)\n", $2, $3);
+ next;
+}
+$1 == "SPECIAL" {
+ printf("echo '%s'\n", $0);
+ printf("(cd ${TARGDIR};");
+ for (i = 2; i <= NF; i++)
+ printf(" %s", $i);
+ printf(")\n");
+ next;
+}
+{
+ printf("echo '%s'\n", $0);
+ printf("echo 'Unknown keyword \"%s\" at line %d of input.'\n", $1, NR);
+ printf("exit 1\n");
+ exit 1;
+}
+END {
+ printf("\n");
+ printf("exit 0\n");
+ exit 0;
+}
diff --git a/distrib/vax/runlist.sh b/distrib/vax/runlist.sh
new file mode 100644
index 00000000000..d49ed331c55
--- /dev/null
+++ b/distrib/vax/runlist.sh
@@ -0,0 +1,13 @@
+# $Id: runlist.sh,v 1.1 1995/10/18 08:37:54 deraadt Exp $
+
+if [ "X$1" = "X-d" ]; then
+ SHELLCMD=cat
+ shift
+else
+ SHELLCMD="sh -e"
+fi
+
+( while [ "X$1" != "X" ]; do
+ cat $1
+ shift
+done ) | awk -f ${TOPDIR}/list2sh.awk | ${SHELLCMD}
diff --git a/distrib/vax/rx33/Makefile b/distrib/vax/rx33/Makefile
new file mode 100644
index 00000000000..11686216ea5
--- /dev/null
+++ b/distrib/vax/rx33/Makefile
@@ -0,0 +1,14 @@
+# $NetBSD: Makefile,v 1.1 1995/10/01 21:22:40 ragge Exp $
+#
+# Create RX33 floppies.
+
+.include "../Makefile.inc"
+
+all:
+ cp ../inst/bootroot-${REV}.fs rx33-bootdisk-${REV}
+ dd if=../inst/miniroot-${REV}.fs of=rx33-copy1-${REV} bs=512 count=2400
+ dd if=../inst/miniroot-${REV}.fs of=rx33-copy2-${REV} \
+ bs=512 skip=2400 count=2400
+
+.include <bsd.obj.mk>
+.include <bsd.subdir.mk>
diff --git a/distrib/vax/rx50/Makefile b/distrib/vax/rx50/Makefile
new file mode 100644
index 00000000000..bad9e556713
--- /dev/null
+++ b/distrib/vax/rx50/Makefile
@@ -0,0 +1,22 @@
+# $NetBSD: Makefile,v 1.1 1995/10/01 21:22:42 ragge Exp $
+#
+# Create RX50 floppies.
+
+.include "../Makefile.inc"
+
+all:
+ cp ../inst/bootroot-${REV}.fs rx50-bootdisk-${REV}
+ dd if=../inst/miniroot-${REV}.fs of=rx50-copy1-${REV} bs=512 count=800
+ dd if=../inst/miniroot-${REV}.fs of=rx50-copy2-${REV} \
+ bs=512 skip=800 count=800
+ dd if=../inst/miniroot-${REV}.fs of=rx50-copy3-${REV} \
+ bs=512 skip=1600 count=800
+ dd if=../inst/miniroot-${REV}.fs of=rx50-copy4-${REV} \
+ bs=512 skip=2400 count=800
+ dd if=../inst/miniroot-${REV}.fs of=rx50-copy5-${REV} \
+ bs=512 skip=3200 count=800
+ dd if=../inst/miniroot-${REV}.fs of=rx50-copy6-${REV} \
+ bs=512 skip=4000 count=800
+
+.include <bsd.obj.mk>
+.include <bsd.subdir.mk>
diff --git a/distrib/vax/tk50/Makefile b/distrib/vax/tk50/Makefile
new file mode 100644
index 00000000000..c56af1ddf52
--- /dev/null
+++ b/distrib/vax/tk50/Makefile
@@ -0,0 +1,40 @@
+# $NetBSD: Makefile,v 1.1 1995/10/01 21:22:45 ragge Exp $
+#
+# Create TK50 files and tapes.
+
+TAPEDEV=mt8
+
+.include "../Makefile.inc"
+
+all:
+ cp ../inst/bootroot-${REV}.fs tk50-file1-${REV}
+ cp ../inst/miniroot-${REV}.fs tk50-file2-${REV}
+
+tape:
+.if !defined(DESTDIR)
+ @echo 'DESTDIR' must be defined \(will make distribution\).
+ @false
+
+.else
+ mt -f /dev/r${TAPEDEV} rewind
+ dd if=tk50-file1-${REV} of=/dev/nr${TAPEDEV} bs=512
+ dd if=tk50-file2-${REV} of=/dev/nr${TAPEDEV} bs=512
+ dd if=${DESTDIR}/snapshot/bin.tar.gz of=/dev/nr${TAPEDEV} bs=64k
+ dd if=${DESTDIR}/snapshot/dev.tar.gz of=/dev/nr${TAPEDEV} bs=64k
+ dd if=${DESTDIR}/snapshot/etc.tar.gz of=/dev/nr${TAPEDEV} bs=64k
+ dd if=${DESTDIR}/snapshot/sbin.tar.gz of=/dev/nr${TAPEDEV} bs=64k
+ dd if=${DESTDIR}/snapshot/usr.bin.tar.gz of=/dev/nr${TAPEDEV} bs=64k
+ dd if=${DESTDIR}/snapshot/usr.games.tar.gz of=/dev/nr${TAPEDEV} bs=64k
+ dd if=${DESTDIR}/snapshot/usr.include.tar.gz of=/dev/nr${TAPEDEV} bs=64k
+ dd if=${DESTDIR}/snapshot/usr.lib.tar.gz of=/dev/nr${TAPEDEV} bs=64k
+ dd if=${DESTDIR}/snapshot/usr.libexec.tar.gz of=/dev/nr${TAPEDEV} bs=64k
+ dd if=${DESTDIR}/snapshot/usr.misc.tar.gz of=/dev/nr${TAPEDEV} bs=64k
+ dd if=${DESTDIR}/snapshot/usr.sbin.tar.gz of=/dev/nr${TAPEDEV} bs=64k
+ dd if=${DESTDIR}/snapshot/usr.share.tar.gz of=/dev/nr${TAPEDEV} bs=64k
+ dd if=${DESTDIR}/snapshot/var.tar.gz of=/dev/nr${TAPEDEV} bs=64k
+ mt -f /dev/r${TAPEDEV} rewind
+ @echo Distribution tape is ready.
+.endif
+
+.include <bsd.obj.mk>
+.include <bsd.subdir.mk>