summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
Diffstat (limited to 'etc')
-rw-r--r--etc/MAKEDEV1778
-rw-r--r--etc/MAKEDEV.local50
-rw-r--r--etc/Makefile223
-rw-r--r--etc/amd.map4
-rw-r--r--etc/apmd.conf51
-rw-r--r--etc/auth.conf10
-rw-r--r--etc/crontab27
-rw-r--r--etc/csh.cshrc3
-rw-r--r--etc/csh.login15
-rw-r--r--etc/csh.logout3
-rw-r--r--etc/defaults/Makefile8
-rw-r--r--etc/defaults/pccard.conf2135
-rw-r--r--etc/defaults/periodic.conf247
-rw-r--r--etc/defaults/rc.conf445
-rw-r--r--etc/dhclient.conf8
-rw-r--r--etc/disktab235
-rw-r--r--etc/dm.conf20
-rw-r--r--etc/etc.alpha/disktab224
-rw-r--r--etc/etc.alpha/rc.alpha28
-rw-r--r--etc/etc.alpha/ttys309
-rw-r--r--etc/etc.amd64/rc.amd6454
-rw-r--r--etc/etc.amd64/ttys307
-rw-r--r--etc/etc.i386/disktab235
-rw-r--r--etc/etc.i386/rc.i38654
-rw-r--r--etc/etc.i386/ttys307
-rw-r--r--etc/etc.ia64/disktab218
-rw-r--r--etc/etc.ia64/rc.ia6417
-rw-r--r--etc/etc.ia64/ttys307
-rw-r--r--etc/etc.sparc64/disktab224
-rw-r--r--etc/etc.sparc64/rc.sparc649
-rw-r--r--etc/etc.sparc64/ttys311
-rw-r--r--etc/fbtab4
-rw-r--r--etc/ftpusers23
-rw-r--r--etc/gettytab223
-rw-r--r--etc/group26
-rw-r--r--etc/hosts30
-rw-r--r--etc/hosts.allow88
-rw-r--r--etc/hosts.equiv4
-rw-r--r--etc/hosts.lpd4
-rw-r--r--etc/inetd.conf121
-rw-r--r--etc/isdn/Makefile25
-rwxr-xr-xetc/isdn/answer97
-rw-r--r--etc/isdn/holidays.D51
-rw-r--r--etc/isdn/isdnd.rates.A39
-rw-r--r--etc/isdn/isdnd.rates.D50
-rw-r--r--etc/isdn/isdnd.rates.F152
-rw-r--r--etc/isdn/isdnd.rates.L45
-rw-r--r--etc/isdn/isdnd.rates.UK.BT61
-rw-r--r--etc/isdn/isdnd.rc.sample409
-rw-r--r--etc/isdn/isdntel.alias.sample21
-rwxr-xr-xetc/isdn/isdntel.sh98
-rwxr-xr-xetc/isdn/record99
-rwxr-xr-xetc/isdn/tell87
-rwxr-xr-xetc/isdn/tell-record89
-rwxr-xr-xetc/isdn/unknown_incoming79
-rw-r--r--etc/kerberosIV/README36
-rw-r--r--etc/kerberosIV/krb.conf9
-rw-r--r--etc/kerberosIV/krb.realms3
-rw-r--r--etc/locale.alias76
-rw-r--r--etc/locale.deprecated17
-rw-r--r--etc/login.access46
-rw-r--r--etc/login.conf316
-rw-r--r--etc/mail/Makefile237
-rw-r--r--etc/mail/README58
-rw-r--r--etc/mail/access.sample10
-rw-r--r--etc/mail/aliases70
-rw-r--r--etc/mail/mailer.conf10
-rw-r--r--etc/mail/mailertable.sample7
-rw-r--r--etc/mail/virtusertable.sample11
-rw-r--r--etc/man.alias4
-rw-r--r--etc/master.passwd21
-rw-r--r--etc/minfree1
-rw-r--r--etc/modems34
-rw-r--r--etc/moduli158
-rw-r--r--etc/motd24
-rw-r--r--etc/mtree/BSD.include.dist146
-rw-r--r--etc/mtree/BSD.local.dist416
-rw-r--r--etc/mtree/BSD.release.dist22
-rw-r--r--etc/mtree/BSD.root.dist80
-rw-r--r--etc/mtree/BSD.sendmail.dist14
-rw-r--r--etc/mtree/BSD.usr.dist906
-rw-r--r--etc/mtree/BSD.var.dist90
-rw-r--r--etc/mtree/BSD.x11-4.dist420
-rw-r--r--etc/mtree/BSD.x11.dist302
-rw-r--r--etc/mtree/Makefile8
-rw-r--r--etc/mtree/README50
-rw-r--r--etc/namedb/Makefile9
-rw-r--r--etc/namedb/PROTO.localhost-v6.rev17
-rw-r--r--etc/namedb/PROTO.localhost.rev17
-rwxr-xr-xetc/namedb/make-localhost47
-rw-r--r--etc/namedb/named.conf118
-rw-r--r--etc/namedb/named.root83
-rw-r--r--etc/netconfig19
-rwxr-xr-xetc/netstart74
-rw-r--r--etc/network.subr225
-rw-r--r--etc/networks17
-rw-r--r--etc/newsyslog.conf27
-rw-r--r--etc/nls.alias78
-rw-r--r--etc/nsmb.conf56
-rw-r--r--etc/opieaccess13
-rw-r--r--etc/pam.d/Makefile10
-rw-r--r--etc/pam.d/README60
-rw-r--r--etc/pam.d/convert.pl87
-rw-r--r--etc/pam.d/ftp24
-rw-r--r--etc/pam.d/ftpd24
-rw-r--r--etc/pam.d/gdm26
-rw-r--r--etc/pam.d/imap12
-rw-r--r--etc/pam.d/kde14
-rw-r--r--etc/pam.d/login33
-rw-r--r--etc/pam.d/other20
-rw-r--r--etc/pam.d/passwd11
-rw-r--r--etc/pam.d/pop312
-rw-r--r--etc/pam.d/rexecd16
-rw-r--r--etc/pam.d/rsh12
-rw-r--r--etc/pam.d/sshd21
-rw-r--r--etc/pam.d/su53
-rw-r--r--etc/pam.d/telnetd14
-rw-r--r--etc/pam.d/xdm26
-rw-r--r--etc/pam.d/xserver8
-rwxr-xr-xetc/pccard_ether196
-rw-r--r--etc/periodic/Makefile5
-rw-r--r--etc/periodic/Makefile.inc5
-rwxr-xr-xetc/periodic/daily/100.clean-disks55
-rwxr-xr-xetc/periodic/daily/110.clean-tmps56
-rwxr-xr-xetc/periodic/daily/120.clean-preserve53
-rwxr-xr-xetc/periodic/daily/130.clean-msgs35
-rwxr-xr-xetc/periodic/daily/140.clean-rwho53
-rwxr-xr-xetc/periodic/daily/150.clean-hoststat50
-rwxr-xr-xetc/periodic/daily/200.backup-passwd77
-rwxr-xr-xetc/periodic/daily/210.backup-aliases47
-rwxr-xr-xetc/periodic/daily/220.backup-distfile39
-rwxr-xr-xetc/periodic/daily/300.calendar29
-rwxr-xr-xetc/periodic/daily/310.accounting56
-rwxr-xr-xetc/periodic/daily/320.rdist31
-rwxr-xr-xetc/periodic/daily/330.news34
-rwxr-xr-xetc/periodic/daily/400.status-disks29
-rwxr-xr-xetc/periodic/daily/420.status-network29
-rwxr-xr-xetc/periodic/daily/430.status-rwho38
-rwxr-xr-xetc/periodic/daily/440.status-mailq64
-rwxr-xr-xetc/periodic/daily/450.status-security40
-rwxr-xr-xetc/periodic/daily/460.status-mail-rejects63
-rwxr-xr-xetc/periodic/daily/470.status-named58
-rwxr-xr-xetc/periodic/daily/500.queuerun36
-rwxr-xr-xetc/periodic/daily/999.local38
-rw-r--r--etc/periodic/daily/Makefile26
-rwxr-xr-xetc/periodic/monthly/200.accounting51
-rwxr-xr-xetc/periodic/monthly/999.local35
-rw-r--r--etc/periodic/monthly/Makefile6
-rwxr-xr-xetc/periodic/security/100.chksetuid78
-rwxr-xr-xetc/periodic/security/200.chkmounts73
-rwxr-xr-xetc/periodic/security/300.chkuid051
-rwxr-xr-xetc/periodic/security/400.passwdless48
-rwxr-xr-xetc/periodic/security/500.ipfwdenied69
-rwxr-xr-xetc/periodic/security/550.ipfwlimit61
-rwxr-xr-xetc/periodic/security/600.ip6fwdenied69
-rwxr-xr-xetc/periodic/security/650.ip6fwlimit61
-rwxr-xr-xetc/periodic/security/700.kernelmsg68
-rwxr-xr-xetc/periodic/security/800.loginfail62
-rwxr-xr-xetc/periodic/security/900.tcpwrap62
-rw-r--r--etc/periodic/security/Makefile15
-rwxr-xr-xetc/periodic/weekly/120.clean-kvmdb49
-rwxr-xr-xetc/periodic/weekly/310.locate32
-rwxr-xr-xetc/periodic/weekly/320.whatis51
-rwxr-xr-xetc/periodic/weekly/330.catman58
-rw-r--r--etc/periodic/weekly/340.noid29
-rwxr-xr-xetc/periodic/weekly/400.status-pkg33
-rwxr-xr-xetc/periodic/weekly/999.local35
-rw-r--r--etc/periodic/weekly/Makefile11
-rw-r--r--etc/phones11
-rw-r--r--etc/ppp/ppp.conf37
-rw-r--r--etc/printcap54
-rw-r--r--etc/profile18
-rw-r--r--etc/protocols146
-rw-r--r--etc/rc992
-rw-r--r--etc/rc.atm217
-rwxr-xr-xetc/rc.d/DAEMON12
-rwxr-xr-xetc/rc.d/LOGIN15
-rwxr-xr-xetc/rc.d/Makefile26
-rw-r--r--etc/rc.d/NETWORKING12
-rwxr-xr-xetc/rc.d/SERVERS12
-rw-r--r--etc/rc.d/abi54
-rwxr-xr-xetc/rc.d/accounting55
-rw-r--r--etc/rc.d/addswap34
-rw-r--r--etc/rc.d/adjkerntz18
-rw-r--r--etc/rc.d/altqd22
-rwxr-xr-xetc/rc.d/amd70
-rw-r--r--etc/rc.d/apm30
-rwxr-xr-xetc/rc.d/apmd39
-rw-r--r--etc/rc.d/atm1144
-rw-r--r--etc/rc.d/atm2104
-rw-r--r--etc/rc.d/atm2.sh104
-rw-r--r--etc/rc.d/atm368
-rw-r--r--etc/rc.d/atm3.sh68
-rw-r--r--etc/rc.d/bgfsck19
-rwxr-xr-xetc/rc.d/bootconf.sh82
-rwxr-xr-xetc/rc.d/bootparams19
-rwxr-xr-xetc/rc.d/ccd25
-rw-r--r--etc/rc.d/cleanvar48
-rwxr-xr-xetc/rc.d/cleartmp46
-rwxr-xr-xetc/rc.d/cron19
-rw-r--r--etc/rc.d/devdb17
-rw-r--r--etc/rc.d/devfs19
-rwxr-xr-xetc/rc.d/dhclient23
-rwxr-xr-xetc/rc.d/dhcpd20
-rwxr-xr-xetc/rc.d/dhcrelay19
-rw-r--r--etc/rc.d/diskless122
-rwxr-xr-xetc/rc.d/dmesg27
-rw-r--r--etc/rc.d/downinterfaces27
-rw-r--r--etc/rc.d/dumpon32
-rwxr-xr-xetc/rc.d/fsck103
-rwxr-xr-xetc/rc.d/gated18
-rw-r--r--etc/rc.d/ifwatchd17
-rwxr-xr-xetc/rc.d/inetd21
-rw-r--r--etc/rc.d/initdiskless143
-rw-r--r--etc/rc.d/initrandom73
-rw-r--r--etc/rc.d/ip6fw58
-rwxr-xr-xetc/rc.d/ipfilter153
-rwxr-xr-xetc/rc.d/ipfs36
-rw-r--r--etc/rc.d/ipfw70
-rwxr-xr-xetc/rc.d/ipmon37
-rwxr-xr-xetc/rc.d/ipnat85
-rwxr-xr-xetc/rc.d/ipsec81
-rw-r--r--etc/rc.d/ipxrouted19
-rw-r--r--etc/rc.d/isdnd76
-rw-r--r--etc/rc.d/kadmind30
-rwxr-xr-xetc/rc.d/kdc20
-rw-r--r--etc/rc.d/kerberos27
-rw-r--r--etc/rc.d/keyserv33
-rwxr-xr-xetc/rc.d/ldconfig68
-rwxr-xr-xetc/rc.d/lkm140
-rwxr-xr-xetc/rc.d/lkm238
-rwxr-xr-xetc/rc.d/lkm329
-rwxr-xr-xetc/rc.d/local33
-rw-r--r--etc/rc.d/localdaemons89
-rw-r--r--etc/rc.d/lockd46
-rw-r--r--etc/rc.d/lomac19
-rwxr-xr-xetc/rc.d/lpd28
-rwxr-xr-xetc/rc.d/mixerctl26
-rwxr-xr-xetc/rc.d/mopd18
-rwxr-xr-xetc/rc.d/motd59
-rwxr-xr-xetc/rc.d/mountall17
-rwxr-xr-xetc/rc.d/mountcritlocal68
-rwxr-xr-xetc/rc.d/mountcritremote89
-rwxr-xr-xetc/rc.d/mountd51
-rw-r--r--etc/rc.d/moused47
-rw-r--r--etc/rc.d/mroute6d18
-rwxr-xr-xetc/rc.d/mrouted22
-rw-r--r--etc/rc.d/msgs14
-rwxr-xr-xetc/rc.d/named124
-rwxr-xr-xetc/rc.d/ndbootd18
-rw-r--r--etc/rc.d/netoptions35
-rwxr-xr-xetc/rc.d/network387
-rw-r--r--etc/rc.d/network1225
-rw-r--r--etc/rc.d/network2140
-rw-r--r--etc/rc.d/network335
-rw-r--r--etc/rc.d/network_ipv6414
-rwxr-xr-xetc/rc.d/newsyslog27
-rw-r--r--etc/rc.d/nfsclient57
-rwxr-xr-xetc/rc.d/nfsd54
-rwxr-xr-xetc/rc.d/nfslocking46
-rw-r--r--etc/rc.d/nfsserver30
-rwxr-xr-xetc/rc.d/ntpd53
-rwxr-xr-xetc/rc.d/ntpdate43
-rw-r--r--etc/rc.d/othermta19
-rw-r--r--etc/rc.d/pccard68
-rw-r--r--etc/rc.d/pcvt226
-rw-r--r--etc/rc.d/poffd18
-rwxr-xr-xetc/rc.d/postfix42
-rw-r--r--etc/rc.d/ppp48
-rw-r--r--etc/rc.d/ppp-user48
-rw-r--r--etc/rc.d/pppoed31
-rwxr-xr-xetc/rc.d/pwcheck29
-rwxr-xr-xetc/rc.d/quota35
-rwxr-xr-xetc/rc.d/racoon20
-rwxr-xr-xetc/rc.d/raidframe41
-rw-r--r--etc/rc.d/random93
-rwxr-xr-xetc/rc.d/rarpd21
-rwxr-xr-xetc/rc.d/rbootd21
-rw-r--r--etc/rc.d/resolv122
-rwxr-xr-xetc/rc.d/root51
-rwxr-xr-xetc/rc.d/route6d35
-rwxr-xr-xetc/rc.d/routed44
-rw-r--r--etc/rc.d/routing140
-rwxr-xr-xetc/rc.d/rpcbind24
-rwxr-xr-xetc/rc.d/rtadvd82
-rwxr-xr-xetc/rc.d/rtsold27
-rwxr-xr-xetc/rc.d/rwho19
-rwxr-xr-xetc/rc.d/savecore74
-rwxr-xr-xetc/rc.d/screenblank19
-rwxr-xr-xetc/rc.d/securelevel56
-rwxr-xr-xetc/rc.d/sendmail102
-rw-r--r--etc/rc.d/serial157
-rw-r--r--etc/rc.d/sppp36
-rwxr-xr-xetc/rc.d/sshd70
-rw-r--r--etc/rc.d/statd46
-rwxr-xr-xetc/rc.d/swap150
-rwxr-xr-xetc/rc.d/swap237
-rw-r--r--etc/rc.d/syscons183
-rw-r--r--etc/rc.d/sysctl70
-rwxr-xr-xetc/rc.d/sysdb36
-rwxr-xr-xetc/rc.d/syslogd80
-rwxr-xr-xetc/rc.d/timed19
-rw-r--r--etc/rc.d/tmp122
-rwxr-xr-xetc/rc.d/ttys50
-rw-r--r--etc/rc.d/usbd18
-rw-r--r--etc/rc.d/var122
-rw-r--r--etc/rc.d/vinum17
-rwxr-xr-xetc/rc.d/virecover73
-rwxr-xr-xetc/rc.d/wscons170
-rwxr-xr-xetc/rc.d/xdm20
-rwxr-xr-xetc/rc.d/xfs21
-rwxr-xr-xetc/rc.d/ypbind38
-rwxr-xr-xetc/rc.d/yppasswdd54
-rwxr-xr-xetc/rc.d/ypserv53
-rw-r--r--etc/rc.d/ypset39
-rw-r--r--etc/rc.d/ypupdated38
-rw-r--r--etc/rc.d/ypxfrd39
-rw-r--r--etc/rc.devfs58
-rw-r--r--etc/rc.diskless1144
-rw-r--r--etc/rc.diskless2110
-rw-r--r--etc/rc.firewall301
-rw-r--r--etc/rc.firewall6286
-rw-r--r--etc/rc.initdiskless143
-rw-r--r--etc/rc.isdn96
-rw-r--r--etc/rc.network969
-rw-r--r--etc/rc.network6540
-rw-r--r--etc/rc.pccard56
-rwxr-xr-xetc/rc.resume46
-rw-r--r--etc/rc.sendmail194
-rw-r--r--etc/rc.serial153
-rw-r--r--etc/rc.shutdown207
-rw-r--r--etc/rc.subr1000
-rwxr-xr-xetc/rc.suspend50
-rw-r--r--etc/rc.syscons197
-rw-r--r--etc/rc.sysctl61
-rw-r--r--etc/remote58
-rw-r--r--etc/root/dot.cshrc35
-rw-r--r--etc/root/dot.klogin4
-rw-r--r--etc/root/dot.login9
-rw-r--r--etc/root/dot.profile10
-rw-r--r--etc/rpc68
-rw-r--r--etc/sendmail/Makefile139
-rw-r--r--etc/sendmail/freebsd.mc92
-rw-r--r--etc/sendmail/freefall.mc47
-rw-r--r--etc/services2100
-rw-r--r--etc/shells9
-rw-r--r--etc/sysctl.conf6
-rw-r--r--etc/syslog.conf30
-rw-r--r--etc/termcap.small250
-rw-r--r--etc/usbd.conf54
350 files changed, 34293 insertions, 0 deletions
diff --git a/etc/MAKEDEV b/etc/MAKEDEV
new file mode 100644
index 0000000..ed1e587
--- /dev/null
+++ b/etc/MAKEDEV
@@ -0,0 +1,1778 @@
+#!/bin/sh -
+#
+# Copyright (c) 1990 The Regents of the University of California.
+# All rights reserved.
+#
+# Written and contributed by W. Jolitz 12/90
+#
+# Redistribution and use in source and binary forms are permitted provided
+# that: (1) source distributions retain this entire copyright notice and
+# comment, and (2) distributions including binaries display the following
+# acknowledgement: ``This product includes software developed by the
+# University of California, Berkeley and its contributors'' in the
+# documentation or other materials provided with the distribution and in
+# all advertising materials mentioning features or use of this software.
+# 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 ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+#
+# @(#)MAKEDEV 5.2 (Berkeley) 6/22/90
+# $FreeBSD$
+#
+# Device "make" file. Valid arguments:
+# all makes all known devices, standard number of units (or close)
+# std standard devices
+# jail suitable for a jail(8)
+# local configuration specific devices
+# mach-4 mach4&lites+devices for Mach's XFree86 distribution
+# (see http://www.cs.hut.fi/lites.html for more info on LITES)
+#
+# Tapes:
+# wt* QIC-interfaced (e.g. not SCSI) 3M cartridge tape
+# sa* SCSI Sequential Access Devices
+#
+# Disks:
+# aac* Adaptec FSA RAID controllers
+# aacd* Adaptec FSA RAID
+# acd* ATAPI CD-ROM disks
+# amrd* AMI MegaRAID
+# cd* SCSI CD-ROM disks
+# da* SCSI Direct Access Devices
+# fd* floppy disk drives (3 1/2", 5 1/4")
+# fla* M-Systems DiskOnChip
+# idad* Compaq Smart-2 RAID arrays
+# matcd* Matsushita (Panasonic) CD-ROM disks
+# mcd* Mitsumi CD-ROM disks
+# md* Memory (or malloc) disk
+# mlx* Mylex DAC960 RAID controllers
+# mlxd* Mylex DAC960 RAID disk volumes
+# mly* Mylex RAID controllers (newer models)
+# scd* Sony CD-ROM disks
+# wd* "Winchester" disk drives (ST506,IDE,ESDI,RLL,...)
+# wfd* IDE floppy disk drives (LS-120)
+#
+# Console ports:
+# vty* virtual console devices for syscons/pcvt/codrv
+#
+# Pointing devices:
+# mse* Logitech and ATI Inport bus mouse
+# psm* PS/2 mouse
+# jogdial Sony VAIO jog dial
+# sysmouse Mousesystems mouse emulator for syscons
+#
+# Time devices:
+# refclock-* serial ports used by xntpd parse refclocks
+#
+# Terminal ports:
+# tty* general purpose serial ports
+# cua* dialout serial ports
+# ttyA* Specialix SI/XIO dialin ports ('*' = number of devices)
+# cuaA* Specialix SI/XIO dialout ports
+# ttyDXX Digiboard Xi - 16 dialin ports (dgb)
+# cuaDXX Digiboard Xi - 16 dialout ports (dgb)
+# ttyDX.X Digiboards (work in progress) - 16 dialin ports (digi)
+# cuaDX.X Digiboards (work in progress) - 16 dialout ports (digi)
+# ttyM* Digiboard Xem - 16 dialin ports (dgm)
+# cuaM* Digiboard Xem - 16 dialout ports (dgm)
+# ttyR* Rocketport dialin ports
+# cuaR* Rocketport dialout ports
+#
+# Pseudo terminals:
+# pty* set of 32 master and slave pseudo terminals
+# vty* virtual terminals using syscons/pcvt/codrv console
+#
+# Parallel port:
+# lpt* Printer
+# ppi* Parallel port i/o
+# pps* Pulse per second timing interface
+# pcfclock* Parallel time sync interface
+#
+# I2C and SMBus:
+# iic* I2C devices
+# smb* SMBUS devices
+#
+# USB devices:
+# usb* USB bus control device
+# ugen* generic USB device
+# uhid* Human Interface Device (HID)
+# ulpt* printer
+# umodem* modems
+# ums* mouse
+# urio* Diamond Rio 500
+# uscanner* USB scanners
+# ucom* USB serial devices
+#
+# SCSI devices (other than CD-ROM, tape and disk):
+# ch* SCSI Media-Changer (juke box) driver
+# pt* Processor Type (HP scanner, as one example)
+# pass* CAM Passthrough device
+# ses* SES (SCSI Environmental Services) and
+# SAF-TE (Scsi Accessable Fault-Tolerant Enclosures) device
+#
+# PC-CARD (previously called PCMCIA) support
+# card* PC-CARD slots
+#
+# ISDN devices:
+# i4b isdnd call control device
+# i4bctl debugging control device
+# i4btrc* trace data interface(s), one per passive card
+# i4btel* telephony interface(s)
+# i4bteld* telephony dialout interface(s)
+# i4brbch* raw b channel access device(s)
+#
+# Special purpose devices:
+# acpi Advanced Configuration and Power Interface
+# apm Advanced Power Management BIOS
+# apmctl APM BIOS control device
+# bpf* packet filter
+# speaker pc speaker
+# tw* xten power controller
+# snd* various sound cards
+# pcaudio PCM audio driver
+# socksys iBCS2 socket system driver
+# vat VAT compatibility audio driver (requires snd*)
+# gsc Genius GS-4500 hand scanner
+# joy pc joystick
+# tun* Tunneling IP device
+# tap* Ethernet Tunneling device
+# snp* tty snoop devices
+# spigot Video Spigot video acquisition card
+# ctx* Cortex-I video acquisition card
+# meteor* Matrox Meteor video acquisition card (pci)
+# bktr* Bt848 based video acquisition card (pci)
+# labpc* National Instrument's Lab-PC and LAB-PC+
+# perfmon CPU performance-monitoring counters
+# pci PCI configuration-space access from user mode
+# ipl ipfilter control devices (ipl, ipnat, ipstate, ipauth)
+# kbd keyboard devices
+# 3dfx* 3dfx voodoo device for glide (tdfx) (/dev/3dfx,3dfxN,voodoo)
+# agpgart AGP interface
+# cfs* Coda Distributed Filesystem
+# nsmb* SMB/CIFS protocol interface
+#
+
+if [ -n "$MAKEDEVPATH" ]; then
+ PATH="$MAKEDEVPATH"
+else
+ PATH=/sbin:/bin
+fi
+umask 77
+
+# Usage: die exitcode msg
+die() {
+ echo $2
+ exit $1
+}
+
+# Convert integer to partition name
+dkitop() {
+ local p
+
+ case $1 in
+ 0) p=a;; 1) p=b;; 2) p=c;; 3) p=d;; 4) p=e;; 5) p=f;; 6) p=g;; 7) p=h;;
+ *) p="?";;
+ esac
+ echo $p
+}
+
+# Convert integer to slice name
+dkitos() {
+ local s
+
+ case $1 in
+ 0) s="";;
+ 1) s="";;
+ *) s=s$(($1-1));;
+ esac
+ echo $s
+}
+
+# Convert disk (type, unit, slice, partition) to minor number
+dkminor()
+{
+ echo $(($1 << 25 | ($2 / 32) << 21 | ($2 % 32) << 3 | $3 << 16 | $4))
+}
+
+# Print the hexadecimal representation of a decimal value from 0 to 15.
+hexdigit() {
+ local d
+
+ if [ $1 -lt 10 ]; then
+ d=$1
+ else
+ case $1 in
+ 10) d=a;; 11) d=b;; 12) d=c;; 13) d=d;; 14) d=e;; 15) d=f;;
+ *) d="?";;
+ esac
+ fi
+ echo $d
+}
+
+# Print the hexadecimal representation of an arbitrary decimal value.
+hexprint() {
+ local dig
+ local str
+ local val
+
+ val=$1
+ str=''
+ dig=`hexdigit $(($val & 15))`
+ str=$dig$str
+ val=$(($val >> 4))
+ while [ $val -gt 0 ]; do
+ dig=`hexdigit $(($val & 15))`
+ str=$dig$str
+ val=$(($val >> 4))
+ done
+ echo $str
+}
+
+# Override mknod(2) to add extra handling to it.
+mknod=/sbin/mknod
+for i in `IFS=':'; echo $PATH`; do
+ if [ -x "${i}/mknod" ]; then
+ mknod="${i}/mknod"
+ break
+ fi
+done
+mknod() {
+ rm -f "$1" || exit 1
+ case $# in
+ 4) "$mknod" "$@" root:wheel || die 2 "$mknod $@ failed";;
+ 5) "$mknod" "$@" || die 2 "$mknod $@ failed";;
+ *) die 2 "bad node: mknod $@";;
+ esac
+}
+
+# Convert tape (ctrl, unit, mode, access) to minor number
+saminor()
+{
+ echo $(($1 << 29 | ($2 / 16) << 16 | ($2 % 16) << 4 | $3 << 2 | $4))
+}
+
+# Convert the last character of a tty name to a minor number.
+ttyminor()
+{
+ case $1 in
+ [0-9]) m=$1;;
+ a) m=10;; b) m=11;; c) m=12;; d) m=13;; e) m=14;; f) m=15;; g) m=16;;
+ h) m=17;; i) m=18;; j) m=19;; k) m=20;; l) m=21;; m) m=22;; n) m=23;;
+ o) m=24;; p) m=25;; q) m=26;; r) m=27;; s) m=28;; t) m=29;; u) m=30;;
+ v) m=31;;
+ *) m="?";;
+ esac
+ echo $m
+}
+
+# Convert a unit number to a minor number.
+unit2minor()
+{
+ echo $(((($1 >> 8) << 16) | ($1 % 256)))
+}
+
+# Zero-pad a value to the appropriate minimum length.
+zeropad() {
+ local min
+ local val
+
+ min=$1
+ val=$2
+ while [ ${#val} -lt $min ]; do
+ val=0$val
+ done
+ echo $val
+}
+
+# Raw partition for disks
+dkrawpart=2
+
+# Compatibility slice for disks
+dkcompatslice=0
+
+# Raw slice for disks
+dkrawslice=1
+
+# Standard umasks
+disk_umask=037 # allow group operator to read disks
+tape_umask=017 # allow group operator to read/write tapes
+
+for i in $*; do
+case $i in
+
+all)
+ sh $0 std # standard
+ sh $0 fd0 fd1 # floppy disk
+ sh $0 da0 da1 da2 da3 # SCSI disk
+ sh $0 ata # ATA control
+ sh $0 ad0 ad1 ad2 ad3 # ATA disk
+ sh $0 ar0 ar1 # ATA RAID disk
+ sh $0 acd0 acd0t0 afd0 ast0 # ATAPI devices
+ sh $0 wd0 wd1 wd2 wd3 # OLD disk
+ sh $0 wcd0 wfd0 wst0 # OLD ATAPI devs
+ sh $0 cd0 matcd0 mcd0 scd0 # cdrom
+ sh $0 sa0 wt0 # tape
+ sh $0 vty12 # virtual tty
+ sh $0 cuaa0 cuaa1 cuaa2 cuaa3 # serial tty
+ sh $0 pty0 # pseudo tty
+ sh $0 ttyd0 ttyd1 ttyd2 ttyd3 # serial tty
+ sh $0 kbd0 kbd1 # keyboard
+ sh $0 mse0 psm0 jogdial sysmouse # mouse
+ sh $0 pcaudio speaker # noise
+ sh $0 lpt0 lpt1 lpt2 # printer
+ sh $0 ppi0 ppi1 ppi2 # parallel port
+ sh $0 iic0 iic1 # I2C device
+ sh $0 smb0 smb1 # SMBus device
+ sh $0 usb usb0 uhid0 ums0 ulpt0 ugen0 # USB devices
+ sh $0 urio0 uscanner0 umodem0 # USB devices too
+ sh $0 bpf0 bpf1 bpf2 bpf3 # network
+ sh $0 ipl tun0 tun1 tun2 tun3 # network
+ sh $0 tap0 tap1 tap2 tap3 # network
+ sh $0 ch0 perfmon tw0 # miscellaneous
+ sh $0 acpi # ACPI
+ sh $0 apm apmctl card0 card1 card2 card3 # laptop
+ sh $0 pass4 xpt2 # CAM
+ sh $0 i4b i4bctl i4btrc0 i4btrc1 # ISDN
+ sh $0 i4btel0 i4btel1 i4bteld0 i4bteld1 # ISDN
+ sh $0 i4brbch0 i4brbch1 # ISDN
+ sh $0 agpgart # AGP
+ sh $0 nsmb0 # SMB/CIFS
+ sh $0 ti0 ti1 # ti(4)
+ ;;
+
+# a much restricted set of the above, to save precious i-nodes on the
+# fixit floppy
+fixit)
+ sh $0 std # standard
+ sh $0 fd0 # floppy disk
+ sh $0 da0 # SCSI disk
+ sh $0 ad0 # ATA disk
+ sh $0 acd0 afd0 ast0 # ATAPI devices
+ sh $0 wd0 # OLD disk
+ sh $0 wcd0 wfd0 wst0 # OLD ATAPI devs
+ sh $0 cd0 # cdrom
+ sh $0 sa0 # tape
+ sh $0 vty2 # virtual tty
+ sh $0 cuaa0 # serial tty
+ sh $0 pty0 # pseudo tty
+ sh $0 ttyd0 # serial tty
+ sh $0 kbd0 # keyboard
+ sh $0 mse0 psm0 jogdial sysmouse # mouse
+ sh $0 lpt0 # printer
+ sh $0 ppi0 # parallel port
+ sh $0 iic0 # I2C device
+ sh $0 smb0 # SMBus device
+ sh $0 ums0 # USB devices
+ sh $0 tun0 # network
+ sh $0 tap0 # network
+ sh $0 ch0 # miscellaneous
+ sh $0 acpi # ACPI
+ sh $0 apm apmctl card0 # laptop
+ sh $0 pass1 xpt1 # CAM
+ sh $0 i4b i4bctl i4btrc0 i4btrc1 # ISDN
+ sh $0 i4btel0 i4bteld0 # ISDN
+ sh $0 i4brbch0 # ISDN
+ rm -f fd/[1-9]?
+ ;;
+
+std)
+ mknod console c 0 0; chmod 600 console
+ mknod kmem c 2 1 root:kmem; chmod 640 kmem
+ mknod mem c 2 0 root:kmem; chmod 640 mem
+ mknod null c 2 2; chmod 666 null
+ mknod random c 2 3; chmod 666 random
+ ln -f random urandom
+ mknod zero c 2 12; chmod 666 zero
+ mknod io c 2 14; chmod 600 io
+ mknod tty c 1 0; chmod 666 tty
+ mknod klog c 7 0; chmod 600 klog
+ mknod pci c 78 0; chmod 644 pci
+ mknod mdctl c 95 0xffff00ff; chmod 600 mdctl
+ mkdir -p fd
+ (cd fd && i=0 &&
+ while [ $i -lt 64 ]; do
+ mknod $i c 22 $i
+ i=$(($i + 1))
+ done
+ )
+ chmod 555 fd
+ chmod 666 fd/*
+ ln -sf fd/0 stdin
+ ln -sf fd/1 stdout
+ ln -sf fd/2 stderr
+ ;;
+
+jail)
+ sh $0 std pty0
+ rm mem kmem pci io klog console # for security
+ ln -sf null mem # for libkvm (ab)users
+ ln -sf null kmem # --//--
+ ln -sf null console
+ ;;
+
+mach-4)
+ mknod iopl c 22 0
+ mknod kbd c 23 0
+ mknod mouse c 24 0
+ mknod time c 25 0
+ mknod timezone c 26 0
+ ;;
+
+# Create device files for new Archive/Wangtek QIC-02 tape driver (vak)
+wt*)
+ umask $tape_umask
+ u=`expr $i : '..\(.*\)'`
+ if [ -z "${u}" ]; then u=0; fi
+ # default density, 512b blocks
+ mknod rwt${u} c 10 $(( 0 + $u)) root:operator
+ mknod nrwt${u} c 10 $(( 4 + $u)) root:operator
+ # default density, 1024b blocks
+# mknod rWt${u} c 10 $((64 + $u)) root:operator
+# mknod nrWt${u} c 10 $((68 + $u)) root:operator
+ mknod rwt${u}b c 10 $((16 + $u)) root:operator # 60 megabytes
+ mknod nrwt${u}b c 10 $((20 + $u)) root:operator
+ mknod rwt${u}c c 10 $((24 + $u)) root:operator # 120 megabytes
+ mknod nrwt${u}c c 10 $((28 + $u)) root:operator
+ mknod rwt${u}d c 10 $((32 + $u)) root:operator # 150 megabytes
+ mknod nrwt${u}d c 10 $((36 + $u)) root:operator
+# mknod rwt${u}e c 10 $((40 + $u)) root:operator # 300 megabytes?
+# mknod nrwt${u}e c 10 $((44 + $u)) root:operator
+# mknod rwt${u}f c 10 $((48 + $u)) root:operator # 600 megabytes?
+# mknod nrwt${u}f c 10 $((52 + $u)) root:operator
+ umask 77
+ ;;
+
+# Individual slices.
+aacd*s*|ad*s*|ar*s*|afd*s*|amrd*s*|da*s*|fla*s*|idad*s*|md*s*|mlxd*s*|twed*s*|wd*s*|wfd*s*)
+ umask $disk_umask
+ case $i in
+ aacd*s*) name=aacd; chr=151;;
+ ad*s*) name=ad; chr=116;;
+ ar*s*) name=ar; chr=157;;
+ afd*s*) name=afd; chr=118;;
+ amrd*s*) name=amrd; chr=133;;
+ da*s*) name=da; chr=13;;
+ fla*s*) name=fla; chr=102;;
+ idad*s*) name=idad; chr=109;;
+ md*s*) name=md; chr=95;;
+ mlxd*s*) name=mlxd; chr=131;;
+ twed*s*) name=twed; chr=147;;
+ wd*s*) name=wd; chr=3;;
+ wfd*s*) name=wfd; chr=87;;
+ esac
+ case $i in
+ aacd*s*|amrd*s*|idad*s*|mlxd*s*|twed*s*)
+ unit=`expr $i : '....\([0-9]*\)s'`
+ slice=`expr $i : '....[0-9]*s\([0-9]*\)'`
+ part=`expr $i : '....[0-9]*s[0-9]*\(.*\)'`
+ ;;
+ afd*s*|fla*s*|wfd*s*)
+ unit=`expr $i : '...\([0-9]*\)s'`
+ slice=`expr $i : '...[0-9]*s\([0-9]*\)'`
+ part=`expr $i : '...[0-9]*s[0-9]*\(.*\)'`
+ ;;
+ *)
+ unit=`expr $i : '..\([0-9]*\)s'`
+ slice=`expr $i : '..[0-9]*s\([0-9]*\)'`
+ part=`expr $i : '..[0-9]*s[0-9]*\(.*\)'`
+ ;;
+ esac
+ case $unit in
+ [0-9]|[0-9][0-9]|[0-4][0-9][0-9]|50[0-9]|51[0-1])
+ case $slice in
+ [0-9]|[1-2][0-9]|30)
+ oldslice=$slice
+ slice=$(($slice+1))
+ slicename=`dkitos $slice`
+ minor=`dkminor 0 $unit $slice $dkrawpart`
+ mknod $name$unit$slicename c $chr $minor root:operator
+ ln -f $name$unit$slicename r$name$unit$slicename
+ case $part in
+ [a-h])
+ case $oldslice in
+ 0) slice=$oldslice ;;
+ esac
+ for part in 0 1 2 3 4 5 6 7
+ do
+ minor=`dkminor 0 $unit $slice $part`
+ partname=`dkitop $part`
+ mknod $name$unit$slicename$partname \
+ c $chr $minor root:operator
+ ln -f $name$unit$slicename$partname \
+ r$name$unit$slicename$partname
+ done
+ ;;
+ "")
+ ;;
+ *)
+ echo bad partition for disk in: $i
+ ;;
+ esac
+ ;;
+ *)
+ echo bad slice for disk in: $i
+ ;;
+ esac
+ ;;
+ *)
+ echo bad unit for disk in: $i "(unit=$unit, slice=$slice, part=$part)"
+ ;;
+ esac
+ umask 77
+ ;;
+
+fd*)
+ umask $disk_umask
+ unit=`expr $i : '..\(.*\)'`
+ name=fd; chr=9
+ case $unit in
+ 0|1|2|3)
+ mknod ${name}${unit} c $chr $(($unit * 64)) root:operator
+ # Fake BSD partitions
+ for i in a b c d e f g h
+ do
+ ln -f ${name}${unit} ${name}${unit}$i
+ done
+ ;;
+ *)
+ echo bad unit for disk in: $i
+ ;;
+ esac
+ umask 77
+ ;;
+
+ata)
+ umask 177
+ mknod ata c 159 0 root:operator
+ umask 77
+ ;;
+
+
+aacd*|ad*|ar*|afd*|amrd*|da*|fla*|idad*|md*|mlxd*|twed*|wd*|wfd*)
+ umask $disk_umask
+ case $i in
+ aacd*) name=aacd; chr=151;;
+ ad*) name=ad; chr=116;;
+ ar*) name=ar; chr=157;;
+ afd*) name=afd; chr=118;;
+ amrd*) name=amrd; chr=133;;
+ da*) name=da; chr=13;;
+ fla*) name=fla; chr=102;;
+ idad*) name=idad; chr=109;;
+ md*) name=md; chr=95;;
+ mlxd*) name=mlxd; chr=131;;
+ twed*) name=twed; chr=147;;
+ wd*) name=wd; chr=3;;
+ wfd*) name=wfd; chr=87;;
+ esac
+ case $i in
+ aacd*|amrd*|idad*|mlxd*|twed*)
+ unit=`expr $i : '....\(.*\)'`
+ ;;
+ afd*|fla*|wfd*)
+ unit=`expr $i : '...\(.*\)'`
+ ;;
+ *)
+ unit=`expr $i : '..\(.*\)'`
+ ;;
+ esac
+ case $unit in
+ [0-9]|[0-9][0-9]|[0-4][0-9][0-9]|50[0-9]|51[0-1])
+ for slicepartname in s0h s1h s2 s3 s4
+ do
+ sh $0 $name$unit$slicepartname
+ done
+ ;;
+ *)
+ echo bad unit for disk in: $i
+ ;;
+ esac
+ umask 77
+ ;;
+
+ccd*)
+ umask $disk_umask
+ name=ccd
+ chr=74
+ unit=`expr $i : '...\(.*\)'`
+ case $unit in
+ [0-9]|[0-9][0-9]|[0-4][0-9][0-9]|50[0-9]|51[0-1])
+ for part in 0 1 2 3 4 5 6 7
+ do
+ minor=`dkminor 0 $unit 0 $part`
+ partname=`dkitop $part`
+ mknod $name$unit$partname c $chr $minor root:operator
+ ln -f $name$unit$partname r$name$unit$partname
+ done
+ ;;
+ *)
+ echo bad unit for disk in: $i
+ ;;
+ esac
+ umask 77
+ ;;
+
+# SCSI processor type driver
+pt[0-9]*)
+ chr=61
+ name=pt
+ unit=`expr $i : 'pt\([0-9][0-9]*\)'`
+ if [ -z "${unit}" ]; then
+ unit=0
+ fi
+ unit=$(($unit + 1 - 1))
+ mknod ${name}${unit} c $chr `unit2minor $unit`
+ ;;
+
+# SCSI SES/SAF-TE type driver
+ses[0-9]*)
+ chr=110
+ name=ses
+ unit=`expr $i : 'ses\([0-9][0-9]*\)'`
+ if [ -z "${unit}" ]; then
+ unit=0
+ fi
+ unit=$(($unit + 1 - 1))
+ mknod ${name}${unit} c $chr `unit2minor $unit`
+ ;;
+# SCSI target mode sample driver
+targ[0-9]*)
+ chr=65
+ name=targ
+ unit=`expr $i : 'targ\([0-9][0-9]*\)'`
+ if [ -z "${unit}" ]; then
+ unit=0
+ fi
+ unit=$(($unit + 1 - 1))
+ mknod ${name}${unit} c $chr `unit2minor $unit`
+ mknod ${name}.ctl c $chr 0xffff00ff
+ ;;
+
+# CAM transport layer device
+xpt*)
+ # This major number is temporary
+ chr=104
+ name=xpt
+ units=`expr $i : 'xpt\(.*\)'`
+ if [ -z "${units}" ]; then
+ units=1
+ fi
+ i=0
+ while [ $i -lt $units ]; do
+ dname=$name$i
+ rm -rf $dname r$dname
+ mknod $dname c $chr `unit2minor $i` root:operator
+ i=$(($i + 1))
+ done
+ ;;
+
+# CAM passthrough device
+pass*)
+ # This major number is temporary
+ chr=31
+ name=pass
+ units=`expr $i : 'pass\(.*\)'`
+ if [ -z "${units}" ]; then
+ units=1
+ fi
+ i=0
+ while [ $i -lt $units ]; do
+ dname=$name$i
+ rm -rf $dname r$dname
+ mknod $dname c $chr `unit2minor $i` root:operator
+ i=$(($i + 1))
+ done
+ ;;
+pty*)
+ class=`expr $i : 'pty\(.*\)'`
+ case $class in
+ 0) offset=0 name=p;;
+ 1) offset=32 name=q;;
+ 2) offset=64 name=r;;
+ 3) offset=96 name=s;;
+# Note that xterm (at least) only look at p-s.
+ 4) offset=128 name=P;;
+ 5) offset=160 name=Q;;
+ 6) offset=192 name=R;;
+ 7) offset=224 name=S;;
+ # This still leaves [tuTU].
+ *) echo bad unit for pty in: $i;;
+ esac
+ umask 0
+ case $class in
+ 0|1|2|3|4|5|6|7)
+ i=0
+ while [ $i -lt 32 ]; do
+# This was an awk substr() before.
+ c=$(echo 0123456789abcdefghijklmnopqrstuv |
+ dd bs=1 skip=$i count=1 2>/dev/null)
+ mknod tty$name$c c 5 $(($offset + $i))
+ mknod pty$name$c c 6 $(($offset + $i))
+ i=$(($i + 1))
+ done
+ ;;
+ esac
+ umask 77
+ ;;
+
+sa*)
+ umask $tape_umask
+ unit=`expr $i : '..\(.*\)'`
+ chr=14
+
+ case $unit in
+ [0-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9])
+ mknod sa${unit}.ctl c $chr `saminor 1 ${unit} 0 0`
+ ln -f sa${unit}.ctl rsa${unit}.ctl
+ for m in 0 1 2 3
+ do
+ mknod sa${unit}.${m} c $chr \
+ `saminor 0 ${unit} ${m} 0` root:operator
+ ln -f sa${unit}.${m} rsa${unit}.${m}
+ mknod nsa${unit}.${m} c $chr \
+ `saminor 0 ${unit} ${m} 1` root:operator
+ ln -f nsa${unit}.${m} nrsa${unit}.${m}
+ mknod esa${unit}.${m} c $chr \
+ `saminor 0 ${unit} ${m} 2` root:operator
+ ln -f esa${unit}.${m} ersa${unit}.${m}
+ done
+ ln -f sa${unit}.0 sa${unit}
+ ln -f sa${unit}.0 rsa${unit}.0
+ ln -f sa${unit}.0 rsa${unit}
+ ln -f nsa${unit}.0 nsa${unit}
+ ln -f nsa${unit}.0 nrsa${unit}.0
+ ln -f nsa${unit}.0 nrsa${unit}
+ ln -f esa${unit}.0 esa${unit}
+ ln -f esa${unit}.0 ersa${unit}.0
+ ln -f esa${unit}.0 ersa${unit}
+ ;;
+ *)
+ echo bad unit for tape in: $i
+ ;;
+ esac
+ umask 77
+ ;;
+
+ch*)
+ umask 37
+ unit=`expr $i : '..\(.*\)'`
+ case $i in
+ ch*) name=ch; chr=17;;
+ esac
+ case $unit in
+ 0|1|2|3|4|5|6)
+ mknod ${name}${unit} c $chr $unit root:operator
+ ;;
+ *)
+ echo bad unit for media changer in: $i
+ ;;
+ esac
+ umask 77
+ ;;
+
+ast*)
+ umask 2 ;
+ unit=`expr $i : '...\(.*\)'`
+ chr=119
+ case $unit in
+ 0|1|2|3)
+ mknod ast${unit} c $chr $(($unit * 8 + 0)) root:operator
+ chmod 640 ast${unit}
+ mknod nast${unit} c $chr $(($unit * 8 + 1)) root:operator
+ chmod 640 nast${unit}
+ ;;
+ *)
+ echo bad unit for tape in: $i
+ ;;
+ esac
+ umask 77
+ ;;
+
+acd*t*)
+ umask $disk_umask
+ units=`expr $i : '...\(.*\)t'`;
+ tracks=`expr $i : '.*t\(.*\)'`;
+ name=acd;
+ chr=117;
+ if [ -z "${units}" ]; then
+ units=0
+ fi
+ if [ -z "${tracks}" ]; then
+ tracks=100
+ fi
+ if [ "${units}" -le 31 -a "${tracks}" -le 169 ]; then
+ i=0
+ while [ $i -le $units ]; do
+ dname=$name$i
+ rm -rf ${dname}t*
+ j=1
+ while [ $j -le ${tracks} ]; do
+ mknod ${dname}t$j c $chr \
+ $((($i * 8) + (65536 * $j))) \
+ root:operator
+ j=$(($j + 1))
+ done
+ i=$(($i + 1))
+ done
+ else
+ echo "$i is invalid -- can't have more than 32 cd devices or 169 tracks"
+ fi
+ umask 77
+ ;;
+
+acd*|cd*|mcd*|scd*)
+ umask $disk_umask
+ case $i in
+ acd*) units=`expr $i : '...\(.*\)'`; name=acd; chr=117;;
+ cd*) units=`expr $i : '..\(.*\)'`; name=cd; chr=15;;
+ mcd*) units=`expr $i : '...\(.*\)'`; name=mcd; chr=29;;
+ scd*) units=`expr $i : '...\(.*\)'`; name=scd; chr=45;;
+ esac
+ if [ -z "${units}" ]; then
+ units=0
+ fi
+ if [ "${units}" -le 31 ]; then
+ i=0
+ while [ $i -le $units ]; do
+ dname=$name$i
+ rm -rf ${dname}[!t]* r${dname}*
+ mknod ${dname}a c $chr $(($i * 8)) root:operator
+ mknod ${dname}c c $chr $(($i * 8 + 2)) root:operator
+ ln -f ${dname}a r${dname}a
+ ln -f ${dname}c r${dname}c
+ i=$(($i + 1))
+ done
+ else
+ echo "$i is invalid -- can't have more than 32 cd devices"
+ fi
+ umask 77
+ ;;
+
+matcd*)
+ umask 2
+ case $i in
+ matcd*) unit=`expr $i : '.....\(.*\)'`; name=matcd; chr=46;;
+ esac
+ case $unit in
+ 0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15)
+ mknod ${name}${unit}a c $chr $(($unit * 8 + 0)) \
+ root:operator
+ mknod ${name}${unit}c c $chr $(($unit * 8 + 2)) \
+ root:operator
+ ln -f ${name}${unit}a r${name}${unit}a
+ ln -f ${name}${unit}c r${name}${unit}c
+ chmod 640 ${name}${unit}[a-h] r${name}${unit}[a-h]
+
+ mknod ${name}${unit}la c $chr $(($unit * 8 + 128)) \
+ root:operator
+ mknod ${name}${unit}lc c $chr $(($unit * 8 + 130)) \
+ root:operator
+ ln -f ${name}${unit}la r${name}${unit}la
+ ln -f ${name}${unit}lc r${name}${unit}lc
+ chmod 640 ${name}${unit}l[a-h] r${name}${unit}l[a-h]
+ ;;
+ *)
+ echo bad unit for disk in: $i
+ ;;
+ esac
+ umask 77
+ ;;
+
+wcd*)
+ umask 2 ;
+ unit=`expr $i : '...\(.*\)'`
+ chr=69
+ case $unit in
+ 0|1|2|3|4|5|6|7)
+ mknod wcd${unit}a c $chr $(($unit * 8 + 0)) root:operator
+ mknod wcd${unit}c c $chr $(($unit * 8 + 2)) root:operator
+ ln -f wcd${unit}a rwcd${unit}a
+ ln -f wcd${unit}c rwcd${unit}c
+ chmod 640 wcd${unit}[a-h] rwcd${unit}[a-h]
+ ;;
+ *)
+ echo bad unit for disk in: $i
+ ;;
+ esac
+ umask 77
+ ;;
+
+wst*)
+ umask 2 ;
+ unit=`expr $i : '...\(.*\)'`
+ chr=90
+ case $unit in
+ 0|1|2|3)
+ mknod rwst${unit} c $chr $(($unit * 8 + 0)) root:operator
+ chmod 640 rwst${unit}
+ ;;
+ esac
+ umask 77
+ ;;
+
+iic*)
+ unit=`expr $i : 'iic\(.*\)'`
+ mknod iic$unit c 105 `unit2minor $unit`
+ ;;
+
+smb*)
+ unit=`expr $i : 'smb\(.*\)'`
+ mknod smb$unit c 106 `unit2minor $unit`
+ ;;
+
+pcfclock*)
+ unit=`expr $i : 'pcfclock\(.*\)'`
+ mknod pcfclock$unit c 140 `unit2minor $unit`
+ ;;
+
+ppi*)
+ unit=`expr $i : 'ppi\(.*\)'`
+ mknod ppi$unit c 82 `unit2minor $unit`
+ ;;
+
+pps*)
+ unit=`expr $i : 'pps\(.*\)'`
+ mknod pps$unit c 89 `unit2minor $unit`
+ ;;
+
+usb)
+ mknod usb$unit c 108 255 root:operator
+ chmod 0660 usb$unit
+ ;;
+
+usb*)
+ umask 7
+ unit=`expr $i : 'usb\(.*\)'`
+ mknod usb$unit c 108 `unit2minor $unit` root:operator
+ umask 77
+ ;;
+
+uhid*)
+ umask 7
+ unit=`expr $i : 'uhid\(.*\)'`
+ mknod uhid$unit c 122 `unit2minor $unit` root:operator
+ umask 77
+ ;;
+
+ums*)
+ umask 7
+ unit=`expr $i : 'ums\(.*\)'`
+ mknod ums$unit c 111 `unit2minor $unit` root:operator
+ umask 77
+ ;;
+
+ulpt*)
+ unit=`expr $i : 'ulpt\(.*\)'`
+ minor=`unit2minor $unit`
+ mknod ulpt$unit c 113 $minor
+ minor=`unit2minor $(($unit + 64))`
+ mknod unlpt$unit c 113 $minor # and the 'no prime' version
+ ;;
+
+ugen*)
+ umask 7
+ unit=`expr $i : 'ugen\([0-9][0-9]*\)'`
+ endpoint=`expr $i : 'ugen.*\.\([0-9][0-9]*\)'`
+ if [ -z "${unit}" ]; then
+ echo $i - Invalid unit number
+ fi
+ if [ -z "${endpoint}" ]; then # ugen0 & ugen0.1 - ugen0.15
+ mknod ugen$unit c 114 \
+ `unit2minor $(($unit * 16))` root:operator
+ i=1
+ while [ $i -lt 16 ]; do
+ mknod ugen$unit.$i c 114 \
+ `unit2minor $(($unit * 16 + $i))` root:operator
+ i=$(($i + 1))
+ done
+ else
+ minor=`unit2minor $(($unit * 16 + $endpoint))`
+ mknod ugen$unit.$endpoint c 114 $minor root:operator
+ fi
+ umask 77
+ ;;
+
+urio*)
+ umask 7
+ unit=`expr $i : 'urio\(.*\)'`
+ mknod urio$unit c 143 `unit2minor $unit` root:operator
+ umask 77
+ ;;
+
+ucom*)
+ umask 7
+ unit=`expr $i : 'ucom\(.*\)'`
+ minor=`unit2minor $(($unit + 128))`
+ mknod ucom$unit c 138 $minor uucp:dialer
+ umask 77
+ ;;
+
+uscanner*)
+ umask 7
+ unit=`expr $i : 'uscanner\(.*\)'`
+ mknod uscanner$unit c 156 `unit2minor $unit` root:operator
+ umask 77
+ ;;
+
+umodem*)
+ umask 7
+ unit=`expr $i : 'umodem\(.*\)'`
+ mknod umodem$unit c 124 `unit2minor $unit` uucp:dialer
+ umask 77
+ ;;
+
+lpt*)
+ unit=`expr $i : 'lpt\(.*\)'`
+ mknod lpt$unit c 16 `unit2minor $unit`
+ mknod lpctl$unit c 16 `unit2minor $(($unit + 128))`
+ ;;
+
+# Use this to create virtual consoles for syscons, pcvt or codrv
+# ttyv0-b
+# use as MAKEDEV vtyNN to create NN entries
+vty*)
+ chr=12
+ units=`expr $i : 'vty\(.*\)'`
+ i=0
+ while [ $i -lt $units ]; do
+ mknod ttyv$(hexprint $i) c $chr `unit2minor $i`
+ i=$(($i + 1))
+ done
+ ln -fs ttyv0 vga # XXX X still needs this pccons relic
+ ;;
+
+nmdm*)
+ units=`expr $i : 'nmdm\(.*\)'`
+ chr=18
+ i=0
+ while [ $i -lt $units ]; do
+ minor=`unit2minor $i`
+ minor=$(($minor + $minor))
+ mknod nmdm${i}A c $chr $minor
+ mknod nmdm${i}B c $chr $(($minor + 1))
+ i=$(($i + 1))
+ done
+ ;;
+
+bpf*)
+ units=`expr $i : 'bpf\(.*\)$'`
+ unit=0
+ while [ $unit -le $units ]; do
+ mknod bpf$unit c 23 `unit2minor $unit`
+ unit=$(($unit + 1))
+ done
+ ;;
+
+speaker)
+ mknod speaker c 26 0
+ ;;
+
+cua?|cuaa?|cuaa??)
+ umask 7
+ unit_low=`expr $i : 'cua.*\(.\)$'`
+ case $i in
+ cua?|cuaa?)
+ unit_high=""
+ m_high=0
+ ;;
+ cuaa??)
+ unit_high=`expr $i : 'cuaa\(.\).$'`
+ m_high=`ttyminor $unit_high`
+ ;;
+ esac
+ unit=$unit_high$unit_low
+ m=$(($m_high << 16 | `ttyminor $unit_low`))
+ mknod cuaa$unit c 28 $(($m | 128)) uucp:dialer
+ mknod cuaia$unit c 28 $(($m | 32 | 128)) uucp:dialer
+ mknod cuala$unit c 28 $(($m | 64 | 128)) uucp:dialer
+ umask 77
+ ;;
+
+tty?|tty0?|ttyd?|ttyd??)
+ unit_low=`expr $i : 'tty.*\(.\)$'`
+ case $i in
+ tty?|tty0?|ttyd?)
+ unit_high=""
+ m_high=0
+ ;;
+ ttyd??)
+ unit_high=`expr $i : 'ttyd\(.\).$'`
+ m_high=`ttyminor $unit_high`
+ ;;
+ esac
+ unit=$unit_high$unit_low
+ m=$(($m_high << 16 | `ttyminor $unit_low`))
+ mknod ttyd$unit c 28 $m
+ mknod ttyid$unit c 28 $(($m | 32))
+ mknod ttyld$unit c 28 $(($m | 64))
+ ;;
+
+cuac?)
+ umask 7
+ portlist="0 1 2 3 4 5 6 7 8 9 a b c d e f
+ g h i j k l m n o p q r s t u v"
+ major=48
+ card=`expr $i : 'cua.*\(.\)$'`
+ for unit in $portlist
+ do
+ minor=`ttyminor $unit`
+ minor=$(($card * 65536 + $minor))
+ name=$card$unit
+ mknod cuac$name c $major $(($minor + 128)) uucp:dialer
+ mknod cuaic$name c $major $(($minor + 32 + 128)) uucp:dialer
+ mknod cualc$name c $major $(($minor + 64 + 128)) uucp:dialer
+ done
+ umask 77
+ ;;
+
+ttyc?)
+ portlist="0 1 2 3 4 5 6 7 8 9 a b c d e f
+ g h i j k l m n o p q r s t u v"
+ major=48
+ card=`expr $i : 'tty.*\(.\)$'`
+ for unit in $portlist
+ do
+ minor=`ttyminor $unit`
+ minor=$(($card * 65536 + $minor))
+ name=$card$unit
+ mknod ttyc$name c $major $minor
+ mknod ttyic$name c $major $(($minor + 32))
+ mknod ttylc$name c $major $(($minor + 64))
+ done
+ ;;
+
+# RISCom8 'rc' driver entries
+
+cuam?)
+ umask 7
+ unit=`expr $i : 'cua.*\(.\)$'`
+ m=`ttyminor $unit`
+ mknod cuam$unit c 63 $(($m + 128)) uucp:dialer
+ umask 77
+ ;;
+
+ttym?)
+ unit=`expr $i : 'tty.*\(.\)$'`
+ m=`ttyminor $unit`
+ mknod ttym$unit c 63 $m
+ ;;
+
+# Specialix SI/XIO.
+# Note: these are 'base 1' to match the numbers on the panels, and to match
+# the manual that comes with the system.
+ttyA*)
+ major=68
+ units=`expr $i : 'ttyA\(.*\)$'`
+ port=1
+ while [ $port -le $units ]; do
+ minor=$(($port - 1))
+ name=$(zeropad 2 $port)
+ mknod ttyA$name c $major $minor
+ mknod ttyiA$name c $major $(($minor + 65536))
+ mknod ttylA$name c $major $(($minor + 131072))
+ port=$(($port + 1))
+ done
+ # For the user-mode control program, 'sicontrol'
+ mknod si_control c 68 262144
+ ;;
+
+cuaA*)
+ umask 7
+ major=68
+ units=`expr $i : 'cuaA\(.*\)$'`
+ port=1
+ while [ $port -le $units ]; do
+ minor=$(($port - 1))
+ name=$(zeropad 2 $port)
+ mknod cuaA$name c $major $(($minor + 128)) uucp:dialer
+ mknod cuaiA$name c $major $(($minor + 128 + 65536)) \
+ uucp:dialer
+ mknod cualA$name c $major $(($minor + 128 + 131072)) \
+ uucp:dialer
+ port=$(($port + 1))
+ done
+ umask 77
+ ;;
+
+# Alpha AS8[24]00 (TurboLaser) console.
+zs?)
+ unit=`expr $i : 'zs.*\(.\)$'`
+ m=`ttyminor $unit`
+ mknod zs$unit c 135 $m
+ ;;
+
+# Digiboard PC/?? 16 port card.
+# The current scheme of minor numbering is:
+#
+# unused{14} CARD{2} major{8} CALLOUT{1} LOCK{1} INIT{1} PORT{5}
+#
+# CARD bitfield in future versions may be extended to 3 bits.
+#
+# See dgb(4)
+#
+ttyD?)
+ portlist="0 1 2 3 4 5 6 7 8 9 a b c d e f"
+ major=58
+ card=`expr $i : 'tty.*\(.\)$'`
+ for unit in $portlist
+ do
+ minor=`ttyminor $unit`
+ minor=$(($card * 65536 + $minor))
+ name=$card$unit
+ mknod ttyD$name c $major $minor
+ mknod ttyiD$name c $major $(($minor + 32))
+ mknod ttylD$name c $major $(($minor + 64))
+ done
+
+ # Also create devices for the digi driver
+ umask 7
+ major=162
+ card=`expr $i : 'tty.*\(.\)$'`
+ rm -f digi$card.ctl
+ mknod digi$card.ctl c $major $(($card * 65536 + 8388608)) uucp:dialer
+ unit=0
+ while [ $unit -lt 16 ]
+ do
+ base=$(($card * 65536 + $unit))
+ name=$card.$unit
+ rm -f tty*D$name
+ mknod ttyD$name c $major $base
+ mknod ttyiD$name c $major $(($base + 1048576))
+ mknod ttylD$name c $major $(($base + 2097152))
+ unit=$(($unit + 1))
+ done
+ umask 77
+ ;;
+
+cuaD?)
+ umask 7
+ portlist="0 1 2 3 4 5 6 7 8 9 a b c d e f"
+ major=58
+ card=`expr $i : 'cua.*\(.\)$'`
+ for unit in $portlist
+ do
+ minor=`ttyminor $unit`
+ minor=$(($card * 65536 + $minor))
+ name=$card$unit
+ mknod cuaD$name c $major $(($minor + 128)) uucp:dialer
+ mknod cuaiD$name c $major $(($minor + 32 + 128)) uucp:dialer
+ mknod cualD$name c $major $(($minor + 64 + 128)) uucp:dialer
+ done
+
+ # Also create devices for the digi driver
+ major=162
+ card=`expr $i : 'cua.*\(.\)$'`
+ rm -f digi$card.ctl
+ mknod digi$card.ctl c $major $(($card * 65536 + 8388608)) uucp:dialer
+ unit=0
+ while [ $unit -lt 16 ]
+ do
+ base=$(($card * 65536 + $unit))
+ name=$card.$unit
+ rm -f cua*D$name
+ mknod cuaD$name c $major $(($base + 4194304)) uucp:dialer
+ mknod cuaiD$name c $major $(($base + 5242880)) uucp:dialer
+ mknod cualD$name c $major $(($base + 6291456)) uucp:dialer
+ unit=$(($unit + 1))
+ done
+ umask 77
+ ;;
+
+# Digiboard Xem - superceeded by the digi device above
+#
+ttyM*)
+ portlist="0 1 2 3 4 5 6 7 8 9 a b c d e f"
+ modulelist="a b c d"
+ major=101
+ card=`expr $i : 'tty.*\(.\)$'`
+ for unit in $modulelist
+ do
+ moduleminor=`ttyminor $unit`
+ moduleminor=$(($moduleminor % 10 * 16))
+ modulename=$unit
+
+ for unit in $portlist
+ do
+ minor=`ttyminor $unit`
+ minor=$(($card * 65536 + $minor + $moduleminor))
+ name=$card$modulename$unit
+ rm -f tty*M$name
+ mknod ttyM$name c $major $minor
+ mknod ttyiM$name c $major $(($minor + 64))
+ mknod ttylM$name c $major $(($minor + 128))
+ done
+ done
+ ;;
+
+cuaM?)
+ umask 7
+ portlist="0 1 2 3 4 5 6 7 8 9 a b c d e f"
+ modulelist="a b c d"
+ major=101
+ card=`expr $i : 'cua.*\(.\)$'`
+ for unit in $modulelist
+ do
+ moduleminor=`ttyminor $unit`
+ moduleminor=$(($moduleminor % 10 * 16))
+ modulename=$unit
+
+ for unit in $portlist
+ do
+ minor=`ttyminor $unit`
+ minor=$(($card * 65536 + $minor + $moduleminor))
+ name=$card$modulename$unit
+ rm -f cua*M$name
+ mknod cuaM$name c $major $(($minor + 262144)) \
+ uucp:dialer
+ mknod cuaiM$name c $major $(($minor + 64 + 262144)) \
+ uucp:dialer
+ mknod cualM$name c $major $(($minor + 128 + 262144)) \
+ uucp:dialer
+ done
+ done
+ umask 77
+ ;;
+
+ttyR?)
+ major=81
+ BOARD=1; Rnum=0
+ MINOR=$(($BOARD * 65536))
+ controllers=$(
+ dmesg | while read first rest; do
+ case "$first" in
+ RocketPort[0-4])
+ echo "$first"
+ ;;
+ esac
+ done
+ )
+ rm -f ttyR* ttyiR* ttylR*
+ for i in $controllers; do
+ ndevices=$(
+ dmesg | while read first foo bar ports rest; do
+ case "$first" in
+ $i*)
+ echo "$ports"
+ ;;
+ esac
+ done
+ )
+ echo -n "Creating $ndevices devices for $i: "
+ dev=0
+ while [ $dev -lt $ndevices ]; do
+ mknod ttyR$Rnum c $major $MINOR
+ mknod ttyiR$Rnum c $major $(($MINOR + 32))
+ mknod ttylR$Rnum c $major $(($MINOR + 64))
+ Rnum=$(($Rnum + 1))
+ MINOR=$(($MINOR + 1))
+ dev=$(($dev + 1))
+ done
+ BOARD=$(($BOARD + 1))
+ MINOR=$(($BOARD * 65536))
+ echo " "
+ done
+ ;;
+
+cuaR?)
+ major=81
+ BOARD=1; Rnum=0
+ MINOR=$(($BOARD * 65536))
+ controllers=$(
+ dmesg | while read first rest; do
+ case "$first" in
+ RocketPort[0-4])
+ echo "$first"
+ ;;
+ esac
+ done
+ )
+ rm -f cuaR* cuaiR* cualR*
+ for i in $controllers; do
+ ndevices=$(
+ dmesg | while read first foo bar ports rest; do
+ case "$first" in
+ $i*)
+ echo "$ports"
+ ;;
+ esac
+ done
+ )
+ echo -n "Creating $ndevices devices for $i: "
+ dev=0
+ while [ $dev -lt $ndevices ]; do
+ mknod cuaR$Rnum c $major $(($MINOR + 128)) uucp:dialer
+ mknod cuaiR$Rnum c $major $(($MINOR + 128 + 32)) \
+ uucp:dialer
+ mknod cualR$Rnum c $major $(($MINOR + 128 + 64)) \
+ uucp:dialer
+ Rnum=$(($Rnum + 1))
+ MINOR=$(($MINOR + 1))
+ dev=$(($dev + 1))
+ done
+ BOARD=$(($BOARD + 1))
+ MINOR=$(($BOARD * 65536))
+ echo " "
+ done
+ ;;
+
+mse*)
+ unit=`expr $i : 'mse\(.*\)'`
+ chr=27
+ # non-blocking for X11
+ mknod mse$unit c $chr `unit2minor $(($unit * 2 + 1))`
+ ;;
+
+psm*)
+ unit=`expr $i : 'psm\(.*\)'`
+ chr=21
+ # non-blocking for X11
+ mknod psm$unit c $chr `unit2minor $(($unit * 2 + 1))`
+ ;;
+
+mouse*)
+ name=`expr $i : 'mouse\(.*\)'`
+ if [ ! -c $name ]; then
+ $0 $name # make the appropriate device
+ fi
+ ln -fs $name mouse
+ ;;
+
+pcaudio)
+ mknod pcaudio c 24 0
+ mknod pcaudioctl c 24 128
+ ;;
+
+socksys)
+ mknod socksys c 41 0
+ mknod spx c 41 1
+ ln -fs socksys nfsd
+ chmod 666 socksys nfsd spx
+ ;;
+
+snd*)
+#
+# changes from Linux voxware
+# minor Linux FreeBSD
+# 8 sequencer2 (aka music0) music0
+# 17 patmgr0 sequencer1
+# 33 patmgr1 sequencer2
+#
+
+ unit=`expr $i : 'snd\(.*\)'`
+ chr=30
+
+ # XXX write this less verbosely, like std
+ snd_security_hole=0 # XXX
+ umask $snd_security_hole
+
+ ln -fs mixer$unit mixer
+ ln -fs sequencer$unit sequencer
+ ln -fs dsp$unit dsp
+ ln -fs audio$unit audio
+ ln -fs dspW$unit dspW
+ ln -fs music$unit music
+ ln -fs pss$unit pss
+
+ mknod mixer$unit c $chr `unit2minor $(($unit * 16 + 0))`
+ mknod sequencer$unit c $chr `unit2minor $(($unit * 16 + 1))`
+ mknod midi$unit c $chr `unit2minor $(($unit * 16 + 2))`
+ mknod dsp$unit c $chr `unit2minor $(($unit * 16 + 3))`
+ mknod audio$unit c $chr `unit2minor $(($unit * 16 + 4))`
+ mknod dspW$unit c $chr `unit2minor $(($unit * 16 + 5))`
+ mknod sndstat c $chr 6
+ # minor number 7 is unused
+ mknod music$unit c $chr `unit2minor $(($unit * 16 + 8))`
+ mknod pss$unit c $chr `unit2minor $(($unit * 16 + 9))`
+ # minor number 10 is unused
+ mknod midistat c $chr 11
+ # minor numbers 12-15 are unused
+ umask 77
+ ;;
+
+vat)
+ mknod vatio c 25 128
+ chmod 660 vatio
+ ;;
+
+gsc*)
+ unit=`expr $i : 'gsc\(.*\)'`
+ mknod gsc${unit} c 47 `unit2minor $unit`
+ mknod gsc${unit}p c 47 `unit2minor $(($unit + 8))`
+ mknod gsc${unit}d c 47 `unit2minor $(($unit + 32))`
+ mknod gsc${unit}pd c 47 `unit2minor $(($unit + 40))`
+ chmod 666 gsc${unit}*
+ ;;
+
+acpi)
+ mknod acpi c 152 0 root:operator
+ chmod 660 acpi
+ ;;
+
+apm)
+ mknod apm c 39 0 root:operator
+ chmod 664 apm
+ ;;
+
+apmctl)
+ mknod apmctl c 39 8 root:operator
+ chmod 660 apmctl
+ ;;
+
+card*)
+ unit=`expr $i : 'card\(.*\)'`
+ chr=50
+ mknod card$unit c $chr `unit2minor $unit`
+ chmod 644 card$unit
+ ;;
+
+ti*) unit=`expr $i : 'ti\(.*\)'`
+ chr=153
+ mknod ti$unit c $chr `unit2minor $unit`
+ chmod 600 ti$unit
+ ;;
+
+ttyx?|ttyy?|ttyz?)
+ case $i in
+ *0) unit=0;; *1) unit=1;; *2) unit=2;; *3) unit=3;;
+ *4) unit=4;; *5) unit=5;; *6) unit=6;; *7) unit=7;;
+ *8) unit=8;; *9) unit=9;; *a) unit=10;; *b) unit=11;;
+ *c) unit=12;; *d) unit=13;; *e) unit=14;; *f) unit=15;;
+ esac
+ case $i in
+ ttyy?) unit=$(($unit + 16));;
+ ttyz?) unit=$(($unit + 32));;
+ esac
+ mknod $i c 42 $unit
+ ;;
+
+cronyx)
+ mknod cronyx c 42 63
+ ;;
+
+joy)
+ mknod joy0 c 51 0 root:operator
+ mknod joy1 c 51 1 root:operator
+ chmod 640 joy0 joy1
+ ;;
+
+spigot)
+ mknod spigot c 11 0
+ chmod 444 spigot
+ ;;
+
+ctx?)
+ unit=`expr $i : 'ctx\(.*\)'`
+ mknod ctx$unit c 40 `unit2minor $unit`
+ chmod 444 ctx$unit
+ ;;
+
+meteor?)
+ unit=`expr $i : 'meteor\(.*\)'`
+ mknod meteor$unit c 67 `unit2minor $unit`
+ chmod 444 meteor$unit
+ ;;
+
+bktr?)
+ unit=`expr $i : 'bktr\(.*\)'`
+ mknod bktr$unit c 92 `unit2minor $unit`
+ mknod tuner$unit c 92 `unit2minor $((16 + $unit))`
+ mknod vbi$unit c 92 `unit2minor $((32 + $unit))`
+ chmod 444 bktr$unit tuner$unit vbi$unit
+ ;;
+
+tun*)
+ units=`expr $i : 'tun\(.*\)$'`
+ unit=0
+ while [ $unit -le $units ]; do
+ mknod tun$unit c 52 `unit2minor $unit`
+ unit=$(($unit + 1))
+ done
+ ;;
+
+tap*)
+ units=`expr $i : 'tap\(.*\)$'`
+ unit=0
+ while [ $unit -le $units ]; do
+ mknod tap$unit c 149 `unit2minor $unit` root:network
+ unit=$(($unit + 1))
+ done
+ ;;
+
+sysmouse)
+ mknod sysmouse c 12 128
+ mknod consolectl c 12 255
+ ;;
+
+jogdial)
+ mknod jogdial c 160 0
+ ;;
+
+snp?)
+ unit=`expr $i : 'snp\(.*\)'`
+ mknod snp$unit c 53 `unit2minor $unit`
+ ;;
+
+# dufault@hda.com: If I do much more work on other A-D boards
+# then eventually we'll have a "ad" and "dio" interface and some of these
+# "labpcaio" ones will be gone.
+# labpcaio: D-A and A-D.
+# labpcdio: Digital in and Digital out.
+#
+labpc*)
+ umask 7
+ case $i in
+ labpcaio*)
+ name=labpcaio
+ unit=`expr $i : 'labpcaio\(.*\)'`
+ all="0 1 2 3 4 5 6 7"
+ offset=0
+ ;;
+ labpcdio*)
+ name=labpcdio
+ unit=`expr $i : 'labpcdio\(.*\)'`
+ all="0 1 2 3"
+ offset=8
+ ;;
+ *)
+ die 3 "Don't know LabPC type $i"
+ ;;
+ esac
+ if [ -z "${unit}" ]; then
+ unit=all
+ fi
+ case $unit in
+ 0|1|2|3|4|5|6|7)
+ mknod $name$unit c 66 $(($offset + $unit))
+ ;;
+ all)
+ for i in $all
+ do
+ mknod $name$i c 66 $(($offset + $i))
+ done
+ ;;
+ *)
+ echo "No such LabPC unit: $unit"
+ ;;
+ esac
+ umask 77
+ ;;
+
+perfmon)
+ mknod perfmon c 2 32 root:kmem
+ chmod 640 perfmon
+ ;;
+
+ipl)
+ mknod ipl c 79 0
+ mknod ipnat c 79 1
+ mknod ipstate c 79 2
+ mknod ipauth c 79 3
+ ;;
+
+kbd*)
+ unit=`expr $i : 'kbd\(.*\)'`
+ chr=112
+ mknod kbd$unit c $chr `unit2minor $unit`
+ ;;
+
+i4b)
+ mknod i4b c 60 0
+ ;;
+
+i4bctl)
+ mknod i4bctl c 55 0
+ ;;
+
+i4brbch*)
+ unit=`expr $i : 'i4brbch\(.*\)'`
+ mknod i4brbch$unit c 57 `unit2minor $unit`
+ ;;
+
+i4bteld*)
+ offset=64
+ unit=`expr $i : 'i4bteld\(.*\)'`
+ mknod i4bteld$unit c 56 `unit2minor $(($offset + $unit))`
+ ;;
+
+i4btel*)
+ unit=`expr $i : 'i4btel\(.*\)'`
+ mknod i4btel$unit c 56 `unit2minor $unit`
+ ;;
+
+i4btrc*)
+ unit=`expr $i : 'i4btrc\(.*\)'`
+ mknod i4btrc$unit c 59 `unit2minor $unit`
+ ;;
+
+aac*)
+ unit=`expr $i : 'aac\(.*\)'`
+ mknod aac$unit c 150 `unit2minor $unit`
+ ln -fs aac$unit afa$unit
+ ln -fs aac$unit hpn$unit
+ ;;
+
+mlx*)
+ unit=`expr $i : 'mlx\(.*\)'`
+ mknod mlx$unit c 130 `unit2minor $unit`
+ ;;
+
+mly*)
+ unit=`expr $i : 'mlx\(.*\)'`
+ mknod mlx$unit c 158 `unit2minor $unit`
+ ;;
+
+amr*)
+ unit=`expr $i : 'amr\(.*\)'`
+ mknod amr$unit c 132 `unit2minor $unit`
+ ;;
+
+ciss*)
+ unit=`expr $i : 'ciss\(.*\)'`
+ mknod ciss$unit c 166 `unit2minor $unit`
+ ;;
+
+3dfx*)
+ unit=`expr $i : '3dfx\(.*\)'`
+ mknod 3dfx$unit c 107 `unit2minor $unit`
+ ln -sf 3dfx$unit 3dfx
+ ln -sf 3dfx$unit voodoo
+ ;;
+
+agpgart)
+ mknod agpgart c 148 0
+ ;;
+
+twe*)
+ unit=`expr $i : 'twe\(.*\)'`
+ mknod twe$unit c 146 `unit2minor $unit`
+ ;;
+
+tw*)
+ unit=`expr $i : 'tw\(.*\)'`
+ mknod tw$unit c 19 `unit2minor $unit` root:operator
+ ;;
+
+cfs*)
+ unit=`expr $i : 'cfs\(.*\)'`
+ mknod cfs$unit c 93 $unit root:operator
+ ;;
+
+nsmb*)
+ unit=`expr $i : 'nsmb\(.*\)'`
+ mknod nsmb$unit c 144 $unit
+ ;;
+
+local)
+ umask 0 # XXX should be elsewhere
+ sh $0.local
+ umask 77
+ ;;
+
+*)
+ echo $i - no such device name
+ ;;
+
+esac
+done
diff --git a/etc/MAKEDEV.local b/etc/MAKEDEV.local
new file mode 100644
index 0000000..06cc074
--- /dev/null
+++ b/etc/MAKEDEV.local
@@ -0,0 +1,50 @@
+#!/bin/sh -
+#
+# Copyright (c) 1991 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.
+#
+# $FreeBSD$
+# @(#)MAKEDEV.local 5.1 (Berkeley) 3/22/91
+#
+
+# Local device MAKEDEV script.
+
+PATH=/sbin:/bin:/usr/bin
+umask 77
+for i
+do
+case $i in
+
+*)
+ echo 'MAKEDEV.local: no such device.'
+ ;;
+esac
+done
diff --git a/etc/Makefile b/etc/Makefile
new file mode 100644
index 0000000..8f7e389
--- /dev/null
+++ b/etc/Makefile
@@ -0,0 +1,223 @@
+# from: @(#)Makefile 5.11 (Berkeley) 5/21/91
+# $FreeBSD$
+
+.if !defined(NO_SENDMAIL)
+SUBDIR= sendmail
+.endif
+
+BIN1= amd.map apmd.conf auth.conf \
+ crontab csh.cshrc csh.login csh.logout \
+ dhclient.conf dm.conf fbtab ftpusers gettytab group \
+ hosts hosts.allow hosts.equiv hosts.lpd \
+ inetd.conf login.access login.conf \
+ motd modems netconfig networks newsyslog.conf \
+ phones printcap profile protocols \
+ rc rc.atm rc.devfs rc.diskless1 rc.diskless2 rc.firewall rc.firewall6 \
+ rc.network rc.network6 rc.pccard rc.sendmail rc.serial rc.shutdown \
+ rc.subr rc.syscons rc.sysctl remote rpc services \
+ shells sysctl.conf syslog.conf usbd.conf \
+ etc.${MACHINE_ARCH}/disktab \
+ etc.${MACHINE_ARCH}/rc.${MACHINE_ARCH} \
+ etc.${MACHINE_ARCH}/ttys \
+ ${.CURDIR}/../gnu/usr.bin/man/manpath/manpath.config \
+ ${.CURDIR}/../usr.bin/mail/misc/mail.rc \
+ ${.CURDIR}/../usr.bin/locate/locate/locate.rc
+
+.if !defined(NO_I4B)
+BIN1+= rc.isdn
+.endif
+
+.if exists(${.CURDIR}/../crypto) && !defined(NO_OPENSSL)
+.if !defined(NO_OPENSSH)
+SSH= ${.CURDIR}/../crypto/openssh/ssh_config \
+ ${.CURDIR}/../crypto/openssh/sshd_config \
+ moduli
+.endif
+SSL= ${.CURDIR}/../crypto/openssl/apps/openssl.cnf
+.endif
+
+# -rwxr-xr-x root:wheel, for the new cron root:wheel
+BIN2= netstart pccard_ether rc.suspend rc.resume
+
+DEFAULTS= rc.conf pccard.conf periodic.conf
+
+MTREE= BSD.include.dist BSD.local.dist BSD.root.dist BSD.usr.dist \
+ BSD.var.dist BSD.x11.dist BSD.x11-4.dist
+.if !defined(NO_SENDMAIL)
+MTREE+= BSD.sendmail.dist
+.endif
+
+NAMEDB= PROTO.localhost.rev PROTO.localhost-v6.rev named.conf named.root \
+ make-localhost
+
+PPPCNF= ppp.conf
+
+ETCMAIL=Makefile README mailer.conf access.sample virtusertable.sample \
+ mailertable.sample aliases
+
+# Special top level files for FreeBSD
+FREEBSD=COPYRIGHT
+
+distribute:
+ cd ${.CURDIR} ; ${MAKE} distribution DESTDIR=${DISTDIR}/${DISTRIBUTION}
+.if defined(OBJFORMAT)
+ echo OBJFORMAT=${OBJFORMAT} > ${DISTDIR}/${DISTRIBUTION}/etc/objformat
+.endif
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \
+ ${.CURDIR}/../sys/${MACHINE}/conf/GENERIC.hints \
+ ${DISTDIR}/${DISTRIBUTION}/boot/device.hints
+
+distribution:
+ cd ${.CURDIR}; \
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
+ ${BIN1} ${DESTDIR}/etc; \
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 755 \
+ ${BIN2} ${DESTDIR}/etc; \
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 600 \
+ master.passwd nsmb.conf opieaccess ${DESTDIR}/etc; \
+ pwd_mkdb -p -d ${DESTDIR}/etc ${DESTDIR}/etc/master.passwd
+ cd ${.CURDIR}/defaults; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
+ ${DEFAULTS} ${DESTDIR}/etc/defaults
+ cd ${.CURDIR}/periodic; ${MAKE} install
+ cd ${.CURDIR}/rc.d; ${MAKE} install
+ cd ${.CURDIR}/../gnu/usr.bin/send-pr; ${MAKE} etc-gnats-freefall
+ cd ${.CURDIR}/../share/termcap; ${MAKE} etc-termcap
+ cd ${.CURDIR}/../usr.sbin/rmt; ${MAKE} etc-rmt
+ cd ${.CURDIR}/pam.d; ${MAKE} install
+.if !defined(NO_I4B)
+ cd ${.CURDIR}/isdn; ${MAKE} install
+.endif
+.if !defined(NO_SENDMAIL)
+ cd ${.CURDIR}/sendmail; ${MAKE} distribution
+.endif
+.if exists(${.CURDIR}/../crypto) && !defined(NO_OPENSSL)
+.if !defined(NO_OPENSSH)
+ cd ${.CURDIR}; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
+ ${SSH} ${DESTDIR}/etc/ssh
+.endif
+ cd ${.CURDIR}; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
+ ${SSL} ${DESTDIR}/etc/ssl
+.endif
+.if !defined(NO_MAKEDEV_INSTALL)
+ cd ${.CURDIR}; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 555 \
+ MAKEDEV.local MAKEDEV ${DESTDIR}/dev
+.if !defined(NO_MAKEDEV_RUN)
+ cd ${DESTDIR}/dev; sh MAKEDEV all
+.endif
+.endif
+ cd ${.CURDIR}/root; \
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
+ dot.cshrc ${DESTDIR}/root/.cshrc; \
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
+ dot.klogin ${DESTDIR}/root/.klogin; \
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
+ dot.login ${DESTDIR}/root/.login; \
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
+ dot.profile ${DESTDIR}/root/.profile; \
+ rm -f ${DESTDIR}/.cshrc ${DESTDIR}/.profile; \
+ ln ${DESTDIR}/root/.cshrc ${DESTDIR}/.cshrc; \
+ ln ${DESTDIR}/root/.profile ${DESTDIR}/.profile
+ cd ${.CURDIR}/mtree; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \
+ ${MTREE} ${DESTDIR}/etc/mtree
+ cd ${.CURDIR}/namedb; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
+ ${NAMEDB} ${DESTDIR}/etc/namedb
+ cd ${.CURDIR}/ppp; ${INSTALL} -o root -g ${BINGRP} -m 600 \
+ ${PPPCNF} ${DESTDIR}/etc/ppp
+ cd ${.CURDIR}/mail; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
+ ${ETCMAIL} ${DESTDIR}/etc/mail
+ @if [ -d ${DESTDIR}/etc/mail -a -f ${DESTDIR}/etc/mail/aliases -a \
+ ! -f ${DESTDIR}/etc/aliases ]; then \
+ set -x; \
+ ln -s mail/aliases ${DESTDIR}/etc/aliases; \
+ fi
+ ${INSTALL} -o ${BINOWN} -g operator -m 664 /dev/null \
+ ${DESTDIR}/etc/dumpdates
+ ${INSTALL} -o nobody -g ${BINGRP} -m 644 /dev/null \
+ ${DESTDIR}/var/db/locate.database
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 600 /dev/null \
+ ${DESTDIR}/var/log/auth.log
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 600 /dev/null \
+ ${DESTDIR}/var/log/cron
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \
+ ${DESTDIR}/var/log/lpd-errs
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 640 /dev/null \
+ ${DESTDIR}/var/log/maillog
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \
+ ${DESTDIR}/var/log/lastlog
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \
+ ${DESTDIR}/var/log/messages
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 600 /dev/null \
+ ${DESTDIR}/var/log/security
+ ${INSTALL} -o ${BINOWN} -g network -m 640 /dev/null \
+ ${DESTDIR}/var/log/slip.log
+ ${INSTALL} -o ${BINOWN} -g network -m 640 /dev/null \
+ ${DESTDIR}/var/log/ppp.log
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \
+ ${DESTDIR}/var/log/wtmp
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \
+ ${DESTDIR}/var/run/utmp
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 ${.CURDIR}/minfree \
+ ${DESTDIR}/var/crash
+ cd ${.CURDIR}/..; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \
+ ${FREEBSD} ${DESTDIR}/
+.if !defined(NOMAN)
+ cd ${.CURDIR}/../share/man; ${MAKE} makedb
+.endif
+
+distrib-dirs:
+ -set - `grep "^[a-zA-Z]" ${.CURDIR}/locale.deprecated`; \
+ while [ $$# -gt 0 ] ; \
+ do \
+ for dir in /usr/share/locale \
+ /usr/share/nls \
+ /usr/local/share/nls; \
+ do \
+ test -d ${DESTDIR}/$${dir} && cd ${DESTDIR}/$${dir}; \
+ test -L "$$2" && rm -rf "$$2"; \
+ test \! -L "$$1" && test -d "$$1" && mv "$$1" "$$2"; \
+ done; \
+ shift; shift; \
+ done
+ mtree -deU ${MTREE_FOLLOWS_SYMLINKS} -f ${.CURDIR}/mtree/BSD.root.dist -p ${DESTDIR}/
+ mtree -deU ${MTREE_FOLLOWS_SYMLINKS} -f ${.CURDIR}/mtree/BSD.var.dist -p ${DESTDIR}/var
+ mtree -deU ${MTREE_FOLLOWS_SYMLINKS} -f ${.CURDIR}/mtree/BSD.usr.dist -p ${DESTDIR}/usr
+ mtree -deU ${MTREE_FOLLOWS_SYMLINKS} -f ${.CURDIR}/mtree/BSD.include.dist \
+ -p ${DESTDIR}/usr/include
+.if !defined(NO_SENDMAIL)
+ mtree -deU ${MTREE_FOLLOWS_SYMLINKS} -f ${.CURDIR}/mtree/BSD.sendmail.dist -p ${DESTDIR}/
+.endif
+ cd ${DESTDIR}/; rm -f ${DESTDIR}/sys; ln -s usr/src/sys sys
+ cd ${DESTDIR}/usr/share/man/en.ISO8859-1; ln -sf ../man* .
+ cd ${DESTDIR}/usr/share/man; \
+ set - `grep "^[a-zA-Z]" ${.CURDIR}/man.alias`; \
+ while [ $$# -gt 0 ] ; \
+ do \
+ rm -rf "$$1"; \
+ ln -s "$$2" "$$1"; \
+ shift; shift; \
+ done
+ cd ${DESTDIR}/usr/share/locale; \
+ set - `grep "^[a-zA-Z]" ${.CURDIR}/locale.alias`; \
+ while [ $$# -gt 0 ] ; \
+ do \
+ rm -rf "$$1"; \
+ ln -s "$$2" "$$1"; \
+ shift; shift; \
+ done
+ cd ${DESTDIR}/usr/share/nls; \
+ set - `grep "^[a-zA-Z]" ${.CURDIR}/nls.alias`; \
+ while [ $$# -gt 0 ] ; \
+ do \
+ rm -rf "$$1"; \
+ ln -s "$$2" "$$1"; \
+ shift; shift; \
+ done
+
+etc-examples:
+ cd ${.CURDIR}; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \
+ ${BIN1} ${BIN2} nsmb.conf opieaccess \
+ ${DESTDIR}/usr/share/examples/etc
+ cd ${.CURDIR}/defaults; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \
+ ${DEFAULTS} ${DESTDIR}/usr/share/examples/etc/defaults
+
+.include <bsd.prog.mk>
diff --git a/etc/amd.map b/etc/amd.map
new file mode 100644
index 0000000..d34adc9
--- /dev/null
+++ b/etc/amd.map
@@ -0,0 +1,4 @@
+# $FreeBSD$
+#
+/defaults type:=host;fs:=${autodir}/${rhost}/host;rhost:=${key}
+* opts:=rw,grpid,resvport,vers=3,proto=udp,nosuid,nodev
diff --git a/etc/apmd.conf b/etc/apmd.conf
new file mode 100644
index 0000000..4dc79be
--- /dev/null
+++ b/etc/apmd.conf
@@ -0,0 +1,51 @@
+# apmd Configuration File
+#
+# $FreeBSD$
+#
+
+apm_event SUSPENDREQ {
+ exec "/etc/rc.suspend";
+}
+
+apm_event USERSUSPENDREQ {
+ exec "sync && sync && sync";
+ exec "sleep 1";
+ exec "apm -z";
+}
+
+apm_event NORMRESUME, STANDBYRESUME {
+ exec "/etc/rc.resume";
+}
+
+# resume event configuration for serial mouse users by
+# reinitializing a moused(8) connected to a serial port.
+#
+#apm_event NORMRESUME {
+# exec "kill -HUP `cat /var/run/moused.pid`";
+#}
+
+# suspend request event configuration for ATA HDD users:
+# execute standby instead of suspend.
+#
+#apm_event SUSPENDREQ {
+# reject;
+# exec "sync && sync && sync";
+# exec "sleep 1";
+# exec "apm -Z";
+#}
+
+# Sample entries for battery state monitoring
+#apm_battery 5% discharging {
+# exec "logger -p user.emerg battery status critical!";
+# exec "echo T250L8CE-GE-C >/dev/speaker";
+#}
+#apm_battery 1% discharging {
+# exec "logger -p user.emerg battery low - emergency suspend";
+# exec "echo T250L16B+BA+AG+GF+FED+DC+CC >/dev/speaker";
+# exec "apm -z";
+#}
+#apm_battery 99% charging {
+# exec "logger -p user.notice battery fully charged";
+#}
+
+# apmd Configuration ends here
diff --git a/etc/auth.conf b/etc/auth.conf
new file mode 100644
index 0000000..5e9179a
--- /dev/null
+++ b/etc/auth.conf
@@ -0,0 +1,10 @@
+#
+# $FreeBSD$
+#
+# This file contains information on what types of authentication to use.
+# It is just the beginnings of a greater scheme.
+
+# crypt_default = md5 des
+# auth_list = passwd kerberos
+
+auth_list = passwd
diff --git a/etc/crontab b/etc/crontab
new file mode 100644
index 0000000..56ef475
--- /dev/null
+++ b/etc/crontab
@@ -0,0 +1,27 @@
+# /etc/crontab - root's crontab for FreeBSD
+#
+# $FreeBSD$
+#
+SHELL=/bin/sh
+PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
+HOME=/var/log
+#
+#minute hour mday month wday who command
+#
+*/5 * * * * root /usr/libexec/atrun
+#
+# save some entropy so that /dev/random can reseed on boot
+*/11 * * * * operator /usr/libexec/save-entropy
+#
+# rotate log files every hour, if necessary
+0 * * * * root newsyslog
+#
+# do daily/weekly/monthly maintenance
+1 3 * * * root periodic daily
+15 4 * * 6 root periodic weekly
+30 5 1 * * root periodic monthly
+#
+# time zone change adjustment for wall cmos clock,
+# does nothing, if you have UTC cmos clock.
+# See adjkerntz(8) for details.
+1,31 0-5 * * * root adjkerntz -a
diff --git a/etc/csh.cshrc b/etc/csh.cshrc
new file mode 100644
index 0000000..f4f775a
--- /dev/null
+++ b/etc/csh.cshrc
@@ -0,0 +1,3 @@
+# $FreeBSD$
+#
+# System-wide .cshrc file for csh(1).
diff --git a/etc/csh.login b/etc/csh.login
new file mode 100644
index 0000000..7d70f93
--- /dev/null
+++ b/etc/csh.login
@@ -0,0 +1,15 @@
+# $FreeBSD$
+#
+# System-wide .login file for csh(1).
+# Uncomment this to give you the default 4.2 behavior, where disk
+# information is shown in K-Blocks
+# setenv BLOCKSIZE K
+#
+# For the setting of languages and character sets please see
+# login.conf(5) and in particular the charset and lang options.
+# For full locales list check /usr/share/locale/*
+#
+# Read system messages
+# msgs -f
+# Allow terminal messages
+# mesg y
diff --git a/etc/csh.logout b/etc/csh.logout
new file mode 100644
index 0000000..6b0584f
--- /dev/null
+++ b/etc/csh.logout
@@ -0,0 +1,3 @@
+# $FreeBSD$
+#
+# System-wide .logout file for csh(1).
diff --git a/etc/defaults/Makefile b/etc/defaults/Makefile
new file mode 100644
index 0000000..3e9a52d
--- /dev/null
+++ b/etc/defaults/Makefile
@@ -0,0 +1,8 @@
+# $FreeBSD$
+
+FILES= pccard.conf periodic.conf rc.conf
+NOOBJ= noobj
+FILESDIR= /etc/defaults
+FILESMODE= 644
+
+.include <bsd.prog.mk>
diff --git a/etc/defaults/pccard.conf b/etc/defaults/pccard.conf
new file mode 100644
index 0000000..cb0cbef
--- /dev/null
+++ b/etc/defaults/pccard.conf
@@ -0,0 +1,2135 @@
+#
+# Default PCCARD configuration file
+#
+# $FreeBSD$
+#
+# Please send new entries for this file to imp@freebsd.org. He likes to
+# review them before they are committed to make sure they are correct for
+# the style of the file. Please attempt to use "auto" for the config
+# number whereever possible. Do not commit IRQs in the "config" lines.
+# Make sure that you use tabs rather than multiple spaces for new entires
+# like the old ones. <tab>keyword<tab>arguments.
+#
+# Removing all IRQ conflicts from this file can't be done because of some
+# IRQ-selfish PC-cards. So if you want to use some of those cards in
+# your machine, you may need to modify the IRQ list below. Please put
+# such overrides in /etc/pccard.conf. You can also place override
+# card entries in /etc/pccard.conf, since the first match is the one that
+# pccardd will use to configure the card.
+#
+
+# Generally available IO ports
+io 0x240-0x360
+# on i386 IRQs can be any of 3 4 5 7 9 10 11 12 14 15
+# on pc98 IRQs can be any of 3 5 6 9 10 11 12 13
+# but *MUST* *NOT* be used by anything else, unless you are using current
+# and a PCI cardbus bridge that allows sharing. Even then, the rules
+# for interrupt sharing can be tricky.
+# Generally available IRQs (Built-in sound-card owners remove 5)
+irq 3 5 10 11 15
+# Available memory slots
+memory 0xd4000 96k
+# Debug level, so you know how to get more info for maintainers. Put it
+# in /etc/pccard.conf
+#debuglevel 4
+
+# Include user configration file
+# This allow you to override or add configurations.
+include /etc/pccard.conf
+
+#
+# PLEASE KEEP THIS FILE IN ORDER
+#
+# In order is defined as follows. We sort first by driver type (an, ed, etc)
+# and then by CIS strings. Do not commit to this file entries out of
+# order.
+#
+
+########## aic ##########
+
+# Adaptec SlimSCSI (also included with Sony CD-ROM players)
+card "Adaptec, Inc." "/APA-1460 .*/"
+ config 0x9 "aic" ?
+ insert camcontrol rescan all
+
+# NewMedia Bustoaster SCSI
+card "New Media" "SCSI"
+ config 0x22 "aic" ?
+ insert camcontrol rescan all
+
+########## an ##########
+
+# Aironet PC4500 2Mbps 802.11 wireless NIC
+card "Aironet" "PC4500"
+ config 0x5 "an" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Aironet PC4800 11Mbps 802.11 wireless NIC
+card "Aironet" "PC4800"
+ config 0x5 "an" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Aironet 340 Series 11Mbps 802.11 wireless NIC
+card "Cisco Systems" "340 Series Wireless LAN Adapter"
+ config auto "an" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Aironet 350 Series 11Mbps 802.11 wireless NIC
+card "Cisco Systems" "350 Series Wireless LAN Adapter"
+ config auto "an" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Xircom sells a rebaded unit
+card "Xircom" "Wireless Ethernet Adapter"
+ config 0x5 "an" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+########## ata ##########
+
+# Sony VAIO cdrom, Ninja-ATA CD-ROM Drive, MELCO CDN-D12EX
+card " " "NinjaATA-"
+ config auto "ata" ?
+ logstr "NinjaATA"
+
+# Non-brand Compact Flash Card(32MB)
+card " " "KCF 32M"
+ config 0x1 "ata" ? iosize 16
+ logstr "Compact Flash Card 32M"
+
+# Caravelle PSC-IDE 6x ATAPI CD-ROM
+card "Caravelle" "/PSC-IDE */"
+ config 0x2a "ata" ? # 0x1 (flags for wd, not sure for ata)
+
+# <Vendor Unknown> MCD-601p 6x CD-ROM drive.
+card "CDROM" "IDE"
+ config auto "ata" ?
+ logstr "MCD-601p"
+
+# Lexar Media compact flash
+card "/CL ATA FLASH CARD LEXAR */" "TIDALWV"
+# auto does not work
+ config 0x1 "ata" ?
+
+# CNF CD-M
+card "CNF CD-M" "CD-ROM"
+ config auto "ata" ?
+ logstr "CNF CD-M"
+
+# DATAFAB PCMMD2
+card "DATAFAB" "PCMCIA-TO-IDE"
+ config 0x1 "ata" ?
+
+# DHU Mobile Media CD-ROM
+# (no hotplug support)
+card "Digital Equipment Corporation." "Digital Mobile Media CD-ROM"
+ config auto "ata" ?
+
+# EXP DVD-780 DVD-ROM drive
+card "/EXP */" "PnPIDE"
+ config auto "ata" ?
+
+# Toshiba mobile CD-ROM (Bundled with Portege 3110CT)
+card "FREECOM" "PCCARD-IDE"
+ config auto "ata" ? iosize 16
+
+# FUJITSU FlashDiskCard ZEBO-ATA40
+card "FUJITSU" "ZEBO-ATA"
+ config 0x03 "ata" ?
+
+# Greystone Diskdock
+card "GREYSTONE PERIPHERAL DISKDOCK" "/.*/"
+ config default "ata" ?
+
+# HAGIWARA FLASH
+card "HAGIWARA" "FLASH"
+ config default "ata" ?
+
+# Hitachi Flash ATA
+card "HITACHI" "/.*FLASH.*/"
+ config 0x01 "ata" ? iosize 16
+
+# IBM Flash ATA (Ricoh Flash ATA 10MB)
+card "IBM" "IBM17JSSFP10"
+ config auto "ata" ? iosize 16
+
+# XXX NOT SURE SUPPORTED
+# IBM Portable 4X Speed CD-ROM Drive CD-400
+#card "IBM" "PCMCIA CD-ROM Drive CD-400"
+# config 0x1 "ata" ? iosize 0x20 # 0x10000 (flags for wd, not sure for ata)
+
+# IBM CD-20XSeries(IDE PC Card)
+card "IBM" "PCMCIA Portable CD-ROM Drive"
+ config auto "ata" ? iosize 0x1
+
+# IBM Microdrive (CF+ Type II)
+card "IBM" "microdrive"
+# config 0x03 "ata" ?
+ config 0x01 "ata" ? iosize 16
+
+# Integral Peripherals Viper HDD Series
+card "INTEGRAL PERIPHERALS" "ATA CARD"
+# config default "ata" ?
+ config 0x01 "ata" ? iosize 16
+
+# IO DATA PCMF144/20 (as Flash ATA only)
+card "IO DATA" "ATA&MODEM"
+ config 0x7 "ata" ?
+# config auto "sio" ?
+
+# IO DATA CBIDE2 in 16 bit mode
+# (bundled with IO DATA CDP-AX24T, Panasonic DVD-ROM LK-RV8171D)
+card "IO DATA" "/CBIDE2 */"
+ config default "ata" ?
+
+# IO Data PCIDE-II (bundled with CDP-TX6, etc.)
+card "IO DATA" "PCIDEII"
+ config auto "ata" ?
+
+# Iomega Zip Drive
+card "Iomega" "PCMCIA to 16 bit ATAPI Adapter"
+ config 0x2 "ata" ?
+
+# KODAK Picture Card
+card "KODAK Picture Card" "KODAK"
+ config default "ata" ?
+
+# TOSHIBA Portable 24X Speed CD-ROM Drive PA2673UJ
+card "LOOKMEET" "/CBIDE2 */"
+ config default "ata" ?
+
+# Maxtor ATA HDD
+card "Maxtor" "/MXL.*/"
+ config 0x03 "ata" ?
+
+# Microtech XpressDock
+card "Microtech International Inc." "IDE PCCARD"
+ config auto "ata" ? 0x20000 iosize 16
+
+# Midori Elec. Flash ATA
+card "Midori Elec." "/.*FLASH.*/"
+ config 0x03 "ata" ?
+
+# Panasonic Flash ATA BN-040ABP3
+card "Panasonic" "ATA" "/BN-040AB-M */"
+# auto does not work
+ config 0x1 "ata" ?
+ logstr "Panasonic Flash ATA BN-040ABP3"
+
+# LK-RM120
+card "Panasonic" "LMEK0406"
+ config 0x22 "ata" ? 0x1
+
+# Another boring, generic ata atapter
+card "PC CARD MANUFACTURER" "PCMCIA ATA/ATAPI Adapter"
+ config auto "ata" ?
+
+# pc-card from PSCD-740 cdrom
+card "PCMCIA" "CD-ROM"
+ config 0x1 "ata" ?
+
+# Novac DVD/CD Station
+card "PCMCIA" "PnPIDE"
+ config auto "ata" ?
+
+# Shining PMIDE-ASC CDROM / Road Warrior Bullet Disk
+card "Shining" "PMIDE-ASC"
+ config auto "ata" ? 0x20000
+
+# Microtech PortableDRIVE25/PCMCIA
+card "SHUTTLE TECHNOLOGY LTD." "PCCARD-IDE/ATAPI Adapter"
+ config auto "ata" ? 0x20000
+
+# XXX NOT SURE SUPPORTED
+# CitiDISK & Addonics PocketZIP
+#card "Shining" "PMIDE-ASC"
+# config default "ata" ? # 0x20000 (flags for wd, not sure for ata)
+
+# Sicon Peripheral PCMCIA ATA/ATAPI Adapter
+card "Sicon Peripheral" "PCMCIA ATA/ATAPI Adapter"
+ config default "ata" ?
+
+# SiliconTech,Inc. Compact PC Card
+card "SiliconTech,Inc." "/[0-9]+MB Compact PC Card/"
+ config 0x1 "ata" ?
+
+# Simple Technology ata flash
+card "/Simple Technology */" "STI-ATA"
+ config auto "ata" ?
+
+# SONY Memory Stick PC Card Adaptor
+card "SONY" "/MEMORYSTICK.*/"
+ config 0x01 "ata" ?
+ iosize 16
+
+# SunDisk Flash ATA
+# (OEM: Epson Flash Packer)
+card "SunDisk" "/.*/"
+ config 0x1 "ata" ?
+
+# T-POWER Flash ATA
+card "/T-POWER */" "/.*/"
+ config 0x1 "ata" ?
+
+# TDK Flash ATA
+card "TDK TC_H." "/.*/"
+ config 0x1 "ata" ?
+
+# IO Data CBIDE (bundled with CDP-FX24, etc.)
+card "WIT" "IDE16"
+ config auto "ata" ?
+
+# LIP-32B attached to Logitec LCW-PD648PI
+card "WORKBIT" "ATA-32Bi(16)"
+ config default "ata" ?
+
+# Viking ATA Flash card
+card "/VIKING ATA/CF FLASH CARD */" "/TOR/AM */"
+ config 0x2 "ata" ?
+
+########## awi ##########
+
+# Generic AMD Am79c930 based card
+# Melco WLI-PCM
+card "AMD" "Am79C930"
+ config 0x1 "awi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Bay Networks Baystack 650 Wireless LAN
+card "Bay Networks" "BayStack 650 Wireless LAN"
+ config 0x1 "awi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Bay Networks Baystack 660 Wireless LAN
+card "Bay Networks" "BayStack 660 Wireless LAN"
+ config auto "awi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Farallon SkyLINE Wireless
+card "Farallon" "SkyLINE Wireless"
+ config auto "awi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# ICom SL-200
+card "Icom" "SL-200"
+ config auto "awi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Teletronics WL2000D 2Mbps wireless card
+# Might not be right, reports are that it reports ether of 0:0:0:0:0:0
+card "OEM" "WLAN/WPMCIA"
+ config auto "awi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# ZoomAir 4000
+card "Zoom" "Air-4000"
+ config auto "awi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+########## cnw ##########
+
+# NetWave AirSurfer
+# NOTE: For some machines, wait cycle for memory access is required.
+# you should change "0x40" on the last part of "cardmem" line to "0x44",
+# like:
+# cardmem 0xd4000 0x20000 0x9000 0x44
+# IBM ThinkPads are known to require this change.
+# Xircom CreditCard Netwave
+card "Xircom" "CreditCard Netwave"
+ config 0x01 "cnw" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+########## cs ##########
+
+# NOTE: This likely doesn't work, but might.
+# IBM EtherJet PC Card 16bit version
+card "IBM" "EtherJet PC Card"
+ config auto "cs" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+########## ed ##########
+
+# No-brand NE2000 compatible card (FCC ID: LXLC1LANTB)
+card " " "Ethernet Combo card"
+ config auto "ed" ? 0x10
+ logstr "NE2000 compatible card"
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Map Japan MPL-972
+card "2408LAN" "Ethernet"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Accton EN2212
+# Very slow! (PIO mode)
+card "ACCTON" "EN2212"
+ config auto "ed" ? 0x30
+ ether 0xff0 # 00:00:e8
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Accton EN2216
+card "ACCTON" "EN2216-PCMCIA-ETHERNET"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Allied Telesis CentreCOM LA-PCM
+card "Allied Telesis,K.K" "Ethernet LAN Card"
+ config default "ed" ? 0x10
+ ether 0xff0 # 00:00:f4
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Allied Telesis CentreCOM LA-PCM_V2 ethernet card
+# NTT-DATA ASTROWINK-M/MMOIL(IrLAN) ethernet card
+card "Allied Telesis, K.K." "CentreCOM LA-PCM_V2"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Allied Telesis CentreCOM LA100-PCM-T V2
+card "Allied Telesis, K.K." "CentreCOM LA100-PCM-T V2 100/10M LAN PC Card"
+ config auto "ed" ? 0x80000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Allied Telesis CentreCOM LA-PCM V3
+card "Allied Telesis K.K." "LA-PCM V3"
+ config auto "ed" ? 0x10
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# AmbiCom 10BaseT card
+card "AmbiCom Inc" "AMB8002T"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Billionton LNA-100B
+card "Billionton" "LNA-100B"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Billionton LNT-10TB
+card "Billionton" "LNT-10TB"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Billionton LNT-10TN
+card "Billionton" "LNT-10TN"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# BUFFALO LPC2-CLT
+card "BUFFALO" "LPC2-CLT"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# BUFFALO LPC3-CLT
+card "BUFFALO" "LPC3-CLT"
+ config auto "ed" ? 0x30000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# BUFFALO LPC3-CLX
+card "BUFFALO" "LPC3-CLX"
+ config auto "ed" ? 0x30000
+ ether 0x1c8
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# CNet BC40 adapter
+card "CNet" "CN40BC Ethernet"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# COREGA FEther PCC-TXF
+card "corega" "FEther PCC-TXF"
+ config auto "ed" ? 0x80000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# COREGA Ether PCC-T and COREGA EtherII PCC-T
+card "corega K.K." "/corega Ether(II)? PCC-T/"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# COREGA FastEther PCC-TX
+card "corega K.K." "corega FastEther PCC-TX"
+ config auto "ed" ? 0x80000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# COREGA FEther PCC-TXD
+card "corega K.K." "corega FEther PCC-TXD"
+ config auto "ed" ? 0x30000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Corega PCM-T
+card "Corega,K.K." "Ethernet LAN Card"
+ config auto "ed" ?
+ ether 0xff0 # 00:00:f4
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Surecome EP-427X PCMCIA ethernet
+card "CouplerlessPCMCIA" "100BASE"
+ config auto "ed" ? 0x30000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# CyQ've ELA-010
+card "CyQ've" "ELA-010"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# CyQ've ELA-110 and ELA-110E
+card "CyQ've" "/ELA-110E? 10/100M LAN Card/"
+ config auto "ed" ? 0x80000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# D-Link DE-650 and DE-660
+card "D-Link" "/DE-6[56]0/"
+ config auto "ed" ? 0x10
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# D-Link DFE-650 Fast Ethernet Card
+card "D-Link" "DFE-650"
+ config auto "ed" ? 0x80010
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# D-Link DME-560T LAN/FAX/MODEM Card (as Ethernet)
+card "D-Link" "DME560T"
+ config default "ed" ?
+# config auto "sio" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Danpex (Alloy, etc.) EN-6200P2
+card "DANPEX" "EN-6200P2"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Dayna Communications CommuniCard E
+card "Dayna Communications, Inc." "CommuniCard E"
+ config auto "ed" ? 0x10
+ ether 0x110 # 00:80:19
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Digital DEPCM-BA Ethernet
+card "DIGITAL" "DEPCM-XX"
+ config auto "ed" ? 0x10
+ ether 0xff0 # 00:00:e8
+# ether 0x1c0 # 00:00:e8 -- seen on a rev. C01 card
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Planex FNW-3600-T and FNW-3600-TX DirectDock (second model)
+card "Dual Speed" "/10/100( Port Attached)? PC Card/"
+ config auto "ed" ? 0x80000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Linksys Combo PCMCIA Ethernet Card
+card "E-CARD" "E-CARD"
+ config auto "ed" ?
+ logstr "Linksys Combo Ethernet Card"
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Eiger Labs Ethernet COMBO
+card "EIGER Labs Inc." "Ethernet COMBO Card"
+ config auto "ed" ? 0x10
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# XXX Compex Net-A adapter, Telecom SuperSocket RE450T,
+# Apollo PCMCIA Ethernet Adapter, PLANEX ENW-3503-T and
+# Fiber line 10M Ethernet COMBO have same manufacturer and
+# card version string. They should be distinguished by
+# other info. (such as additional information or OEM-ID/product-ID).
+
+# Note: There are several revisions of the cardon the market.
+# Type A needs no "ether" line.
+# Type B needs "ether 0x110" line.
+# Type C needs "ether 0xff0" line.
+# Yet more revisions exist, reportedly.
+# If you see strange MAC address shown by ifconfig command,
+# try other config.
+card "Ethernet" "Adapter"
+ config auto "ed" ?
+# ether 0x110 # 00:e0:98
+ ether 0xff0 # 00:e0:98
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# pci Ethernet Adapter Card
+card "Ethernet" "CF Size PC Card"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# "Ethernet Adapter" "E2000 PCMCIA Ethernet"
+card "Ethernet Adapter" "E2000 PCMCIA Ethernet"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# ADDTRON EP-210A
+card "EP-210 PCMCIA LAN CARD." "/.*/"
+ config auto "ed" ? 0x10
+ ether 0x110 # 00:40:33
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Planex FNW-3700-T Fast Ethernet
+card "Fast Ethernet" "16-bit PC Card"
+ config auto "ed" ? 0x30000
+ logstr "Planex FNW-3700-T"
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Planex FNW-3600-T 16bit Fast Ethernet (old model)
+card "Fast Ethernet" "Adapter"
+ config auto "ed" ? 0x80000
+ logstr "Planex FNW-3600-T"
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# TDK Grey Cell GCS2000 and GCS2220
+card "Grey Cell" "/GCS2(00|22)0/"
+ config auto "ed" ? 0x10
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# GVC NIC-2000P Ethernet Card
+card "GVC" "NIC-2000p"
+ config auto "ed" ? 0x10
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# IBM PCMCIA Ethernet I/II, RIOS PC CARD II ETHERNET
+card "IBM Corp." "Ethernet"
+ config auto "ed" ?
+ ether 0xff0 # 08:00:5a 00:04:ac 00:06:29
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# AR-P500 ethernet card, Planet Communications Smart COM 3500 same as
+# model ENW-3500 and ENW-3501-T, IC-CARD Ethernet, SYSCOM SC100 Ethernet Card
+# ELECOM Laneed LD-CDY, IC-CARD+ Ethernet card
+card "/^IC-CARD\+?$/" "/^IC-CARD\+?$/"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# I/O DATA PCLA/T
+card "I-O DATA" "PCLA"
+ config auto "ed" ? 0x10
+# ether 0x1c0 # 00:a0:b0
+ ether 0xff0 # 00:a0:b0
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# I-O DATA PCET/TX
+card "IO DATA" "PCETTX"
+ config auto "ed" ? 0x80000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# I-O DATA PCET/TX-R
+card "IO DATA" "PCETTXR"
+ config auto "ed" ? 0x80000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# I-O DATA PCLA/TE
+card "IO DATA" "PCLATE"
+ config auto "ed" ? 0x10
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# KANSAI ELECTRIC KLA-PCM/T
+card "KANSAI ELECTRIC CO.,LTD" "KLA-PCM/T"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Kingston KNE-PC2
+card "Kingston" "KNE-PC2"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Kingston KNE-PCM/x Ethernet
+card "Kingston Technology Corp." "/EtheRx PC Card Ethernet.*/"
+ config auto "ed" ?
+ ether 0xff0 # 00:c0:f0
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# ELECOM Laneed LD-10/100CD
+card "Laneed" "LD-10/100CD"
+ config auto "ed" ? 0x80000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# ELECOM Laneed LD-CDF, LD-CDS
+card "Laneed" "/LD-CD[FS]/"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# ELECOM Laneed LD-CDL/TX
+card "Laneed" "LD-CDL/TX"
+ config auto "ed" ? 0x80000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Linksys Combo PCMCIA EthernetCard (model EC2T on box)
+card "Linksys" "Combo PCMCIA EthernetCard (EC2T)"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Linksys Combo PCMCIA Ethernet Card
+card "LINKSYS" "E-CARD"
+ config auto "ed" ? 0x10
+ logstr "Linksys Combo Ethernet Card"
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Linksys PCMLM56
+# Not currently working for me, but others say it does.
+card "Linksys" "EtherFast 10&100 + 56K PC Card (PCMLM56)"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Linksys EtherFast 10/100 Intergrated PC Card (PCM100)
+card "Linksys" "EtherFast 10/100 Integrated PC Card (PCM100)"
+ config auto "ed" ? 0x80000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Linksys EtherFast 10/100 PC Card (PCMPC100), model V2 and V3
+card "Linksys" "/Ether[Ff]ast 10/100 PC Card \(PCMPC100.*\)/"
+ config auto "ed" ? 0x80000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Logitec LPM-LN100TX 100BASE-TX Ethernet LAN CARD
+card "Logitec" "LPM-LN100TX"
+ config auto "ed" ? 0x80000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Logitec LPM-LN20T
+card "Logitec" "LPM-LN20T"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Socket LP-E (WinCE Low Power Ethernet)
+card "Low Power Ethernet LAN Adapter" "Socket Communications, Inc"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# ELECOM Laneed LD-CDWA (DP83902A), MACNICA Ethernet ME1 for JEIDA
+card "MACNICA" "ME1-JEIDA"
+ config auto "ed" ?
+ ether 0xb8 # 08:00:42
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Matsushita Electric Industrial Co.,LTD. CF-VEL211P-B
+card "Matsushita Electric Industrial Co.,LTD." "CF-VEL211"
+ config auto "ed" ?
+ ether 0xff0 # 00:80:45
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# MELCO LPC2-T
+card "MELCO" "LPC2-T"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# MELCO LPC2-TX
+card "MELCO" "LPC2-TX"
+ config auto "ed" ? 0x80000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# MELCO LPC3-TX
+card "MELCO" "LPC3-TX"
+ config auto "ed" ? 0x30000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# National Semiconductor InfoMover 4100 and NE4100
+card "National Semiconductor" "/InfoMover (NE)?4100/"
+ config auto "ed" ?
+ ether 0xff0 # 08:00:17
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# NDC Ethernet Instant-Link NE2000 clone
+card "NDC" "Ethernet"
+ config auto "ed" ? 0x30
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Addtron NE-2000 compatible NIC
+card "NE2000 Compatible PC Card" "PCMCIA"
+ config auto "ed" ? 0x10
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# NEC PC-9801N-J12
+card "NEC" "PC-9801N-J12"
+ config auto "ed" ?
+ ether 0xff0 # 00:00:4c
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# BayNetworks NETGEAR FA410TXC Fast Ethernet
+card "NETGEAR" "FA410TX"
+ config auto "ed" ? 0x80000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# BayNetworks NETGEAR FA411 Fast Ethernet
+card "NETGEAR" "FA411"
+ config auto "ed" ? 0x30000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Network Everywhere Ethernet 10BaseT PC Card
+card "Network Everywhere" "Ethernet 10BaseT PC Card"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Network Everywhere Ethernet Fast Ethernet 10/100 PC Card
+card "Network Everywhere" "Fast Ethernet 10/100 PC Card"
+ config auto "ed" ? 0x80000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# New Media Corporation LiveWire 10/100
+card "New Media Corporation" "LiveWire 10/100"
+ config auto "ed" ? 0x80000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# NextCom Next Hawk Etherneet Adapter
+card "NextCom K.K." "Next Hawk"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Nihon Unisys, Ltd. JPF0400-ETH and JPF0400-LAN
+card "Nihon Unisys, Ltd." "/JPF0400-(ETH|LAN)/"
+ config auto "ed" ?
+ ether 0xff0 # 00:80:45
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Longshine LCS-8534TB
+card "PCMCIA" "/^Ethernet$/"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# No-brand NE-2000 compatible card
+card "PCMCIA" "ETHERNET V1.0"
+ config auto "ed" ? 0x10
+ ether 0xff0
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Telecom Device SuperSocket HPC100
+card "PCMCIA" "FastEthernet"
+ config auto "ed" ? 0x30000
+ logstr "Telecom Device SuperSocket HPC100"
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Billionton 10Base-TX ETHERNET PCCARD (aka UE2216)
+# Also Genuius "Ethernet ME3000II SE"
+card "PCMCIA" "PCMCIA-ETHERNET-CARD"
+ config auto "ed" ? 0x10
+ logstr "UE2216"
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Planet Smart COM 2000, Melco LPC-T
+card "PCMCIA" "UE2212"
+ config auto "ed" ? 0x10
+ ether 0xff0 # 00:00:e8
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# GVC 10Mbps Ethernet Card
+card "PCMCIA" "Ethernet Card"
+ config auto "ed" ?
+ logstr "Generic PCMCIA Ethernet Card"
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# EXPsys PCMCIA Ethernet Combo, Relia PCMCIA Ethernet
+card "PCMCIA LAN" "Ethernet"
+ config auto "ed" ?
+ logstr "EXPsys Ethernet"
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# LinkMates LM 336 LAN Fax/Modem PC Card (as Ethernet only)
+card "PCMCIAs" "ComboCard"
+ config 0x24 "ed" ? 0x10
+# config auto "sio" ?
+ logstr "LinkMates LM 336"
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Telecom Device SuperSocket LM336 (as Ethernet only)
+card "PCMCIAs" "LanModem"
+ config default "ed" ?
+# config auto "sio" ?
+ logstr "SuperSocket LM336"
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# PreMax PE-200 Ethernet Card
+card "/PMX */" "PE-200"
+ config auto "ed" ? 0x10
+ ether 0x7f0 # 00:20:e0
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Psion Dacom Gold Card V34 Ethernet GSM
+# as ethernet
+card "Psion Dacom" "Gold Card V34 Ethernet GSM"
+ config auto "ed" ?
+# config auto "sio" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# RIOS PC CARD3 ETHERNET
+card "RIOS Systems Co." "PC CARD3 ETHERNET"
+ config auto "ed" ?
+ ether 0xff0 # 00:00:48
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# RPTI EP401 Ethernet card
+card "RPTI" "EP401 Ethernet NE2000 Compatible"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# SCM Ethernet Combo (*Not SMC :-)*)
+card "SCM" "Ethernet Combo card"
+ config auto "ed" ? 0x10
+ ether 0xff0 # 00:20:cb
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Epson EEN10B Ethernet Card
+card "Seiko Epson Corp." "Ethernet"
+ config auto "ed" ? 0x10
+ ether 0xff0 # 00:00:48
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# SMC EXCard-10-PCMCIA
+card "SMC" "EZCard-10-PCMCIA"
+ config 0x20 "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# 3way 3WL-847-TX
+card "SUN WAY" "3WL-847-TX 100BASE-TX"
+ config auto "ed" ? 0x80000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Surecom EtherPerfect EP-427
+card "TAMARACK" "Ethernet"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# TDK LAK-CD031
+card "TDK" "/LAK-CD031.*/"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Telecom Device SuperSocket RE450T
+card "Telecom Device K.K." "SuperSocket RE450T"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Telecom Device SuperSocket RE550T
+card "Telecom Device K.K." "SuperSocket RE550T"
+ config auto "ed" ? 0x80000
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Toshiba Joho System PTJ-LAN/T
+card "TJ" "Ethernet"
+ config auto "ed" ? 0x10
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# XXX NOT SUPPORTED YET
+# TOSHIBA LABCTA00A (Add `option TOSH_ETHER' line to your kernel
+# configuration file and rebuilding kernel.)
+#card "TOSHIBA" "LANCT00A"
+# config default "ed" ? 0x10
+# cardmem 0xd0000 0x0000 32k
+## cardmem 0xd8000 0x0000 32k
+# insert /etc/pccard_ether $device start
+# remove /etc/pccard_ether $device stop
+
+# Xircom CompactCard Ethernet 10 (CFE-10)
+card "Xircom" "CompactCard Ethernet"
+ config auto "ed" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+########## ep ##########
+
+# 3Com Fast Etherlink 3C574TX
+card "3Com" "3C574-TX Fast EtherLink PC Card"
+ config auto "ep" ? 0x1
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# 3Com Megahertz 3CCFEM556BI, 3CXEM556 and model B
+# as ethernet
+card "3Com" "/Megahertz 3C(CF|X)EM556/"
+ config default "ep" ? 0x1
+# config auto "sio" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# 3Com Megahertz 574B same as 3Com Fast Etherlink 3C574B
+card "3Com" "Megahertz 574B"
+ config auto "ep" ? 0x1
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# 3Com Etherlink III 3CXE589EC and 3CXE589ET
+card "3Com" "Megahertz 589E"
+ config auto "ep" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# 3Com OfficeConnect 3CXSH572BT
+card "3Com" "OfficeConnect 572B"
+ config auto "ep" ? 0x1
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# 3Com Etherlink III 3C562 (as Network)
+# Don't think this will work.
+#card "3Com Corporation" "3C562"
+# config 0x9 "ep" ?
+# insert /etc/pccard_ether $device start -link0 link1
+# remove /etc/pccard_ether $device stop
+
+# 3Com Etherlink III 3C589, 3C589B, 3C589C, 3C589D
+card "3Com Corporation" "/3C589/"
+ config auto "ep" ?
+ insert /etc/pccard_ether $device start -link0 link1
+# insert /etc/pccard_ether $device start link0 -link1
+ remove /etc/pccard_ether $device stop
+
+# Farallon EtherMac
+card "Farallon" "ENet"
+ config auto "ep" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+########## ex ##########
+
+# Olicom OC2220
+card "Olicom" "Ethernet"
+ config 0x1 "ex" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+########## fe ##########
+
+# CONTEC C-NET(PC)C Ethernet
+card "CONTEC Co.,Ltd." "/C-NET\(PC\)C.*/"
+ config auto "fe" ?
+ ether 0x58 # 00:80:4c
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Fujitsu MBH10303 Ethernet PCMCIA
+card "EAGLE Technology" "/NE200 ETHERNET LAN MBH10303 */"
+ config auto "fe" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Eiger Labs EPX-10BT
+card "Eiger labs,Inc." "EPX-10BT PC Card Ethernet 10BT"
+ config auto "fe" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Fujitsu FMV-J182, FMV-J182A
+card "FUJITSU" "LAN Card(FMV-J182)"
+ config auto "fe" ?
+# These cards have same ID strings, and different MAC address
+# locations.
+# ether 0xf2c # 00:00:0e #FMV-J182
+ ether 0x1cc # 00:00:0e #FMV-J182A
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Fujitsu Towa LA501 Ethernet
+card "FUJITSU TOWA" "LA501"
+ config auto "fe" ? 0x10
+ ether 0x332 # 00:00:0e
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# HITACHI HT-4840-11
+card "HITACHI" "HT-4840-11"
+ config auto "fe" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# NextCom J Link NC5310
+card "NextComK.K." "/NC5310 Ver1\.0.*/"
+ config auto "fe" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# RATOC REX-5588, REX-9822, REX-4886
+card "PCMCIA LAN MBH10304 ES" " 01"
+ config auto "fe" ?
+# ether 0x32c # 00:c0:d0 # many minor revs....
+# ether 0x328 # 00:c0:d0
+ ether 0x200 # 00:c0:d0
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Fujitsu MBH10302
+card "PCMCIA MBH10302" "01"
+ config auto "fe" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# RATOC REX-R280
+card "RATOC System Inc." "10BASE_T CARD R280"
+ config auto "fe" ?
+ ether 0x1fc # 00:c0:d0
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# TDK LAK-CD021, LAK-CD021A, LAK-CD021BX
+card "TDK" "LAC-CD02x"
+ config auto "fe" ?
+# These cards have same ID strings, and different MAC address
+# locations.
+# ether 0x92 # 00:80:98 # LAC-CD021, LAC-021A
+# ether 0x96 # 00:80:98 # LAC-CD021BX
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+########## fdc ##########
+
+# Libretto Floppy disk
+card "Y-E DATA" "External FDD"
+ config 0x4 "fdc" ?
+
+########## gp ##########
+
+# XXX NOT SUPPORTED YET
+# National Instruments PCMCIA-GPIB Cards
+#card "National Instruments" "PCMCIA-GPIB"
+# config default "gp" pio
+
+########## hss ##########
+
+# XXX NOT SUPPORTED YET
+# Hitachi microcomputer speech synthesizer card
+#card "/HITACHI MICROCOMPUTER SYSTEM LTD.*/" "MSSHVPC02"
+# config default "hss" pio
+
+########## joy ##########
+
+# IO DATA PCJOY
+card "IO DATA" "PCJOY"
+ config auto "joy" ?
+# config 0x1 "joy" pio
+# config 0x2 "joy" pio
+
+# Game Card B236 by BONDWELL
+card "BONDWELL" "B236"
+ config auto "joy" ?
+
+########## ncv ##########
+
+# New Media Corporation BASICS SCSI
+# (Do not put this entry under Bustoaster)
+card "BASICS by New Media Corporation" "SCSI Sym53C500"
+ config auto "ncv" ?
+
+# Media Intelligent SCSI-2 PC Card MSC-200
+card "EPSON" "SCSI-2 PC Card SC200"
+ config auto "ncv" ?
+
+# KME (TAXAN ICD-400PN, etc.)
+card "KME" "KXLC002"
+ config auto "ncv" ? 0xb4d00000
+
+# KME KXLC004
+card "KME" "KXLC004"
+ config auto "ncv" ? 0xb4d00100
+
+# IO DATA PCSC-DV
+# Macnica Miracle SCSI mPS100
+card "MACNICA" "MIRACLE SCSI" "mPS100" "D.0"
+ config auto "ncv" ? 0xb6250000
+
+# Macnica Miracle SCSI-II mPS110
+card "MACNICA" "MIRACLE SCSI-II mPS110"
+ config auto "ncv" ? 0
+
+# NEC PC-9801N-J03R
+card "NEC" "PC-9801N-J03R"
+ config auto "ncv" ? 0
+
+# Qlogic Fast SCSI
+card "QLOGIC CORPORATION" "pc05"
+ config auto "ncv" ? 0x84d00000
+
+# RATOC REX-9530
+card "RATOC System Inc." "/SCSI2 CARD.*/"
+ config auto "ncv" ? 0x84d00000
+
+# RATOC REX-5572 (as SCSI only)
+card "RATOC System Inc." "/SOUND/SCSI2 CARD.*/"
+ config auto "ncv" ? 0x84d00000
+# cardio 0x640 0x10
+ iosize 16
+
+########## nsp ##########
+
+# WORKBIT Ninja SCSI series
+card "IO DATA" "/CBSC16 */"
+ config auto "nsp" ?
+
+# Hewlett Packard M820e (CD-writer)
+card "/KME */" "SCSI-CARD-001"
+ config auto "nsp" ?
+
+# WORKBIT Ninja SCSI series
+card "WBT" "NinjaSCSI-3"
+ config auto "nsp" ?
+
+# WORKBIT Ninja SCSI series (PIO mode)
+# (If you want to use them in PIO mode comment out above and uncommnet below.)
+#card "WBT" "NinjaSCSI-3"
+# config auto "nsp" ? 0x100
+
+########## opl ##########
+
+# XXX NOT SUPPORTED YET
+# RATOC REX-5570 Sound Card
+#card "1195 RATOC System Inc." "REX5570 SOUND CARD"
+# config default "opl" ?
+
+########## ray ##########
+
+# WebGEAR Aviator 2.4
+card "WebGear" "PC Card WLAN Adapter"
+ config auto "ray" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Raytheon Raylink 802.11 Wireless LAN
+card "RAYTHEON" "RayLink PC Card WLAN Adapter"
+ config auto "ray" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+########## scc ##########
+
+# XXX NOT SUPPORTED YET
+# IBM Smart Capture Card
+#card "IBM Corp." "Video Capture"
+# config default "scc" pio
+# cardmem 0xd4000 0x0 0x8000
+
+########## sio ##########
+
+# 3Com/USR/MegaHertz 3CCM156
+card "3COM" "3CCM156"
+ config auto "sio" ?
+
+# 3com/USR/Megahertz 3CCM556
+card "3Com" "3CXM/3CCM556"
+ config auto "sio" ?
+
+# 3Com Etherlink III 3C562 and 3C563 (as Modem)
+card "3Com Corporation" "/3C56[23]/"
+ config 0x09 "sio" ?
+# config auto "sio" ?
+
+# ADVANTECH COMpad-32/85 (dual port, but only one works)
+card "ADVANTECH" "COMpad-32/85"
+ config auto "sio" ? 0x330
+
+# Apex Data 28.8 PC Card "MOBILE PLUS Cellular" modem.
+card "AD PC_CARD" "RC288ACL"
+ config auto "sio" ?
+
+# AIWA PV-JF288
+card "AIWA CO.,LTD." "/PV-JF288 */"
+ config auto "sio" ?
+
+# AIWA PV-JF3356
+card "AIWA CO.,LTD. MODEM" "PV-JF3356"
+ config auto "sio" ? 0x40000
+
+# APEX DATA MultiCard (as Modem only)
+card "APEX DATA" "MULTICARD"
+ config 0xb "sio" ?
+# config auto "sio" ?
+
+# Eiger 33.6 modem
+card "AT&T" "V34+ Fax Modem"
+ config auto "sio" ?
+
+# AT&T Paradyne KeepInTouch 14.4 modem
+card "AT&T Paradyne" "KeepInTouch Card"
+ config auto "sio" ?
+ reset 1000
+
+# BUG Linkboy D64K (ISDN)
+card "BUG Inc." "Linkboy D64K"
+ config auto "sio" ?
+
+# NewMedia 14.4K FAX/Data Modem
+card "CIRRUS LOGIC" "FAX MODEM"
+ config auto "sio" ?
+
+# COM1 SA
+card "COM1 SA" "/MC2(18|20) CARD/"
+ config auto "sio" ?
+
+# Digiteam Expresso 14.4 Modem
+card "Digiteam GmbH" "Expresso Modem"
+ config auto "sio" ?
+
+# Eicon DIVA T/A
+# at@menu Config menu
+# at>vc View current profile
+# at>vd View troubleshooting information
+card "Eicon Technology" "DIVA T/A"
+ config auto "sio" ?
+
+# Ericsson DC23 GSM modem card
+card "ERICSSON" "Modem, DC23"
+ config auto "sio" ?
+
+# GATEWAY 2000 FAX/Data Modem (14.4K)
+card "GATEWAY2000" "CC3144"
+ config auto "sio" ?
+
+# This one does work though
+card "HAYES" "OPT288"
+ config auto "sio" ?
+
+# Hayes OPTIMA 288 FAX/Data Modem
+# currently does not work on my machine
+card "Hayes" "OPTIMA 288 + FAX fo"
+ config auto "sio" ?
+ reset 10000
+
+# IBM Push/Pop Modem (14.4K)
+card "IBM" "Push/Pop Modem(14.4K)"
+ config auto "sio" ?
+
+# IBM 56k PCCCARD modem
+card "IBM" "56K PC Card Modem"
+ config auto "sio" ?
+
+# Intel EtherExpress(TM) PRO/100 LAN/Modem PC Card Adapter (as modem)
+card "Intel" "EtherExpress(TM) PRO/100 LAN/Modem PC Card Adapter"
+ config 0x1f "sio" ?
+# config auto "sio" ?
+
+# US Robotics Worldport 14400
+card "Intel" "MODEM 2400+"
+ config auto "sio" ?
+
+# Intelligent SurfCard
+card "Intelligent" "PCMCIA FAX+MODEM"
+ config auto "sio" ?
+ reset 1000
+
+# Megahertz XJEM3288 (as modem)
+card "MEGAHERTZ" "CC/XJEM3288"
+ config auto "sio" ?
+
+# Megahertz XJEM1336 (as modem)
+card "MEGAHERTZ" "CC/XJEM3336"
+ config auto "sio" ?
+
+# Megahertz XJ1144, XJ2144 (US and JP), XJ2288, XJ3288
+card "MEGAHERTZ" "/XJ[0-9]+/"
+ config auto "sio" ?
+
+# Megahertz XJ-CC4288
+card "Megahertz" "XJ-CC4288"
+ config auto "sio" ?
+
+# Megahertz XJ4336
+card "Megahertz" "XJ4336-CC4336"
+ config auto "sio" ?
+
+# XXX generic serial?
+# Megahertz X-Jack Ethernet/Modem 14.4K (as Modem only)
+card "Megahertz" "XJEM1144/CCEM1144"
+ config 0x27 "sio" ?
+# config auto "sio" ?
+
+# Motorola Montana
+card "Motorola" "MONTANA 33.6 FAX/MODEM"
+ config auto "sio" ?
+
+# XXX generic serial?
+# Motorola Marine multifunction card (as modem)
+card "Motorola, Inc." "MARINER MODEM/FAX/LAN"
+ config 0x35 "sio" ?
+# config auto "sio" ?
+
+# NTT ThunderCard Modem
+card "NTT-IT CO., LTD" "ThunderCard AVF288, V.34"
+ config auto "sio" ?
+
+# NTT DoCoMo Mobile D Card 96P1
+card "NTT DoCoMo" "Mobile D Card 96P1"
+ config auto "sio" ? 0x82
+
+# NTT DoCoMo (formerly NTT Personal) Paldio 611S
+card "NTT DoCoMo" "PALDIO 611S PC CARD"
+ config auto "sio" ? 0x40000
+
+# NTT DoCoMo DATA/FAX Adapter
+card "NTT DoCoMo" "PCMCIA DATA/FAX ADAPTER 9600 Mark2"
+ config auto "sio" ?
+
+# NTT DoCoMo DATA/FAX Adapter
+card "NTT DoCoMo" "/PCMCIA DATA/FAX.*/"
+ config auto "sio" ? 0x82
+
+# NTT-IT ThunderCard
+card "NTT Intelligent Technology Co., Ltd." "ThunderCard DD128"
+ config auto "sio" ? 0x80
+ reset 1000
+
+# NTT DoCoMo (formerly NTT Personal) FAX/Data 32K PHS Card Paldio 321S
+card "NTT Personal" "32K Paldio 321S PC CARD"
+ config auto "sio" ?
+# config auto "sio" ? 0x40000
+
+# NTT DoCoMo (formerly NTT Personal) FAX/Data 32K PHS Card Paldio 341S
+card "NTT Personal" "32K Paldio 341S PC CARD"
+ config auto "sio" ?
+
+# NTT Personal Paldio Data Card DC-1S
+card "NTT Personal" "/Paldio Data.*/" "DC-1S"
+ config auto "sio" ? 0x40000
+
+# Nokia Cellular Data Card DTP-2 and DTP-2 ver II
+# This Nokia example allows either 1 or 2 Nokia cards to be fitted.
+# With 2 Mobile Phones and Multilink PPP you can get a 19200 data channel.
+# Nokia Cellular Data Card
+card "Nokia Mobile Phones" "/DTP-2( ver II)?/"
+# config 0x23 "sio" ?
+# config 0x24 "sio" ?
+ config auto "sio" ?
+
+# Novalink NovaModem 144
+card "NovaLink Tech." "/NovaModem 144 */"
+ config auto "sio" ?
+
+# Novatel Merlin CDPD card (wireless modem)
+card "Novatel Wireless" "Merlin Type II Wireless IP Modem"
+ config auto "sio" ?
+
+# Omron ME2814 FAX/DATA MODEM
+card "OMRON" "ME2814 FAX/DATA MOD"
+ config auto "sio" ?
+
+# Omron MD24XCA FAX/Data Modem
+card "OMRON Corp." "MD24XCA"
+ config auto "sio" ?
+# config auto "sio" pio
+ reset 10000
+
+# Option International PCMCIA55K06
+card "Option International" "GSM Data/Fax/SMS Modem"
+ config auto "sio" ?
+
+# Banksia CardModem 56
+card "PCCardModem" "CardModem 56"
+ config auto "sio" ?
+
+# Eiger PCCARD modem
+# Apparently this modem does not work unless the recommended
+# init string (AT&F&C1&D2) is supplied.
+card "/PCMCIA */" "/33\.6K Fax/Modem */"
+ config auto "sio" ?
+
+# Actiontec Datalink with v.90 upgrade
+card "/PCMCIA */" "/56K V\.90 Fax Modem (LK) */"
+ config auto "sio" ?
+
+# Billionton 56Kbps Fax Modem
+card "PCMCIA CARD 56KFaxModem" "FM56C-NFS"
+ config auto "sio" ?
+
+# PREMAX FM288 FAX/Data Modem
+card "PREMAX" "/FM288 */"
+ config auto "sio" ?
+
+# Panasonic FM-RADIO card
+card "Panasonic" "CF-JVR101"
+ config auto "sio" ?
+# config auto "sio" pio
+
+# Panasonic KX-PH402D
+card "Panasonic" "KX-PH402D"
+ config auto "sio" ?
+
+# Panasonic Modem Card TO-706C
+card "Panasonic" "TO-706C"
+ config auto "sio" ?
+
+# Panasonic Modem Card TO-706C
+card "Panasonic" "TO-CAF288"
+ config auto "sio" ?
+
+# Panasonic TO-CAF56K FAX/Data Modem
+card "Panasonic Co." "TO-CAF56K"
+# config auto "sio" pio
+ config auto "sio" ?
+ reset 10000
+
+# Random modem bundled with Dell systems
+card "Psion Dacom" "Gold Card Global 56K+Fax"
+ config auto "sio" ?
+
+# RFI HotLine serial card
+card "RFI" "RS-232 ComCard Rev.II"
+ config auto "sio" ?
+
+# SII MC-6530, MC-6550 and MC-P200
+card "SII" "/PHS (DATA|LINK) (32S|64)/"
+ config auto "sio" ? 0x40000
+
+# TDK 14.4 FAX/Data Modem
+card "TDK" "/DF1414(EX)? DATA/FAX MODEM/"
+ config auto "sio" ?
+
+# TDK DN1280R
+card "TDK" "DN1280R"
+ config auto "sio" ?
+ reset 1000
+
+# TDK DP9600
+card "TDK" "DP9600"
+ config auto "sio" ? 0x40000
+
+# TDK Multifunctioon Card (as Modem)
+card "TDK" "GlobalNetworker 3410/3412"
+ config auto "sio" ? 0x40000
+
+# Toshiba Modem/LAN card IPC5001B (as Modem)
+card "TOSHIBA" "Modem/LAN Card"
+ config 0x25 "sio" ?
+# config auto "sio" ?
+
+# 3Com/USR/Toshiba SLIMV90
+card "TOSHIBA" "SLIMV90"
+ config auto "sio" ?
+
+# 3Com/NoteWorthy 56K modem (bundled with Toshiba notebooks)
+card "Toshiba America" "3CXM056-BNW"
+ config auto "sio" ?
+
+# U.S. Robotics XJ1560 and XJ1560J, Megahertz XJ1336
+card "U.S. Robotics" "/XJ/CC1(336|560)J?/"
+ config auto "sio" ?
+
+# US Robotics Sportster PCMCIA V.34
+# US Robotics COURIER PCMCIA V.34
+card "USRobotics" "PCMCIA 28800 Data/F"
+ config auto "sio" ?
+
+# Viking V.90/K56Flex modem
+card "Viking" "V.90 K56flex"
+ config auto "sio" ?
+
+# Xircom CreditCard Ethernet 10/100 + modem (modem part)
+card "Xircom" "CreditCard Ethernet+Modem 33.6"
+ config 0x23 "sio" ?
+# config auto "sio" ?
+
+# Xircom GlobalACCESS modem
+card "Xircom" "CreditCard Modem 56 - GlobalACCESS"
+ config auto "sio" ?
+
+# Xircom CreditCard Modem
+card "Xircom" "CreditCard Modem CM-56T"
+ config auto "sio" ?
+ reset 100
+
+# Zonet 56Kbps FAX/Modem PC Card
+card "PC CARD" "56Kbps Fax Modem PC Card"
+ config auto "sio" ?
+
+# Zoom 56K modem
+# Freezes your system entirely if you don't have the reset..
+card "Zoom Telephonics, Inc." "PCMCIA 56K LT DataFax"
+ config auto "sio" ?
+ reset 1000
+
+########## sn ##########
+
+# Megahertz X-Jack Ethernet
+card "Megahertz" "CC10BT/2"
+ config auto "sn" ?
+ ether attr2
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Megahertz Ethernet Adapter
+card "Megahertz" "ETHERNET ADAPTOR"
+ config auto "sn" ?
+ ether attr2
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# MELCO LPC-TX
+card "MELCO/SMC" "LPC-TX"
+ config auto "sn" ?
+ ether 0x4a # 00:a0:dc
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# SMC EtherEZ Combo(SMC8020BT)
+card "SMC" "EtherEZ Ethernet 8020"
+ config auto "sn" ?
+# ether 0x9a # 00:00:c0
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Victor M-MOIL CARD
+card "JVC" "MiniMoil Ethernet Card"
+ config auto "sn" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+########## spc ##########
+
+# XXX NOT SUPPORTED YET
+# REX5535AC, REX5535X SCSI
+#card "PCMCIA SCSI MBH10401" "01"
+# config 0x3a "spc" ?
+
+########## stg ##########
+
+# RATOC REX-5536, Melco IFC-SC
+card "1195 RATOC System Inc." "REX5536 SCSI2 CARD"
+ config auto "stg" ? 0
+
+# Future Domain SCSI2GO
+card "Future Domain Corporation" "SCSI PCMCIA Credit Card Controller"
+ config auto "stg" ?
+
+# IBM SCSI PCMCIA Card
+card "IBM Corp." "SCSI PCMCIA Card"
+ config auto "stg" ?
+
+# RATOC REX-5536AM, REX-9836A, ICM PSC-2401 SCSI
+# There's a buggy revision of this card which has broken CIS tupples.
+# If you can't use this card, change config entry from `auto' to
+# `default' and try the point enabler. (for example,
+# type "pccardc enabler 0 stg0 -a 0x4140 -i 5" from root command prompt)
+card "PCMCIA SCSI MBH10404" "01"
+# config default "stg" ?
+ config auto "stg" ?
+ logstr "RATOC REX-5536AM SCSI"
+
+# RATOC REX-5536M
+card "PCMCIA SCSI2 CARD" "01"
+ config auto "stg" ? 0
+ logstr "RATOC REX-5536M SCSI"
+
+########## wlp ##########
+
+# XXX NOT SUPPORTED YET
+# AT&T GIS Wavelan PCMCIA
+# If you want to use Japanese version, uncomment the second config
+# line and comment-out the first line.
+#card "AT&T" "WaveLAN/PCMCIA"
+# config default "wlp" ? # US version (915MHz)
+## config default "wlp" ? 0x01 # Japanese version (2.4GHz)
+## ether wavelan
+# insert /etc/pccard_ether $device start
+# remove /etc/pccard_ether $device stop
+
+# XXX NOT SUPPORTED YET
+# Digital RoamAbout
+#card "Digital" "RoamAbout/DS"
+# config auto "wlp" ?
+## ether wavelan
+# insert /usr/sbin/wlpconfig -i wlp0 -w 0xaaaa
+# insert /etc/pccard_ether $device start
+# remove /etc/pccard_ether $device stop
+
+# XXX NOT SUPPORTED YET
+# Lucent Wavelan
+#card "Lucent Technologies" "WaveLAN/PCMCIA"
+# config default "wlp" ?
+# ether wavelan
+# insert /etc/pccard_ether $device start
+# remove /etc/pccard_ether $device stop
+
+# XXX NOT SUPPORTED YET
+# NCR Wavelan PCMCIA
+# If you want to use Japanese version, uncomment the second config
+# line and comment-out the first line.
+#card "NCR" "WaveLAN/PCMCIA"
+# config default "wlp" ? # US version (915MHz)
+## config default "wlp" ? 0x01 # Japanese version (2.4GHz)
+# ether wavelan
+# insert /etc/pccard_ether $device start
+# remove /etc/pccard_ether $device stop
+
+
+########## wi ##########
+
+# 3com 3crwe737A AirConnect Wireless LAN PC Card
+card "3Com" "3CRWE737A AirConnect Wireless LAN PC Card"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Accton airDirect WN3301
+card "Accton" "IEEE802.11 PC Card Adapter"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Addtron AWP-100
+card "Addtron" "AWP-100 Wireless PCMCIA"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# ADLINK340APC
+card "ADTEC" "ADLINK/340C"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Home Wireless Networks
+card "AirWay" "802.11 Adapter (PCMCIA)"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Avaya Wireless PC Card
+card "Avaya Communication" "Avaya Wireless PC Card"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# BreezeNET
+card "BreezeNET" "PC-DS.11"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Buffalo WLI-CF-S11G
+card "BUFFALO" "WLI-CF-S11G"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Melco Airconnect 3.3V version
+card "BUFFALO" "WLI-PCM-S11"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Melco Airconnect (128bit WEP)
+card "BUFFALO" "WLI-PCM-L11G"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Cabletron RoamAbout, WaveLAN/IEEE clone
+card "Cabletron" "RoamAbout 802.11 DS"
+ config 0x1 "wi" ?
+# config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Compaq WL100
+card "Compaq" "WL100_11Mbps_Wireless_PC_Card"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Compaq WL110
+card "Compaq" "Compaq WL110 PC Card"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Compaq WL200
+card "Compaq" "Compaq WL200_11Mbps_Wireless_PCI_Card"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Corega KK Wireless LAN PCC-11
+card "corega K.K." "Wireless LAN PCC-11"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Corega KK Wireless LAN PCCA-11
+card "corega K.K." "Wireless LAN PCCA-11"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Corega KK Wireless LAN PCCB-11
+card "corega_K.K." "Wireless_LAN_PCCB-11"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# D Link DWL-650 11Mbps WLAN Card
+card "D" "Link DWL-650 11Mbps WLAN Card"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Dell TrueMobile (OEMed Lucent WaveLAN/IEEE)
+card "Dell" "TrueMobile 1150 Series PC Card"
+ config 0x1 "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# ELECOM Air@Hawk/LD-WL11/PCC (0.7.5)
+card "ELECOM" "Air@Hark/LD-WL11/PCC"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# ELECOM Air@Hawk/LD-WL11/PCC (0.7.6 and later)
+card "ELECOM" "Air@Hawk/LD-WL11/PCC"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# ELSA Air Lancer
+card "ELSA" "AirLancer MC-11"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# PLANEX GeoWave/GW-NS11S
+card "Geowave" "GW-NS11S"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Linksys Instant Wireless WPC11
+card "/Instant Wireless */" " Network PC CARD"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Intel PRO/Wireless 2011 LAN PC Card
+card "Intel" "PRO/Wireless 2011 LAN PC Card"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# ICOM SL-1100
+card "ICOM" "SL-1100"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Farallon Skyline 11Mbps Wireless
+card "INTERSIL" "HFA384x/IEEE"
+ config 0x1 "wi" ?
+# config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# IO Data WN-B11/PCM
+card "IO DATA" "WNB11PCM"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# IBM's rebadged Lucent WaveLAN/IEEE. The FCC IDs are identical to
+# those for the Lucent card, so presumably everything else is as well.
+card "IBM Corporation" "IBM High Rate Wireless LAN PC Card"
+ config 0x1 "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Lucent WaveLAN/IEEE
+card "Lucent Technologies" "WaveLAN/IEEE"
+ config 0x1 "wi" ?
+# config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Melco Airconnect
+card "MELCO" "WLI-PCM-L11"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# nanospeed card of some flavor.
+card "NANOSPEED" "HFA384x/IEEE"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# NCR WaveLAN/IEEE
+card "NCR" "WaveLAN/IEEE"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# NEC Wireless Card CMZ-RT-WP
+card "NEC" "Wireless Card CMZ-RT-WP"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# NEC WL11C (PC-WL/11C)
+card "NEC Aterm" "WL11C (PC-WL/11C)"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# NEC Corporation PK-WL001
+card "NEC Corporation" "Wireless PC Card"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Netgear MA401
+card "NETGEAR MA401 Wireless PC" "Card"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# PLANEX GeoWave/GW-NS110
+card "PLANEX" "GeoWave/GW-NS110"
+ config 0x1 "wi" ?
+# config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# PLANEX GW-NS11H
+card "PLANEX" "GW-NS11H Wireless LAN PC Card"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Proxim Harmony
+card "PROXIM" "Harmony 802.11b/LAN PC CARD"
+ config 0x1 "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Proxim RangeLAN-DS (OEM of Zcommax - Prism2 card)
+card "PROXIM" "RangeLAN-DS/LAN PC CARD"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# SMC's SMC2632W (also matches the 3.3V SMC2602W)
+card "SMC" "SMC2632W"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Sony PCWA-C100 WaveLAN
+card "Sony Corporation" "PCWA-C100"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# TDK LAK-CD011WL
+card "TDK" "LAK-CD011WL for Wireless LAN"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Linksys Instant Wireless WPC11 v2.5
+card "The Linksys Group, Inc." "Instant Wireless Network PC Card"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Taiwanese Blue Concentric Circle CF Wireless LAN Model WL-379F
+# This is a card sold in Taiwan.
+card "Wireless LAN" "11Mbps PC Card"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Toshibas wireless lan card
+card "TOSHIBA" "Wireless LAN Card"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# U.S. Robotics Wireless Card 2410
+card "U.S. Robotics" "IEEE 802.11b PC-CARD"
+ config auto "wi" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+########## xe ##########
+
+# Accton EN2226/Fast EtherCard (16-bit verison)
+card "Accton" "Fast EtherCard-16"
+ config auto "xe" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Compaq Netelligent 10/100 PC Card
+card "Compaq" "Netelligent 10/100 PC Card"
+ config auto "xe" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Intel EtherExpress PRO/100 Mobile Adapter (16-bit verison)
+card "Intel" "EtherExpress(TM) PRO/100 PC Card Mobile Adapter16"
+ config auto "xe" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# XXX NOT SURE SUPPORTED
+# Toshiba 10/100 Ethernet PC Card IPC5008A
+#card "Toshiba" "10/100 Ethernet PC Card"
+# config auto "xe" ?
+## cardio 0x300 0x10
+# iosize 16
+# insert /etc/pccard_ether $device start
+# remove /etc/pccard_ether $device stop
+
+# Xircom 10/100 Network PC Card
+card "Xircom" "10/100 Network PC Card"
+ config auto "xe" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Xircom Realport card + modem
+card "Xircom" "16-bit Ethernet + Modem 56"
+ config 0x27 "xe" ?
+# config auto "sio" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Xircom CreditCard Ethernet CE3-10/100
+card "Xircom" "CreditCard 10/100"
+ config auto "xe" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Xircom CreditCard Ethernet Adaptor IIps (PS-CE2-10)
+card "Xircom" "CreditCard 10Base-T"
+ config auto "xe" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Xircom CreditCard Ethernet 10/100 + modem (Ethernet part) (CEM56)
+card "Xircom" "CreditCard Ethernet 10/100 + Modem 56"
+ config 0x27 "xe" ?
+# config auto "sio" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# Xircom RE-10
+card "Xircom" "Ethernet Adapter"
+ config auto "xe" ?
+ insert /etc/pccard_ether $device start
+ remove /etc/pccard_ether $device stop
+
+# -------------------------------------------------------------------
+#
+# "Wildcard" entries
+#
+# -------------------------------------------------------------------
+
+# GENERIC PCMCIA modem
+generic serial
+ config auto "sio" ?
+# reset 100 # default
+# reset 1000 # safety reset time
+ reset 10000 # for unstable cards
+ logstr "GENERIC PCMCIA modem"
+
+# GENERIC Flash ATA / ATA HDD
+generic fixed_disk
+ config auto "ata" ?
+ logstr "GENERIC Flash ATA / ATA HDD"
diff --git a/etc/defaults/periodic.conf b/etc/defaults/periodic.conf
new file mode 100644
index 0000000..7fc4728
--- /dev/null
+++ b/etc/defaults/periodic.conf
@@ -0,0 +1,247 @@
+#!/bin/sh
+#
+# This is defaults/periodic.conf - a file full of useful variables that
+# you can set to change the default behaviour of periodic jobs on your
+# system. You should not edit this file! Put any overrides into one of the
+# $periodic_conf_files instead and you will be able to update these defaults
+# later without spamming your local configuration information.
+#
+# The $periodic_conf_files files should only contain values which override
+# values set in this file. This eases the upgrade path when defaults
+# are changed and new features are added.
+#
+# $FreeBSD$
+#
+
+# What files override these defaults ?
+periodic_conf_files="/etc/periodic.conf /etc/periodic.conf.local"
+
+# periodic script dirs
+local_periodic="/usr/local/etc/periodic /usr/X11R6/etc/periodic"
+
+
+# Daily options
+
+# These options are used by periodic(8) itself to determine what to do
+# with the output of the sub-programs that are run, and where to send
+# that output. $daily_output might be set to /var/log/daily.log if you
+# wish to log the daily output and have the files rotated by newsyslog(8)
+#
+daily_output="root" # user or /file
+daily_show_success="YES" # scripts returning 0
+daily_show_info="YES" # scripts returning 1
+daily_show_badconfig="NO" # scripts returning 2
+
+# 100.clean-disks
+daily_clean_disks_enable="NO" # Delete files daily
+daily_clean_disks_files="[#,]* .#* a.out *.core *.CKP .emacs_[0-9]*"
+daily_clean_disks_days=3 # If older than this
+daily_clean_disks_verbose="YES" # Mention files deleted
+
+# 110.clean-tmps
+daily_clean_tmps_enable="NO" # Delete stuff daily
+daily_clean_tmps_dirs="/tmp" # Delete under here
+daily_clean_tmps_days="3" # If not accessed for
+daily_clean_tmps_ignore=".X*-lock quota.user quota.group" # Don't delete these
+daily_clean_tmps_verbose="YES" # Mention files deleted
+
+# 120.clean-preserve
+daily_clean_preserve_enable="YES" # Delete files daily
+daily_clean_preserve_days=7 # If not modified for
+daily_clean_preserve_verbose="YES" # Mention files deleted
+
+# 130.clean-msgs
+daily_clean_msgs_enable="YES" # Delete msgs daily
+daily_clean_msgs_days= # If not modified for
+
+# 140.clean-rwho
+daily_clean_rwho_enable="YES" # Delete rwho daily
+daily_clean_rwho_days=7 # If not modified for
+daily_clean_rwho_verbose="YES" # Mention files deleted
+
+# 150.clean-hoststat
+daily_clean_hoststat_enable="YES" # Delete .hoststat daily
+daily_clean_hoststat_days=3 # If not modified for
+daily_clean_hoststat_verbose="YES" # Mention files deleted
+
+# 200.backup-passwd
+daily_backup_passwd_enable="YES" # Backup passwd & group
+
+# 210.backup-aliases
+daily_backup_aliases_enable="YES" # Backup mail aliases
+
+# 220.backup-distfile
+daily_backup_distfile_enable="YES" # Backup /etc/Distfile
+
+# 300.calendar
+daily_calendar_enable="NO" # Run calendar -a
+
+# 310.accounting
+daily_accounting_enable="YES" # Rotate acct files
+daily_accounting_compress="NO" # Gzip rotated files
+daily_accounting_flags=-q # Flags to /usr/sbin/sa
+daily_accounting_save=3 # How many files to save
+
+# 320.distfile
+daily_distfile_enable="YES" # Run rdist daily
+
+# 330.news
+daily_news_expire_enable="YES" # Run news.expire
+
+# 400.status-disks
+daily_status_disks_enable="YES" # Check disk status
+daily_status_disks_df_flags="-k -t nonfs" # df(1) flags for check
+
+# 420.status-network
+daily_status_network_enable="YES" # Check network status
+daily_status_network_usedns="YES" # DNS lookups are ok
+
+# 430.status-rwho
+daily_status_rwho_enable="YES" # Check system status
+
+# 440.status-mailq
+daily_status_mailq_enable="YES" # Check mail status
+daily_status_mailq_shorten="NO" # Shorten output
+daily_status_include_submit_mailq="YES" # Also submit queue
+
+# 450.status-security
+daily_status_security_enable="YES" # Security check
+# See "Security options" below for more options
+
+# 460.status-mail-rejects
+daily_status_mail_rejects_enable="YES" # Check mail rejects
+daily_status_mail_rejects_logs=3 # How many logs to check
+
+# 470.status-named
+daily_status_named_enable="YES"
+daily_status_named_usedns="YES" # DNS lookups are ok
+
+# 500.queuerun
+daily_queuerun_enable="YES" # Run mail queue
+daily_submit_queuerun="YES" # Also submit queue
+
+# 999.local
+daily_local="/etc/daily.local" # Local scripts
+
+
+# Security options
+
+# These options are used by the security periodic(8) scripts spawned in
+# 450.status-security above.
+daily_status_security_inline="NO" # Run inline ?
+daily_status_security_output="root" # user or /file
+daily_status_security_noamd="NO" # Don't check amd mounts
+daily_status_security_logdir="/var/log" # Directory for logs
+
+# 100.chksetuid
+daily_status_security_chksetuid_enable="YES"
+
+# 200.chkmounts
+daily_status_security_chkmounts_enable="YES"
+#daily_status_security_chkmounts_ignore="^amd:" # Don't check matching
+ # FS types
+
+# 300.chkuid0
+daily_status_security_chkuid0_enable="YES"
+
+# 400.passwdless
+daily_status_security_passwdless_enable="YES"
+
+# 500.ipfwdenied
+daily_status_security_ipfwdenied_enable="YES"
+
+# 550.ipfwlimit
+daily_status_security_ipfwlimit_enable="YES"
+
+# 600.ip6fwdenied
+daily_status_security_ip6fwdenied_enable="YES"
+
+# 650.ip6fwlimit
+daily_status_security_ip6fwlimit_enable="YES"
+
+# 700.kernelmsg
+daily_status_security_kernelmsg_enable="YES"
+
+# 800.loginfail
+daily_status_security_loginfail_enable="YES"
+
+# 900.tcpwrap
+daily_status_security_tcpwrap_enable="YES"
+
+
+# Weekly options
+
+# These options are used by periodic(8) itself to determine what to do
+# with the output of the sub-programs that are run, and where to send
+# that output. $weekly_output might be set to /var/log/weekly.log if you
+# wish to log the weekly output and have the files rotated by newsyslog(8)
+#
+weekly_output="root" # user or /file
+weekly_show_success="YES" # scripts returning 0
+weekly_show_info="YES" # scripts returning 1
+weekly_show_badconfig="NO" # scripts returning 2
+
+# 120.clean-kvmdb
+weekly_clean_kvmdb_enable="YES" # Clean kvmdb weekly
+weekly_clean_kvmdb_days=7 # If not accessed for
+weekly_clean_kvmdb_verbose="YES" # Mention files deleted
+
+# 310.locate
+weekly_locate_enable="YES" # Update locate weekly
+
+# 320.whatis
+weekly_whatis_enable="YES" # Update whatis weekly
+
+# 330.catman
+weekly_catman_enable="NO" # Preformat man pages
+
+# 340.noid
+weekly_noid_enable="NO" # Find unowned files
+weekly_noid_dirs="/" # Look here
+
+# 400.status-pkg
+weekly_status_pkg_enable="NO" # Find out-of-date pkgs
+
+# 999.local
+weekly_local="/etc/weekly.local" # Local scripts
+
+
+# Monthly options
+
+# These options are used by periodic(8) itself to determine what to do
+# with the output of the sub-programs that are run, and where to send
+# that output. $monthly_output might be set to /var/log/monthly.log if you
+# wish to log the monthly output and have the files rotated by newsyslog(8)
+#
+monthly_output="root" # user or /file
+monthly_show_success="YES" # scripts returning 0
+monthly_show_info="YES" # scripts returning 1
+monthly_show_badconfig="NO" # scripts returning 2
+
+# 200.accounting
+monthly_accounting_enable="YES" # Login accounting
+
+# 999.local
+monthly_local="/etc/monthly.local" # Local scripts
+
+
+# Define source_periodic_confs, the mechanism used by /etc/periodic/*/*
+# scripts to source defaults/periodic.conf overrides safely.
+
+if [ -z "${source_periodic_confs_defined}" ]; then
+ source_periodic_confs_defined=yes
+ source_periodic_confs () {
+ local i sourced_files
+
+ for i in ${periodic_conf_files}; do
+ case ${sourced_files} in
+ *:$i:*)
+ ;;
+ *)
+ sourced_files="${sourced_files}:$i:"
+ [ -r $i ] && . $i
+ ;;
+ esac
+ done
+ }
+fi
diff --git a/etc/defaults/rc.conf b/etc/defaults/rc.conf
new file mode 100644
index 0000000..24b7256
--- /dev/null
+++ b/etc/defaults/rc.conf
@@ -0,0 +1,445 @@
+#!/bin/sh
+#
+
+# This is rc.conf - a file full of useful variables that you can set
+# to change the default startup behavior of your system. You should
+# not edit this file! Put any overrides into one of the ${rc_conf_files}
+# instead and you will be able to update these defaults later without
+# spamming your local configuration information.
+#
+# The ${rc_conf_files} files should only contain values which override
+# values set in this file. This eases the upgrade path when defaults
+# are changed and new features are added.
+#
+# All arguments must be in double or single quotes.
+#
+# $FreeBSD$
+
+##############################################################
+### Important initial Boot-time options ####################
+##############################################################
+
+rc_ng="NO" # Set to YES to enable new-style rc. Experimental.
+rc_info="YES" # Enables display of informational messages at boot.
+rcshutdown_timeout="30" # Seconds to wait before terminating rc.shutdown
+swapfile="NO" # Set to name of swapfile if aux swapfile desired.
+apm_enable="NO" # Set to YES to enable APM BIOS functions (or NO).
+apmd_enable="NO" # Run apmd to handle APM event from userland.
+apmd_flags="" # Flags to apmd (if enabled).
+pccard_enable="NO" # Set to YES if you want to configure PCCARD devices.
+pccard_mem="DEFAULT" # If pccard_enable=YES, this is card memory address.
+pccard_beep="2" # pccard beep type.
+pccard_ifconfig="NO" # Specialized pccard ethernet configuration (or NO).
+pccardd_flags="" # Additional flags for pccardd.
+pccard_conf="/etc/defaults/pccard.conf" # pccardd(8) config file
+pccard_ether_delay="5" # Delay before trying to start dhclient in pccard_ether
+removable_interfaces="" # Removable network interfaces for /etc/pccard_ether.
+local_startup="/usr/local/etc/rc.d /usr/X11R6/etc/rc.d" # startup script dirs.
+script_name_sep=" " # Change if your startup scripts' names contain spaces
+rc_conf_files="/etc/rc.conf /etc/rc.conf.local"
+fsck_y_enable="NO" # Set to YES to do fsck -y if the initial preen fails.
+background_fsck="YES" # Attempt to run fsck in the background where possible.
+extra_netfs_types="NO" # List of network extra filesystem types for delayed
+ # mount at startup (or NO).
+
+##############################################################
+### Network configuration sub-section ######################
+##############################################################
+
+### Basic network and firewall/security options: ###
+hostname="" # Set this!
+nisdomainname="NO" # Set to NIS domain if using NIS (or NO).
+dhcp_program="/sbin/dhclient" # Path to dhcp client program.
+dhcp_flags="" # Additional flags to pass to dhcp client.
+firewall_enable="NO" # Set to YES to enable firewall functionality
+firewall_script="/etc/rc.firewall" # Which script to run to set up the firewall
+firewall_type="UNKNOWN" # Firewall type (see /etc/rc.firewall)
+firewall_quiet="NO" # Set to YES to suppress rule display
+firewall_logging="NO" # Set to YES to enable events logging
+firewall_flags="" # Flags passed to ipfw when type is a file
+ip_portrange_first="NO" # Set first dynamically allocated port
+ip_portrange_last="NO" # Set last dynamically allocated port
+ipsec_enable="NO" # Set to YES to run setkey on ipsec_file
+ipsec_file="/etc/ipsec.conf" # Name of config file for setkey
+natd_program="/sbin/natd" # path to natd, if you want a different one.
+natd_enable="NO" # Enable natd (if firewall_enable == YES).
+natd_interface="" # Public interface or IPaddress to use.
+natd_flags="" # Additional flags for natd.
+ipfilter_enable="NO" # Set to YES to enable ipfilter functionality
+ipfilter_program="/sbin/ipf" # where the ipfilter program lives
+ipfilter_rules="/etc/ipf.rules" # rules definition file for ipfilter, see
+ # /usr/src/contrib/ipfilter/rules for examples
+ipfilter_flags="" # additional flags for ipfilter
+ipnat_enable="NO" # Set to YES to enable ipnat functionality
+ipnat_program="/sbin/ipnat" # where the ipnat program lives
+ipnat_rules="/etc/ipnat.rules" # rules definition file for ipnat
+ipnat_flags="" # additional flags for ipnat
+ipmon_enable="NO" # Set to YES for ipmon; needs ipfilter or ipnat
+ipmon_program="/sbin/ipmon" # where the ipfilter monitor program lives
+ipmon_flags="-Ds" # typically "-Ds" or "-D /var/log/ipflog"
+ipfs_enable="NO" # Set to YES to enable saving and restoring
+ # of state tables at shutdown and boot
+ipfs_program="/sbin/ipfs" # where the ipfs program lives
+ipfs_flags="" # additional flags for ipfs
+tcp_extensions="YES" # Set to NO to turn off RFC1323 extensions.
+log_in_vain="0" # >=1 to log connects to ports w/o listeners.
+tcp_keepalive="YES" # Enable stale TCP connection timeout (or NO).
+# For the following option you need to have TCP_DROP_SYNFIN set in your
+# kernel. Please refer to LINT and NOTES for details.
+tcp_drop_synfin="NO" # Set to YES to drop TCP packets with SYN+FIN
+ # NOTE: this violates the TCP specification
+icmp_drop_redirect="NO" # Set to YES to ignore ICMP REDIRECT packets
+icmp_log_redirect="NO" # Set to YES to log ICMP REDIRECT packets
+network_interfaces="auto" # List of network interfaces (or "auto").
+cloned_interfaces="" # List of cloned network interfaces to create.
+#cloned_interfaces="gif0 gif1 gif2 gif3" # Pre-cloning GENERIC config.
+ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration.
+#ifconfig_lo0_alias0="inet 127.0.0.254 netmask 0xffffffff" # Sample alias entry.
+#ifconfig_ed0_ipx="ipx 0x00010010" # Sample IPX address family entry.
+#
+# If you have any sppp(4) interfaces above, you might also want to set
+# the following parameters. Refer to spppcontrol(8) for their meaning.
+sppp_interfaces="" # List of sppp interfaces.
+#sppp_interfaces="isp0" # example: sppp over ISDN
+#spppconfig_isp0="authproto=chap myauthname=foo myauthsecret='top secret' hisauthname=some-gw hisauthsecret='another secret'"
+gif_interfaces="NO" # List of GIF tunnels (or "NO").
+#gif_interfaces="gif0 gif1" # Examples typically for a router.
+ # Choose correct tunnel addrs.
+#gifconfig_gif0="10.1.1.1 10.1.2.1" # Examples typically for a router.
+#gifconfig_gif1="10.1.1.2 10.1.2.2" # Examples typically for a router.
+
+# User ppp configuration.
+ppp_enable="NO" # Start user-ppp (or NO).
+ppp_mode="auto" # Choice of "auto", "ddial", "direct" or "dedicated".
+ # For details see man page for ppp(8). Default is auto.
+ppp_nat="YES" # Use PPP's internal network address translation or NO.
+ppp_profile="papchap" # Which profile to use from /etc/ppp/ppp.conf.
+ppp_user="root" # Which user to run ppp as
+
+### Network daemon (miscellaneous) ###
+syslogd_enable="YES" # Run syslog daemon (or NO).
+syslogd_program="/usr/sbin/syslogd" # path to syslogd, if you want a different one.
+syslogd_flags="-s" # Flags to syslogd (if enabled).
+#syslogd_flags="-ss" # Syslogd flags to not bind an inet socket
+inetd_enable="NO" # Run the network daemon dispatcher (YES/NO).
+inetd_program="/usr/sbin/inetd" # path to inetd, if you want a different one.
+inetd_flags="-wW" # Optional flags to inetd
+#
+# named. It may be possible to run named in a sandbox, man security for
+# details.
+#
+named_rcng="NO" # XXX Temporary. Enable to use new rc
+ # functionality in support of named. See
+ # variables below.
+named_enable="NO" # Run named, the DNS server (or NO).
+named_program="/usr/sbin/named" # path to named, if you want a different one.
+named_flags="-u bind -g bind" # Flags for named
+named_chrootdir="" # Chroot directory (or "" not to auto-chroot it)
+named_chroot_autoupdate="YES" # Automatically install/update chrooted
+ # components of named. See /etc/rc.d/named.
+named_symlink_enable="YES" # Symlink /var/run/named.pid and /var/run/ndc
+ # to their chrooted counterparts.
+
+#
+# kerberos. Do not run the admin daemons on slave servers
+#
+kerberos4_server_enable="NO" # Run a kerberos IV master server (or NO).
+kerberos4_server="/usr/sbin/kerberos" # path to kerberos IV KDC
+kadmind4_server_enable="NO" # Run kadmind (or NO)
+kadmind4_server="/usr/sbin/kadmind" # path to kerberos IV admin daemon
+kerberos5_server_enable="NO" # Run a kerberos 5 master server (or NO).
+kerberos5_server="/usr/libexec/kdc" # path to kerberos 5 KDC
+kadmind5_server_enable="NO" # Run kadmind (or NO)
+kadmind5_server="/usr/libexec/k5admind" # path to kerberos 5 admin daemon
+kerberos_stash="NO" # Is the kerberos master key stashed?
+
+rwhod_enable="NO" # Run the rwho daemon (or NO).
+rwhod_flags="" # Flags for rwhod
+rarpd_enable="NO" # Run rarpd (or NO).
+rarpd_flags="" # Flags to rarpd.
+xtend_enable="NO" # Run the X-10 power controller daemon.
+xtend_flags="" # Flags to xtend (if enabled).
+pppoed_enable="NO" # Run the PPP over Ethernet daemon.
+pppoed_provider="*" # Provider and ppp(8) config file entry.
+pppoed_flags="-P /var/run/pppoed.pid" # Flags to pppoed (if enabled).
+pppoed_interface="fxp0" # The interface that pppoed runs on.
+sshd_enable="NO" # Enable sshd
+sshd_program="/usr/sbin/sshd" # path to sshd, if you want a different one.
+sshd_flags="" # Additional flags for sshd.
+
+### Network daemon (NFS): All need rpcbind_enable="YES" ###
+amd_enable="NO" # Run amd service with $amd_flags (or NO).
+amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"
+amd_map_program="NO" # Can be set to "ypcat -k amd.master"
+nfs_client_enable="NO" # This host is an NFS client (or NO).
+nfs_access_cache="2" # Client cache timeout in seconds
+nfs_server_enable="NO" # This host is an NFS server (or NO).
+nfs_server_flags="-u -t -n 4" # Flags to nfsd (if enabled).
+mountd_enable="NO" # Run mountd (or NO).
+mountd_flags="-r" # Flags to mountd (if NFS server enabled).
+weak_mountd_authentication="NO" # Allow non-root mount requests to be served.
+nfs_reserved_port_only="NO" # Provide NFS only on secure port (or NO).
+nfs_bufpackets="DEFAULT" # bufspace (in packets) for client (or DEFAULT)
+rpc_lockd_enable="NO" # Run NFS rpc.lockd needed for client/server.
+rpc_statd_enable="NO" # Run NFS rpc.statd needed for client/server.
+rpcbind_enable="NO" # Run the portmapper service (YES/NO).
+rpcbind_program="/usr/sbin/rpcbind" # path to rpcbind, if you want a different one.
+rpcbind_flags="" # Flags to rpcbind (if enabled).
+rpc_ypupdated_enable="NO" # Run if NIS master and SecureRPC (or NO).
+keyserv_enable="NO" # Run the SecureRPC keyserver (or NO).
+keyserv_flags="" # Flags to keyserv (if enabled).
+
+### Network Time Services options: ###
+timed_enable="NO" # Run the time daemon (or NO).
+timed_flags="" # Flags to timed (if enabled).
+ntpdate_enable="NO" # Run ntpdate to sync time on boot (or NO).
+ntpdate_program="/usr/sbin/ntpdate" # path to ntpdate, if you want a different one.
+ntpdate_flags="-b" # Flags to ntpdate (if enabled).
+ntpd_enable="NO" # Run ntpd Network Time Protocol (or NO).
+ntpd_program="/usr/sbin/ntpd" # path to ntpd, if you want a different one.
+ntpd_flags="-p /var/run/ntpd.pid" # Flags to ntpd (if enabled).
+
+# Network Information Services (NIS) options: All need rpcbind_enable="YES" ###
+nis_client_enable="NO" # We're an NIS client (or NO).
+nis_client_flags="" # Flags to ypbind (if enabled).
+nis_ypset_enable="NO" # Run ypset at boot time (or NO).
+nis_ypset_flags="" # Flags to ypset (if enabled).
+nis_server_enable="NO" # We're an NIS server (or NO).
+nis_server_flags="" # Flags to ypserv (if enabled).
+nis_ypxfrd_enable="NO" # Run rpc.ypxfrd at boot time (or NO).
+nis_ypxfrd_flags="" # Flags to rpc.ypxfrd (if enabled).
+nis_yppasswdd_enable="NO" # Run rpc.yppasswdd at boot time (or NO).
+nis_yppasswdd_flags="" # Flags to rpc.yppasswdd (if enabled).
+
+### Network routing options: ###
+defaultrouter="NO" # Set to default gateway (or NO).
+static_routes="" # Set to static route list (or leave empty).
+gateway_enable="NO" # Set to YES if this host will be a gateway.
+router_enable="NO" # Set to YES to enable a routing daemon.
+router="/sbin/routed" # Name of routing daemon to use if enabled.
+router_flags="-q" # Flags for routing daemon.
+mrouted_enable="NO" # Do multicast routing (see /etc/mrouted.conf).
+mrouted_flags="" # Flags for multicast routing daemon.
+ipxgateway_enable="NO" # Set to YES to enable IPX routing.
+ipxrouted_enable="NO" # Set to YES to run the IPX routing daemon.
+ipxrouted_flags="" # Flags for IPX routing daemon.
+arpproxy_all="NO" # replaces obsolete kernel option ARP_PROXYALL.
+forward_sourceroute="NO" # do source routing (only if gateway_enable is set to "YES")
+accept_sourceroute="NO" # accept source routed packets to us
+
+### ATM interface options: ###
+atm_enable="NO" # Configure ATM interfaces (or NO).
+#atm_netif_hea0="atm 1" # Network interfaces for physical interface.
+#atm_sigmgr_hea0="uni31" # Signalling manager for physical interface.
+#atm_prefix_hea0="ILMI" # NSAP prefix (UNI interfaces only) (or ILMI).
+#atm_macaddr_hea0="NO" # Override physical MAC address (or NO).
+#atm_arpserver_atm0="0x47.0005.80.999999.9999.9999.9999.999999999999.00" # ATMARP server address (or local).
+#atm_scsparp_atm0="NO" # Run SCSP/ATMARP on network interface (or NO).
+atm_pvcs="" # Set to PVC list (or leave empty).
+atm_arps="" # Set to permanent ARP list (or leave empty).
+
+### ISDN interface options: (see also: /usr/share/examples/isdn) ###
+isdn_enable="NO" # Enable the ISDN subsystem (or NO).
+isdn_fsdev="NO" # Output device for fullscreen mode (or NO for daemon mode).
+isdn_flags="-dn -d0x1f9" # Flags for isdnd
+isdn_ttype="cons25" # terminal type for fullscreen mode
+isdn_screenflags="NO" # screenflags for ${isdn_fsdev}
+isdn_trace="NO" # Enable the ISDN trace subsystem (or NO).
+isdn_traceflags="-f /var/tmp/isdntrace0" # Flags for isdntrace
+
+### Miscellaneous network options: ###
+icmp_bmcastecho="NO" # respond to broadcast ping packets
+
+### IPv6 options: ###
+ipv6_enable="NO" # Set to YES to set up for IPv6.
+ipv6_network_interfaces="auto" # List of network interfaces (or "auto").
+ipv6_defaultrouter="NO" # Set to IPv6 default gateway (or NO).
+#ipv6_defaultrouter="2002:c058:6301::" # Use this for 6to4 (RFC 3068)
+ipv6_static_routes="" # Set to static route list (or leave empty).
+#ipv6_static_routes="xxx" # An example to set fec0:0000:0000:0006::/64
+ # route toward loopback interface.
+#ipv6_route_xxx="fec0:0000:0000:0006:: -prefixlen 64 ::1"
+ipv6_gateway_enable="NO" # Set to YES if this host will be a gateway.
+ipv6_router_enable="NO" # Set to YES to enable an IPv6 routing daemon.
+ipv6_router="/usr/sbin/route6d" # Name of IPv6 routing daemon.
+ipv6_router_flags="" # Flags to IPv6 routing daemon.
+#ipv6_router_flags="-l" # Example for route6d with only IPv6 site local
+ # addrs.
+#ipv6_router_flags="-q" # If you want to run a routing daemon on an end
+ # node, you should stop advertisement.
+#ipv6_network_interfaces="ed0 ep0" # Examples for router
+ # or static configuration for end node.
+ # Choose correct prefix value.
+#ipv6_prefix_ed0="fec0:0000:0000:0001 fec0:0000:0000:0002" # Examples for rtr.
+#ipv6_prefix_ep0="fec0:0000:0000:0003 fec0:0000:0000:0004" # Examples for rtr.
+#ipv6_ifconfig_ed0="fec0:0:0:5::1 prefixlen 64" # Sample manual assign entry
+#ipv6_ifconfig_ed0_alias0="fec0:0:0:5::2 prefixlen 64" # Sample alias entry.
+ipv6_default_interface="NO" # Default output interface for scoped addrs.
+ # Now this works only for IPv6 link local
+ # multicast addrs.
+rtadvd_enable="NO" # Set to YES to enable an IPv6 router
+ # advertisement daemon. If set to YES,
+ # this router becomes a possible candidate
+ # IPv6 default router for local subnets.
+rtadvd_interfaces="" # Interfaces rtadvd sends RA packets.
+mroute6d_enable="NO" # Do IPv6 multicast routing.
+mroute6d_program="/usr/local/sbin/pim6dd" # Name of IPv6 multicast
+ # routing daemon. You need to
+ # install it from package or
+ # port.
+mroute6d_flags="" # Flags to IPv6 multicast routing daemon.
+stf_interface_ipv4addr="" # Local IPv4 addr for 6to4 IPv6 over IPv4
+ # tunneling interface. Specify this entry
+ # to enable 6to4 interface.
+stf_interface_ipv4plen="0" # Prefix length for 6to4 IPv4 addr,
+ # to limit peer addr range. Effective value
+ # is 0-31.
+stf_interface_ipv6_ifid="0:0:0:1" # IPv6 interface id for stf0.
+ # If you like, you can set "AUTO" for this.
+stf_interface_ipv6_slaid="0000" # IPv6 Site Level Aggregator for stf0
+ipv6_faith_prefix="NO" # Set faith prefix to enable a FAITH
+ # IPv6-to-IPv4 TCP translator. You also need
+ # faithd(8) setup.
+ipv6_ipv4mapping="NO" # Set to "YES" to enable IPv4 mapped IPv6 addr
+ # communication. (like ::ffff:a.b.c.d)
+ipv6_firewall_enable="NO" # Set to YES to enable IPv6 firewall
+ # functionality
+ipv6_firewall_script="/etc/rc.firewall6" # Which script to run to set up the IPv6 firewall
+ipv6_firewall_type="UNKNOWN" # IPv6 Firewall type (see /etc/rc.firewall6)
+ipv6_firewall_quiet="NO" # Set to YES to suppress rule display
+ipv6_firewall_logging="NO" # Set to YES to enable events logging
+ipv6_firewall_flags="" # Flags passed to ip6fw when type is a file
+
+##############################################################
+### System console options #################################
+##############################################################
+
+keymap="NO" # keymap in /usr/share/syscons/keymaps/* (or NO).
+keyrate="NO" # keyboard rate to: slow, normal, fast (or NO).
+keybell="NO" # bell to duration.pitch or normal or visual (or NO).
+keychange="NO" # function keys default values (or NO).
+cursor="NO" # cursor type {normal|blink|destructive} (or NO).
+scrnmap="NO" # screen map in /usr/share/syscons/scrnmaps/* (or NO).
+font8x16="NO" # font 8x16 from /usr/share/syscons/fonts/* (or NO).
+font8x14="NO" # font 8x14 from /usr/share/syscons/fonts/* (or NO).
+font8x8="NO" # font 8x8 from /usr/share/syscons/fonts/* (or NO).
+blanktime="300" # blank time (in seconds) or "NO" to turn it off.
+saver="NO" # screen saver: Uses /boot/kernel/${saver}_saver.ko
+moused_enable="NO" # Run the mouse daemon.
+moused_type="auto" # See man page for rc.conf(5) for available settings.
+moused_port="/dev/psm0" # Set to your mouse port.
+moused_flags="" # Any additional flags to moused.
+mousechar_start="NO" # if 0xd0-0xd3 default range is occuped in your
+ # language code table, specify alternative range
+ # start like mousechar_start=3, see vidcontrol(1)
+allscreens_flags="" # Set this vidcontrol mode for all virtual screens
+allscreens_kbdflags="" # Set this kbdcontrol mode for all virtual screens
+
+
+##############################################################
+### pcvt console driver options ############################
+##############################################################
+
+pcvt_verbose="NO" # set to YES to enable verbose configuration messages
+pcvt_keymap="NO" # keyboard map in /usr/share/misc/keycap.pcvt (or NO).
+pcvt_keydel="NO" # key repeat delay, 0-3 (250,500,750,1000 msec) (or NO).
+pcvt_keyrate="NO" # keyboard repetition rate 31-0 (2-30 char/sec) (or NO).
+pcvt_keyrepeat="NO" # keyboard repeat ON or OFF (or NO).
+pcvt_force24="NO" # force a 24 line display (when 25 possible) (or NO).
+pcvt_hpext="NO" # use HP extensions (function keys labels) (or NO).
+pcvt_lines="NO" # lines (25, 28, 40, 50 or NO).
+pcvt_blanktime="NO" # blank time (in seconds) (or NO).
+pcvt_cursorh="NO" # cursor top scanline (topmost line is 0) (or NO).
+pcvt_cursorl="NO" # cursor low scanline (bottom line is 16) (or NO).
+pcvt_monohigh="NO" # set intensity to high on monochrome monitors (or NO).
+
+
+##############################################################
+### Mail Transfer Agent (MTA) options ######################
+##############################################################
+
+mta_start_script="/etc/rc.sendmail"
+ # Script to start your chosen MTA, called by /etc/rc.
+# Settings for /etc/rc.sendmail:
+sendmail_enable="NO" # Run the sendmail inbound daemon (YES/NO/NONE).
+ # If NONE, don't start any sendmail processes.
+sendmail_flags="-L sm-mta -bd -q30m" # Flags to sendmail (as a server)
+sendmail_submit_enable="YES" # Start a localhost-only MTA for mail submission
+sendmail_submit_flags="-L sm-mta -bd -q30m -ODaemonPortOptions=Addr=localhost"
+ # Flags for localhost-only MTA
+sendmail_outbound_enable="YES" # Dequeue stuck mail (YES/NO).
+sendmail_outbound_flags="-L sm-queue -q30m" # Flags to sendmail (outbound only)
+sendmail_msp_queue_enable="YES" # Dequeue stuck clientmqueue mail (YES/NO).
+sendmail_msp_queue_flags="-L sm-msp-queue -Ac -q30m"
+ # Flags for sendmail_msp_queue daemon.
+
+
+##############################################################
+### Miscellaneous administrative options ###################
+##############################################################
+
+cron_enable="YES" # Run the periodic job daemon.
+cron_program="/usr/sbin/cron" # Which cron executable to run (if enabled).
+cron_flags="" # Which options to pass to the cron daemon.
+lpd_enable="NO" # Run the line printer daemon.
+lpd_program="/usr/sbin/lpd" # path to lpd, if you want a different one.
+lpd_flags="" # Flags to lpd (if enabled).
+usbd_enable="NO" # Run the usbd daemon.
+usbd_flags="" # Flags to usbd (if enabled).
+dumpdev="NO" # Device name to crashdump to (or NO).
+dumpdir="/var/crash" # Directory where crash dumps are to be stored
+savecore_flags="" # Used if dumpdev is enabled above, and present.
+enable_quotas="NO" # turn on quotas on startup (or NO).
+check_quotas="YES" # Check quotas on startup (or NO).
+accounting_enable="NO" # Turn on process accounting (or NO).
+ibcs2_enable="NO" # Ibcs2 (SCO) emulation loaded at startup (or NO).
+ibcs2_loaders="coff" # List of additional Ibcs2 loaders (or NO).
+sysvipc_enable="NO" # Load System V IPC primitives at startup (or NO).
+linux_enable="NO" # Linux binary compatibility loaded at startup (or NO).
+svr4_enable="NO" # SysVR4 emulation loaded at startup (or NO).
+osf1_enable="NO" # Alpha OSF/1 emulation loaded at startup (or NO).
+clear_tmp_enable="NO" # Clear /tmp at startup.
+ldconfig_insecure="NO" # Set to YES to disable ldconfig security checks
+ldconfig_paths="/usr/lib/compat /usr/X11R6/lib /usr/local/lib"
+ # shared library search paths
+ldconfig_paths_aout="/usr/lib/compat/aout /usr/X11R6/lib/aout /usr/local/lib/aout"
+ # a.out shared library search paths
+kern_securelevel_enable="NO" # kernel security level (see init(8)),
+kern_securelevel="-1" # range: -1..3 ; `-1' is the most insecure
+lomac_enable="NO" # start lomac(4) security module at boot
+update_motd="YES" # update version info in /etc/motd (or NO)
+start_vinum="NO" # set to YES to start vinum
+unaligned_print="YES" # print unaligned access warnings on the alpha (or NO).
+entropy_file="/entropy" # Set to NO to disable caching entropy through reboots.
+ # /var/db/entropy is preferred if / is not available.
+entropy_dir="/var/db/entropy" # Set to NO to disable caching entropy via cron.
+entropy_save_sz="2048" # Size of the entropy cache files.
+entropy_save_num="8" # Number of entropy cache files to save.
+harvest_interrupt="YES" # Entropy device harvests interrupt randomness
+harvest_ethernet="YES" # Entropy device harvests ethernet randomness
+harvest_p_to_p="YES" # Entropy device harvests point-to-point randomness
+dmesg_enable="YES" # Save dmesg(8) to /var/run/dmesg.boot
+
+##############################################################
+### Define source_rc_confs, the mechanism used by /etc/rc.* ##
+### scripts to source rc_conf_files overrides safely. ##
+##############################################################
+
+if [ -z "${source_rc_confs_defined}" ]; then
+ source_rc_confs_defined=yes
+ source_rc_confs () {
+ local i sourced_files
+ for i in ${rc_conf_files}; do
+ case ${sourced_files} in
+ *:$i:*)
+ ;;
+ *)
+ sourced_files="${sourced_files}:$i:"
+ if [ -r $i ]; then
+ . $i
+ fi
+ ;;
+ esac
+ done
+ }
+fi
diff --git a/etc/dhclient.conf b/etc/dhclient.conf
new file mode 100644
index 0000000..a7639d9
--- /dev/null
+++ b/etc/dhclient.conf
@@ -0,0 +1,8 @@
+# $FreeBSD$
+#
+# This file is required by the ISC DHCP client.
+# See ``man 5 dhclient.conf'' for details.
+#
+# In most cases an empty file is sufficient for most people as the
+# defaults are usually fine.
+#
diff --git a/etc/disktab b/etc/disktab
new file mode 100644
index 0000000..a5afde3
--- /dev/null
+++ b/etc/disktab
@@ -0,0 +1,235 @@
+# $FreeBSD$
+#
+# 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, ns*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)
+#
+
+#
+# Floppy formats:
+#
+# To make a filesystem on a floppy:
+# fdformat [-f <size>] fd<drive>[.<size>]
+# disklabel -B -r -w fd<drive>[.<size>] fd<size>
+# newfs <opts> fd<drive>[.<size>]
+#
+# with <opts>:
+# -t 2 - two heads
+# -u 9|15|18 - sectors per track
+# (using the default value of 1/4096 is not much useful for floppies)
+# -l 1 - interleave 1 (for most floppies)
+# -i 65536 - bytes of data per i-node
+# (the default -i value will render you with a floppy wasting way
+# too much space in i-node areas)
+#
+
+fd360:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#9:nc#40:\
+ :pa#720:oa#0:ba#4096:fa#512:\
+ :pb#720:ob#0:bb#4096:fb#512:\
+ :pc#720:oc#0:bc#4096:fc#512:
+
+fd720:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#9:nc#80:\
+ :pa#1440:oa#0:ba#4096:fa#512:\
+ :pb#1440:ob#0:bb#4096:fb#512:\
+ :pc#1440:oc#0:bc#4096:fc#512:
+
+fd1200|floppy5|5in|5.25in High Density Floppy:\
+ :ty=floppy:se#512:nt#2:rm#360:ns#15:nc#80:\
+ :pa#2400:oa#0:ba#4096:fa#512:\
+ :pb#2400:ob#0:bb#4096:fb#512:\
+ :pc#2400:oc#0:bc#4096:fc#512:
+
+fd1440|floppy|floppy3|3in|3.5in High Density Floppy:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#18:nc#80:\
+ :pa#2880:oa#0:ba#4096:fa#512:\
+ :pb#2880:ob#0:bb#4096:fb#512:\
+ :pc#2880:oc#0:bc#4096:fc#512:
+
+#
+# Stressed floppy-formats. No guarantees given.
+#
+
+fd800:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#10:nc#80:\
+ :pa#1600:oa#0:ba#4096:fa#512:\
+ :pb#1600:ob#0:bb#4096:fb#512:\
+ :pc#1600:oc#0:bc#4096:fc#512:
+
+fd820:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#10:nc#82:\
+ :pa#1640:oa#0:ba#4096:fa#512:\
+ :pb#1640:ob#0:bb#4096:fb#512:\
+ :pc#1640:oc#0:bc#4096:fc#512:
+
+fd1480:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#18:nc#82:\
+ :pa#2952:oa#0:ba#4096:fa#512:\
+ :pb#2952:ob#0:bb#4096:fb#512:\
+ :pc#2952:oc#0:bc#4096:fc#512:
+
+fd1720:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#21:nc#82:\
+ :pa#3444:oa#0:ba#4096:fa#512:\
+ :pb#3444:ob#0:bb#4096:fb#512:\
+ :pc#3444:oc#0:bc#4096:fc#512:
+
+#
+# LS-120 floppy-format.
+#
+fd120m|floppy120|floppy120m|3.5in LS-120 Floppy:\
+ :ty=floppy:se#512:nt#8:rm#300:ns#32:nc#963:\
+ :pa#246528:oa#0:ba#4096:fa#512:\
+ :pb#246528:ob#0:bb#4096:fb#512:\
+ :pc#246528:oc#0:bc#4096:fc#512:
+
+#
+# Harddisk formats
+#
+qp120at|Quantum Peripherals 120MB IDE:\
+ :dt=ESDI:ty=winchester:se#512:nt#9:ns#32:nc#813:sf: \
+ :pa#13824:oa#0:ta=4.2BSD:ba#4096:fa#512: \
+ :pb#13824:ob#13824:tb=swap: \
+ :pc#234144:oc#0: \
+ :ph#206496:oh#27648:th=4.2BSD:bh#4096:fh#512:
+
+pan60|Panasonic Laptop's 60MB IDE:\
+ :dt=ST506:ty=winchester:se#512:nt#13:ns#17:nc#565:\
+ :pa#13260:oa#0:ta=4.2BSD:ba#4096:fa#512:\
+ :pb#13260:ob#13260:tb=swap: \
+ :pc#124865:oc#0: \
+ :ph#97682:oh#26520:th=4.2BSD:bh#4096:fh#512:
+
+mk156|toshiba156|Toshiba MK156 156Mb:\
+ :dt=SCSI:ty=winchester:se#512:nt#10:ns#35:nc#825:\
+ :pa#15748:oa#0:ba#4096:fa#512:ta=4.2BSD:\
+ :pb#15748:ob#15748:tb=swap:\
+ :pc#288750:oc#0:\
+ :ph#257250:oh#31500:bh#4096:fh#512:th=4.2BSD:
+
+cp3100|Connor Peripherals 100MB IDE:\
+ :dt=ST506:ty=winchester:se#512:nt#8:ns#33:nc#766: \
+ :pa#12144:oa#0:ta=4.2BSD:ba#4096:fa#512: \
+ :pb#12144:ob#12144:tb=swap: \
+ :pc#202224:oc#0: \
+ :ph#177936:oh#24288:th=4.2BSD:bh#4096:fh#512:
+
+# a == root
+# b == swap
+# c == d == whole disk
+# e == /var
+# f == scratch
+# h == /usr
+
+cp3100new|Connor Peripherals 100MB IDE, with a different configuration:\
+ :dt=ST506:ty=winchester:se#512:nt#8:ns#33:nc#766: \
+ :pa#15840:oa#0:ta=4.2BSD:ba#4096:fa#512: \
+ :pb#24288:ob#15840:tb=swap: \
+ :pc#202224:oc#0: \
+ :pd#202224:od#0: \
+ :pe#15840:oe#40128:te=4.2BSD:be#4096:fe#512: \
+ :pg#15840:og#55968:tg=4.2BSD:bg#4096:fg#512: \
+ :ph#130416:oh#71808:th=4.2BSD:bh#4096:fh#512:
+
+maxtor4380|Maxtor XT4380E ESDI :\
+ :dt=ESDI:ty=winchester:se#512:nt#15:ns#36:nc#1222:sf: \
+ :pa#21600:oa#0:ta=4.2BSD:ba#4096:fa#512:\
+ :pb#21600:ob#21600:tb=swap: \
+ :pc#659880:oc#0: \
+ :pd#216000:od#53200:td=4.2BSD:bd#4096:fd#512: \
+ :ph#398520:oh#269200:th=4.2BSD:bh#4096:fh#512:
+
+miniscribe9380|compaq38|Miniscribe 9380 ESDI :\
+ :ty=winchester:dt=ESDI:se#512:nt#15:ns#35:nc#1223:rm#3600:sf: \
+ :pa#21000:oa#0:ba#8192:fa#1024:ta=4.2BSD: \
+ :pb#42000:ob#21000:tb=swap: \
+ :pc#642075:oc#0: \
+ :pd#21000:od#63000:bd#8192:fd#1024:td=4.2BSD: \
+ :ph#556500:oh#84000:bh#8192:fh#1024:th=4.2BSD:
+
+ida4|compaq88|Compaq IDA (4 drives) :\
+ :ty=winchester:dt=IDA:se#512:nt#16:ns#63:nc#1644:rm#3600:\
+ :pa#20160:oa#0:ba#8192:fa#1024:ta=4.2BSD: \
+ :pb#80640:ob#20160:tb=swap: \
+ :pc#1659168:oc#0: \
+ :pd#201600:od#100800:bd#8192:fd#1024:td=4.2BSD: \
+ :pe#20160:oe#1310400:be#8192:fe#1024:te=4.2BSD: \
+ :ph#1008000:oh#302400:bh#8192:fh#1024:th=4.2BSD: \
+ :pg#302400:og#1330560:bg#4096:fg#512:tg=4.2BSD:
+
+fuji513|Fujitsu M22XXXX: \
+ :ty=winchester:dt=ESDI:se#512:nt#16:ns#63:nc#954:rm#3600:\
+ :pa#20160:oa#82656:ba#4096:fa#512:ta=4.2BSD: \
+ :pb#40320:ob#102816:tb=swap: \
+ :pc#961632:oc#0: \
+ :ph#656208:oh#143136:bh#4096:fh#512:th=4.2BSD:
+
+sony650|Sony 650 MB MOD|\
+ :ty=removable:dt=SCSI:se#512:nt#1:ns#31:nc#18600:ts#1:rm#4800:\
+ :pc#576600:oc#0:\
+ :pa#576600:oa#0:ta=4.2BSD:ba#8192:fa#1024:
+
+mta3230|mo230|IBM MTA-3230 230 Meg 3.5inch Magneto-Optical:\
+ :ty=removeable:dt=SCSI:rm#3600:\
+ :se#512:nt#64:ns#32:nc#216:sc#2048:su#444384:\
+ :pa#444384:oa#0:ba#4096:fa#0:ta=4.2BSD:\
+ :pc#444384:oc#0:
+
+minimum:ty=mfs:se#512:nt#1:rm#300:\
+ :ns#2880:nc#1:\
+ :pa#2880:oa#0:ba#4096:fa#512:\
+ :pc#2880:oc#0:bc#4096:fc#512:
+
+minimum2:ty=mfs:se#512:nt#1:rm#300:\
+ :ns#5760:nc#1:\
+ :pa#5760:oa#0:ba#4096:fa#512:\
+ :pc#5760:oc#0:bc#4096:fc#512:
+
+minimum3:ty=mfs:se#512:nt#1:rm#300:\
+ :ns#8640:nc#1:\
+ :pa#8640:oa#0:ba#4096:fa#512:\
+ :pc#8640:oc#0:bc#4096:fc#512:
+
+zip100|zip 100:\
+ :ty=removable:se#512:nc#96:nt#64:ns#32:\
+ :pa#196608:oa#0:ba#4096:fa#512:\
+ :pb#196608:ob#0:bb#4096:fb#512:\
+ :pc#196608:oc#0:bc#4096:fc#512:
+
+zip250|zip 250:\
+ :ty=removable:se#512:nc#239:nt#64:ns#32:\
+ :pa#489472:oa#0:ba#4096:fa#512:\
+ :pb#489472:ob#0:bb#4096:fb#512:\
+ :pc#489472:oc#0:bc#4096:fc#512:
+
+orb2200|orb22|orb:\
+ :ty=removable:ns#63:nt#128:nc#4273:sc#1008:su#4307184:se#512:\
+ :pa#4307184:oa#0:ba#8192:fa#1024:\
+ :pc#4307184:oc#0:bc#8192:fc#1024:
+
diff --git a/etc/dm.conf b/etc/dm.conf
new file mode 100644
index 0000000..63fad93
--- /dev/null
+++ b/etc/dm.conf
@@ -0,0 +1,20 @@
+#
+# Game Control File
+# $FreeBSD$
+# @(#)dm.conf 5.5 (Berkeley) 4/12/89
+#
+
+# TTYNAME
+# badtty /dev/tty19 # news
+# badtty /dev/tty20 # news/mail
+
+# DAY OF WEEK START STOP
+# time Monday 7 16 # 7am to 4pm
+# time Tuesday 7 16
+# time Wednesday 7 16
+# time Thursday 7 16
+# time Friday 7 16
+
+# GAME MAX LOAD MAX USERS PRIORITY
+# default must be the last entry for the ``game'' keyword
+game default 5 * *
diff --git a/etc/etc.alpha/disktab b/etc/etc.alpha/disktab
new file mode 100644
index 0000000..cd0822d
--- /dev/null
+++ b/etc/etc.alpha/disktab
@@ -0,0 +1,224 @@
+# $FreeBSD$
+#
+# 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, ns*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)
+#
+
+#
+# Floppy formats:
+#
+# To make a filesystem on a floppy:
+# fdformat [-f <size>] fd<drive>[.<size>]
+# disklabel -B -r -w fd<drive>[.<size>] fd<size>
+# newfs <opts> fd<drive>[.<size>]
+#
+# with <opts>:
+# -t 2 - two heads
+# -u 9|15|18 - sectors per track
+# (using the default value of 1/4096 is not much useful for floppies)
+# -l 1 - interleave 1 (for most floppies)
+# -i 65536 - bytes of data per i-node
+# (the default -i value will render you with a floppy wasting way
+# too much space in i-node areas)
+#
+
+fd360:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#9:nc#40:\
+ :pa#720:oa#0:ba#4096:fa#512:\
+ :pb#720:ob#0:bb#4096:fb#512:\
+ :pc#720:oc#0:bc#4096:fc#512:
+
+fd720:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#9:nc#80:\
+ :pa#1440:oa#0:ba#4096:fa#512:\
+ :pb#1440:ob#0:bb#4096:fb#512:\
+ :pc#1440:oc#0:bc#4096:fc#512:
+
+fd1200|floppy5|5in|5.25in High Density Floppy:\
+ :ty=floppy:se#512:nt#2:rm#360:ns#15:nc#80:\
+ :pa#2400:oa#0:ba#4096:fa#512:\
+ :pb#2400:ob#0:bb#4096:fb#512:\
+ :pc#2400:oc#0:bc#4096:fc#512:
+
+fd1440|floppy|floppy3|3in|3.5in High Density Floppy:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#18:nc#80:\
+ :pa#2880:oa#0:ba#4096:fa#512:\
+ :pb#2880:ob#0:bb#4096:fb#512:\
+ :pc#2880:oc#0:bc#4096:fc#512:
+
+#
+# Stressed floppy-formats. No guarantees given.
+#
+
+fd800:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#10:nc#80:\
+ :pa#1600:oa#0:ba#4096:fa#512:\
+ :pb#1600:ob#0:bb#4096:fb#512:\
+ :pc#1600:oc#0:bc#4096:fc#512:
+
+fd820:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#10:nc#82:\
+ :pa#1640:oa#0:ba#4096:fa#512:\
+ :pb#1640:ob#0:bb#4096:fb#512:\
+ :pc#1640:oc#0:bc#4096:fc#512:
+
+fd1480:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#18:nc#82:\
+ :pa#2952:oa#0:ba#4096:fa#512:\
+ :pb#2952:ob#0:bb#4096:fb#512:\
+ :pc#2952:oc#0:bc#4096:fc#512:
+
+fd1720:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#21:nc#82:\
+ :pa#3444:oa#0:ba#4096:fa#512:\
+ :pb#3444:ob#0:bb#4096:fb#512:\
+ :pc#3444:oc#0:bc#4096:fc#512:
+
+#
+# LS-120 floppy-format.
+#
+fd120m|floppy120|floppy120m|3.5in LS-120 Floppy:\
+ :ty=floppy:se#512:nt#8:rm#300:ns#32:nc#963:\
+ :pa#246528:oa#0:ba#4096:fa#512:\
+ :pb#246528:ob#0:bb#4096:fb#512:\
+ :pc#246528:oc#0:bc#4096:fc#512:
+
+#
+# Harddisk formats
+#
+qp120at|Quantum Peripherals 120MB IDE:\
+ :dt=ESDI:ty=winchester:se#512:nt#9:ns#32:nc#813:sf: \
+ :pa#13824:oa#0:ta=4.2BSD:ba#4096:fa#512: \
+ :pb#13824:ob#13824:tb=swap: \
+ :pc#234144:oc#0: \
+ :ph#206496:oh#27648:th=4.2BSD:bh#4096:fh#512:
+
+pan60|Panasonic Laptop's 60MB IDE:\
+ :dt=ST506:ty=winchester:se#512:nt#13:ns#17:nc#565:\
+ :pa#13260:oa#0:ta=4.2BSD:ba#4096:fa#512:\
+ :pb#13260:ob#13260:tb=swap: \
+ :pc#124865:oc#0: \
+ :ph#97682:oh#26520:th=4.2BSD:bh#4096:fh#512:
+
+mk156|toshiba156|Toshiba MK156 156Mb:\
+ :dt=SCSI:ty=winchester:se#512:nt#10:ns#35:nc#825:\
+ :pa#15748:oa#0:ba#4096:fa#512:ta=4.2BSD:\
+ :pb#15748:ob#15748:tb=swap:\
+ :pc#288750:oc#0:\
+ :ph#257250:oh#31500:bh#4096:fh#512:th=4.2BSD:
+
+cp3100|Connor Peripherals 100MB IDE:\
+ :dt=ST506:ty=winchester:se#512:nt#8:ns#33:nc#766: \
+ :pa#12144:oa#0:ta=4.2BSD:ba#4096:fa#512: \
+ :pb#12144:ob#12144:tb=swap: \
+ :pc#202224:oc#0: \
+ :ph#177936:oh#24288:th=4.2BSD:bh#4096:fh#512:
+
+# a == root
+# b == swap
+# c == d == whole disk
+# e == /var
+# f == scratch
+# h == /usr
+
+cp3100new|Connor Peripherals 100MB IDE, with a different configuration:\
+ :dt=ST506:ty=winchester:se#512:nt#8:ns#33:nc#766: \
+ :pa#15840:oa#0:ta=4.2BSD:ba#4096:fa#512: \
+ :pb#24288:ob#15840:tb=swap: \
+ :pc#202224:oc#0: \
+ :pd#202224:od#0: \
+ :pe#15840:oe#40128:te=4.2BSD:be#4096:fe#512: \
+ :pg#15840:og#55968:tg=4.2BSD:bg#4096:fg#512: \
+ :ph#130416:oh#71808:th=4.2BSD:bh#4096:fh#512:
+
+maxtor4380|Maxtor XT4380E ESDI :\
+ :dt=ESDI:ty=winchester:se#512:nt#15:ns#36:nc#1222:sf: \
+ :pa#21600:oa#0:ta=4.2BSD:ba#4096:fa#512:\
+ :pb#21600:ob#21600:tb=swap: \
+ :pc#659880:oc#0: \
+ :pd#216000:od#53200:td=4.2BSD:bd#4096:fd#512: \
+ :ph#398520:oh#269200:th=4.2BSD:bh#4096:fh#512:
+
+miniscribe9380|compaq38|Miniscribe 9380 ESDI :\
+ :ty=winchester:dt=ESDI:se#512:nt#15:ns#35:nc#1223:rm#3600:sf: \
+ :pa#21000:oa#0:ba#8192:fa#1024:ta=4.2BSD: \
+ :pb#42000:ob#21000:tb=swap: \
+ :pc#642075:oc#0: \
+ :pd#21000:od#63000:bd#8192:fd#1024:td=4.2BSD: \
+ :ph#556500:oh#84000:bh#8192:fh#1024:th=4.2BSD:
+
+ida4|compaq88|Compaq IDA (4 drives) :\
+ :ty=winchester:dt=IDA:se#512:nt#16:ns#63:nc#1644:rm#3600:\
+ :pa#20160:oa#0:ba#8192:fa#1024:ta=4.2BSD: \
+ :pb#80640:ob#20160:tb=swap: \
+ :pc#1659168:oc#0: \
+ :pd#201600:od#100800:bd#8192:fd#1024:td=4.2BSD: \
+ :pe#20160:oe#1310400:be#8192:fe#1024:te=4.2BSD: \
+ :ph#1008000:oh#302400:bh#8192:fh#1024:th=4.2BSD: \
+ :pg#302400:og#1330560:bg#4096:fg#512:tg=4.2BSD:
+
+fuji513|Fujitsu M22XXXX: \
+ :ty=winchester:dt=ESDI:se#512:nt#16:ns#63:nc#954:rm#3600:\
+ :pa#20160:oa#82656:ba#4096:fa#512:ta=4.2BSD: \
+ :pb#40320:ob#102816:tb=swap: \
+ :pc#961632:oc#0: \
+ :ph#656208:oh#143136:bh#4096:fh#512:th=4.2BSD:
+
+sony650|Sony 650 MB MOD|\
+ :ty=removable:dt=SCSI:se#512:nt#1:ns#31:nc#18600:ts#1:rm#4800:\
+ :pc#576600:oc#0:\
+ :pa#576600:oa#0:ta=4.2BSD:ba#8192:fa#1024:
+
+mta3230|mo230|IBM MTA-3230 230 Meg 3.5inch Magneto-Optical:\
+ :ty=removeable:dt=SCSI:rm#3600:\
+ :se#512:nt#64:ns#32:nc#216:sc#2048:su#444384:\
+ :pa#444384:oa#0:ba#4096:fa#0:ta=4.2BSD:\
+ :pc#444384:oc#0:
+
+minimum:ty=mfs:se#512:nt#1:rm#300:\
+ :ns#2880:nc#1:\
+ :pa#2880:oa#0:ba#4096:fa#512:\
+ :pc#2880:oc#0:bc#4096:fc#512:
+
+minimum2:ty=mfs:se#512:nt#1:rm#300:\
+ :ns#5760:nc#1:\
+ :pa#5760:oa#0:ba#4096:fa#512:\
+ :pc#5760:oc#0:bc#4096:fc#512:
+
+zip100|zip 100:\
+ :ty=removable:se#512:nc#96:nt#64:ns#32:\
+ :pa#196608:oa#0:ba#4096:fa#512:\
+ :pb#196608:ob#0:bb#4096:fb#512:\
+ :pc#196608:oc#0:bc#4096:fc#512:
+
+zip250|zip 250:\
+ :ty=removable:se#512:nc#239:nt#64:ns#32:\
+ :pa#489472:oa#0:ba#4096:fa#512:\
+ :pb#489472:ob#0:bb#4096:fb#512:\
+ :pc#489472:oc#0:bc#4096:fc#512:
diff --git a/etc/etc.alpha/rc.alpha b/etc/etc.alpha/rc.alpha
new file mode 100644
index 0000000..9488e02
--- /dev/null
+++ b/etc/etc.alpha/rc.alpha
@@ -0,0 +1,28 @@
+#!/bin/sh -
+#
+# $FreeBSD$
+# Do alpha specific processing
+#
+
+echo -n 'Initial rc.alpha initialization:'
+
+# Start the Alpha OSF/1 binary compatibility if requested.
+#
+case ${osf1_enable} in
+[Yy][Ee][Ss])
+ echo -n ' OSF/1'
+ if ! kldstat -v | grep osf1_ecoff > /dev/null; then
+ kldload osf1 > /dev/null 2>&1
+ fi
+ ;;
+esac
+
+# knob for wether or not we should print out unaligned access warnings
+#
+case ${unaligned_print} in
+[Nn][Oo])
+ sysctl machdep.unaligned_print=0
+ ;;
+esac
+
+echo '.'
diff --git a/etc/etc.alpha/ttys b/etc/etc.alpha/ttys
new file mode 100644
index 0000000..169d40c
--- /dev/null
+++ b/etc/etc.alpha/ttys
@@ -0,0 +1,309 @@
+#
+# $FreeBSD$
+# @(#)ttys 5.1 (Berkeley) 4/17/89
+#
+# This file specifies various information about terminals on the system.
+# It is used by several different programs. Common entries for the
+# various columns include:
+#
+# name The name of the terminal device.
+#
+# getty The program to start running on the terminal. Typically a
+# getty program, as the name implies. Other common entries
+# include none, when no getty is needed, and xdm, to start the
+# X Window System.
+#
+# type The initial terminal type for this port. For hardwired
+# terminal lines, this will contain the type of terminal used.
+# For virtual consoles, the correct type is typically cons25, but
+# vt220 will work better if you need interoperability with other
+# systems like Solaris or GNU/Linux.
+# Other common values include network for network connections on
+# pseudo-terminals, dialup for incoming modem ports, and unknown
+# when the terminal type cannot be predetermined.
+#
+# status Must be on or off. If on, init will run the getty program on
+# the specified port. If the word "secure" appears, this tty
+# allows root login.
+#
+# name getty type status comments
+#
+# If console is marked "insecure", then init will ask for the root password
+# when going to single-user mode.
+console none unknown off secure
+#
+ttyv0 "/usr/libexec/getty Pc" cons25 on secure
+# Virtual terminals
+ttyv1 "/usr/libexec/getty Pc" cons25 on secure
+ttyv2 "/usr/libexec/getty Pc" cons25 on secure
+ttyv3 "/usr/libexec/getty Pc" cons25 on secure
+ttyv4 "/usr/libexec/getty Pc" cons25 on secure
+ttyv5 "/usr/libexec/getty Pc" cons25 on secure
+ttyv6 "/usr/libexec/getty Pc" cons25 on secure
+ttyv7 "/usr/libexec/getty Pc" cons25 on secure
+ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
+# Serial terminals
+# serial console for AlphaServer 8200 and 8400 ("TurboLaser")
+#zs0 "/usr/libexec/getty std.9600" vt100 on secure
+# The 'dialup' keyword identifies dialin lines to login, fingerd etc.
+ttyd0 "/usr/libexec/getty std.9600" vt100 on secure
+ttyd1 "/usr/libexec/getty std.9600" dialup off secure
+ttyd2 "/usr/libexec/getty std.9600" dialup off secure
+ttyd3 "/usr/libexec/getty std.9600" dialup off secure
+# Pseudo terminals
+ttyp0 none network
+ttyp1 none network
+ttyp2 none network
+ttyp3 none network
+ttyp4 none network
+ttyp5 none network
+ttyp6 none network
+ttyp7 none network
+ttyp8 none network
+ttyp9 none network
+ttypa none network
+ttypb none network
+ttypc none network
+ttypd none network
+ttype none network
+ttypf none network
+ttypg none network
+ttyph none network
+ttypi none network
+ttypj none network
+ttypk none network
+ttypl none network
+ttypm none network
+ttypn none network
+ttypo none network
+ttypp none network
+ttypq none network
+ttypr none network
+ttyps none network
+ttypt none network
+ttypu none network
+ttypv none network
+ttyq0 none network
+ttyq1 none network
+ttyq2 none network
+ttyq3 none network
+ttyq4 none network
+ttyq5 none network
+ttyq6 none network
+ttyq7 none network
+ttyq8 none network
+ttyq9 none network
+ttyqa none network
+ttyqb none network
+ttyqc none network
+ttyqd none network
+ttyqe none network
+ttyqf none network
+ttyqg none network
+ttyqh none network
+ttyqi none network
+ttyqj none network
+ttyqk none network
+ttyql none network
+ttyqm none network
+ttyqn none network
+ttyqo none network
+ttyqp none network
+ttyqq none network
+ttyqr none network
+ttyqs none network
+ttyqt none network
+ttyqu none network
+ttyqv none network
+ttyr0 none network
+ttyr1 none network
+ttyr2 none network
+ttyr3 none network
+ttyr4 none network
+ttyr5 none network
+ttyr6 none network
+ttyr7 none network
+ttyr8 none network
+ttyr9 none network
+ttyra none network
+ttyrb none network
+ttyrc none network
+ttyrd none network
+ttyre none network
+ttyrf none network
+ttyrg none network
+ttyrh none network
+ttyri none network
+ttyrj none network
+ttyrk none network
+ttyrl none network
+ttyrm none network
+ttyrn none network
+ttyro none network
+ttyrp none network
+ttyrq none network
+ttyrr none network
+ttyrs none network
+ttyrt none network
+ttyru none network
+ttyrv none network
+ttys0 none network
+ttys1 none network
+ttys2 none network
+ttys3 none network
+ttys4 none network
+ttys5 none network
+ttys6 none network
+ttys7 none network
+ttys8 none network
+ttys9 none network
+ttysa none network
+ttysb none network
+ttysc none network
+ttysd none network
+ttyse none network
+ttysf none network
+ttysg none network
+ttysh none network
+ttysi none network
+ttysj none network
+ttysk none network
+ttysl none network
+ttysm none network
+ttysn none network
+ttyso none network
+ttysp none network
+ttysq none network
+ttysr none network
+ttyss none network
+ttyst none network
+ttysu none network
+ttysv none network
+ttyP0 none network
+ttyP1 none network
+ttyP2 none network
+ttyP3 none network
+ttyP4 none network
+ttyP5 none network
+ttyP6 none network
+ttyP7 none network
+ttyP8 none network
+ttyP9 none network
+ttyPa none network
+ttyPb none network
+ttyPc none network
+ttyPd none network
+ttyPe none network
+ttyPf none network
+ttyPg none network
+ttyPh none network
+ttyPi none network
+ttyPj none network
+ttyPk none network
+ttyPl none network
+ttyPm none network
+ttyPn none network
+ttyPo none network
+ttyPp none network
+ttyPq none network
+ttyPr none network
+ttyPs none network
+ttyPt none network
+ttyPu none network
+ttyPv none network
+ttyQ0 none network
+ttyQ1 none network
+ttyQ2 none network
+ttyQ3 none network
+ttyQ4 none network
+ttyQ5 none network
+ttyQ6 none network
+ttyQ7 none network
+ttyQ8 none network
+ttyQ9 none network
+ttyQa none network
+ttyQb none network
+ttyQc none network
+ttyQd none network
+ttyQe none network
+ttyQf none network
+ttyQg none network
+ttyQh none network
+ttyQi none network
+ttyQj none network
+ttyQk none network
+ttyQl none network
+ttyQm none network
+ttyQn none network
+ttyQo none network
+ttyQp none network
+ttyQq none network
+ttyQr none network
+ttyQs none network
+ttyQt none network
+ttyQu none network
+ttyQv none network
+ttyR0 none network
+ttyR1 none network
+ttyR2 none network
+ttyR3 none network
+ttyR4 none network
+ttyR5 none network
+ttyR6 none network
+ttyR7 none network
+ttyR8 none network
+ttyR9 none network
+ttyRa none network
+ttyRb none network
+ttyRc none network
+ttyRd none network
+ttyRe none network
+ttyRf none network
+ttyRg none network
+ttyRh none network
+ttyRi none network
+ttyRj none network
+ttyRk none network
+ttyRl none network
+ttyRm none network
+ttyRn none network
+ttyRo none network
+ttyRp none network
+ttyRq none network
+ttyRr none network
+ttyRs none network
+ttyRt none network
+ttyRu none network
+ttyRv none network
+ttyS0 none network
+ttyS1 none network
+ttyS2 none network
+ttyS3 none network
+ttyS4 none network
+ttyS5 none network
+ttyS6 none network
+ttyS7 none network
+ttyS8 none network
+ttyS9 none network
+ttySa none network
+ttySb none network
+ttySc none network
+ttySd none network
+ttySe none network
+ttySf none network
+ttySg none network
+ttySh none network
+ttySi none network
+ttySj none network
+ttySk none network
+ttySl none network
+ttySm none network
+ttySn none network
+ttySo none network
+ttySp none network
+ttySq none network
+ttySr none network
+ttySs none network
+ttySt none network
+ttySu none network
+ttySv none network
diff --git a/etc/etc.amd64/rc.amd64 b/etc/etc.amd64/rc.amd64
new file mode 100644
index 0000000..d3c12ae
--- /dev/null
+++ b/etc/etc.amd64/rc.amd64
@@ -0,0 +1,54 @@
+#!/bin/sh -
+#
+# $FreeBSD$
+# Do i386 specific processing
+#
+
+echo -n 'Initial rc.i386 initialization:'
+
+case ${apm_enable} in
+[Yy][Ee][Ss])
+ echo -n ' apm'
+ apm -e enable > /dev/null 2>&1
+ APM_DONE=yes
+ ;;
+esac
+
+case ${apmd_enable} in
+[Yy][Ee][Ss])
+ case ${APM_DONE} in
+ '')
+ echo -n ' apm'
+ apm -e enable > /dev/null 2>&1
+ ;;
+ esac
+
+ echo -n ' apmd'; apmd ${apmd_flags}
+ ;;
+esac
+
+# Start the SCO binary emulation if requested.
+#
+case ${ibcs2_enable} in
+[Yy][Ee][Ss])
+ echo -n ' ibcs2'
+ kldload ibcs2 > /dev/null 2>&1
+ case ${ibcs2_loaders} in
+ [Nn][Oo])
+ ;;
+ *)
+ for i in ${ibcs2_loaders}; do
+ kldload ibcs2_$i > /dev/null 2>&1
+ done
+ ;;
+ esac
+ ;;
+esac
+
+case ${xtend_enable} in
+[Yy][Ee][Ss])
+ echo -n ' xtend'; /usr/libexec/xtend
+ ;;
+esac
+
+echo '.'
diff --git a/etc/etc.amd64/ttys b/etc/etc.amd64/ttys
new file mode 100644
index 0000000..1e63d4b
--- /dev/null
+++ b/etc/etc.amd64/ttys
@@ -0,0 +1,307 @@
+#
+# $FreeBSD$
+# @(#)ttys 5.1 (Berkeley) 4/17/89
+#
+# This file specifies various information about terminals on the system.
+# It is used by several different programs. Common entries for the
+# various columns include:
+#
+# name The name of the terminal device.
+#
+# getty The program to start running on the terminal. Typically a
+# getty program, as the name implies. Other common entries
+# include none, when no getty is needed, and xdm, to start the
+# X Window System.
+#
+# type The initial terminal type for this port. For hardwired
+# terminal lines, this will contain the type of terminal used.
+# For virtual consoles, the correct type is typically cons25, but
+# vt220 will work better if you need interoperability with other
+# systems like Solaris or GNU/Linux.
+# Other common values include network for network connections on
+# pseudo-terminals, dialup for incoming modem ports, and unknown
+# when the terminal type cannot be predetermined.
+#
+# status Must be on or off. If on, init will run the getty program on
+# the specified port. If the word "secure" appears, this tty
+# allows root login.
+#
+# name getty type status comments
+#
+# If console is marked "insecure", then init will ask for the root password
+# when going to single-user mode.
+console none unknown off secure
+#
+ttyv0 "/usr/libexec/getty Pc" cons25 on secure
+# Virtual terminals
+ttyv1 "/usr/libexec/getty Pc" cons25 on secure
+ttyv2 "/usr/libexec/getty Pc" cons25 on secure
+ttyv3 "/usr/libexec/getty Pc" cons25 on secure
+ttyv4 "/usr/libexec/getty Pc" cons25 on secure
+ttyv5 "/usr/libexec/getty Pc" cons25 on secure
+ttyv6 "/usr/libexec/getty Pc" cons25 on secure
+ttyv7 "/usr/libexec/getty Pc" cons25 on secure
+ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
+# Serial terminals
+# The 'dialup' keyword identifies dialin lines to login, fingerd etc.
+ttyd0 "/usr/libexec/getty std.9600" dialup off secure
+ttyd1 "/usr/libexec/getty std.9600" dialup off secure
+ttyd2 "/usr/libexec/getty std.9600" dialup off secure
+ttyd3 "/usr/libexec/getty std.9600" dialup off secure
+# Pseudo terminals
+ttyp0 none network
+ttyp1 none network
+ttyp2 none network
+ttyp3 none network
+ttyp4 none network
+ttyp5 none network
+ttyp6 none network
+ttyp7 none network
+ttyp8 none network
+ttyp9 none network
+ttypa none network
+ttypb none network
+ttypc none network
+ttypd none network
+ttype none network
+ttypf none network
+ttypg none network
+ttyph none network
+ttypi none network
+ttypj none network
+ttypk none network
+ttypl none network
+ttypm none network
+ttypn none network
+ttypo none network
+ttypp none network
+ttypq none network
+ttypr none network
+ttyps none network
+ttypt none network
+ttypu none network
+ttypv none network
+ttyq0 none network
+ttyq1 none network
+ttyq2 none network
+ttyq3 none network
+ttyq4 none network
+ttyq5 none network
+ttyq6 none network
+ttyq7 none network
+ttyq8 none network
+ttyq9 none network
+ttyqa none network
+ttyqb none network
+ttyqc none network
+ttyqd none network
+ttyqe none network
+ttyqf none network
+ttyqg none network
+ttyqh none network
+ttyqi none network
+ttyqj none network
+ttyqk none network
+ttyql none network
+ttyqm none network
+ttyqn none network
+ttyqo none network
+ttyqp none network
+ttyqq none network
+ttyqr none network
+ttyqs none network
+ttyqt none network
+ttyqu none network
+ttyqv none network
+ttyr0 none network
+ttyr1 none network
+ttyr2 none network
+ttyr3 none network
+ttyr4 none network
+ttyr5 none network
+ttyr6 none network
+ttyr7 none network
+ttyr8 none network
+ttyr9 none network
+ttyra none network
+ttyrb none network
+ttyrc none network
+ttyrd none network
+ttyre none network
+ttyrf none network
+ttyrg none network
+ttyrh none network
+ttyri none network
+ttyrj none network
+ttyrk none network
+ttyrl none network
+ttyrm none network
+ttyrn none network
+ttyro none network
+ttyrp none network
+ttyrq none network
+ttyrr none network
+ttyrs none network
+ttyrt none network
+ttyru none network
+ttyrv none network
+ttys0 none network
+ttys1 none network
+ttys2 none network
+ttys3 none network
+ttys4 none network
+ttys5 none network
+ttys6 none network
+ttys7 none network
+ttys8 none network
+ttys9 none network
+ttysa none network
+ttysb none network
+ttysc none network
+ttysd none network
+ttyse none network
+ttysf none network
+ttysg none network
+ttysh none network
+ttysi none network
+ttysj none network
+ttysk none network
+ttysl none network
+ttysm none network
+ttysn none network
+ttyso none network
+ttysp none network
+ttysq none network
+ttysr none network
+ttyss none network
+ttyst none network
+ttysu none network
+ttysv none network
+ttyP0 none network
+ttyP1 none network
+ttyP2 none network
+ttyP3 none network
+ttyP4 none network
+ttyP5 none network
+ttyP6 none network
+ttyP7 none network
+ttyP8 none network
+ttyP9 none network
+ttyPa none network
+ttyPb none network
+ttyPc none network
+ttyPd none network
+ttyPe none network
+ttyPf none network
+ttyPg none network
+ttyPh none network
+ttyPi none network
+ttyPj none network
+ttyPk none network
+ttyPl none network
+ttyPm none network
+ttyPn none network
+ttyPo none network
+ttyPp none network
+ttyPq none network
+ttyPr none network
+ttyPs none network
+ttyPt none network
+ttyPu none network
+ttyPv none network
+ttyQ0 none network
+ttyQ1 none network
+ttyQ2 none network
+ttyQ3 none network
+ttyQ4 none network
+ttyQ5 none network
+ttyQ6 none network
+ttyQ7 none network
+ttyQ8 none network
+ttyQ9 none network
+ttyQa none network
+ttyQb none network
+ttyQc none network
+ttyQd none network
+ttyQe none network
+ttyQf none network
+ttyQg none network
+ttyQh none network
+ttyQi none network
+ttyQj none network
+ttyQk none network
+ttyQl none network
+ttyQm none network
+ttyQn none network
+ttyQo none network
+ttyQp none network
+ttyQq none network
+ttyQr none network
+ttyQs none network
+ttyQt none network
+ttyQu none network
+ttyQv none network
+ttyR0 none network
+ttyR1 none network
+ttyR2 none network
+ttyR3 none network
+ttyR4 none network
+ttyR5 none network
+ttyR6 none network
+ttyR7 none network
+ttyR8 none network
+ttyR9 none network
+ttyRa none network
+ttyRb none network
+ttyRc none network
+ttyRd none network
+ttyRe none network
+ttyRf none network
+ttyRg none network
+ttyRh none network
+ttyRi none network
+ttyRj none network
+ttyRk none network
+ttyRl none network
+ttyRm none network
+ttyRn none network
+ttyRo none network
+ttyRp none network
+ttyRq none network
+ttyRr none network
+ttyRs none network
+ttyRt none network
+ttyRu none network
+ttyRv none network
+ttyS0 none network
+ttyS1 none network
+ttyS2 none network
+ttyS3 none network
+ttyS4 none network
+ttyS5 none network
+ttyS6 none network
+ttyS7 none network
+ttyS8 none network
+ttyS9 none network
+ttySa none network
+ttySb none network
+ttySc none network
+ttySd none network
+ttySe none network
+ttySf none network
+ttySg none network
+ttySh none network
+ttySi none network
+ttySj none network
+ttySk none network
+ttySl none network
+ttySm none network
+ttySn none network
+ttySo none network
+ttySp none network
+ttySq none network
+ttySr none network
+ttySs none network
+ttySt none network
+ttySu none network
+ttySv none network
diff --git a/etc/etc.i386/disktab b/etc/etc.i386/disktab
new file mode 100644
index 0000000..a5afde3
--- /dev/null
+++ b/etc/etc.i386/disktab
@@ -0,0 +1,235 @@
+# $FreeBSD$
+#
+# 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, ns*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)
+#
+
+#
+# Floppy formats:
+#
+# To make a filesystem on a floppy:
+# fdformat [-f <size>] fd<drive>[.<size>]
+# disklabel -B -r -w fd<drive>[.<size>] fd<size>
+# newfs <opts> fd<drive>[.<size>]
+#
+# with <opts>:
+# -t 2 - two heads
+# -u 9|15|18 - sectors per track
+# (using the default value of 1/4096 is not much useful for floppies)
+# -l 1 - interleave 1 (for most floppies)
+# -i 65536 - bytes of data per i-node
+# (the default -i value will render you with a floppy wasting way
+# too much space in i-node areas)
+#
+
+fd360:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#9:nc#40:\
+ :pa#720:oa#0:ba#4096:fa#512:\
+ :pb#720:ob#0:bb#4096:fb#512:\
+ :pc#720:oc#0:bc#4096:fc#512:
+
+fd720:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#9:nc#80:\
+ :pa#1440:oa#0:ba#4096:fa#512:\
+ :pb#1440:ob#0:bb#4096:fb#512:\
+ :pc#1440:oc#0:bc#4096:fc#512:
+
+fd1200|floppy5|5in|5.25in High Density Floppy:\
+ :ty=floppy:se#512:nt#2:rm#360:ns#15:nc#80:\
+ :pa#2400:oa#0:ba#4096:fa#512:\
+ :pb#2400:ob#0:bb#4096:fb#512:\
+ :pc#2400:oc#0:bc#4096:fc#512:
+
+fd1440|floppy|floppy3|3in|3.5in High Density Floppy:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#18:nc#80:\
+ :pa#2880:oa#0:ba#4096:fa#512:\
+ :pb#2880:ob#0:bb#4096:fb#512:\
+ :pc#2880:oc#0:bc#4096:fc#512:
+
+#
+# Stressed floppy-formats. No guarantees given.
+#
+
+fd800:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#10:nc#80:\
+ :pa#1600:oa#0:ba#4096:fa#512:\
+ :pb#1600:ob#0:bb#4096:fb#512:\
+ :pc#1600:oc#0:bc#4096:fc#512:
+
+fd820:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#10:nc#82:\
+ :pa#1640:oa#0:ba#4096:fa#512:\
+ :pb#1640:ob#0:bb#4096:fb#512:\
+ :pc#1640:oc#0:bc#4096:fc#512:
+
+fd1480:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#18:nc#82:\
+ :pa#2952:oa#0:ba#4096:fa#512:\
+ :pb#2952:ob#0:bb#4096:fb#512:\
+ :pc#2952:oc#0:bc#4096:fc#512:
+
+fd1720:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#21:nc#82:\
+ :pa#3444:oa#0:ba#4096:fa#512:\
+ :pb#3444:ob#0:bb#4096:fb#512:\
+ :pc#3444:oc#0:bc#4096:fc#512:
+
+#
+# LS-120 floppy-format.
+#
+fd120m|floppy120|floppy120m|3.5in LS-120 Floppy:\
+ :ty=floppy:se#512:nt#8:rm#300:ns#32:nc#963:\
+ :pa#246528:oa#0:ba#4096:fa#512:\
+ :pb#246528:ob#0:bb#4096:fb#512:\
+ :pc#246528:oc#0:bc#4096:fc#512:
+
+#
+# Harddisk formats
+#
+qp120at|Quantum Peripherals 120MB IDE:\
+ :dt=ESDI:ty=winchester:se#512:nt#9:ns#32:nc#813:sf: \
+ :pa#13824:oa#0:ta=4.2BSD:ba#4096:fa#512: \
+ :pb#13824:ob#13824:tb=swap: \
+ :pc#234144:oc#0: \
+ :ph#206496:oh#27648:th=4.2BSD:bh#4096:fh#512:
+
+pan60|Panasonic Laptop's 60MB IDE:\
+ :dt=ST506:ty=winchester:se#512:nt#13:ns#17:nc#565:\
+ :pa#13260:oa#0:ta=4.2BSD:ba#4096:fa#512:\
+ :pb#13260:ob#13260:tb=swap: \
+ :pc#124865:oc#0: \
+ :ph#97682:oh#26520:th=4.2BSD:bh#4096:fh#512:
+
+mk156|toshiba156|Toshiba MK156 156Mb:\
+ :dt=SCSI:ty=winchester:se#512:nt#10:ns#35:nc#825:\
+ :pa#15748:oa#0:ba#4096:fa#512:ta=4.2BSD:\
+ :pb#15748:ob#15748:tb=swap:\
+ :pc#288750:oc#0:\
+ :ph#257250:oh#31500:bh#4096:fh#512:th=4.2BSD:
+
+cp3100|Connor Peripherals 100MB IDE:\
+ :dt=ST506:ty=winchester:se#512:nt#8:ns#33:nc#766: \
+ :pa#12144:oa#0:ta=4.2BSD:ba#4096:fa#512: \
+ :pb#12144:ob#12144:tb=swap: \
+ :pc#202224:oc#0: \
+ :ph#177936:oh#24288:th=4.2BSD:bh#4096:fh#512:
+
+# a == root
+# b == swap
+# c == d == whole disk
+# e == /var
+# f == scratch
+# h == /usr
+
+cp3100new|Connor Peripherals 100MB IDE, with a different configuration:\
+ :dt=ST506:ty=winchester:se#512:nt#8:ns#33:nc#766: \
+ :pa#15840:oa#0:ta=4.2BSD:ba#4096:fa#512: \
+ :pb#24288:ob#15840:tb=swap: \
+ :pc#202224:oc#0: \
+ :pd#202224:od#0: \
+ :pe#15840:oe#40128:te=4.2BSD:be#4096:fe#512: \
+ :pg#15840:og#55968:tg=4.2BSD:bg#4096:fg#512: \
+ :ph#130416:oh#71808:th=4.2BSD:bh#4096:fh#512:
+
+maxtor4380|Maxtor XT4380E ESDI :\
+ :dt=ESDI:ty=winchester:se#512:nt#15:ns#36:nc#1222:sf: \
+ :pa#21600:oa#0:ta=4.2BSD:ba#4096:fa#512:\
+ :pb#21600:ob#21600:tb=swap: \
+ :pc#659880:oc#0: \
+ :pd#216000:od#53200:td=4.2BSD:bd#4096:fd#512: \
+ :ph#398520:oh#269200:th=4.2BSD:bh#4096:fh#512:
+
+miniscribe9380|compaq38|Miniscribe 9380 ESDI :\
+ :ty=winchester:dt=ESDI:se#512:nt#15:ns#35:nc#1223:rm#3600:sf: \
+ :pa#21000:oa#0:ba#8192:fa#1024:ta=4.2BSD: \
+ :pb#42000:ob#21000:tb=swap: \
+ :pc#642075:oc#0: \
+ :pd#21000:od#63000:bd#8192:fd#1024:td=4.2BSD: \
+ :ph#556500:oh#84000:bh#8192:fh#1024:th=4.2BSD:
+
+ida4|compaq88|Compaq IDA (4 drives) :\
+ :ty=winchester:dt=IDA:se#512:nt#16:ns#63:nc#1644:rm#3600:\
+ :pa#20160:oa#0:ba#8192:fa#1024:ta=4.2BSD: \
+ :pb#80640:ob#20160:tb=swap: \
+ :pc#1659168:oc#0: \
+ :pd#201600:od#100800:bd#8192:fd#1024:td=4.2BSD: \
+ :pe#20160:oe#1310400:be#8192:fe#1024:te=4.2BSD: \
+ :ph#1008000:oh#302400:bh#8192:fh#1024:th=4.2BSD: \
+ :pg#302400:og#1330560:bg#4096:fg#512:tg=4.2BSD:
+
+fuji513|Fujitsu M22XXXX: \
+ :ty=winchester:dt=ESDI:se#512:nt#16:ns#63:nc#954:rm#3600:\
+ :pa#20160:oa#82656:ba#4096:fa#512:ta=4.2BSD: \
+ :pb#40320:ob#102816:tb=swap: \
+ :pc#961632:oc#0: \
+ :ph#656208:oh#143136:bh#4096:fh#512:th=4.2BSD:
+
+sony650|Sony 650 MB MOD|\
+ :ty=removable:dt=SCSI:se#512:nt#1:ns#31:nc#18600:ts#1:rm#4800:\
+ :pc#576600:oc#0:\
+ :pa#576600:oa#0:ta=4.2BSD:ba#8192:fa#1024:
+
+mta3230|mo230|IBM MTA-3230 230 Meg 3.5inch Magneto-Optical:\
+ :ty=removeable:dt=SCSI:rm#3600:\
+ :se#512:nt#64:ns#32:nc#216:sc#2048:su#444384:\
+ :pa#444384:oa#0:ba#4096:fa#0:ta=4.2BSD:\
+ :pc#444384:oc#0:
+
+minimum:ty=mfs:se#512:nt#1:rm#300:\
+ :ns#2880:nc#1:\
+ :pa#2880:oa#0:ba#4096:fa#512:\
+ :pc#2880:oc#0:bc#4096:fc#512:
+
+minimum2:ty=mfs:se#512:nt#1:rm#300:\
+ :ns#5760:nc#1:\
+ :pa#5760:oa#0:ba#4096:fa#512:\
+ :pc#5760:oc#0:bc#4096:fc#512:
+
+minimum3:ty=mfs:se#512:nt#1:rm#300:\
+ :ns#8640:nc#1:\
+ :pa#8640:oa#0:ba#4096:fa#512:\
+ :pc#8640:oc#0:bc#4096:fc#512:
+
+zip100|zip 100:\
+ :ty=removable:se#512:nc#96:nt#64:ns#32:\
+ :pa#196608:oa#0:ba#4096:fa#512:\
+ :pb#196608:ob#0:bb#4096:fb#512:\
+ :pc#196608:oc#0:bc#4096:fc#512:
+
+zip250|zip 250:\
+ :ty=removable:se#512:nc#239:nt#64:ns#32:\
+ :pa#489472:oa#0:ba#4096:fa#512:\
+ :pb#489472:ob#0:bb#4096:fb#512:\
+ :pc#489472:oc#0:bc#4096:fc#512:
+
+orb2200|orb22|orb:\
+ :ty=removable:ns#63:nt#128:nc#4273:sc#1008:su#4307184:se#512:\
+ :pa#4307184:oa#0:ba#8192:fa#1024:\
+ :pc#4307184:oc#0:bc#8192:fc#1024:
+
diff --git a/etc/etc.i386/rc.i386 b/etc/etc.i386/rc.i386
new file mode 100644
index 0000000..d3c12ae
--- /dev/null
+++ b/etc/etc.i386/rc.i386
@@ -0,0 +1,54 @@
+#!/bin/sh -
+#
+# $FreeBSD$
+# Do i386 specific processing
+#
+
+echo -n 'Initial rc.i386 initialization:'
+
+case ${apm_enable} in
+[Yy][Ee][Ss])
+ echo -n ' apm'
+ apm -e enable > /dev/null 2>&1
+ APM_DONE=yes
+ ;;
+esac
+
+case ${apmd_enable} in
+[Yy][Ee][Ss])
+ case ${APM_DONE} in
+ '')
+ echo -n ' apm'
+ apm -e enable > /dev/null 2>&1
+ ;;
+ esac
+
+ echo -n ' apmd'; apmd ${apmd_flags}
+ ;;
+esac
+
+# Start the SCO binary emulation if requested.
+#
+case ${ibcs2_enable} in
+[Yy][Ee][Ss])
+ echo -n ' ibcs2'
+ kldload ibcs2 > /dev/null 2>&1
+ case ${ibcs2_loaders} in
+ [Nn][Oo])
+ ;;
+ *)
+ for i in ${ibcs2_loaders}; do
+ kldload ibcs2_$i > /dev/null 2>&1
+ done
+ ;;
+ esac
+ ;;
+esac
+
+case ${xtend_enable} in
+[Yy][Ee][Ss])
+ echo -n ' xtend'; /usr/libexec/xtend
+ ;;
+esac
+
+echo '.'
diff --git a/etc/etc.i386/ttys b/etc/etc.i386/ttys
new file mode 100644
index 0000000..1e63d4b
--- /dev/null
+++ b/etc/etc.i386/ttys
@@ -0,0 +1,307 @@
+#
+# $FreeBSD$
+# @(#)ttys 5.1 (Berkeley) 4/17/89
+#
+# This file specifies various information about terminals on the system.
+# It is used by several different programs. Common entries for the
+# various columns include:
+#
+# name The name of the terminal device.
+#
+# getty The program to start running on the terminal. Typically a
+# getty program, as the name implies. Other common entries
+# include none, when no getty is needed, and xdm, to start the
+# X Window System.
+#
+# type The initial terminal type for this port. For hardwired
+# terminal lines, this will contain the type of terminal used.
+# For virtual consoles, the correct type is typically cons25, but
+# vt220 will work better if you need interoperability with other
+# systems like Solaris or GNU/Linux.
+# Other common values include network for network connections on
+# pseudo-terminals, dialup for incoming modem ports, and unknown
+# when the terminal type cannot be predetermined.
+#
+# status Must be on or off. If on, init will run the getty program on
+# the specified port. If the word "secure" appears, this tty
+# allows root login.
+#
+# name getty type status comments
+#
+# If console is marked "insecure", then init will ask for the root password
+# when going to single-user mode.
+console none unknown off secure
+#
+ttyv0 "/usr/libexec/getty Pc" cons25 on secure
+# Virtual terminals
+ttyv1 "/usr/libexec/getty Pc" cons25 on secure
+ttyv2 "/usr/libexec/getty Pc" cons25 on secure
+ttyv3 "/usr/libexec/getty Pc" cons25 on secure
+ttyv4 "/usr/libexec/getty Pc" cons25 on secure
+ttyv5 "/usr/libexec/getty Pc" cons25 on secure
+ttyv6 "/usr/libexec/getty Pc" cons25 on secure
+ttyv7 "/usr/libexec/getty Pc" cons25 on secure
+ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
+# Serial terminals
+# The 'dialup' keyword identifies dialin lines to login, fingerd etc.
+ttyd0 "/usr/libexec/getty std.9600" dialup off secure
+ttyd1 "/usr/libexec/getty std.9600" dialup off secure
+ttyd2 "/usr/libexec/getty std.9600" dialup off secure
+ttyd3 "/usr/libexec/getty std.9600" dialup off secure
+# Pseudo terminals
+ttyp0 none network
+ttyp1 none network
+ttyp2 none network
+ttyp3 none network
+ttyp4 none network
+ttyp5 none network
+ttyp6 none network
+ttyp7 none network
+ttyp8 none network
+ttyp9 none network
+ttypa none network
+ttypb none network
+ttypc none network
+ttypd none network
+ttype none network
+ttypf none network
+ttypg none network
+ttyph none network
+ttypi none network
+ttypj none network
+ttypk none network
+ttypl none network
+ttypm none network
+ttypn none network
+ttypo none network
+ttypp none network
+ttypq none network
+ttypr none network
+ttyps none network
+ttypt none network
+ttypu none network
+ttypv none network
+ttyq0 none network
+ttyq1 none network
+ttyq2 none network
+ttyq3 none network
+ttyq4 none network
+ttyq5 none network
+ttyq6 none network
+ttyq7 none network
+ttyq8 none network
+ttyq9 none network
+ttyqa none network
+ttyqb none network
+ttyqc none network
+ttyqd none network
+ttyqe none network
+ttyqf none network
+ttyqg none network
+ttyqh none network
+ttyqi none network
+ttyqj none network
+ttyqk none network
+ttyql none network
+ttyqm none network
+ttyqn none network
+ttyqo none network
+ttyqp none network
+ttyqq none network
+ttyqr none network
+ttyqs none network
+ttyqt none network
+ttyqu none network
+ttyqv none network
+ttyr0 none network
+ttyr1 none network
+ttyr2 none network
+ttyr3 none network
+ttyr4 none network
+ttyr5 none network
+ttyr6 none network
+ttyr7 none network
+ttyr8 none network
+ttyr9 none network
+ttyra none network
+ttyrb none network
+ttyrc none network
+ttyrd none network
+ttyre none network
+ttyrf none network
+ttyrg none network
+ttyrh none network
+ttyri none network
+ttyrj none network
+ttyrk none network
+ttyrl none network
+ttyrm none network
+ttyrn none network
+ttyro none network
+ttyrp none network
+ttyrq none network
+ttyrr none network
+ttyrs none network
+ttyrt none network
+ttyru none network
+ttyrv none network
+ttys0 none network
+ttys1 none network
+ttys2 none network
+ttys3 none network
+ttys4 none network
+ttys5 none network
+ttys6 none network
+ttys7 none network
+ttys8 none network
+ttys9 none network
+ttysa none network
+ttysb none network
+ttysc none network
+ttysd none network
+ttyse none network
+ttysf none network
+ttysg none network
+ttysh none network
+ttysi none network
+ttysj none network
+ttysk none network
+ttysl none network
+ttysm none network
+ttysn none network
+ttyso none network
+ttysp none network
+ttysq none network
+ttysr none network
+ttyss none network
+ttyst none network
+ttysu none network
+ttysv none network
+ttyP0 none network
+ttyP1 none network
+ttyP2 none network
+ttyP3 none network
+ttyP4 none network
+ttyP5 none network
+ttyP6 none network
+ttyP7 none network
+ttyP8 none network
+ttyP9 none network
+ttyPa none network
+ttyPb none network
+ttyPc none network
+ttyPd none network
+ttyPe none network
+ttyPf none network
+ttyPg none network
+ttyPh none network
+ttyPi none network
+ttyPj none network
+ttyPk none network
+ttyPl none network
+ttyPm none network
+ttyPn none network
+ttyPo none network
+ttyPp none network
+ttyPq none network
+ttyPr none network
+ttyPs none network
+ttyPt none network
+ttyPu none network
+ttyPv none network
+ttyQ0 none network
+ttyQ1 none network
+ttyQ2 none network
+ttyQ3 none network
+ttyQ4 none network
+ttyQ5 none network
+ttyQ6 none network
+ttyQ7 none network
+ttyQ8 none network
+ttyQ9 none network
+ttyQa none network
+ttyQb none network
+ttyQc none network
+ttyQd none network
+ttyQe none network
+ttyQf none network
+ttyQg none network
+ttyQh none network
+ttyQi none network
+ttyQj none network
+ttyQk none network
+ttyQl none network
+ttyQm none network
+ttyQn none network
+ttyQo none network
+ttyQp none network
+ttyQq none network
+ttyQr none network
+ttyQs none network
+ttyQt none network
+ttyQu none network
+ttyQv none network
+ttyR0 none network
+ttyR1 none network
+ttyR2 none network
+ttyR3 none network
+ttyR4 none network
+ttyR5 none network
+ttyR6 none network
+ttyR7 none network
+ttyR8 none network
+ttyR9 none network
+ttyRa none network
+ttyRb none network
+ttyRc none network
+ttyRd none network
+ttyRe none network
+ttyRf none network
+ttyRg none network
+ttyRh none network
+ttyRi none network
+ttyRj none network
+ttyRk none network
+ttyRl none network
+ttyRm none network
+ttyRn none network
+ttyRo none network
+ttyRp none network
+ttyRq none network
+ttyRr none network
+ttyRs none network
+ttyRt none network
+ttyRu none network
+ttyRv none network
+ttyS0 none network
+ttyS1 none network
+ttyS2 none network
+ttyS3 none network
+ttyS4 none network
+ttyS5 none network
+ttyS6 none network
+ttyS7 none network
+ttyS8 none network
+ttyS9 none network
+ttySa none network
+ttySb none network
+ttySc none network
+ttySd none network
+ttySe none network
+ttySf none network
+ttySg none network
+ttySh none network
+ttySi none network
+ttySj none network
+ttySk none network
+ttySl none network
+ttySm none network
+ttySn none network
+ttySo none network
+ttySp none network
+ttySq none network
+ttySr none network
+ttySs none network
+ttySt none network
+ttySu none network
+ttySv none network
diff --git a/etc/etc.ia64/disktab b/etc/etc.ia64/disktab
new file mode 100644
index 0000000..63a26e2
--- /dev/null
+++ b/etc/etc.ia64/disktab
@@ -0,0 +1,218 @@
+# $FreeBSD$
+#
+# 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, ns*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)
+#
+
+#
+# Floppy formats:
+#
+# To make a filesystem on a floppy:
+# fdformat [-f <size>] fd<drive>[.<size>]
+# disklabel -B -r -w fd<drive>[.<size>] fd<size>
+# newfs <opts> fd<drive>[.<size>]
+#
+# with <opts>:
+# -t 2 - two heads
+# -u 9|15|18 - sectors per track
+# (using the default value of 1/4096 is not much useful for floppies)
+# -l 1 - interleave 1 (for most floppies)
+# -i 65536 - bytes of data per i-node
+# (the default -i value will render you with a floppy wasting way
+# too much space in i-node areas)
+#
+
+fd360:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#9:nc#40:\
+ :pa#720:oa#0:ba#4096:fa#512:\
+ :pb#720:ob#0:bb#4096:fb#512:\
+ :pc#720:oc#0:bc#4096:fc#512:
+
+fd720:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#9:nc#80:\
+ :pa#1440:oa#0:ba#4096:fa#512:\
+ :pb#1440:ob#0:bb#4096:fb#512:\
+ :pc#1440:oc#0:bc#4096:fc#512:
+
+fd1200|floppy5|5in|5.25in High Density Floppy:\
+ :ty=floppy:se#512:nt#2:rm#360:ns#15:nc#80:\
+ :pa#2400:oa#0:ba#4096:fa#512:\
+ :pb#2400:ob#0:bb#4096:fb#512:\
+ :pc#2400:oc#0:bc#4096:fc#512:
+
+fd1440|floppy|floppy3|3in|3.5in High Density Floppy:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#18:nc#80:\
+ :pa#2880:oa#0:ba#4096:fa#512:\
+ :pb#2880:ob#0:bb#4096:fb#512:\
+ :pc#2880:oc#0:bc#4096:fc#512:
+
+#
+# Stressed floppy-formats. No guarantees given.
+#
+
+fd800:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#10:nc#80:\
+ :pa#1600:oa#0:ba#4096:fa#512:\
+ :pb#1600:ob#0:bb#4096:fb#512:\
+ :pc#1600:oc#0:bc#4096:fc#512:
+
+fd820:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#10:nc#82:\
+ :pa#1640:oa#0:ba#4096:fa#512:\
+ :pb#1640:ob#0:bb#4096:fb#512:\
+ :pc#1640:oc#0:bc#4096:fc#512:
+
+fd1480:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#18:nc#82:\
+ :pa#2952:oa#0:ba#4096:fa#512:\
+ :pb#2952:ob#0:bb#4096:fb#512:\
+ :pc#2952:oc#0:bc#4096:fc#512:
+
+fd1720:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#21:nc#82:\
+ :pa#3444:oa#0:ba#4096:fa#512:\
+ :pb#3444:ob#0:bb#4096:fb#512:\
+ :pc#3444:oc#0:bc#4096:fc#512:
+
+#
+# LS-120 floppy-format.
+#
+fd120m|floppy120|floppy120m|3.5in LS-120 Floppy:\
+ :ty=floppy:se#512:nt#8:rm#300:ns#32:nc#963:\
+ :pa#246528:oa#0:ba#4096:fa#512:\
+ :pb#246528:ob#0:bb#4096:fb#512:\
+ :pc#246528:oc#0:bc#4096:fc#512:
+
+#
+# Harddisk formats
+#
+qp120at|Quantum Peripherals 120MB IDE:\
+ :dt=ESDI:ty=winchester:se#512:nt#9:ns#32:nc#813:sf: \
+ :pa#13824:oa#0:ta=4.2BSD:ba#4096:fa#512: \
+ :pb#13824:ob#13824:tb=swap: \
+ :pc#234144:oc#0: \
+ :ph#206496:oh#27648:th=4.2BSD:bh#4096:fh#512:
+
+pan60|Panasonic Laptop's 60MB IDE:\
+ :dt=ST506:ty=winchester:se#512:nt#13:ns#17:nc#565:\
+ :pa#13260:oa#0:ta=4.2BSD:ba#4096:fa#512:\
+ :pb#13260:ob#13260:tb=swap: \
+ :pc#124865:oc#0: \
+ :ph#97682:oh#26520:th=4.2BSD:bh#4096:fh#512:
+
+mk156|toshiba156|Toshiba MK156 156Mb:\
+ :dt=SCSI:ty=winchester:se#512:nt#10:ns#35:nc#825:\
+ :pa#15748:oa#0:ba#4096:fa#512:ta=4.2BSD:\
+ :pb#15748:ob#15748:tb=swap:\
+ :pc#288750:oc#0:\
+ :ph#257250:oh#31500:bh#4096:fh#512:th=4.2BSD:
+
+cp3100|Connor Peripherals 100MB IDE:\
+ :dt=ST506:ty=winchester:se#512:nt#8:ns#33:nc#766: \
+ :pa#12144:oa#0:ta=4.2BSD:ba#4096:fa#512: \
+ :pb#12144:ob#12144:tb=swap: \
+ :pc#202224:oc#0: \
+ :ph#177936:oh#24288:th=4.2BSD:bh#4096:fh#512:
+
+# a == root
+# b == swap
+# c == d == whole disk
+# e == /var
+# f == scratch
+# h == /usr
+
+cp3100new|Connor Peripherals 100MB IDE, with a different configuration:\
+ :dt=ST506:ty=winchester:se#512:nt#8:ns#33:nc#766: \
+ :pa#15840:oa#0:ta=4.2BSD:ba#4096:fa#512: \
+ :pb#24288:ob#15840:tb=swap: \
+ :pc#202224:oc#0: \
+ :pd#202224:od#0: \
+ :pe#15840:oe#40128:te=4.2BSD:be#4096:fe#512: \
+ :pg#15840:og#55968:tg=4.2BSD:bg#4096:fg#512: \
+ :ph#130416:oh#71808:th=4.2BSD:bh#4096:fh#512:
+
+maxtor4380|Maxtor XT4380E ESDI :\
+ :dt=ESDI:ty=winchester:se#512:nt#15:ns#36:nc#1222:sf: \
+ :pa#21600:oa#0:ta=4.2BSD:ba#4096:fa#512:\
+ :pb#21600:ob#21600:tb=swap: \
+ :pc#659880:oc#0: \
+ :pd#216000:od#53200:td=4.2BSD:bd#4096:fd#512: \
+ :ph#398520:oh#269200:th=4.2BSD:bh#4096:fh#512:
+
+miniscribe9380|compaq38|Miniscribe 9380 ESDI :\
+ :ty=winchester:dt=ESDI:se#512:nt#15:ns#35:nc#1223:rm#3600:sf: \
+ :pa#21000:oa#0:ba#8192:fa#1024:ta=4.2BSD: \
+ :pb#42000:ob#21000:tb=swap: \
+ :pc#642075:oc#0: \
+ :pd#21000:od#63000:bd#8192:fd#1024:td=4.2BSD: \
+ :ph#556500:oh#84000:bh#8192:fh#1024:th=4.2BSD:
+
+ida4|compaq88|Compaq IDA (4 drives) :\
+ :ty=winchester:dt=IDA:se#512:nt#16:ns#63:nc#1644:rm#3600:\
+ :pa#20160:oa#0:ba#8192:fa#1024:ta=4.2BSD: \
+ :pb#80640:ob#20160:tb=swap: \
+ :pc#1659168:oc#0: \
+ :pd#201600:od#100800:bd#8192:fd#1024:td=4.2BSD: \
+ :pe#20160:oe#1310400:be#8192:fe#1024:te=4.2BSD: \
+ :ph#1008000:oh#302400:bh#8192:fh#1024:th=4.2BSD: \
+ :pg#302400:og#1330560:bg#4096:fg#512:tg=4.2BSD:
+
+fuji513|Fujitsu M22XXXX: \
+ :ty=winchester:dt=ESDI:se#512:nt#16:ns#63:nc#954:rm#3600:\
+ :pa#20160:oa#82656:ba#4096:fa#512:ta=4.2BSD: \
+ :pb#40320:ob#102816:tb=swap: \
+ :pc#961632:oc#0: \
+ :ph#656208:oh#143136:bh#4096:fh#512:th=4.2BSD:
+
+sony650|Sony 650 MB MOD|\
+ :ty=removable:dt=SCSI:se#512:nt#1:ns#31:nc#18600:ts#1:rm#4800:\
+ :pc#576600:oc#0:\
+ :pa#576600:oa#0:ta=4.2BSD:ba#8192:fa#1024:
+
+mta3230|mo230|IBM MTA-3230 230 Meg 3.5inch Magneto-Optical:\
+ :ty=removeable:dt=SCSI:rm#3600:\
+ :se#512:nt#64:ns#32:nc#216:sc#2048:su#444384:\
+ :pa#444384:oa#0:ba#4096:fa#0:ta=4.2BSD:\
+ :pc#444384:oc#0:
+
+minimum:ty=mfs:se#512:nt#1:rm#300:\
+ :ns#2880:nc#1:\
+ :pa#2880:oa#0:ba#4096:fa#512:\
+ :pc#2880:oc#0:bc#4096:fc#512:
+
+minimum2:ty=mfs:se#512:nt#1:rm#300:\
+ :ns#5760:nc#1:\
+ :pa#5760:oa#0:ba#4096:fa#512:\
+ :pc#5760:oc#0:bc#4096:fc#512:
+
+zip100|zip 100:\
+ :ty=removable:se#512:nc#96:nt#64:ns#32:\
+ :pa#196608:oa#0:ba#4096:fa#512:\
+ :pb#196608:ob#0:bb#4096:fb#512:\
+ :pc#196608:oc#0:bc#4096:fc#512:
diff --git a/etc/etc.ia64/rc.ia64 b/etc/etc.ia64/rc.ia64
new file mode 100644
index 0000000..ecde18e
--- /dev/null
+++ b/etc/etc.ia64/rc.ia64
@@ -0,0 +1,17 @@
+#!/bin/sh -
+#
+# $FreeBSD$
+# Do ia64 specific processing
+#
+
+echo -n 'Initial rc.ia64 initialization:'
+
+# knob for wether or not we should print out unaligned access warnings
+#
+case ${unaligned_print} in
+[Nn][Oo])
+ sysctl machdep.unaligned_print=0
+ ;;
+esac
+
+echo '.'
diff --git a/etc/etc.ia64/ttys b/etc/etc.ia64/ttys
new file mode 100644
index 0000000..c9ae95c
--- /dev/null
+++ b/etc/etc.ia64/ttys
@@ -0,0 +1,307 @@
+#
+# $FreeBSD$
+# @(#)ttys 5.1 (Berkeley) 4/17/89
+#
+# This file specifies various information about terminals on the system.
+# It is used by several different programs. Common entries for the
+# various columns include:
+#
+# name The name of the terminal device.
+#
+# getty The program to start running on the terminal. Typically a
+# getty program, as the name implies. Other common entries
+# include none, when no getty is needed, and xdm, to start the
+# X Window System.
+#
+# type The initial terminal type for this port. For hardwired
+# terminal lines, this will contain the type of terminal used.
+# For virtual consoles, the correct type is typically cons25, but
+# vt220 will work better if you need interoperability with other
+# systems like Solaris or GNU/Linux.
+# Other common values include network for network connections on
+# pseudo-terminals, dialup for incoming modem ports, and unknown
+# when the terminal type cannot be predetermined.
+#
+# status Must be on or off. If on, init will run the getty program on
+# the specified port. If the word "secure" appears, this tty
+# allows root login.
+#
+# name getty type status comments
+#
+# If console is marked "insecure", then init will ask for the root password
+# when going to single-user mode.
+console none unknown off secure
+#
+ttyv0 "/usr/libexec/getty Pc" cons25 on secure
+# Virtual terminals
+ttyv1 "/usr/libexec/getty Pc" cons25 on secure
+ttyv2 "/usr/libexec/getty Pc" cons25 on secure
+ttyv3 "/usr/libexec/getty Pc" cons25 on secure
+ttyv4 "/usr/libexec/getty Pc" cons25 on secure
+ttyv5 "/usr/libexec/getty Pc" cons25 on secure
+ttyv6 "/usr/libexec/getty Pc" cons25 on secure
+ttyv7 "/usr/libexec/getty Pc" cons25 on secure
+ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
+# Serial terminals
+# The 'dialup' keyword identifies dialin lines to login, fingerd etc.
+ttyd0 "/usr/libexec/getty std.9600" vt100 on secure
+ttyd1 "/usr/libexec/getty std.9600" dialup off secure
+ttyd2 "/usr/libexec/getty std.9600" dialup off secure
+ttyd3 "/usr/libexec/getty std.9600" dialup off secure
+# Pseudo terminals
+ttyp0 none network
+ttyp1 none network
+ttyp2 none network
+ttyp3 none network
+ttyp4 none network
+ttyp5 none network
+ttyp6 none network
+ttyp7 none network
+ttyp8 none network
+ttyp9 none network
+ttypa none network
+ttypb none network
+ttypc none network
+ttypd none network
+ttype none network
+ttypf none network
+ttypg none network
+ttyph none network
+ttypi none network
+ttypj none network
+ttypk none network
+ttypl none network
+ttypm none network
+ttypn none network
+ttypo none network
+ttypp none network
+ttypq none network
+ttypr none network
+ttyps none network
+ttypt none network
+ttypu none network
+ttypv none network
+ttyq0 none network
+ttyq1 none network
+ttyq2 none network
+ttyq3 none network
+ttyq4 none network
+ttyq5 none network
+ttyq6 none network
+ttyq7 none network
+ttyq8 none network
+ttyq9 none network
+ttyqa none network
+ttyqb none network
+ttyqc none network
+ttyqd none network
+ttyqe none network
+ttyqf none network
+ttyqg none network
+ttyqh none network
+ttyqi none network
+ttyqj none network
+ttyqk none network
+ttyql none network
+ttyqm none network
+ttyqn none network
+ttyqo none network
+ttyqp none network
+ttyqq none network
+ttyqr none network
+ttyqs none network
+ttyqt none network
+ttyqu none network
+ttyqv none network
+ttyr0 none network
+ttyr1 none network
+ttyr2 none network
+ttyr3 none network
+ttyr4 none network
+ttyr5 none network
+ttyr6 none network
+ttyr7 none network
+ttyr8 none network
+ttyr9 none network
+ttyra none network
+ttyrb none network
+ttyrc none network
+ttyrd none network
+ttyre none network
+ttyrf none network
+ttyrg none network
+ttyrh none network
+ttyri none network
+ttyrj none network
+ttyrk none network
+ttyrl none network
+ttyrm none network
+ttyrn none network
+ttyro none network
+ttyrp none network
+ttyrq none network
+ttyrr none network
+ttyrs none network
+ttyrt none network
+ttyru none network
+ttyrv none network
+ttys0 none network
+ttys1 none network
+ttys2 none network
+ttys3 none network
+ttys4 none network
+ttys5 none network
+ttys6 none network
+ttys7 none network
+ttys8 none network
+ttys9 none network
+ttysa none network
+ttysb none network
+ttysc none network
+ttysd none network
+ttyse none network
+ttysf none network
+ttysg none network
+ttysh none network
+ttysi none network
+ttysj none network
+ttysk none network
+ttysl none network
+ttysm none network
+ttysn none network
+ttyso none network
+ttysp none network
+ttysq none network
+ttysr none network
+ttyss none network
+ttyst none network
+ttysu none network
+ttysv none network
+ttyP0 none network
+ttyP1 none network
+ttyP2 none network
+ttyP3 none network
+ttyP4 none network
+ttyP5 none network
+ttyP6 none network
+ttyP7 none network
+ttyP8 none network
+ttyP9 none network
+ttyPa none network
+ttyPb none network
+ttyPc none network
+ttyPd none network
+ttyPe none network
+ttyPf none network
+ttyPg none network
+ttyPh none network
+ttyPi none network
+ttyPj none network
+ttyPk none network
+ttyPl none network
+ttyPm none network
+ttyPn none network
+ttyPo none network
+ttyPp none network
+ttyPq none network
+ttyPr none network
+ttyPs none network
+ttyPt none network
+ttyPu none network
+ttyPv none network
+ttyQ0 none network
+ttyQ1 none network
+ttyQ2 none network
+ttyQ3 none network
+ttyQ4 none network
+ttyQ5 none network
+ttyQ6 none network
+ttyQ7 none network
+ttyQ8 none network
+ttyQ9 none network
+ttyQa none network
+ttyQb none network
+ttyQc none network
+ttyQd none network
+ttyQe none network
+ttyQf none network
+ttyQg none network
+ttyQh none network
+ttyQi none network
+ttyQj none network
+ttyQk none network
+ttyQl none network
+ttyQm none network
+ttyQn none network
+ttyQo none network
+ttyQp none network
+ttyQq none network
+ttyQr none network
+ttyQs none network
+ttyQt none network
+ttyQu none network
+ttyQv none network
+ttyR0 none network
+ttyR1 none network
+ttyR2 none network
+ttyR3 none network
+ttyR4 none network
+ttyR5 none network
+ttyR6 none network
+ttyR7 none network
+ttyR8 none network
+ttyR9 none network
+ttyRa none network
+ttyRb none network
+ttyRc none network
+ttyRd none network
+ttyRe none network
+ttyRf none network
+ttyRg none network
+ttyRh none network
+ttyRi none network
+ttyRj none network
+ttyRk none network
+ttyRl none network
+ttyRm none network
+ttyRn none network
+ttyRo none network
+ttyRp none network
+ttyRq none network
+ttyRr none network
+ttyRs none network
+ttyRt none network
+ttyRu none network
+ttyRv none network
+ttyS0 none network
+ttyS1 none network
+ttyS2 none network
+ttyS3 none network
+ttyS4 none network
+ttyS5 none network
+ttyS6 none network
+ttyS7 none network
+ttyS8 none network
+ttyS9 none network
+ttySa none network
+ttySb none network
+ttySc none network
+ttySd none network
+ttySe none network
+ttySf none network
+ttySg none network
+ttySh none network
+ttySi none network
+ttySj none network
+ttySk none network
+ttySl none network
+ttySm none network
+ttySn none network
+ttySo none network
+ttySp none network
+ttySq none network
+ttySr none network
+ttySs none network
+ttySt none network
+ttySu none network
+ttySv none network
diff --git a/etc/etc.sparc64/disktab b/etc/etc.sparc64/disktab
new file mode 100644
index 0000000..cd0822d
--- /dev/null
+++ b/etc/etc.sparc64/disktab
@@ -0,0 +1,224 @@
+# $FreeBSD$
+#
+# 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, ns*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)
+#
+
+#
+# Floppy formats:
+#
+# To make a filesystem on a floppy:
+# fdformat [-f <size>] fd<drive>[.<size>]
+# disklabel -B -r -w fd<drive>[.<size>] fd<size>
+# newfs <opts> fd<drive>[.<size>]
+#
+# with <opts>:
+# -t 2 - two heads
+# -u 9|15|18 - sectors per track
+# (using the default value of 1/4096 is not much useful for floppies)
+# -l 1 - interleave 1 (for most floppies)
+# -i 65536 - bytes of data per i-node
+# (the default -i value will render you with a floppy wasting way
+# too much space in i-node areas)
+#
+
+fd360:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#9:nc#40:\
+ :pa#720:oa#0:ba#4096:fa#512:\
+ :pb#720:ob#0:bb#4096:fb#512:\
+ :pc#720:oc#0:bc#4096:fc#512:
+
+fd720:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#9:nc#80:\
+ :pa#1440:oa#0:ba#4096:fa#512:\
+ :pb#1440:ob#0:bb#4096:fb#512:\
+ :pc#1440:oc#0:bc#4096:fc#512:
+
+fd1200|floppy5|5in|5.25in High Density Floppy:\
+ :ty=floppy:se#512:nt#2:rm#360:ns#15:nc#80:\
+ :pa#2400:oa#0:ba#4096:fa#512:\
+ :pb#2400:ob#0:bb#4096:fb#512:\
+ :pc#2400:oc#0:bc#4096:fc#512:
+
+fd1440|floppy|floppy3|3in|3.5in High Density Floppy:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#18:nc#80:\
+ :pa#2880:oa#0:ba#4096:fa#512:\
+ :pb#2880:ob#0:bb#4096:fb#512:\
+ :pc#2880:oc#0:bc#4096:fc#512:
+
+#
+# Stressed floppy-formats. No guarantees given.
+#
+
+fd800:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#10:nc#80:\
+ :pa#1600:oa#0:ba#4096:fa#512:\
+ :pb#1600:ob#0:bb#4096:fb#512:\
+ :pc#1600:oc#0:bc#4096:fc#512:
+
+fd820:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#10:nc#82:\
+ :pa#1640:oa#0:ba#4096:fa#512:\
+ :pb#1640:ob#0:bb#4096:fb#512:\
+ :pc#1640:oc#0:bc#4096:fc#512:
+
+fd1480:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#18:nc#82:\
+ :pa#2952:oa#0:ba#4096:fa#512:\
+ :pb#2952:ob#0:bb#4096:fb#512:\
+ :pc#2952:oc#0:bc#4096:fc#512:
+
+fd1720:\
+ :ty=floppy:se#512:nt#2:rm#300:ns#21:nc#82:\
+ :pa#3444:oa#0:ba#4096:fa#512:\
+ :pb#3444:ob#0:bb#4096:fb#512:\
+ :pc#3444:oc#0:bc#4096:fc#512:
+
+#
+# LS-120 floppy-format.
+#
+fd120m|floppy120|floppy120m|3.5in LS-120 Floppy:\
+ :ty=floppy:se#512:nt#8:rm#300:ns#32:nc#963:\
+ :pa#246528:oa#0:ba#4096:fa#512:\
+ :pb#246528:ob#0:bb#4096:fb#512:\
+ :pc#246528:oc#0:bc#4096:fc#512:
+
+#
+# Harddisk formats
+#
+qp120at|Quantum Peripherals 120MB IDE:\
+ :dt=ESDI:ty=winchester:se#512:nt#9:ns#32:nc#813:sf: \
+ :pa#13824:oa#0:ta=4.2BSD:ba#4096:fa#512: \
+ :pb#13824:ob#13824:tb=swap: \
+ :pc#234144:oc#0: \
+ :ph#206496:oh#27648:th=4.2BSD:bh#4096:fh#512:
+
+pan60|Panasonic Laptop's 60MB IDE:\
+ :dt=ST506:ty=winchester:se#512:nt#13:ns#17:nc#565:\
+ :pa#13260:oa#0:ta=4.2BSD:ba#4096:fa#512:\
+ :pb#13260:ob#13260:tb=swap: \
+ :pc#124865:oc#0: \
+ :ph#97682:oh#26520:th=4.2BSD:bh#4096:fh#512:
+
+mk156|toshiba156|Toshiba MK156 156Mb:\
+ :dt=SCSI:ty=winchester:se#512:nt#10:ns#35:nc#825:\
+ :pa#15748:oa#0:ba#4096:fa#512:ta=4.2BSD:\
+ :pb#15748:ob#15748:tb=swap:\
+ :pc#288750:oc#0:\
+ :ph#257250:oh#31500:bh#4096:fh#512:th=4.2BSD:
+
+cp3100|Connor Peripherals 100MB IDE:\
+ :dt=ST506:ty=winchester:se#512:nt#8:ns#33:nc#766: \
+ :pa#12144:oa#0:ta=4.2BSD:ba#4096:fa#512: \
+ :pb#12144:ob#12144:tb=swap: \
+ :pc#202224:oc#0: \
+ :ph#177936:oh#24288:th=4.2BSD:bh#4096:fh#512:
+
+# a == root
+# b == swap
+# c == d == whole disk
+# e == /var
+# f == scratch
+# h == /usr
+
+cp3100new|Connor Peripherals 100MB IDE, with a different configuration:\
+ :dt=ST506:ty=winchester:se#512:nt#8:ns#33:nc#766: \
+ :pa#15840:oa#0:ta=4.2BSD:ba#4096:fa#512: \
+ :pb#24288:ob#15840:tb=swap: \
+ :pc#202224:oc#0: \
+ :pd#202224:od#0: \
+ :pe#15840:oe#40128:te=4.2BSD:be#4096:fe#512: \
+ :pg#15840:og#55968:tg=4.2BSD:bg#4096:fg#512: \
+ :ph#130416:oh#71808:th=4.2BSD:bh#4096:fh#512:
+
+maxtor4380|Maxtor XT4380E ESDI :\
+ :dt=ESDI:ty=winchester:se#512:nt#15:ns#36:nc#1222:sf: \
+ :pa#21600:oa#0:ta=4.2BSD:ba#4096:fa#512:\
+ :pb#21600:ob#21600:tb=swap: \
+ :pc#659880:oc#0: \
+ :pd#216000:od#53200:td=4.2BSD:bd#4096:fd#512: \
+ :ph#398520:oh#269200:th=4.2BSD:bh#4096:fh#512:
+
+miniscribe9380|compaq38|Miniscribe 9380 ESDI :\
+ :ty=winchester:dt=ESDI:se#512:nt#15:ns#35:nc#1223:rm#3600:sf: \
+ :pa#21000:oa#0:ba#8192:fa#1024:ta=4.2BSD: \
+ :pb#42000:ob#21000:tb=swap: \
+ :pc#642075:oc#0: \
+ :pd#21000:od#63000:bd#8192:fd#1024:td=4.2BSD: \
+ :ph#556500:oh#84000:bh#8192:fh#1024:th=4.2BSD:
+
+ida4|compaq88|Compaq IDA (4 drives) :\
+ :ty=winchester:dt=IDA:se#512:nt#16:ns#63:nc#1644:rm#3600:\
+ :pa#20160:oa#0:ba#8192:fa#1024:ta=4.2BSD: \
+ :pb#80640:ob#20160:tb=swap: \
+ :pc#1659168:oc#0: \
+ :pd#201600:od#100800:bd#8192:fd#1024:td=4.2BSD: \
+ :pe#20160:oe#1310400:be#8192:fe#1024:te=4.2BSD: \
+ :ph#1008000:oh#302400:bh#8192:fh#1024:th=4.2BSD: \
+ :pg#302400:og#1330560:bg#4096:fg#512:tg=4.2BSD:
+
+fuji513|Fujitsu M22XXXX: \
+ :ty=winchester:dt=ESDI:se#512:nt#16:ns#63:nc#954:rm#3600:\
+ :pa#20160:oa#82656:ba#4096:fa#512:ta=4.2BSD: \
+ :pb#40320:ob#102816:tb=swap: \
+ :pc#961632:oc#0: \
+ :ph#656208:oh#143136:bh#4096:fh#512:th=4.2BSD:
+
+sony650|Sony 650 MB MOD|\
+ :ty=removable:dt=SCSI:se#512:nt#1:ns#31:nc#18600:ts#1:rm#4800:\
+ :pc#576600:oc#0:\
+ :pa#576600:oa#0:ta=4.2BSD:ba#8192:fa#1024:
+
+mta3230|mo230|IBM MTA-3230 230 Meg 3.5inch Magneto-Optical:\
+ :ty=removeable:dt=SCSI:rm#3600:\
+ :se#512:nt#64:ns#32:nc#216:sc#2048:su#444384:\
+ :pa#444384:oa#0:ba#4096:fa#0:ta=4.2BSD:\
+ :pc#444384:oc#0:
+
+minimum:ty=mfs:se#512:nt#1:rm#300:\
+ :ns#2880:nc#1:\
+ :pa#2880:oa#0:ba#4096:fa#512:\
+ :pc#2880:oc#0:bc#4096:fc#512:
+
+minimum2:ty=mfs:se#512:nt#1:rm#300:\
+ :ns#5760:nc#1:\
+ :pa#5760:oa#0:ba#4096:fa#512:\
+ :pc#5760:oc#0:bc#4096:fc#512:
+
+zip100|zip 100:\
+ :ty=removable:se#512:nc#96:nt#64:ns#32:\
+ :pa#196608:oa#0:ba#4096:fa#512:\
+ :pb#196608:ob#0:bb#4096:fb#512:\
+ :pc#196608:oc#0:bc#4096:fc#512:
+
+zip250|zip 250:\
+ :ty=removable:se#512:nc#239:nt#64:ns#32:\
+ :pa#489472:oa#0:ba#4096:fa#512:\
+ :pb#489472:ob#0:bb#4096:fb#512:\
+ :pc#489472:oc#0:bc#4096:fc#512:
diff --git a/etc/etc.sparc64/rc.sparc64 b/etc/etc.sparc64/rc.sparc64
new file mode 100644
index 0000000..73b5408
--- /dev/null
+++ b/etc/etc.sparc64/rc.sparc64
@@ -0,0 +1,9 @@
+#!/bin/sh -
+#
+# $FreeBSD$
+# Do sparc64 specific processing
+#
+
+echo -n 'Initial rc.sparc64 initialization:'
+
+echo '.'
diff --git a/etc/etc.sparc64/ttys b/etc/etc.sparc64/ttys
new file mode 100644
index 0000000..b0e53e0
--- /dev/null
+++ b/etc/etc.sparc64/ttys
@@ -0,0 +1,311 @@
+#
+# $FreeBSD$
+# @(#)ttys 5.1 (Berkeley) 4/17/89
+#
+# This file specifies various information about terminals on the system.
+# It is used by several different programs. Common entries for the
+# various columns include:
+#
+# name The name of the terminal device.
+#
+# getty The program to start running on the terminal. Typically a
+# getty program, as the name implies. Other common entries
+# include none, when no getty is needed, and xdm, to start the
+# X Window System.
+#
+# type The initial terminal type for this port. For hardwired
+# terminal lines, this will contain the type of terminal used.
+# For virtual consoles, the correct type is typically cons25, but
+# vt220 will work better if you need interoperability with other
+# systems like Solaris or GNU/Linux.
+# Other common values include network for network connections on
+# pseudo-terminals, dialup for incoming modem ports, and unknown
+# when the terminal type cannot be predetermined.
+#
+# status Must be on or off. If on, init will run the getty program on
+# the specified port. If the word "secure" appears, this tty
+# allows root login.
+#
+# name getty type status comments
+#
+# If console is marked "insecure", then init will ask for the root password
+# when going to single-user mode.
+console none unknown off secure
+# Openfirmware console
+ofwcons "/usr/libexec/getty std.9600" vt100 on secure
+#
+#ttyv0 "/usr/libexec/getty Pc" cons25 on secure
+# Virtual terminals
+#ttyv1 "/usr/libexec/getty Pc" cons25 on secure
+#ttyv2 "/usr/libexec/getty Pc" cons25 on secure
+#ttyv3 "/usr/libexec/getty Pc" cons25 on secure
+#ttyv4 "/usr/libexec/getty Pc" cons25 on secure
+#ttyv5 "/usr/libexec/getty Pc" cons25 on secure
+#ttyv6 "/usr/libexec/getty Pc" cons25 on secure
+#ttyv7 "/usr/libexec/getty Pc" cons25 on secure
+#ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
+# Serial terminals
+# The 'dialup' keyword identifies dialin lines to login, fingerd etc.
+ttya "/usr/libexec/getty local.9600" dialup off secure
+ttyb "/usr/libexec/getty local.9600" dialup off secure
+ttyd0 "/usr/libexec/getty std.9600" dialup off secure
+ttyd1 "/usr/libexec/getty std.9600" dialup off secure
+ttyd2 "/usr/libexec/getty std.9600" dialup off secure
+ttyd3 "/usr/libexec/getty std.9600" dialup off secure
+# Pseudo terminals
+ttyp0 none network
+ttyp1 none network
+ttyp2 none network
+ttyp3 none network
+ttyp4 none network
+ttyp5 none network
+ttyp6 none network
+ttyp7 none network
+ttyp8 none network
+ttyp9 none network
+ttypa none network
+ttypb none network
+ttypc none network
+ttypd none network
+ttype none network
+ttypf none network
+ttypg none network
+ttyph none network
+ttypi none network
+ttypj none network
+ttypk none network
+ttypl none network
+ttypm none network
+ttypn none network
+ttypo none network
+ttypp none network
+ttypq none network
+ttypr none network
+ttyps none network
+ttypt none network
+ttypu none network
+ttypv none network
+ttyq0 none network
+ttyq1 none network
+ttyq2 none network
+ttyq3 none network
+ttyq4 none network
+ttyq5 none network
+ttyq6 none network
+ttyq7 none network
+ttyq8 none network
+ttyq9 none network
+ttyqa none network
+ttyqb none network
+ttyqc none network
+ttyqd none network
+ttyqe none network
+ttyqf none network
+ttyqg none network
+ttyqh none network
+ttyqi none network
+ttyqj none network
+ttyqk none network
+ttyql none network
+ttyqm none network
+ttyqn none network
+ttyqo none network
+ttyqp none network
+ttyqq none network
+ttyqr none network
+ttyqs none network
+ttyqt none network
+ttyqu none network
+ttyqv none network
+ttyr0 none network
+ttyr1 none network
+ttyr2 none network
+ttyr3 none network
+ttyr4 none network
+ttyr5 none network
+ttyr6 none network
+ttyr7 none network
+ttyr8 none network
+ttyr9 none network
+ttyra none network
+ttyrb none network
+ttyrc none network
+ttyrd none network
+ttyre none network
+ttyrf none network
+ttyrg none network
+ttyrh none network
+ttyri none network
+ttyrj none network
+ttyrk none network
+ttyrl none network
+ttyrm none network
+ttyrn none network
+ttyro none network
+ttyrp none network
+ttyrq none network
+ttyrr none network
+ttyrs none network
+ttyrt none network
+ttyru none network
+ttyrv none network
+ttys0 none network
+ttys1 none network
+ttys2 none network
+ttys3 none network
+ttys4 none network
+ttys5 none network
+ttys6 none network
+ttys7 none network
+ttys8 none network
+ttys9 none network
+ttysa none network
+ttysb none network
+ttysc none network
+ttysd none network
+ttyse none network
+ttysf none network
+ttysg none network
+ttysh none network
+ttysi none network
+ttysj none network
+ttysk none network
+ttysl none network
+ttysm none network
+ttysn none network
+ttyso none network
+ttysp none network
+ttysq none network
+ttysr none network
+ttyss none network
+ttyst none network
+ttysu none network
+ttysv none network
+ttyP0 none network
+ttyP1 none network
+ttyP2 none network
+ttyP3 none network
+ttyP4 none network
+ttyP5 none network
+ttyP6 none network
+ttyP7 none network
+ttyP8 none network
+ttyP9 none network
+ttyPa none network
+ttyPb none network
+ttyPc none network
+ttyPd none network
+ttyPe none network
+ttyPf none network
+ttyPg none network
+ttyPh none network
+ttyPi none network
+ttyPj none network
+ttyPk none network
+ttyPl none network
+ttyPm none network
+ttyPn none network
+ttyPo none network
+ttyPp none network
+ttyPq none network
+ttyPr none network
+ttyPs none network
+ttyPt none network
+ttyPu none network
+ttyPv none network
+ttyQ0 none network
+ttyQ1 none network
+ttyQ2 none network
+ttyQ3 none network
+ttyQ4 none network
+ttyQ5 none network
+ttyQ6 none network
+ttyQ7 none network
+ttyQ8 none network
+ttyQ9 none network
+ttyQa none network
+ttyQb none network
+ttyQc none network
+ttyQd none network
+ttyQe none network
+ttyQf none network
+ttyQg none network
+ttyQh none network
+ttyQi none network
+ttyQj none network
+ttyQk none network
+ttyQl none network
+ttyQm none network
+ttyQn none network
+ttyQo none network
+ttyQp none network
+ttyQq none network
+ttyQr none network
+ttyQs none network
+ttyQt none network
+ttyQu none network
+ttyQv none network
+ttyR0 none network
+ttyR1 none network
+ttyR2 none network
+ttyR3 none network
+ttyR4 none network
+ttyR5 none network
+ttyR6 none network
+ttyR7 none network
+ttyR8 none network
+ttyR9 none network
+ttyRa none network
+ttyRb none network
+ttyRc none network
+ttyRd none network
+ttyRe none network
+ttyRf none network
+ttyRg none network
+ttyRh none network
+ttyRi none network
+ttyRj none network
+ttyRk none network
+ttyRl none network
+ttyRm none network
+ttyRn none network
+ttyRo none network
+ttyRp none network
+ttyRq none network
+ttyRr none network
+ttyRs none network
+ttyRt none network
+ttyRu none network
+ttyRv none network
+ttyS0 none network
+ttyS1 none network
+ttyS2 none network
+ttyS3 none network
+ttyS4 none network
+ttyS5 none network
+ttyS6 none network
+ttyS7 none network
+ttyS8 none network
+ttyS9 none network
+ttySa none network
+ttySb none network
+ttySc none network
+ttySd none network
+ttySe none network
+ttySf none network
+ttySg none network
+ttySh none network
+ttySi none network
+ttySj none network
+ttySk none network
+ttySl none network
+ttySm none network
+ttySn none network
+ttySo none network
+ttySp none network
+ttySq none network
+ttySr none network
+ttySs none network
+ttySt none network
+ttySu none network
+ttySv none network
diff --git a/etc/fbtab b/etc/fbtab
new file mode 100644
index 0000000..83ac65d
--- /dev/null
+++ b/etc/fbtab
@@ -0,0 +1,4 @@
+# $FreeBSD$
+#
+#/dev/ttyv0 0600 /dev/console
+#/dev/ttyv0 0600 /dev/pcaudio:/dev/pcaudioctl
diff --git a/etc/ftpusers b/etc/ftpusers
new file mode 100644
index 0000000..1c4e238
--- /dev/null
+++ b/etc/ftpusers
@@ -0,0 +1,23 @@
+# $FreeBSD$
+#
+# list of users disallowed any ftp access.
+# read by ftpd(8).
+root
+toor
+daemon
+operator
+bin
+tty
+kmem
+games
+news
+man
+sshd
+bind
+uucp
+xten
+pop
+www
+nobody
+mailnull
+smmsp
diff --git a/etc/gettytab b/etc/gettytab
new file mode 100644
index 0000000..75d80e0
--- /dev/null
+++ b/etc/gettytab
@@ -0,0 +1,223 @@
+# $FreeBSD$
+# from: @(#)gettytab 5.14 (Berkeley) 3/27/91
+#
+# Most of the table entries here are just copies of the old getty table,
+# it is by no means certain, or even likely, that any of them are optimal
+# for any purpose whatever. Nor is it likely that more than a couple are
+# even correct.
+#
+# The default gettytab entry, used to set defaults for all other
+# entries, and in cases where getty is called with no table name.
+#
+# cb, ce and ck are desirable on most crt's. The non-crt entries need to
+# be changed to turn them off (:cb@:ce@:ck@:).
+#
+# lc should always be on; it's a remainder of some stone age when there
+# have been terminals around not being able of handling lower-case
+# characters. Those terminals aren't supported any longer, but getty is
+# `smart' about them by default.
+#
+# Parity defaults to even, but the Pc entry and all the `std' entries
+# specify no parity. The different parities are:
+# (none): same as even except -inpck instead of inpck for login.
+# ep: getty will use raw mode (cs8 -parenb) (unless rw is set) and
+# fake parity. login will use even parity (cs7 parenb -parodd).
+# op: same as ep except odd parity (cs7 parenb parodd) for login.
+# op overrides ep.
+# ap: same as ep except -inpck instead of inpck for login.
+# ap overrides op and ep.
+# np: 1. don't fake parity in getty. The fake parity garbles
+# characters on non-terminals (like pccons) that don't
+# support parity. It would probably better for getty not to
+# try to fake parity. It could just use cbreak mode so as
+# not to force cs8 and let the hardware handle the parity.
+# login has to be rely on the hardware anyway.
+# 2. set PASS8, giving cs8 -parenb -istrip -inpck.
+# np:ep: same as np except inpck.
+# np:op: same as np:ep except for parodd (but parodd is overridden).
+# np:ap: same as np except istrip.
+#
+default:\
+ :cb:ce:ck:lc:fd#1000:im=\r\n%s/%m (%h) (%t)\r\n\r\n:sp#1200:\
+ :if=/etc/issue:
+
+#
+# Fixed speed entries
+#
+# The "std.NNN" names are known to the special case
+# portselector code in getty, however they can
+# be assigned to any table desired.
+# The "NNN-baud" names are known to the special case
+# autobaud code in getty, and likewise can
+# be assigned to any table desired (hopefully the same speed).
+#
+a|std.110|110-baud:\
+ :np:nd#1:cd#1:uc:sp#110:
+b|std.134|134.5-baud:\
+ :np:nd#1:cd#2:ff#1:td#1:sp#134:ht:nl:
+1|std.150|150-baud:\
+ :np:nd#1:cd#2:td#1:fd#1:sp#150:ht:nl:lm=\E\72\6\6\17login\72 :
+c|std.300|300-baud:\
+ :np:nd#1:cd#1:sp#300:
+d|std.600|600-baud:\
+ :np:nd#1:cd#1:sp#600:
+f|std.1200|1200-baud:\
+ :np:fd#1:sp#1200:
+6|std.2400|2400-baud:\
+ :np:sp#2400:
+7|std.4800|4800-baud:\
+ :np:sp#4800:
+2|std.9600|9600-baud:\
+ :np:sp#9600:
+g|std.19200|19200-baud:\
+ :np:sp#19200:
+std.38400|38400-baud:\
+ :np:sp#38400:
+std.57600|57600-baud:\
+ :np:sp#57600:
+std.115200|115200-baud:\
+ :np:sp#115200:
+std.230400|230400-baud:\
+ :np:sp#230400:
+
+#
+# Entry specifying explicit device settings. See termios(4) and
+# /usr/include/termios.h, too. The entry forces the tty into
+# CLOCAL mode (so no DCD is required), and uses Xon/Xoff flow control.
+#
+# cflags: CLOCAL | HUPCL | CREAD | CS8
+# oflags: OPOST | ONLCR | OXTABS
+# iflags: IXOFF | IXON | ICRNL | IGNPAR
+# lflags: IEXTEN | ICANON | ISIG | ECHOCTL | ECHO | ECHOK | ECHOE | ECHOKE
+#
+# The `0' flags don't have input enabled. The `1' flags don't echo.
+# (Echoing is done inside getty itself.)
+#
+local.9600|CLOCAL tty @ 9600 Bd:\
+ :c0#0x0000c300:c1#0x0000cb00:c2#0x0000cb00:\
+ :o0#0x00000007:o1#0x00000002:o2#0x00000007:\
+ :i0#0x00000704:i1#0x00000000:i2#0x00000704:\
+ :l0#0x000005cf:l1#0x00000000:l2#0x000005cf:\
+ :sp#9600:
+
+#
+# Dial in rotary tables, speed selection via 'break'
+#
+0|d300|Dial-300:\
+ :nx=d1200:cd#2:sp#300:
+d1200|Dial-1200:\
+ :nx=d150:fd#1:sp#1200:
+d150|Dial-150:\
+ :nx=d110:lm@:tc=150-baud:
+d110|Dial-110:\
+ :nx=d300:tc=300-baud:
+
+#
+# Fast dialup terminals, 2400/1200/300 rotary (can start either way)
+#
+D2400|d2400|Fast-Dial-2400:\
+ :nx=D1200:tc=2400-baud:
+3|D1200|Fast-Dial-1200:\
+ :nx=D300:tc=1200-baud:
+5|D300|Fast-Dial-300:\
+ :nx=D2400:tc=300-baud:
+
+#
+#telebit (19200)
+#
+t19200:\
+ :nx=t2400:tc=19200-baud:
+t2400:\
+ :nx=t1200:tc=2400-baud:
+t1200:\
+ :nx=t19200:tc=1200-baud:
+
+#
+#telebit (9600)
+#
+t9600:\
+ :nx=t2400a:tc=9600-baud:
+t2400a:\
+ :nx=t1200a:tc=2400-baud:
+t1200a:\
+ :nx=t9600:tc=1200-baud:
+
+#
+# Odd special case terminals
+#
+-|tty33|asr33|Pity the poor user of this beast:\
+ :tc=110-baud:
+
+4|Console|Console Decwriter II:\
+ :nd@:cd@:rw:tc=300-baud:
+
+e|Console-1200|Console Decwriter III:\
+ :fd@:nd@:cd@:rw:tc=1200-baud:
+
+i|Interdata console:\
+ :uc:sp#0:
+
+l|lsi chess terminal:\
+ :sp#300:
+
+X|Xwindow|X window system:\
+ :fd@:nd@:cd@:rw:sp#9600:
+
+P|Pc|Pc console:\
+ :ht:np:sp#115200:
+
+#
+# Wierdo special case for fast crt's with hardcopy devices
+#
+8|T9600|CRT with hardcopy:\
+ :nx=T300:tc=9600-baud:
+9|T300|CRT with hardcopy (300):\
+ :nx=T9600:tc=300-baud:
+
+#
+# Plugboard, and misc other terminals
+#
+plug-9600|Plugboard-9600:\
+ :pf#1:tc=9600-baud:
+p|P9600|Plugboard-9600-rotary:\
+ :pf#1:nx=P300:tc=9600-baud:
+q|P300|Plugboard-300:\
+ :pf#1:nx=P1200:tc=300-baud:
+r|P1200|Plugboard-1200:\
+ :pf#1:nx=P9600:tc=1200-baud:
+
+#
+# XXXX Port selector
+#
+s|DSW|Port Selector:\
+ :ps:sp#2400:
+
+#
+# Auto-baud speed detect entry for Micom 600.
+# Special code in getty will switch this out
+# to one of the NNN-baud entries.
+#
+A|Auto-baud:\
+ :ab:sp#2400:f0#040:
+
+#
+# autologin - automatically log in as root
+#
+
+autologin|al.9600:\
+ :al=root:tc=std.9600:
+
+#
+# Entries for 3-wire serial terminals. These don't supply carrier, so
+# clocal needs to be set, and crtscts needs to be unset.
+#
+3wire.9600|9600-3wire:\
+ :np:nc:sp#9600:
+3wire.38400|38400-3wire:\
+ :np:nc:sp#38400:
+3wire.57600|57600-3wire:\
+ :np:nc:sp#57600:
+3wire.115200|115200-3wire:\
+ :np:nc:sp#115200:
+3wire.230400|230400-3wire:\
+ :np:nc:sp#230400:
diff --git a/etc/group b/etc/group
new file mode 100644
index 0000000..c33d9ec
--- /dev/null
+++ b/etc/group
@@ -0,0 +1,26 @@
+# $FreeBSD$
+#
+wheel:*:0:root
+daemon:*:1:daemon
+kmem:*:2:root
+sys:*:3:root
+tty:*:4:root
+operator:*:5:root
+mail:*:6:
+bin:*:7:
+news:*:8:
+man:*:9:
+games:*:13:
+staff:*:20:root
+sshd:*:22:
+smmsp:*:25:
+mailnull:*:26:
+guest:*:31:root
+bind:*:53:
+uucp:*:66:
+xten:*:67:xten
+dialer:*:68:
+network:*:69:
+www:*:80:
+nogroup:*:65533:
+nobody:*:65534:
diff --git a/etc/hosts b/etc/hosts
new file mode 100644
index 0000000..c71a1c4
--- /dev/null
+++ b/etc/hosts
@@ -0,0 +1,30 @@
+# $FreeBSD$
+#
+# Host Database
+#
+# This file should contain the addresses and aliases for local hosts that
+# share this file. Replace 'my.domain' below with the domainname of your
+# machine.
+#
+# In the presence of the domain name service or NIS, this file may
+# not be consulted at all; see /etc/nsswitch.conf for the resolution order.
+#
+#
+::1 localhost localhost.my.domain
+127.0.0.1 localhost localhost.my.domain
+#
+# Imaginary network.
+#10.0.0.2 myname.my.domain myname
+#10.0.0.3 myfriend.my.domain myfriend
+#
+# According to RFC 1918, you can use the following IP networks for
+# private nets which will never be connected to the Internet:
+#
+# 10.0.0.0 - 10.255.255.255
+# 172.16.0.0 - 172.31.255.255
+# 192.168.0.0 - 192.168.255.255
+#
+# In case you want to be able to connect to the Internet, you need
+# real official assigned numbers. Do not try to invent your own network
+# numbers but instead get one from your network provider (if any).
+#
diff --git a/etc/hosts.allow b/etc/hosts.allow
new file mode 100644
index 0000000..e24f0c2
--- /dev/null
+++ b/etc/hosts.allow
@@ -0,0 +1,88 @@
+#
+# hosts.allow access control file for "tcp wrapped" applications.
+# $FreeBSD$
+#
+# NOTE: The hosts.deny file is deprecated.
+# Place both 'allow' and 'deny' rules in the hosts.allow file.
+# See hosts_options(5) for the format of this file.
+# hosts_access(5) no longer fully applies.
+
+# _____ _ _
+# | ____| __ __ __ _ _ __ ___ _ __ | | ___ | |
+# | _| \ \/ / / _` | | '_ ` _ \ | '_ \ | | / _ \ | |
+# | |___ > < | (_| | | | | | | | | |_) | | | | __/ |_|
+# |_____| /_/\_\ \__,_| |_| |_| |_| | .__/ |_| \___| (_)
+# |_|
+# !!! This is an example! You will need to modify it for your specific
+# !!! requirements!
+
+
+# Start by allowing everything (this prevents the rest of the file
+# from working, so remove it when you need protection).
+# The rules here work on a "First match wins" basis.
+ALL : ALL : allow
+
+# Wrapping sshd(8) is not normally a good idea, but if you
+# need to do it, here's how
+#sshd : .evil.cracker.example.com : deny
+
+# Protect against simple DNS spoofing attacks by checking that the
+# forward and reverse records for the remote host match. If a mismatch
+# occurs, access is denied, and any positive ident response within
+# 20 seconds is logged. No protection is afforded against DNS poisoning,
+# IP spoofing or more complicated attacks. Hosts with no reverse DNS
+# pass this rule.
+ALL : PARANOID : RFC931 20 : deny
+
+# Allow anything from localhost. Note that an IP address (not a host
+# name) *MUST* be specified for rpcbind(8).
+ALL : localhost 127.0.0.1 : allow
+ALL : my.machine.example.com 192.0.2.35 : allow
+
+# To use IPv6 addresses you must enclose them in []'s
+ALL : [fe80::%fxp0]/10 : allow
+ALL : [fe80::]/10 : deny
+ALL : [3ffe:fffe:2:1:2:3:4:3fe1] : deny
+ALL : [3ffe:fffe:2:1::]/64 : allow
+
+# Sendmail can help protect you against spammers and relay-rapers
+sendmail : localhost : allow
+sendmail : .nice.guy.example.com : allow
+sendmail : .evil.cracker.example.com : deny
+sendmail : ALL : allow
+
+# Exim is an alternative to sendmail, available in the ports tree
+exim : localhost : allow
+exim : .nice.guy.example.com : allow
+exim : .evil.cracker.example.com : deny
+exim : ALL : allow
+
+# Rpcbind is used for all RPC services; protect your NFS!
+# (IP addresses rather than hostnames *MUST* be used here)
+rpcbind : 192.0.2.32/255.255.255.224 : allow
+rpcbind : 192.0.2.96/255.255.255.224 : allow
+rpcbind : ALL : deny
+
+# NIS master server. Only local nets should have access
+ypserv : localhost : allow
+ypserv : .unsafe.my.net.example.com : deny
+ypserv : .my.net.example.com : allow
+ypserv : ALL : deny
+
+# Provide a small amount of protection for ftpd
+ftpd : localhost : allow
+ftpd : .nice.guy.example.com : allow
+ftpd : .evil.cracker.example.com : deny
+ftpd : ALL : allow
+
+# You need to be clever with finger; do _not_ backfinger!! You can easily
+# start a "finger war".
+fingerd : ALL \
+ : spawn (echo Finger. | \
+ /usr/bin/mail -s "tcpd\: %u@%h[%a] fingered me!" root) & \
+ : deny
+
+# The rest of the daemons are protected.
+ALL : ALL \
+ : severity auth.info \
+ : twist /bin/echo "You are not welcome to use %d from %h."
diff --git a/etc/hosts.equiv b/etc/hosts.equiv
new file mode 100644
index 0000000..d8a71c1
--- /dev/null
+++ b/etc/hosts.equiv
@@ -0,0 +1,4 @@
+# $FreeBSD$
+#
+#localhost
+#my_very_good_friend.domain
diff --git a/etc/hosts.lpd b/etc/hosts.lpd
new file mode 100644
index 0000000..b53202a
--- /dev/null
+++ b/etc/hosts.lpd
@@ -0,0 +1,4 @@
+# $FreeBSD$
+#
+# See lpd(8)
+#machine.domain
diff --git a/etc/inetd.conf b/etc/inetd.conf
new file mode 100644
index 0000000..25430b8
--- /dev/null
+++ b/etc/inetd.conf
@@ -0,0 +1,121 @@
+# $FreeBSD$
+#
+# Internet server configuration database
+#
+# Define *both* IPv4 and IPv6 entries for dual-stack support.
+# To disable a service, comment it out by prefixing the line with '#'.
+# To enable a service, remove the '#' at the beginning of the line.
+#
+#ftp stream tcp nowait root /usr/libexec/lukemftpd ftpd -l -r
+#ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
+#ftp stream tcp6 nowait root /usr/libexec/ftpd ftpd -l
+#telnet stream tcp nowait root /usr/libexec/telnetd telnetd
+#telnet stream tcp6 nowait root /usr/libexec/telnetd telnetd
+#shell stream tcp nowait root /usr/libexec/rshd rshd
+#shell stream tcp6 nowait root /usr/libexec/rshd rshd
+#login stream tcp nowait root /usr/libexec/rlogind rlogind
+#login stream tcp6 nowait root /usr/libexec/rlogind rlogind
+#finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -s
+#finger stream tcp6 nowait/3/10 nobody /usr/libexec/fingerd fingerd -s
+#exec stream tcp nowait root /usr/libexec/rexecd rexecd
+#nntp stream tcp nowait usenet /usr/libexec/nntpd nntpd
+#
+# run comsat as root to be able to print partial mailbox contents w/ biff,
+# or use the safer tty:tty to just print that new mail has been received.
+#comsat dgram udp wait tty:tty /usr/libexec/comsat comsat
+#
+# ntalk is required for the 'talk' utility to work correctly
+#ntalk dgram udp wait tty:tty /usr/libexec/ntalkd ntalkd
+#tftp dgram udp wait root /usr/libexec/tftpd tftpd -s /tftpboot
+#tftp dgram udp6 wait root /usr/libexec/tftpd tftpd -s /tftpboot
+#bootps dgram udp wait root /usr/libexec/bootpd bootpd
+#
+# "Small servers" -- used to be standard on, but we're more conservative
+# about things due to Internet security concerns. Only turn on what you
+# need.
+#
+#daytime stream tcp nowait root internal
+#daytime stream tcp6 nowait root internal
+#daytime dgram udp wait root internal
+#daytime dgram udp6 wait root internal
+#time stream tcp nowait root internal
+#time stream tcp6 nowait root internal
+#time dgram udp wait root internal
+#time dgram udp6 wait root internal
+#echo stream tcp nowait root internal
+#echo dgram udp6 wait root internal
+#echo dgram udp wait root internal
+#echo stream tcp6 nowait root internal
+#discard stream tcp nowait root internal
+#discard stream tcp6 nowait root internal
+#discard dgram udp wait root internal
+#discard dgram udp6 wait root internal
+#chargen stream tcp nowait root internal
+#chargen stream tcp6 nowait root internal
+#chargen dgram udp wait root internal
+#chargen dgram udp6 wait root internal
+#
+# Kerberos authenticated services
+#
+#klogin stream tcp nowait root /usr/libexec/rlogind rlogind -k
+#eklogin stream tcp nowait root /usr/libexec/rlogind rlogind -k -x
+#kshell stream tcp nowait root /usr/libexec/rshd rshd -k
+#kip stream tcp nowait root /usr/libexec/kipd kipd
+#
+# CVS servers - for master CVS repositories only! You must set the
+# --allow-root path correctly or you open a trivial to exploit but
+# deadly security hole.
+#
+#cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/your/cvsroot/here pserver
+#cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/your/cvsroot/here kserver
+#
+# RPC based services (you MUST have rpcbind running to use these)
+#
+#rstatd/1-3 dgram rpc/udp wait root /usr/libexec/rpc.rstatd rpc.rstatd
+#rusersd/1-2 dgram rpc/udp wait root /usr/libexec/rpc.rusersd rpc.rusersd
+#walld/1 dgram rpc/udp wait root /usr/libexec/rpc.rwalld rpc.rwalld
+#pcnfsd/1-2 dgram rpc/udp wait root /usr/libexec/rpc.pcnfsd rpc.pcnfsd
+#rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad
+#sprayd/1 dgram rpc/udp wait root /usr/libexec/rpc.sprayd rpc.sprayd
+#
+# example entry for the optional pop3 server
+#
+#pop3 stream tcp nowait root /usr/local/libexec/popper popper
+#
+# example entry for the optional imap4 server
+#
+#imap4 stream tcp nowait root /usr/local/libexec/imapd imapd
+#
+# example entry for the optional uucpd server
+#uucpd stream tcp nowait root /usr/local/libexec/uucpd uucpd
+#
+# Return error for all "ident" requests
+#
+#auth stream tcp nowait root internal
+#auth stream tcp6 nowait root internal
+#
+# Provide internally a real "ident" service which provides ~/.fakeid support,
+# provides ~/.noident support, reports UNKNOWN as the operating system type
+# and times out after 30 seconds.
+#
+#auth stream tcp nowait root internal auth -r -f -n -o UNKNOWN -t 30
+#auth stream tcp6 nowait root internal auth -r -f -n -o UNKNOWN -t 30
+#
+# Example entry for an external ident server
+#
+#auth stream tcp wait root /usr/local/sbin/identd identd -w -t120
+#
+# Example entry for the optional qmail MTA
+# NOTE: This is no longer the correct way to handle incoming SMTP
+# connections for qmail. Use tcpserver (http://cr.yp.to/ucspi-tcp.html)
+# instead.
+#
+#smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env tcp-env /var/qmail/bin/qmail-smtpd
+#
+# Enable the following two entries to enable samba startup from inetd
+# (from the Samba documentation). Enable the third entry to enable the swat
+# samba configuration tool.
+#
+#netbios-ssn stream tcp nowait root /usr/local/sbin/smbd smbd
+#netbios-ns dgram udp wait root /usr/local/sbin/nmbd nmbd
+#swat stream tcp nowait/400 root /usr/local/sbin/swat swat
diff --git a/etc/isdn/Makefile b/etc/isdn/Makefile
new file mode 100644
index 0000000..0dcb0ee
--- /dev/null
+++ b/etc/isdn/Makefile
@@ -0,0 +1,25 @@
+# $FreeBSD$
+
+I4BETCPROG= answer \
+ isdntel.sh \
+ record \
+ tell \
+ tell-record \
+ unknown_incoming
+
+I4BETCFILE= holidays.D \
+ isdnd.rates.A \
+ isdnd.rates.D \
+ isdnd.rates.F \
+ isdnd.rates.L \
+ isdnd.rates.UK.BT \
+ isdnd.rc.sample \
+ isdntel.alias.sample
+
+install:
+ for i in ${I4BETCPROG} ; do \
+ ${INSTALL} -o root -g wheel -m 700 $$i ${DESTDIR}/etc/isdn ; \
+ done ; \
+ for i in ${I4BETCFILE} ; do \
+ ${INSTALL} -o root -g wheel -m 600 $$i ${DESTDIR}/etc/isdn ; \
+ done
diff --git a/etc/isdn/answer b/etc/isdn/answer
new file mode 100755
index 0000000..d39a983
--- /dev/null
+++ b/etc/isdn/answer
@@ -0,0 +1,97 @@
+#!/bin/sh
+#---------------------------------------------------------------------------
+#
+# answer script for i4b isdnd
+# ---------------------------
+#
+# $FreeBSD$
+#
+# last edit-date: [Thu May 20 11:44:38 1999]
+#
+#---------------------------------------------------------------------------
+VARDIR=/var/isdn
+
+#FreeBSD < 3.1, NetBSD, OpenBSD, BSD/OS
+#LIBDIR=/usr/local/lib/isdn
+#FreeBSD 3.1 and up
+LIBDIR=/usr/share/isdn
+
+LOGFILE=/tmp/answer.log
+NCALLFILE=${VARDIR}/ncall
+DATE=`date +%d%H`
+DF=0
+dF=0
+sF=0
+
+if ! set -- `getopt D:d:s: $*`; then
+ echo 'Usage: answer -D device -d destination -s source'
+ exit 1
+fi
+
+for i ; do
+ case ${i} in
+ -D)
+ DEVICE=$2
+ DF=1
+ shift
+ shift
+ ;;
+ -d)
+ DEST=$2
+ dF=1
+ shift
+ shift
+ ;;
+ -s)
+ SRC=$2
+ sF=1
+ shift
+ shift
+ ;;
+ --)
+ shift
+ break
+ ;;
+ esac
+done
+
+echo "" >>${LOGFILE}
+
+if [ "${DF}" -eq 0 -o "${dF}" -eq 0 -o "${sF}" -eq 0 ]; then
+ echo 'Usage: answer -D device -d destination -s source'
+ exit 1
+fi
+
+echo "answer: device ${DEVICE} destination ${DEST} source ${SRC} " >>${LOGFILE}
+
+if [ -r "${NCALLFILE}" ]; then
+ NCALL=`cat ${NCALLFILE}`
+else
+ NCALL=0
+fi
+
+NCALL=`printf "%.4d" ${NCALL}`
+
+echo Date: `date` >> ${VARDIR}/I.${NCALL}.${DATE}
+
+if [ -n "${SRC}" ]; then
+ echo "From: ${SRC}" >> ${VARDIR}/I.${NCALL}.${DATE}
+fi
+
+if [ -n "${DEST}" ]; then
+ echo "To: ${DEST}" >> ${VARDIR}/I.${NCALL}.${DATE}
+fi
+
+if [ -r "${LIBDIR}/beep.al" ]; then
+ dd of=${DEVICE} if=${LIBDIR}/beep.al bs=2k # >/dev/null 2>&1
+fi
+
+if [ -r "${LIBDIR}/msg.al" ]; then
+ dd of=${DEVICE} if=${LIBDIR}/msg.al bs=2k # >/dev/null 2>&1
+ if [ -r "${LIBDIR}/beep.al" ]
+ then
+ dd of=${DEVICE} if=${LIBDIR}/beep.al bs=2k # >/dev/null 2>&1
+ fi
+fi
+
+echo `expr ${NCALL} + 1` >${NCALLFILE}
diff --git a/etc/isdn/holidays.D b/etc/isdn/holidays.D
new file mode 100644
index 0000000..80b7259
--- /dev/null
+++ b/etc/isdn/holidays.D
@@ -0,0 +1,51 @@
+#---------------------------------------------------------------------------
+#
+# german national holidays 2002/2003/2004
+# bundeseinheitliche Feiertage 2002/2003/2004
+# -------------------------------------------------------------
+#
+# last edit-date: [Sat Apr 13 14:22:43 2002]
+#
+# got from: http://www.ferienkalender.com/
+#
+# This file is only of value for installations which are
+# using the german Telekom "T-ISDN XXL" tariff where calls
+# on sundays and holidays are free of charge. Additional
+# configuration of /etc/isdnd.rc has to take place to enable
+# support for this tariff, see output of "man isdnd.rc" and
+# search for keyword "valid".
+#
+# $FreeBSD$
+#
+#---------------------------------------------------------------------------
+#
+# same day/month each year
+#
+1.1 Neujahr
+1.5 Tag der Arbeit
+3.10 Tag der deutschen Einheit
+25.12 1. Weihnachtsfeiertag
+26.12 2. Weihnachtsfeiertag
+#
+# 2002 - different day/month each year
+#
+29.3.2002 Karfreitag
+1.4.2002 Ostermontag
+9.5.2002 Christi Himmelfahrt
+20.5.2002 Pfingstmontag
+#
+# 2003 - different day/month each year
+#
+18.4.2003 Karfreitag
+21.4.2003 Ostermontag
+29.5.2003 Christi Himmelfahrt
+9.6.2003 Pfingstmontag
+#
+# 2004 - different day/month each year
+#
+9.4.2004 Karfreitag
+12.4.2004 Ostermontag
+20.5.2004 Christi Himmelfahrt
+31.5.2004 Pfingstmontag
+#
+# EOF
diff --git a/etc/isdn/isdnd.rates.A b/etc/isdn/isdnd.rates.A
new file mode 100644
index 0000000..fa25b22
--- /dev/null
+++ b/etc/isdn/isdnd.rates.A
@@ -0,0 +1,39 @@
+#---------------------------------------------------------------------------
+#
+# i4b - PTA Telekom charging rates config file
+# --------------------------------------------
+#
+# $Id: isdnd.rates.A,v 1.2 1999/12/13 21:25:24 hm Exp $
+#
+# $FreeBSD$
+#
+# last edit-date: [Mon Dec 13 21:42:02 1999]
+#
+# -mr updated to reflect last Telekom changes as of 1.9.99
+#
+#---------------------------------------------------------------------------
+#
+# reference: http://www.pta.at/
+#
+#---------------------------------------------------------------------------
+#
+# Syntax:
+# -------
+# rate-code: ra0 = Online Tarif
+# Day-No: 0-6, where 0 = Sunday, 1 = Monday, etc.
+# Rate: start_hour.minutes-end_hour.minutes:period in seconds
+#
+#------------------------------------------------------------------------------
+#
+#=================== Online ==================================
+#
+#rate-code Day rate1 rate2 rate3
+#--------- --- --------------- --------------- ---------------
+ra0 0 00.00-24.00:360
+ra0 1 00.00-08.00:360 08.00-18.00:120 18.00-24.00:360
+ra0 2 00.00-08.00:360 08.00-18.00:120 18.00-24.00:360
+ra0 3 00.00-08.00:360 08.00-18.00:120 18.00-24.00:360
+ra0 4 00.00-08.00:360 08.00-18.00:120 18.00-24.00:360
+ra0 5 00.00-08.00:360 08.00-18.00:120 18.00-24.00:360
+ra0 6 00.00-24.00:360
+#================== EOF ======================================
diff --git a/etc/isdn/isdnd.rates.D b/etc/isdn/isdnd.rates.D
new file mode 100644
index 0000000..430f9da
--- /dev/null
+++ b/etc/isdn/isdnd.rates.D
@@ -0,0 +1,50 @@
+#---------------------------------------------------------------------------
+#
+# i4b - Deutsche Telekom charging rates config file
+# -------------------------------------------------
+#
+# $FreeBSD$
+#
+# last edit-date: [Sun Jan 17 18:38:29 1999]
+#
+# -hm updated to reflect last Telekom changes as of 1.1.99
+#
+#---------------------------------------------------------------------------
+#
+# reference: http://www.telekom.de/untern/tarife/inland/index.htm
+#
+#---------------------------------------------------------------------------
+#
+# Syntax:
+# -------
+# rate-code: ra0 = City, ra1 = Deutschland
+# Day-No: 0-6, where 0 = Sunday, 1 = Monday, etc.
+# Rate: start_hour.minutes-end_hour.minutes:period in seconds
+#
+#------------------------------------------------------------------------------
+#
+#=================== T-ISDN City =============================================================
+#
+#rate-code Day rate1 rate2 rate3 rate4 rate5
+#--------- --- --------------- --------------- --------------- --------------- ---------------
+ra0 0 00.00-05.00:240 05.00-21.00:150 21.00-24.00:240
+ra0 1 00.00-05.00:240 05.00-09.00:150 09.00-18.00:90 18.00-21.00:150 21.00-24.00:240
+ra0 2 00.00-05.00:240 05.00-09.00:150 09.00-18.00:90 18.00-21.00:150 21.00-24.00:240
+ra0 3 00.00-05.00:240 05.00-09.00:150 09.00-18.00:90 18.00-21.00:150 21.00-24.00:240
+ra0 4 00.00-05.00:240 05.00-09.00:150 09.00-18.00:90 18.00-21.00:150 21.00-24.00:240
+ra0 5 00.00-05.00:240 05.00-09.00:150 09.00-18.00:90 18.00-21.00:150 21.00-24.00:240
+ra0 6 00.00-05.00:240 05.00-21.00:150 21.00-24.00:240
+#
+#=================== T-ISDN Deutschland ======================================================
+#
+#rate-code Day rate1 rate2 rate3 rate4 rate5
+#--------- --- --------------- --------------- --------------- --------------- ---------------
+ra1 0 00.00-24.00:60
+ra1 1 00.00-02.00:60 02.00-05.00:120 05.00-09.00:60 09.00-18.00:30 18.00-24.00:60
+ra1 2 00.00-02.00:60 02.00-05.00:120 05.00-09.00:60 09.00-18.00:30 18.00-24.00:60
+ra1 3 00.00-02.00:60 02.00-05.00:120 05.00-09.00:60 09.00-18.00:30 18.00-24.00:60
+ra1 4 00.00-02.00:60 02.00-05.00:120 05.00-09.00:60 09.00-18.00:30 18.00-24.00:60
+ra1 5 00.00-02.00:60 02.00-05.00:120 05.00-09.00:60 09.00-18.00:30 18.00-24.00:60
+ra1 6 00.00-24.00:60
+#
+#================== EOF ======================================================================
diff --git a/etc/isdn/isdnd.rates.F b/etc/isdn/isdnd.rates.F
new file mode 100644
index 0000000..14d772d
--- /dev/null
+++ b/etc/isdn/isdnd.rates.F
@@ -0,0 +1,152 @@
+#---------------------------------------------------------------------------
+#
+# i4b - Tarifs France Telecom
+# ---------------------------
+#
+# $FreeBSD$
+#
+# last edit-date: [Thu Mar 19 20:05:18 1998]
+#
+# -hm got from Aurelien Bargy <dj@dial.oleane.com>
+#
+#---------------------------------------------------------------------------
+#
+# a jour au 1.10.97
+# Aurelien Bargy - 18.03.97
+#
+# I wrote a rates file for France. It is rather approximative
+# because some time ago France Telecom decided to abandon the charging
+# units system. The problem is, on ISDN lines charging units are still
+# used for the aocd system, even as it gives a completely false price
+# for a communication, so "abandoning" the msg_charging_unit system for
+# French users of i4b is not a good idea :))
+#
+#---------------------------------------------------------------------------
+#
+# Syntax:
+# -------
+# rate-code: ra0 = local ; ra1 = zone 1 ; ra2 = zone 2...
+# plus quelques tarifs internationaux
+# Day-No: 0-6, where 0 = Sunday, 1 = Monday, etc.
+# Rate: start_hour.minutes-end_hour.minutes:period in seconds
+#
+#------------------------------------------------------------------------
+#
+#========================== Communications locales ======================
+#rate-code Day rate1 rate2 rate3
+#--------- --- --------------- --------------- ---------------
+ra0 0 00.00-24.00:317
+ra0 1 00.00-08.00:317 08.00-19.00:158 19.00-24.00:317
+ra0 2 00.00-08.00:317 08.00-19.00:158 19.00-24.00:317
+ra0 3 00.00-08.00:317 08.00-19.00:158 19.00-24.00:317
+ra0 4 00.00-08.00:317 08.00-19.00:158 19.00-24.00:317
+ra0 5 00.00-08.00:317 08.00-19.00:158 19.00-24.00:317
+ra0 6 00.00-08.00:317 08.00-12.00:158 12.00-24.00:317
+#
+#
+#
+#================== Zone 1 : < 25 km ==================================
+#
+#rate-code Day rate1 rate2 rate3
+#--------- --- --------------- --------------- ---------------
+ra1 0 00.00-24.00:222
+ra1 1 00.00-08.00:222 08.00-19.00:111 19.00-24.00:222
+ra1 2 00.00-08.00:222 08.00-19.00:111 19.00-24.00:222
+ra1 3 00.00-08.00:222 08.00-19.00:111 19.00-24.00:222
+ra1 4 00.00-08.00:222 08.00-19.00:111 19.00-24.00:222
+ra1 5 00.00-08.00:222 08.00-19.00:111 19.00-24.00:222
+ra1 6 00.00-08.00:222 08.00-12.00:111 12.00-24.00:222
+#
+#
+#
+#================== Zone 2 : 25-30 km =================================
+#
+#rate-code Day rate1 rate2 rate3
+#--------- --- --------------- --------------- --------------
+ra2 0 00.00-24.00:148
+ra2 1 00.00-08.00:148 08.00-19.00:74 19.00-24.00:148
+ra2 2 00.00-08.00:148 08.00-19.00:74 19.00-24.00:148
+ra2 3 00.00-08.00:148 08.00-19.00:74 19.00-24.00:148
+ra2 4 00.00-08.00:148 08.00-19.00:74 19.00-24.00:148
+ra2 5 00.00-08.00:148 08.00-19.00:74 19.00-24.00:148
+ra2 6 00.00-08.00:148 08.00-12.00:74 12.00-24.00:148
+#
+#=================== Zone 3 : 30-52 km ================================
+#
+#rate-code day rate1 rate2 rate3
+#--------- --- --------------- --------------- ---------------
+ra3 0 00.00-24.00:94
+ra3 1 00.00-08.00:94 08.00-19.00:47 19.00-24.00:94
+ra3 2 00.00-08.00:94 08.00-19.00:47 19.00-24.00:94
+ra3 3 00.00-08.00:94 08.00-19.00:47 19.00-24.00:94
+ra3 4 00.00-08.00:94 08.00-19.00:47 19.00-24.00:94
+ra3 5 00.00-08.00:94 08.00-19.00:47 19.00-24.00:94
+ra3 6 00.00-08.00:94 08.00-12.00:47 12.00-24.00:94
+#
+#
+#=================== Zone 4 : > 52 km =================================
+#
+#rate-code day rate1 rate2 rate3
+#--------- --- --------------- --------------- ---------------
+ra4 0 00.00-24.00:78
+ra4 1 00.00-08.00:78 08.00-19.00:39 19.00-24.00:78
+ra4 2 00.00-08.00:78 08.00-19.00:39 19.00-24.00:78
+ra4 3 00.00-08.00:78 08.00-19.00:39 19.00-24.00:78
+ra4 4 00.00-08.00:78 08.00-19.00:39 19.00-24.00:78
+ra4 5 00.00-08.00:78 08.00-19.00:39 19.00-24.00:78
+ra4 6 00.00-08.00:78 08.00-12.00:39 12.00-24.00:78
+#
+#
+#=================== INTERNATIONAL : Allemagne ========================
+# (pour appeler Hellmuth)
+#
+#rate-code day rate1 rate2 rate3
+#--------- --- --------------- --------------- ---------------
+ra5 0 00.00-24.00:27
+ra5 1 00.00-08.00:27 08.00-19.00:21 19.00-24.00:27
+ra5 2 00.00-08.00:27 08.00-19.00:21 19.00-24.00:27
+ra5 3 00.00-08.00:27 08.00-19.00:21 19.00-24.00:27
+ra5 4 00.00-08.00:27 08.00-19.00:21 19.00-24.00:27
+ra5 5 00.00-08.00:27 08.00-19.00:21 19.00-24.00:27
+ra5 6 00.00-08.00:27 08.00-12.00:21 12.00-24.00:27
+#
+#
+#=================== INTERNATIONAL : Pays-Bas ==========================
+#
+#rate-code day rate1 rate2 rate3
+#--------- --- --------------- --------------- ---------------
+ra6 0 00.00-24.00:25
+ra6 1 00.00-08.00:25 08.00-19.00:20 19.00-24.00:25
+ra6 2 00.00-08.00:25 08.00-19.00:20 19.00-24.00:25
+ra6 3 00.00-08.00:25 08.00-19.00:20 19.00-24.00:25
+ra6 4 00.00-08.00:25 08.00-19.00:20 19.00-24.00:25
+ra6 5 00.00-08.00:25 08.00-19.00:20 19.00-24.00:25
+ra6 6 00.00-08.00:25 08.00-12.00:20 12.00-24.00:25
+#
+#
+#=================== INTERNATIONAL : Portugal ===========================
+#
+#rate-code day rate1 rate2 rate3
+#--------- --- --------------- --------------- ---------------
+ra7 0 00.00-24.00:22
+ra7 1 00.00-08.00:22 08.00-19.00:18 19.00-24.00:22
+ra7 2 00.00-08.00:22 08.00-19.00:18 19.00-24.00:22
+ra7 3 00.00-08.00:22 08.00-19.00:18 19.00-24.00:22
+ra7 4 00.00-08.00:22 08.00-19.00:18 19.00-24.00:22
+ra7 5 00.00-08.00:22 08.00-19.00:18 19.00-24.00:22
+ra7 6 00.00-08.00:22 08.00-12.00:18 12.00-24.00:22
+#
+#
+#=================== INTERNATIONAL : USA/Canada ========================
+#
+#rate-code day rate1 rate2 rate3
+#--------- --- --------------- --------------- ---------------
+ra8 0 00.00-24.00:25
+ra8 1 00.00-13.00:25 13.00-19.00:20 19.00-24.00:25
+ra8 2 00.00-13.00:25 13.00-19.00:20 19.00-24.00:25
+ra8 3 00.00-13.00:25 13.00-19.00:20 19.00-24.00:25
+ra8 4 00.00-13.00:25 13.00-19.00:20 19.00-24.00:25
+ra8 5 00.00-13.00:25 13.00-19.00:20 19.00-24.00:25
+ra8 6 00.00-24.00:25
+#
+#================== EOF ==============================================
diff --git a/etc/isdn/isdnd.rates.L b/etc/isdn/isdnd.rates.L
new file mode 100644
index 0000000..1c4383a
--- /dev/null
+++ b/etc/isdn/isdnd.rates.L
@@ -0,0 +1,45 @@
+#---------------------------------------------------------------------------
+#
+# i4b - Luxembourg PT charging rates config file
+# -------------------------------------------------
+#
+# $Id: isdnd.rates.L,v 1.2 1999/12/13 21:25:24 hm Exp $
+#
+# $FreeBSD$
+#
+# last edit-date: [Mon Dec 13 21:42:33 1999]
+#
+# Sent in by Joakim Hernberg, Digital Design Luxembourg sarl, jbh@ddl.lu
+#
+#---------------------------------------------------------------------------
+#
+# reference: http://www.pt.lu
+#
+#---------------------------------------------------------------------------
+#
+# Syntax:
+# -------
+# rate-code: ra0 = Luxembourg normal isdn call
+# rate-code: ra1 = Luxembourg PT Internet access
+# Day-No: 0-6, where 0 = Sunday, 1 = Monday, etc.
+# Rate: start_hour.minutes-end_hour.minutes:period in seconds
+#
+#------------------------------------------------------------------------------
+#
+#rate-code Day rate1 rate2 rate3 rate4 rate5
+#--------- --- --------------- --------------- --------------- --------------- ----------------
+ra0 0 00.00-24.00:960
+ra0 1 00.00-06.00:960 06.00-08.00:480 08.00-19.00:240 19.00-23.00:480 23.00-24.00:960
+ra0 2 00.00-06.00:960 06.00-08.00:480 08.00-19.00:240 19.00-23.00:480 23.00-24.00:960
+ra0 3 00.00-06.00:960 06.00-08.00:480 08.00-19.00:240 19.00-23.00:480 23.00-24.00:960
+ra0 4 00.00-06.00:960 06.00-08.00:480 08.00-19.00:240 19.00-23.00:480 23.00-24.00:960
+ra0 5 00.00-06.00:960 06.00-08.00:480 08.00-19.00:240 19.00-23.00:480 23.00-24.00:960
+ra0 6 00.00-06.00:960 06.00-23.00:480 23.00-24.00:960
+
+ra1 0 00.00-24.00:60
+ra1 1 00.00-24.00:60
+ra1 2 00.00-24.00:60
+ra1 3 00.00-24.00:60
+ra1 4 00.00-24.00:60
+ra1 5 00.00-24.00:60
+ra1 6 00.00-24.00:60
diff --git a/etc/isdn/isdnd.rates.UK.BT b/etc/isdn/isdnd.rates.UK.BT
new file mode 100644
index 0000000..c4d34ec
--- /dev/null
+++ b/etc/isdn/isdnd.rates.UK.BT
@@ -0,0 +1,61 @@
+#---------------------------------------------------------------------------
+#
+# i4b - BT charges
+# -------------------------------------------------
+#
+# $FreeBSD$
+#
+# Barry A. Scott barry@scottb.demon.co.uk
+#
+#---------------------------------------------------------------------------
+#
+# reference: http://www.bt.com/Business/price_frm.htm
+# (I use the bussiness figures as the Ex VAT gives more
+# accurate rate data because BT round the Inc VAT figures)
+#
+#---------------------------------------------------------------------------
+#
+# Syntax:
+# -------
+# rate-code: ra0 = Local, ra1 = Regional, ra2 = National
+# Day-No: 0-6, where 0 = Sunday, 1 = Monday, etc.
+# Rate: start_hour.minutes-end_hour.minutes:period in seconds
+#
+#------------------------------------------------------------------------------
+#
+#=================== Local =========================================================================
+#
+#rate-code Day rate1 rate2 rate1
+#--------- --- --------------- --------------- ---------------
+ra0 0 00.00-24.00:296
+ra0 1 00.00-08.00:200 08.00-18.00:75 18.00-00.00:200
+ra0 2 00.00-08.00:200 08.00-18.00:75 18.00-00.00:200
+ra0 3 00.00-08.00:200 08.00-18.00:75 18.00-00.00:200
+ra0 4 00.00-08.00:200 08.00-18.00:75 18.00-00.00:200
+ra0 5 00.00-08.00:200 08.00-18.00:75 18.00-00.00:200
+ra0 6 00.00-24.00:296
+#
+#=================== Regional =========================================================================
+#
+#rate-code Day rate1 rate2 rate1
+#--------- --- --------------- --------------- ---------------
+ra1 0 00.00-24.00:100
+ra1 1 00.00-08.00:75 08.00-18.00:37 18.00-00.00:75
+ra1 2 00.00-08.00:75 08.00-18.00:37 18.00-00.00:75
+ra1 3 00.00-08.00:75 08.00-18.00:37 18.00-00.00:75
+ra1 4 00.00-08.00:75 08.00-18.00:37 18.00-00.00:75
+ra1 5 00.00-08.00:75 08.00-18.00:37 18.00-00.00:75
+ra1 6 00.00-24.00:100
+#
+#=================== National =========================================================================
+#
+#rate-code Day rate1 rate2 rate1
+#--------- --- --------------- --------------- ---------------
+ra2 0 00.00-24.00:100
+ra2 1 00.00-08.00:71 08.00-18.00:37 18.00-00.00:71
+ra2 2 00.00-08.00:71 08.00-18.00:37 18.00-00.00:71
+ra2 3 00.00-08.00:71 08.00-18.00:37 18.00-00.00:71
+ra2 4 00.00-08.00:71 08.00-18.00:37 18.00-00.00:71
+ra2 5 00.00-08.00:71 08.00-18.00:37 18.00-00.00:71
+ra2 6 00.00-24.00:100
+#================== EOF ============================================================================================================
diff --git a/etc/isdn/isdnd.rc.sample b/etc/isdn/isdnd.rc.sample
new file mode 100644
index 0000000..eef0f89
--- /dev/null
+++ b/etc/isdn/isdnd.rc.sample
@@ -0,0 +1,409 @@
+#------------------------------------------------------------------------------
+#
+# example of a configuration file for the isdn daemon
+# ---------------------------------------------------
+#
+# $FreeBSD$
+#
+# last edit-date: [Sun May 27 09:33:59 2001]
+#
+# NOTICE:
+# =======
+# This configuration file is an EXAMPLE only and MUST be edited
+# carefully to get the desired results!
+#
+# Please read the "isdnd.rc" manual page (execute "man isdnd.rc")
+# for reference !
+#
+#------------------------------------------------------------------------------
+
+#==============================================================================
+# SYSTEM section: isdnd global configuration parameters
+#==============================================================================
+system
+
+# accounting
+# ----------
+
+acctall = on # generate info for everything
+acctfile = /var/log/isdnd.acct # name & location of accounting file
+useacctfile = yes # generate accouting info to file
+
+# monitor
+# -------
+
+monitor-allowed = no # global switch: monitor on/off
+monitor-port = 451 # default monitor TCP port
+
+# Monitor rights are granted due to the most specific host/net spec, i.e. in
+# the example below host 192.168.1.2 will have the rights specified on that
+# line, even so it belongs to net 192.168.1.0/24 as well.
+#
+# A monitor specification may either be:
+#
+# - the name of a local (UNIX-domain) socket; this MUST start with a "/"
+monitor = "/var/run/isdn-monitor"
+monitor-access = fullcmd
+monitor-access = channelstate, logevents
+monitor-access = callin, callout
+#
+# - a dotted-quad host spec
+monitor = "192.168.1.2"
+monitor-access = restrictedcmd, channelstate, callin, callout
+#
+# - a dotted-quad net spec with "/len" (CIDR-style) netmask spec
+monitor = "192.168.1.0/24"
+monitor-access = restrictedcmd, channelstate, callin, callout
+#
+# - a resolveable host name
+monitor = "rumolt"
+monitor-access = restrictedcmd, channelstate, callin, callout
+#
+# - a resolveable net name with "/len" netmask (s.a.) appended
+monitor = "up-vision-net/24"
+monitor-access = restrictedcmd, channelstate, callin, callout
+
+# ratesfile
+# ---------
+
+ratesfile = /etc/isdn/isdnd.rates # name & location of rates file
+
+# regular expression pattern matching
+# -----------------------------------
+
+#regexpr = "connected.*XXX" # look for matches in log messages
+#regprog = connectXXX # execute program when match is found
+
+regexpr = "<unknown> incoming call from"
+regprog = unknown_incoming # execute program whan match is found
+
+# realtime priority section
+# -------------------------
+
+rtprio = 25 # modify isdnd's process priority
+
+#===========================================================================
+# controller section
+#===========================================================================
+controller
+
+firmware = /etc/isdn/b1.t4 # microcode for an AVM B1 controller
+
+#==============================================================================
+# entry section: IP over ISDN example - i call back the remote end
+#==============================================================================
+entry
+
+name = I4BIP # name for reference. This name will
+ # be used in the logfile to identfy
+ # this entry.
+
+ # the network or telephone device
+ # the data traffic should be routed to:
+usrdevicename = ipr # ipr, isp, tel, rbch
+usrdeviceunit = 0 # unit number
+
+ # the ISDN controller number to be
+ # used for this entry:
+isdncontroller = 0 # controller to use or -1 to use any
+isdnchannel = -1 # channel (1/2) to use or 0 or -1 for any
+
+ # incoming only, outgoing only or both:
+direction = inout # in, out, inout
+
+ # numbers used to verify a DIAL IN:
+local-phone-incoming = 321 # this is my number
+remote-phone-incoming = 0123456789 # this one can call in
+
+ # numbers used at DIAL OUT time:
+local-phone-dialout = 321 # this is my number
+remote-phone-dialout = 00123456789 # i call this remote number
+
+ # in case i have several remote
+ # telephone numbers specified, this
+ # is used to specify which one is
+ # used next on dial fail or retry:
+remdial-handling = first # first, last or next
+
+ # what happenes if someone dials in:
+dialin-reaction = callback # accept, reject, ignore, answer, callback
+
+ # normal dialout or do i call back:
+dialout-type = normal # normal / calledback
+
+callbackwait = 1 # no of secs to wait before calling back
+
+ # type of protocol on the B-channel:
+ # hdlc must be specified for IP (the
+ # ipr and isp drivers), raw must be
+ # specified for telephone answering
+b1protocol = hdlc # hdlc, raw
+
+ # shorthold mode and idle time
+ # configuration:
+ratetype = 0 # ratesfile entry to use
+unitlength = 90 # unitlength to assume
+unitlengthsrc = rate # none, rate, cmdl, conf, aocd
+idletime-incoming = 120 # incoming call idle timeout
+idletime-outgoing = 60 # outgoing call idle timeout
+earlyhangup = 5 # time to hangup before an expected
+ # next charging unit will occur
+
+ # retry and recovery parameters
+dialretries = 3 # # of dial retries
+dialrandincr = off # random dial increment time
+recoverytime = 5 # time to wait between 2 dial tries
+usedown = off # set i/f down
+downtries = 5 # retry cycles before set down
+downtime = 30 # time to be in down before going up
+
+#connectprog = "ip-up" # run /etc/isdn/ip-up when an interface
+ # has established its network connection.
+ # example parameters are:
+ # /etc/isdn/ip-up -d isp0 -f up -a 192.110.12.14
+#disconnectprog = "ip-down" # like connectprog, but run after the connection
+ # is closed (ISDN layer down). The actual
+ # interface address might not be known
+ # any more. example parameters are:
+ # /etc/isdn/ip-up -d isp0 -f down -a 0.0.0.0
+
+#==============================================================================
+# entry section: IP over ISDN example - i am called back by the remote end
+#==============================================================================
+entry
+
+name = I4BIP1 # name for reference
+
+usrdevicename = ipr # ipr, tel, rbch
+usrdeviceunit = 1 # unit number
+
+isdncontroller = 0 # controller to use or -1 to use any
+isdnchannel = -1 # channel (1/2) to use or 0 or -1 for any
+
+ # numbers used to DIAL OUT
+remote-phone-dialout = 00401234567 # remote number to dial
+local-phone-dialout = 38 # our number to tell remote
+
+ # numbers used to verify at DIAL IN
+local-phone-incoming = 38 # we take calls for this local number
+remote-phone-incoming = 00401234567 # we take calls from this remote machine
+
+b1protocol = hdlc # hdlc, raw
+
+ratetype = 0 # city
+unitlength = 90 # default unit length
+earlyhangup = 5 # safety zone
+unitlengthsrc = aocd # none, rate, cmdl, conf, aocd
+
+dialin-reaction = accept # accept, reject, ignore, anwer, callback
+
+dialout-type = calledback # normal or calledback
+
+dialretries = 3
+recoverytime = 3
+calledbackwait = 20
+dialrandincr = off
+
+usedown = off
+downtries = 2
+downtime = 30
+
+idletime-incoming = 300
+idletime-outgoing = 30
+
+#==============================================================================
+# entry section: answering machine example
+#==============================================================================
+entry
+
+name = I4BTEL # name for reference
+usrdevicename = tel # ipr, tel, rbch
+usrdeviceunit = 0 # unit number
+
+isdncontroller = 0 # controller to use or -1 to use any
+isdnchannel = -1 # channel (1/2) to use or 0 or -1 for any
+
+ # numbers used to verify at DIAL IN
+local-phone-incoming = 456 # this is my number
+remote-phone-incoming = * # anyone can call in
+
+dialin-reaction = answer # accept, reject, ignore, answer
+
+answerprog = answer # program to run
+
+b1protocol = raw # hdlc, raw
+
+idletime-incoming = 5 # 5 seconds idle timeout
+
+#==============================================================================
+# kernel PPP (with budget handling) - Sunday & Holidays, we call back
+#==============================================================================
+entry
+
+valid = "0,7" # sundays & holidays
+
+name = KPPPs # name for reference
+
+usrdevicename = isp # ipr, tel, rbch
+usrdeviceunit = 0 # unit number
+
+isdncontroller = 1 # controller to use or -1 to use any
+isdnchannel = -1 # channel (1/2) to use or 0 or -1 for any
+
+ # numbers used to verify at DIAL IN
+local-phone-incoming = 29 # this is my number
+remote-phone-incoming = 00401234567 # this one can call in
+
+ # numbers used to DIAL OUT
+local-phone-dialout = 29 # this is my number
+remote-phone-dialout = 00401234567 # i call this number
+
+remdial-handling = first # first, last or next
+
+dialin-reaction = callback # accept, reject, ignore, answer, callback
+
+dialout-type = normal # normal / calledback
+
+b1protocol = hdlc # hdlc, raw
+
+idletime-incoming = 30 # incoming call idle timeout
+idletime-outgoing = 120 # outgoing call idle timeout
+
+unitlength = 360 # unitlength to assume
+unitlengthsrc = conf # none, rate, cmdl, conf, aocd
+
+dialretries = 5 # # of dial retries
+dialrandincr = on # random dial increment time
+recoverytime = 3 # time to wait between 2 dial tries
+
+callbackwait = 5 # time to wait to call back
+
+usedown = off # set i/f down
+downtries = 5 # retry cycles before set down
+downtime = 60 # time to be in down before going up
+
+budget-callbackperiod = 10800 # 3 hours
+budget-callbackncalls = 1000 # 2 callbacks in 3 hours
+budget-callbacksfile = /var/log/isdn/callbacks.isp0
+budget-callbacksfile-rotate = yes
+
+budget-calloutperiod = 3600 # 1 hour
+budget-calloutncalls = 1000 # 3 calls in 1 hour
+budget-calloutsfile = /var/log/isdn/callouts.isp0
+budget-calloutsfile-rotate = yes
+
+#==============================================================================
+# kernel PPP (with budget handling) - Monday-Saturday, 9:00-18:00: we call back
+#==============================================================================
+entry
+
+valid = "1,2,3,4,5,6,9:00-18:00" # Monday-Saturday, day
+
+name = KPPPd # name for reference
+
+usrdevicename = isp # ipr, tel, rbch
+usrdeviceunit = 0 # unit number
+
+isdncontroller = 1 # controller to use or -1 to use any
+isdnchannel = -1 # channel (1/2) to use or 0 or -1 for any
+
+ # numbers used to verify at DIAL IN
+local-phone-incoming = 29 # this is my number
+remote-phone-incoming = 00401234567 # this one can call in
+
+ # numbers used to DIAL OUT
+local-phone-dialout = 29 # this is my number
+remote-phone-dialout = 00401234567 # i call this number
+
+remdial-handling = first # first, last or next
+
+dialin-reaction = callback # accept, reject, ignore, answer, callback
+
+dialout-type = normal # normal / calledback
+
+b1protocol = hdlc # hdlc, raw
+
+idletime-incoming = 30 # incoming call idle timeout
+idletime-outgoing = 30 # outgoing call idle timeout
+
+unitlength = 60 # unitlength to assume
+unitlengthsrc = conf # none, rate, cmdl, conf, aocd
+
+dialretries = 5 # # of dial retries
+dialrandincr = on # random dial increment time
+recoverytime = 3 # time to wait between 2 dial tries
+
+callbackwait = 5 # time to wait to call back
+
+usedown = off # set i/f down
+downtries = 5 # retry cycles before set down
+downtime = 60 # time to be in down before going up
+
+budget-callbackperiod = 10800 # 3 hours
+budget-callbackncalls = 1 # 1 callbacks in 3 hours
+budget-callbacksfile = /var/log/isdn/callbacks.isp0
+budget-callbacksfile-rotate = yes
+
+budget-calloutperiod = 3600 # 1 hour
+budget-calloutncalls = 3 # 3 calls in 1 hour
+budget-calloutsfile = /var/log/isdn/callouts.isp0
+budget-calloutsfile-rotate = yes
+
+#==============================================================================
+# kernel PPP (with budget handling) - Monday-Saturday: we call back
+#==============================================================================
+entry
+
+valid = "1,2,3,4,5,6,18:00-9:00" # Monday-Saturday, night
+
+name = KPPPn # name for reference
+
+usrdevicename = isp # ipr, tel, rbch
+usrdeviceunit = 0 # unit number
+
+isdncontroller = 1 # controller to use or -1 to use any
+isdnchannel = -1 # channel (1/2) to use or 0 or -1 for any
+
+ # numbers used to verify at DIAL IN
+local-phone-incoming = 29 # this is my number
+remote-phone-incoming = 00401234567 # this one can call in
+
+ # numbers used to DIAL OUT
+local-phone-dialout = 29 # this is my number
+remote-phone-dialout = 00401234567 # i call this number
+
+remdial-handling = first # first, last or next
+
+dialin-reaction = callback # accept, reject, ignore, answer, callback
+
+dialout-type = normal # normal / calledback
+
+b1protocol = hdlc # hdlc, raw
+
+idletime-incoming = 30 # incoming call idle timeout
+idletime-outgoing = 30 # outgoing call idle timeout
+
+unitlength = 60 # unitlength to assume
+unitlengthsrc = conf # none, rate, cmdl, conf, aocd
+
+dialretries = 5 # # of dial retries
+dialrandincr = on # random dial increment time
+recoverytime = 3 # time to wait between 2 dial tries
+
+callbackwait = 5 # time to wait to call back
+
+usedown = off # set i/f down
+downtries = 5 # retry cycles before set down
+downtime = 60 # time to be in down before going up
+
+budget-callbackperiod = 7200 # 2 hours
+budget-callbackncalls = 2 # 2 callbacks in 2 hours
+budget-callbacksfile = /var/log/isdn/callbacks.isp0
+budget-callbacksfile-rotate = yes
+
+budget-calloutperiod = 3600 # 1 hour
+budget-calloutncalls = 3 # 3 calls in 1 hour
+budget-calloutsfile = /var/log/isdn/callouts.isp0
+budget-calloutsfile-rotate = yes
+
+# EOF #########################################################################
diff --git a/etc/isdn/isdntel.alias.sample b/etc/isdn/isdntel.alias.sample
new file mode 100644
index 0000000..c06bc19
--- /dev/null
+++ b/etc/isdn/isdntel.alias.sample
@@ -0,0 +1,21 @@
+#---------------------------------------------------------------------------
+#
+# alias file for the isdntel(1) application
+# -----------------------------------------
+#
+# $FreeBSD$
+#
+# last edit-date: [Fri Dec 18 18:06:03 1998]
+#
+# -hm cleanup for release
+#
+#
+# the format is simple: the number beginning in column one followed
+# by one or more spaces or tabs. The rest of the line is taken as
+# and alias string for the number. Comment lines start with a "#".
+#
+#---------------------------------------------------------------------------
+123 alias for 123
+456 alias for 456
+789 alias for 789
+
diff --git a/etc/isdn/isdntel.sh b/etc/isdn/isdntel.sh
new file mode 100755
index 0000000..14f528a
--- /dev/null
+++ b/etc/isdn/isdntel.sh
@@ -0,0 +1,98 @@
+#!/bin/sh
+#---------------------------------------------------------------------------
+#
+# isdn telephone answering
+# -------------------------
+#
+# $FreeBSD$
+#
+# last edit-date: [Thu May 20 11:45:04 1999]
+#
+#---------------------------------------------------------------------------
+#FreeBSD < 3.1, NetBSD, OpenBSD, BSD/OS
+#LIBDIR=/usr/local/lib/isdn
+#FreeBSD 3.1 and up
+LIBDIR=/usr/share/isdn
+
+VARDIR=/var/isdn
+DEVICE=/dev/i4btel0
+
+# sounds
+MESSAGE=${LIBDIR}/msg.al
+BEEP=${LIBDIR}/beep.al
+
+# dd options
+SKIP=25
+
+# max message size
+MAXMSIZ=100
+
+# src and dst telephone numbers
+src=
+dst=
+
+# current date
+DATE=`date`
+
+# check if directory exists
+if [ ! -d "${VARDIR}" ]
+then
+ mkdir ${VARDIR}
+fi
+
+# get options
+if ! set -- `/usr/bin/getopt D:d:s: $*`; then
+ echo "usage2: play -D device -d <dest-telno> -s <src-telno>"
+ exit 1
+fi
+
+# process options
+for i ; do
+ case $i in
+ -D)
+ DEVICE=$2; shift; shift;
+ ;;
+ -d)
+ dst=$2; shift; shift;
+ ;;
+ -s)
+ src=$2; shift; shift;
+ ;;
+ --)
+ shift; break;
+ ;;
+ esac
+done
+
+# this is a __MUST__ in order to use the fullscreen inteface !!!
+
+FILEDATE=`date \+%y%m%d%H%M%S`
+
+# echo message to phone
+if [ -r "${MESSAGE}" ]; then
+ /bin/dd of=${DEVICE} if=${MESSAGE} bs=2k >/dev/null 2>&1
+fi
+
+# echo beep to phone
+if [ -r "${BEEP}" ]; then
+ /bin/dd of=${DEVICE} if=${BEEP} bs=2k >/dev/null 2>&1
+fi
+
+# start time
+START=`date \+%s`
+
+# get message from caller
+/bin/dd if=${DEVICE} of=${VARDIR}/${FILEDATE}-${dst}-${src} skip=${SKIP} bs=2k count=${MAXMSIZ} >/dev/null 2>&1
+
+# end time
+END=`date \+%s`
+
+# duration
+TIME=`expr ${END} - ${START}`
+
+# save recorded message
+if [ -r "${VARDIR}/${FILEDATE}-${dst}-${src}" ]; then
+ mv ${VARDIR}/${FILEDATE}-${dst}-${src} ${VARDIR}/${FILEDATE}-${dst}-${src}-${TIME}
+fi
+
+exit 0
diff --git a/etc/isdn/record b/etc/isdn/record
new file mode 100755
index 0000000..61591fb
--- /dev/null
+++ b/etc/isdn/record
@@ -0,0 +1,99 @@
+#!/bin/sh
+#---------------------------------------------------------------------------
+#
+# answer and record message script for i4b isdnd
+# ----------------------------------------------
+#
+# $FreeBSD$
+#
+# last edit-date: [Thu May 20 11:45:10 1999]
+#
+#---------------------------------------------------------------------------
+VARDIR=/var/isdn
+
+#FreeBSD < 3.1, NetBSD, OpenBSD, BSD/OS
+#LIBDIR=/usr/local/lib/isdn
+#FreeBSD 3.1 and up
+LIBDIR=/usr/share/isdn
+
+LOGFILE=/tmp/answer.log
+NCALLFILE=${VARDIR}/ncall
+DATE=`date +%d%H`
+DF=0
+dF=0
+sF=0
+
+if ! set -- `getopt D:d:s: $*`; then
+ echo 'Usage: answer -D device -d destination -s source'
+ exit 1
+fi
+
+for i ; do
+ case ${i} in
+ -D)
+ DEVICE=$2
+ DF=1
+ shift
+ shift
+ ;;
+ -d)
+ DEST=$2
+ dF=1
+ shift
+ shift
+ ;;
+ -s)
+ SRC=$2
+ sF=1
+ shift
+ shift
+ ;;
+ --)
+ shift
+ break
+ ;;
+ esac
+done
+
+echo "" >>${LOGFILE}
+
+if [ "${DF}" -eq 0 -o "${dF}" -eq 0 -o "${sF}" -eq 0 ]; then
+ echo 'Usage: answer -D device -d destination -s source'
+ exit 1
+fi
+
+echo "answer: device ${DEVICE} destination ${DEST} source ${SRC} " >>${LOGFILE}
+
+if [ -r "${NCALLFILE}" ]; then
+ NCALL=`cat ${NCALLFILE}`
+else
+ NCALL=0
+fi
+
+NCALL=`printf "%.4d" ${NCALL}`
+
+echo Date: `date` >> ${VARDIR}/I.${NCALL}.${DATE}
+
+if [ -n "${SRC}" ]; then
+ echo "From: ${SRC}" >> ${VARDIR}/I.${NCALL}.${DATE}
+fi
+
+if [ -n "${DEST}" ]; then
+ echo "To: ${DEST}" >> ${VARDIR}/I.${NCALL}.${DATE}
+fi
+
+if [ -r "${LIBDIR}/beep.al" ]; then
+ dd of=${DEVICE} if=${LIBDIR}/beep.al bs=2k >/dev/null 2>&1
+fi
+
+if [ -r "${LIBDIR}/msg.al" ]; then
+ dd of=${DEVICE} if=${LIBDIR}/msg.al bs=2k >/dev/null 2>&1
+fi
+
+if [ -r "${LIBDIR}/beep.al" ]; then
+ dd of=${DEVICE} if=${LIBDIR}/beep.al bs=2k >/dev/null 2>&1
+fi
+
+dd if=${DEVICE} of=${VARDIR}/R.${NCALL}.${DATE} bs=2k >/dev/null 2>&1
+
+echo `expr $NCALL + 1` >$NCALLFILE
diff --git a/etc/isdn/tell b/etc/isdn/tell
new file mode 100755
index 0000000..047c834
--- /dev/null
+++ b/etc/isdn/tell
@@ -0,0 +1,87 @@
+#!/bin/sh
+#---------------------------------------------------------------------------
+#
+# tell called and calling numbers answer script for i4b isdnd
+# -----------------------------------------------------------
+#
+# $FreeBSD$
+#
+# last edit-date: [Thu May 20 11:45:15 1999]
+#
+#---------------------------------------------------------------------------
+VARDIR=/var/isdn
+
+#FreeBSD < 3.1, NetBSD, OpenBSD, BSD/OS
+#LIBDIR=/usr/local/lib/isdn
+#FreeBSD 3.1 and up
+LIBDIR=/usr/share/isdn
+
+LOGFILE=/tmp/answer.log
+NCALLFILE=${VARDIR}/ncall
+DATE=`date +%d%H`
+DF=0
+dF=0
+sF=0
+
+if ! set -- `getopt D:d:s: $*`; then
+ echo 'Usage: answer -D device -d destination -s source'
+ exit 1
+fi
+
+for i ; do
+ case ${i} in
+ -D)
+ DEVICE=$2
+ DF=1
+ shift
+ shift
+ ;;
+ -d)
+ DEST=$2
+ dF=1
+ shift
+ shift
+ ;;
+ -s)
+ SRC=$2
+ sF=1
+ shift
+ shift
+ ;;
+ --)
+ shift
+ break
+ ;;
+ esac
+done
+
+echo "" >>${LOGFILE}
+
+if [ "${DF}" -eq 0 -o "${dF}" -eq 0 -o "${sF}" -eq 0 ]; then
+ echo 'Usage: answer -D device -d destination -s source'
+ exit 1
+fi
+
+echo "answer: device ${DEVICE} destination ${DEST} source ${SRC} " >>${LOGFILE}
+
+if [ -r "${LIBDIR}/beep.al" ]; then
+ dd of=${DEVICE} if=${LIBDIR}/beep.al bs=2k >/dev/null 2>&1
+fi
+
+# tell the caller the number he is calling from
+
+POS=1
+LENGTH=`expr ${SRC} : '.*'`
+
+while : ; do
+ DIGIT=`echo ${SRC} | cut -c ${POS}`
+ /bin/dd of=${DEVICE} if=${LIBDIR}/${DIGIT}.al bs=2k >/dev/null 2>&1
+ POS=`expr ${POS} + 1`
+ if [ "${POS}" -gt "${LENGTH}" ]; then
+ break
+ fi
+done
+
+if [ -r "${LIBDIR}/beep.al" ]; then
+ dd of=${DEVICE} if=${LIBDIR}/beep.al bs=2k >/dev/null 2>&1
+fi
diff --git a/etc/isdn/tell-record b/etc/isdn/tell-record
new file mode 100755
index 0000000..ae4c8176
--- /dev/null
+++ b/etc/isdn/tell-record
@@ -0,0 +1,89 @@
+#!/bin/sh
+#---------------------------------------------------------------------------
+#
+# tell called and calling numbers answer script for i4b isdnd
+# -----------------------------------------------------------
+#
+# $FreeBSD$
+#
+# last edit-date: [Tue Oct 31 10:59:49 2000]
+#
+#---------------------------------------------------------------------------
+VARDIR=/var/isdn
+
+#FreeBSD < 3.1, NetBSD, OpenBSD, BSD/OS
+#LIBDIR=/usr/local/lib/isdn
+#FreeBSD 3.1 and up
+LIBDIR=/usr/share/isdn
+
+LOGFILE=/tmp/answer.log
+NCALLFILE=${VARDIR}/ncall
+DATE=`date +%d%H`
+DF=0
+dF=0
+sF=0
+
+if ! set -- `getopt D:d:s: $*`; then
+ echo 'Usage: answer -D device -d destination -s source'
+ exit 1
+fi
+
+for i ; do
+ case ${i} in
+ -D)
+ DEVICE=$2
+ DF=1
+ shift
+ shift
+ ;;
+ -d)
+ DEST=$2
+ dF=1
+ shift
+ shift
+ ;;
+ -s)
+ SRC=$2
+ sF=1
+ shift
+ shift
+ ;;
+ --)
+ shift
+ break
+ ;;
+ esac
+done
+
+echo "" >>${LOGFILE}
+
+if [ "${DF}" -eq 0 -o "${dF}" -eq 0 -o "${sF}" -eq 0 ]; then
+ echo 'Usage: answer -D device -d destination -s source'
+ exit 1
+fi
+
+echo "answer: device ${DEVICE} destination ${DEST} source ${SRC} " >>${LOGFILE}
+
+if [ -r "${LIBDIR}/beep.al" ]; then
+ dd of=${DEVICE} if=${LIBDIR}/beep.al bs=2k >/dev/null 2>&1
+fi
+
+# tell the caller the number he is calling from
+
+POS=1
+LENGTH=`expr ${SRC} : '.*'`
+
+while : ; do
+ DIGIT=`echo ${SRC} | cut -c ${POS}`
+ /bin/dd of=${DEVICE} if=${LIBDIR}/${DIGIT}.al bs=2k >/dev/null 2>&1
+ POS=`expr ${POS} + 1`
+ if [ "${POS}" -gt "${LENGTH}" ]; then
+ break
+ fi
+done
+
+if [ -r "${LIBDIR}/beep.al" ]; then
+ dd of=${DEVICE} if=${LIBDIR}/beep.al bs=2k >/dev/null 2>&1
+fi
+
+dd if=${DEVICE} of=${VARDIR}/recorded.msg bs=2k >/dev/null 2>&1
diff --git a/etc/isdn/unknown_incoming b/etc/isdn/unknown_incoming
new file mode 100755
index 0000000..9e26a64
--- /dev/null
+++ b/etc/isdn/unknown_incoming
@@ -0,0 +1,79 @@
+#!/bin/sh
+#---------------------------------------------------------------------------
+#
+# unknown_incoming - script for isdnd
+# -----------------------------------
+#
+# $FreeBSD$
+#
+# last edit-date: [Wed Jan 10 13:40:36 2001]
+#
+# This script may be configured to be called by isdnd when an
+# unknown incoming call is received. In case the destination
+# telephone number is available, it sends mail with the time,
+# source and destination numbers to a configurable address.
+#
+# For this to work, and entry like this:
+#
+# regexpr = "<unknown> incoming call from"
+# regprog = unknown_incoming
+#
+# is needed in the system section of /etc/isdn/isdnd.rc.
+#
+# This script has to be configured to the sites needs, look
+# for the comment lines start with "configure:"
+#
+#---------------------------------------------------------------------------
+#
+# configure: who shall receive the mail
+mailaddr=root
+#
+from=`echo $* | awk '{print $6}'`
+to=`echo $* | awk '{print $8}'`
+test=`echo $* | awk '{print $9}'`
+ctrl=`echo $* | awk '{print $10}'`
+date=`date "+%b %d"`
+time=`date "+%H:%M"`
+mach=`hostname`
+
+# configure: list of destination numbers to ignore
+case "$from" in
+ "NotAvailable" ) exit 0 ;;
+ "00401234567"* ) exit 0 ;;
+ "00407654321" ) exit 0 ;;
+esac
+
+# configure: how to name the line on which this was received
+if [ $test = "ctrl" ]
+then
+ case "$ctrl" in
+ "1")
+ line="PBX 1"
+ ;;
+ "2")
+ line="PBX 2"
+ ;;
+ *)
+ line="controller is $ctrl"
+ ;;
+ esac
+else
+ line="test is $test, controller is $ctrl"
+fi
+
+cat << ENDOFDATA | mail -s "isdnd: unknown incoming telephone call" $mailaddr
+
+Unknown incoming telephone call recognized:
+
+ Date: $date
+ Time: $time
+ Line: $line
+ From: $from
+ To: $to
+
+ Sincerly yours,
+ the isdnd on $mach
+
+ENDOFDATA
+
+exit 0
diff --git a/etc/kerberosIV/README b/etc/kerberosIV/README
new file mode 100644
index 0000000..e57916c
--- /dev/null
+++ b/etc/kerberosIV/README
@@ -0,0 +1,36 @@
+# $FreeBSD$
+# @(#)README 5.1 (Berkeley) 6/30/90
+
+Notes about the contents of the /etc/kerberosIV directory:
+
+The file master_key contains a copy of the master key under which the
+entire Kerberos database is encrypted. Disclosing this key would be bad
+news. The reason it is stored in the filesystem is because the following
+programs need to inspect or modify the kerberos database, and so the key
+must be available for them, (or else it would have to be typed in by
+hand):
+ - kerberos (the server itself)
+ - registerd (for new user registration)
+ - kpasswdd (for changing passwords)
+
+The srvtab file contains the encryption keys for each service on the local
+host. Any host offering network services would have a key here, although
+many such files can be used.
+
+The principal.* files comprise the Kerberos database itself, and contain
+keys for all principles, and should not be world-readable.
+
+The kerberos.conf file contains the configuration for this machine:
+ - which realm I'm in
+ - which servers I should talk to for this realm
+
+The kerberos.realms file contains the name of Kerberos servers for
+various (sub)domains.
+
+Kerberos log information it placed in /var/log/kerberos.log
+(see rc.local to change it)
+
+The register_keys directory contains a set of files (all of which begin
+with "."), each of which contains a des key used for registering new users
+with the system. It is used only by the "registerd" program, and only on
+a Kerberos server host.
diff --git a/etc/kerberosIV/krb.conf b/etc/kerberosIV/krb.conf
new file mode 100644
index 0000000..11ac1ac
--- /dev/null
+++ b/etc/kerberosIV/krb.conf
@@ -0,0 +1,9 @@
+CS.BERKELEY.EDU
+CS.BERKELEY.EDU okeeffe.berkeley.edu
+ATHENA.MIT.EDU kerberos.mit.edu
+ATHENA.MIT.EDU kerberos-1.mit.edu
+ATHENA.MIT.EDU kerberos-2.mit.edu
+ATHENA.MIT.EDU kerberos-3.mit.edu
+LCS.MIT.EDU kerberos.lcs.mit.edu
+TELECOM.MIT.EDU bitsy.mit.edu
+ARC.NASA.GOV trident.arc.nasa.gov
diff --git a/etc/kerberosIV/krb.realms b/etc/kerberosIV/krb.realms
new file mode 100644
index 0000000..1f1bec5
--- /dev/null
+++ b/etc/kerberosIV/krb.realms
@@ -0,0 +1,3 @@
+.berkeley.edu CS.BERKELEY.EDU
+.MIT.EDU ATHENA.MIT.EDU
+.mit.edu ATHENA.MIT.EDU
diff --git a/etc/locale.alias b/etc/locale.alias
new file mode 100644
index 0000000..6e6daa9
--- /dev/null
+++ b/etc/locale.alias
@@ -0,0 +1,76 @@
+# $FreeBSD$
+
+ASCII en_US.US-ASCII
+US-ASCII en_US.US-ASCII
+af_ZA.ISO_8859-1 af_ZA.ISO8859-1
+af_ZA.ISO_8859-15 af_ZA.ISO8859-15
+cs_CZ.ISO_8859-2 cs_CZ.ISO8859-2
+da_DK.ISO_8859-1 da_DK.ISO8859-1
+da_DK.ISO_8859-15 da_DK.ISO8859-15
+de_AT.ISO_8859-1 de_AT.ISO8859-1
+de_AT.ISO_8859-15 de_AT.ISO8859-15
+de_CH.ISO_8859-1 de_CH.ISO8859-1
+de_CH.ISO_8859-15 de_CH.ISO8859-15
+de_DE.ISO_8859-1 de_DE.ISO8859-1
+de_DE.ISO_8859-15 de_DE.ISO8859-15
+el_GR.ISO_8859-7 el_GR.ISO8859-7
+en_AU.ISO_8859-1 en_AU.ISO8859-1
+en_AU.ISO_8859-15 en_AU.ISO8859-15
+en_CA.ISO_8859-1 en_CA.ISO8859-1
+en_CA.ISO_8859-15 en_CA.ISO8859-15
+en_GB.ISO_8859-1 en_GB.ISO8859-1
+en_GB.ISO_8859-15 en_GB.ISO8859-15
+en_NZ.ISO_8859-1 en_NZ.ISO8859-1
+en_NZ.ISO_8859-15 en_NZ.ISO8859-15
+en_US.ISO_8859-1 en_US.ISO8859-1
+en_US.ISO_8859-15 en_US.ISO8859-15
+es_ES.ISO_8859-1 es_ES.ISO8859-1
+es_ES.ISO_8859-15 es_ES.ISO8859-15
+et_EE.ISO_8859-15 et_EE.ISO8859-15
+fi_FI.ISO_8859-1 fi_FI.ISO8859-1
+fi_FI.ISO_8859-15 fi_FI.ISO8859-15
+fr_BE.ISO_8859-1 fr_BE.ISO8859-1
+fr_BE.ISO_8859-15 fr_BE.ISO8859-15
+fr_CA.ISO_8859-1 fr_CA.ISO8859-1
+fr_CA.ISO_8859-15 fr_CA.ISO8859-15
+fr_CH.ISO_8859-1 fr_CH.ISO8859-1
+fr_CH.ISO_8859-15 fr_CH.ISO8859-15
+fr_FR.ISO_8859-1 fr_FR.ISO8859-1
+fr_FR.ISO_8859-15 fr_FR.ISO8859-15
+hr_HR.ISO_8859-2 hr_HR.ISO8859-2
+hu_HU.ISO_8859-2 hu_HU.ISO8859-2
+is_IS.ISO_8859-1 is_IS.ISO8859-1
+is_IS.ISO_8859-15 is_IS.ISO8859-15
+it_CH.ISO_8859-1 it_CH.ISO8859-1
+it_CH.ISO_8859-15 it_CH.ISO8859-15
+it_IT.ISO_8859-1 it_IT.ISO8859-1
+it_IT.ISO_8859-15 it_IT.ISO8859-15
+ja_JP.EUC ja_JP.eucJP
+ja_JP.Shift_JIS ja_JP.SJIS
+ko_KR.EUC ko_KR.eucKR
+la_LN.ASCII la_LN.US-ASCII
+la_LN.ISO_8859-1 la_LN.ISO8859-1
+la_LN.ISO_8859-15 la_LN.ISO8859-15
+la_LN.ISO_8859-2 la_LN.ISO8859-2
+la_LN.ISO_8859-4 la_LN.ISO8859-4
+lt_LT.ISO_8859-4 lt_LT.ISO8859-4
+nl_BE.ISO_8859-1 nl_BE.ISO8859-1
+nl_BE.ISO_8859-15 nl_BE.ISO8859-15
+nl_NL.ISO_8859-1 nl_NL.ISO8859-1
+nl_NL.ISO_8859-15 nl_NL.ISO8859-15
+no_NO.ISO_8859-1 no_NO.ISO8859-1
+no_NO.ISO_8859-15 no_NO.ISO8859-15
+pl_PL.ISO_8859-2 pl_PL.ISO8859-2
+pt_PT.ISO_8859-1 pt_PT.ISO8859-1
+pt_PT.ISO_8859-15 pt_PT.ISO8859-15
+ru_SU.CP866 ru_RU.CP866
+ru_RU.ISO_8859-5 ru_RU.ISO8859-5
+ru_SU.ISO8859-5 ru_RU.ISO8859-5
+ru_SU.ISO_8859-5 ru_RU.ISO8859-5
+ru_SU.KOI8-R ru_RU.KOI8-R
+sk_SK.ISO_8859-2 sk_SK.ISO8859-2
+sl_SI.ISO_8859-2 sl_SI.ISO8859-2
+sv_SE.ISO_8859-1 sv_SE.ISO8859-1
+sv_SE.ISO_8859-15 sv_SE.ISO8859-15
+tr_TR.ISO_8859-9 tr_TR.ISO8859-9
+zh_CN.EUC zh_CN.eucCN
diff --git a/etc/locale.deprecated b/etc/locale.deprecated
new file mode 100644
index 0000000..cc314ef
--- /dev/null
+++ b/etc/locale.deprecated
@@ -0,0 +1,17 @@
+# $FreeBSD$
+#
+# List of deprecated locales
+#
+# Make sure that deprecated locale directories and their replacements
+# are set up correctly.
+#
+# Format:
+# <deprecated_locale> <new_locale>
+#
+ja_JP.EUC ja_JP.eucJP
+ko_KR.EUC ko_KR.eucKR
+ru_RU.ISO_8859-5 ru_RU.ISO8859-5
+ru_SU.CP866 ru_RU.CP866
+ru_SU.ISO_8859-5 ru_RU.ISO8859-5
+ru_SU.KOI8-R ru_RU.KOI8-R
+zh_CN.EUC zh_CN.eucCN
diff --git a/etc/login.access b/etc/login.access
new file mode 100644
index 0000000..8d20467
--- /dev/null
+++ b/etc/login.access
@@ -0,0 +1,46 @@
+# $FreeBSD$
+#
+# Login access control table.
+#
+# When someone logs in, the table is scanned for the first entry that
+# matches the (user, host) combination, or, in case of non-networked
+# logins, the first entry that matches the (user, tty) combination. The
+# permissions field of that table entry determines whether the login will
+# be accepted or refused.
+#
+# Format of the login access control table is three fields separated by a
+# ":" character:
+#
+# permission : users : origins
+#
+# The first field should be a "+" (access granted) or "-" (access denied)
+# character. The second field should be a list of one or more login names,
+# group names, or ALL (always matches). The third field should be a list
+# of one or more tty names (for non-networked logins), host names, domain
+# names (begin with "."), host addresses, internet network numbers (end
+# with "."), ALL (always matches) or LOCAL (matches any string that does
+# not contain a "." character). If you run NIS you can use @netgroupname
+# in host or user patterns.
+#
+# The EXCEPT operator makes it possible to write very compact rules.
+#
+# The group file is searched only when a name does not match that of the
+# logged-in user. Only groups are matched in which users are explicitly
+# listed: the program does not look at a user's primary group id value.
+#
+##############################################################################
+#
+# Disallow console logins to all but a few accounts.
+#
+#-:ALL EXCEPT wheel shutdown sync:console
+#
+# Disallow non-local logins to privileged accounts (group wheel).
+#
+#-:wheel:ALL EXCEPT LOCAL .win.tue.nl
+#
+# Some accounts are not allowed to login from anywhere:
+#
+#-:wsbscaro wsbsecr wsbspac wsbsym wscosor wstaiwde:ALL
+#
+# All other accounts are allowed to login from anywhere.
+#
diff --git a/etc/login.conf b/etc/login.conf
new file mode 100644
index 0000000..c96dcae
--- /dev/null
+++ b/etc/login.conf
@@ -0,0 +1,316 @@
+# login.conf - login class capabilities database.
+#
+# Remember to rebuild the database after each change to this file:
+#
+# cap_mkdb /etc/login.conf
+#
+# This file controls resource limits, accounting limits and
+# default user environment settings.
+#
+# $FreeBSD$
+#
+
+# Default settings effectively disable resource limits, see the
+# examples below for a starting point to enable them.
+
+# defaults
+# These settings are used by login(1) by default for classless users
+# Note that entries like "cputime" set both "cputime-cur" and "cputime-max"
+
+default:\
+ :passwd_format=md5:\
+ :copyright=/etc/COPYRIGHT:\
+ :welcome=/etc/motd:\
+ :setenv=MAIL=/var/mail/$,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES:\
+ :path=/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin /usr/X11R6/bin ~/bin:\
+ :nologin=/var/run/nologin:\
+ :cputime=unlimited:\
+ :datasize=unlimited:\
+ :stacksize=unlimited:\
+ :memorylocked=unlimited:\
+ :memoryuse=unlimited:\
+ :filesize=unlimited:\
+ :coredumpsize=unlimited:\
+ :openfiles=unlimited:\
+ :maxproc=unlimited:\
+ :sbsize=unlimited:\
+ :vmemoryuse=unlimited:\
+ :priority=0:\
+ :ignoretime@:\
+ :umask=022:
+
+
+#
+# A collection of common class names - forward them all to 'default'
+# (login would normally do this anyway, but having a class name
+# here suppresses the diagnostic)
+#
+standard:\
+ :tc=default:
+xuser:\
+ :tc=default:
+staff:\
+ :tc=default:
+daemon:\
+ :tc=default:
+news:\
+ :tc=default:
+dialer:\
+ :tc=default:
+
+#
+# Root can always login
+#
+# N.B. login_getpwclass(3) will use this entry for the root account,
+# in preference to 'default'.
+root:\
+ :ignorenologin:\
+ :tc=default:
+
+#
+# Russian Users Accounts. Setup proper environment variables.
+#
+russian|Russian Users Accounts:\
+ :charset=KOI8-R:\
+ :lang=ru_RU.KOI8-R:\
+ :tc=default:
+
+
+######################################################################
+######################################################################
+##
+## Example entries
+##
+######################################################################
+######################################################################
+
+## Example defaults
+## These settings are used by login(1) by default for classless users
+## Note that entries like "cputime" set both "cputime-cur" and "cputime-max"
+#
+#default:\
+# :cputime=infinity:\
+# :datasize-cur=22M:\
+# :stacksize-cur=8M:\
+# :memorylocked-cur=10M:\
+# :memoryuse-cur=30M:\
+# :filesize=infinity:\
+# :coredumpsize=infinity:\
+# :maxproc-cur=64:\
+# :openfiles-cur=64:\
+# :priority=0:\
+# :requirehome@:\
+# :umask=022:\
+# :tc=auth-defaults:
+#
+#
+##
+## standard - standard user defaults
+##
+#standard:\
+# :copyright=/etc/COPYRIGHT:\
+# :welcome=/etc/motd:\
+# :setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\
+# :path=~/bin /bin /usr/bin /usr/local/bin:\
+# :manpath=/usr/share/man /usr/local/man:\
+# :nologin=/var/run/nologin:\
+# :cputime=1h30m:\
+# :datasize=8M:\
+# :vmemoryuse=100M:\
+# :stacksize=2M:\
+# :memorylocked=4M:\
+# :memoryuse=8M:\
+# :filesize=8M:\
+# :coredumpsize=8M:\
+# :openfiles=24:\
+# :maxproc=32:\
+# :priority=0:\
+# :requirehome:\
+# :passwordtime=90d:\
+# :umask=002:\
+# :ignoretime@:\
+# :tc=default:
+#
+#
+##
+## users of X (needs more resources!)
+##
+#xuser:\
+# :manpath=/usr/share/man /usr/X11R6/man /usr/local/man:\
+# :cputime=4h:\
+# :datasize=12M:\
+# :vmemoryuse=infinity:\
+# :stacksize=4M:\
+# :filesize=8M:\
+# :memoryuse=16M:\
+# :openfiles=32:\
+# :maxproc=48:\
+# :tc=standard:
+#
+#
+##
+## Staff users - few restrictions and allow login anytime
+##
+#staff:\
+# :ignorenologin:\
+# :ignoretime:\
+# :requirehome@:\
+# :accounted@:\
+# :path=~/bin /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin:\
+# :umask=022:\
+# :tc=standard:
+#
+#
+##
+## root - fallback for root logins
+##
+#root:\
+# :path=~/bin /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin:\
+# :cputime=infinity:\
+# :datasize=infinity:\
+# :stacksize=infinity:\
+# :memorylocked=infinity:\
+# :memoryuse=infinity:\
+# :filesize=infinity:\
+# :coredumpsize=infinity:\
+# :openfiles=infinity:\
+# :maxproc=infinity:\
+# :memoryuse-cur=32M:\
+# :maxproc-cur=64:\
+# :openfiles-cur=1024:\
+# :priority=0:\
+# :requirehome@:\
+# :umask=022:\
+# :tc=auth-root-defaults:
+#
+#
+##
+## Settings used by /etc/rc
+##
+#daemon:\
+# :coredumpsize@:\
+# :coredumpsize-cur=0:\
+# :datasize=infinity:\
+# :datasize-cur@:\
+# :maxproc=512:\
+# :maxproc-cur@:\
+# :memoryuse-cur=64M:\
+# :memorylocked-cur=64M:\
+# :openfiles=1024:\
+# :openfiles-cur@:\
+# :stacksize=16M:\
+# :stacksize-cur@:\
+# :tc=default:
+#
+#
+##
+## Settings used by news subsystem
+##
+#news:\
+# :path=/usr/local/news/bin /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin:\
+# :cputime=infinity:\
+# :filesize=128M:\
+# :datasize-cur=64M:\
+# :stacksize-cur=32M:\
+# :coredumpsize-cur=0:\
+# :maxmemorysize-cur=128M:\
+# :memorylocked=32M:\
+# :maxproc=128:\
+# :openfiles=256:\
+# :tc=default:
+#
+#
+##
+## The dialer class should be used for a dialup PPP/SLIP accounts
+## Welcome messages/news suppressed
+##
+#dialer:\
+# :hushlogin:\
+# :requirehome@:\
+# :cputime=unlimited:\
+# :filesize=2M:\
+# :datasize=2M:\
+# :stacksize=4M:\
+# :coredumpsize=0:\
+# :memoryuse=4M:\
+# :memorylocked=1M:\
+# :maxproc=16:\
+# :openfiles=32:\
+# :tc=standard:
+#
+#
+##
+## Site full-time 24/7 PPP/SLIP connections
+## - no time accounting, restricted to access via dialin lines
+##
+#site:\
+# :ignoretime:\
+# :passwordtime@:\
+# :refreshtime@:\
+# :refreshperiod@:\
+# :sessionlimit@:\
+# :autodelete@:\
+# :expireperiod@:\
+# :graceexpire@:\
+# :gracetime@:\
+# :warnexpire@:\
+# :warnpassword@:\
+# :idletime@:\
+# :sessiontime@:\
+# :daytime@:\
+# :weektime@:\
+# :monthtime@:\
+# :warntime@:\
+# :accounted@:\
+# :tc=dialer:\
+# :tc=staff:
+#
+#
+##
+## Example standard accounting entries for subscriber levels
+##
+#
+#subscriber|Subscribers:\
+# :accounted:\
+# :refreshtime=180d:\
+# :refreshperiod@:\
+# :sessionlimit@:\
+# :autodelete=30d:\
+# :expireperiod=180d:\
+# :graceexpire=7d:\
+# :gracetime=10m:\
+# :warnexpire=7d:\
+# :warnpassword=7d:\
+# :idletime=30m:\
+# :sessiontime=4h:\
+# :daytime=6h:\
+# :weektime=40h:\
+# :monthtime=120h:\
+# :warntime=4h:\
+# :tc=standard:
+#
+#
+##
+## Subscriber accounts. These accounts have their login times
+## accounted and have access limits applied.
+##
+#subppp|PPP Subscriber Accounts:\
+# :tc=dialer:\
+# :tc=subscriber:
+#
+#
+#subslip|SLIP Subscriber Accounts:\
+# :tc=dialer:\
+# :tc=subscriber:
+#
+#
+#subshell|Shell Subscriber Accounts:\
+# :tc=subscriber:
+#
+##
+## If you want some of the accounts to use traditional UNIX DES based
+## password hashes.
+##
+#des_users:\
+# :passwd_format=des:\
+# :tc=default:
diff --git a/etc/mail/Makefile b/etc/mail/Makefile
new file mode 100644
index 0000000..e4323b6
--- /dev/null
+++ b/etc/mail/Makefile
@@ -0,0 +1,237 @@
+#
+# $FreeBSD$
+#
+# This Makefile provides an easy way to generate the configuration
+# file and database maps for the sendmail(8) daemon.
+#
+# The user-driven targets are:
+#
+# all - Build cf, maps and aliases
+# cf - Build the .cf file from .mc file
+# maps - Build the feature maps
+# aliases - Build the sendmail aliases
+# install - Install the .cf file as /etc/mail/sendmail.cf
+#
+# For acting on both the MTA daemon and MSP queue running daemon:
+# start - Start both the sendmail MTA daemon and MSP queue running
+# daemon with the flags defined in /etc/defaults/rc.conf or
+# /etc/rc.conf
+# stop - Stop both the sendmail MTA daemon and MSP queue running
+# daemon
+# restart - Restart both the sendmail MTA daemon and MSP queue running
+# daemon
+#
+# For acting on just the MTA daemon:
+# start-mta - Start the sendmail MTA daemon with the flags defined in
+# /etc/defaults/rc.conf or /etc/rc.conf
+# stop-mta - Stop the sendmail MTA daemon
+# restart-mta - Restart the sendmail MTA daemon
+#
+# For acting on just the MSP queue running daemon:
+# start-mspq - Start the sendmail MSP queue running daemon with the
+# flags defined in /etc/defaults/rc.conf or /etc/rc.conf
+# stop-mspq - Stop the sendmail MSP queue running daemon
+# restart-mspq - Restart the sendmail MSP queue running daemon
+#
+# Calling `make' will generate the updated versions when either the
+# aliases or one of the map files were changed.
+#
+# A `make install` is only necessary after modifying the .mc file. In
+# this case one would normally also call `make restart' to allow the
+# running sendmail to pick up the changes as well.
+#
+# ------------------------------------------------------------------------
+# This Makefile uses `<HOSTNAME>.mc' as the default MTA .mc file. This
+# can be changed by defining SENDMAIL_MC in /etc/make.conf, e.g.:
+#
+# SENDMAIL_MC=/etc/mail/myconfig.mc
+#
+# If '<HOSTNAME>.mc' does not exist, it is created using 'freebsd.mc'
+# as a template.
+#
+# It also uses 'freebsd.submit.mc' as the default mail submission .mc file.
+# This can be changed by defining SENDMAIL_SUBMIT_MC in /etc/make.conf,
+# e.g.:
+#
+# SENDMAIL_SUBMIT_MC=/etc/mail/mysubmit.mc
+# ------------------------------------------------------------------------
+#
+# The Makefile knows about the following maps:
+# access, bitdomain, domaintable, genericstable, mailertable, userdb,
+# uucpdomain, virtusertable
+#
+
+.ifndef SENDMAIL_MC
+SENDMAIL_MC!= hostname
+SENDMAIL_MC:= ${SENDMAIL_MC}.mc
+
+${SENDMAIL_MC}:
+ cp freebsd.mc ${SENDMAIL_MC}
+.endif
+
+SENDMAIL_SUBMIT_MC?= freebsd.submit.mc
+
+INSTALL_CF= ${SENDMAIL_MC:R}.cf
+
+.ifndef SENDMAIL_SET_USER_ID
+INSTALL_SUBMIT_CF= ${SENDMAIL_SUBMIT_MC:R}.cf
+.endif
+
+SENDMAIL_ALIASES?= /etc/mail/aliases
+
+#
+# This is the directory where the sendmail configuration files are
+# located.
+#
+.if exists(/usr/share/sendmail/cf)
+SENDMAIL_CF_DIR?= /usr/share/sendmail/cf
+.elif exists(/usr/src/contrib/sendmail/cf)
+SENDMAIL_CF_DIR?= /usr/src/contrib/sendmail/cf
+.endif
+
+#
+# The sendmail startup script
+#
+SENDMAIL_START_SCRIPT?= /etc/rc.sendmail
+
+#
+# Some useful programs we need.
+#
+SENDMAIL?= /usr/sbin/sendmail
+MAKEMAP?= /usr/sbin/makemap
+M4?= /usr/bin/m4
+
+# Permissions for generated maps
+SENDMAIL_MAP_PERMS?= 0640
+
+# Set a reasonable default
+.MAIN: all
+
+#
+# ------------------------------------------------------------------------
+#
+# The Makefile picks up the list of files from SENDMAIL_MAP_SRC and
+# stores the matching .db filenames in SENDMAIL_MAP_OBJ if the file
+# exists in the current directory. SENDMAIL_MAP_TYPE is the database
+# type to use when calling makemap.
+#
+SENDMAIL_MAP_SRC+= mailertable domaintable bitdomain uucpdomain \
+ genericstable virtusertable access
+SENDMAIL_MAP_OBJ=
+SENDMAIL_MAP_TYPE?= hash
+
+.for _f in ${SENDMAIL_MAP_SRC} userdb
+.if exists(${_f})
+SENDMAIL_MAP_OBJ+= ${_f}.db
+.endif
+.endfor
+
+#
+# The makemap command is used to generate a hashed map from the textfile.
+#
+.for _f in ${SENDMAIL_MAP_SRC}
+.if (exists(${_f}.sample) && !exists(${_f}))
+${_f}: ${_f}.sample
+ sed -e 's/^/#/' < ${.OODATE} > ${.TARGET}
+.endif
+
+${_f}.db: ${_f}
+ ${MAKEMAP} ${SENDMAIL_MAP_TYPE} ${.TARGET} < ${.OODATE}
+ chmod ${SENDMAIL_MAP_PERMS} ${.TARGET}
+.endfor
+
+userdb.db: userdb
+ ${MAKEMAP} btree ${.TARGET} < ${.OODATE}
+ chmod ${SENDMAIL_MAP_PERMS} ${.TARGET}
+
+
+#
+# The .cf file needs to be recreated if the templates were modified.
+#
+M4FILES!= find ${SENDMAIL_CF_DIR} -type f -name '*.m4' -print
+
+#
+# M4(1) is used to generate the .cf file from the .mc file.
+#
+.SUFFIXES: .cf .mc
+
+.mc.cf: ${M4FILES}
+ ${M4} -D_CF_DIR_=${SENDMAIL_CF_DIR}/ ${SENDMAIL_M4_FLAGS} \
+ ${SENDMAIL_CF_DIR}/m4/cf.m4 ${@:R}.mc > ${.TARGET}
+
+#
+# Aliases are handled separately since they normally reside in /etc
+# and can be rebuild without the help of makemap.
+#
+${SENDMAIL_ALIASES}.db: ${SENDMAIL_ALIASES}
+ ${SENDMAIL} -bi
+ chmod ${SENDMAIL_MAP_PERMS} ${.TARGET}
+
+#
+# ------------------------------------------------------------------------
+#
+
+all: cf maps aliases
+
+clean:
+
+depend:
+
+cf: ${INSTALL_CF} ${INSTALL_SUBMIT_CF}
+
+.ifdef SENDMAIL_SET_USER_ID
+install: install-cf
+.else
+install: install-cf install-submit-cf
+.endif
+
+install-cf: ${INSTALL_CF}
+.if ${INSTALL_CF} != /etc/mail/sendmail.cf
+ ${INSTALL} -m ${SHAREMODE} ${INSTALL_CF} /etc/mail/sendmail.cf
+.endif
+
+
+install-submit-cf: ${INSTALL_SUBMIT_CF}
+.ifdef SENDMAIL_SET_USER_ID
+ @echo ">>> ERROR: You should not create a submit.cf file if you are using a"
+ @echo " set-user-ID sendmail binary (SENDMAIL_SET_USER_ID is set"
+ @echo " in make.conf)."
+ @false
+.else
+.if ${INSTALL_SUBMIT_CF} != /etc/mail/submit.cf
+ ${INSTALL} -m ${SHAREMODE} ${INSTALL_SUBMIT_CF} /etc/mail/submit.cf
+.endif
+.endif
+
+aliases: ${SENDMAIL_ALIASES}.db
+
+maps: ${SENDMAIL_MAP_OBJ}
+
+start start-mta start-mspq:
+ @if [ -r ${SENDMAIL_START_SCRIPT} ]; then \
+ echo -n 'Starting:'; \
+ sh ${SENDMAIL_START_SCRIPT} $@; \
+ echo '.'; \
+ fi
+
+stop stop-mta stop-mspq:
+ @if [ -r ${SENDMAIL_START_SCRIPT} ]; then \
+ echo -n 'Stopping:'; \
+ sh ${SENDMAIL_START_SCRIPT} $@; \
+ echo '.'; \
+ fi
+
+restart restart-mta restart-mspq:
+ @if [ -r ${SENDMAIL_START_SCRIPT} ]; then \
+ echo -n 'Restarting:'; \
+ sh ${SENDMAIL_START_SCRIPT} $@; \
+ echo '.'; \
+ fi
+
+# User defined targets
+.if exists(Makefile.local)
+.include "Makefile.local"
+.endif
+
+# For the definition of $SHAREMODE
+.include <bsd.own.mk>
diff --git a/etc/mail/README b/etc/mail/README
new file mode 100644
index 0000000..fd7c8f6
--- /dev/null
+++ b/etc/mail/README
@@ -0,0 +1,58 @@
+# $FreeBSD$
+
+ Sendmail Processes
+
+As of sendmail 8.12, in order to improve security, the sendmail binary no
+longer needs to be set-user-ID root. Instead, a set-group-ID binary
+accepts command line mail and relays it to a full mail transfer agent via
+SMTP. A group writable client mail queue (/var/spool/clientmqueue/ by
+default) holds the mail if an MTA can not be contacted.
+
+To accomplish this, under the default setup, an MTA must be listening on
+localhost port 25. If the rc.conf sendmail_enable option is set to "NO",
+a sendmail daemon will still be started and bound only to the localhost
+interface in order to accept command line submitted mail (note that this
+does not work inside jail(2) systems as jails do not allow binding to
+just the localhost interface). If this is not a desirable solution, it
+can be disabled using the sendmail_submit_enable rc.conf option. However,
+if both sendmail_enable and sendmail_submit_enable are set to "NO", you
+must do one of two things for command line submitted mail:
+
+1. Designate an alternative host for the submission agent to contact
+ by altering /etc/mail/freebsd.submit.mc (or setting SENDMAIL_SUBMIT_MC
+ in /etc/make.conf to an alternate .mc file) and using
+ 'make install-submit-cf' in /etc/mail/. Change the FEATURE(msp) line
+ to FEATURE(msp, hostname) where hostname is the fully qualified hostname
+ of the alternative host.
+
+Or:
+
+2. Return to using a set-user-ID root sendmail binary by changing the
+ ownership and permissions on the sendmail binary and removing the
+ /etc/mail/submit.cf file:
+ chown root /usr/libexec/sendmail/sendmail
+ chmod 4755 /usr/libexec/sendmail/sendmail
+ rm /etc/mail/submit.cf
+ If you install from source, set the SENDMAIL_SET_USER_ID flag in
+ /etc/make.conf.
+
+Also, as of 8.12, a new queue-running daemon is started to make sure mail
+doesn't remain in the client mail queue. By default, it simply runs the
+client mail queue every 30 minutes. Its behavior can be adjusted by setting
+the sendmail_msp_queue_enable and sendmail_msp_queue_flags rc.conf options.
+
+
+ Filtering out SPAM from your site
+
+Sendmail now includes excellent tools to block spam. These tools are
+available as FEATUREs that you can add to your site's .mc file. Proper use
+of these FEATUREs will prevent spammer from using your site as a relay as
+well as significantly decrease the amount of spam that arrives at your
+site. No set of anti-spam tools will block all spam without blocking some
+portion of legitimate mail as well. Therefore, these FEATUREs are designed
+to prevent as much spam as possible without blocking legitimate mail.
+
+These tools are discussed in /usr/share/sendmail/cf/README. Read the
+section entitled "ANTI-SPAM CONFIGURATION CONTROL". Example usage and
+additional tools can be found in /usr/share/sendmail/cf/cf/knecht.mc.
+
diff --git a/etc/mail/access.sample b/etc/mail/access.sample
new file mode 100644
index 0000000..81c7c3f
--- /dev/null
+++ b/etc/mail/access.sample
@@ -0,0 +1,10 @@
+# $FreeBSD$
+#
+# Mail relay access control list. Default is to reject mail unless the
+# destination is local, or listed in /etc/mail/local-host-names
+#
+cyberspammer.com 550 We don't accept mail from spammers
+FREE.STEALTH.MAILER@ 550 We don't accept mail from spammers
+another.source.of.spam REJECT
+okay.cyberspammer.com OK
+128.32 RELAY
diff --git a/etc/mail/aliases b/etc/mail/aliases
new file mode 100644
index 0000000..d3b6a2f
--- /dev/null
+++ b/etc/mail/aliases
@@ -0,0 +1,70 @@
+# $FreeBSD$
+# @(#)aliases 5.3 (Berkeley) 5/24/90
+#
+# Aliases in this file will NOT be expanded in the header from
+# Mail, but WILL be visible over networks.
+#
+# >>>>>>>>>> The program "newaliases" must be run after
+# >> NOTE >> this file is updated for any changes to
+# >>>>>>>>>> show through to sendmail.
+#
+#
+# See also RFC 2142, `MAILBOX NAMES FOR COMMON SERVICES, ROLES
+# AND FUNCTIONS', May 1997
+
+# Pretty much everything else in this file points to "root", so
+# you would do well in either reading root's mailbox or forwarding
+# root's email from here.
+
+# root: me@my.domain
+
+# Basic system aliases -- these MUST be present
+MAILER-DAEMON: postmaster
+postmaster: root
+
+# General redirections for pseudo accounts
+bin: root
+bind: root
+daemon: root
+games: root
+kmem: root
+mailnull: postmaster
+man: root
+news: root
+nobody: root
+operator: root
+pop: root
+smmsp: postmaster
+sshd: root
+system: root
+toor: root
+tty: root
+usenet: news
+uucp: root
+xten: root
+
+# Well-known aliases -- these should be filled in!
+# manager:
+# dumper:
+
+# BUSINESS-RELATED MAILBOX NAMES
+# info:
+# marketing:
+# sales:
+# support:
+
+# NETWORK OPERATIONS MAILBOX NAMES
+abuse: root
+# noc: root
+security: root
+
+# SUPPORT MAILBOX NAMES FOR SPECIFIC INTERNET SERVICES
+ftp: root
+ftp-bugs: ftp
+# hostmaster: root
+# webmaster: root
+# www: webmaster
+
+# msgs: "| /usr/bin/msgs -s"
+# bit-bucket: /dev/null
+# dev-null: bit-bucket
diff --git a/etc/mail/mailer.conf b/etc/mail/mailer.conf
new file mode 100644
index 0000000..3fa6922
--- /dev/null
+++ b/etc/mail/mailer.conf
@@ -0,0 +1,10 @@
+# $FreeBSD$
+#
+# Execute the "real" sendmail program, named /usr/libexec/sendmail/sendmail
+#
+sendmail /usr/libexec/sendmail/sendmail
+send-mail /usr/libexec/sendmail/sendmail
+mailq /usr/libexec/sendmail/sendmail
+newaliases /usr/libexec/sendmail/sendmail
+hoststat /usr/libexec/sendmail/sendmail
+purgestat /usr/libexec/sendmail/sendmail
diff --git a/etc/mail/mailertable.sample b/etc/mail/mailertable.sample
new file mode 100644
index 0000000..d2c45e0
--- /dev/null
+++ b/etc/mail/mailertable.sample
@@ -0,0 +1,7 @@
+# $FreeBSD$
+#
+# List of domains (possibly wildcarded) and destination mailers
+#
+.my.domain xnet:%1.my.domain
+uuhost1.my.domain suucp:uuhost1
+.bitnet smtp:relay.bit.net
diff --git a/etc/mail/virtusertable.sample b/etc/mail/virtusertable.sample
new file mode 100644
index 0000000..43e2bbb
--- /dev/null
+++ b/etc/mail/virtusertable.sample
@@ -0,0 +1,11 @@
+# $FreeBSD$
+#
+# Map one or all usernames at a source hostname to a specific (or the same)
+# username at another target hostname. Remember to add the source hostname
+# to /etc/mail/local-host-names so that sendmail will accept mail for the
+# source hostname.
+#
+username@a.sample.hostname localuser
+username@a.sample.hostname specificuser@a.possibly.different.hostname
+@another.sample.hostname specificuser@a.possibly.different.hostname
+@yet.another.sample.hostname %1@a.possibly.different.hostname
diff --git a/etc/man.alias b/etc/man.alias
new file mode 100644
index 0000000..0268403
--- /dev/null
+++ b/etc/man.alias
@@ -0,0 +1,4 @@
+# $FreeBSD$
+
+en.ISO8859-15 en.ISO8859-1
+
diff --git a/etc/master.passwd b/etc/master.passwd
new file mode 100644
index 0000000..3f9969d
--- /dev/null
+++ b/etc/master.passwd
@@ -0,0 +1,21 @@
+# $FreeBSD$
+#
+root::0:0::0:0:Charlie &:/root:/bin/csh
+toor:*:0:0::0:0:Bourne-again Superuser:/root:
+daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin
+operator:*:2:5::0:0:System &:/:/sbin/nologin
+bin:*:3:7::0:0:Binaries Commands and Source:/:/sbin/nologin
+tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin
+kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin
+games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin
+news:*:8:8::0:0:News Subsystem:/:/sbin/nologin
+man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin
+sshd:*:22:22::0:0:Secure Shell Daemon:/var/empty:/sbin/nologin
+smmsp:*:25:25::0:0:Sendmail Submission User:/var/spool/clientmqueue:/sbin/nologin
+mailnull:*:26:26::0:0:Sendmail Default User:/var/spool/mqueue:/sbin/nologin
+bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin
+uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico
+xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin
+pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin
+www:*:80:80::0:0:World Wide Web Owner:/nonexistent:/sbin/nologin
+nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin
diff --git a/etc/minfree b/etc/minfree
new file mode 100644
index 0000000..c873496
--- /dev/null
+++ b/etc/minfree
@@ -0,0 +1 @@
+2048
diff --git a/etc/modems b/etc/modems
new file mode 100644
index 0000000..422c5ff
--- /dev/null
+++ b/etc/modems
@@ -0,0 +1,34 @@
+#
+# $FreeBSD$
+# @(#)modems 3/24/95
+#
+# modems -- modem configuration data base file
+# see tip(1), modems(5)
+#
+# dial_command AT command to dial up remote
+# echo_off_command AT command to turn off command echo
+# escape_guard_time Shroud escape sequence with specified delay (ms)
+# escape_sequence Return to command escape sequence
+# hangup_command AT command to hangup modem
+# hw_flow_control Enable RTS/CTS flow control between DTE/DCE
+# intercharacter_delay Delay between characters sent to modem when issuing
+# commands
+# intercommand_delay Minimum delay between commands to modem
+# init_string AT command to initialize modem before dialing out
+# lock_baud Use fixed DTE / DCE bit rate
+# reset_delay Delay required by modem for reset
+#
+
+sportster|st|US Robotics Sportster 14.4K:dial_command=ATDT%s\r:hangup_command=ATH\r:\
+ :echo_off_command=ATE0\r:reset_command=AT&F1\r:\
+ :init_string=AT&B1&H1&R2&C1&D2\r:\
+ :escape_sequence=+++:hw_flow_control:lock_baud:intercharacter_delay#50:\
+ :intercommand_delay#250:escape_guard_time#500:reset_delay#2000:
+
+mt932|multitech|mt|Multitech 932:dial_command=ATDT%s\r:hangup_command=ATH\r:\
+ :echo_off_command=ATE0\r:reset_command=ATZ\r:\
+ :init_string=AT$BA0$SB38400&E1&E4&E13&E15Q0V1X4E0S0=0\r:\
+ :escape_sequence=+++:hw_flow_control:lock_baud:intercharacter_delay#50:\
+ :intercommand_delay#250:escape_guard_time#500:reset_delay#2000:
+
+generic|Generic AT command modem (use defaults):
diff --git a/etc/moduli b/etc/moduli
new file mode 100644
index 0000000..6b94e2e
--- /dev/null
+++ b/etc/moduli
@@ -0,0 +1,158 @@
+# $OpenBSD: moduli,v 1.1 2001/06/22 22:07:54 provos Exp $
+
+# Time Type Tests Tries Size Generator Modulus
+20010328182134 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF5449C221CB
+20010328182222 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF5449C95A43
+20010328182256 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF5449CC8CFB
+20010328182409 2 6 100 1023 5 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF5449D9BDB7
+20010328182628 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF5449FB6EF3
+20010328182708 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544A000153
+20010328182758 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544A06E9EB
+20010328182946 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544A1F2C93
+20010328183015 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544A206ADB
+20010328183112 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544A2A109B
+20010328183143 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544A2BC1BB
+20010328183301 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544A3ADCEB
+20010328183532 2 6 100 1023 5 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544A5E8BAF
+20010328183646 2 6 100 1023 5 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544A6D54D7
+20010328183712 2 6 100 1023 5 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544A6EC46F
+20010328184223 2 6 100 1023 5 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544AB8626F
+20010328184337 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544AC7DC73
+20010328184634 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544AEFF073
+20010328184714 2 6 100 1023 5 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544AF594FF
+20010328184807 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544AFEEC53
+20010328184910 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544B0B3513
+20010328185030 2 6 100 1023 5 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544B165707
+20010328185334 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544B3A9673
+20010328185423 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544B426623
+20010328185451 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544B4427DB
+20010328185637 2 6 100 1023 5 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544B5E3FC7
+20010328185720 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544B65964B
+20010328185757 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544B6A9373
+20010328185844 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544B7203B3
+20010328185933 2 6 100 1023 5 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544B7A9FFF
+20010328190006 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544B7DAAD3
+20010328190054 2 6 100 1023 5 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544B855C2F
+20010328190139 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544B8C53EB
+20010328190304 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544B9F26C3
+20010328190329 2 6 100 1023 5 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544BA00697
+20010328190412 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544BA54313
+20010328190506 2 6 100 1023 5 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544BAEEF27
+20010328190550 2 6 100 1023 2 DCFAC4EFE89F5B082962AB9A67E8D63E84FA491E5D3874978815868595469163DA0661E6208A8C2CD4F83893B53864ADFD2154E8D8EFA146BAD808562E4BF6C90348FD79EEB3387D93FC7943BC450BA55399BA3CF3DFBD0D4E71800007B0E9D5F12E7A2CB7EA4E49812E715F8DC570C478DC2DEB1C49B0AE87A5DF544BB5CE0B
+20010328200734 2 6 100 1534 5 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC33395187
+20010328201124 2 6 100 1534 2 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC334ED15B
+20010328201358 2 6 100 1534 5 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC3359FC07
+20010328201537 2 6 100 1534 2 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC335F7A83
+20010328201829 2 6 100 1534 2 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC336D1433
+20010328202120 2 6 100 1534 2 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC337B253B
+20010328202848 2 6 100 1534 5 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC33A3D43F
+20010328203335 2 6 100 1534 2 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC33BF24A3
+20010328204332 2 6 100 1534 2 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC34011B8B
+20010328204443 2 6 100 1534 5 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC3402A92F
+20010328204617 2 6 100 1534 2 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC3406D343
+20010328205458 2 6 100 1534 2 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC3436FA2B
+20010328210413 2 6 100 1534 2 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC3471CF1B
+20010328213513 2 6 100 1534 5 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC352AF5EF
+20010328215014 2 6 100 1534 2 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC358CC3CB
+20010328215520 2 6 100 1534 5 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC35A9B7FF
+20010328215733 2 6 100 1534 5 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC35B2927F
+20010328220114 2 6 100 1534 2 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC35C47323
+20010328220334 2 6 100 1534 2 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC35CFA9C3
+20010328220653 2 6 100 1534 5 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC35E0BB37
+20010328220915 2 6 100 1534 2 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC35E9CC23
+20010328221256 2 6 100 1534 5 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC35FD7D67
+20010328221457 2 6 100 1534 2 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC36052CCB
+20010328222639 2 6 100 1534 5 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC364A1E07
+20010328224126 2 6 100 1534 5 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC36AD5557
+20010328225125 2 6 100 1534 5 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC36EE57BF
+20010328225751 2 6 100 1534 2 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC3716A70B
+20010328225943 2 6 100 1534 2 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC371D010B
+20010328230054 2 6 100 1534 5 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC371EB5C7
+20010328230301 2 6 100 1534 2 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC37275F4B
+20010328230628 2 6 100 1534 2 6DFD16D9669EDAF42EF5D4EED82AA84B0541DEC2045B6AF55021A184F32BCADE614A114137022C9A8B41C09AFC38199E7305864F70A8708F37FC2127264ECF4FA32391F243CC62B89602D3813082679E5BDF496BA9DFA4C818AD21EC261B6F11841E6F2DE1574CE95095841DAF052868CCD5E9BFCA543E0934B50A76A598E693136DE2D479AEF3785D97BAFF4FB85AB8D46DA424C4CC5E11ABCAF718837E16350982BF8A27728318EC02C71ED164F57CDB121B72614B7B7C406613EC3738C3F3
+20010329000424 2 6 100 2046 2 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853ACAACAB
+20010329001637 2 6 100 2046 5 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853AE5BE0F
+20010329002229 2 6 100 2046 2 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853AEDE2D3
+20010329003652 2 6 100 2046 2 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853B0F32CB
+20010329005040 2 6 100 2046 2 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853B30E503
+20010329014643 2 6 100 2046 5 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853BC9AF57
+20010329021950 2 6 100 2046 2 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853C205263
+20010329023256 2 6 100 2046 2 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853C3F2E53
+20010329031049 2 6 100 2046 5 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853CA28BBF
+20010329032045 2 6 100 2046 2 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853CB81103
+20010329052113 2 6 100 2046 5 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853DF13B47
+20010329052449 2 6 100 2046 2 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853DF3ED53
+20010329060404 2 6 100 2046 5 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853E5D25E7
+20010329062856 2 6 100 2046 2 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853E9CF013
+20010329063152 2 6 100 2046 2 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853E9E1CEB
+20010329070601 2 6 100 2046 5 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853EF58B7F
+20010329071302 2 6 100 2046 5 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853F017697
+20010329072011 2 6 100 2046 2 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853F0E72D3
+20010329072445 2 6 100 2046 5 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853F14CE17
+20010329073641 2 6 100 2046 2 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853F2EEBA3
+20010329075209 2 6 100 2046 5 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853F52E927
+20010329080750 2 6 100 2046 2 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853F776F8B
+20010329084002 2 6 100 2046 2 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853FC98043
+20010329084744 2 6 100 2046 5 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853FD7EAAF
+20010329090209 2 6 100 2046 5 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993853FF9AF5F
+20010329093527 2 6 100 2046 2 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC3499385404E330B
+20010329094652 2 6 100 2046 5 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC349938540672D1F
+20010329103445 2 6 100 2046 2 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC349938540E4B213
+20010329111418 2 6 100 2046 5 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC34993854144947F
+20010329112031 2 6 100 2046 2 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC3499385414F223B
+20010329112413 2 6 100 2046 2 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC349938541522073
+20010329114209 2 6 100 2046 2 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC3499385417C8E53
+20010329125026 2 6 100 2046 2 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC3499385422E41AB
+20010329132045 2 6 100 2046 5 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC3499385427DD3FF
+20010329134105 2 6 100 2046 5 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC349938542AFA2D7
+20010329134914 2 6 100 2046 5 7ED0888B660A818F15E5F76A7F2BF10C99D74129DA04446C60116C9C800501060B8AFF075DCE0C08CEFDF695440E6F16FCCDB06359D080EF62D6485CBAEB94B92BE771D535B4EA9C5D14D84CD7649E25C7CFEA2C914486CC2BFDE77C4C0DF1D6DDED65FEE2F53A7FA690AFE38EE00C154FBAEFF935466B176CB0AED02458A552929F4EA7FC3E6F9F758DE7F22CC1F49641F492820441BDC109F0CE18F883FC93EA9AC4C1432682BA1C5B67BED8C861152A5F952A8CDCF1BCE02B8D93E80C113CE9FE2E4ACA49B2978B99A8C5FA231A77F5E7C604D44C7C6EA98D561294D4F7AB061432CAB8BBDCEC3659DE64F65265E6B9FC5F46879BB17CC349938542C04A37
+20010403222140 2 6 100 3190 5 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B0AB16DAF
+20010403225231 2 6 100 3190 5 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B0AC56CFF
+20010404053436 2 6 100 3190 5 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B0C2F4B7F
+20010404092851 2 6 100 3190 5 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B0D04E7F7
+20010404093943 2 6 100 3190 2 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B0D07794B
+20010404102659 2 6 100 3190 5 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B0D2BE8CF
+20010404112553 2 6 100 3190 2 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B0D5D012B
+20010404174625 2 6 100 3190 5 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B0EA59E17
+20010404184645 2 6 100 3190 5 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B0ED6DA4F
+20010404193402 2 6 100 3190 2 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B0EFB39B3
+20010404230716 2 6 100 3190 2 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B0FB07C1B
+20010405044433 2 6 100 3190 2 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B10DD9FC3
+20010405053429 2 6 100 3190 5 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B11038737
+20010405062826 2 6 100 3190 5 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B112E24E7
+20010405092601 2 6 100 3190 2 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B11C9E9FB
+20010405113007 2 6 100 3190 2 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B123803EB
+20010405122212 2 6 100 3190 2 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B12612ED3
+20010405182035 2 6 100 3190 5 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B13A25087
+20010405210758 2 6 100 3190 2 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B142C4E23
+20010405220222 2 6 100 3190 2 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B145878F3
+20010406020130 2 6 100 3190 2 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B152AF6AB
+20010406053538 2 6 100 3190 2 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B15E78C8B
+20010406073014 2 6 100 3190 5 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B1649BFEF
+20010406074100 2 6 100 3190 5 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B164D4E3F
+20010406103625 2 6 100 3190 2 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B16E07B33
+20010406131946 2 6 100 3190 2 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B17706243
+20010406170234 2 6 100 3190 5 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B182FD957
+20010406182949 2 6 100 3190 2 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B18768903
+20010406203157 2 6 100 3190 2 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B18DCFC3B
+20010407022825 2 6 100 3190 5 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B1A1AF797
+20010407071024 2 6 100 3190 5 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B1B1551E7
+20010407112402 2 6 100 3190 5 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B1BF78EC7
+20010407123215 2 6 100 3190 2 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B1C30021B
+20010407161504 2 6 100 3190 2 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B1CF27743
+20010407171629 2 6 100 3190 5 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B1D25FAD7
+20010407191502 2 6 100 3190 2 669BA3ED661F226A090BE5644A2BB4209371B78FC3E6848A095821993F59084CA5EE12052F977D01F0666F03F6573B199DFEC9AB94588C2C60DE3B3E7CF5094587919FCC3FB40A61C261E891A0F91D9FFC8F30CA12CF809DD8290DD786FA8B041FFAC5793C38F38757EA6790472AC2692185B554B0046E8C065C983C0ACC8D2F85AB4BEDF7CE233009218C9691FE44261580D4149F1D4471B0B5DF79E224252474EBC3B7B5490950BB438BF498E79F8794498B3A3B5FBB42829C3BBEA4067F28C23BE40377B986BD5443CCCF02405B8CCCAA09E8179F0168D4969994171A6AD98F81015BC84E10A44E1EFD2E0862C5D1AAFE99014715A36800DBD9A6C51C0226CC82A651DAE4F73D54C4D103C13D1C15CF8CCA67D5CB39F03C66F3B7467F8FFDCC5074CD0C1B2538FBF956971BF39314CEDD20E1B10DE16D86E10BE7FA5B1A706AEB4C356F49807A22072CD00559AF0A863788956651919E26A315EAD1D26E7C98FC4CFA35A0F04DD400A2991A1FFE5B271FEDE54375896A29F968BE1D511BA466A92AC3E3772709FC815B1D8C2753
+20010420002705 2 6 100 4094 2 65B5B9F5ECFADB4CCB38D1BC894302E95B4843290F1A7A40579DF3E2FF98C1D3DA9F210857C784433DF32ADF9E0C80121211690E1FFB41B8DB4E86AFE388A09C9BB2C98EDC581C2E65D57F61BB920C3D1B7B058B5FADFF65D607DAFF443B8BA1ACE1A3A7B16EA0713F62537C6689E3C4A0F61198F3B054FCF140CFADD8622C0E7621998331E59DA6F72E9D608D0E58F526E95F485C7CA30A416617DA3CCFF722BB82362606283D054B34B83ECDB4C91BAB835944010EBE5E9FA7B016ED89891DD553CC71B5CF76EDB2A184B377F670D6AF191763EEFD175E48EA37EE18B9E44E2D017D845C444C8111816819866E490B52F7F879A0C6F401CF7859674F93E304365F4E8CB8C312EFB725732A46D7CF0C9D2939AEE25F428CEFC90959DBF8ADD612F343EF9BFCA2FBA61BD4BF93E1E54626D227FDA812E18D071579AB4EEAC9901DAB183BCB0D9F48732D92CE66B386EAE5D8212C9FD156DC3F09B171B5603E17A468D244F3B6880EBCDA189BA9E23E4A4C6C2995ACF264F8CE9D54B27316343C0BC19221F75E6A2AC68011741695E599F73460B7A042E0461DB189CDCE223B40336BF2251AE3B363159960C9F63B47EFC43790D474DABB9A686DAF21E0DD76533749FCA9F144FA9C243CEF1364C79D981ED81DC4635C73B7F8908BA190AA920ED370F815BC2F9B3D28ED87BE34A01498836222C17B70C246C03CA1C10C1E08F3
+20010420005243 2 6 100 4094 2 65B5B9F5ECFADB4CCB38D1BC894302E95B4843290F1A7A40579DF3E2FF98C1D3DA9F210857C784433DF32ADF9E0C80121211690E1FFB41B8DB4E86AFE388A09C9BB2C98EDC581C2E65D57F61BB920C3D1B7B058B5FADFF65D607DAFF443B8BA1ACE1A3A7B16EA0713F62537C6689E3C4A0F61198F3B054FCF140CFADD8622C0E7621998331E59DA6F72E9D608D0E58F526E95F485C7CA30A416617DA3CCFF722BB82362606283D054B34B83ECDB4C91BAB835944010EBE5E9FA7B016ED89891DD553CC71B5CF76EDB2A184B377F670D6AF191763EEFD175E48EA37EE18B9E44E2D017D845C444C8111816819866E490B52F7F879A0C6F401CF7859674F93E304365F4E8CB8C312EFB725732A46D7CF0C9D2939AEE25F428CEFC90959DBF8ADD612F343EF9BFCA2FBA61BD4BF93E1E54626D227FDA812E18D071579AB4EEAC9901DAB183BCB0D9F48732D92CE66B386EAE5D8212C9FD156DC3F09B171B5603E17A468D244F3B6880EBCDA189BA9E23E4A4C6C2995ACF264F8CE9D54B27316343C0BC19221F75E6A2AC68011741695E599F73460B7A042E0461DB189CDCE223B40336BF2251AE3B363159960C9F63B47EFC43790D474DABB9A686DAF21E0DD76533749FCA9F144FA9C243CEF1364C79D981ED81DC4635C73B7F8908BA190AA920ED370F815BC2F9B3D28ED87BE34A01498836222C17B70C246C03CA1C10C219FB3
+20010420035225 2 6 100 4094 5 65B5B9F5ECFADB4CCB38D1BC894302E95B4843290F1A7A40579DF3E2FF98C1D3DA9F210857C784433DF32ADF9E0C80121211690E1FFB41B8DB4E86AFE388A09C9BB2C98EDC581C2E65D57F61BB920C3D1B7B058B5FADFF65D607DAFF443B8BA1ACE1A3A7B16EA0713F62537C6689E3C4A0F61198F3B054FCF140CFADD8622C0E7621998331E59DA6F72E9D608D0E58F526E95F485C7CA30A416617DA3CCFF722BB82362606283D054B34B83ECDB4C91BAB835944010EBE5E9FA7B016ED89891DD553CC71B5CF76EDB2A184B377F670D6AF191763EEFD175E48EA37EE18B9E44E2D017D845C444C8111816819866E490B52F7F879A0C6F401CF7859674F93E304365F4E8CB8C312EFB725732A46D7CF0C9D2939AEE25F428CEFC90959DBF8ADD612F343EF9BFCA2FBA61BD4BF93E1E54626D227FDA812E18D071579AB4EEAC9901DAB183BCB0D9F48732D92CE66B386EAE5D8212C9FD156DC3F09B171B5603E17A468D244F3B6880EBCDA189BA9E23E4A4C6C2995ACF264F8CE9D54B27316343C0BC19221F75E6A2AC68011741695E599F73460B7A042E0461DB189CDCE223B40336BF2251AE3B363159960C9F63B47EFC43790D474DABB9A686DAF21E0DD76533749FCA9F144FA9C243CEF1364C79D981ED81DC4635C73B7F8908BA190AA920ED370F815BC2F9B3D28ED87BE34A01498836222C17B70C246C03CA1C10C660B3F
+20010420145749 2 6 100 4094 2 65B5B9F5ECFADB4CCB38D1BC894302E95B4843290F1A7A40579DF3E2FF98C1D3DA9F210857C784433DF32ADF9E0C80121211690E1FFB41B8DB4E86AFE388A09C9BB2C98EDC581C2E65D57F61BB920C3D1B7B058B5FADFF65D607DAFF443B8BA1ACE1A3A7B16EA0713F62537C6689E3C4A0F61198F3B054FCF140CFADD8622C0E7621998331E59DA6F72E9D608D0E58F526E95F485C7CA30A416617DA3CCFF722BB82362606283D054B34B83ECDB4C91BAB835944010EBE5E9FA7B016ED89891DD553CC71B5CF76EDB2A184B377F670D6AF191763EEFD175E48EA37EE18B9E44E2D017D845C444C8111816819866E490B52F7F879A0C6F401CF7859674F93E304365F4E8CB8C312EFB725732A46D7CF0C9D2939AEE25F428CEFC90959DBF8ADD612F343EF9BFCA2FBA61BD4BF93E1E54626D227FDA812E18D071579AB4EEAC9901DAB183BCB0D9F48732D92CE66B386EAE5D8212C9FD156DC3F09B171B5603E17A468D244F3B6880EBCDA189BA9E23E4A4C6C2995ACF264F8CE9D54B27316343C0BC19221F75E6A2AC68011741695E599F73460B7A042E0461DB189CDCE223B40336BF2251AE3B363159960C9F63B47EFC43790D474DABB9A686DAF21E0DD76533749FCA9F144FA9C243CEF1364C79D981ED81DC4635C73B7F8908BA190AA920ED370F815BC2F9B3D28ED87BE34A01498836222C17B70C246C03CA1C10D741313
+20010420205718 2 6 100 4094 2 65B5B9F5ECFADB4CCB38D1BC894302E95B4843290F1A7A40579DF3E2FF98C1D3DA9F210857C784433DF32ADF9E0C80121211690E1FFB41B8DB4E86AFE388A09C9BB2C98EDC581C2E65D57F61BB920C3D1B7B058B5FADFF65D607DAFF443B8BA1ACE1A3A7B16EA0713F62537C6689E3C4A0F61198F3B054FCF140CFADD8622C0E7621998331E59DA6F72E9D608D0E58F526E95F485C7CA30A416617DA3CCFF722BB82362606283D054B34B83ECDB4C91BAB835944010EBE5E9FA7B016ED89891DD553CC71B5CF76EDB2A184B377F670D6AF191763EEFD175E48EA37EE18B9E44E2D017D845C444C8111816819866E490B52F7F879A0C6F401CF7859674F93E304365F4E8CB8C312EFB725732A46D7CF0C9D2939AEE25F428CEFC90959DBF8ADD612F343EF9BFCA2FBA61BD4BF93E1E54626D227FDA812E18D071579AB4EEAC9901DAB183BCB0D9F48732D92CE66B386EAE5D8212C9FD156DC3F09B171B5603E17A468D244F3B6880EBCDA189BA9E23E4A4C6C2995ACF264F8CE9D54B27316343C0BC19221F75E6A2AC68011741695E599F73460B7A042E0461DB189CDCE223B40336BF2251AE3B363159960C9F63B47EFC43790D474DABB9A686DAF21E0DD76533749FCA9F144FA9C243CEF1364C79D981ED81DC4635C73B7F8908BA190AA920ED370F815BC2F9B3D28ED87BE34A01498836222C17B70C246C03CA1C10DD41193
+20010420232458 2 6 100 4094 5 65B5B9F5ECFADB4CCB38D1BC894302E95B4843290F1A7A40579DF3E2FF98C1D3DA9F210857C784433DF32ADF9E0C80121211690E1FFB41B8DB4E86AFE388A09C9BB2C98EDC581C2E65D57F61BB920C3D1B7B058B5FADFF65D607DAFF443B8BA1ACE1A3A7B16EA0713F62537C6689E3C4A0F61198F3B054FCF140CFADD8622C0E7621998331E59DA6F72E9D608D0E58F526E95F485C7CA30A416617DA3CCFF722BB82362606283D054B34B83ECDB4C91BAB835944010EBE5E9FA7B016ED89891DD553CC71B5CF76EDB2A184B377F670D6AF191763EEFD175E48EA37EE18B9E44E2D017D845C444C8111816819866E490B52F7F879A0C6F401CF7859674F93E304365F4E8CB8C312EFB725732A46D7CF0C9D2939AEE25F428CEFC90959DBF8ADD612F343EF9BFCA2FBA61BD4BF93E1E54626D227FDA812E18D071579AB4EEAC9901DAB183BCB0D9F48732D92CE66B386EAE5D8212C9FD156DC3F09B171B5603E17A468D244F3B6880EBCDA189BA9E23E4A4C6C2995ACF264F8CE9D54B27316343C0BC19221F75E6A2AC68011741695E599F73460B7A042E0461DB189CDCE223B40336BF2251AE3B363159960C9F63B47EFC43790D474DABB9A686DAF21E0DD76533749FCA9F144FA9C243CEF1364C79D981ED81DC4635C73B7F8908BA190AA920ED370F815BC2F9B3D28ED87BE34A01498836222C17B70C246C03CA1C10E0AB4EF
+20010421003952 2 6 100 4094 5 65B5B9F5ECFADB4CCB38D1BC894302E95B4843290F1A7A40579DF3E2FF98C1D3DA9F210857C784433DF32ADF9E0C80121211690E1FFB41B8DB4E86AFE388A09C9BB2C98EDC581C2E65D57F61BB920C3D1B7B058B5FADFF65D607DAFF443B8BA1ACE1A3A7B16EA0713F62537C6689E3C4A0F61198F3B054FCF140CFADD8622C0E7621998331E59DA6F72E9D608D0E58F526E95F485C7CA30A416617DA3CCFF722BB82362606283D054B34B83ECDB4C91BAB835944010EBE5E9FA7B016ED89891DD553CC71B5CF76EDB2A184B377F670D6AF191763EEFD175E48EA37EE18B9E44E2D017D845C444C8111816819866E490B52F7F879A0C6F401CF7859674F93E304365F4E8CB8C312EFB725732A46D7CF0C9D2939AEE25F428CEFC90959DBF8ADD612F343EF9BFCA2FBA61BD4BF93E1E54626D227FDA812E18D071579AB4EEAC9901DAB183BCB0D9F48732D92CE66B386EAE5D8212C9FD156DC3F09B171B5603E17A468D244F3B6880EBCDA189BA9E23E4A4C6C2995ACF264F8CE9D54B27316343C0BC19221F75E6A2AC68011741695E599F73460B7A042E0461DB189CDCE223B40336BF2251AE3B363159960C9F63B47EFC43790D474DABB9A686DAF21E0DD76533749FCA9F144FA9C243CEF1364C79D981ED81DC4635C73B7F8908BA190AA920ED370F815BC2F9B3D28ED87BE34A01498836222C17B70C246C03CA1C10E22F857
+20010421013245 2 6 100 4094 2 65B5B9F5ECFADB4CCB38D1BC894302E95B4843290F1A7A40579DF3E2FF98C1D3DA9F210857C784433DF32ADF9E0C80121211690E1FFB41B8DB4E86AFE388A09C9BB2C98EDC581C2E65D57F61BB920C3D1B7B058B5FADFF65D607DAFF443B8BA1ACE1A3A7B16EA0713F62537C6689E3C4A0F61198F3B054FCF140CFADD8622C0E7621998331E59DA6F72E9D608D0E58F526E95F485C7CA30A416617DA3CCFF722BB82362606283D054B34B83ECDB4C91BAB835944010EBE5E9FA7B016ED89891DD553CC71B5CF76EDB2A184B377F670D6AF191763EEFD175E48EA37EE18B9E44E2D017D845C444C8111816819866E490B52F7F879A0C6F401CF7859674F93E304365F4E8CB8C312EFB725732A46D7CF0C9D2939AEE25F428CEFC90959DBF8ADD612F343EF9BFCA2FBA61BD4BF93E1E54626D227FDA812E18D071579AB4EEAC9901DAB183BCB0D9F48732D92CE66B386EAE5D8212C9FD156DC3F09B171B5603E17A468D244F3B6880EBCDA189BA9E23E4A4C6C2995ACF264F8CE9D54B27316343C0BC19221F75E6A2AC68011741695E599F73460B7A042E0461DB189CDCE223B40336BF2251AE3B363159960C9F63B47EFC43790D474DABB9A686DAF21E0DD76533749FCA9F144FA9C243CEF1364C79D981ED81DC4635C73B7F8908BA190AA920ED370F815BC2F9B3D28ED87BE34A01498836222C17B70C246C03CA1C10E31828B
+20010421085157 2 6 100 4094 2 65B5B9F5ECFADB4CCB38D1BC894302E95B4843290F1A7A40579DF3E2FF98C1D3DA9F210857C784433DF32ADF9E0C80121211690E1FFB41B8DB4E86AFE388A09C9BB2C98EDC581C2E65D57F61BB920C3D1B7B058B5FADFF65D607DAFF443B8BA1ACE1A3A7B16EA0713F62537C6689E3C4A0F61198F3B054FCF140CFADD8622C0E7621998331E59DA6F72E9D608D0E58F526E95F485C7CA30A416617DA3CCFF722BB82362606283D054B34B83ECDB4C91BAB835944010EBE5E9FA7B016ED89891DD553CC71B5CF76EDB2A184B377F670D6AF191763EEFD175E48EA37EE18B9E44E2D017D845C444C8111816819866E490B52F7F879A0C6F401CF7859674F93E304365F4E8CB8C312EFB725732A46D7CF0C9D2939AEE25F428CEFC90959DBF8ADD612F343EF9BFCA2FBA61BD4BF93E1E54626D227FDA812E18D071579AB4EEAC9901DAB183BCB0D9F48732D92CE66B386EAE5D8212C9FD156DC3F09B171B5603E17A468D244F3B6880EBCDA189BA9E23E4A4C6C2995ACF264F8CE9D54B27316343C0BC19221F75E6A2AC68011741695E599F73460B7A042E0461DB189CDCE223B40336BF2251AE3B363159960C9F63B47EFC43790D474DABB9A686DAF21E0DD76533749FCA9F144FA9C243CEF1364C79D981ED81DC4635C73B7F8908BA190AA920ED370F815BC2F9B3D28ED87BE34A01498836222C17B70C246C03CA1C10EE28B2B
+20010421092617 2 6 100 4094 2 65B5B9F5ECFADB4CCB38D1BC894302E95B4843290F1A7A40579DF3E2FF98C1D3DA9F210857C784433DF32ADF9E0C80121211690E1FFB41B8DB4E86AFE388A09C9BB2C98EDC581C2E65D57F61BB920C3D1B7B058B5FADFF65D607DAFF443B8BA1ACE1A3A7B16EA0713F62537C6689E3C4A0F61198F3B054FCF140CFADD8622C0E7621998331E59DA6F72E9D608D0E58F526E95F485C7CA30A416617DA3CCFF722BB82362606283D054B34B83ECDB4C91BAB835944010EBE5E9FA7B016ED89891DD553CC71B5CF76EDB2A184B377F670D6AF191763EEFD175E48EA37EE18B9E44E2D017D845C444C8111816819866E490B52F7F879A0C6F401CF7859674F93E304365F4E8CB8C312EFB725732A46D7CF0C9D2939AEE25F428CEFC90959DBF8ADD612F343EF9BFCA2FBA61BD4BF93E1E54626D227FDA812E18D071579AB4EEAC9901DAB183BCB0D9F48732D92CE66B386EAE5D8212C9FD156DC3F09B171B5603E17A468D244F3B6880EBCDA189BA9E23E4A4C6C2995ACF264F8CE9D54B27316343C0BC19221F75E6A2AC68011741695E599F73460B7A042E0461DB189CDCE223B40336BF2251AE3B363159960C9F63B47EFC43790D474DABB9A686DAF21E0DD76533749FCA9F144FA9C243CEF1364C79D981ED81DC4635C73B7F8908BA190AA920ED370F815BC2F9B3D28ED87BE34A01498836222C17B70C246C03CA1C10EE97A3B
+20010421135621 2 6 100 4094 2 65B5B9F5ECFADB4CCB38D1BC894302E95B4843290F1A7A40579DF3E2FF98C1D3DA9F210857C784433DF32ADF9E0C80121211690E1FFB41B8DB4E86AFE388A09C9BB2C98EDC581C2E65D57F61BB920C3D1B7B058B5FADFF65D607DAFF443B8BA1ACE1A3A7B16EA0713F62537C6689E3C4A0F61198F3B054FCF140CFADD8622C0E7621998331E59DA6F72E9D608D0E58F526E95F485C7CA30A416617DA3CCFF722BB82362606283D054B34B83ECDB4C91BAB835944010EBE5E9FA7B016ED89891DD553CC71B5CF76EDB2A184B377F670D6AF191763EEFD175E48EA37EE18B9E44E2D017D845C444C8111816819866E490B52F7F879A0C6F401CF7859674F93E304365F4E8CB8C312EFB725732A46D7CF0C9D2939AEE25F428CEFC90959DBF8ADD612F343EF9BFCA2FBA61BD4BF93E1E54626D227FDA812E18D071579AB4EEAC9901DAB183BCB0D9F48732D92CE66B386EAE5D8212C9FD156DC3F09B171B5603E17A468D244F3B6880EBCDA189BA9E23E4A4C6C2995ACF264F8CE9D54B27316343C0BC19221F75E6A2AC68011741695E599F73460B7A042E0461DB189CDCE223B40336BF2251AE3B363159960C9F63B47EFC43790D474DABB9A686DAF21E0DD76533749FCA9F144FA9C243CEF1364C79D981ED81DC4635C73B7F8908BA190AA920ED370F815BC2F9B3D28ED87BE34A01498836222C17B70C246C03CA1C10F52C463
+20010422012438 2 6 100 4094 2 65B5B9F5ECFADB4CCB38D1BC894302E95B4843290F1A7A40579DF3E2FF98C1D3DA9F210857C784433DF32ADF9E0C80121211690E1FFB41B8DB4E86AFE388A09C9BB2C98EDC581C2E65D57F61BB920C3D1B7B058B5FADFF65D607DAFF443B8BA1ACE1A3A7B16EA0713F62537C6689E3C4A0F61198F3B054FCF140CFADD8622C0E7621998331E59DA6F72E9D608D0E58F526E95F485C7CA30A416617DA3CCFF722BB82362606283D054B34B83ECDB4C91BAB835944010EBE5E9FA7B016ED89891DD553CC71B5CF76EDB2A184B377F670D6AF191763EEFD175E48EA37EE18B9E44E2D017D845C444C8111816819866E490B52F7F879A0C6F401CF7859674F93E304365F4E8CB8C312EFB725732A46D7CF0C9D2939AEE25F428CEFC90959DBF8ADD612F343EF9BFCA2FBA61BD4BF93E1E54626D227FDA812E18D071579AB4EEAC9901DAB183BCB0D9F48732D92CE66B386EAE5D8212C9FD156DC3F09B171B5603E17A468D244F3B6880EBCDA189BA9E23E4A4C6C2995ACF264F8CE9D54B27316343C0BC19221F75E6A2AC68011741695E599F73460B7A042E0461DB189CDCE223B40336BF2251AE3B363159960C9F63B47EFC43790D474DABB9A686DAF21E0DD76533749FCA9F144FA9C243CEF1364C79D981ED81DC4635C73B7F8908BA190AA920ED370F815BC2F9B3D28ED87BE34A01498836222C17B70C246C03CA1C110627AF3
+20010422042530 2 6 100 4094 2 65B5B9F5ECFADB4CCB38D1BC894302E95B4843290F1A7A40579DF3E2FF98C1D3DA9F210857C784433DF32ADF9E0C80121211690E1FFB41B8DB4E86AFE388A09C9BB2C98EDC581C2E65D57F61BB920C3D1B7B058B5FADFF65D607DAFF443B8BA1ACE1A3A7B16EA0713F62537C6689E3C4A0F61198F3B054FCF140CFADD8622C0E7621998331E59DA6F72E9D608D0E58F526E95F485C7CA30A416617DA3CCFF722BB82362606283D054B34B83ECDB4C91BAB835944010EBE5E9FA7B016ED89891DD553CC71B5CF76EDB2A184B377F670D6AF191763EEFD175E48EA37EE18B9E44E2D017D845C444C8111816819866E490B52F7F879A0C6F401CF7859674F93E304365F4E8CB8C312EFB725732A46D7CF0C9D2939AEE25F428CEFC90959DBF8ADD612F343EF9BFCA2FBA61BD4BF93E1E54626D227FDA812E18D071579AB4EEAC9901DAB183BCB0D9F48732D92CE66B386EAE5D8212C9FD156DC3F09B171B5603E17A468D244F3B6880EBCDA189BA9E23E4A4C6C2995ACF264F8CE9D54B27316343C0BC19221F75E6A2AC68011741695E599F73460B7A042E0461DB189CDCE223B40336BF2251AE3B363159960C9F63B47EFC43790D474DABB9A686DAF21E0DD76533749FCA9F144FA9C243CEF1364C79D981ED81DC4635C73B7F8908BA190AA920ED370F815BC2F9B3D28ED87BE34A01498836222C17B70C246C03CA1C110A793B3
+20010422163438 2 6 100 4094 5 65B5B9F5ECFADB4CCB38D1BC894302E95B4843290F1A7A40579DF3E2FF98C1D3DA9F210857C784433DF32ADF9E0C80121211690E1FFB41B8DB4E86AFE388A09C9BB2C98EDC581C2E65D57F61BB920C3D1B7B058B5FADFF65D607DAFF443B8BA1ACE1A3A7B16EA0713F62537C6689E3C4A0F61198F3B054FCF140CFADD8622C0E7621998331E59DA6F72E9D608D0E58F526E95F485C7CA30A416617DA3CCFF722BB82362606283D054B34B83ECDB4C91BAB835944010EBE5E9FA7B016ED89891DD553CC71B5CF76EDB2A184B377F670D6AF191763EEFD175E48EA37EE18B9E44E2D017D845C444C8111816819866E490B52F7F879A0C6F401CF7859674F93E304365F4E8CB8C312EFB725732A46D7CF0C9D2939AEE25F428CEFC90959DBF8ADD612F343EF9BFCA2FBA61BD4BF93E1E54626D227FDA812E18D071579AB4EEAC9901DAB183BCB0D9F48732D92CE66B386EAE5D8212C9FD156DC3F09B171B5603E17A468D244F3B6880EBCDA189BA9E23E4A4C6C2995ACF264F8CE9D54B27316343C0BC19221F75E6A2AC68011741695E599F73460B7A042E0461DB189CDCE223B40336BF2251AE3B363159960C9F63B47EFC43790D474DABB9A686DAF21E0DD76533749FCA9F144FA9C243CEF1364C79D981ED81DC4635C73B7F8908BA190AA920ED370F815BC2F9B3D28ED87BE34A01498836222C17B70C246C03CA1C111D2A227
diff --git a/etc/motd b/etc/motd
new file mode 100644
index 0000000..6ab0fe9
--- /dev/null
+++ b/etc/motd
@@ -0,0 +1,24 @@
+FreeBSD ?.?.? (UNKNOWN)
+
+Welcome to FreeBSD!
+
+Before seeking technical support, please use the following resources:
+
+o Security advisories and updated errata information for all releases are
+ at http://www.FreeBSD.org/releases/ - always consult the ERRATA section
+ for your release first as it's updated frequently.
+
+o The Handbook and FAQ documents are at http://www.FreeBSD.org/ and,
+ along with the mailing lists, can be searched by going to
+ http://www.FreeBSD.org/search/. If the doc distribution has
+ been installed, they're also available formatted in /usr/share/doc.
+
+If you still have a question or problem, please take the output of
+`uname -a', along with any relevant error messages, and email it
+as a question to the questions@FreeBSD.org mailing list. If you are
+unfamiliar with FreeBSD's directory layout, please refer to the hier(7)
+man page. If you are not familiar with man pages, type `man man'.
+
+You may also use sysinstall(8) to re-enter the installation and
+configuration utility. Edit /etc/motd to change this login announcement.
+
diff --git a/etc/mtree/BSD.include.dist b/etc/mtree/BSD.include.dist
new file mode 100644
index 0000000..ace2705
--- /dev/null
+++ b/etc/mtree/BSD.include.dist
@@ -0,0 +1,146 @@
+# $FreeBSD$
+#
+# Please see the file src/etc/mtree/README before making changes to this file.
+#
+
+/set type=dir uname=root gname=wheel mode=0755
+.
+ arpa
+ ..
+ cam
+ scsi
+ ..
+ ..
+ dev
+ an
+ ..
+ ic
+ ..
+ ppbus
+ ..
+ usb
+ ..
+ wi
+ ..
+ ..
+ fs
+ devfs
+ ..
+ fdescfs
+ ..
+ fifofs
+ ..
+ msdosfs
+ ..
+ ntfs
+ ..
+ nullfs
+ ..
+ nwfs
+ ..
+ portalfs
+ ..
+ procfs
+ ..
+ smbfs
+ ..
+ umapfs
+ ..
+ unionfs
+ ..
+ ..
+ g++
+ backward
+ ..
+ bits
+ ..
+ ext
+ ..
+ ..
+ isc
+ ..
+ isofs
+ cd9660
+ ..
+ ..
+ libmilter
+ ..
+ machine
+ pc
+ ..
+ ..
+ net
+ ..
+ netatalk
+ ..
+ netatm
+ ipatm
+ ..
+ sigpvc
+ ..
+ spans
+ ..
+ uni
+ ..
+ ..
+ netgraph
+ ..
+ netinet
+ ..
+ netinet6
+ ..
+ netipx
+ ..
+ netkey
+ ..
+ netnatm
+ ..
+ netncp
+ ..
+ netns
+ ..
+ netsmb
+ ..
+ nfs
+ ..
+ nfsclient
+ ..
+ nfsserver
+ ..
+ objc
+ ..
+ openssl
+ ..
+ pccard
+ ..
+ posix4
+ ..
+ protocols
+ ..
+ readline
+ ..
+ rpc
+ ..
+ rpcsvc
+ ..
+ security
+ lomac
+ ..
+ mac_biba
+ ..
+ mac_bsdextended
+ ..
+ mac_mls
+ ..
+ ..
+ sys
+ ..
+ ufs
+ ffs
+ ..
+ ufs
+ ..
+ ..
+ vm
+ ..
+..
diff --git a/etc/mtree/BSD.local.dist b/etc/mtree/BSD.local.dist
new file mode 100644
index 0000000..8a49f4a
--- /dev/null
+++ b/etc/mtree/BSD.local.dist
@@ -0,0 +1,416 @@
+# $FreeBSD$
+#
+# Please see the file src/etc/mtree/README before making changes to this file.
+#
+
+/set type=dir uname=root gname=wheel mode=0755
+.
+ bin
+ ..
+ etc
+ pam.d
+ ..
+ rc.d
+ ..
+ ..
+ include
+ ..
+ info
+ ..
+ lib
+ perl5
+ 5.6.1
+ man
+ man3
+ ..
+ ..
+ ..
+ site_perl
+ 5.6.1
+ auto
+ ..
+ mach
+ auto
+ ..
+ ..
+ ..
+ ..
+ ..
+ ..
+ libdata
+ ..
+ libexec
+ ..
+ man
+/set uname=man
+ cat1
+ ..
+ cat2
+ ..
+ cat3
+ ..
+ cat4
+ ..
+ cat5
+ ..
+ cat6
+ ..
+ cat7
+ ..
+ cat8
+ ..
+ cat9
+ ..
+ catl
+ ..
+ catn
+ ..
+ de.ISO8859-1 uname=root
+ cat1
+ ..
+ cat2
+ ..
+ cat3
+ ..
+ cat4
+ ..
+ cat5
+ ..
+ cat6
+ ..
+ cat7
+ ..
+ cat8
+ ..
+ cat9
+ ..
+ catl
+ ..
+ catn
+ ..
+/set uname=root
+ man1
+ ..
+ man2
+ ..
+ man3
+ ..
+ man4
+ ..
+ man5
+ ..
+ man6
+ ..
+ man7
+ ..
+ man8
+ ..
+ man9
+ ..
+ manl
+ ..
+ mann
+ ..
+ ..
+ en.ISO8859-1
+/set uname=man
+ cat1
+ ..
+ cat1aout
+ ..
+ cat2
+ ..
+ cat3
+ ..
+ cat4
+ alpha
+ ..
+ i386
+ ..
+ ..
+ cat5
+ ..
+ cat6
+ ..
+ cat7
+ ..
+ cat8
+ alpha
+ ..
+ i386
+ ..
+ ..
+ cat9
+ i386
+ ..
+ ..
+ catn
+ ..
+ ..
+ ja uname=root
+ cat1
+ ..
+ cat2
+ ..
+ cat3
+ ..
+ cat4
+ ..
+ cat5
+ ..
+ cat6
+ ..
+ cat7
+ ..
+ cat8
+ ..
+ cat9
+ ..
+ catl
+ ..
+ catn
+ ..
+/set uname=root
+ man1
+ ..
+ man2
+ ..
+ man3
+ ..
+ man4
+ ..
+ man5
+ ..
+ man6
+ ..
+ man7
+ ..
+ man8
+ ..
+ man9
+ ..
+ manl
+ ..
+ mann
+ ..
+ ..
+ man1
+ ..
+ man2
+ ..
+ man3
+ ..
+ man4
+ ..
+ man5
+ ..
+ man6
+ ..
+ man7
+ ..
+ man8
+ ..
+ man9
+ ..
+ manl
+ ..
+ mann
+ ..
+ ..
+ sbin
+ ..
+ share
+ aclocal
+ ..
+ dict
+ ..
+ doc
+ ja
+ ..
+ ..
+ emacs
+ site-lisp
+ ..
+ ..
+ examples
+ ..
+ java
+ classes
+ ..
+ ..
+ misc
+ ..
+ nls
+ C
+ ..
+ af_ZA.ISO8859-1
+ ..
+ af_ZA.ISO8859-15
+ ..
+ bg_BG.CP1251
+ ..
+ cs_CZ.ISO8859-2
+ ..
+ da_DK.ISO8859-1
+ ..
+ da_DK.ISO8859-15
+ ..
+ de_AT.ISO8859-1
+ ..
+ de_AT.ISO8859-15
+ ..
+ de_CH.ISO8859-1
+ ..
+ de_CH.ISO8859-15
+ ..
+ de_DE.ISO8859-1
+ ..
+ de_DE.ISO8859-15
+ ..
+ el_GR.ISO8859-7
+ ..
+ en_AU.ISO8859-1
+ ..
+ en_AU.ISO8859-15
+ ..
+ en_AU.US-ASCII
+ ..
+ en_CA.ISO8859-1
+ ..
+ en_CA.ISO8859-15
+ ..
+ en_CA.US-ASCII
+ ..
+ en_GB.ISO8859-1
+ ..
+ en_GB.ISO8859-15
+ ..
+ en_GB.US-ASCII
+ ..
+ en_NZ.ISO8859-1
+ ..
+ en_NZ.ISO8859-15
+ ..
+ en_NZ.US-ASCII
+ ..
+ en_US.ISO8859-1
+ ..
+ en_US.ISO8859-15
+ ..
+ es_ES.ISO8859-1
+ ..
+ es_ES.ISO8859-15
+ ..
+ et_EE.ISO8859-15
+ ..
+ fi_FI.ISO8859-1
+ ..
+ fi_FI.ISO8859-15
+ ..
+ fr_BE.ISO8859-1
+ ..
+ fr_BE.ISO8859-15
+ ..
+ fr_CA.ISO8859-1
+ ..
+ fr_CA.ISO8859-15
+ ..
+ fr_CH.ISO8859-1
+ ..
+ fr_CH.ISO8859-15
+ ..
+ fr_FR.ISO8859-1
+ ..
+ fr_FR.ISO8859-15
+ ..
+ hi_IN.ISCII-DEV
+ ..
+ hr_HR.ISO8859-2
+ ..
+ hu_HU.ISO8859-2
+ ..
+ is_IS.ISO8859-1
+ ..
+ is_IS.ISO8859-15
+ ..
+ it_CH.ISO8859-1
+ ..
+ it_CH.ISO8859-15
+ ..
+ it_IT.ISO8859-1
+ ..
+ it_IT.ISO8859-15
+ ..
+ ja_JP.SJIS
+ ..
+ ja_JP.eucJP
+ ..
+ ko_KR.eucKR
+ ..
+ la_LN.ISO8859-1
+ ..
+ la_LN.ISO8859-15
+ ..
+ la_LN.ISO8859-2
+ ..
+ la_LN.ISO8859-4
+ ..
+ la_LN.US-ASCII
+ ..
+ lt_LT.ISO8859-4
+ ..
+ nl_BE.ISO8859-1
+ ..
+ nl_BE.ISO8859-15
+ ..
+ nl_NL.ISO8859-1
+ ..
+ nl_NL.ISO8859-15
+ ..
+ no_NO.ISO8859-1
+ ..
+ no_NO.ISO8859-15
+ ..
+ pl_PL.ISO8859-2
+ ..
+ pt_BR.ISO8859-1
+ ..
+ pt_PT.ISO8859-1
+ ..
+ pt_PT.ISO8859-15
+ ..
+ ro_RO.ISO8859-2
+ ..
+ ru_RU.CP866
+ ..
+ ru_RU.ISO8859-5
+ ..
+ ru_RU.KOI8-R
+ ..
+ sk_SK.ISO8859-2
+ ..
+ sl_SI.ISO8859-2
+ ..
+ sv_SE.ISO8859-1
+ ..
+ sv_SE.ISO8859-15
+ ..
+ tr_TR.ISO8859-9
+ ..
+ uk_UA.ISO8859-5
+ ..
+ uk_UA.KOI8-U
+ ..
+ zh_CN.eucCN
+ ..
+ zh_TW.Big5
+ ..
+ ..
+ sgml
+ ..
+ skel
+ ..
+ xml
+ ..
+ ..
+..
diff --git a/etc/mtree/BSD.release.dist b/etc/mtree/BSD.release.dist
new file mode 100644
index 0000000..952aace
--- /dev/null
+++ b/etc/mtree/BSD.release.dist
@@ -0,0 +1,22 @@
+# $FreeBSD$
+#
+# Please see the file src/etc/mtree/README before making changes to this file.
+#
+
+/set type=dir uname=root gname=wheel mode=0755
+.
+ filesys
+ ..
+ floppies
+ ..
+ tarballs
+ bindist
+ ..
+ objdist
+ ..
+ secrdist
+ ..
+ srcdist
+ ..
+ ..
+..
diff --git a/etc/mtree/BSD.root.dist b/etc/mtree/BSD.root.dist
new file mode 100644
index 0000000..85ef433
--- /dev/null
+++ b/etc/mtree/BSD.root.dist
@@ -0,0 +1,80 @@
+# $FreeBSD$
+#
+# Please see the file src/etc/mtree/README before making changes to this file.
+#
+
+/set type=dir uname=root gname=wheel mode=0755
+.
+ bin
+ ..
+ boot
+ defaults
+ ..
+ kernel
+ ..
+ modules
+ ..
+ ..
+ dev
+ fd mode=0555
+ ..
+ ..
+ etc
+ X11
+ ..
+ defaults
+ ..
+ gnats
+ ..
+ isdn mode=0700
+ ..
+ kerberosIV
+ ..
+ mail
+ ..
+ mtree
+ ..
+ namedb
+# leave commented out until buildworld/installworld can
+# handle new user ids
+# s uname=bind gname=bind mode=0750
+# ..
+ ..
+ pam.d
+ ..
+ periodic
+ daily
+ ..
+ monthly
+ ..
+ security
+ ..
+ weekly
+ ..
+ ..
+ ppp
+ ..
+ rc.d
+ ..
+ skel
+ ..
+ ssh
+ ..
+ ssl
+ ..
+ ..
+ mnt
+ ..
+ proc mode=0555
+ ..
+ root
+ ..
+ sbin
+ ..
+ tmp mode=01777
+ ..
+ usr
+ ..
+ var
+ ..
+..
diff --git a/etc/mtree/BSD.sendmail.dist b/etc/mtree/BSD.sendmail.dist
new file mode 100644
index 0000000..14fbd6f
--- /dev/null
+++ b/etc/mtree/BSD.sendmail.dist
@@ -0,0 +1,14 @@
+# $FreeBSD$
+#
+# Please see the file src/etc/mtree/README before making changes to this file.
+#
+
+/set type=dir uname=root gname=wheel mode=0755
+. nochange
+ var nochange
+ spool nochange
+ clientmqueue uname=smmsp gname=smmsp mode=0770
+ ..
+ ..
+ ..
+..
diff --git a/etc/mtree/BSD.usr.dist b/etc/mtree/BSD.usr.dist
new file mode 100644
index 0000000..ced5cbd
--- /dev/null
+++ b/etc/mtree/BSD.usr.dist
@@ -0,0 +1,906 @@
+# $FreeBSD$
+#
+# Please see the file src/etc/mtree/README before making changes to this file.
+#
+
+/set type=dir uname=root gname=wheel mode=0755
+.
+ bin
+ ..
+ games
+ hide gname=games mode=0550
+ ..
+ ..
+ include
+ ..
+ lib
+ aout
+ ..
+ compat
+ aout
+ ..
+ ..
+ ..
+ libdata
+ doscmd
+ fonts
+ ..
+ ..
+ gcc
+ ..
+ ldscripts
+ ..
+ lint
+ ..
+ msdosfs
+ ..
+ stallion
+ ..
+ ..
+ libexec
+ aout
+ ..
+ elf
+ ..
+ lpr
+ ru
+ ..
+ ..
+ sendmail
+ ..
+ sm.bin
+ ..
+ ..
+ local
+ ..
+ obj nochange
+ ..
+ sbin
+ ..
+ share
+ calendar
+ de_DE.ISO8859-1
+ ..
+ fr_FR.ISO8859-1
+ ..
+ hr_HR.ISO8859-2
+ ..
+ ru_RU.KOI8-R
+ ..
+ ..
+ dict
+ ..
+ doc
+ IPv6
+ ..
+ bind
+ html
+ ..
+ misc
+ ..
+ ..
+ ncurses
+ ..
+ ntp
+ ..
+ papers
+ ..
+ psd
+ 01.cacm
+ ..
+ 02.implement
+ ..
+ 03.iosys
+ ..
+ 04.uprog
+ ..
+ 05.sysman
+ ..
+ 06.Clang
+ ..
+ 12.make
+ ..
+ 13.rcs
+ ..
+ 14.sccs
+ ..
+ 15.yacc
+ ..
+ 16.lex
+ ..
+ 17.m4
+ ..
+ 18.gprof
+ ..
+ 20.ipctut
+ ..
+ 21.ipc
+ ..
+ 22.rpcgen
+ ..
+ 23.rpc
+ ..
+ 24.xdr
+ ..
+ 25.xdrrfc
+ ..
+ 26.rpcrfc
+ ..
+ 27.nfsrfc
+ ..
+ 28.cvs
+ ..
+ ..
+ smm
+ 01.setup
+ ..
+ 02.config
+ ..
+ 03.fsck
+ ..
+ 04.quotas
+ ..
+ 05.fastfs
+ ..
+ 06.nfs
+ ..
+ 07.lpd
+ ..
+ 08.sendmailop
+ ..
+ 10.named
+ ..
+ 11.timedop
+ ..
+ 12.timed
+ ..
+ 18.net
+ ..
+ ..
+ usd
+ 04.csh
+ ..
+ 07.mail
+ ..
+ 10.exref
+ ..
+ 11.edit
+ ..
+ 12.vi
+ ..
+ 13.viref
+ ..
+ 18.msdiffs
+ ..
+ 19.memacros
+ ..
+ 20.meref
+ ..
+ 21.troff
+ ..
+ 22.trofftut
+ ..
+ 30.rogue
+ ..
+ 31.trek
+ ..
+ ..
+ ..
+ examples
+ BSD_daemon
+ ..
+ FreeBSD_version
+ ..
+ IPv6
+ ..
+ atm
+ ..
+ bc
+ ..
+ bootforth
+ ..
+ cvs
+ contrib
+ ..
+ ..
+ cvsup
+ ..
+ dialog
+ ..
+ diskless
+ ..
+ drivers
+ ..
+ etc
+ defaults
+ ..
+ ..
+ find_interface
+ ..
+ ibcs2
+ ..
+ ipfilter
+ ..
+ ipfw
+ ..
+ isdn
+ contrib
+ ..
+ i4brunppp
+ ..
+ v21
+ ..
+ ..
+ kld
+ cdev
+ module
+ ..
+ test
+ ..
+ ..
+ dyn_sysctl
+ ..
+ syscall
+ module
+ ..
+ test
+ ..
+ ..
+ ..
+ libdialog
+ ..
+ libvgl
+ ..
+ mdoc
+ ..
+ meteor
+ ..
+ netgraph
+ ..
+ nwclient
+ ..
+ perfmon
+ ..
+ portal
+ ..
+ ppi
+ ..
+ ppp
+ ..
+ pppd
+ ..
+ printing
+ ..
+ scsi_target
+ ..
+ ses
+ getencstat
+ ..
+ sesd
+ ..
+ setencstat
+ ..
+ setobjstat
+ ..
+ srcs
+ ..
+ ..
+ slattach
+ ..
+ sliplogin
+ ..
+ smbfs
+ print
+ ..
+ ..
+ startslip
+ ..
+ sunrpc
+ dir
+ ..
+ msg
+ ..
+ sort
+ ..
+ ..
+ tcsh
+ ..
+ worm
+ ..
+ ..
+ games
+ atc
+ ..
+ fortune
+ ..
+ larn
+ ..
+ quiz.db
+ ..
+ ..
+ groff_font
+ devX100
+ ..
+ devX100-12
+ ..
+ devX75
+ ..
+ devX75-12
+ ..
+ devascii
+ ..
+ devcp1047
+ ..
+ devdvi
+ ..
+ devhtml
+ ..
+ devkoi8-r
+ ..
+ devlatin1
+ ..
+ devlbp
+ ..
+ devlj4
+ ..
+ devps
+ ..
+ devutf8
+ ..
+ ..
+ info
+ ..
+ isdn
+ ..
+ locale
+ af_ZA.ISO8859-1
+ ..
+ af_ZA.ISO8859-15
+ ..
+ bg_BG.CP1251
+ ..
+ cs_CZ.ISO8859-2
+ ..
+ da_DK.ISO8859-1
+ ..
+ da_DK.ISO8859-15
+ ..
+ de_AT.ISO8859-1
+ ..
+ de_AT.ISO8859-15
+ ..
+ de_CH.ISO8859-1
+ ..
+ de_CH.ISO8859-15
+ ..
+ de_DE.ISO8859-1
+ ..
+ de_DE.ISO8859-15
+ ..
+ el_GR.ISO8859-7
+ ..
+ en_AU.ISO8859-1
+ ..
+ en_AU.ISO8859-15
+ ..
+ en_AU.US-ASCII
+ ..
+ en_CA.ISO8859-1
+ ..
+ en_CA.ISO8859-15
+ ..
+ en_CA.US-ASCII
+ ..
+ en_GB.ISO8859-1
+ ..
+ en_GB.ISO8859-15
+ ..
+ en_GB.US-ASCII
+ ..
+ en_NZ.ISO8859-1
+ ..
+ en_NZ.ISO8859-15
+ ..
+ en_NZ.US-ASCII
+ ..
+ en_US.ISO8859-1
+ ..
+ en_US.ISO8859-15
+ ..
+ en_US.US-ASCII
+ ..
+ es_ES.ISO8859-1
+ ..
+ es_ES.ISO8859-15
+ ..
+ et_EE.ISO8859-15
+ ..
+ fi_FI.ISO8859-1
+ ..
+ fi_FI.ISO8859-15
+ ..
+ fr_BE.ISO8859-1
+ ..
+ fr_BE.ISO8859-15
+ ..
+ fr_CA.ISO8859-1
+ ..
+ fr_CA.ISO8859-15
+ ..
+ fr_CH.ISO8859-1
+ ..
+ fr_CH.ISO8859-15
+ ..
+ fr_FR.ISO8859-1
+ ..
+ fr_FR.ISO8859-15
+ ..
+ hi_IN.ISCII-DEV
+ ..
+ hr_HR.ISO8859-2
+ ..
+ hu_HU.ISO8859-2
+ ..
+ is_IS.ISO8859-1
+ ..
+ is_IS.ISO8859-15
+ ..
+ it_CH.ISO8859-1
+ ..
+ it_CH.ISO8859-15
+ ..
+ it_IT.ISO8859-1
+ ..
+ it_IT.ISO8859-15
+ ..
+ ja_JP.SJIS
+ ..
+ ja_JP.eucJP
+ ..
+ ko_KR.eucKR
+ ..
+ la_LN.ISO8859-1
+ ..
+ la_LN.ISO8859-15
+ ..
+ la_LN.ISO8859-2
+ ..
+ la_LN.ISO8859-4
+ ..
+ la_LN.US-ASCII
+ ..
+ lt_LT.ISO8859-4
+ ..
+ nl_BE.ISO8859-1
+ ..
+ nl_BE.ISO8859-15
+ ..
+ nl_NL.ISO8859-1
+ ..
+ nl_NL.ISO8859-15
+ ..
+ no_NO.ISO8859-1
+ ..
+ no_NO.ISO8859-15
+ ..
+ pl_PL.ISO8859-2
+ ..
+ pt_BR.ISO8859-1
+ ..
+ pt_PT.ISO8859-1
+ ..
+ pt_PT.ISO8859-15
+ ..
+ ro_RO.ISO8859-2
+ ..
+ ru_RU.CP866
+ ..
+ ru_RU.ISO8859-5
+ ..
+ ru_RU.KOI8-R
+ ..
+ sk_SK.ISO8859-2
+ ..
+ sl_SI.ISO8859-2
+ ..
+ sv_SE.ISO8859-1
+ ..
+ sv_SE.ISO8859-15
+ ..
+ tr_TR.ISO8859-9
+ ..
+ uk_UA.ISO8859-5
+ ..
+ uk_UA.KOI8-U
+ ..
+ zh_CN.eucCN
+ ..
+ zh_TW.Big5
+ ..
+ ..
+ man
+/set uname=man
+ cat1
+ ..
+ cat1aout
+ ..
+ cat2
+ ..
+ cat3
+ ..
+ cat4
+ alpha
+ ..
+ i386
+ ..
+ ..
+ cat5
+ ..
+ cat6
+ ..
+ cat7
+ ..
+ cat8
+ alpha
+ ..
+ i386
+ ..
+ ..
+ cat9
+ i386
+ ..
+ ..
+ catn
+ ..
+ en.ISO8859-1 uname=root
+ cat1
+ ..
+ cat1aout
+ ..
+ cat2
+ ..
+ cat3
+ ..
+ cat4
+ alpha
+ ..
+ i386
+ ..
+ ..
+ cat5
+ ..
+ cat6
+ ..
+ cat7
+ ..
+ cat8
+ alpha
+ ..
+ i386
+ ..
+ ..
+ cat9
+ i386
+ ..
+ ..
+ catn
+ ..
+ ..
+ ja uname=root
+ cat1
+ ..
+ cat2
+ ..
+ cat3
+ ..
+ cat4
+ ..
+ cat5
+ ..
+ cat6
+ ..
+ cat7
+ ..
+ cat8
+ ..
+ cat9
+ ..
+ catn
+ ..
+/set uname=root
+ man1
+ ..
+ man2
+ ..
+ man3
+ ..
+ man4
+ ..
+ man5
+ ..
+ man6
+ ..
+ man7
+ ..
+ man8
+ ..
+ man9
+ ..
+ mann
+ ..
+ ..
+ man1
+ ..
+ man1aout
+ ..
+ man2
+ ..
+ man3
+ ..
+ man4
+ alpha
+ ..
+ i386
+ ..
+ ..
+ man5
+ ..
+ man6
+ ..
+ man7
+ ..
+ man8
+ alpha
+ ..
+ i386
+ ..
+ ..
+ man9
+ i386
+ ..
+ ..
+ mann
+ ..
+ ..
+ me
+ ..
+ misc
+ fonts
+ ..
+ pcvtfonts
+ ..
+ ..
+ mk
+ ..
+ nls
+ C
+ ..
+ af_ZA.ISO8859-1
+ ..
+ af_ZA.ISO8859-15
+ ..
+ bg_BG.CP1251
+ ..
+ cs_CZ.ISO8859-2
+ ..
+ da_DK.ISO8859-1
+ ..
+ da_DK.ISO8859-15
+ ..
+ de_AT.ISO8859-1
+ ..
+ de_AT.ISO8859-15
+ ..
+ de_CH.ISO8859-1
+ ..
+ de_CH.ISO8859-15
+ ..
+ de_DE.ISO8859-1
+ ..
+ de_DE.ISO8859-15
+ ..
+ el_GR.ISO8859-7
+ ..
+ en_AU.ISO8859-1
+ ..
+ en_AU.ISO8859-15
+ ..
+ en_AU.US-ASCII
+ ..
+ en_CA.ISO8859-1
+ ..
+ en_CA.ISO8859-15
+ ..
+ en_CA.US-ASCII
+ ..
+ en_GB.ISO8859-1
+ ..
+ en_GB.ISO8859-15
+ ..
+ en_GB.US-ASCII
+ ..
+ en_NZ.ISO8859-1
+ ..
+ en_NZ.ISO8859-15
+ ..
+ en_NZ.US-ASCII
+ ..
+ en_US.ISO8859-1
+ ..
+ en_US.ISO8859-15
+ ..
+ es_ES.ISO8859-1
+ ..
+ es_ES.ISO8859-15
+ ..
+ et_EE.ISO8859-15
+ ..
+ fi_FI.ISO8859-1
+ ..
+ fi_FI.ISO8859-15
+ ..
+ fr_BE.ISO8859-1
+ ..
+ fr_BE.ISO8859-15
+ ..
+ fr_CA.ISO8859-1
+ ..
+ fr_CA.ISO8859-15
+ ..
+ fr_CH.ISO8859-1
+ ..
+ fr_CH.ISO8859-15
+ ..
+ fr_FR.ISO8859-1
+ ..
+ fr_FR.ISO8859-15
+ ..
+ hi_IN.ISCII-DEV
+ ..
+ hr_HR.ISO8859-2
+ ..
+ hu_HU.ISO8859-2
+ ..
+ is_IS.ISO8859-1
+ ..
+ is_IS.ISO8859-15
+ ..
+ it_CH.ISO8859-1
+ ..
+ it_CH.ISO8859-15
+ ..
+ it_IT.ISO8859-1
+ ..
+ it_IT.ISO8859-15
+ ..
+ ja_JP.SJIS
+ ..
+ ja_JP.eucJP
+ ..
+ ko_KR.eucKR
+ ..
+ la_LN.ISO8859-1
+ ..
+ la_LN.ISO8859-15
+ ..
+ la_LN.ISO8859-2
+ ..
+ la_LN.ISO8859-4
+ ..
+ la_LN.US-ASCII
+ ..
+ lt_LT.ISO8859-4
+ ..
+ nl_BE.ISO8859-1
+ ..
+ nl_BE.ISO8859-15
+ ..
+ nl_NL.ISO8859-1
+ ..
+ nl_NL.ISO8859-15
+ ..
+ no_NO.ISO8859-1
+ ..
+ no_NO.ISO8859-15
+ ..
+ pl_PL.ISO8859-2
+ ..
+ pt_BR.ISO8859-1
+ ..
+ pt_PT.ISO8859-1
+ ..
+ pt_PT.ISO8859-15
+ ..
+ ro_RO.ISO8859-2
+ ..
+ ru_RU.CP866
+ ..
+ ru_RU.ISO8859-5
+ ..
+ ru_RU.KOI8-R
+ ..
+ sk_SK.ISO8859-2
+ ..
+ sl_SI.ISO8859-2
+ ..
+ sv_SE.ISO8859-1
+ ..
+ sv_SE.ISO8859-15
+ ..
+ tr_TR.ISO8859-9
+ ..
+ uk_UA.ISO8859-5
+ ..
+ uk_UA.KOI8-U
+ ..
+ zh_CN.eucCN
+ ..
+ zh_TW.Big5
+ ..
+ ..
+ pcvt
+ Doc
+ ..
+ Etc
+ ..
+ ..
+ sendmail
+ ..
+ skel
+ ..
+ syscons
+ fonts
+ ..
+ keymaps
+ ..
+ scrnmaps
+ ..
+ ..
+ tabset
+ ..
+ tmac
+ mdoc
+ ..
+ mm
+ ..
+ ..
+ vi
+ catalog
+ ..
+ ..
+ zoneinfo
+ Africa
+ ..
+ America
+ Indiana
+ ..
+ Kentucky
+ ..
+ North_Dakota
+ ..
+ ..
+ Antarctica
+ ..
+ Arctic
+ ..
+ Asia
+ ..
+ Atlantic
+ ..
+ Australia
+ ..
+ Etc
+ ..
+ Europe
+ ..
+ Indian
+ ..
+ Pacific
+ ..
+ SystemV
+ ..
+ ..
+ ..
+ src nochange
+ ..
+..
diff --git a/etc/mtree/BSD.var.dist b/etc/mtree/BSD.var.dist
new file mode 100644
index 0000000..26a4205
--- /dev/null
+++ b/etc/mtree/BSD.var.dist
@@ -0,0 +1,90 @@
+# $FreeBSD$
+#
+# Please see the file src/etc/mtree/README before making changes to this file.
+#
+
+/set type=dir uname=root gname=wheel mode=0755
+.
+ account
+ ..
+ at
+/set uname=daemon
+ jobs
+ ..
+ spool
+ ..
+/set uname=root
+ ..
+/set mode=0750
+ backups
+ ..
+ crash
+ ..
+ cron
+ tabs mode=0700
+ ..
+ ..
+/set mode=0755
+ db
+ entropy uname=operator gname=operator mode=0700
+ ..
+ ipf mode=0700
+ ..
+ pkg
+ ..
+ ..
+ empty mode=0555 flags=schg
+ ..
+/set gname=games mode=0775
+ games
+ hackdir mode=0770
+ save mode=0770
+ ..
+ ..
+ larn
+ ..
+ phantasia
+ ..
+ ..
+/set gname=wheel mode=0755
+ heimdal mode=0700
+ ..
+ log
+ ..
+ mail gname=mail mode=0775
+ ..
+ msgs uname=daemon
+ ..
+ preserve
+ ..
+ run
+ named uname=bind gname=bind
+ ..
+ ppp gname=network mode=0770
+ ..
+ ..
+ rwho gname=daemon mode=0775
+ ..
+ spool
+ lock uname=uucp gname=dialer mode=0775
+ ..
+/set gname=daemon
+ lpd
+ ..
+ mqueue
+ ..
+ opielocks mode=0700
+ ..
+ output
+ lpd
+ ..
+ ..
+/set gname=wheel
+ ..
+ tmp mode=01777
+ vi.recover mode=01777
+ ..
+ ..
+ yp
+ ..
+..
diff --git a/etc/mtree/BSD.x11-4.dist b/etc/mtree/BSD.x11-4.dist
new file mode 100644
index 0000000..dca7d08
--- /dev/null
+++ b/etc/mtree/BSD.x11-4.dist
@@ -0,0 +1,420 @@
+# $FreeBSD$
+#
+# Please see the file src/etc/mtree/README before making changes to this file.
+#
+
+/set type=dir uname=root gname=wheel mode=0755
+.
+ bin
+ ..
+ etc
+ rc.d
+ ..
+ ..
+ include
+ DPS
+ ..
+ GL
+ ..
+ X11
+ ICE
+ ..
+ PEX5
+ ..
+ PM
+ ..
+ SM
+ ..
+ Xaw
+ ..
+ Xft
+ ..
+ Xmu
+ ..
+ bitmaps
+ ..
+ extensions
+ ..
+ fonts
+ codeconv
+ ..
+ ..
+ pixmaps
+ ..
+ ..
+ bitmaps
+ ..
+ freetype2
+ freetype
+ cache
+ ..
+ config
+ ..
+ internal
+ ..
+ ..
+ ..
+ ..
+ info
+ ..
+ lib
+ X11
+ XF86Setup
+ pics
+ ..
+ scripts
+ ..
+ tcllib
+ ..
+ ..
+ app-defaults
+ ..
+ config
+ ..
+ doc
+ PostScript
+ ..
+ html
+ ..
+ ..
+ etc
+ ..
+ fonts
+ 100dpi
+ ..
+ 75dpi
+ ..
+ CID
+ ..
+ PEX
+ ..
+ Speedo
+ ..
+ Type1
+ ..
+ cyrillic
+ ..
+ encodings
+ large
+ ..
+ ..
+ latin2
+ 100dpi
+ ..
+ 75dpi
+ ..
+ ..
+ local
+ ..
+ misc
+ ..
+ util
+ ..
+ ..
+ fs
+ ..
+ lbxproxy
+ ..
+ locale
+ C
+ ..
+ armscii-8
+ ..
+ en_US.UTF-8
+ ..
+ en_US.utf
+ ..
+ georgian-academy
+ ..
+ georgian-ps
+ ..
+ ibm-cp1133
+ ..
+ iscii-dev
+ ..
+ isiri-3342
+ ..
+ iso8859-1
+ ..
+ iso8859-10
+ ..
+ iso8859-13
+ ..
+ iso8859-14
+ ..
+ iso8859-15
+ ..
+ iso8859-2
+ ..
+ iso8859-3
+ ..
+ iso8859-4
+ ..
+ iso8859-5
+ ..
+ iso8859-6
+ ..
+ iso8859-7
+ ..
+ iso8859-8
+ ..
+ iso8859-9
+ ..
+ iso8859-9e
+ ..
+ ja
+ ..
+ ja.JIS
+ ..
+ ja.SJIS
+ ..
+ ko
+ ..
+ koi8-c
+ ..
+ koi8-r
+ ..
+ koi8-u
+ ..
+ microsoft-cp1251
+ ..
+ microsoft-cp1255
+ ..
+ microsoft-cp1256
+ ..
+ mk_MK.UTF-8
+ ..
+ mulelao-1
+ ..
+ nokhchi-1
+ ..
+ tatar-cyr
+ ..
+ tbl_data
+ ..
+ th_TH
+ ..
+ th_TH.TACTIS
+ ..
+ tscii-0
+ ..
+ vi_VN.tcvn
+ ..
+ vi_VN.viscii
+ ..
+ zh
+ ..
+ zh_CN.gbk
+ ..
+ zh_HK.big5hkscs
+ ..
+ zh_TW
+ ..
+ zh_TW.Big5
+ ..
+ ..
+ proxymngr
+ ..
+ rstart
+ commands
+ x11r6
+ ..
+ ..
+ contexts
+ ..
+ ..
+ twm
+ ..
+ x11perfcomp
+ ..
+ xdm
+ pixmaps
+ ..
+ ..
+ xinit
+ ..
+ xkb
+ compat
+ ..
+ compiled
+ ..
+ geometry
+ digital
+ ..
+ sgi
+ ..
+ ..
+ keycodes
+ digital
+ ..
+ sgi
+ ..
+ ..
+ keymap
+ digital
+ ..
+ sgi
+ ..
+ sun
+ ..
+ ..
+ rules
+ ..
+ semantics
+ ..
+ symbols
+ digital
+ ..
+ fujitsu
+ ..
+ hp
+ ..
+ macintosh
+ ..
+ nec
+ ..
+ sgi
+ ..
+ sony
+ ..
+ sun
+ ..
+ xfree68
+ ..
+ ..
+ types
+ ..
+ ..
+ xserver
+ ..
+ xsm
+ ..
+ ..
+ aout
+ ..
+ modules
+ codeconv
+ ..
+ dri
+ ..
+ drivers
+ ..
+ extensions
+ ..
+ fonts
+ ..
+ freebsd
+ ..
+ input
+ ..
+ ..
+ ..
+ libdata
+ ..
+ libexec
+ ..
+ man
+/set uname=man
+ cat1
+ ..
+ cat2
+ ..
+ cat3
+ ..
+ cat4
+ ..
+ cat5
+ ..
+ cat6
+ ..
+ cat7
+ ..
+ cat8
+ ..
+ cat9
+ ..
+ catl
+ ..
+ catn
+ ..
+ ja uname=root
+ cat1
+ ..
+ cat2
+ ..
+ cat3
+ ..
+ cat4
+ ..
+ cat5
+ ..
+ cat6
+ ..
+ cat7
+ ..
+ cat8
+ ..
+ cat9
+ ..
+ catl
+ ..
+ catn
+ ..
+/set uname=root
+ man1
+ ..
+ man2
+ ..
+ man3
+ ..
+ man4
+ ..
+ man5
+ ..
+ man6
+ ..
+ man7
+ ..
+ man8
+ ..
+ man9
+ ..
+ manl
+ ..
+ mann
+ ..
+ ..
+ man1
+ ..
+ man2
+ ..
+ man3
+ ..
+ man4
+ ..
+ man5
+ ..
+ man6
+ ..
+ man7
+ ..
+ man8
+ ..
+ man9
+ ..
+ manl
+ ..
+ mann
+ ..
+ ..
+ share
+ aclocal
+ ..
+ doc
+ ja
+ ..
+ ..
+ examples
+ ..
+ ..
+..
diff --git a/etc/mtree/BSD.x11.dist b/etc/mtree/BSD.x11.dist
new file mode 100644
index 0000000..ef33781
--- /dev/null
+++ b/etc/mtree/BSD.x11.dist
@@ -0,0 +1,302 @@
+# $FreeBSD$
+#
+# Please see the file src/etc/mtree/README before making changes to this file.
+#
+
+/set type=dir uname=root gname=wheel mode=0755
+.
+ bin
+ ..
+ etc
+ rc.d
+ ..
+ ..
+ include
+ X11
+ ICE
+ ..
+ PEX5
+ ..
+ PM
+ ..
+ SM
+ ..
+ Xaw
+ ..
+ Xmu
+ ..
+ bitmaps
+ ..
+ extensions
+ ..
+ fonts
+ ..
+ pixmaps
+ ..
+ ..
+ ..
+ info
+ ..
+ lib
+ X11
+ XF86Setup
+ pics
+ ..
+ scripts
+ ..
+ tcllib
+ ..
+ ..
+ app-defaults
+ ..
+ config
+ ..
+ doc
+ ..
+ etc
+ ..
+ fonts
+ 100dpi
+ ..
+ 75dpi
+ ..
+ PEX
+ ..
+ Speedo
+ ..
+ Type1
+ ..
+ cyrillic
+ ..
+ local
+ ..
+ misc
+ ..
+ ..
+ fs
+ ..
+ lbxproxy
+ ..
+ locale
+ C
+ ..
+ en_US.utf
+ ..
+ iso8859-1
+ ..
+ iso8859-2
+ ..
+ iso8859-3
+ ..
+ iso8859-4
+ ..
+ iso8859-5
+ ..
+ iso8859-6
+ ..
+ iso8859-7
+ ..
+ iso8859-8
+ ..
+ iso8859-9
+ ..
+ ja
+ ..
+ ja.JIS
+ ..
+ ja.SJIS
+ ..
+ ko
+ ..
+ koi8-r
+ ..
+ tbl_data
+ ..
+ th_TH.TACTIS
+ ..
+ zh
+ ..
+ zh_TW
+ ..
+ zh_TW.Big5
+ ..
+ ..
+ proxymngr
+ ..
+ rstart
+ commands
+ x11r6
+ ..
+ ..
+ contexts
+ ..
+ ..
+ twm
+ ..
+ x11perfcomp
+ ..
+ xdm
+ ..
+ xinit
+ ..
+ xkb
+ compat
+ ..
+ compiled
+ ..
+ geometry
+ digital
+ ..
+ sgi
+ ..
+ ..
+ keycodes
+ digital
+ ..
+ sgi
+ ..
+ ..
+ keymap
+ digital
+ ..
+ sgi
+ ..
+ sun
+ ..
+ ..
+ rules
+ ..
+ semantics
+ ..
+ symbols
+ digital
+ ..
+ fujitsu
+ ..
+ nec
+ ..
+ sony
+ ..
+ sun
+ ..
+ ..
+ ..
+ xserver
+ ..
+ xsm
+ ..
+ ..
+ aout
+ ..
+ modules
+ ..
+ ..
+ libdata
+ ..
+ libexec
+ ..
+ man
+/set uname=man
+ cat1
+ ..
+ cat2
+ ..
+ cat3
+ ..
+ cat4
+ ..
+ cat5
+ ..
+ cat6
+ ..
+ cat7
+ ..
+ cat8
+ ..
+ cat9
+ ..
+ catl
+ ..
+ catn
+ ..
+ ja uname=root
+ cat1
+ ..
+ cat2
+ ..
+ cat3
+ ..
+ cat4
+ ..
+ cat5
+ ..
+ cat6
+ ..
+ cat7
+ ..
+ cat8
+ ..
+ cat9
+ ..
+ catl
+ ..
+ catn
+ ..
+/set uname=root
+ man1
+ ..
+ man2
+ ..
+ man3
+ ..
+ man4
+ ..
+ man5
+ ..
+ man6
+ ..
+ man7
+ ..
+ man8
+ ..
+ man9
+ ..
+ manl
+ ..
+ mann
+ ..
+ ..
+ man1
+ ..
+ man2
+ ..
+ man3
+ ..
+ man4
+ ..
+ man5
+ ..
+ man6
+ ..
+ man7
+ ..
+ man8
+ ..
+ man9
+ ..
+ manl
+ ..
+ mann
+ ..
+ ..
+ share
+ aclocal
+ ..
+ doc
+ ja
+ ..
+ ..
+ examples
+ ..
+ ..
+..
diff --git a/etc/mtree/Makefile b/etc/mtree/Makefile
new file mode 100644
index 0000000..f5c6b97
--- /dev/null
+++ b/etc/mtree/Makefile
@@ -0,0 +1,8 @@
+# $FreeBSD$
+
+FILES= BSD.include.dist BSD.local.dist BSD.root.dist BSD.usr.dist \
+ BSD.var.dist BSD.x11-4.dist BSD.x11.dist
+NOOBJ= noobj
+FILESDIR= /etc/mtree
+
+.include <bsd.prog.mk>
diff --git a/etc/mtree/README b/etc/mtree/README
new file mode 100644
index 0000000..0e803a0
--- /dev/null
+++ b/etc/mtree/README
@@ -0,0 +1,50 @@
+$FreeBSD$
+
+Note: If you modify these files, please keep hier(7) updated!
+
+These files are used to create empty file hierarchies for building the
+system into. Some notes about working with them are placed here to try
+and keep them in good working order.
+
+ a) The files use 4 space indentation, and other than in the header
+ comments, should not contain any tabs. An indentation of 4 is
+ preferable to the standard indentation of 8 because the indentation
+ of levels in these files can become quite deep causing the line to
+ overflow 80 characters.
+
+ This also matches with the files generated when using the
+ mtree -c option, which was implemented that way for the same reason.
+
+ b) Only directories should be listed here.
+
+ c) The listing should be kept in filename sorted order.
+
+ d) Sanity checking changes to these files can be done by following
+ this procedure (the sed -e is ugly, but fixing mtree -c to
+ not emit the trailing white space would be even uglier):
+
+ mkdir /tmp/MTREE
+ mtree -deU -f BSD.X.dist -p /tmp/MTREE
+ mtree -cdin -k uname,gname,mode -p /tmp/MTREE | \
+ sed -e 's/ *$//' | tail +5 >BSD.X.new
+ diff -u BSD.X.dist BSD.X.new
+ rm -r /tmp/MTREE
+
+ Note that you will get some differences about /set lines,
+ and uname= gname= on certain directory areas, mainly man page
+ sections. This is caused by mtree not having a look ahead
+ mechanism for making better selections for these as it
+ traverses the hierarchy.
+
+ The BSD.X.new file should NOT be commited, will be missing the
+ correct header, and important keywords like ``nochange''. Simply
+ use the diff for a sanity check to make sure things are in the
+ correct order and correctly indented.
+
+ e) Further sanity checking of the system builds with DESTDIR=/someplace
+ are more complicated, but can often catch missing entries in these
+ files. I tend to run this more complete sanity check shortly after
+ the target date for a new release is announced.
+
+ If you want details on it bug me about it via email to
+ rgrimes@FreeBSD.org.
diff --git a/etc/namedb/Makefile b/etc/namedb/Makefile
new file mode 100644
index 0000000..db52d47
--- /dev/null
+++ b/etc/namedb/Makefile
@@ -0,0 +1,9 @@
+# $FreeBSD$
+
+FILES= PROTO.localhost.rev PROTO.localhost-v6.rev named.conf named.root \
+ make-localhost
+NOOBJ= noobj
+FILESDIR= /etc/namedb
+FILESMODE= 644
+
+.include <bsd.prog.mk>
diff --git a/etc/namedb/PROTO.localhost-v6.rev b/etc/namedb/PROTO.localhost-v6.rev
new file mode 100644
index 0000000..1616771
--- /dev/null
+++ b/etc/namedb/PROTO.localhost-v6.rev
@@ -0,0 +1,17 @@
+; From: @(#)localhost.rev 5.1 (Berkeley) 6/30/90
+; $FreeBSD$
+;
+; This file is automatically edited by the `make-localhost' script in
+; the /etc/namedb directory.
+;
+
+$TTL 3600
+
+@ IN SOA @host@. root.@host@. (
+ @date@ ; Serial
+ 3600 ; Refresh
+ 900 ; Retry
+ 3600000 ; Expire
+ 3600 ) ; Minimum
+ IN NS @host@.
+ IN PTR localhost.@domain@.
diff --git a/etc/namedb/PROTO.localhost.rev b/etc/namedb/PROTO.localhost.rev
new file mode 100644
index 0000000..0468683
--- /dev/null
+++ b/etc/namedb/PROTO.localhost.rev
@@ -0,0 +1,17 @@
+; From: @(#)localhost.rev 5.1 (Berkeley) 6/30/90
+; $FreeBSD$
+;
+; This file is automatically edited by the `make-localhost' script in
+; the /etc/namedb directory.
+;
+
+$TTL 3600
+
+@ IN SOA @host@. root.@host@. (
+ @date@ ; Serial
+ 3600 ; Refresh
+ 900 ; Retry
+ 3600000 ; Expire
+ 3600 ) ; Minimum
+ IN NS @host@.
+1 IN PTR localhost.@domain@.
diff --git a/etc/namedb/make-localhost b/etc/namedb/make-localhost
new file mode 100755
index 0000000..f3f0b1d
--- /dev/null
+++ b/etc/namedb/make-localhost
@@ -0,0 +1,47 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# make-localhost - edit the appropriate local information into
+# /etc/namedb/localhost.rev
+#
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin
+export PATH
+
+if [ "`hostname -s`" != "`hostname`" ]; then
+ # hostname must contain domain
+
+ host=`hostname -s`
+ fullhost=`hostname`
+ domain=`echo $fullhost | sed "s/^$host\.//"`
+else
+ host=`hostname`
+
+ if [ -z "$1" ]; then
+ echo -n 'Enter your domain name: '
+ read domain
+ else
+ domain="$1"
+ fi
+
+ # strip trailing dot, if any
+ domain=`echo $domain | sed 's/\.$//'`
+ fullhost="$host.$domain"
+fi
+
+date=`date +"%Y%m%d"`
+
+mv -f localhost-v6.rev localhost-v6.rev.BAK 2>/dev/null
+
+sed -e "s/@host@/$fullhost/g" \
+ -e "s/@domain@/$domain/g" \
+ -e "s/@date@/$date/g" \
+ < PROTO.localhost-v6.rev > localhost-v6.rev
+
+mv -f localhost.rev localhost.rev.BAK 2>/dev/null
+
+exec sed -e "s/@host@/$fullhost/g" \
+ -e "s/@domain@/$domain/g" \
+ -e "s/@date@/$date/g" \
+ < PROTO.localhost.rev > localhost.rev
diff --git a/etc/namedb/named.conf b/etc/namedb/named.conf
new file mode 100644
index 0000000..aba36dc
--- /dev/null
+++ b/etc/namedb/named.conf
@@ -0,0 +1,118 @@
+// $FreeBSD$
+//
+// Refer to the named.conf(5) and named(8) man pages for details. If
+// you are ever going to setup a primary server, make sure you've
+// understood the hairy details of how DNS is working. Even with
+// simple mistakes, you can break connectivity for affected parties,
+// or cause huge amount of useless Internet traffic.
+
+options {
+ directory "/etc/namedb";
+ pid-file "/var/run/named/pid";
+
+// In addition to the "forwarders" clause, you can force your name
+// server to never initiate queries of its own, but always ask its
+// forwarders only, by enabling the following line:
+//
+// forward only;
+
+// If you've got a DNS server around at your upstream provider, enter
+// its IP address here, and enable the line below. This will make you
+// benefit from its cache, thus reduce overall DNS traffic in the Internet.
+/*
+ forwarders {
+ 127.0.0.1;
+ };
+*/
+ /*
+ * If there is a firewall between you and nameservers you want
+ * to talk to, you might need to uncomment the query-source
+ * directive below. Previous versions of BIND always asked
+ * questions using port 53, but BIND 8.1 uses an unprivileged
+ * port by default.
+ */
+ // query-source address * port 53;
+
+ /*
+ * If running in a sandbox, you may have to specify a different
+ * location for the dumpfile.
+ */
+ // dump-file "s/named_dump.db";
+};
+
+// Note: the following will be supported in a future release.
+/*
+host { any; } {
+ topology {
+ 127.0.0.0/8;
+ };
+};
+*/
+
+// Setting up secondaries is way easier and the rough picture for this
+// is explained below.
+//
+// If you enable a local name server, don't forget to enter 127.0.0.1
+// into your /etc/resolv.conf so this server will be queried first.
+// Also, make sure to enable it in /etc/rc.conf.
+
+zone "." {
+ type hint;
+ file "named.root";
+};
+
+zone "0.0.127.IN-ADDR.ARPA" {
+ type master;
+ file "localhost.rev";
+};
+
+zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.INT" {
+ type master;
+ file "localhost-v6.rev";
+};
+
+// NB: Do not use the IP addresses below, they are faked, and only
+// serve demonstration/documentation purposes!
+//
+// Example secondary config entries. It can be convenient to become
+// a secondary at least for the zone where your own domain is in. Ask
+// your network administrator for the IP address of the responsible
+// primary.
+//
+// Never forget to include the reverse lookup (IN-ADDR.ARPA) zone!
+// (This is the first bytes of the respective IP address, in reverse
+// order, with ".IN-ADDR.ARPA" appended.)
+//
+// Before starting to setup a primary zone, better make sure you fully
+// understand how DNS and BIND works, however. There are sometimes
+// unobvious pitfalls. Setting up a secondary is comparably simpler.
+//
+// NB: Don't blindly enable the examples below. :-) Use actual names
+// and addresses instead.
+//
+// NOTE!!! FreeBSD can run bind in a sandbox (see named_flags in rc.conf).
+// The directory containing the secondary zones must be write accessible
+// to bind. The following sequence is suggested:
+//
+// mkdir /etc/namedb/s
+// chown bind:bind /etc/namedb/s
+// chmod 750 /etc/namedb/s
+
+/*
+zone "domain.com" {
+ type slave;
+ file "s/domain.com.bak";
+ masters {
+ 192.168.1.1;
+ };
+};
+
+zone "0.168.192.in-addr.arpa" {
+ type slave;
+ file "s/0.168.192.in-addr.arpa.bak";
+ masters {
+ 192.168.1.1;
+ };
+};
+*/
+
diff --git a/etc/namedb/named.root b/etc/namedb/named.root
new file mode 100644
index 0000000..eba0c9d
--- /dev/null
+++ b/etc/namedb/named.root
@@ -0,0 +1,83 @@
+; This file holds the information on root name servers needed to
+; initialize cache of Internet domain name servers
+; (e.g. reference this file in the "cache . <file>"
+; configuration file of BIND domain name servers).
+;
+; This file is made available by InterNIC registration services
+; under anonymous FTP as
+; file /domain/named.root
+; on server FTP.RS.INTERNIC.NET
+; -OR- under Gopher at RS.INTERNIC.NET
+; under menu InterNIC Registration Services (NSI)
+; submenu InterNIC Registration Archives
+; file named.root
+;
+; last update: Aug 22, 1997
+; related version of root zone: 1997082200
+; $FreeBSD$
+;
+; formerly NS.INTERNIC.NET
+;
+. 3600000 IN NS A.ROOT-SERVERS.NET.
+A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
+;
+; formerly NS1.ISI.EDU
+;
+. 3600000 NS B.ROOT-SERVERS.NET.
+B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
+;
+; formerly C.PSI.NET
+;
+. 3600000 NS C.ROOT-SERVERS.NET.
+C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
+;
+; formerly TERP.UMD.EDU
+;
+. 3600000 NS D.ROOT-SERVERS.NET.
+D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
+;
+; formerly NS.NASA.GOV
+;
+. 3600000 NS E.ROOT-SERVERS.NET.
+E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
+;
+; formerly NS.ISC.ORG
+;
+. 3600000 NS F.ROOT-SERVERS.NET.
+F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
+;
+; formerly NS.NIC.DDN.MIL
+;
+. 3600000 NS G.ROOT-SERVERS.NET.
+G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
+;
+; formerly AOS.ARL.ARMY.MIL
+;
+. 3600000 NS H.ROOT-SERVERS.NET.
+H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
+;
+; formerly NIC.NORDU.NET
+;
+. 3600000 NS I.ROOT-SERVERS.NET.
+I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
+;
+; temporarily housed at NSI (InterNIC)
+;
+. 3600000 NS J.ROOT-SERVERS.NET.
+J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10
+;
+; housed in LINX, operated by RIPE NCC
+;
+. 3600000 NS K.ROOT-SERVERS.NET.
+K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
+;
+; temporarily housed at ISI (IANA)
+;
+. 3600000 NS L.ROOT-SERVERS.NET.
+L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
+;
+; housed in Japan, operated by WIDE
+;
+. 3600000 NS M.ROOT-SERVERS.NET.
+M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
+; End of File
diff --git a/etc/netconfig b/etc/netconfig
new file mode 100644
index 0000000..6e6abd0
--- /dev/null
+++ b/etc/netconfig
@@ -0,0 +1,19 @@
+# $FreeBSD$
+#
+# The network configuration file. This file is currently only used in
+# conjunction with the (TI-) RPC code in the C library, unlike its
+# use in SVR4.
+#
+# Entries consist of:
+#
+# <network_id> <semantics> <flags> <protofamily> <protoname> \
+# <device> <nametoaddr_libs>
+#
+# The <device> and <nametoaddr_libs> fields are always empty in FreeBSD.
+#
+udp6 tpi_clts v inet6 udp - -
+tcp6 tpi_cots_ord v inet6 tcp - -
+udp tpi_clts v inet udp - -
+tcp tpi_cots_ord v inet tcp - -
+rawip tpi_raw - inet - - -
+unix tpi_cots_ord - loopback - - -
diff --git a/etc/netstart b/etc/netstart
new file mode 100755
index 0000000..56d8973
--- /dev/null
+++ b/etc/netstart
@@ -0,0 +1,74 @@
+#!/bin/sh -
+#
+# Copyright (c) 1993 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+# From: @(#)netstart 5.9 (Berkeley) 3/30/91
+#
+
+# This file is NOT called by any of the other scripts - it has been
+# obsoleted by /etc/rc.network and is provided here only for user
+# convenience (if you're sitting in single user mode and wish to start
+# the network by hand, this script will do it for you).
+#
+
+# If there is a global system configuration file, suck it in.
+if [ -f /etc/defaults/rc.conf ]; then
+ . /etc/defaults/rc.conf
+ source_rc_confs
+elif [ -f /etc/rc.conf ]; then
+ . /etc/rc.conf
+fi
+
+# Start pccard if necessary
+if [ -r /etc/rc.pccard ]; then
+ . /etc/rc.pccard
+fi
+
+if [ -r /etc/rc.network ]; then
+ . /etc/rc.network
+else
+ echo 'Sorry, I cannot find /etc/rc.network - aborting'
+ exit 1
+fi
+
+echo 'Doing stage one network startup:'
+network_pass1
+
+case ${ipv6_enable} in
+[Yy][Ee][Ss])
+ if [ -r /etc/rc.network6 ]; then
+ . /etc/rc.network6
+ else
+ echo 'Sorry, I cannot find /etc/rc.network6 - aborting'
+ exit 1
+ fi
+
+ echo 'Doing stage one network6 startup:'
+ network6_pass1
+ ;;
+esac
+
+exit 0
diff --git a/etc/network.subr b/etc/network.subr
new file mode 100644
index 0000000..7b2f40f
--- /dev/null
+++ b/etc/network.subr
@@ -0,0 +1,225 @@
+#!/bin/sh -x
+#
+# $FreeBSD$
+#
+
+# PROVIDE: network1
+# REQUIRE: atm1 ipfilter mountcritlocal pccard serial sppp sysctl tty
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="network1"
+start_cmd="network_start"
+stop_cmd="network_stop"
+
+convert_host_conf()
+{
+ host_conf=$1; shift;
+ nsswitch_conf=$1; shift;
+ awk ' \
+ /^[:blank:]*#/ { next } \
+ /(hosts|local|file)/ { nsswitch[c] = "files"; c++; next } \
+ /(dns|bind)/ { nsswitch[c] = "dns"; c++; next } \
+ /nis/ { nsswitch[c] = "nis"; c++; next } \
+ { printf "Warning: unrecognized line [%s]", $0 > "/dev/stderr" } \
+ END { \
+ printf "hosts: "; \
+ for (i in nsswitch) printf "%s ", nsswitch[i]; \
+ printf "\n"; \
+ }' < $host_conf > $nsswitch_conf
+}
+
+generate_host_conf()
+{
+ nsswitch_conf=$1; shift;
+ host_conf=$1; shift;
+
+ awk '
+BEGIN {
+ xlat["files"] = "hosts";
+ xlat["dns"] = "bind";
+ xlat["nis"] = "nis";
+ cont = 0;
+}
+sub(/^[\t ]*hosts:/, "") || cont {
+ if (!cont)
+ srcs = ""
+ sub(/#.*/, "")
+ gsub(/[][]/, " & ")
+ cont = sub(/\\$/, "")
+ srcs = srcs " " $0
+}
+END {
+ print "# Auto-generated from nsswitch.conf, do not edit"
+ ns = split(srcs, s)
+ for (n = 1; n <= ns; ++n) {
+ if (s[n] in xlat)
+ print xlat[s[n]]
+ }
+}
+' <$nsswitch_conf >$host_conf
+}
+
+network_gif_setup() {
+ case ${gif_interfaces} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ for i in ${gif_interfaces}; do
+ eval peers=\$gifconfig_$i
+ case ${peers} in
+ '')
+ continue
+ ;;
+ *)
+ ifconfig $i create >/dev/null 2>&1
+ ifconfig $i tunnel ${peers}
+ ;;
+ esac
+ done
+ ;;
+ esac
+}
+
+network_start()
+{
+ # set hostname, turn on network
+ #
+ echo -n "Doing initial network setup:"
+
+ # Generate host.conf for compatibility
+ #
+ if [ -f "/etc/nsswitch.conf" ]; then
+ echo -n ' host.conf'
+ generate_host_conf /etc/nsswitch.conf /etc/host.conf
+ fi
+
+ # Convert host.conf to nsswitch.conf if necessary
+ #
+ if [ -f "/etc/host.conf" -a ! -f "/etc/nsswitch.conf" ]; then
+ echo ''
+ echo 'Warning: /etc/host.conf is no longer used'
+ echo ' /etc/nsswitch.conf will be created for you'
+ convert_host_conf /etc/host.conf /etc/nsswitch.conf
+ fi
+
+ # Set the host name if it is not already set
+ #
+ if [ -z "`hostname -s`" ]; then
+ hostname ${hostname}
+ echo -n ' hostname'
+ fi
+
+ # Set the domainname if we're using NIS
+ #
+ case ${nisdomainname} in
+ [Nn][Oo]|'')
+ ;;
+ *)
+ domainname ${nisdomainname}
+ echo -n ' domain'
+ ;;
+ esac
+
+ echo '.'
+
+ # Attempt to create cloned interfaces.
+ for ifn in ${cloned_interfaces}; do
+ ifconfig ${ifn} create
+ done
+
+ # gifconfig
+ network_gif_setup
+
+ # Set up all the network interfaces, calling startup scripts if needed
+ #
+ case ${network_interfaces} in
+ [Aa][Uu][Tt][Oo])
+ network_interfaces="`ifconfig -l`"
+ ;;
+ *)
+ network_interfaces="${network_interfaces} ${cloned_interfaces}"
+ ;;
+ esac
+
+ dhcp_interfaces=""
+ for ifn in ${network_interfaces}; do
+ if [ -r /etc/start_if.${ifn} ]; then
+ . /etc/start_if.${ifn}
+ eval showstat_$ifn=1
+ fi
+
+ # Do the primary ifconfig if specified
+ #
+ eval ifconfig_args=\$ifconfig_${ifn}
+
+ case ${ifconfig_args} in
+ '')
+ ;;
+ [Dd][Hh][Cc][Pp])
+ # DHCP inits are done all in one go below
+ dhcp_interfaces="$dhcp_interfaces $ifn"
+ eval showstat_$ifn=1
+ ;;
+ *)
+ ifconfig ${ifn} ${ifconfig_args}
+ eval showstat_$ifn=1
+ ;;
+ esac
+ done
+
+ if [ ! -z "${dhcp_interfaces}" ]; then
+ ${dhcp_program:-/sbin/dhclient} ${dhcp_flags} ${dhcp_interfaces}
+ fi
+
+ for ifn in ${network_interfaces}; do
+ # Check to see if aliases need to be added
+ #
+ alias=0
+ while : ; do
+ eval ifconfig_args=\$ifconfig_${ifn}_alias${alias}
+ if [ -n "${ifconfig_args}" ]; then
+ ifconfig ${ifn} ${ifconfig_args} alias
+ eval showstat_$ifn=1
+ alias=$((${alias} + 1))
+ else
+ break;
+ fi
+ done
+
+ # Do ipx address if specified
+ #
+ eval ifconfig_args=\$ifconfig_${ifn}_ipx
+ if [ -n "${ifconfig_args}" ]; then
+ ifconfig ${ifn} ${ifconfig_args}
+ eval showstat_$ifn=1
+ fi
+ done
+
+ # Display ifconfiged interfaces
+ for ifn in ${network_interfaces}; do
+ eval showstat=\$showstat_${ifn}
+ if [ ! -z ${showstat} ]; then
+ ifconfig ${ifn}
+ fi
+ done
+
+ # Resync ipfilter
+ /etc/rc.d/ipfilter resync
+}
+
+network_stop()
+{
+ echo -n "Stopping network:"
+
+ # flush routes
+ #
+ echo -n " flush routes"
+ route -n flush
+
+ echo '.'
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/networks b/etc/networks
new file mode 100644
index 0000000..a6b15d4
--- /dev/null
+++ b/etc/networks
@@ -0,0 +1,17 @@
+# $FreeBSD$
+# @(#)networks 5.1 (Berkeley) 6/30/90
+#
+# Your Local Networks Database
+#
+your-net 127 # your comment
+your-netmask 255.255.255 # subnet mask for your-net
+
+#
+# Your subnets
+#
+subnet1 127.0.1 alias1 # comment 1
+subnet2 127.0.2 alias2 # comment 2
+
+#
+# Internet networks (from nic.ddn.mil)
+#
diff --git a/etc/newsyslog.conf b/etc/newsyslog.conf
new file mode 100644
index 0000000..01893d7
--- /dev/null
+++ b/etc/newsyslog.conf
@@ -0,0 +1,27 @@
+# configuration file for newsyslog
+# $FreeBSD$
+#
+# Note: some sites will want to select more restrictive protections than the
+# defaults. In particular, it may be desirable to switch many of the 644
+# entries to 640 or 600. For example, some sites will consider the
+# contents of maillog, messages, and lpd-errs to be confidential. In the
+# future, these defaults may change to more conservative ones.
+#
+# logfilename [owner:group] mode count size when [ZJB] [/pid_file] [sig_num]
+/var/log/cron 600 3 100 * Z
+/var/log/amd.log 644 7 100 * Z
+/var/log/auth.log 600 7 100 * Z
+/var/log/kerberos.log 600 7 100 * Z
+/var/log/lpd-errs 644 7 100 * Z
+/var/log/maillog 640 7 * @T00 Z
+/var/log/sendmail.st 640 10 * 168 B
+/var/log/messages 644 5 100 * Z
+/var/log/all.log 600 7 * @T00 Z
+/var/log/slip.log root:network 640 3 100 * Z
+/var/log/ppp.log root:network 640 3 100 * Z
+/var/log/security 600 10 100 * Z
+/var/log/wtmp 644 3 * @01T05 B
+/var/log/daily.log 640 7 * @T00 Z
+/var/log/weekly.log 640 5 1 $W6D0 Z
+/var/log/monthly.log 640 12 * $M1D0 Z
+/var/log/console.log 600 5 100 * Z
diff --git a/etc/nls.alias b/etc/nls.alias
new file mode 100644
index 0000000..22331c1
--- /dev/null
+++ b/etc/nls.alias
@@ -0,0 +1,78 @@
+# $FreeBSD$
+
+ASCII C
+POSIX C
+US-ASCII C
+af_ZA.ISO_8859-1 af_ZA.ISO8859-1
+af_ZA.ISO_8859-15 af_ZA.ISO8859-15
+cs_CZ.ISO_8859-2 cs_CZ.ISO8859-2
+da_DK.ISO_8859-1 da_DK.ISO8859-1
+da_DK.ISO_8859-15 da_DK.ISO8859-15
+de_AT.ISO_8859-1 de_AT.ISO8859-1
+de_AT.ISO_8859-15 de_AT.ISO8859-15
+de_CH.ISO_8859-1 de_CH.ISO8859-1
+de_CH.ISO_8859-15 de_CH.ISO8859-15
+de_DE.ISO_8859-1 de_DE.ISO8859-1
+de_DE.ISO_8859-15 de_DE.ISO8859-15
+el_GR.ISO_8859-7 el_GR.ISO8859-7
+en_AU.ISO_8859-1 en_AU.ISO8859-1
+en_AU.ISO_8859-15 en_AU.ISO8859-15
+en_CA.ISO_8859-1 en_CA.ISO8859-1
+en_CA.ISO_8859-15 en_CA.ISO8859-15
+en_GB.ISO_8859-1 en_GB.ISO8859-1
+en_GB.ISO_8859-15 en_GB.ISO8859-15
+en_NZ.ISO_8859-1 en_NZ.ISO8859-1
+en_NZ.ISO_8859-15 en_NZ.ISO8859-15
+en_US.ISO_8859-1 en_US.ISO8859-1
+en_US.ISO_8859-15 en_US.ISO8859-15
+en_US.US-ASCII C
+es_ES.ISO_8859-1 es_ES.ISO8859-1
+es_ES.ISO_8859-15 es_ES.ISO8859-15
+et_EE.ISO_8859-15 et_EE.ISO8859-15
+fi_FI.ISO_8859-1 fi_FI.ISO8859-1
+fi_FI.ISO_8859-15 fi_FI.ISO8859-15
+fr_BE.ISO_8859-1 fr_BE.ISO8859-1
+fr_BE.ISO_8859-15 fr_BE.ISO8859-15
+fr_CA.ISO_8859-1 fr_CA.ISO8859-1
+fr_CA.ISO_8859-15 fr_CA.ISO8859-15
+fr_CH.ISO_8859-1 fr_CH.ISO8859-1
+fr_CH.ISO_8859-15 fr_CH.ISO8859-15
+fr_FR.ISO_8859-1 fr_FR.ISO8859-1
+fr_FR.ISO_8859-15 fr_FR.ISO8859-15
+hr_HR.ISO_8859-2 hr_HR.ISO8859-2
+hu_HU.ISO_8859-2 hu_HU.ISO8859-2
+is_IS.ISO_8859-1 is_IS.ISO8859-1
+is_IS.ISO_8859-15 is_IS.ISO8859-15
+it_CH.ISO_8859-1 it_CH.ISO8859-1
+it_CH.ISO_8859-15 it_CH.ISO8859-15
+it_IT.ISO_8859-1 it_IT.ISO8859-1
+it_IT.ISO_8859-15 it_IT.ISO8859-15
+ja_JP.EUC ja_JP.eucJP
+ja_JP.Shift_JIS ja_JP.SJIS
+ko_KR.EUC ko_KR.eucKR
+la_LN.ASCII la_LN.US-ASCII
+la_LN.ISO_8859-1 la_LN.ISO8859-1
+la_LN.ISO_8859-15 la_LN.ISO8859-15
+la_LN.ISO_8859-2 la_LN.ISO8859-2
+la_LN.ISO_8859-4 la_LN.ISO8859-4
+lt_LT.ISO_8859-4 lt_LT.ISO8859-4
+nl_BE.ISO_8859-1 nl_BE.ISO8859-1
+nl_BE.ISO_8859-15 nl_BE.ISO8859-15
+nl_NL.ISO_8859-1 nl_NL.ISO8859-1
+nl_NL.ISO_8859-15 nl_NL.ISO8859-15
+no_NO.ISO_8859-1 no_NO.ISO8859-1
+no_NO.ISO_8859-15 no_NO.ISO8859-15
+pl_PL.ISO_8859-2 pl_PL.ISO8859-2
+pt_PT.ISO_8859-1 pt_PT.ISO8859-1
+pt_PT.ISO_8859-15 pt_PT.ISO8859-15
+ru_RU.ISO_8859-5 ru_RU.ISO8859-5
+ru_SU.CP866 ru_RU.CP866
+ru_SU.ISO_8859-5 ru_RU.ISO8859-5
+ru_SU.ISO8859-5 ru_RU.ISO8859-5
+ru_SU.KOI8-R ru_RU.KOI8-R
+sk_SK.ISO_8859-2 sk_SK.ISO8859-2
+sl_SI.ISO_8859-2 sl_SI.ISO8859-2
+sv_SE.ISO_8859-1 sv_SE.ISO8859-1
+sv_SE.ISO_8859-15 sv_SE.ISO8859-15
+tr_TR.ISO_8859-9 tr_TR.ISO8859-9
+zh_CN.EUC zh_CN.eucCN
diff --git a/etc/nsmb.conf b/etc/nsmb.conf
new file mode 100644
index 0000000..e5f2258
--- /dev/null
+++ b/etc/nsmb.conf
@@ -0,0 +1,56 @@
+# $FreeBSD$
+#
+# smbfs lookups configuration files in next order:
+# 1. ~/.nsmbrc
+# 2. /etc/nsmb.conf - if this file found it will
+# override values with same keys from user files.
+#
+#
+# This file consist from a set of sections. Each section started by section name
+# surrounded with square brackets:
+# [section_name]
+#
+# End of the section marked either by new section or by the end of file.
+# Each section can contain zero or more parameters:
+# [section_name]
+# key=value
+#
+# where 'key' represents parameter name and 'value' a value assigned
+# to this parameter.
+#
+# SMB library uses next forms of section names (please note that the section
+# name should be in upper case when it refers to server, user or share):
+# A) [default]
+# B) [SERVER]
+# C) [SERVER:USER]
+# D) [SERVER:USER:SHARE]
+#
+# Here is the map of possible keywords:
+#
+# keyword/section A B C D Comment
+#
+# addr - + - - IP or IPX address of SMB server
+# charsets + + + + local:remote charset pair
+# nbns + + - - address of NetBIOS name server (WINS)
+# nbscope + + - - NetBIOS scope
+# nbtimeout + + - - timeout for NetBIOS name servers
+# password - - + + a plain text password used to access to the given share
+# retry_count + + - - number of retries before connection marked as broken
+# timeout + + - - SMB request timeout
+# workgroup + + + + name of workgroup
+#
+
+# A simple configuration example:
+
+# First, define a workgroup.
+#[default]
+#workgroup=SALES
+
+# The 'FSERVER' is an NT server.
+#[FSERVER]
+#charsets=koi8-r:cp866
+#addr=fserv.coolcorp.com
+
+#[FSERVER:JOE]
+# use persistent password cache for user 'joe'
+#password=$$1767877DF
diff --git a/etc/opieaccess b/etc/opieaccess
new file mode 100644
index 0000000..ed57ef1
--- /dev/null
+++ b/etc/opieaccess
@@ -0,0 +1,13 @@
+# $FreeBSD$
+#
+# This file controls whether UNIX passwords are to be permitted. Rules
+# are matched in order, and the search terminates when the first matching
+# rule has been found. Default action is "deny". See opieaccess(5) for
+# more information.
+#
+# Each rule has the form:
+#
+# permit address netmask
+# deny address netmask
+#
+#permit 127.0.0.1 255.255.255.255
diff --git a/etc/pam.d/Makefile b/etc/pam.d/Makefile
new file mode 100644
index 0000000..40c9fbe
--- /dev/null
+++ b/etc/pam.d/Makefile
@@ -0,0 +1,10 @@
+# $FreeBSD$
+
+NOOBJ= noobj
+FILES= README ftp ftpd gdm imap kde login other passwd pop3 \
+ rexecd rsh sshd su telnetd xdm xserver
+FILESDIR= /etc/pam.d
+FILESMODE= 644
+FILESMODE_README= 444
+
+.include <bsd.prog.mk>
diff --git a/etc/pam.d/README b/etc/pam.d/README
new file mode 100644
index 0000000..9acbff6
--- /dev/null
+++ b/etc/pam.d/README
@@ -0,0 +1,60 @@
+
+This directory contains configuration files for the Pluggable
+Authentication Modules (PAM) library.
+
+Each file details the module chain for a single service, and must be
+named after that service. If no configuration file is found for a
+particular service, the /etc/pam.d/other is used instead. If that
+file does not exist, /etc/pam.conf is searched for entries matching
+the specified service or, failing that, the "other" service.
+
+See the pam(8) manual page for an explanation of the workings of the
+PAM library and descriptions of the various files and modules. Below
+is a summary of the format for the pam.conf and /etc/pam.d/* files.
+
+Configuration lines take the following form:
+
+module-type control-flag module-path arguments
+
+Comments are introduced with a hash mark ('#'). Blank lines and lines
+consisting entirely of comments are ignored.
+
+The meanings of the different fields are as follows:
+
+ module-type:
+ auth: prompt for a password to authenticate that the user is
+ who they say they are, and set any credentials.
+ account: non-authentication based authorization, based on time,
+ resources, etc.
+ session: housekeeping before and/or after login.
+ password: update authentication tokens.
+
+ control-flag: How libpam handles success or failure of the module.
+ required: success is required, and on failure all remaining
+ modules are run.
+ requisite: success is required, and on failure no remaining
+ modules are run.
+ sufficient: success is sufficient, and if no previous required
+ module failed, no remaining modules are run.
+ optional: ignored unless the other modules return PAM_IGNORE.
+
+ arguments: Module-specific options, plus some generic ones:
+ debug: syslog debug info.
+ no_warn: return no warning messages to the application.
+ Remove this to feed back to the user the
+ reason(s) they are being rejected.
+ use_first_pass: try authentication using password from the
+ preceding auth module.
+ try_first_pass: first try authentication using password from
+ the preceding auth module, and if that fails
+ prompt for a new password.
+ use_mapped_pass: convert cleartext password to a crypto key.
+ expose_account: allow printing more info about the user when
+ prompting.
+
+Note that having a "sufficient" module as the last entry for a
+particular service and module type may result in surprising behaviour.
+To get the intended semantics, add a "required" entry listing the
+pam_deny module at the end of the chain.
+
+$FreeBSD$
diff --git a/etc/pam.d/convert.pl b/etc/pam.d/convert.pl
new file mode 100644
index 0000000..6859120
--- /dev/null
+++ b/etc/pam.d/convert.pl
@@ -0,0 +1,87 @@
+#!/usr/bin/perl -w
+#-
+# Copyright (c) 2001,2002 Networks Associates Technologies, Inc.
+# All rights reserved.
+#
+# This software was developed for the FreeBSD Project by ThinkSec AS and
+# NAI Labs, the Security Research Division of Network Associates, Inc.
+# under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the
+# DARPA CHATS research program.
+#
+# 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 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+use strict;
+use Fcntl;
+use vars qw(%SERVICES);
+
+MAIN:{
+ my $line;
+ my $service;
+ my $version;
+ my $type;
+ local *FILE;
+
+ while (<>) {
+ chomp();
+ s/\s*$//;
+ next unless m/^(\#*)(\w+)\s+(auth|account|session|password)\s+(\S.*)$/;
+ $line = $1.$3;
+ $line .= "\t" x ((16 - length($line) + 7) / 8);
+ $line .= $4;
+ push(@{$SERVICES{$2}->{$3}}, $line);
+ }
+
+ foreach $service (keys(%SERVICES)) {
+ $version = '$' . 'FreeBSD' . '$';
+ if (sysopen(FILE, $service, O_RDONLY)) {
+ while (<FILE>) {
+ next unless (m/(\$[F]reeBSD.*?\$)/);
+ $version = $1;
+ last;
+ }
+ close(FILE);
+ }
+ sysopen(FILE, $service, O_RDWR|O_CREAT|O_TRUNC)
+ or die("$service: $!\n");
+ print(FILE "#\n");
+ print(FILE "# $version\n");
+ print(FILE "#\n");
+ print(FILE "# PAM configuration for the \"$service\" service\n");
+ print(FILE "#\n");
+ foreach $type (qw(auth account session password)) {
+ next unless exists($SERVICES{$service}->{$type});
+ print(FILE "\n");
+ print(FILE "# $type\n");
+ print(FILE join("\n", @{$SERVICES{$service}->{$type}}, ""));
+ }
+ close(FILE);
+ warn("$service\n");
+ }
+
+ exit(0);
+}
diff --git a/etc/pam.d/ftp b/etc/pam.d/ftp
new file mode 100644
index 0000000..117f613
--- /dev/null
+++ b/etc/pam.d/ftp
@@ -0,0 +1,24 @@
+#
+# $FreeBSD$
+#
+# PAM configuration for the "ftp" service
+#
+
+# auth
+auth required pam_nologin.so no_warn
+#auth sufficient pam_kerberosIV.so no_warn
+#auth sufficient pam_krb5.so no_warn
+auth sufficient pam_opie.so no_warn no_fake_prompts
+auth requisite pam_opieaccess.so no_warn
+#auth required pam_ssh.so no_warn try_first_pass
+auth required pam_unix.so no_warn try_first_pass
+
+# account
+#account required pam_kerberosIV.so
+#account required pam_krb5.so
+account required pam_unix.so
+
+# session
+#session required pam_kerberosIV.so
+#session required pam_krb5.so
+#session required pam_ssh.so
diff --git a/etc/pam.d/ftpd b/etc/pam.d/ftpd
new file mode 100644
index 0000000..bfbf940
--- /dev/null
+++ b/etc/pam.d/ftpd
@@ -0,0 +1,24 @@
+#
+# $FreeBSD$
+#
+# PAM configuration for the "ftpd" service
+#
+
+# auth
+auth required pam_nologin.so no_warn
+#auth sufficient pam_kerberosIV.so no_warn
+#auth sufficient pam_krb5.so no_warn
+#auth sufficient pam_ssh.so no_warn try_first_pass
+auth sufficient pam_opie.so no_warn no_fake_prompts
+auth requisite pam_opieaccess.so no_warn
+auth required pam_unix.so no_warn try_first_pass
+
+# account
+#account required pam_kerberosIV.so
+#account required pam_krb5.so
+account required pam_unix.so
+
+# session
+#session required pam_kerberosIV.so
+#session required pam_krb5.so
+#session required pam_ssh.so
diff --git a/etc/pam.d/gdm b/etc/pam.d/gdm
new file mode 100644
index 0000000..a108601
--- /dev/null
+++ b/etc/pam.d/gdm
@@ -0,0 +1,26 @@
+#
+# $FreeBSD$
+#
+# PAM configuration for the "gdm" service
+#
+
+# auth
+auth required pam_nologin.so no_warn
+#auth sufficient pam_kerberosIV.so no_warn try_first_pass
+#auth sufficient pam_krb5.so no_warn try_first_pass
+#auth sufficient pam_ssh.so no_warn try_first_pass
+auth required pam_unix.so no_warn try_first_pass
+
+# account
+#account required pam_kerberosIV.so
+#account required pam_krb5.so
+account required pam_unix.so
+
+# session
+#session required pam_kerberosIV.so
+#session required pam_krb5.so
+#session required pam_ssh.so
+session required pam_permit.so
+
+# password
+password required pam_deny.so
diff --git a/etc/pam.d/imap b/etc/pam.d/imap
new file mode 100644
index 0000000..eaf53d2
--- /dev/null
+++ b/etc/pam.d/imap
@@ -0,0 +1,12 @@
+#
+# $FreeBSD$
+#
+# PAM configuration for the "imap" service
+#
+
+# auth
+#auth required pam_nologin.so no_warn
+#auth sufficient pam_opie.so no_warn no_fake_prompts
+#auth requisite pam_opieaccess.so no_warn
+#auth required pam_ssh.so no_warn try_first_pass
+#auth required pam_unix.so no_warn try_first_pass
diff --git a/etc/pam.d/kde b/etc/pam.d/kde
new file mode 100644
index 0000000..4d23ae8
--- /dev/null
+++ b/etc/pam.d/kde
@@ -0,0 +1,14 @@
+#
+# $FreeBSD$
+#
+# PAM configuration for the "kde" service
+#
+
+# auth
+auth required pam_nologin.so no_warn
+auth sufficient pam_opie.so no_warn no_fake_prompts
+auth requisite pam_opieaccess.so no_warn
+#auth sufficient pam_kerberosIV.so no_warn try_first_pass
+#auth sufficient pam_krb5.so no_warn try_first_pass
+#auth required pam_ssh.so no_warn try_first_pass
+auth required pam_unix.so no_warn try_first_pass
diff --git a/etc/pam.d/login b/etc/pam.d/login
new file mode 100644
index 0000000..997879d
--- /dev/null
+++ b/etc/pam.d/login
@@ -0,0 +1,33 @@
+#
+# $FreeBSD$
+#
+# PAM configuration for the "login" service
+#
+
+# auth
+auth required pam_nologin.so no_warn
+auth sufficient pam_self.so no_warn
+auth sufficient pam_opie.so no_warn no_fake_prompts
+auth requisite pam_opieaccess.so no_warn
+#auth sufficient pam_kerberosIV.so no_warn try_first_pass
+#auth sufficient pam_krb5.so no_warn try_first_pass
+#auth sufficient pam_ssh.so no_warn try_first_pass
+auth required pam_unix.so no_warn try_first_pass nullok
+
+# account
+#account required pam_kerberosIV.so
+#account required pam_krb5.so
+account required pam_login_access.so
+account required pam_securetty.so
+account required pam_unix.so
+
+# session
+#session required pam_kerberosIV.so
+#session required pam_krb5.so
+#session required pam_ssh.so
+session required pam_lastlog.so no_fail
+
+# password
+#password sufficient pam_kerberosIV.so no_warn try_first_pass
+#password sufficient pam_krb5.so no_warn try_first_pass
+password required pam_unix.so no_warn try_first_pass
diff --git a/etc/pam.d/other b/etc/pam.d/other
new file mode 100644
index 0000000..81e0055
--- /dev/null
+++ b/etc/pam.d/other
@@ -0,0 +1,20 @@
+#
+# $FreeBSD$
+#
+# PAM configuration for the "other" service
+#
+
+# auth
+auth required pam_nologin.so no_warn
+auth sufficient pam_opie.so no_warn no_fake_prompts
+auth requisite pam_opieaccess.so no_warn
+auth required pam_unix.so no_warn try_first_pass
+
+# account
+account required pam_unix.so
+
+# session
+session required pam_lastlog.so no_warn no_fail
+
+# password
+password required pam_deny.so
diff --git a/etc/pam.d/passwd b/etc/pam.d/passwd
new file mode 100644
index 0000000..d732c42
--- /dev/null
+++ b/etc/pam.d/passwd
@@ -0,0 +1,11 @@
+#
+# $FreeBSD$
+#
+# PAM configuration for the "passwd" service
+#
+
+# passwd(1) does not use the auth, account or session services.
+
+# password
+#password requisite pam_passwdqc.so enforce=users
+password required pam_unix.so no_warn try_first_pass
diff --git a/etc/pam.d/pop3 b/etc/pam.d/pop3
new file mode 100644
index 0000000..3657f12
--- /dev/null
+++ b/etc/pam.d/pop3
@@ -0,0 +1,12 @@
+#
+# $FreeBSD$
+#
+# PAM configuration for the "pop3" service
+#
+
+# auth
+#auth required pam_nologin.so no_warn
+#auth sufficient pam_opie.so no_warn no_fake_prompts
+#auth requisite pam_opieaccess.so no_warn
+#auth required pam_ssh.so no_warn try_first_pass
+#auth required pam_unix.so no_warn try_first_pass
diff --git a/etc/pam.d/rexecd b/etc/pam.d/rexecd
new file mode 100644
index 0000000..2126f86
--- /dev/null
+++ b/etc/pam.d/rexecd
@@ -0,0 +1,16 @@
+#
+# $FreeBSD$
+#
+# PAM configuration for the "rexecd" service
+#
+
+# auth
+auth required pam_nologin.so no_warn
+auth required pam_unix.so no_warn use_first_pass
+
+# account
+account required pam_unix.so no_warn
+account required pam_ftpusers.so no_warn disallow
+
+# session
+session required pam_permit.so no_warn
diff --git a/etc/pam.d/rsh b/etc/pam.d/rsh
new file mode 100644
index 0000000..c560463
--- /dev/null
+++ b/etc/pam.d/rsh
@@ -0,0 +1,12 @@
+#
+# $FreeBSD$
+#
+# PAM configuration for the "rsh" service
+#
+
+# auth
+auth required pam_nologin.so no_warn
+auth required pam_rhosts.so no_warn
+
+# account
+account required pam_unix.so
diff --git a/etc/pam.d/sshd b/etc/pam.d/sshd
new file mode 100644
index 0000000..410e95d
--- /dev/null
+++ b/etc/pam.d/sshd
@@ -0,0 +1,21 @@
+#
+# $FreeBSD$
+#
+# PAM configuration for the "sshd" service
+#
+
+# auth
+auth required pam_nologin.so no_warn
+auth sufficient pam_opie.so no_warn no_fake_prompts
+auth required pam_opieaccess.so no_warn
+auth required pam_unix.so no_warn try_first_pass
+
+# account
+account required pam_login_access.so
+account required pam_unix.so
+
+# session
+session required pam_lastlog.so no_warn no_fail
+
+# password
+password required pam_permit.so
diff --git a/etc/pam.d/su b/etc/pam.d/su
new file mode 100644
index 0000000..1d24474
--- /dev/null
+++ b/etc/pam.d/su
@@ -0,0 +1,53 @@
+#
+# $FreeBSD$
+#
+# PAM configuration for the "su" service
+#
+
+# auth
+auth sufficient pam_rootok.so no_warn
+auth sufficient pam_self.so no_warn
+auth requisite pam_wheel.so no_warn auth_as_self noroot_ok
+#auth sufficient pam_kerberosIV.so no_warn
+#auth sufficient pam_krb5.so no_warn try_first_pass auth_as_self
+auth sufficient pam_opie.so no_warn no_fake_prompts
+auth requisite pam_opieaccess.so no_warn
+#auth required pam_ssh.so no_warn try_first_pass
+auth required pam_unix.so no_warn try_first_pass nullok
+
+# account
+#account required pam_kerberosIV.so
+#account required pam_krb5.so
+account required pam_unix.so
+
+# session
+#session required pam_kerberosIV.so
+#session required pam_krb5.so
+#session required pam_ssh.so
+
+# password
+password required pam_permit.so
+
+
+# If you want a "WHEELSU"-type su(1), then comment out the
+# above, and uncomment the entries below.
+## auth
+#auth sufficient pam_rootok.so no_warn
+##auth sufficient pam_kerberosIV.so no_warn
+##auth sufficient pam_krb5.so no_warn
+#auth required pam_opie.so no_warn auth_as_self no_fake_prompts
+#auth required pam_unix.so no_warn try_first_pass auth_as_self
+
+## account
+##account required pam_kerberosIV.so
+##account required pam_krb5.so
+#account required pam_unix.so
+
+## session
+##session required pam_kerberosIV.so
+##session required pam_krb5.so
+##session required pam_ssh.so
+#session required pam_unix.so
+
+## password
+#password required pam_permit.so
diff --git a/etc/pam.d/telnetd b/etc/pam.d/telnetd
new file mode 100644
index 0000000..25fa6cf
--- /dev/null
+++ b/etc/pam.d/telnetd
@@ -0,0 +1,14 @@
+#
+# $FreeBSD$
+#
+# PAM configuration for the "telnetd" service
+#
+
+# auth
+auth required pam_nologin.so no_warn
+auth sufficient pam_opie.so no_warn no_fake_prompts
+auth required pam_opieaccess.so no_warn
+auth required pam_unix.so no_warn try_first_pass
+
+# account
+account required pam_unix.so
diff --git a/etc/pam.d/xdm b/etc/pam.d/xdm
new file mode 100644
index 0000000..4ad29e4
--- /dev/null
+++ b/etc/pam.d/xdm
@@ -0,0 +1,26 @@
+#
+# $FreeBSD$
+#
+# PAM configuration for the "xdm" service
+#
+
+# auth
+auth required pam_nologin.so no_warn
+#auth sufficient pam_kerberosIV.so no_warn try_first_pass
+#auth sufficient pam_krb5.so no_warn try_first_pass
+#auth sufficient pam_ssh.so no_warn try_first_pass
+auth required pam_unix.so no_warn try_first_pass
+
+# account
+#account required pam_kerberosIV.so
+#account required pam_krb5.so
+account required pam_unix.so
+
+# session
+#session required pam_kerberosIV.so
+#session required pam_krb5.so
+#session required pam_ssh.so
+session required pam_permit.so
+
+# password
+password required pam_deny.so
diff --git a/etc/pam.d/xserver b/etc/pam.d/xserver
new file mode 100644
index 0000000..81d7727
--- /dev/null
+++ b/etc/pam.d/xserver
@@ -0,0 +1,8 @@
+#
+# $FreeBSD$
+#
+# PAM configuration for the "xserver" service
+#
+
+# auth
+auth required pam_permit.so no_warn
diff --git a/etc/pccard_ether b/etc/pccard_ether
new file mode 100755
index 0000000..f6a0e61
--- /dev/null
+++ b/etc/pccard_ether
@@ -0,0 +1,196 @@
+#!/bin/sh -
+#
+# $FreeBSD$
+#
+# pccard_ether interfacename [start|stop] [ifconfig option]
+#
+# example: pccard_ether ep0 start -link0
+#
+
+stop_dhcp() {
+ if [ -s /var/run/dhclient.${interface}.pid ]; then
+ pidfile="/var/run/dhclient.${interface}.pid"
+ elif [ -s /var/run/dhcpc.${interface}.pid ]; then
+ pidfile="/var/run/dhcpc.${interface}.pid"
+ else
+ return
+ fi
+ kill `cat ${pidfile}`
+ rm -f ${pidfile}
+}
+
+start_dhcp() {
+ stop_dhcp
+ if [ -x "${dhcp_program}" ]; then
+ if [ `basename ${dhcp_program}` = "dhclient" ]; then
+ pidfile="/var/run/dhclient.${interface}.pid"
+ dhcp_flags="${dhcp_flags} -pf ${pidfile}"
+ fi
+ ${dhcp_program} ${dhcp_flags} ${interface}
+ else
+ echo "${dhcp_program}: DHCP client software not available"
+ fi
+}
+
+# Suck in the configuration variables
+#
+if [ -r /etc/defaults/rc.conf ]; then
+ . /etc/defaults/rc.conf
+ source_rc_confs
+elif [ -r /etc/rc.conf ]; then
+ . /etc/rc.conf
+fi
+
+interface=$1
+shift
+startstop=$1
+shift
+
+case ${pccard_ether_delay} in
+[Nn][Oo])
+ ;;
+[0-9])
+ sleep ${pccard_ether_delay}
+ ;;
+*) # Default until it has had a chance to make it to /etc/defaults/rc.conf
+ sleep 5
+ ;;
+esac
+
+case ${pccard_ifconfig} in
+[Nn][Oo] | '')
+ expr "${removable_interfaces}" : ".*${interface}" > /dev/null || exit 0
+ ;;
+*)
+ # Backward compatible
+ eval ifconfig_${interface}=\${pccard_ifconfig}
+ ;;
+esac
+
+case ${startstop} in
+[Ss][Tt][Aa][Rr][Tt] | '')
+ if [ -r /etc/start_if.${interface} ]; then
+ . /etc/start_if.${interface}
+ fi
+
+ eval ifconfig_args=\$ifconfig_${interface}
+ case ${ifconfig_args} in
+ [Nn][Oo] | '')
+ ;;
+ [Dd][Hh][Cc][Pp])
+ # Start up the DHCP client program
+ start_dhcp
+ ;;
+ *)
+ # Do the primary ifconfig if specified
+ ifconfig ${interface} ${ifconfig_args} $*
+
+ # Check to see if aliases need to be added
+ alias=0
+ while :
+ do
+ eval ifx_args=\$ifconfig_${interface}_alias${alias}
+ if [ -n "${ifx_args}" ]; then
+ ifconfig ${interface} ${ifx_args} alias
+ alias=`expr ${alias} + 1`
+ else
+ break;
+ fi
+ done
+
+ # Do ipx address if specified
+ eval ifx_args=\$ifconfig_${interface}_ipx
+ if [ -n "${ifx_args}" ]; then
+ ifconfig ${interface} ${ifx_args}
+ fi
+
+ # Add default route into $static_routes
+ case ${defaultrouter} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ static_routes="default ${static_routes}"
+ route_default="default ${defaultrouter}"
+ ;;
+ esac
+
+ # Add private route for this interface into $static_routes
+ eval ifx_routes=\$static_routes_${interface}
+ if [ -n "${ifx_routes}" ]; then
+ static_routes="${ifx_routes} ${static_routes}"
+ fi
+
+ # Set up any static routes if specified
+ if [ -n "${static_routes}" ]; then
+ for i in ${static_routes}; do
+ eval route_args=\$route_${i}
+ route add ${route_args}
+ done
+ fi
+ ;;
+ esac
+
+ # IPv6 setup
+ case ${ipv6_enable} in
+ [Yy][Ee][Ss])
+ if [ -r /etc/rc.network6 ]; then
+ . /etc/rc.network6
+ network6_interface_setup ${interface}
+ fi
+ ;;
+ esac
+ ;;
+# Stop the interface
+*)
+ if [ -r /etc/stop_if.${interface} ]; then
+ . /etc/stop_if.${interface}
+ fi
+
+ eval ifconfig_args=\$ifconfig_${interface}
+ case ${ifconfig_args} in
+ [Nn][Oo] | '')
+ ;;
+ [Dd][Hh][Cc][Pp])
+ # Stop the DHCP client for this interface
+ stop_dhcp
+ ;;
+ *)
+ # Delelte static route if specified
+ eval ifx_routes=\$static_routes_${interface}
+ if [ -n "${ifx_routes}" ]; then
+ for i in ${ifx_routes}; do
+ eval route_args=\$route_${i}
+ route delete ${route_args}
+ done
+ fi
+
+ # Delete aliases if exist
+ alias=0
+ while :
+ do
+ eval ifx_args=\$ifconfig_${interface}_alias${alias}
+ if [ -n "${ifx_args}" ]; then
+ ifconfig ${interface} ${ifx_args} alias delete
+ alias=`expr ${alias} + 1`
+ else
+ break;
+ fi
+ done
+ ;;
+ esac
+
+ # Remove the network interface and cleaning ARP table
+ ifconfig ${interface} delete
+ arp -d -a
+
+ # Clean the routing table
+ case ${removable_route_flush} in
+ [Nn][Oo])
+ ;;
+ *)
+ # flush beforehand, just in case....
+ route -n flush -inet
+ ;;
+ esac
+ ;;
+esac
diff --git a/etc/periodic/Makefile b/etc/periodic/Makefile
new file mode 100644
index 0000000..8fb56df
--- /dev/null
+++ b/etc/periodic/Makefile
@@ -0,0 +1,5 @@
+# $FreeBSD$
+
+SUBDIR= daily security weekly monthly
+
+.include <bsd.subdir.mk>
diff --git a/etc/periodic/Makefile.inc b/etc/periodic/Makefile.inc
new file mode 100644
index 0000000..07b4348
--- /dev/null
+++ b/etc/periodic/Makefile.inc
@@ -0,0 +1,5 @@
+# $FreeBSD$
+
+BINDIR= /etc/periodic/${.CURDIR:T}
+NOOBJ=
+FILESMODE= 755
diff --git a/etc/periodic/daily/100.clean-disks b/etc/periodic/daily/100.clean-disks
new file mode 100755
index 0000000..5884664
--- /dev/null
+++ b/etc/periodic/daily/100.clean-disks
@@ -0,0 +1,55 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# Remove garbage files more than $daily_clean_disks_days days old
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_clean_disks_enable" in
+ [Yy][Ee][Ss])
+ if [ -z "$daily_clean_disks_days" ]
+ then
+ echo '$daily_clean_disks_enable is set but' \
+ '$daily_clean_disks_days is not'
+ rc=2
+ elif [ -z "$daily_clean_disks_files" ]
+ then
+ echo '$daily_clean_disks_enable is set but' \
+ '$daily_clean_disks_files is not'
+ rc=2
+ else
+ echo ""
+ echo "Cleaning disks:"
+ set -f noglob
+ args="$args -name "`echo "$daily_clean_disks_files" |
+ sed -e 's/^[ ]*//' \
+ -e 's/[ ]*$//' \
+ -e 's/[ ][ ]*/ -o -name /g'`
+
+ case "$daily_clean_disks_verbose" in
+ [Yy][Ee][Ss])
+ print=-print;;
+ *)
+ print=;;
+ esac
+
+ rc=$(find / \( ! -fstype local -o -fstype rdonly \) -a -prune -o \
+ \( $args \) -atime +$daily_clean_disks_days -delete $print |
+ tee /dev/stderr | wc -l)
+ [ -z "$print" ] && rc=0
+ [ $rc -gt 1 ] && rc=1
+ set -f glob
+ fi;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/daily/110.clean-tmps b/etc/periodic/daily/110.clean-tmps
new file mode 100755
index 0000000..cd2dab0
--- /dev/null
+++ b/etc/periodic/daily/110.clean-tmps
@@ -0,0 +1,56 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# Perform temporary directory cleaning so that long-lived systems
+# don't end up with excessively old files there.
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_clean_tmps_enable" in
+ [Yy][Ee][Ss])
+ if [ -z "$daily_clean_tmps_days" ]
+ then
+ echo '$daily_clean_tmps_enable is set but' \
+ '$daily_clean_tmps_days is not'
+ rc=2
+ else
+ echo ""
+ echo "Removing old temporary files:"
+
+ set -f noglob
+ args="-atime +$daily_clean_tmps_days -mtime +$daily_clean_tmps_days"
+ [ -n "$daily_clean_tmps_ignore" ] &&
+ args="$args "`echo " ${daily_clean_tmps_ignore% }" |
+ sed 's/[ ][ ]*/ ! -name /g'`
+ case "$daily_clean_tmps_verbose" in
+ [Yy][Ee][Ss])
+ print=-print;;
+ *)
+ print=;;
+ esac
+
+ rc=$(for dir in $daily_clean_tmps_dirs
+ do
+ [ ."${dir#/}" != ."$dir" -a -d $dir ] && cd $dir && {
+ find -d . -type f $args -delete $print
+ find -d . ! -name . -type d -empty -mtime \
+ +$daily_clean_tmps_days -delete $print
+ } | sed "s,^\\., $dir,"
+ done | tee /dev/stderr | wc -l)
+ [ -z "$print" ] && rc=0
+ [ $rc -gt 1 ] && rc=1
+ set -f glob
+ fi;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/daily/120.clean-preserve b/etc/periodic/daily/120.clean-preserve
new file mode 100755
index 0000000..d5b34a1
--- /dev/null
+++ b/etc/periodic/daily/120.clean-preserve
@@ -0,0 +1,53 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# Remove stale files in /var/preserve
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_clean_preserve_enable" in
+ [Yy][Ee][Ss])
+ if [ -z "$daily_clean_preserve_days" ]
+ then
+ echo '$daily_clean_preserve_enable is set but' \
+ '$daily_clean_preserve_days is not'
+ rc=2
+ elif [ ! -d /var/preserve ]
+ then
+ echo '$daily_clean_preserve_enable is set but /var/preserve' \
+ "doesn't exist"
+ rc=2
+ else
+ echo ""
+ echo "Removing stale files from /var/preserve:"
+
+ if cd /var/preserve
+ then
+ case "$daily_clean_preserve_verbose" in
+ [Yy][Ee][Ss])
+ print=-print;;
+ *)
+ print=;;
+ esac
+
+ rc=$(find . ! -name . -mtime +$daily_clean_preserve_days \
+ -delete $print | tee /dev/stderr | wc -l)
+ [ -z "$print" ] && rc=0
+ [ $rc -gt 1 ] && rc=1
+ else
+ rc=3
+ fi
+ fi;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/daily/130.clean-msgs b/etc/periodic/daily/130.clean-msgs
new file mode 100755
index 0000000..b7890db
--- /dev/null
+++ b/etc/periodic/daily/130.clean-msgs
@@ -0,0 +1,35 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# Remove system messages
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_clean_msgs_enable" in
+ [Yy][Ee][Ss])
+ if [ ! -d /var/msgs ]
+ then
+ echo '$daily_clean_msgs_enable is set but /var/msgs' \
+ "doesn't exist"
+ rc=2
+ else
+ echo ""
+ echo "Cleaning out old system announcements:"
+
+ [ -n "$daily_clean_msgs_days" ] &&
+ arg=-${daily_clean_msgs_days#-} || arg=
+ msgs -c $arg && rc=0 || rc=3
+ fi;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/daily/140.clean-rwho b/etc/periodic/daily/140.clean-rwho
new file mode 100755
index 0000000..9645d7e
--- /dev/null
+++ b/etc/periodic/daily/140.clean-rwho
@@ -0,0 +1,53 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# Remove stale files in /var/rwho
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_clean_rwho_enable" in
+ [Yy][Ee][Ss])
+ if [ -z "$daily_clean_rwho_days" ]
+ then
+ echo '$daily_clean_rwho_enable is enabled but' \
+ '$daily_clean_rwho_days is not set'
+ rc=2
+ elif [ ! -d /var/rwho ]
+ then
+ echo '$daily_clean_rwho_enable is enabled but /var/rwho' \
+ "doesn't exist"
+ rc=2
+ else
+ echo ""
+ echo "Removing stale files from /var/rwho:"
+
+ case "$daily_clean_rwho_verbose" in
+ [Yy][Ee][Ss])
+ print=-print;;
+ *)
+ print=;;
+ esac
+
+ if cd /var/rwho
+ then
+ rc=$(find . ! -name . -mtime +$daily_clean_rwho_days \
+ -delete $print | tee /dev/stderr | wc -l)
+ [ -z "$print" ] && rc=0
+ [ $rc -gt 1 ] && rc=1
+ else
+ rc=3
+ fi
+ fi;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/daily/150.clean-hoststat b/etc/periodic/daily/150.clean-hoststat
new file mode 100755
index 0000000..dba3009
--- /dev/null
+++ b/etc/periodic/daily/150.clean-hoststat
@@ -0,0 +1,50 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# Remove stale files in /var/spool/.hoststat
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]; then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_clean_hoststat_enable" in
+ [Yy][Ee][Ss])
+ if [ -z "$daily_clean_hoststat_days" ]; then
+ echo '$daily_clean_hoststat_enable is enabled but' \
+ '$daily_clean_hoststat_days is not set'
+ rc=2
+ elif [ ! -d /var/spool/.hoststat ]; then
+ echo '$daily_clean_hoststat_enable is enabled but' \
+ "/var/spool/.hoststat doesn't exist"
+ rc=2
+ else
+ echo ""
+ echo "Removing stale files from /var/spool/.hoststat:"
+
+ case "$daily_clean_hoststat_verbose" in
+ [Yy][Ee][Ss])
+ print=-print;;
+ *)
+ print=;;
+ esac
+
+ if [ -d /var/spool/.hoststat ]; then
+ cd /var/spool/.hoststat
+ rc=$(find . ! -name . -mtime +$daily_clean_hoststat_days \
+ -delete $print | tee /dev/stderr | wc -l)
+ [ -z "$print" ] && rc=0
+ [ $rc -gt 1 ] && rc=1
+ else
+ rc=3
+ fi
+ fi;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/daily/200.backup-passwd b/etc/periodic/daily/200.backup-passwd
new file mode 100755
index 0000000..5c585af
--- /dev/null
+++ b/etc/periodic/daily/200.backup-passwd
@@ -0,0 +1,77 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_backup_passwd_enable" in
+ [Yy][Ee][Ss])
+ if [ ! -f /etc/master.passwd ]
+ then
+ echo '$daily_backup_passwd_enable" is set but /etc/master.passwd' \
+ "doesn't exist"
+ rc=2
+ elif [ ! -f /etc/group ]
+ then
+ echo '$daily_backup_passwd_enable" is set but /etc/group' \
+ "doesn't exist"
+ rc=2
+ else
+ bak=/var/backups
+ rc=0
+
+ echo ""
+ echo "Backup passwd and group files:"
+
+ if [ ! -f $bak/master.passwd.bak ]
+ then
+ rc=1
+ echo "no $bak/master.passwd.bak"
+ cp -p /etc/master.passwd $bak/master.passwd.bak || rc=3
+ fi
+
+ if ! cmp -s $bak/master.passwd.bak /etc/master.passwd
+ then
+ [ $rc -lt 1 ] && rc=1
+ echo "$host passwd diffs:"
+ diff -I '^#' $bak/master.passwd.bak /etc/master.passwd |\
+ sed 's/^\([<>] [^:]*\):[^:]*:/\1:(password):/'
+ mv $bak/master.passwd.bak $bak/master.passwd.bak2
+ cp -p /etc/master.passwd $bak/master.passwd.bak || rc=3
+ fi
+
+ if [ ! -f $bak/group.bak ]
+ then
+ [ $rc -lt 1 ] && rc=1
+ echo "no $bak/group.bak"
+ cp -p /etc/group $bak/group.bak || rc=3
+ fi
+
+ if ! cmp -s $bak/group.bak /etc/group
+ then
+ [ $rc -lt 1 ] && rc=1
+ echo "$host group diffs:"
+ diff $bak/group.bak /etc/group
+ mv $bak/group.bak $bak/group.bak2
+ cp -p /etc/group $bak/group.bak || rc=3
+ fi
+
+ if [ -f /etc/group ]
+ then
+ echo ""
+ echo "Verifying group file syntax:"
+ chkgrp /etc/group || rc=3
+ fi
+ fi;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/daily/210.backup-aliases b/etc/periodic/daily/210.backup-aliases
new file mode 100755
index 0000000..fe17038
--- /dev/null
+++ b/etc/periodic/daily/210.backup-aliases
@@ -0,0 +1,47 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_backup_aliases_enable" in
+ [Yy][Ee][Ss])
+ if [ ! -f /etc/mail/aliases ]
+ then
+ echo '$daily_backup_aliases_enable is enabled but' \
+ "/etc/mail/aliases doesn't exist"
+ rc=2
+ else
+ bak=/var/backups
+ rc=0
+
+ echo ""
+ echo "Backing up mail aliases:"
+
+ if [ ! -f $bak/aliases.bak ]
+ then
+ echo "no $bak/aliases.bak"
+ cp -p /etc/mail/aliases $bak/aliases.bak || rc=3
+ fi
+
+ if ! cmp -s $bak/aliases.bak /etc/mail/aliases
+ then
+ [ $rc -lt 1 ] && rc=1
+ echo "$host aliases diffs:"
+ diff -u $bak/aliases.bak /etc/mail/aliases
+ mv $bak/aliases.bak $bak/aliases.bak2
+ cp -p /etc/mail/aliases $bak/aliases.bak || rc=3
+ fi
+ fi;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/daily/220.backup-distfile b/etc/periodic/daily/220.backup-distfile
new file mode 100755
index 0000000..93d7660
--- /dev/null
+++ b/etc/periodic/daily/220.backup-distfile
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_backup_distfile_enable" in
+ [Yy][Ee][Ss])
+ if [ ! -f /etc/Distfile ]
+ then
+ echo '$daily_backup_distfile_enable is set but /etc/Distfile' \
+ "doesn't exist"
+ rc=2
+ else
+ bak=/var/backups
+ rc=0
+
+ echo ""
+ echo "Backing up /etc/Distfile:"
+
+ if ! cmp -s $bak/Distfile.bak /etc/Distfile
+ then
+ rc=1
+ mv $bak/Distfile.bak $bak/Distfile.bak2
+ cp /etc/Distfile $bak/Distfile.bak || rc=3
+ fi
+ fi;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/daily/300.calendar b/etc/periodic/daily/300.calendar
new file mode 100755
index 0000000..cc12097
--- /dev/null
+++ b/etc/periodic/daily/300.calendar
@@ -0,0 +1,29 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# `calendar -a' needs to die. Why? Because it's a bad idea, particular
+# with networked home directories, but also in general. If you want the
+# output of `calendar' mailed to you, set up a cron job to do it,
+# or run it from your ~/.profile or ~/.login.
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_calendar_enable" in
+ [Yy][Ee][Ss])
+ echo ""
+ echo "Running calendar:"
+
+ calendar -a && rc=0 || rc=3;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/daily/310.accounting b/etc/periodic/daily/310.accounting
new file mode 100755
index 0000000..ceb140c
--- /dev/null
+++ b/etc/periodic/daily/310.accounting
@@ -0,0 +1,56 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_accounting_enable" in
+ [Yy][Ee][Ss])
+ if [ ! -f /var/account/acct ]
+ then
+ echo '$daily_accounting_enable is set but /var/account/acct' \
+ "doesn't exist"
+ rc=2
+ elif [ -z "$daily_accounting_save" ]
+ then
+ echo '$daily_accounting_enable is set but ' \
+ '$daily_accounting_save is not'
+ rc=2
+ else
+ echo ""
+ echo "Rotating accounting logs and gathering statistics:"
+
+ cd /var/account
+ rc=0
+
+ n=$daily_accounting_save
+ rm -f acct.$n.gz acct.$n || rc=3
+ m=$n
+ n=$(($n - 1))
+ while [ $n -ge 0 ]
+ do
+ [ -f acct.$n.gz ] && { mv -f acct.$n.gz acct.$m.gz || rc=3; }
+ [ -f acct.$n ] && { mv -f acct.$n acct.$m || rc=3; }
+ m=$n
+ n=$(($n - 1))
+ done
+ cp -pf acct acct.0 || rc=3
+ sa -s $daily_accounting_flags || rc=3
+
+ case "$daily_accounting_compress" in
+ [Yy][Ee][Ss])
+ gzip -f acct.0 || rc=3;;
+ esac
+ fi;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/daily/320.rdist b/etc/periodic/daily/320.rdist
new file mode 100755
index 0000000..11ec190
--- /dev/null
+++ b/etc/periodic/daily/320.rdist
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_distfile_enable" in
+ [Yy][Ee][Ss])
+ if [ ! -f /etc/Distfile ]
+ then
+ echo '$daily_distfile_enable is set but /etc/Distfile' \
+ "doesn't exist"
+ rc=2
+ else
+ echo ""
+ echo "Running rdist with /etc/Distfile:"
+
+ rdist -f /etc/Distfile && rc=0 || rc=3
+ fi;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/daily/330.news b/etc/periodic/daily/330.news
new file mode 100755
index 0000000..ec06437
--- /dev/null
+++ b/etc/periodic/daily/330.news
@@ -0,0 +1,34 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# Expire news articles
+# (This is present only for backwards compatibility, usually the news
+# system handles this on its own).
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_news_expire_enable" in
+ [Yy][Ee][Ss])
+ if [ ! -f /etc/news.expire ]
+ then
+ echo '$daily_news_expire_enable is set but /etc/news.expire' \
+ "doesn't exist"
+ rc=2
+ else
+ echo ""
+ echo "Running news.expire:"
+
+ /etc/news.expire && rc=0 || rc=3
+ fi;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/daily/400.status-disks b/etc/periodic/daily/400.status-disks
new file mode 100755
index 0000000..63b2b6b
--- /dev/null
+++ b/etc/periodic/daily/400.status-disks
@@ -0,0 +1,29 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_status_disks_enable" in
+ [Yy][Ee][Ss])
+ echo ""
+ echo "Disk status:"
+
+ df $daily_status_disks_df_flags && rc=1 || rc=3
+
+ # display which filesystems need backing up
+
+ echo ""
+ dump W || rc=3;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/daily/420.status-network b/etc/periodic/daily/420.status-network
new file mode 100755
index 0000000..8399cf7
--- /dev/null
+++ b/etc/periodic/daily/420.status-network
@@ -0,0 +1,29 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_status_network_enable" in
+ [Yy][Ee][Ss])
+ echo ""
+ echo "Network interface status:"
+
+ case "$daily_status_network_usedns" in
+ [Yy][Ee][Ss])
+ netstat -i && rc=0 || rc=3;;
+ *)
+ netstat -in && rc=0 || rc=3;;
+ esac;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/daily/430.status-rwho b/etc/periodic/daily/430.status-rwho
new file mode 100755
index 0000000..4476136
--- /dev/null
+++ b/etc/periodic/daily/430.status-rwho
@@ -0,0 +1,38 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_status_rwho_enable" in
+ [Yy][Ee][Ss])
+ rwho=$(echo /var/rwho/*)
+ if [ -f "${rwho%% *}" ]
+ then
+ echo ""
+ echo "Local network system status:"
+ prog=ruptime
+ else
+ echo ""
+ echo "Local system status:"
+ prog=uptime
+ fi
+ rc=$($prog | tee /dev/stderr | wc -l)
+ if [ $? -eq 0 ]
+ then
+ [ $rc -gt 1 ] && rc=1
+ else
+ rc=3
+ fi;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/daily/440.status-mailq b/etc/periodic/daily/440.status-mailq
new file mode 100755
index 0000000..90869d8
--- /dev/null
+++ b/etc/periodic/daily/440.status-mailq
@@ -0,0 +1,64 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_status_mailq_enable" in
+ [Yy][Ee][Ss])
+ if [ ! -x /usr/bin/mailq ]
+ then
+ echo '$daily_status_mailq_enable is set but /usr/bin/mailq' \
+ "isn't executable"
+ rc=2
+ else
+ echo ""
+ echo "Mail in local queue:"
+
+ rc=$(case "$daily_status_mailq_shorten" in
+ [Yy][Ee][Ss])
+ mailq |
+ perl -ne 'print if /^\s+\S+@/' |
+ sort |
+ uniq -c |
+ sort -nr |
+ awk '$1 > 1 {print $1, $2}';;
+ *)
+ mailq;;
+ esac | tee /dev/stderr | fgrep -v 'mqueue is empty' | wc -l)
+ [ $rc -gt 1 ] && rc=1
+
+ case "$daily_status_include_submit_mailq" in
+ [Yy][Ee][Ss])
+ if [ -f /etc/mail/submit.cf ]
+ then
+ echo ""
+ echo "Mail in submit queue:"
+
+ rc=$(case "$daily_status_mailq_shorten" in
+ [Yy][Ee][Ss])
+ mailq -Ac |
+ perl -ne 'print if /^\s+\S+@/' |
+ sort |
+ uniq -c |
+ sort -nr |
+ awk '$1 > 1 {print $1, $2}';;
+ *)
+ mailq -Ac;;
+ esac | tee /dev/stderr | fgrep -v 'mqueue is empty' | wc -l)
+ [ $rc -gt 1 ] && rc=1
+ fi;;
+ esac
+ fi;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/daily/450.status-security b/etc/periodic/daily/450.status-security
new file mode 100755
index 0000000..c0eb46c
--- /dev/null
+++ b/etc/periodic/daily/450.status-security
@@ -0,0 +1,40 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_status_security_enable" in
+ [Yy][Ee][Ss])
+ echo ""
+ echo "Security check:"
+
+ case "$daily_status_security_inline" in
+ [Yy][Ee][Ss])
+ export security_output="";;
+ *)
+ export security_output="${daily_status_security_output}"
+ case "${daily_status_security_output}" in
+ "")
+ ;;
+ /*)
+ echo " (output logged separately)";;
+ *)
+ echo " (output mailed separately)";;
+ esac;;
+ esac
+
+ periodic security
+ rc=3;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/daily/460.status-mail-rejects b/etc/periodic/daily/460.status-mail-rejects
new file mode 100755
index 0000000..1c7f071
--- /dev/null
+++ b/etc/periodic/daily/460.status-mail-rejects
@@ -0,0 +1,63 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_status_mail_rejects_enable" in
+ [Yy][Ee][Ss])
+ if [ ! -d /etc/mail ]
+ then
+ echo '$daily_status_mail_rejects_enable is set but /etc/mail' \
+ "doesn't exist"
+ rc=2
+ elif [ ! -f /var/log/maillog ]
+ then
+ echo '$daily_status_mail_rejects_enable is set but ' \
+ "/var/log/maillog doesn't exist"
+ rc=2
+ elif [ "$daily_status_mail_rejects_logs" -le 0 ]
+ then
+ echo '$daily_status_mail_rejects_enable is set but ' \
+ '$daily_status_mail_rejects_logs is not greater than zero'
+ rc=2
+ else
+ echo
+ echo Checking for rejected mail hosts:
+
+ start=`date -v-1d '+%b %d' | sed 's/0\(.\)$/ \1/'`
+ n=$(($daily_status_mail_rejects_logs - 2))
+ rc=$({
+ while [ $n -ge 0 ]
+ do
+ if [ -f /var/log/maillog.$n ]
+ then
+ cat /var/log/maillog.$n
+ elif [ -f /var/log/maillog.$n.gz ]
+ then
+ zcat -fc /var/log/maillog.$n.gz
+ elif [ -f /var/log/maillog.$n.bz2 ]
+ then
+ bzcat -fc /var/log/maillog.$n.bz2
+ fi
+ n=$(($n - 1))
+ done
+ cat /var/log/maillog
+ } |
+ perl -ne "print \"\$2\n\"
+ if (/reject=/ and /^$start.*ruleset=check_\S+,\s+arg1=(<[^@]+@)?([^>,]+).*reject=/o);" |
+ sort -f | uniq -ic | sort -fnr | tee /dev/stderr | wc -l)
+ [ $rc -gt 0 ] && rc=1
+ fi;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/daily/470.status-named b/etc/periodic/daily/470.status-named
new file mode 100755
index 0000000..e8e1365
--- /dev/null
+++ b/etc/periodic/daily/470.status-named
@@ -0,0 +1,58 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+catmsgs() {
+ find /var/log -name 'messages.*' -mtime -2 |
+ sort -t. -r -n +1 -2 |
+ xargs zcat -f
+ [ -f /var/log/messages ] && cat /var/log/messages
+}
+
+case "$daily_status_named_enable" in
+ [Yy][Ee][Ss])
+ echo
+ echo 'Checking for denied zone transfers (AXFR and IXFR):'
+
+ start=`date -v-1d '+%b %d' | sed 's/0\(.\)$/ \1/'`
+ rc=$(catmsgs |
+ perl -ne 'print "$2 from $1\n"
+ if (/^'"$start"'.*named\[\d+\]: denied [AI]XFR from \[(.*)\]\.\d+ for "(.*)"/);' |
+ sort -f | uniq -ic |
+ perl -e '
+ use Socket;
+
+ while (<STDIN>) {
+ if (/^.*from (.*)$/) {
+ $ip_addr = $1;
+ chomp;
+ if ($ARGV[0] =~ /^yes$/i) {
+ ($host) = gethostbyaddr(inet_aton($ip_addr), AF_INET);
+ } else {
+ $host = "";
+ }
+
+ if ($host) {
+ print "$_ ($host)\n";
+ } else {
+ print "$_\n";
+ }
+ }
+ }
+ ' $daily_status_named_usedns | tee /dev/stderr | wc -l)
+ [ $rc -gt 0 ] && rc=1
+ ;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/daily/500.queuerun b/etc/periodic/daily/500.queuerun
new file mode 100755
index 0000000..f46c246
--- /dev/null
+++ b/etc/periodic/daily/500.queuerun
@@ -0,0 +1,36 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_queuerun_enable" in
+ [Yy][Ee][Ss])
+ if [ ! -x /usr/sbin/sendmail ]
+ then
+ echo '$daily_queuerun_enable is set but /usr/sbin/sendmail' \
+ "isn't executable"
+ rc=2
+ else
+ /usr/sbin/sendmail -q >/dev/null 2>&1 &
+ case "$daily_submit_queuerun" in
+ [Yy][Ee][Ss])
+ if [ -f /etc/mail/submit.cf ]
+ then
+ /usr/sbin/sendmail -q -Ac >/dev/null 2>&1 &
+ fi;;
+ esac
+ rc=0
+ fi;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/daily/999.local b/etc/periodic/daily/999.local
new file mode 100755
index 0000000..3173475
--- /dev/null
+++ b/etc/periodic/daily/999.local
@@ -0,0 +1,38 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# Run the old /etc/daily.local script. This is really for backwards
+# compatibility more than anything else.
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+rc=0
+for script in $daily_local
+do
+ echo ''
+ case "$script" in
+ /*)
+ if [ -f "$script" ]
+ then
+ echo "Running $script:"
+
+ sh $script || rc=3
+ else
+ echo "$script: No such file"
+ [ $rc -lt 2 ] && rc=2
+ fi;;
+ *)
+ echo "$script: Not an absolute path"
+ [ $rc -lt 2 ] && rc=2;;
+ esac
+done
+
+exit $rc
diff --git a/etc/periodic/daily/Makefile b/etc/periodic/daily/Makefile
new file mode 100644
index 0000000..f12325f6
--- /dev/null
+++ b/etc/periodic/daily/Makefile
@@ -0,0 +1,26 @@
+# $FreeBSD$
+
+FILES= 100.clean-disks \
+ 110.clean-tmps \
+ 120.clean-preserve \
+ 130.clean-msgs \
+ 140.clean-rwho \
+ 150.clean-hoststat \
+ 200.backup-passwd \
+ 210.backup-aliases \
+ 220.backup-distfile \
+ 300.calendar \
+ 310.accounting \
+ 320.rdist \
+ 330.news \
+ 400.status-disks \
+ 420.status-network \
+ 430.status-rwho \
+ 440.status-mailq \
+ 450.status-security \
+ 460.status-mail-rejects \
+ 470.status-named \
+ 500.queuerun \
+ 999.local
+
+.include <bsd.prog.mk>
diff --git a/etc/periodic/monthly/200.accounting b/etc/periodic/monthly/200.accounting
new file mode 100755
index 0000000..10a65d1
--- /dev/null
+++ b/etc/periodic/monthly/200.accounting
@@ -0,0 +1,51 @@
+#!/bin/sh -
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+oldmask=$(umask)
+umask 066
+case "$monthly_accounting_enable" in
+ [Yy][Ee][Ss])
+ W=/var/log/wtmp
+ rc=0
+ remove=NO
+ if [ ! -f $W.0 ]
+ then
+ if [ -f $W.0.gz ]
+ then
+ remove=YES
+ zcat $W.0.gz > $W.0 || rc=1
+ elif [ -f $W.0.bz2 ]
+ then
+ remove=YES
+ bzcat $W.0.bz2 > $W.0 || rc=1
+ else
+ echo '$monthly_accounting_enable is set but' \
+ "$W.0 doesn't exist"
+ rc=2
+ fi
+ fi
+ if [ $rc -eq 0 ]
+ then
+ echo ""
+ echo "Doing login accounting:"
+
+ rc=$(ac -p -w $W.0 | sort -nr +1 | tee /dev/stderr | wc -l)
+ [ $rc -gt 0 ] && rc=1
+ fi
+ [ $remove = YES ] && rm -f $W.0;;
+
+ *) rc=0;;
+esac
+
+umask $oldmask
+exit $rc
diff --git a/etc/periodic/monthly/999.local b/etc/periodic/monthly/999.local
new file mode 100755
index 0000000..4e7c2b9
--- /dev/null
+++ b/etc/periodic/monthly/999.local
@@ -0,0 +1,35 @@
+#!/bin/sh -
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+rc=0
+for script in $monthly_local
+do
+ echo ''
+ case "$script" in
+ /*)
+ if [ -f "$script" ]
+ then
+ echo "Running $script:"
+
+ sh $script || rc=3
+ else
+ echo "$script: No such file"
+ [ $rc -lt 2 ] && rc=2
+ fi;;
+ *)
+ echo "$script: Not an absolute path"
+ [ $rc -lt 2 ] && rc=2;;
+ esac
+done
+
+exit $rc
diff --git a/etc/periodic/monthly/Makefile b/etc/periodic/monthly/Makefile
new file mode 100644
index 0000000..c213230
--- /dev/null
+++ b/etc/periodic/monthly/Makefile
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+FILES= 200.accounting \
+ 999.local
+
+.include <bsd.prog.mk>
diff --git a/etc/periodic/security/100.chksetuid b/etc/periodic/security/100.chksetuid
new file mode 100755
index 0000000..9f97919
--- /dev/null
+++ b/etc/periodic/security/100.chksetuid
@@ -0,0 +1,78 @@
+#!/bin/sh -
+#
+# Copyright (c) 2001 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+LOG="${daily_status_security_logdir}"
+rc=0
+
+case "$daily_status_security_chksetuid_enable" in
+ [Yy][Ee][Ss])
+ TMP=`mktemp ${TMPDIR:-/tmp}/security.XXXXXXXXXX`
+ echo ""
+ echo 'Checking setuid files and devices:'
+ # XXX Note that there is the possibility of overrunning the args to ls
+ MP=`mount -t ufs | grep -v " nosuid" | awk '{ print $3 }' | sort`
+ if [ -n "${MP}" ]
+ then
+ set ${MP}
+ while [ $# -ge 1 ]; do
+ mount=$1
+ shift
+ find $mount -xdev -type f \
+ \( -perm -u+x -or -perm -g+x -or -perm -o+x \) \
+ \( -perm -u+s -or -perm -g+s \) -print0
+ done | xargs -0 -n 20 ls -liTd | sed 's/^ *//' | sort +10 > ${TMP}
+ fi
+
+ if [ ! -f ${LOG}/setuid.today ]; then
+ rc=1
+ echo "No ${LOG}/setuid.today"
+ cp ${TMP} ${LOG}/setuid.today || rc=3
+ fi
+
+ if ! cmp ${LOG}/setuid.today ${TMP} >/dev/null
+ then
+ [ $rc -lt 1 ] && rc=1
+ echo "${host} setuid diffs:"
+ diff -b ${LOG}/setuid.today ${TMP}
+ mv ${LOG}/setuid.today ${LOG}/setuid.yesterday || rc=3
+ mv ${TMP} ${LOG}/setuid.today || rc=3
+ fi
+ rm -f ${TMP};;
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/security/200.chkmounts b/etc/periodic/security/200.chkmounts
new file mode 100755
index 0000000..dbd2907
--- /dev/null
+++ b/etc/periodic/security/200.chkmounts
@@ -0,0 +1,73 @@
+#!/bin/sh -
+#
+# Copyright (c) 2001 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# Show changes in the way filesystems are mounted
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+LOG="${daily_status_security_logdir}"
+ignore="${daily_status_security_chkmounts_ignore}"
+rc=0
+
+case "$daily_status_security_chkmounts_enable" in
+ [Yy][Ee][Ss])
+ TMP=`mktemp ${TMPDIR:-/tmp}/security.XXXXXXXXXX`
+ case "$daily_status_security_noamd" in
+ [Yy][Ee][Ss])
+ ignore="${ignore}|^amd:"
+ esac
+ [ -n "$ignore" ] && cmd="egrep -v ${ignore#|}" || cmd=cat
+ if mount -p | ${cmd} > ${TMP}; then
+ if [ ! -f ${LOG}/mount.today ]; then
+ rc=1
+ echo ""
+ echo "No ${LOG}/mount.today"
+ cp ${TMP} ${LOG}/mount.today || rc=3
+ fi
+ if ! cmp ${LOG}/mount.today ${TMP} >/dev/null 2>&1; then
+ [ $rc -lt 1 ] && rc=1
+ echo ""
+ echo "${host} changes in mounted filesystems:"
+ diff -b ${LOG}/mount.today ${TMP}
+ mv ${LOG}/mount.today ${LOG}/mount.yesterday || rc=3
+ mv ${TMP} ${LOG}/mount.today || rc=3
+ fi
+ fi
+ rm -f ${TMP};;
+ *) rc=0;;
+esac
+
+exit "$rc"
diff --git a/etc/periodic/security/300.chkuid0 b/etc/periodic/security/300.chkuid0
new file mode 100755
index 0000000..32cc16c
--- /dev/null
+++ b/etc/periodic/security/300.chkuid0
@@ -0,0 +1,51 @@
+#!/bin/sh -
+#
+# Copyright (c) 2001 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_status_security_chkuid0_enable" in
+ [Yy][Ee][Ss])
+ echo ""
+ echo 'Checking for uids of 0:'
+ n=$(awk -F: '/^#/ {next} $3==0 {print $1,$3}' /etc/master.passwd |
+ tee /dev/stderr |
+ sed -e '/^root 0$/d' -e '/^toor 0$/d' |
+ wc -l)
+ [ $n -gt 0 ] && rc=1 || rc=0;;
+ *) rc=0;;
+esac
+
+exit "$rc"
diff --git a/etc/periodic/security/400.passwdless b/etc/periodic/security/400.passwdless
new file mode 100755
index 0000000..42ece04
--- /dev/null
+++ b/etc/periodic/security/400.passwdless
@@ -0,0 +1,48 @@
+#!/bin/sh -
+#
+# Copyright (c) 2001 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$daily_status_security_passwdless_enable" in
+ [Yy][Ee][Ss])
+ echo ""
+ echo 'Checking for passwordless accounts:'
+ n=$(awk -F: 'NF > 1 && $1 !~ /^[#+-]/ && $2=="" {print $0}' /etc/master.passwd |
+ tee /dev/stderr | wc -l)
+ [ $n -gt 0 ] && rc=1 || rc=0;;
+ *) rc=0;;
+esac
+
+exit "$rc"
diff --git a/etc/periodic/security/500.ipfwdenied b/etc/periodic/security/500.ipfwdenied
new file mode 100755
index 0000000..d65d72b
--- /dev/null
+++ b/etc/periodic/security/500.ipfwdenied
@@ -0,0 +1,69 @@
+#!/bin/sh -
+#
+# Copyright (c) 2001 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# Show denied packets
+#
+
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+LOG="${daily_status_security_logdir}"
+rc=0
+
+case "$daily_status_security_ipfwdenied_enable" in
+ [Yy][Ee][Ss])
+ TMP=`mktemp ${TMPDIR:-/tmp}/security.XXXXXXXXXX`
+ if ipfw -a l 2>/dev/null | egrep "deny|reset|unreach" > ${TMP}; then
+ if [ ! -f ${LOG}/ipfw.today ]; then
+ rc=1
+ echo ""
+ echo "No ${LOG}/ipfw.today"
+ cp ${TMP} ${LOG}/ipfw.today || rc=3
+ fi
+
+ if ! cmp ${LOG}/ipfw.today ${TMP} >/dev/null; then
+ [ $rc -lt 1 ] && rc=1
+ echo ""
+ echo "${host} denied packets:"
+ diff -b ${LOG}/ipfw.today ${TMP} | egrep "^>"
+ mv ${LOG}/ipfw.today ${LOG}/ipfw.yesterday || rc=3
+ mv ${TMP} ${LOG}/ipfw.today || rc=3
+ fi
+ fi
+ rm -f ${TMP};;
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/security/550.ipfwlimit b/etc/periodic/security/550.ipfwlimit
new file mode 100755
index 0000000..653dcf1
--- /dev/null
+++ b/etc/periodic/security/550.ipfwlimit
@@ -0,0 +1,61 @@
+#!/bin/sh -
+#
+# Copyright (c) 2001 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# Show ipfw rules which have reached the log limit
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+rc=0
+
+case "$daily_status_security_ipfwlimit_enable" in
+ [Yy][Ee][Ss])
+ TMP=`mktemp ${TMPDIR:-/tmp}/security.XXXXXXXXXX`
+ IPFW_LOG_LIMIT=`sysctl -n net.inet.ip.fw.verbose_limit 2> /dev/null`
+ if [ $? -eq 0 ] && [ "${IPFW_LOG_LIMIT}" -ne 0 ]; then
+ ipfw -a l | grep " log " | perl -n -e \
+ '/^\d+\s+(\d+)/; print if ($1 >= '$IPFW_LOG_LIMIT')' > ${TMP}
+ if [ -s "${TMP}" ]; then
+ rc=1
+ echo ""
+ echo 'ipfw log limit reached:'
+ cat ${TMP}
+ fi
+ fi
+ rm -f ${TMP};;
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/security/600.ip6fwdenied b/etc/periodic/security/600.ip6fwdenied
new file mode 100755
index 0000000..8205876
--- /dev/null
+++ b/etc/periodic/security/600.ip6fwdenied
@@ -0,0 +1,69 @@
+#!/bin/sh -
+#
+# Copyright (c) 2001 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# Show IPv6 denied packets
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+LOG="${daily_status_security_logdir}"
+rc=0
+
+case "$daily_status_security_ip6fwdenied_enable" in
+ [Yy][Ee][Ss])
+ TMP=`mktemp ${TMPDIR:-/tmp}/security.XXXXXXXXXX`
+ if ip6fw -a l 2>/dev/null | egrep "deny|reset|unreach" > ${TMP}; then
+ if [ ! -f ${LOG}/ip6fw.today ]; then
+ rc=1
+ echo ""
+ echo "No ${LOG}/ip6fw.today"
+ cp ${TMP} ${LOG}/ip6fw.today || rc=3
+ fi
+
+ if ! cmp ${LOG}/ip6fw.today ${TMP} >/dev/null; then
+ [ $rc -lt 1 ] && rc=1
+ echo ""
+ echo "${host} IPv6 denied packets:"
+ diff -b ${LOG}/ip6fw.today ${TMP} |
+ egrep "^>"
+ mv ${LOG}/ip6fw.today ${LOG}/ip6fw.yesterday || rc=3
+ mv ${TMP} ${LOG}/ip6fw.today || rc=3
+ fi
+ fi
+ rm -f ${TMP};;
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/security/650.ip6fwlimit b/etc/periodic/security/650.ip6fwlimit
new file mode 100755
index 0000000..3a19c99
--- /dev/null
+++ b/etc/periodic/security/650.ip6fwlimit
@@ -0,0 +1,61 @@
+#!/bin/sh -
+#
+# Copyright (c) 2001 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# Show ip6fw rules which have reached the log limit
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+rc=0
+
+case "$daily_status_security_ip6fwlimit_enable" in
+ [Yy][Ee][Ss])
+ TMP=`mktemp ${TMPDIR:-/tmp}/security.XXXXXXXXXX`
+ IP6FW_LOG_LIMIT=`sysctl -n net.inet6.ip6.fw.verbose_limit 2> /dev/null`
+ if [ $? -eq 0 ] && [ "${IP6FW_LOG_LIMIT}" -ne 0 ]; then
+ ip6fw -a l | grep " log " | perl -n -e \
+ '/^\d+\s+(\d+)/; print if ($1 >= '$IP6FW_LOG_LIMIT')' > ${TMP}
+ if [ -s "${TMP}" ]; then
+ rc=1
+ echo ""
+ echo 'ip6fw log limit reached:'
+ cat ${TMP}
+ fi
+ fi
+ rm -f ${TMP};;
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/security/700.kernelmsg b/etc/periodic/security/700.kernelmsg
new file mode 100755
index 0000000..5ac15c2
--- /dev/null
+++ b/etc/periodic/security/700.kernelmsg
@@ -0,0 +1,68 @@
+#!/bin/sh -
+#
+# Copyright (c) 2001 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# Show kernel log messages
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+LOG="${daily_status_security_logdir}"
+rc=0
+
+case "$daily_status_security_kernelmsg_enable" in
+ [Yy][Ee][Ss])
+ TMP=`mktemp ${TMPDIR:-/tmp}/security.XXXXXXXXXX`
+ if dmesg 2>/dev/null > ${TMP}; then
+ if [ ! -f ${LOG}/dmesg.today ]; then
+ rc=1
+ echo ""
+ echo "No ${LOG}/dmesg.today"
+ cp ${TMP} ${LOG}/dmesg.today || rc=3
+ fi
+
+ echo ""
+ echo "${host} kernel log messages:"
+ if ! cmp ${LOG}/dmesg.today ${TMP} >/dev/null 2>&1; then
+ [ $rc -lt 1 ] && rc=1
+ diff -b ${LOG}/dmesg.today ${TMP} | egrep "^>"
+ mv ${LOG}/dmesg.today ${LOG}/dmesg.yesterday || rc=3
+ mv ${TMP} ${LOG}/dmesg.today || rc=3
+ fi
+ fi
+ rm -f ${TMP};;
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/security/800.loginfail b/etc/periodic/security/800.loginfail
new file mode 100755
index 0000000..6ebe228
--- /dev/null
+++ b/etc/periodic/security/800.loginfail
@@ -0,0 +1,62 @@
+#!/bin/sh -
+#
+# Copyright (c) 2001 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# Show login failures
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+LOG="${daily_status_security_logdir}"
+
+yesterday=`date -v-1d "+%b %e "`
+
+catmsgs() {
+ find ${LOG} -name 'auth.log.*' -mtime -2 |
+ sort -t. -r -n +1 -2 |
+ xargs zcat -f
+ [ -f ${LOG}/auth.log ] && cat $LOG/auth.log
+}
+
+case "$daily_status_security_loginfail_enable" in
+ [Yy][Ee][Ss])
+ echo ""
+ echo "${host} login failures:"
+ n=$(catmsgs | grep -ia "^$yesterday.*fail" |
+ tee /dev/stderr | wc -l)
+ [ $n -gt 0 ] && rc=1 || rc=0;;
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/security/900.tcpwrap b/etc/periodic/security/900.tcpwrap
new file mode 100755
index 0000000..0dc61dc
--- /dev/null
+++ b/etc/periodic/security/900.tcpwrap
@@ -0,0 +1,62 @@
+#!/bin/sh -
+#
+# Copyright (c) 2001 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# Show tcp_wrapper warning messages
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+LOG="${daily_status_security_logdir}"
+
+yesterday=`date -v-1d "+%b %e "`
+
+catmsgs() {
+ find ${LOG} -name 'messages.*' -mtime -2 |
+ sort -t. -r -n +1 -2 |
+ xargs zcat -f
+ [ -f ${LOG}/messages ] && cat $LOG/messages
+}
+
+case "$daily_status_security_tcpwrap_enable" in
+ [Yy][Ee][Ss])
+ echo ""
+ echo "${host} refused connections:"
+ n=$(catmsgs | grep -i "^$yesterday.*refused connect" |
+ tee /dev/stderr | wc -l)
+ [ $n -gt 0 ] && rc=1 || rc=0;;
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/security/Makefile b/etc/periodic/security/Makefile
new file mode 100644
index 0000000..999ffb3
--- /dev/null
+++ b/etc/periodic/security/Makefile
@@ -0,0 +1,15 @@
+# $FreeBSD$
+
+FILES= 100.chksetuid \
+ 200.chkmounts \
+ 300.chkuid0 \
+ 400.passwdless \
+ 500.ipfwdenied \
+ 550.ipfwlimit \
+ 600.ip6fwdenied \
+ 650.ip6fwlimit \
+ 700.kernelmsg \
+ 800.loginfail \
+ 900.tcpwrap
+
+.include <bsd.prog.mk>
diff --git a/etc/periodic/weekly/120.clean-kvmdb b/etc/periodic/weekly/120.clean-kvmdb
new file mode 100755
index 0000000..603e70b
--- /dev/null
+++ b/etc/periodic/weekly/120.clean-kvmdb
@@ -0,0 +1,49 @@
+#!/bin/sh -
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]; then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$weekly_clean_kvmdb_enable" in
+ [Yy][Ee][Ss])
+ if [ ! -d /var/db ]
+ then
+ echo '$weekly_clean_kvmdb_enable is set but /var/db' \
+ "doesn't exist"
+ rc=2
+ elif [ -z "$weekly_clean_kvmdb_days" ]
+ then
+ echo '$weekly_clean_kvmdb_enable is set but' \
+ '$weekly_clean_kvmdb_days is not'
+ rc=2
+ else
+ echo ""
+ echo "Cleaning up kernel database files:"
+
+ kernel=`sysctl -n kern.bootfile`
+ kernel=kvm_${kernel##*/}.db
+
+ case "$weekly_clean_kvmdb_verbose" in
+ [Yy][Ee][Ss])
+ print=-print;;
+ *)
+ print=;;
+ esac
+
+ rc=$(find /var/db -name "kvm_*.db" ! -name $kernel \
+ -atime +$weekly_clean_kvmdb_days -delete $print |
+ tee /dev/stderr | wc -l)
+ [ -z "$print" ] && rc=0
+ [ $rc -gt 1 ] && rc=1
+ fi;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/weekly/310.locate b/etc/periodic/weekly/310.locate
new file mode 100755
index 0000000..e6921ab
--- /dev/null
+++ b/etc/periodic/weekly/310.locate
@@ -0,0 +1,32 @@
+#!/bin/sh -
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$weekly_locate_enable" in
+ [Yy][Ee][Ss])
+ echo ""
+ echo "Rebuilding locate database:"
+
+ locdb=/var/db/locate.database
+
+ touch $locdb && rc=0 || rc=3
+ chown nobody $locdb || rc=3
+ chmod 644 $locdb || rc=3
+
+ cd /
+ echo /usr/libexec/locate.updatedb | nice -5 su -fm nobody || rc=3
+ chmod 444 $locdb || rc=3;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/weekly/320.whatis b/etc/periodic/weekly/320.whatis
new file mode 100755
index 0000000..dfc218a
--- /dev/null
+++ b/etc/periodic/weekly/320.whatis
@@ -0,0 +1,51 @@
+#!/bin/sh -
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$weekly_whatis_enable" in
+ [Yy][Ee][Ss])
+ echo ""
+ echo "Rebuilding whatis database:"
+
+ MANPATH=`/usr/bin/manpath -q`
+ if [ $? = 0 ]
+ then
+ if [ -z "${MANPATH}" ]
+ then
+ echo "manpath failed to find any manpage directories"
+ rc=3
+ else
+ man_locales=`/usr/bin/manpath -qL`
+ rc=0
+
+ # Build whatis(1) database(s) for original, non-localized
+ # manpages.
+ /usr/libexec/makewhatis.local "${MANPATH}" || rc=3
+
+ # Build whatis(1) database(s) for localized manpages.
+ if [ X"${man_locales}" != X ]
+ then
+ for i in ${man_locales}
+ do
+ LC_ALL=$i /usr/libexec/makewhatis.local -a \
+ -L "${MANPATH}" || rc=3
+ done
+ fi
+ fi
+ else
+ rc=3
+ fi;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/weekly/330.catman b/etc/periodic/weekly/330.catman
new file mode 100755
index 0000000..9fed4e5
--- /dev/null
+++ b/etc/periodic/weekly/330.catman
@@ -0,0 +1,58 @@
+#!/bin/sh -
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$weekly_catman_enable" in
+ [Yy][Ee][Ss])
+ if [ ! -d /usr/share/man/cat1 ]
+ then
+ echo '$weekly_catman_enable is set but /usr/share/man/cat1' \
+ "doesn't exist"
+ rc=2
+ else
+ echo ""
+ echo "Reformatting manual pages:"
+
+ MANPATH=`/usr/bin/manpath -q`
+ if [ $? = 0 ]
+ then
+ if [ -z "${MANPATH}" ]
+ then
+ echo "manpath failed to find any manpath directories"
+ rc=3
+ else
+ man_locales=`/usr/bin/manpath -qL`
+ rc=0
+
+ # Preformat original, non-localized manpages
+ echo /usr/libexec/catman.local "$MANPATH" |
+ su -fm man || rc=3
+
+ # Preformat localized manpages.
+ if [ -n "$man_locales" ]
+ then
+ for i in $man_locales
+ do
+ echo /usr/libexec/catman.local -L \
+ "$MANPATH" | LC_ALL=$i su -fm man || rc=3
+ done
+ fi
+ fi
+ else
+ rc=3
+ fi
+ fi;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/weekly/340.noid b/etc/periodic/weekly/340.noid
new file mode 100644
index 0000000..11a5f53
--- /dev/null
+++ b/etc/periodic/weekly/340.noid
@@ -0,0 +1,29 @@
+#!/bin/sh -
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$weekly_noid_enable" in
+ [Yy][Ee][Ss])
+ echo ""
+ echo "Check for files with an unknown user or group:"
+
+ rc=$(find -H ${weekly_noid_dirs:-/} \
+ \( ! -fstype local -prune -or -name \* \) -and \
+ \( -nogroup -o -nouser \) -print | sed 's/^/ /' |
+ tee /dev/stderr | wc -l)
+ [ $rc -gt 1 ] && rc=1
+ ;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/weekly/400.status-pkg b/etc/periodic/weekly/400.status-pkg
new file mode 100755
index 0000000..aac1d6a
--- /dev/null
+++ b/etc/periodic/weekly/400.status-pkg
@@ -0,0 +1,33 @@
+#!/bin/sh -
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+case "$weekly_status_pkg_enable" in
+ [Yy][Ee][Ss])
+ echo ""
+ echo "Check for out of date packages:"
+
+ rc=$(pkg_version -v |
+ sed -n -e 's/^\([^ ]*\) *< */ \1 /p' \
+ -e '/^[^ ]*-\([^ ]*\) *\* *multiple versions.*[ ,]\1[,)].*/d' \
+ -e 's/^\([^ ]*\) *\* *multiple versions.*\((.*\)/ \1 needs updating \2/p' \
+ -e 's/^\(bsdpan-[^ ]*\) *? *unknown in index/ \1 may be outdated - check CPAN version manually/p' \
+ -e 's/^\([^ ]*-[^ ]*\) *? *unknown in index/ \1 is obsolete/p' \
+ -e 's/^\([^ ]*-[^ ]*\) *? *\(orphaned:.*\)$/ \1 was \2/p' |
+ tee /dev/stderr |
+ wc -l)
+ [ $rc -gt 1 ] && rc=1;;
+
+ *) rc=0;;
+esac
+
+exit $rc
diff --git a/etc/periodic/weekly/999.local b/etc/periodic/weekly/999.local
new file mode 100755
index 0000000..3951bb5
--- /dev/null
+++ b/etc/periodic/weekly/999.local
@@ -0,0 +1,35 @@
+#!/bin/sh -
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+rc=0
+for script in $weekly_local
+do
+ echo ''
+ case "$script" in
+ /*)
+ if [ -f "$script" ]
+ then
+ echo "Running $script:"
+
+ sh $script || rc=3
+ else
+ echo "$script: No such file"
+ [ $rc -lt 2 ] && rc=2
+ fi;;
+ *)
+ echo "$script: Not an absolute path"
+ [ $rc -lt 2 ] && rc=2;;
+ esac
+done
+
+exit $rc
diff --git a/etc/periodic/weekly/Makefile b/etc/periodic/weekly/Makefile
new file mode 100644
index 0000000..090fa6b
--- /dev/null
+++ b/etc/periodic/weekly/Makefile
@@ -0,0 +1,11 @@
+# $FreeBSD$
+
+FILES= 120.clean-kvmdb \
+ 310.locate \
+ 320.whatis \
+ 330.catman \
+ 340.noid \
+ 400.status-pkg \
+ 999.local
+
+.include <bsd.prog.mk>
diff --git a/etc/phones b/etc/phones
new file mode 100644
index 0000000..536ac20
--- /dev/null
+++ b/etc/phones
@@ -0,0 +1,11 @@
+# $FreeBSD$
+# From: @(#)phones 5.2 (Berkeley) 6/30/90
+#
+# phones -- remote host phone number data base
+# see tip(1), phones(5)
+#
+system1 9=3155557750
+system2 9145551241
+netcom 1(408)555-9760
+netcom 1(415)555-9940
+omen 1(503)555-3746
diff --git a/etc/ppp/ppp.conf b/etc/ppp/ppp.conf
new file mode 100644
index 0000000..209afa8
--- /dev/null
+++ b/etc/ppp/ppp.conf
@@ -0,0 +1,37 @@
+#################################################################
+# PPP Sample Configuration File
+# Originally written by Toshiharu OHNO
+# Simplified 5/14/1999 by wself@cdrom.com
+#
+# See /usr/share/examples/ppp/ for some examples
+#
+# $FreeBSD$
+#################################################################
+
+default:
+ set log Phase Chat LCP IPCP CCP tun command
+ ident user-ppp VERSION (built COMPILATIONDATE)
+
+ # Ensure that "device" references the correct serial port
+ # for your modem. (cuaa0 = COM1, cuaa1 = COM2)
+ #
+ set device /dev/cuaa1
+
+ set speed 115200
+ set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
+ \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
+ set timeout 180 # 3 minute idle timer (the default)
+ enable dns # request DNS info (for resolv.conf)
+
+papchap:
+ #
+ # edit the next three lines and replace the items in caps with
+ # the values which have been assigned by your ISP.
+ #
+
+ set phone PHONE_NUM
+ set authname USERNAME
+ set authkey PASSWORD
+
+ set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
+ add default HISADDR # Add a (sticky) default route
diff --git a/etc/printcap b/etc/printcap
new file mode 100644
index 0000000..de5bea2
--- /dev/null
+++ b/etc/printcap
@@ -0,0 +1,54 @@
+# @(#)printcap 5.3 (Berkeley) 6/30/90
+# $FreeBSD$
+
+#
+# This enables a simple local "raw" printer, hooked up to the first
+# parallel port. No kind of filtering is done, so everything you pass
+# to the "lpr" command will be printed unmodified.
+#
+# Remember, for further print queues you're going to add, you have
+# to choose different spool directories (the "sd" capability below),
+# otherwise you will greatly confuse lpd.
+#
+# For some advanced printing, have a look at the "apsfilter" package.
+# It plugs into the lpd system, allowing you to print a variety of
+# different file types by converting everything to PostScript(tm)
+# format. For more information about apsfilter visit
+#
+# http://www.apsfilter.org/
+#
+# If you don't have a PostScript(tm) printer, don't panic, but do
+# also install the latest "ghostscript" package for best printer support.
+#
+# Do also refer to the "printing" section of the handbook.
+#
+# http://www.freebsd.org/doc/handbook/printing.html
+#
+# A local copy can be found under
+#
+# /usr/share/doc/handbook/handbook.{html,latin1}.
+#
+# Banner pages are now suppressed by default. Remove the :sh: capability
+# to turn them back on.
+#
+#lp|local line printer:\
+# :sh:\
+# :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:
+#
+# Sample remote printer. The physical printer is on machine "lphost".
+# You can perform any kind of local filtering directly. If you need
+# local filters (e.g. LF -> CR-LF conversion for HP printers), create
+# a filter script that sends the proper escape sequence to the printer
+# and then concatenates stdin to stdout.
+#
+#remote|sample remote printer:\
+# :sh:\
+# :rm=lphost:sd=/var/spool/output/lphost:lf=/var/log/lpd-errs:\
+# :if=/usr/local/libexec/if-script:
+#
+# Simple Russian printer with hardware CP866 character set, output filter
+# used for KOI8-R -> CP866 conversion
+#
+#lp|Russian local line printer:\
+# :sh:of=/usr/libexec/lpr/ru/koi2alt:\
+# :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:
diff --git a/etc/profile b/etc/profile
new file mode 100644
index 0000000..4705247
--- /dev/null
+++ b/etc/profile
@@ -0,0 +1,18 @@
+# $FreeBSD$
+#
+# System-wide .profile file for sh(1).
+#
+# Uncomment this to give you the default 4.2 behavior, where disk
+# information is shown in K-Blocks
+# BLOCKSIZE=K; export BLOCKSIZE
+#
+# For the setting of languages and character sets please see
+# login.conf(5) and in particular the charset and lang options.
+# For full locales list check /usr/share/locale/*
+# You should also read the setlocale(3) man page for information
+# on how to achieve more precise control of locale settings.
+#
+# Read system messages
+# msgs -f
+# Allow terminal messages
+# mesg y
diff --git a/etc/protocols b/etc/protocols
new file mode 100644
index 0000000..8530883
--- /dev/null
+++ b/etc/protocols
@@ -0,0 +1,146 @@
+#
+# Internet protocols
+#
+# $FreeBSD$
+# from: @(#)protocols 5.1 (Berkeley) 4/17/89
+#
+# See also http://www.iana.org/assignments/protocol-numbers
+#
+ip 0 IP # internet protocol, pseudo protocol number
+#hopopt 0 HOPOPT # hop-by-hop options for ipv6
+icmp 1 ICMP # internet control message protocol
+igmp 2 IGMP # internet group management protocol
+ggp 3 GGP # gateway-gateway protocol
+ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'')
+st2 5 ST2 # ST2 datagram mode (RFC 1819)
+tcp 6 TCP # transmission control protocol
+cbt 7 CBT # CBT, Tony Ballardie <A.Ballardie@cs.ucl.ac.uk>
+egp 8 EGP # exterior gateway protocol
+igp 9 IGP # any private interior gateway (Cisco: for IGRP)
+bbn-rcc 10 BBN-RCC-MON # BBN RCC Monitoring
+nvp 11 NVP-II # Network Voice Protocol
+pup 12 PUP # PARC universal packet protocol
+argus 13 ARGUS # ARGUS
+emcon 14 EMCON # EMCON
+xnet 15 XNET # Cross Net Debugger
+chaos 16 CHAOS # Chaos
+udp 17 UDP # user datagram protocol
+mux 18 MUX # Multiplexing protocol
+dcn 19 DCN-MEAS # DCN Measurement Subsystems
+hmp 20 HMP # host monitoring protocol
+prm 21 PRM # packet radio measurement protocol
+xns-idp 22 XNS-IDP # Xerox NS IDP
+trunk-1 23 TRUNK-1 # Trunk-1
+trunk-2 24 TRUNK-2 # Trunk-2
+leaf-1 25 LEAF-1 # Leaf-1
+leaf-2 26 LEAF-2 # Leaf-2
+rdp 27 RDP # "reliable datagram" protocol
+irtp 28 IRTP # Internet Reliable Transaction Protocol
+iso-tp4 29 ISO-TP4 # ISO Transport Protocol Class 4
+netblt 30 NETBLT # Bulk Data Transfer Protocol
+mfe-nsp 31 MFE-NSP # MFE Network Services Protocol
+merit-inp 32 MERIT-INP # MERIT Internodal Protocol
+sep 33 SEP # Sequential Exchange Protocol
+3pc 34 3PC # Third Party Connect Protocol
+idpr 35 IDPR # Inter-Domain Policy Routing Protocol
+xtp 36 XTP # Xpress Tranfer Protocol
+ddp 37 DDP # Datagram Delivery Protocol
+idpr-cmtp 38 IDPR-CMTP # IDPR Control Message Transport Proto
+tp++ 39 TP++ # TP++ Transport Protocol
+il 40 IL # IL Transport Protocol
+ipv6 41 IPV6 # ipv6
+sdrp 42 SDRP # Source Demand Routing Protocol
+ipv6-route 43 IPV6-ROUTE # routing header for ipv6
+ipv6-frag 44 IPV6-FRAG # fragment header for ipv6
+idrp 45 IDRP # Inter-Domain Routing Protocol
+rsvp 46 RSVP # Resource ReSerVation Protocol
+gre 47 GRE # Generic Routing Encapsulation
+mhrp 48 MHRP # Mobile Host Routing Protocol
+bna 49 BNA # BNA
+esp 50 ESP # encapsulating security payload
+ah 51 AH # authentication header
+i-nlsp 52 I-NLSP # Integrated Net Layer Security TUBA
+swipe 53 SWIPE # IP with Encryption
+narp 54 NARP # NBMA Address Resolution Protocol
+mobile 55 MOBILE # IP Mobility
+tlsp 56 TLSP # Transport Layer Security Protocol
+skip 57 SKIP # SKIP
+ipv6-icmp 58 IPV6-ICMP # ICMP for IPv6
+ipv6-nonxt 59 IPV6-NONXT # no next header for ipv6
+ipv6-opts 60 IPV6-OPTS # destination options for ipv6
+# 61 # any host internal protocol
+cftp 62 CFTP # CFTP
+# 63 # any local network
+sat-expak 64 SAT-EXPAK # SATNET and Backroom EXPAK
+kryptolan 65 KRYPTOLAN # Kryptolan
+rvd 66 RVD # MIT Remote Virtual Disk Protocol
+ippc 67 IPPC # Internet Pluribus Packet Core
+# 68 # any distributed filesystem
+sat-mon 69 SAT-MON # SATNET Monitoring
+visa 70 VISA # VISA Protocol
+ipcv 71 IPCV # Internet Packet Core Utility
+cpnx 72 CPNX # Computer Protocol Network Executive
+cphb 73 CPHB # Computer Protocol Heart Beat
+wsn 74 WSN # Wang Span Network
+pvp 75 PVP # Packet Video Protocol
+br-sat-mon 76 BR-SAT-MON # Backroom SATNET Monitoring
+sun-nd 77 SUN-ND # SUN ND PROTOCOL-Temporary
+wb-mon 78 WB-MON # WIDEBAND Monitoring
+wb-expak 79 WB-EXPAK # WIDEBAND EXPAK
+iso-ip 80 ISO-IP # ISO Internet Protocol
+vmtp 81 VMTP # Versatile Message Transport
+secure-vmtp 82 SECURE-VMTP # SECURE-VMTP
+vines 83 VINES # VINES
+ttp 84 TTP # TTP
+nsfnet-igp 85 NSFNET-IGP # NSFNET-IGP
+dgp 86 DGP # Dissimilar Gateway Protocol
+tcf 87 TCF # TCF
+eigrp 88 EIGRP # Enhanced Interior Routing Protocol (Cisco)
+ospf 89 OSPFIGP # Open Shortest Path First IGP
+sprite-rpc 90 Sprite-RPC # Sprite RPC Protocol
+larp 91 LARP # Locus Address Resolution Protocol
+mtp 92 MTP # Multicast Transport Protocol
+ax.25 93 AX.25 # AX.25 Frames
+ipip 94 IPIP # Yet Another IP encapsulation
+micp 95 MICP # Mobile Internetworking Control Pro.
+scc-sp 96 SCC-SP # Semaphore Communications Sec. Pro.
+etherip 97 ETHERIP # Ethernet-within-IP Encapsulation
+encap 98 ENCAP # Yet Another IP encapsulation
+# 99 # any private encryption scheme
+gmtp 100 GMTP # GMTP
+ifmp 101 IFMP # Ipsilon Flow Management Protocol
+pnni 102 PNNI # PNNI over IP
+pim 103 PIM # Protocol Independent Multicast
+aris 104 ARIS # ARIS
+scps 105 SCPS # SCPS
+qnx 106 QNX # QNX
+a/n 107 A/N # Active Networks
+ipcomp 108 IPComp # IP Payload Compression Protocol
+snp 109 SNP # Sitara Networks Protocol
+compaq-peer 110 Compaq-Peer # Compaq Peer Protocol
+ipx-in-ip 111 IPX-in-IP # IPX in IP
+vrrp 112 VRRP # Virtual Router Redundancy Protocol
+pgm 113 PGM # PGM Reliable Transport Protocol
+# 114 # any 0-hop protocol
+l2tp 115 L2TP # Layer Two Tunneling Protocol
+ddx 116 DDX # D-II Data Exchange
+iatp 117 IATP # Interactive Agent Transfer Protocol
+st 118 ST # Schedule Transfer
+srp 119 SRP # SpectraLink Radio Protocol
+uti 120 UTI # UTI
+smp 121 SMP # Simple Message Protocol
+sm 122 SM # SM
+ptp 123 PTP # Performance Transparency Protocol
+isis 124 ISIS # ISIS over IPv4
+fire 125 FIRE
+crtp 126 CRTP # Combat Radio Transport Protocol
+crudp 127 CRUDP # Combat Radio User Datagram
+sscopmce 128 SSCOPMCE
+iplt 129 IPLT
+sps 130 SPS # Secure Packet Shield
+pipe 131 PIPE # Private IP Encapsulation within IP
+sctp 132 SCTP # Stream Control Transmission Protocol
+fc 133 FC # Fibre Channel
+# 134-254 # Unassigned
+divert 254 DIVERT # Divert pseudo-protocol [non IANA]
+# 255 # Reserved
diff --git a/etc/rc b/etc/rc
new file mode 100644
index 0000000..dc94a2c
--- /dev/null
+++ b/etc/rc
@@ -0,0 +1,992 @@
+#!/bin/sh
+#
+# Copyright (c) 2000 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# @(#)rc 5.27 (Berkeley) 6/5/91
+# $FreeBSD$
+#
+
+# System startup script run by init on autoboot
+# or after single-user.
+# Output and error are redirected to console by init,
+# and the console is the controlling terminal.
+
+# Note that almost all of the user-configurable behavior is no longer in
+# this file, but rather in /etc/defaults/rc.conf. Please check that file
+# first before contemplating any changes here. If you do need to change
+# this file for some reason, we would like to know about it.
+
+stty status '^T'
+
+# Set shell to ignore SIGINT (2), but not children;
+# shell catches SIGQUIT (3) and returns to single user after fsck.
+#
+trap : 2
+trap : 3 # shouldn't be needed
+
+HOME=/
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+export HOME PATH
+
+# If there is a global system configuration file, suck it in.
+# XXX - The only purpose of duplicating it here is to catch rc_ng="YES"
+#
+if [ -r /etc/defaults/rc.conf ]; then
+ . /etc/defaults/rc.conf
+ source_rc_confs
+elif [ -r /etc/rc.conf ]; then
+ . /etc/rc.conf
+fi
+
+# Diskless setups have to depend on a different mechanism since
+# their config files haven't been retargeted yet.
+#
+[ -e /.rcng_yes ] && rc_ng="YES"
+
+case ${rc_ng} in
+[Yy][Ee][Ss])
+ . /etc/rc.subr
+
+ # Load system configuration files. The 'XXX' is there because
+ # the function requires an argument that we don't need to use.
+ #
+ load_rc_config 'XXX'
+
+ if [ "$1" = autoboot ]; then
+ autoboot=yes
+ _boot="faststart"
+ rc_fast=yes # run_rc_command(): do fast booting
+ else
+ autoboot=no
+ _boot="start"
+ fi
+
+ os=`eval ${CMD_OSTYPE}`
+ files=`rcorder -k ${os} -s nostart /etc/rc.d/*`
+
+ for _rc_elem in ${files}; do
+ run_rc_script ${_rc_elem} ${_boot}
+ done
+
+ echo ''
+ date
+ exit 0
+ ;;
+*)
+ # fall-through to the old rc scripts
+ ;;
+esac
+
+bootmode=$1
+
+# BOOTP diskless boot. We have to run the rc file early in order to
+# retarget various config files.
+#
+if [ -r /etc/rc.diskless1 ]; then
+ dlv=`/sbin/sysctl -n vfs.nfs.diskless_valid 2> /dev/null`
+ if [ ${dlv:=0} != 0 ]; then
+ . /etc/rc.diskless1
+ fi
+fi
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/rc.conf ]; then
+ . /etc/defaults/rc.conf
+ source_rc_confs
+elif [ -r /etc/rc.conf ]; then
+ . /etc/rc.conf
+fi
+
+# XXX - Deprecated variable name support
+# for rpcbind and ntpd
+#
+[ -n "$portmap_enable" ] && rpcbind_enable="$portmap_enable"
+[ -n "$portmap_program" ] && rpcbind_program="$portmap_program"
+[ -n "$portmap_flags" ] && rpcbind_flags="$portmap_flags"
+[ -n "$single_mountd_enable" ] && mountd_enable="$single_mountd_enable"
+[ -n "$xntpd_enable" ] && ntpd_enable="$xntpd_enable"
+[ -n "$xntpd_program" ] && ntpd_program="$xntpd_program"
+[ -n "$xntpd_flags" ] && ntpd_flags="$xntpd_flags"
+
+feed_dev_random() {
+ if [ -f "${1}" -a -r "${1}" -a -s "${1}" ]; then
+# echo "Using ${1} as an entropy file"
+ cat "${1}" | dd of=/dev/random bs=8k 2>/dev/null
+ fi
+}
+
+chkdepend() {
+ svc=$1
+ svc_var=$2
+ dep=$3
+ dep_var=$4
+
+ eval svc_val=\${$svc_var}
+ eval dep_val=\${$dep_var}
+
+ case ${svc_val} in
+ [Yy][Ee][Ss])
+ case ${dep_val} in
+ [Yy][Ee][Ss])
+ ;;
+ *)
+ eval ${dep_var}="YES"
+ echo "DEPENDENCY NOTE: ${dep} will be enabled" \
+ "to support ${svc}"
+ ;;
+ esac
+ ;;
+ esac
+}
+
+chkdepend amd amd_enable rpcbind rpcbind_enable
+chkdepend amd amd_enable NFS nfs_client_enable
+chkdepend NFS nfs_server_enable rpcbind rpcbind_enable
+chkdepend NIS nis_server_enable rpcbind rpcbind_enable
+chkdepend NIS nis_client_enable rpcbind rpcbind_enable
+
+# Enable dumpdev early so that a crash during the boot process can be caught.
+#
+case ${dumpdev} in
+[Nn][Oo] | '')
+ dumpdev='NO'
+ ;;
+*)
+ /sbin/dumpon -v ${dumpdev}
+ ;;
+esac
+
+# Enable harvesting of entropy via devices. The sooner this happens the
+# better so that we can take advantage of the boot process.
+#
+echo -n 'Entropy harvesting:'
+
+case ${harvest_interrupt} in
+[Nn][Oo])
+ ;;
+*)
+ if [ -w /dev/random ]; then
+ /sbin/sysctl kern.random.sys.harvest.interrupt=1 >/dev/null
+ echo -n ' interrupts'
+ fi
+ ;;
+esac
+
+case ${harvest_ethernet} in
+[Nn][Oo])
+ ;;
+*)
+ if [ -w /dev/random ]; then
+ /sbin/sysctl kern.random.sys.harvest.ethernet=1 >/dev/null
+ echo -n ' ethernet'
+ fi
+ ;;
+esac
+
+case ${harvest_p_to_p} in
+[Nn][Oo])
+ ;;
+*)
+ if [ -w /dev/random ]; then
+ /sbin/sysctl kern.random.sys.harvest.point_to_point=1 >/dev/null
+ echo -n ' point_to_point'
+ fi
+ ;;
+esac
+
+echo '.'
+
+# First pass at reseeding /dev/random.
+#
+case ${entropy_file} in
+[Nn][Oo] | '')
+ ;;
+*)
+ if [ -w /dev/random ]; then
+ feed_dev_random "${entropy_file}"
+ fi
+ ;;
+esac
+
+# XXX temporary until we can get the entropy
+# harvesting rate up
+# Entropy below is not great,
+# but better than nothing.
+( ps -fauxww; sysctl -a; date; df -ib; dmesg; ps -fauxww; ) \
+ | dd of=/dev/random bs=8k 2>/dev/null
+cat /bin/ls | dd of=/dev/random bs=8k 2>/dev/null
+
+# Configure ccd devices.
+#
+if [ -r /etc/ccd.conf ]; then
+ ccdconfig -C
+fi
+
+case ${start_vinum} in
+[Yy][Ee][Ss])
+ vinum start
+ ;;
+esac
+
+swapon -a
+
+# Last chance to do things before potentially waiting for
+# operator to do fsck related tasks
+if [ -r /etc/rc.early ]; then
+ . /etc/rc.early
+fi
+
+case ${bootmode} in
+autoboot)
+ echo 'Automatic boot in progress...'
+ case ${background_fsck} in
+ [Yy][Ee][Ss])
+ fsck -F -p
+ ;;
+ *)
+ fsck -p
+ ;;
+ esac
+ case $? in
+ 0)
+ ;;
+ 2)
+ exit 1
+ ;;
+ 4)
+ reboot
+ echo 'Reboot failed... help!'
+ exit 1
+ ;;
+ 8)
+ case ${fsck_y_enable} in
+ [Yy][Ee][Ss])
+ echo 'File system preen failed, trying fsck -y . . .'
+ fsck -y
+ case $? in
+ 0)
+ ;;
+ *)
+ echo 'Automatic filesystem check failed . . . help!'
+ exit 1
+ ;;
+ esac
+ ;;
+ *)
+ echo 'Automatic filesystem check failed . . . help!'
+ exit 1
+ ;;
+ esac
+ ;;
+ 12)
+ echo 'Reboot interrupted'
+ exit 1
+ ;;
+ 130)
+ # interrupt before catcher installed
+ exit 1
+ ;;
+ *)
+ echo 'Unknown error in reboot'
+ exit 1
+ ;;
+ esac
+ ;;
+*)
+ echo 'Skipping disk checks ...'
+ ;;
+esac
+
+set -T
+trap "echo 'Reboot interrupted'; exit 1" 3
+
+# root normally must be read/write, but if this is a BOOTP NFS
+# diskless boot it does not have to be.
+#
+case ${root_rw_mount} in
+[Nn][Oo] | '')
+ ;;
+*)
+ if ! mount -u -o rw / ; then
+ echo 'Mounting root filesystem rw failed, startup aborted'
+ exit 1
+ fi
+ ;;
+esac
+
+umount -a >/dev/null 2>&1
+
+# Set up the list of network filesystem types for which mounting should be
+# delayed until after network initialization.
+networkfs_types='nfs:NFS smbfs:SMB portalfs:PORTAL'
+case ${extra_netfs_types} in
+[Nn][Oo])
+ ;;
+*)
+ networkfs_types="${networkfs_types} ${extra_netfs_types}"
+ ;;
+esac
+
+# Mount everything except nfs filesystems.
+mount_excludes='no'
+for i in ${networkfs_types}; do
+ fstype=${i%:*}
+ mount_excludes="${mount_excludes}${fstype},"
+done
+mount_excludes=${mount_excludes%,}
+mount -a -t ${mount_excludes}
+
+case $? in
+0)
+ ;;
+*)
+ echo 'Mounting /etc/fstab filesystems failed, startup aborted'
+ exit 1
+ ;;
+esac
+
+# Run custom disk mounting function here
+#
+if [ -n "${diskless_mount}" -a -r "${diskless_mount}" ]; then
+ sh ${diskless_mount}
+fi
+
+# If we booted a special kernel remove the record so we will boot
+# the default kernel next time
+rm -f /boot/nextboot.conf
+
+# Reseed /dev/random with previously stored entropy.
+case ${entropy_dir} in
+[Nn][Oo])
+ ;;
+*)
+ entropy_dir=${entropy_dir:-/var/db/entropy}
+ if [ -d "${entropy_dir}" ]; then
+ if [ -w /dev/random ]; then
+ for seedfile in ${entropy_dir}/*; do
+ feed_dev_random "${seedfile}"
+ done
+ fi
+ fi
+ ;;
+esac
+
+case ${entropy_file} in
+[Nn][Oo] | '')
+ ;;
+*)
+ if [ -w /dev/random ]; then
+ feed_dev_random "${entropy_file}"
+ fi
+ ;;
+esac
+
+adjkerntz -i
+
+purgedir() {
+ local dir file
+
+ if [ $# -eq 0 ]; then
+ purgedir .
+ else
+ for dir
+ do
+ (
+ cd "$dir" && for file in .* *
+ do
+ [ ."$file" = .. -o ."$file" = ... ] && continue
+ if [ -d "$file" -a ! -L "$file" ]
+ then
+ purgedir "$file"
+ else
+ rm -f -- "$file"
+ fi
+ done
+ )
+ done
+ fi
+}
+
+clean_var() {
+ if [ -d /var/run -a ! -f /var/run/clean_var ]; then
+ purgedir /var/run
+ # Keep a copy of the boot messages around
+ dmesg >/var/run/dmesg.boot
+ # And an initial utmp file
+ (cd /var/run && cp /dev/null utmp && chmod 644 utmp;)
+ >/var/run/clean_var
+ fi
+ if [ -d /var/spool/lock -a ! -f /var/spool/lock/clean_var ]; then
+ purgedir /var/spool/lock
+ >/var/spool/lock/clean_var
+ fi
+ rm -rf /var/spool/uucp/.Temp/*
+}
+
+# network_pass1() *may* end up writing stuff to /var - we don't want to
+# remove it immediately afterwards - *nor* do we want to fail to clean
+# an NFS-mounted /var.
+rm -f /var/run/clean_var /var/spool/lock/clean_var
+clean_var
+
+# Add additional swapfile, if configured.
+#
+case ${swapfile} in
+[Nn][Oo] | '')
+ ;;
+*)
+ if [ -w "${swapfile}" -a -c /dev/mdctl ]; then
+ echo "Adding ${swapfile} as additional swap"
+ mdev=`mdconfig -a -t vnode -f ${swapfile}` && swapon /dev/${mdev}
+ fi
+ ;;
+esac
+
+# Early pass to set the variables we can
+#
+if [ -r /etc/rc.sysctl ]; then
+ sh /etc/rc.sysctl first
+fi
+
+# Configure serial devices
+#
+if [ -r /etc/rc.serial ]; then
+ . /etc/rc.serial
+fi
+
+# Start up PC-card configuration
+#
+if [ -r /etc/rc.pccard ]; then
+ . /etc/rc.pccard
+fi
+
+# Start up the initial network configuration.
+#
+if [ -r /etc/rc.network ]; then
+ . /etc/rc.network # We only need to do this once.
+ network_pass1
+fi
+
+case ${ipv6_enable} in
+[Yy][Ee][Ss])
+ if [ -r /etc/rc.network6 ]; then
+ . /etc/rc.network6 # We only need to do this once also.
+ network6_pass1
+ fi
+ ;;
+esac
+
+# Mount NFS filesystems if present in /etc/fstab
+#
+# XXX When the vfsload() issues with nfsclient support and related sysctls
+# have been resolved, this block can be removed, and the condition that
+# skips nfs in the following block (for "other network filesystems") can
+# be removed.
+case "`mount -d -a -t nfs 2> /dev/null`" in
+*mount_nfs*)
+ # Handle absent nfs client support
+ nfsclient_in_kernel=0
+ if sysctl vfs.nfs >/dev/null 2>&1; then
+ nfsclient_in_kernel=1
+ else
+ kldload nfsclient && nfsclient_in_kernel=1
+ fi
+
+ case ${nfsclient_in_kernel} in
+ 1)
+ echo -n 'Mounting NFS filesystem:'
+ mount -a -t nfs
+ echo '.'
+ ;;
+ *)
+ echo 'Warning: nfs mount requested, but no nfs client in kernel'
+ ;;
+ esac
+ ;;
+esac
+
+# Mount other network filesystems if present in /etc/fstab
+for i in ${networkfs_types}; do
+ fstype=${i%:*}
+ fsdecr=${i#*:}
+
+ if [ "${fstype}" = "nfs" ]; then
+ continue
+ fi
+ case "`mount -d -a -t ${fstype}`" in
+ *mount_${fstype}*)
+ echo -n "Mounting ${fsdecr} filesystems:"
+ mount -a -t ${fstype}
+ echo '.'
+ ;;
+ esac
+done
+
+# Whack the pty perms back into shape.
+#
+if ls /dev/tty[pqrsPQRS]* > /dev/null 2>&1; then
+ chflags 0 /dev/tty[pqrsPQRS]*
+ chmod 666 /dev/tty[pqrsPQRS]*
+ chown root:wheel /dev/tty[pqrsPQRS]*
+fi
+
+# Clean up left-over files
+#
+clean_var # If it hasn't already been done
+rm /var/run/clean_var /var/spool/lock/clean_var
+
+# Clearing /tmp at boot-time seems to have a long tradition. It doesn't
+# help in any way for long-living systems, and it might accidentally
+# clobber files you would rather like to have preserved after a crash
+# (if not using mfs /tmp anyway).
+#
+# See also the example of another cleanup policy in /etc/periodic/daily.
+#
+case ${clear_tmp_enable} in
+[Yy][Ee][Ss])
+ echo -n 'Clearing /tmp:'
+ # prune quickly with one rm, then use find to clean up /tmp/[lq]*
+ # (not needed with mfs /tmp, but doesn't hurt there...)
+ (cd /tmp && rm -rf [a-km-pr-zA-Z]* &&
+ find -d . ! -name . ! -name lost+found ! -name quota.user \
+ ! -name quota.group -exec rm -rf -- {} \;)
+ echo '.'
+ ;;
+esac
+
+# Remove X lock files, since they will prevent you from restarting X11
+# after a system crash.
+#
+rm -f /tmp/.X*-lock
+rm -fr /tmp/.X11-unix
+mkdir -m 1777 /tmp/.X11-unix
+
+# Snapshot any kernel -c changes back to disk here <someday>.
+# This has changed with ELF and /kernel.config.
+
+# Load LOMAC(4) security if wanted.
+case ${lomac_enable} in
+[Yy][Ee][Ss])
+ kldload lomac >/dev/null 2>&1
+ ;;
+esac
+
+echo -n 'Additional daemons:'
+
+# Start system logging and name service. Named needs to start before syslogd
+# if you don't have a /etc/resolv.conf.
+#
+case ${syslogd_enable} in
+[Yy][Ee][Ss])
+ # Transitional symlink (for the next couple of years :) until all
+ # binaries have had a chance to move towards /var/run/log.
+ if [ ! -L /dev/log ]; then
+ # might complain for r/o root f/s
+ ln -sf /var/run/log /dev/log
+ fi
+
+ rm -f /var/run/log
+ echo -n ' syslogd';
+ ${syslogd_program:-/usr/sbin/syslogd} ${syslogd_flags}
+ ;;
+esac
+
+echo '.'
+
+# Build device name databases if we are not using DEVFS
+#
+if sysctl vfs.devfs.generation > /dev/null 2>&1 ; then
+ rm -f /var/run/dev.db
+else
+ dev_mkdb
+fi
+
+# $dumpdir should be a directory or a symbolic link
+# to the crash directory if core dumps are to be saved.
+#
+if [ "${dumpdev}" != 'NO' ]; then
+ case ${dumpdir} in
+ '')
+ dumpdir='/var/crash'
+ ;;
+ [Nn][Oo])
+ dumpdir='NO'
+ ;;
+ esac
+
+ if [ "${dumpdir}" != 'NO' ]; then
+ echo -n 'Checking for core dump: '
+ /sbin/savecore ${savecore_flags} "${dumpdir}"
+ fi
+fi
+
+if [ -n "${network_pass1_done}" ]; then
+ network_pass2
+fi
+
+# Enable/Check the quotas (must be after ypbind if using NIS)
+#
+case ${enable_quotas} in
+[Yy][Ee][Ss])
+ case ${check_quotas} in
+ [Yy][Ee][Ss])
+ echo -n 'Checking quotas:'
+ quotacheck -a
+ echo ' done.'
+ ;;
+ esac
+
+ echo -n 'Enabling quotas:'
+ quotaon -a
+ echo ' done.'
+ ;;
+esac
+
+if [ -n "${network_pass2_done}" ]; then
+ network_pass3
+fi
+
+# Check the password temp/lock file
+#
+if [ -e /etc/ptmp ]; then
+ logger -s -p auth.err \
+ "password file may be incorrect -- /etc/ptmp exists"
+fi
+
+case ${accounting_enable} in
+[Yy][Ee][Ss])
+ if [ -d /var/account ]; then
+ echo 'Turning on accounting:'
+ if [ ! -e /var/account/acct ]; then
+ touch /var/account/acct
+ fi
+ accton /var/account/acct
+ fi
+ ;;
+esac
+
+# Make shared lib searching a little faster. Leave /usr/lib first if you
+# add your own entries or you may come to grief.
+#
+ldconfig="/sbin/ldconfig"
+case ${ldconfig_insecure} in
+[Yy][Ee][Ss])
+ ldconfig="${ldconfig} -i"
+ ;;
+esac
+if [ -x /sbin/ldconfig ]; then
+ case `/usr/bin/objformat` in
+ elf)
+ _LDC=/usr/lib
+ for i in ${ldconfig_paths}; do
+ if [ -d "${i}" ]; then
+ _LDC="${_LDC} ${i}"
+ fi
+ done
+ echo 'ELF ldconfig path:' ${_LDC}
+ ${ldconfig} -elf ${_LDC}
+ ;;
+ esac
+
+ # Legacy aout support for i386 only
+ case `sysctl -n hw.machine_arch` in
+ i386)
+ # Default the a.out ldconfig path.
+ : ${ldconfig_paths_aout=${ldconfig_paths}}
+ _LDC=/usr/lib/aout
+ for i in ${ldconfig_paths_aout}; do
+ if [ -d "${i}" ]; then
+ _LDC="${_LDC} ${i}"
+ fi
+ done
+ echo 'a.out ldconfig path:' ${_LDC}
+ ${ldconfig} -aout ${_LDC}
+ ;;
+ esac
+fi
+
+# Now start up miscellaneous daemons that don't belong anywhere else
+#
+echo -n 'Starting standard daemons:'
+case ${inetd_enable} in
+[Nn][Oo])
+ ;;
+*)
+ echo -n ' inetd'; ${inetd_program:-/usr/sbin/inetd} ${inetd_flags}
+ ;;
+esac
+
+case ${cron_enable} in
+[Nn][Oo])
+ ;;
+*)
+ echo -n ' cron'; ${cron_program:-/usr/sbin/cron} ${cron_flags}
+ ;;
+esac
+
+case ${lpd_enable} in
+[Yy][Ee][Ss])
+ echo -n ' printer'; ${lpd_program:-/usr/sbin/lpd} ${lpd_flags}
+ ;;
+esac
+
+case ${sshd_enable} in
+[Yy][Ee][Ss])
+ if [ -x ${sshd_program:-/usr/sbin/sshd} ]; then
+ echo -n ' sshd';
+ ${sshd_program:-/usr/sbin/sshd} ${sshd_flags}
+ fi
+ ;;
+esac
+
+case ${usbd_enable} in
+[Yy][Ee][Ss])
+ echo -n ' usbd'; /usr/sbin/usbd ${usbd_flags}
+ ;;
+esac
+
+case ${mta_start_script} in
+/*)
+ if [ -r ${mta_start_script} ]; then
+ sh ${mta_start_script}
+ fi
+ ;;
+esac
+
+echo '.'
+
+# Recover vi editor files.
+find /var/tmp/vi.recover ! -type f -a ! -type d -delete
+vibackup=`echo /var/tmp/vi.recover/vi.*`
+if [ "${vibackup}" != '/var/tmp/vi.recover/vi.*' ]; then
+ echo -n 'Recovering vi editor sessions:'
+ for i in /var/tmp/vi.recover/vi.*; do
+ # Only test files that are readable.
+ if [ ! -r "${i}" ]; then
+ continue
+ fi
+
+ # Unmodified nvi editor backup files either have the
+ # execute bit set or are zero length. Delete them.
+ if [ -x "${i}" -o ! -s "${i}" ]; then
+ rm -f "${i}"
+ fi
+ done
+
+ # It is possible to get incomplete recovery files, if the editor
+ # crashes at the right time.
+ virecovery=`echo /var/tmp/vi.recover/recover.*`
+ if [ "${virecovery}" != "/var/tmp/vi.recover/recover.*" ]; then
+ for i in /var/tmp/vi.recover/recover.*; do
+ # Only test files that are readable.
+ if [ ! -r "${i}" ]; then
+ continue
+ fi
+
+ # Delete any recovery files that are zero length,
+ # corrupted, or that have no corresponding backup file.
+ # Else send mail to the user.
+ recfile=`awk '/^X-vi-recover-path:/{print $2}' < "${i}"`
+ if [ -n "${recfile}" -a -s "${recfile}" ]; then
+ sendmail -t < "${i}"
+ else
+ rm -f "${i}"
+ fi
+ done
+ fi
+ echo '.'
+fi
+
+# Make a bounds file for msgs(1) if there isn't one already
+#
+if [ -d /var/msgs -a ! -f /var/msgs/bounds -a ! -L /var/msgs/bounds ]; then
+ echo 0 > /var/msgs/bounds
+fi
+
+case ${update_motd} in
+[Nn][Oo] | '')
+ ;;
+*)
+ if T=`mktemp /tmp/_motd.XXXXXX`; then
+ uname -v | sed -e 's,^\([^#]*\) #\(.* [1-2][0-9][0-9][0-9]\).*/\([^\]*\) $,\1 (\3) #\2,' > ${T}
+ awk '{if (NR == 1) {if ($1 == "FreeBSD") {next} else {print "\n"$0}} else {print}}' < /etc/motd >> ${T}
+ cmp -s ${T} /etc/motd || {
+ cp ${T} /etc/motd
+ chmod 644 /etc/motd
+ }
+ rm -f ${T}
+ fi
+ ;;
+esac
+
+# Run rc.devfs if readable to customize devfs
+#
+if [ -r /etc/rc.devfs ]; then
+ sh /etc/rc.devfs
+fi
+
+# Configure implementation specific stuff
+#
+arch=`uname -p`
+if [ -r /etc/rc.${arch} ]; then
+ . /etc/rc.${arch}
+fi
+
+# Configure the system console
+#
+if [ -r /etc/rc.syscons ]; then
+ . /etc/rc.syscons
+fi
+
+echo -n 'Additional ABI support:'
+
+# Load the SysV IPC API if requested.
+case ${sysvipc_enable} in
+[Yy][Ee][Ss])
+ echo -n ' sysvipc'
+ kldload sysvmsg >/dev/null 2>&1
+ kldload sysvsem >/dev/null 2>&1
+ kldload sysvshm >/dev/null 2>&1
+ ;;
+esac
+
+# Start the Linux binary compatibility if requested.
+#
+case ${linux_enable} in
+[Yy][Ee][Ss])
+ echo -n ' linux'
+ if ! kldstat -v | grep -E 'linux(aout|elf)' > /dev/null; then
+ kldload linux > /dev/null 2>&1
+ fi
+ if [ -x /compat/linux/sbin/ldconfig ]; then
+ /compat/linux/sbin/ldconfig
+ fi
+ ;;
+esac
+
+# Start the SysVR4 binary emulation if requested.
+#
+case ${svr4_enable} in
+[Yy][Ee][Ss])
+ echo -n ' svr4'; kldload svr4 > /dev/null 2>&1
+ ;;
+esac
+
+echo '.'
+
+# Do traditional (but rather obsolete) rc.local file if it exists. If you
+# use this file and want to make it programmatic, source /etc/defaults/rc.conf
+# in /etc/rc.local and add your custom variables to /etc/rc.conf, as
+# shown below. Please do not put local extensions into /etc/rc itself.
+# Use /etc/rc.local
+#
+# ---- rc.local ----
+# if [ -r /etc/defaults/rc.conf ]; then
+# . /etc/defaults/rc.conf
+# source_rc_confs
+# elif [ -r /etc/rc.conf ]; then
+# . /etc/rc.conf
+# fi
+#
+# ... additional startup conditionals ...
+# ---- rc.local ----
+#
+if [ -r /etc/rc.local ]; then
+ echo -n 'Starting local daemons:'
+ sh /etc/rc.local
+ echo '.'
+fi
+
+# For each valid dir in $local_startup, search for init scripts matching *.sh
+#
+case ${local_startup} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n 'Local package initialization:'
+ slist=""
+ if [ -z "${script_name_sep}" ]; then
+ script_name_sep=" "
+ fi
+ for dir in ${local_startup}; do
+ if [ -d "${dir}" ]; then
+ for script in ${dir}/*.sh; do
+ slist="${slist}${script_name_sep}${script}"
+ done
+ fi
+ done
+ script_save_sep="$IFS"
+ IFS="${script_name_sep}"
+ for script in ${slist}; do
+ if [ -x "${script}" ]; then
+ (set -T
+ trap 'exit 1' 2
+ ${script} start)
+ elif [ -f "${script}" -o -L "${script}" ]; then
+ echo -n " (skipping ${script##*/}, not executable)"
+ fi
+ done
+ IFS="${script_save_sep}"
+ echo '.'
+ ;;
+esac
+
+if [ -n "${network_pass3_done}" ]; then
+ network_pass4
+fi
+
+# Late pass to set variables we missed the first time
+#
+if [ -r /etc/rc.sysctl ]; then
+ sh /etc/rc.sysctl last
+fi
+
+# Raise kernel security level. This should be done only after `fsck' has
+# repaired local filesystems if you want the securelevel to be greater than 1.
+#
+case ${kern_securelevel_enable} in
+[Yy][Ee][Ss])
+ if [ "${kern_securelevel}" -ge 0 ]; then
+ echo 'Raising kernel security level: '
+ sysctl kern.securelevel=${kern_securelevel}
+ fi
+ ;;
+esac
+
+# Start background fsck checks if necessary
+case ${background_fsck} in
+[Yy][Ee][Ss])
+ echo 'Starting background filesystem checks'
+ nice -4 fsck -B -p 2>&1 | logger -p daemon.notice &
+ ;;
+esac
+
+echo ''
+
+date
+
+exit 0
+
diff --git a/etc/rc.atm b/etc/rc.atm
new file mode 100644
index 0000000..1c53c7f
--- /dev/null
+++ b/etc/rc.atm
@@ -0,0 +1,217 @@
+#!/bin/sh
+#
+# Copyright (c) 2000 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+#
+# ATM networking startup script
+#
+# Initial interface configuration.
+# N.B. /usr is not mounted.
+#
+atm_pass1() {
+ # Locate all probed ATM adapters
+ atmdev=`atm sh stat int | while read dev junk; do
+ case ${dev} in
+ hea[0-9] | hea[0-9][0-9])
+ echo "${dev} "
+ ;;
+ hfa[0-9] | hfa[0-9][0-9])
+ echo "${dev} "
+ ;;
+ *)
+ continue
+ ;;
+ esac
+ done`
+
+ if [ -z "${atmdev}" ]; then
+ echo 'No ATM adapters found'
+ return 0
+ fi
+
+ # Load microcode into FORE adapters (if needed)
+ if [ `expr "${atmdev}" : '.*hfa.*'` -ne 0 ]; then
+ fore_dnld
+ fi
+
+ # Configure physical interfaces
+ ilmid=0
+ for phy in ${atmdev}; do
+ echo -n "Configuring ATM device ${phy}:"
+
+ # Define network interfaces
+ eval netif_args=\$atm_netif_${phy}
+ if [ -n "${netif_args}" ]; then
+ atm set netif ${phy} ${netif_args} || continue
+ else
+ echo ' missing network interface definition'
+ continue
+ fi
+
+ # Override physical MAC address
+ eval macaddr_args=\$atm_macaddr_${phy}
+ if [ -n "${macaddr_args}" ]; then
+ case ${macaddr_args} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ atm set mac ${phy} ${macaddr_args} || continue
+ ;;
+ esac
+ fi
+
+ # Configure signalling manager
+ eval sigmgr_args=\$atm_sigmgr_${phy}
+ if [ -n "${sigmgr_args}" ]; then
+ atm attach ${phy} ${sigmgr_args} || continue
+ else
+ echo ' missing signalling manager definition'
+ continue
+ fi
+
+ # Configure UNI NSAP prefix
+ eval prefix_args=\$atm_prefix_${phy}
+ if [ `expr "${sigmgr_args}" : '[uU][nN][iI].*'` -ne 0 ]; then
+ if [ -z "${prefix_args}" ]; then
+ echo ' missing NSAP prefix for UNI interface'
+ continue
+ fi
+
+ case ${prefix_args} in
+ ILMI)
+ ilmid=1
+ ;;
+ *)
+ atm set prefix ${phy} ${prefix_args} || continue
+ ;;
+ esac
+ fi
+
+ atm_phy="${atm_phy} ${phy}"
+ echo '.'
+ done
+
+ echo -n 'Starting initial ATM daemons:'
+ # Start ILMI daemon (if needed)
+ case ${ilmid} in
+ 1)
+ echo -n ' ilmid'
+ ilmid
+ ;;
+ esac
+
+ echo '.'
+ atm_pass1_done=YES
+}
+
+#
+# Finish up configuration.
+# N.B. /usr is not mounted.
+#
+atm_pass2() {
+ echo -n 'Configuring ATM network interfaces:'
+
+ atm_scspd=0
+ atm_atmarpd=""
+
+ # Configure network interfaces
+ for phy in ${atm_phy}; do
+ eval netif_args=\$atm_netif_${phy}
+ set -- ${netif_args}
+ netname=$1
+ netcnt=$2
+ netindx=0
+ while [ ${netindx} -lt ${netcnt} ]; do
+ net="${netname}${netindx}"
+ netindx=$((${netindx} + 1))
+ echo -n " ${net}"
+
+ # Configure atmarp server
+ eval atmarp_args=\$atm_arpserver_${net}
+ if [ -n "${atmarp_args}" ]; then
+ atm set arpserver ${net} ${atmarp_args} ||
+ continue
+ fi
+ eval scsparp_args=\$atm_scsparp_${net}
+
+ case ${scsparp_args} in
+ [Yy][Ee][Ss])
+ case ${atmarp_args} in
+ local)
+ ;;
+ *)
+ echo ' local arpserver required for SCSP'
+ continue
+ ;;
+ esac
+
+ atm_atmarpd="${atm_atmarpd} ${net}"
+ atm_scspd=1
+ esac
+ done
+ done
+ echo '.'
+
+ # Define any PVCs.
+ if [ -n "${atm_pvcs}" ]; then
+ for i in ${atm_pvcs}; do
+ eval pvc_args=\$atm_pvc_${i}
+ atm add pvc ${pvc_args}
+ done
+ fi
+
+ # Define any permanent ARP entries.
+ if [ -n "${atm_arps}" ]; then
+ for i in ${atm_arps}; do
+ eval arp_args=\$atm_arp_${i}
+ atm add arp ${arp_args}
+ done
+ fi
+ atm_pass2_done=YES
+}
+
+#
+# Start any necessary daemons.
+#
+atm_pass3() {
+ # Start SCSP daemon (if needed)
+ case ${atm_scspd} in
+ 1)
+ echo -n ' scspd'
+ scspd
+ ;;
+ esac
+
+ # Start ATMARP daemon (if needed)
+ if [ -n "${atm_atmarpd}" ]; then
+ echo -n ' atmarpd'
+ atmarpd ${atm_atmarpd}
+ fi
+
+ atm_pass3_done=YES
+}
diff --git a/etc/rc.d/DAEMON b/etc/rc.d/DAEMON
new file mode 100755
index 0000000..0dce994
--- /dev/null
+++ b/etc/rc.d/DAEMON
@@ -0,0 +1,12 @@
+#!/bin/sh
+#
+# $NetBSD: DAEMON,v 1.8 2002/03/22 04:33:57 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: DAEMON
+# REQUIRE: NETWORKING SERVERS
+# KEYWORD: FreeBSD NetBSD
+
+# This is a dummy dependancy, to ensure that general purpose daemons
+# are run _after_ the above are.
diff --git a/etc/rc.d/LOGIN b/etc/rc.d/LOGIN
new file mode 100755
index 0000000..f4501b1
--- /dev/null
+++ b/etc/rc.d/LOGIN
@@ -0,0 +1,15 @@
+#!/bin/sh
+#
+# $NetBSD: LOGIN,v 1.7 2002/03/22 04:33:57 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: LOGIN
+# REQUIRE: DAEMON
+# KEYWORD: FreeBSD NetBSD
+
+# This is a dummy dependancy to ensure user services such as xdm,
+# inetd, cron and kerberos are started after everything else, incase
+# the administrator has increased the system security level and
+# wants to delay user logins until the system is (almost) fully
+# operational.
diff --git a/etc/rc.d/Makefile b/etc/rc.d/Makefile
new file mode 100755
index 0000000..db6427d
--- /dev/null
+++ b/etc/rc.d/Makefile
@@ -0,0 +1,26 @@
+# $NetBSD: Makefile,v 1.16 2001/01/14 15:37:22 minoura Exp $
+# $FreeBSD$
+
+.include <bsd.own.mk>
+
+FILES= DAEMON LOGIN NETWORKING SERVERS abi accounting addswap adjkerntz altqd \
+ amd apm apmd atm1 atm2.sh atm3.sh bgfsck bootconf.sh bootparams ccd \
+ cleanvar cleartmp cron devdb devfs dhclient dhcpd dhcrelay diskless \
+ dmesg dumpon fsck gated inetd initdiskless initrandom ipfilter ipfw \
+ ip6fw ipmon ipnat ipsec ipxrouted isdnd kadmind kdc kerberos keyserv \
+ ldconfig lkm1 lkm2 lkm3 local localdaemons lomac lpd mopd motd \
+ mountall mountcritlocal mountcritremote mountd moused mroute6d \
+ mrouted msgs named network network1 network2 network3 \
+ network_ipv6 newsyslog nfsclient nfsd nfslocking \
+ othermta nfsserver ntpd ntpdate pccard pcvt poffd ppp-user \
+ postfix ppp pppoed pwcheck quota racoon raidframe random rarpd \
+ rbootd root route6d routed rpcbind rtadvd rtsold \
+ rwho savecore screenblank securelevel sendmail serial sppp sshd swap1 \
+ swap2 sysdb syscons sysctl syslogd timed ttys usbd vinum virecover \
+ wscons xdm xfs ypbind yppasswdd ypserv ypset ypupdated ypxfrd
+FILESDIR= /etc/rc.d
+FILESMODE= ${BINMODE}
+
+NOPROG= noprog
+
+.include <bsd.prog.mk>
diff --git a/etc/rc.d/NETWORKING b/etc/rc.d/NETWORKING
new file mode 100644
index 0000000..ca23df3
--- /dev/null
+++ b/etc/rc.d/NETWORKING
@@ -0,0 +1,12 @@
+#!/bin/sh
+#
+# $NetBSD: NETWORKING,v 1.2 2002/03/22 04:33:57 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: NETWORKING NETWORK
+# REQUIRE: network dhclient altqd network1 network2 network_ipv6 ppp-user
+# KEYWORD: FreeBSD NetBSD
+
+# This is a dummy dependancy, for services which require networking
+# to be operational before starting.
diff --git a/etc/rc.d/SERVERS b/etc/rc.d/SERVERS
new file mode 100755
index 0000000..e3496cc
--- /dev/null
+++ b/etc/rc.d/SERVERS
@@ -0,0 +1,12 @@
+#!/bin/sh
+#
+# $NetBSD: SERVERS,v 1.9 2002/03/22 04:33:57 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: SERVERS
+# REQUIRE: mountcritremote
+# KEYWORD: FreeBSD NetBSD
+
+# This is a dummy dependancy, for early-start servers relying on
+# some basic configuration.
diff --git a/etc/rc.d/abi b/etc/rc.d/abi
new file mode 100644
index 0000000..c17b9cb
--- /dev/null
+++ b/etc/rc.d/abi
@@ -0,0 +1,54 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: abi
+# REQUIRE: LOGIN
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+echo -n 'Additional ABI support:'
+
+name="sysvipc"
+rcvar=`set_rcvar`
+start_cmd="sysv_start"
+stop_cmd=":"
+
+sysv_start()
+{
+ echo -n ' sysvipc'
+ kldload sysvmsg >/dev/null 2>&1
+ kldload sysvsem >/dev/null 2>&1
+ kldload sysvshm >/dev/null 2>&1
+}
+load_rc_config $name
+run_rc_command "$1"
+
+name="linux"
+rcvar=`set_rcvar`
+start_cmd="linux_start"
+
+linux_start()
+{
+ echo -n ' linux'
+ if ! kldstat -v | grep -E 'linux(aout|elf)' > /dev/null; then
+ kldload linux > /dev/null 2>&1
+ fi
+ if [ -x /compat/linux/sbin/ldconfig ]; then
+ /compat/linux/sbin/ldconfig
+ fi
+}
+load_rc_config $name
+run_rc_command "$1"
+
+name="svr4"
+rcvar=`set_rcvar`
+start_precmd="echo -n ' svr4'"
+start_cmd="kldload svr4 > /dev/null 2>&1"
+
+load_rc_config $name
+run_rc_command "$1"
+
+echo '.'
diff --git a/etc/rc.d/accounting b/etc/rc.d/accounting
new file mode 100755
index 0000000..af443dc
--- /dev/null
+++ b/etc/rc.d/accounting
@@ -0,0 +1,55 @@
+#!/bin/sh
+#
+# $NetBSD: accounting,v 1.7 2002/03/22 04:33:57 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: accounting
+# REQUIRE: mountall
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="accounting"
+rcvar=`set_rcvar`
+accounting_command="/usr/sbin/accton"
+accounting_file="/var/account/acct"
+start_cmd="accounting_start"
+stop_cmd="accounting_stop"
+
+accounting_start()
+{
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ _dir=`dirname "$accounting_file"`
+ if [ ! -d `dirname "$_dir"` ]; then
+ if ! mkdir -p "$_dir" ; then
+ warn "Could not create $_dir."
+ return 1
+ fi
+ fi
+ if [ ! -e "$accounting_file" ]; then
+ touch "$accounting_file"
+ fi
+ ;;
+ *)
+ ;;
+ esac
+
+ if [ ! -f ${accounting_file} ]; then
+ echo "Creating accounting file ${accounting_file}"
+ ( umask 022 ; > ${accounting_file} )
+ fi
+ echo "Turning on accounting."
+ ${accounting_command} ${accounting_file}
+}
+
+accounting_stop()
+{
+ echo "Turning off accounting."
+ ${accounting_command}
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/addswap b/etc/rc.d/addswap
new file mode 100644
index 0000000..12233d7
--- /dev/null
+++ b/etc/rc.d/addswap
@@ -0,0 +1,34 @@
+#!/bin/sh
+#
+# Add additional swap files
+#
+# $FreeBSD$
+#
+
+# PROVIDE: addswap
+# REQUIRE: mountcritlocal
+# BEFORE: sysctl
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="addswap"
+start_cmd="addswap_start"
+stop_cmd=":"
+
+addswap_start()
+{
+ case ${swapfile} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ if [ -w "${swapfile}" -a -c /dev/mdctl ]; then
+ echo "Adding ${swapfile} as additional swap"
+ mdev=`mdconfig -a -t vnode -f ${swapfile}` && swapon /dev/${mdev}
+ fi
+ ;;
+ esac
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/adjkerntz b/etc/rc.d/adjkerntz
new file mode 100644
index 0000000..654c157
--- /dev/null
+++ b/etc/rc.d/adjkerntz
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: adjkerntz
+# REQUIRE: diskless mountcritlocal random
+# BEFORE: network1
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="adjkerntz"
+start_cmd="adjkerntz -i"
+stop_cmd=":"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/altqd b/etc/rc.d/altqd
new file mode 100644
index 0000000..c7e626e
--- /dev/null
+++ b/etc/rc.d/altqd
@@ -0,0 +1,22 @@
+#!/bin/sh
+#
+# $NetBSD: altqd,v 1.2 2002/03/22 04:33:58 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: altqd
+# REQUIRE: network mountcritlocal dhclient
+# BEFORE: NETWORKING
+# KEYWORD: shutdown
+
+. /etc/rc.subr
+
+name="altqd"
+rcvar=$name
+command="/usr/sbin/${name}"
+pidfile="/var/run/${name}.pid"
+required_files="/etc/altq.conf"
+extra_commands="reload"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/amd b/etc/rc.d/amd
new file mode 100755
index 0000000..971a1e7
--- /dev/null
+++ b/etc/rc.d/amd
@@ -0,0 +1,70 @@
+#!/bin/sh
+#
+# $NetBSD: amd,v 1.10 2002/04/29 12:08:17 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: amd
+# REQUIRE: rpcbind mountall ypbind nfsclient
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="amd"
+rcvar=`set_rcvar`
+command="/usr/sbin/${name}"
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ start_precmd="amd_precmd"
+ command_args="&"
+ ;;
+NetBSD)
+ command_args='-p -a '$amd_dir' -F /etc/amd.conf >/var/run/amd.pid'
+ required_dirs="$amd_dir"
+ required_files="/etc/amd.conf"
+ required_vars="rpcbind"
+ ;;
+esac
+
+amd_precmd()
+{
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ if ! checkyesno nfs_client_enable ; then
+ force_depend nfsclient || return 1
+ fi
+
+ if ! checkyesno rpcbind_enable && \
+ ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
+ then
+ force_depend rpcbind || return 1
+ fi
+
+ case ${amd_map_program} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ amd_flags="${amd_flags} `eval ${amd_map_program}`"
+ ;;
+ esac
+
+ case "${amd_flags}" in
+ '')
+ if [ ! -r /etc/amd.conf ]; then
+ warn 'amd will not load without arguments'
+ return 1
+ fi
+ ;;
+ *)
+ amd_flags="-p ${amd_flags} > /var/run/amd.pid 2> /dev/null" \
+ ;;
+ esac
+ ;;
+ esac
+ return 0
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/apm b/etc/rc.d/apm
new file mode 100644
index 0000000..d88f7c0
--- /dev/null
+++ b/etc/rc.d/apm
@@ -0,0 +1,30 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: apm
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="apm"
+rcvar=`set_rcvar`
+start_precmd="apm_precmd"
+command="/usr/sbin/${name}"
+command_args="-e enable"
+
+apm_precmd()
+{
+ case `${SYSCTL_N} hw.machine_arch` in
+ i386)
+ return 0
+ ;;
+ esac
+ return 1
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/apmd b/etc/rc.d/apmd
new file mode 100755
index 0000000..7583ed4
--- /dev/null
+++ b/etc/rc.d/apmd
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# $NetBSD: apmd,v 1.5 2002/03/22 04:33:58 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: apmd
+# REQUIRE: DAEMON apm
+# BEFORE: LOGIN
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="apmd"
+rcvar=`set_rcvar`
+command="/usr/sbin/${name}"
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ start_precmd="apmd_prestart"
+ ;;
+esac
+
+apmd_prestart()
+{
+ case `${SYSCTL_N} hw.machine_arch` in
+ i386)
+ # Don't start if apm is already running
+ /etc/rc.d/apm forcestatus > /dev/null && return 1
+ ;;
+ *)
+ return 1
+ ;;
+ esac
+ return 0
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/atm1 b/etc/rc.d/atm1
new file mode 100644
index 0000000..0272642
--- /dev/null
+++ b/etc/rc.d/atm1
@@ -0,0 +1,144 @@
+#!/bin/sh
+#
+# Copyright (c) 2000 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# PROVIDE: atm1
+# REQUIRE: root
+# BEFORE: network1
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="atm"
+rcvar="atm_enable"
+start_cmd="atm_start"
+stop_cmd=":"
+
+# ATM networking startup script
+#
+# Initial interface configuration.
+# N.B. /usr is not mounted.
+#
+start_cmd()
+{
+ # Locate all probed ATM adapters
+ atmdev=`atm sh stat int | while read dev junk; do
+ case ${dev} in
+ hea[0-9] | hea[0-9][0-9])
+ echo "${dev} "
+ ;;
+ hfa[0-9] | hfa[0-9][0-9])
+ echo "${dev} "
+ ;;
+ *)
+ continue
+ ;;
+ esac
+ done`
+
+ if [ -z "${atmdev}" ]; then
+ echo 'No ATM adapters found'
+ return 0
+ fi
+
+ # Load microcode into FORE adapters (if needed)
+ if [ `expr "${atmdev}" : '.*hfa.*'` -ne 0 ]; then
+ fore_dnld
+ fi
+
+ # Configure physical interfaces
+ ilmid=0
+ for phy in ${atmdev}; do
+ echo -n "Configuring ATM device ${phy}:"
+
+ # Define network interfaces
+ eval netif_args=\$atm_netif_${phy}
+ if [ -n "${netif_args}" ]; then
+ atm set netif ${phy} ${netif_args} || continue
+ else
+ echo ' missing network interface definition'
+ continue
+ fi
+
+ # Override physical MAC address
+ eval macaddr_args=\$atm_macaddr_${phy}
+ if [ -n "${macaddr_args}" ]; then
+ case ${macaddr_args} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ atm set mac ${phy} ${macaddr_args} || continue
+ ;;
+ esac
+ fi
+
+ # Configure signalling manager
+ eval sigmgr_args=\$atm_sigmgr_${phy}
+ if [ -n "${sigmgr_args}" ]; then
+ atm attach ${phy} ${sigmgr_args} || continue
+ else
+ echo ' missing signalling manager definition'
+ continue
+ fi
+
+ # Configure UNI NSAP prefix
+ eval prefix_args=\$atm_prefix_${phy}
+ if [ `expr "${sigmgr_args}" : '[uU][nN][iI].*'` -ne 0 ]; then
+ if [ -z "${prefix_args}" ]; then
+ echo ' missing NSAP prefix for UNI interface'
+ continue
+ fi
+
+ case ${prefix_args} in
+ ILMI)
+ ilmid=1
+ ;;
+ *)
+ atm set prefix ${phy} ${prefix_args} || continue
+ ;;
+ esac
+ fi
+
+ atm_phy="${atm_phy} ${phy}"
+ echo '.'
+ done
+
+ echo -n 'Starting initial ATM daemons:'
+ # Start ILMI daemon (if needed)
+ case ${ilmid} in
+ 1)
+ echo -n ' ilmid'
+ ilmid
+ ;;
+ esac
+
+ echo '.'
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/atm2 b/etc/rc.d/atm2
new file mode 100644
index 0000000..8854605
--- /dev/null
+++ b/etc/rc.d/atm2
@@ -0,0 +1,104 @@
+#!/bin/sh
+#
+# Copyright (c) 2000 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# PROVIDE: atm2
+# REQUIRE: atm1 network1
+# BEFORE: network2
+# KEYWORD: FreeBSD
+
+#
+# Additional ATM interface configuration
+#
+
+. /etc/rc.subr
+
+atm2_start()
+{
+ # Configure network interfaces
+ for phy in ${atm_phy}; do
+ eval netif_args=\$atm_netif_${phy}
+ set -- ${netif_args}
+ netname=$1
+ netcnt=$2
+ netindx=0
+ while [ ${netindx} -lt ${netcnt} ]; do
+ net="${netname}${netindx}"
+ netindx=$((${netindx} + 1))
+ echo -n " ${net}"
+
+ # Configure atmarp server
+ eval atmarp_args=\$atm_arpserver_${net}
+ if [ -n "${atmarp_args}" ]; then
+ atm set arpserver ${net} ${atmarp_args} ||
+ continue
+ fi
+ eval scsparp_args=\$atm_scsparp_${net}
+
+ case ${scsparp_args} in
+ [Yy][Ee][Ss])
+ case ${atmarp_args} in
+ local)
+ ;;
+ *)
+ echo ' local arpserver required for SCSP'
+ continue
+ ;;
+ esac
+
+ atm_atmarpd="${atm_atmarpd} ${net}"
+ atm_scspd=1
+ ;;
+ esac
+ done
+ done
+ echo '.'
+
+ # Define any permanent ARP entries.
+ if [ -n "${atm_arps}" ]; then
+ for i in ${atm_arps}; do
+ eval arp_args=\$atm_arp_${i}
+ atm add arp ${arp_args}
+ done
+ fi
+
+ # XXX - required by atm3.sh. I don't like having one script depend
+ # on variables in another script (especially in a dynamic
+ # ordered system like this), but it's necessary for the moment.
+ #
+ export atm_atmarpd
+ export atm_scspd
+}
+
+load_rc_config "XXX"
+
+case ${atm_enable} in
+[Yy][Ee][Ss])
+ atm2_start
+ ;;
+esac
diff --git a/etc/rc.d/atm2.sh b/etc/rc.d/atm2.sh
new file mode 100644
index 0000000..8854605
--- /dev/null
+++ b/etc/rc.d/atm2.sh
@@ -0,0 +1,104 @@
+#!/bin/sh
+#
+# Copyright (c) 2000 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# PROVIDE: atm2
+# REQUIRE: atm1 network1
+# BEFORE: network2
+# KEYWORD: FreeBSD
+
+#
+# Additional ATM interface configuration
+#
+
+. /etc/rc.subr
+
+atm2_start()
+{
+ # Configure network interfaces
+ for phy in ${atm_phy}; do
+ eval netif_args=\$atm_netif_${phy}
+ set -- ${netif_args}
+ netname=$1
+ netcnt=$2
+ netindx=0
+ while [ ${netindx} -lt ${netcnt} ]; do
+ net="${netname}${netindx}"
+ netindx=$((${netindx} + 1))
+ echo -n " ${net}"
+
+ # Configure atmarp server
+ eval atmarp_args=\$atm_arpserver_${net}
+ if [ -n "${atmarp_args}" ]; then
+ atm set arpserver ${net} ${atmarp_args} ||
+ continue
+ fi
+ eval scsparp_args=\$atm_scsparp_${net}
+
+ case ${scsparp_args} in
+ [Yy][Ee][Ss])
+ case ${atmarp_args} in
+ local)
+ ;;
+ *)
+ echo ' local arpserver required for SCSP'
+ continue
+ ;;
+ esac
+
+ atm_atmarpd="${atm_atmarpd} ${net}"
+ atm_scspd=1
+ ;;
+ esac
+ done
+ done
+ echo '.'
+
+ # Define any permanent ARP entries.
+ if [ -n "${atm_arps}" ]; then
+ for i in ${atm_arps}; do
+ eval arp_args=\$atm_arp_${i}
+ atm add arp ${arp_args}
+ done
+ fi
+
+ # XXX - required by atm3.sh. I don't like having one script depend
+ # on variables in another script (especially in a dynamic
+ # ordered system like this), but it's necessary for the moment.
+ #
+ export atm_atmarpd
+ export atm_scspd
+}
+
+load_rc_config "XXX"
+
+case ${atm_enable} in
+[Yy][Ee][Ss])
+ atm2_start
+ ;;
+esac
diff --git a/etc/rc.d/atm3 b/etc/rc.d/atm3
new file mode 100644
index 0000000..6cbb206
--- /dev/null
+++ b/etc/rc.d/atm3
@@ -0,0 +1,68 @@
+#!/bin/sh
+#
+# Copyright (c) 2000 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# Start ATM daemons
+# XXX - This script uses global variables set by scripts atm1 and atm2.
+# Ideally this shouldn't be the case.
+#
+
+# PROVIDE: atm3
+# REQUIRE: atm2
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+atm3_start()
+{
+ echo -n 'Starting ATM daemons:'
+
+ # Start SCSP daemon (if needed)
+ case ${atm_scspd} in
+ 1)
+ echo -n ' scspd'
+ scspd
+ ;;
+ esac
+
+ # Start ATMARP daemon (if needed)
+ if [ -n "${atm_atmarpd}" ]; then
+ echo -n ' atmarpd'
+ atmarpd ${atm_atmarpd}
+ fi
+ echo '.'
+}
+
+load_rc_config "XXX"
+
+case ${atm_enable} in
+[Yy][Ee][Ss])
+ atm3_start
+ ;;
+esac
diff --git a/etc/rc.d/atm3.sh b/etc/rc.d/atm3.sh
new file mode 100644
index 0000000..6cbb206
--- /dev/null
+++ b/etc/rc.d/atm3.sh
@@ -0,0 +1,68 @@
+#!/bin/sh
+#
+# Copyright (c) 2000 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# Start ATM daemons
+# XXX - This script uses global variables set by scripts atm1 and atm2.
+# Ideally this shouldn't be the case.
+#
+
+# PROVIDE: atm3
+# REQUIRE: atm2
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+atm3_start()
+{
+ echo -n 'Starting ATM daemons:'
+
+ # Start SCSP daemon (if needed)
+ case ${atm_scspd} in
+ 1)
+ echo -n ' scspd'
+ scspd
+ ;;
+ esac
+
+ # Start ATMARP daemon (if needed)
+ if [ -n "${atm_atmarpd}" ]; then
+ echo -n ' atmarpd'
+ atmarpd ${atm_atmarpd}
+ fi
+ echo '.'
+}
+
+load_rc_config "XXX"
+
+case ${atm_enable} in
+[Yy][Ee][Ss])
+ atm3_start
+ ;;
+esac
diff --git a/etc/rc.d/bgfsck b/etc/rc.d/bgfsck
new file mode 100644
index 0000000..f032473
--- /dev/null
+++ b/etc/rc.d/bgfsck
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: bgfsck
+# REQUIRE: cron devfs
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="background-fsck"
+rcvar="background_fsck"
+start_precmd="echo 'Starting background file system checks.'"
+start_cmd="nice -4 fsck -B -p 2>&1 | logger -p daemon.notice &"
+stop_cmd=":"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/bootconf.sh b/etc/rc.d/bootconf.sh
new file mode 100755
index 0000000..1fdc201
--- /dev/null
+++ b/etc/rc.d/bootconf.sh
@@ -0,0 +1,82 @@
+#!/bin/sh
+#
+# $NetBSD: bootconf.sh,v 1.5 2002/03/25 03:22:10 wiz Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: bootconf
+# REQUIRE: mountcritlocal
+
+bootconf_start()
+{
+ # Refer to newbtconf(8) for more information
+ #
+
+ if [ ! -e /etc/etc.current ]; then
+ return 0
+ fi
+ if [ -h /etc/etc.default ]; then
+ def=`ls -ld /etc/etc.default 2>&1`
+ default="${def##*-> etc.}"
+ else
+ default=current
+ fi
+ if [ "$default" = "current" ]; then
+ def=`ls -ld /etc/etc.current 2>&1`
+ default="${def##*-> etc.}"
+ fi
+
+ spc=""
+ for i in /etc/etc.*; do
+ name="${i##/etc/etc.}"
+ case $name in
+ current|default|\*)
+ continue
+ ;;
+ *)
+ if [ "$name" = "$default" ]; then
+ echo -n "${spc}[${name}]"
+ else
+ echo -n "${spc}${name}"
+ fi
+ spc=" "
+ ;;
+ esac
+ done
+ echo
+ master=$$
+ _DUMMY=/etc/passwd
+ conf=${_DUMMY}
+ while [ ! -d /etc/etc.$conf/. ]; do
+ trap "conf=$default; echo; echo Using default of $conf" ALRM
+ echo -n "Which configuration [$default] ? "
+ (sleep 30 && kill -ALRM $master) >/dev/null 2>&1 &
+ read conf
+ trap : ALRM
+ if [ -z $conf ] ; then
+ conf=$default
+ fi
+ if [ ! -d /etc/etc.$conf/. ]; then
+ conf=${_DUMMY}
+ fi
+ done
+
+ case $conf in
+ current|default)
+ ;;
+ *)
+ rm -f /etc/etc.current
+ ln -s /etc/etc.$conf /etc/etc.current
+ ;;
+ esac
+
+ if [ -f /etc/rc.conf ] ; then
+ . /etc/rc.conf
+ fi
+}
+
+case "$1" in
+*start)
+ bootconf_start
+ ;;
+esac
diff --git a/etc/rc.d/bootparams b/etc/rc.d/bootparams
new file mode 100755
index 0000000..3afbd76
--- /dev/null
+++ b/etc/rc.d/bootparams
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+# $NetBSD: bootparams,v 1.6 2002/03/22 04:33:58 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: bootparams
+# REQUIRE: rpcbind DAEMON
+# BEFORE: LOGIN
+
+. /etc/rc.subr
+
+name="bootparamd"
+rcvar=$name
+command="/usr/sbin/rpc.${name}"
+required_files="/etc/bootparams"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/ccd b/etc/rc.d/ccd
new file mode 100755
index 0000000..d967888
--- /dev/null
+++ b/etc/rc.d/ccd
@@ -0,0 +1,25 @@
+#!/bin/sh
+#
+# $NetBSD: ccd,v 1.3 2000/05/13 08:45:06 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: disks
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="ccd"
+start_cmd="ccd_start"
+stop_cmd=":"
+
+ccd_start()
+{
+ if [ -f /etc/ccd.conf ]; then
+ echo "Configuring CCD devices."
+ ccdconfig -C
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/cleanvar b/etc/rc.d/cleanvar
new file mode 100644
index 0000000..5e7331a
--- /dev/null
+++ b/etc/rc.d/cleanvar
@@ -0,0 +1,48 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: cleanvar
+# REQUIRE: adjkerntz mountcritlocal
+# BEFORE: network1
+# KEYWORD: FreeBSD
+
+purgedir()
+{
+ local dir file
+
+ if [ $# -eq 0 ]; then
+ purgedir .
+ else
+ for dir
+ do
+ (
+ cd "$dir" && for file in .* *
+ do
+ [ ."$file" = .. -o ."$file" = ... ] && continue
+ if [ -d "$file" -a ! -L "$file" ]
+ then
+ purgedir "$file"
+ else
+ rm -f -- "$file"
+ fi
+ done
+ )
+ done
+ fi
+}
+
+rm -f /var/run/clean_var /var/spool/lock/clean_var
+if [ -d /var/run -a ! -f /var/run/clean_var ]; then
+ purgedir /var/run
+ # And an initial utmp file
+ (cd /var/run && cp /dev/null utmp && chmod 644 utmp;)
+ >/var/run/clean_var
+fi
+if [ -d /var/spool/lock -a ! -f /var/spool/lock/clean_var ]; then
+ purgedir /var/spool/lock
+ >/var/spool/lock/clean_var
+fi
+rm -rf /var/spool/uucp/.Temp/*
+
diff --git a/etc/rc.d/cleartmp b/etc/rc.d/cleartmp
new file mode 100755
index 0000000..27e40ba
--- /dev/null
+++ b/etc/rc.d/cleartmp
@@ -0,0 +1,46 @@
+#!/bin/sh
+#
+# $NetBSD: cleartmp,v 1.4 2002/03/22 04:33:58 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: cleartmp
+# REQUIRE: mountall
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="cleartmp"
+rcvar=`set_rcvar clear_tmp`
+start_cmd="cleartmp_start"
+stop_cmd=":"
+
+cleartmp_start()
+{
+ echo "Clearing /tmp."
+ #
+ # Prune quickly with one rm, then use find to clean up
+ # /tmp/[lq]* (this is not needed with mfs /tmp, but
+ # doesn't hurt anything).
+ #
+ (cd /tmp && rm -rf [a-km-pr-zA-Z]* &&
+ find -x . ! -name . ! -name lost+found ! -name quota.user \
+ ! -name quota.group -exec rm -rf -- {} \; -type d -prune)
+
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ # Remove X lock files, since they will prevent you from
+ # restarting X
+ #
+ rm -f /tmp/.X*-lock
+ rm -fr /tmp/.X11-unix
+ mkdir -m 1777 /tmp/.X11-unix
+ ;;
+ NetBSD)
+ ;;
+ esac
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/cron b/etc/rc.d/cron
new file mode 100755
index 0000000..6a1e77c
--- /dev/null
+++ b/etc/rc.d/cron
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+# $NetBSD: cron,v 1.5 2000/09/19 13:04:38 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: cron
+# REQUIRE: LOGIN
+# KEYWORD: FreeBSD NetBSD shutdown
+
+. /etc/rc.subr
+
+name="cron"
+rcvar="`set_rcvar`"
+command="/usr/sbin/${name}"
+pidfile="/var/run/${name}.pid"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/devdb b/etc/rc.d/devdb
new file mode 100644
index 0000000..8bd040a
--- /dev/null
+++ b/etc/rc.d/devdb
@@ -0,0 +1,17 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: devdb
+# REQUIRE: syslogd
+# KEYWORD: FreeBSD
+
+# Build device name databases if we are not using DEVFS
+#
+if sysctl vfs.devfs.generation > /dev/null 2>&1 ; then
+ rm -f /var/run/dev.db
+else
+ dev_mkdb
+fi
+
diff --git a/etc/rc.d/devfs b/etc/rc.d/devfs
new file mode 100644
index 0000000..90a80c3
--- /dev/null
+++ b/etc/rc.d/devfs
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: devfs
+# REQUIRE: LOGIN
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="devfs"
+
+load_rc_config $name
+
+# Setup DEVFS, ie permissions, links etc.
+#
+ln -fs /dev/ttyv0 /dev/vga
+
diff --git a/etc/rc.d/dhclient b/etc/rc.d/dhclient
new file mode 100755
index 0000000..cbdc8b0
--- /dev/null
+++ b/etc/rc.d/dhclient
@@ -0,0 +1,23 @@
+#!/bin/sh
+#
+# $NetBSD: dhclient,v 1.8 2002/03/22 04:33:58 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: dhclient
+# REQUIRE: network mountcritlocal
+# BEFORE: NETWORKING
+#
+# Note that there no syslog logging of dhclient messages at boot because
+# dhclient needs to start before services that syslog depends upon do.
+#
+
+. /etc/rc.subr
+
+name="dhclient"
+rcvar=$name
+command="/sbin/${name}"
+pidfile="/var/run/${name}.pid"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/dhcpd b/etc/rc.d/dhcpd
new file mode 100755
index 0000000..55b1f4a
--- /dev/null
+++ b/etc/rc.d/dhcpd
@@ -0,0 +1,20 @@
+#!/bin/sh
+#
+# $NetBSD: dhcpd,v 1.5 2002/03/22 04:33:58 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: dhcpd
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+
+. /etc/rc.subr
+
+name="dhcpd"
+rcvar=$name
+command="/usr/sbin/${name}"
+pidfile="/var/run/${name}.pid"
+required_files="/etc/${name}.conf /var/db/${name}.leases"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/dhcrelay b/etc/rc.d/dhcrelay
new file mode 100755
index 0000000..d78afa6
--- /dev/null
+++ b/etc/rc.d/dhcrelay
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+# $NetBSD: dhcrelay,v 1.5 2002/03/22 04:33:58 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: dhcrelay
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+
+. /etc/rc.subr
+
+name="dhcrelay"
+rcvar=$name
+command="/usr/sbin/${name}"
+pidfile="/var/run/${name}.pid"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/diskless b/etc/rc.d/diskless
new file mode 100644
index 0000000..c5cffb0
--- /dev/null
+++ b/etc/rc.d/diskless
@@ -0,0 +1,122 @@
+#!/bin/sh
+#
+# Copyright (c) 1999 Matt Dillon
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# PROVIDE: diskless
+# REQUIRE: initdiskless mountcritlocal
+# BEFORE: addswap random
+# KEYWORD: FreeBSD
+
+dlv=`/sbin/sysctl -n vfs.nfs.diskless_valid 2> /dev/null`
+[ ${dlv:=0} -eq 0 ] && exit 0
+
+name="diskless2"
+
+# Provide a function for normalizing the mounting of memory
+# filesystems. This should allow the rest of the code here to remain
+# as close as possible between 5-current and 4-stable.
+# $1 = size
+# $2 = mount point
+# $3 = md unit number (ignored in pre 5.0 systems)
+# $4 = (optional) bytes-per-inode
+mount_md()
+{
+ if [ -n "$4" ]; then
+ bpi="-i $4"
+ fi
+ /sbin/mdconfig -a -t malloc -s $1 -u $3
+ /sbin/disklabel -r -w md$3 auto
+ /sbin/newfs $bpi /dev/md$3c
+ /sbin/mount /dev/md$3c $2
+}
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/rc.subr ]; then
+ . /etc/rc.subr
+ load_rc_config $name
+elif [ -r /etc/defaults/rc.conf ]; then
+ . /etc/defaults/rc.conf
+ source_rc_confs
+elif [ -r /etc/rc.conf ]; then
+ . /etc/rc.conf
+fi
+
+echo "+++ mount_md of /var"
+mount_md ${varsize:=32m} /var 1
+
+echo "+++ populate /var using /etc/mtree/BSD.var.dist"
+/usr/sbin/mtree -deU -f /etc/mtree/BSD.var.dist -p /var
+case ${sendmail_enable} in
+[Nn][Oo][Nn][Ee])
+ ;;
+*)
+ /usr/sbin/mtree -deU -f /etc/mtree/BSD.sendmail.dist -p /
+ ;;
+esac
+
+echo "+++ create log files based on the contents of /etc/newsyslog.conf"
+LOGFILES=`/usr/bin/awk '$1 != "#" { printf "%s ", $1 } ' /etc/newsyslog.conf`
+if [ -n "$LOGFILES" ]; then
+ /usr/bin/touch $LOGFILES
+fi
+
+echo "+++ create lastlog"
+/usr/bin/touch /var/log/lastlog
+
+mount -a # chown and chgrp are in /usr
+
+# Since we are starting with a very fresh /etc on an MFS:
+if [ -d /conf/default/etc ]; then
+ newaliases
+fi
+
+#
+# XXX make sure to create one dir for each printer as requested by lpd
+#
+
+# If /tmp is a symlink, assume it points to somewhere writable, like
+# /var/tmp, otherwise, use a small memory filesystem for /tmp.
+#
+# XXX: mtree runs too early to create any directories needed in /tmp,
+# so if /var/tmp == /tmp, then you don't get a vi.recover.
+#
+if [ ! -h /tmp ]; then
+ mount_md ${tmpsize:=64m} /tmp 2
+ chmod 01777 /tmp
+fi
+
+if sysctl vfs.devfs.generation > /dev/null 2>&1 ; then
+ # we have DEVFS, no worries...
+ true
+else
+ # extract a list of device entries, then copy them to a writable fs
+ (cd /; find -x dev | cpio -o -H newc) > /tmp/dev.tmp
+ mount_md 4096 /dev 3 512
+ (cd /; cpio -i -H newc -d < /tmp/dev.tmp)
+fi
diff --git a/etc/rc.d/dmesg b/etc/rc.d/dmesg
new file mode 100755
index 0000000..bea74c2
--- /dev/null
+++ b/etc/rc.d/dmesg
@@ -0,0 +1,27 @@
+#!/bin/sh
+#
+# $NetBSD: dmesg,v 1.8 2002/03/22 04:33:58 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: dmesg
+# REQUIRE: mountcritremote
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD Daemon
+
+. /etc/rc.subr
+
+name="dmesg"
+rcvar=`set_rcvar`
+dmesg_file="/var/run/dmesg.boot"
+start_cmd="do_dmesg"
+stop_cmd=":"
+
+do_dmesg()
+{
+ rm -f ${dmesg_file}
+ ( umask 022 ; /sbin/dmesg $rc_flags > ${dmesg_file} )
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/downinterfaces b/etc/rc.d/downinterfaces
new file mode 100644
index 0000000..6a5c943
--- /dev/null
+++ b/etc/rc.d/downinterfaces
@@ -0,0 +1,27 @@
+#!/bin/sh
+#
+# $NetBSD: downinterfaces,v 1.2 2001/09/04 20:40:40 martin Exp $
+#
+
+# PROVIDE: downinterfaces
+# KEYWORD: shutdown
+
+if [ "x$1" != "xstop" ]; then exit 0; fi
+
+. /etc/rc.conf
+
+tmp=`ifconfig -lu`
+iflist=""
+for int in $tmp; do
+ case $int in
+ pppoe*) iflist="$iflist $int"
+ ;;
+ esac
+done
+iflist="$iflist $force_down_interfaces"
+if [ "$iflist" = "" ] || [ "$iflist" = " " ]; then exit 0; fi
+
+echo "Shutting down interfaces:$iflist"
+for int in $iflist; do
+ ifconfig $int down
+done
diff --git a/etc/rc.d/dumpon b/etc/rc.d/dumpon
new file mode 100644
index 0000000..c65f63e
--- /dev/null
+++ b/etc/rc.d/dumpon
@@ -0,0 +1,32 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: dumpon
+# REQUIRE: initrandom
+# BEFORE: disks savecore
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="dumpon"
+start_cmd="dumpon_start"
+stop_cmd=":"
+
+dumpon_start()
+{
+ # Enable dumpdev so that savecore can see it. Enable it
+ # early so a crash early in the boot process can be caught.
+ #
+ case ${dumpdev} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ /sbin/dumpon -v ${dumpdev}
+ ;;
+ esac
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/fsck b/etc/rc.d/fsck
new file mode 100755
index 0000000..a57e15c
--- /dev/null
+++ b/etc/rc.d/fsck
@@ -0,0 +1,103 @@
+#!/bin/sh
+#
+# $NetBSD: fsck,v 1.2 2001/06/18 06:42:35 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: fsck
+# REQUIRE: localswap
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="fsck"
+start_cmd="fsck_start"
+stop_cmd=":"
+
+stop_boot()
+{
+ # Terminate the process (which may include the parent /etc/rc)
+ # if booting directly to multiuser mode.
+ #
+ if [ "$autoboot" = yes ]; then
+ kill -TERM $$
+ fi
+ exit 1
+}
+
+fsck_start()
+{
+ if [ "$autoboot" = no ]; then
+ echo "Fast boot: skipping disk checks."
+ elif [ "$autoboot" = yes ]; then
+ # During fsck ignore SIGQUIT
+ trap : 3
+
+ echo "Starting file system checks:"
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ if checkyesno background_fsck; then
+ fsck -F -p
+ else
+ fsck -p
+ fi
+ ;;
+ NetBSD)
+ fsck -p
+ ;;
+ esac
+
+ case $? in
+ 0)
+ ;;
+ 2)
+ stop_boot
+ ;;
+ 4)
+ echo "Rebooting..."
+ reboot
+ echo "Reboot failed; help!"
+ stop_boot
+ ;;
+ 8)
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ if checkyesno fsck_y_enable; then
+ echo "File system preen failed, trying fsck -y."
+ fsck -y
+ case $? in
+ 0)
+ ;;
+ *)
+ echo "Automatic file system check failed; help!"
+ stop_boot
+ ;;
+ esac
+ else
+ echo "Automatic file system check failed; help!"
+ stop_boot
+ fi
+ ;;
+ NetBSD)
+ echo "Automatic file system check failed; help!"
+ stop_boot
+ ;;
+ esac
+ ;;
+ 12)
+ echo "Boot interrupted."
+ stop_boot
+ ;;
+ 130)
+ stop_boot
+ ;;
+ *)
+ echo "Unknown error; help!"
+ stop_boot
+ ;;
+ esac
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/gated b/etc/rc.d/gated
new file mode 100755
index 0000000..7a11e8c
--- /dev/null
+++ b/etc/rc.d/gated
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+# $NetBSD: gated,v 1.3 2000/05/13 08:45:06 lukem Exp $
+#
+
+# PROVIDE: gated
+# REQUIRE: DAEMON
+
+. /etc/rc.subr
+
+name="gated"
+rcvar=$name
+command="/usr/sbin/${name}"
+pidfile="/var/run/${name}.pid"
+required_files="/etc/${name}.conf"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/ifwatchd b/etc/rc.d/ifwatchd
new file mode 100644
index 0000000..ec23ce2
--- /dev/null
+++ b/etc/rc.d/ifwatchd
@@ -0,0 +1,17 @@
+#!/bin/sh
+#
+# $NetBSD$
+#
+
+# PROVIDE: ifwatchd
+# REQUIRE: mountcritremote network
+
+. /etc/rc.subr
+
+name="ifwatchd"
+rcvar=$name
+command="/usr/sbin/${name}"
+
+load_rc_config $name
+run_rc_command "$1"
+
diff --git a/etc/rc.d/inetd b/etc/rc.d/inetd
new file mode 100755
index 0000000..08b3438
--- /dev/null
+++ b/etc/rc.d/inetd
@@ -0,0 +1,21 @@
+#!/bin/sh
+#
+# $NetBSD: inetd,v 1.6 2000/09/19 13:04:38 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: inetd
+# REQUIRE: DAEMON LOGIN
+# KEYWORD: FreeBSD NetBSD shutdown
+
+. /etc/rc.subr
+
+name="inetd"
+rcvar=`set_rcvar`
+command="/usr/sbin/${name}"
+pidfile="/var/run/${name}.pid"
+required_files="/etc/${name}.conf"
+extra_commands="reload"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/initdiskless b/etc/rc.d/initdiskless
new file mode 100644
index 0000000..6e47bb9
--- /dev/null
+++ b/etc/rc.d/initdiskless
@@ -0,0 +1,143 @@
+#!/bin/sh
+#
+# Copyright (c) 1999 Matt Dillion
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# PROVIDE: initdiskless
+# KEYWORD: FreeBSD
+
+dlv=`/sbin/sysctl -n vfs.nfs.diskless_valid 2> /dev/null`
+[ ${dlv:=0} -eq 0 ] && exit 0
+
+#
+# BOOTP has mounted / for us. Assume a read-only mount. We must then
+# - figure out our IP by querying the interface
+# - mount /etc as an MFS
+# - populate /etc from /conf/default version
+# - override files in /etc with files from /conf/*/etc where
+# '*' is default, netmask of client, ip-address of client
+#
+# The operator is in charge of setting /conf/*/etc/* things as appropriate.
+# Typically rc.conf and fstab need to be changed, but possibly also other
+# files such as inetd.conf etc.
+
+# chkerr:
+#
+# Routine to check for error
+#
+# checks error code and drops into shell on failure.
+# if shell exits, terminates script as well as /etc/rc.
+#
+chkerr()
+{
+ case $1 in
+ 0)
+ ;;
+ *)
+ echo "$2 failed: dropping into /bin/sh"
+ /bin/sh
+ # RESUME
+ ;;
+ esac
+}
+
+mount_md()
+{
+ /sbin/mdconfig -a -t malloc -s $1 -u $3
+ /sbin/disklabel -r -w md$3 auto
+ /sbin/newfs -i 4096 /dev/md$3c
+ /sbin/mount /dev/md$3c $2
+}
+
+# DEBUGGING
+#
+# set -v
+
+# Figure out our interface and IP.
+#
+bootp_ifc=""
+bootp_ipa=""
+bootp_ipbca=""
+iflist=`ifconfig -l`
+for i in ${iflist} ; do
+ set `ifconfig ${i}`
+ while [ $# -ge 1 ] ; do
+ if [ "${bootp_ifc}" = "" -a "$1" = "inet" ] ; then
+ bootp_ifc=${i} ; bootp_ipa=${2} ; shift
+ fi
+ if [ "${bootp_ipbca}" = "" -a "$1" = "broadcast" ] ; then
+ bootp_ipbca=$2; shift
+ fi
+ shift
+ done
+ if [ "${bootp_ifc}" != "" ] ; then
+ break
+ fi
+done
+echo "Interface ${bootp_ifc} IP-Address ${bootp_ipa} Broadcast ${bootp_ipbca}"
+
+if [ -z "`hostname -s`" ]; then
+ hostname=`kenv dhcp.host-name`
+ hostname $hostname
+ echo "Hostname is $hostname"
+fi
+
+if [ -d /conf/default/etc ]; then
+ mount_md 4096 /etc 0
+ chkerr $? "MFS mount on /etc"
+ /bin/chmod 755 /etc
+
+ /bin/cp -Rp /conf/default/etc/* /etc
+ chkerr $? "cp /conf/default/etc to /etc MFS"
+fi
+
+# Allow for override files to replace files in /etc. Use /conf/*/etc to find
+# the override files. First choice is default files that # always override,
+# then files that from the directory that matches the client's broadcast
+# address, finally followed by overrides that match the client's IP address.
+#
+# This way we have some flexibility to handle clusters of machines on
+# separate subnets.
+
+for i in ${bootp_ipbca} ${bootp_ipa} ${hostname} ; do
+ if [ -d /conf/${i}/etc ]; then
+ cp -Rp /conf/${i}/etc/* /etc
+ fi
+done
+
+#
+# if the info is available via dhcp/kenv
+# build the resolv.conf
+#
+if [ ! -e /etc/resolv.conf ]; then
+ echo domain `kenv dhcp.domain-name` > /etc/resolv.conf
+
+ set `kenv dhcp.domain-name-servers`
+ for ns in `IFS=','; echo $*`; do
+ echo nameserver $ns >> /etc/resolv.conf;
+ done
+fi
diff --git a/etc/rc.d/initrandom b/etc/rc.d/initrandom
new file mode 100644
index 0000000..318d83f
--- /dev/null
+++ b/etc/rc.d/initrandom
@@ -0,0 +1,73 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: initrandom
+# REQUIRE: initdiskless
+# BEFORE: disks
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="initrandom"
+start_cmd="initrandom_start"
+stop_cmd=":"
+
+feed_dev_random()
+{
+ if [ -f "${1}" -a -r "${1}" -a -s "${1}" ]; then
+ cat "${1}" | dd of=/dev/random bs=8k 2>/dev/null
+ fi
+}
+
+initrandom_start()
+{
+ echo -n 'Entropy harvesting:'
+
+ if checkyesno harvest_interrupt; then
+ if [ -w /dev/random ]; then
+ ${SYSCTL_W} kern.random.sys.harvest.interrupt=1 >/dev/null
+ echo -n ' interrupts'
+ fi
+ fi
+
+ if checkyesno harvest_ethernet; then
+ if [ -w /dev/random ]; then
+ ${SYSCTL_W} kern.random.sys.harvest.ethernet=1 >/dev/null
+ echo -n ' ethernet'
+ fi
+ fi
+
+ if checkyesno harvest_p_to_p; then
+ if [ -w /dev/random ]; then
+ ${SYSCTL_W} kern.random.sys.harvest.point_to_point=1 >/dev/null
+ echo -n ' point_to_point'
+ fi
+ fi
+
+ echo '.'
+
+ # First pass at reseeding /dev/random.
+ #
+ case ${entropy_file} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ if [ -w /dev/random ]; then
+ feed_dev_random "${entropy_file}"
+ fi
+ ;;
+ esac
+
+ # XXX temporary until we can get the entropy
+ # harvesting rate up
+ # Entropy below is not great,
+ # but better than nothing.
+ ( ps -fauxww; sysctl -a; date; df -ib; dmesg; ps -fauxww; ) \
+ | dd of=/dev/random bs=8k 2>/dev/null
+ cat /bin/ls | dd of=/dev/random bs=8k 2>/dev/null
+}
+
+load_rc_config random
+run_rc_command "$1"
diff --git a/etc/rc.d/ip6fw b/etc/rc.d/ip6fw
new file mode 100644
index 0000000..4f37e26
--- /dev/null
+++ b/etc/rc.d/ip6fw
@@ -0,0 +1,58 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: ip6fw
+# REQUIRE: network2
+# BEFORE: network_ipv6
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="ip6fw"
+rcvar=`set_rcvar ipv6_firewall`
+start_cmd="ip6fw_start"
+start_precmd="ip6fw_prestart"
+stop_cmd="${SYSCTL_W} net.inet6.ip6.fw.enable=0"
+
+ip6fw_prestart()
+{
+ # Load IPv6 firewall module, if not already loaded
+ if ! ${SYSCTL} net.inet6.ip6.fw.enable > /dev/null 2>&1; then
+ kldload ip6fw && {
+ debug 'Kernel IPv6 firewall module loaded.'
+ return 0
+ }
+ warn 'IPv6 firewall kernel module failed to load.'
+ return 1
+ fi
+}
+
+ip6fw_start()
+{
+ # Specify default rules file if none provided
+ if [ -z "${ipv6_firewall_script}" ]; then
+ ipv6_firewall_script=/etc/rc.firewall6
+ fi
+
+ # Load rules
+ #
+ if [ -r "${ipv6_firewall_script}" ]; then
+ . "${ipv6_firewall_script}"
+ echo 'IPv6 Firewall rules loaded.'
+ elif [ "`ip6fw l 65535`" = "65535 deny ipv6 from any to any" ]; then
+ warn 'IPv6 firewall rules have not been loaded. Default' \
+ ' to DENY all access.'
+ fi
+
+ # Enable firewall logging
+ #
+ if checkyesno ipv6_firewall_logging ; then
+ echo 'IPv6 Firewall logging=YES'
+ sysctl net.inet6.ip6.fw.verbose=1 >/dev/null
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/ipfilter b/etc/rc.d/ipfilter
new file mode 100755
index 0000000..2962551
--- /dev/null
+++ b/etc/rc.d/ipfilter
@@ -0,0 +1,153 @@
+#!/bin/sh
+#
+# $NetBSD: ipfilter,v 1.10 2001/02/28 17:03:50 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: ipfilter
+# REQUIRE: root beforenetlkm mountcritlocal tty
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="ipfilter"
+rcvar=`set_rcvar`
+load_rc_config $name
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ stop_precmd="test -f ${ipfilter_rules}"
+ ;;
+NetBSD)
+ stop_precmd="test -f /etc/ipf.conf -o -f /etc/ipf6.conf"
+ ;;
+esac
+
+start_precmd="ipfilter_prestart"
+start_cmd="ipfilter_start"
+stop_cmd="ipfilter_stop"
+reload_precmd="$stop_precmd"
+reload_cmd="ipfilter_reload"
+resync_precmd="$stop_precmd"
+resync_cmd="ipfilter_resync"
+status_precmd="$stop_precmd"
+status_cmd="ipfilter_status"
+extra_commands="reload resync status"
+
+ipfilter_prestart()
+{
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ # load ipfilter kernel module if needed
+ if ! sysctl net.inet.ipf.fr_pass > /dev/null 2>&1; then
+ if kldload ipl ; then
+ echo 'IP-filter module loaded.'
+ else
+ warn 'IP-filter module failed to load.'
+ return 1
+ fi
+ fi
+
+ # check for ipfilter rules
+ if [ ! -r "${ipfilter_rules}" ]; then
+ warn 'IP-filter: NO IPF RULES'
+ return 1
+ fi
+ ;;
+NetBSD)
+ if [ ! -f /etc/ipf.conf ] && [ ! -f /etc/ipf6.conf ]; then
+ warn "/etc/ipf*.conf not readable; ipfilter start aborted."
+ #
+ # If booting directly to multiuser, send SIGTERM to
+ # the parent (/etc/rc) to abort the boot
+ #
+ if [ "$autoboot" = yes ]; then
+ echo "ERROR: ABORTING BOOT (sending SIGTERM to parent)!"
+ kill -TERM $$
+ exit 1
+ fi
+ return 1
+ fi
+ ;;
+esac
+ return 0
+}
+
+ipfilter_start()
+{
+ echo "Enabling ipfilter."
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ ${ipfilter_program:-/sbin/ipf} -Fa -f \
+ "${ipfilter_rules}" ${ipfilter_flags}
+ ;;
+ NetBSD)
+ /sbin/ipf -E -Fa
+ if [ -f /etc/ipf.conf ]; then
+ /sbin/ipf -f /etc/ipf.conf
+ fi
+ if [ -f /etc/ipf6.conf ]; then
+ /sbin/ipf -6 -f /etc/ipf6.conf
+ fi
+ ;;
+ esac
+}
+
+ipfilter_stop()
+{
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ echo "Saving firewall state tables"
+ ${ipfs_program:-/sbin/ipfs} -W ${ipfs_flags}
+ ;;
+ NetBSD)
+ ;;
+ esac
+ # XXX - The following command is not effective for 'lkm's
+ echo "Disabling ipfilter."
+ /sbin/ipf -D
+}
+
+ipfilter_reload()
+{
+ echo "Reloading ipfilter rules."
+
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ ${ipfilter_program:-/sbin/ipf} -I -Fa -f \
+ "${ipfilter_rules}" ${ipfilter_flags}
+ ;;
+ NetBSD)
+ /sbin/ipf -I -Fa
+ if [ -f /etc/ipf.conf ] && ! /sbin/ipf -I -f /etc/ipf.conf; then
+ err 1 "reload of ipf.conf failed; not swapping to" \
+ " new ruleset."
+ fi
+ if [ -f /etc/ipf6.conf ] && \
+ ! /sbin/ipf -I -6 -f /etc/ipf6.conf; then
+ err 1 "reload of ipf6.conf failed; not swapping to" \
+ " new ruleset."
+ fi
+ /sbin/ipf -s
+ ;;
+ esac
+
+}
+
+ipfilter_resync()
+{
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ # Don't resync if ipfilter is not loaded
+ [ sysctl net.inet.ipf.fr_pass > /dev/null 2>&1 ] && return
+ ;;
+ esac
+ ${ipfilter_program:-/sbin/ipf} -y ${ipfilter_flags}
+}
+
+ipfilter_status()
+{
+ ${ipfilter_program:-/sbin/ipf} -V
+}
+
+run_rc_command "$1"
diff --git a/etc/rc.d/ipfs b/etc/rc.d/ipfs
new file mode 100755
index 0000000..0abdba0
--- /dev/null
+++ b/etc/rc.d/ipfs
@@ -0,0 +1,36 @@
+#!/bin/sh
+#
+# $NetBSD: ipfs,v 1.3 2002/02/11 13:55:42 lukem Exp $
+#
+
+# PROVIDE: ipfs
+# REQUIRE: ipnat mountcritremote
+# KEYWORD: shutdown
+
+. /etc/rc.subr
+
+name="ipfs"
+rcvar=$name
+start_cmd="ipfs_start"
+stop_cmd="ipfs_stop"
+
+ipfs_start()
+{
+ if [ -r /var/db/ipf/ipstate.ipf -a -r /var/db/ipf/ipnat.ipf ]; then
+ /usr/sbin/ipfs -R ${rc_flags}
+ rm -f /var/db/ipf/ipstate.ipf /var/db/ipf/ipnat.ipf
+ fi
+}
+
+ipfs_stop()
+{
+ if [ ! -d /var/db/ipf ]; then
+ mkdir /var/db/ipf
+ chmod 700 /var/db/ipf
+ chown root:wheel /var/db/ipf
+ fi
+ /usr/sbin/ipfs -W ${rc_flags}
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/ipfw b/etc/rc.d/ipfw
new file mode 100644
index 0000000..92c88e9
--- /dev/null
+++ b/etc/rc.d/ipfw
@@ -0,0 +1,70 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: ipfw
+# REQUIRE: ppp-user
+# BEFORE: NETWORKING
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="ipfw"
+rcvar="firewall_enable"
+start_cmd="ipfw_start"
+start_precmd="ipfw_precmd"
+stop_cmd="${SYSCTL_W} net.inet.ip.fw.enable=0"
+
+ipfw_precmd()
+{
+ if ! ${SYSCTL} net.inet.ip.fw.enable > /dev/null 2>&1 ; then
+ if ! kldload ipfw ; then
+ warn unable to load firewall module.
+ return 1
+ fi
+ fi
+
+ return 0
+}
+
+ipfw_start()
+{
+ # set the firewall rules script if none was specified
+ [ -z "${firewall_script}" ] && firewall_script=/etc/rc.firewall
+
+ if [ -r "${firewall_script}" ]; then
+ . "${firewall_script}"
+ echo -n 'Firewall rules loaded, starting divert daemons:'
+
+ # Network Address Translation daemon
+ #
+ if checkyesno natd_enable ; then
+ if [ -n "${natd_interface}" ]; then
+ if echo ${natd_interface} | \
+ grep -q -E '^[0-9]+(\.[0-9]+){0,3}$'; then
+ natd_flags="$natd_flags -a ${natd_interface}"
+ else
+ natd_flags="$natd_flags -n ${natd_interface}"
+ fi
+ echo -n ' natd'
+ ${natd_program:-/sbin/natd} ${natd_flags} ${natd_ifarg}
+ fi
+ fi
+ elif [ "`ipfw l 65535`" = "65535 deny ip from any to any" ]; then
+ echo 'Warning: kernel has firewall functionality, but' \
+ ' firewall rules are not enabled.'
+ echo ' All ip services are disabled.'
+ fi
+ echo '.'
+
+ # Firewall logging
+ #
+ ! checkyesno firewall_logging && return 0
+
+ echo 'Firewall logging=YES'
+ sysctl net.inet.ip.fw.verbose=1 >/dev/null
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/ipmon b/etc/rc.d/ipmon
new file mode 100755
index 0000000..52e8400
--- /dev/null
+++ b/etc/rc.d/ipmon
@@ -0,0 +1,37 @@
+#!/bin/sh
+#
+# $NetBSD: ipmon,v 2002/04/18 05:02:01 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: ipmon
+# REQUIRE: syslogd
+# BEFORE: SERVERS
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="ipmon"
+rcvar=`set_rcvar`
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ command="/sbin/ipmon"
+ start_precmd="ipmon_precmd"
+ ;;
+NetBSD)
+ command="/usr/sbin/${name}"
+ command_args="-D"
+esac
+
+ipmon_precmd()
+{
+ # Make sure ipfilter is loaded before continuing
+ if ! sysctl net.inet.ipf.fr_pass >/dev/null 2>&1 ; then
+ return 1
+ fi
+ return 0
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/ipnat b/etc/rc.d/ipnat
new file mode 100755
index 0000000..6d4dd3a
--- /dev/null
+++ b/etc/rc.d/ipnat
@@ -0,0 +1,85 @@
+#!/bin/sh
+#
+# $NetBSD: ipnat,v 1.6 2000/09/19 13:04:38 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: ipnat
+# REQUIRE: ipfilter mountcritremote
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="ipnat"
+rcvar=`set_rcvar`
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ IPNATDIR="/sbin"
+ start_precmd="ipnat_precmd"
+ reload_cmd="ipnat_start"
+ ;;
+NetBSD)
+ IPNATDIR="/usr/sbin"
+ config="/etc/ipnat.conf"
+ reload_cmd="/usr/sbin/ipnat -F -C -f ${config}"
+ start_precmd=
+ ;;
+esac
+
+start_cmd="ipnat_start"
+stop_cmd="${ipnat_program:-${IPNATDIR}/${name}} -F -C"
+extra_commands="reload"
+
+ipnat_precmd()
+{
+ # Make sure ipfilter is loaded before continuing
+ if ! ${SYSCTL} net.inet.ipf.fr_pass >/dev/null 2>&1 ; then
+ err 'ipnat requires ipfilter be loaded'
+ return 1
+ fi
+ return 0
+}
+
+ipnat_start()
+{
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ echo -n 'Installing NAT rules ... '
+ if [ -r "${ipnat_rules}" ]; then
+ ${ipnat_program:-/sbin/ipnat} -CF -f \
+ "${ipnat_rules}" ${ipnat_flags}
+ else
+ echo -n ' NO IPNAT RULES'
+ fi
+ echo '.'
+
+ # restore filter/NAT state tables after loading the rules
+ if checkyesno ipfs_enable ; then
+ if [ -r "/var/db/ipf/ipstate.ipf" ]; then
+ echo -n ' ipfs'
+ ${ipfs_program:-/sbin/ipfs} -R ${ipfs_flags}
+ # remove files to avoid reloading old state
+ # after an ungraceful shutdown
+ rm -f /var/db/ipf/ipstate.ipf
+ rm -f /var/db/ipf/ipnat.ipf
+ fi
+ fi
+ ;;
+ NetBSD)
+ if [ ! -f ${config} ]; then
+ return 0
+ fi
+ if ! checkyesno ipfilter || [ ! -f /etc/ipf.conf ]; then
+ echo "Enabling ipfilter for NAT."
+ /sbin/ipf -E -Fa
+ fi
+ echo -n "Installing NAT rules ... "
+ /usr/sbin/ipnat -F -f ${config}
+ ;;
+ esac
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/ipsec b/etc/rc.d/ipsec
new file mode 100755
index 0000000..fe8eb3a
--- /dev/null
+++ b/etc/rc.d/ipsec
@@ -0,0 +1,81 @@
+#!/bin/sh
+#
+# $NetBSD: ipsec,v 1.7 2002/03/22 04:33:58 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: ipsec
+# REQUIRE: root beforenetlkm mountcritlocal tty
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD NetBSD
+
+# it does not really require beforenetlkm.
+
+. /etc/rc.subr
+
+name="ipsec"
+rcvar=`set_rcvar`
+# This will be overiden from rc.conf on FreeBSD.
+ipsec_file="/etc/ipsec.conf"
+start_precmd="ipsec_prestart"
+start_cmd="ipsec_start"
+stop_precmd="test -f /etc/ipsec.conf"
+stop_cmd="ipsec_stop"
+reload_cmd="ipsec_reload"
+extra_commands="reload"
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ ipsec_program="/usr/sbin/setkey"
+ ;;
+NetBSD)
+ ipsec_program="/sbin/setkey"
+ ;;
+esac
+
+ipsec_prestart()
+{
+ if [ ! -f "$ipsec_file" ]; then
+ warn "$ipsec_file not readable; ipsec start aborted."
+ #
+ # If booting directly to multiuser, send SIGTERM to
+ # the parent (/etc/rc) to abort the boot
+ #
+ if [ "$autoboot" = yes ]; then
+ echo "ERROR: ABORTING BOOT (sending SIGTERM to parent)!"
+ kill -TERM $$
+ exit 1
+ fi
+ return 1
+ fi
+ return 0
+}
+
+ipsec_start()
+{
+ echo "Installing ipsec manual keys/policies."
+ ${ipsec_program} -f $ipsec_file
+}
+
+ipsec_stop()
+{
+ echo "Clearing ipsec manual keys/policies."
+
+ # still not 100% sure if we would like to do this.
+ # it is very questionable to do this during shutdown session, since
+ # it can hang any of remaining IPv4/v6 session.
+ #
+ ${ipsec_program} -F
+ ${ipsec_program} -FP
+}
+
+ipsec_reload()
+{
+ echo "Reloading ipsec manual keys/policies."
+ ${ipsec_program} -F
+ ${ipsec_program} -FP
+ ${ipsec_program} -f "$ipsec_file"
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/ipxrouted b/etc/rc.d/ipxrouted
new file mode 100644
index 0000000..28691e3
--- /dev/null
+++ b/etc/rc.d/ipxrouted
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: ipxrouted
+# REQUIRE: SERVERS
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="ipxrouted"
+rcvar=`set_rcvar`
+command="/usr/sbin/IPXrouted"
+command_args="> /dev/null 2>&1"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/isdnd b/etc/rc.d/isdnd
new file mode 100644
index 0000000..4983256
--- /dev/null
+++ b/etc/rc.d/isdnd
@@ -0,0 +1,76 @@
+#!/bin/sh
+#
+# $NetBSD: isdnd,v 1.9 2002/04/10 23:37:13 martin Exp $
+# $FreeBSD$
+#
+# Mostly based on original script (/etc/rc.isdn) written by Hellmuth Michaelis
+#
+
+# PROVIDE: isdnd
+# REQUIRE: NETWORKING syslogd mountcritremote
+# BEFORE: SERVERS
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="isdnd"
+rcvar=`set_rcvar isdn`
+pidfile="/var/run/${name}.pid"
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ start_cmd="isdnd_start"
+ ;;
+NetBSD)
+ command="/usr/sbin/${name}"
+ required_files="/etc/isdn/${name}.rc"
+ ;;
+esac
+
+isdnd_start()
+{
+ echo -n 'ISDN subsystem setup:'
+
+ # Check for pcvt driver (VT100/VT220 emulator)
+ #
+ if [ -x /usr/sbin/ispcvt ]; then
+ if /usr/sbin/ispcvt; then
+ # No vidcontrol if we are using pcvt
+ #
+ isdn_screenflags=NO
+ fi
+ fi
+
+ # Start isdnd
+ #
+ echo -n ' isdnd'
+ case ${isdn_fsdev} in
+ [Nn][Oo] | '')
+ /usr/sbin/isdnd ${isdn_flags}
+ ;;
+ *)
+ # Change vidmode of ${isdn_fsdev}
+ #
+ case ${isdn_screenflags} in
+ [Nn][Oo])
+ ;;
+ *)
+ /usr/sbin/vidcontrol < ${isdn_fsdev} > ${isdn_fsdev} 2>&1 ${isdn_screenflags}
+ ;;
+ esac
+
+ /usr/sbin/isdnd ${isdn_flags} -f -r ${isdn_fsdev} -t ${isdn_ttype}
+ ;;
+ esac
+
+ # Start isdntrace
+ #
+ if checkyesno isdn_trace ; then
+ echo -n ' isdntrace'
+ nohup /usr/sbin/isdntrace ${isdn_traceflags} >/dev/null 2>&1 &
+ echo '.'
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/kadmind b/etc/rc.d/kadmind
new file mode 100644
index 0000000..c6001c6
--- /dev/null
+++ b/etc/rc.d/kadmind
@@ -0,0 +1,30 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: kadmin
+# REQUIRE: kerberos
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="kadmindIV"
+load_rc_config $name
+rcvar=`set_rcvar kadmind4_server`
+checkyesno kerberos_stash && stash='-n' || stash=
+start_cmd="( sleep 20; ${kadmind4_server} ${stash} > /dev/null 2>&1 & ) &"
+required_vars="kerberos4_server_enable"
+
+run_rc_command "$1"
+
+name="kadmind5"
+load_rc_config $name
+rcvar="kadmind5_server_enable"
+unset start_cmd
+command="${kadmind5_server}"
+command_args="&"
+required_vars="kerberos5_server_enable"
+
+run_rc_command "$1"
diff --git a/etc/rc.d/kdc b/etc/rc.d/kdc
new file mode 100755
index 0000000..43a5005
--- /dev/null
+++ b/etc/rc.d/kdc
@@ -0,0 +1,20 @@
+#!/bin/sh
+#
+# $NetBSD: kdc,v 1.5 2002/03/22 04:33:58 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: kdc
+# REQUIRE: NETWORKING
+# BEFORE: SERVERS
+
+. /etc/rc.subr
+
+name="kdc"
+rcvar=$name
+command="/usr/sbin/${name}"
+pidfile="/var/run/${name}.pid"
+required_files="/etc/krb5.conf"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/kerberos b/etc/rc.d/kerberos
new file mode 100644
index 0000000..fbd45ba
--- /dev/null
+++ b/etc/rc.d/kerberos
@@ -0,0 +1,27 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: kerberos
+# REQUIRE: NETWORKING
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="kerberosIV"
+load_rc_config $name
+rcvar="kerberos4_server_enable"
+command="${kerberos4_server}"
+checkyesno kerberos_stash && stash='-n' || stash=
+command_args="${stash} >> /var/log/kerberos.log &"
+
+run_rc_command "$1"
+
+name="kerberos5"
+load_rc_config $name
+rcvar="kerberos5_server_enable"
+command="${kerberos5_server}"
+command_args="&"
+
+run_rc_command "$1"
diff --git a/etc/rc.d/keyserv b/etc/rc.d/keyserv
new file mode 100644
index 0000000..4419426
--- /dev/null
+++ b/etc/rc.d/keyserv
@@ -0,0 +1,33 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# Start keyserv if we are running Secure RPC
+#
+
+# PROVIDE: keyserv
+# REQUIRE: ypbind
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="keyserv"
+rcvar=`set_rcvar`
+command="/usr/sbin/${name}"
+start_precmd="keyserv_prestart"
+
+keyserv_prestart()
+{
+ if ! checkyesno rpcbind_enable && \
+ ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
+ then
+ force_depend rpcbind || return 1
+ fi
+
+ return 0
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/ldconfig b/etc/rc.d/ldconfig
new file mode 100755
index 0000000..97cd38b
--- /dev/null
+++ b/etc/rc.d/ldconfig
@@ -0,0 +1,68 @@
+#!/bin/sh
+#
+# $NetBSD: ldconfig,v 1.5 2002/03/22 04:33:58 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: ldconfig
+# REQUIRE: mountall
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="ldconfig"
+ldconfig_command="/sbin/ldconfig"
+start_cmd="ldconfig_start"
+stop_cmd=":"
+
+ldconfig_start()
+{
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ ldconfig=${ldconfig_command}
+ checkyesno ldconfig_insecure && ldconfig="${ldconfig} -i"
+ if [ -x "${ldconfig_command}" ]; then
+ case `/usr/bin/objformat` in
+ elf)
+ _LDC=/usr/lib
+ for i in ${ldconfig_paths}; do
+ if [ -d "${i}" ]; then
+ _LDC="${_LDC} ${i}"
+ fi
+ done
+ echo 'ELF ldconfig path:' ${_LDC}
+ ${ldconfig} -elf ${_LDC}
+ ;;
+ esac
+
+ # Legacy aout support for i386 only
+ case `sysctl -n hw.machine_arch` in
+ i386)
+ # Default the a.out ldconfig path.
+ : ${ldconfig_paths_aout=${ldconfig_paths}}
+ _LDC=/usr/lib/aout
+ for i in ${ldconfig_paths_aout}; do
+ if [ -d "${i}" ]; then
+ _LDC="${_LDC} ${i}"
+ fi
+ done
+ echo 'a.out ldconfig path:' ${_LDC}
+ ${ldconfig} -aout ${_LDC}
+ ;;
+ esac
+ fi
+ ;;
+ NetBSD)
+ if [ -f ${ldconfig_command} ]; then
+ echo "Creating a.out runtime link editor directory cache."
+ ${ldconfig_command}
+ fi
+ ;;
+ *)
+ ;;
+ esac
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/lkm1 b/etc/rc.d/lkm1
new file mode 100755
index 0000000..e252909
--- /dev/null
+++ b/etc/rc.d/lkm1
@@ -0,0 +1,40 @@
+#!/bin/sh
+#
+# $NetBSD: lkm1,v 1.6 2000/10/09 06:11:38 nisimura Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: beforenetlkm
+# REQUIRE: root bootconf
+
+. /etc/rc.subr
+
+name="lkm1"
+rcvar="lkm"
+start_cmd="lkm1_start"
+stop_cmd="lkm1_stop"
+
+lkm1_start()
+{
+# load kernel modules specified in /etc/lkm.conf if the /usr
+# filesystem is already present with "/" or can be mounted now
+#
+ if [ -f /etc/rc.lkm ]; then
+ mount /usr >/dev/null 2>&1
+ if [ -x /usr/bin/ld ]; then
+ lkmstage=BEFORENET
+ set start ; . /etc/rc.lkm
+ fi
+ fi
+}
+
+lkm1_stop()
+{
+ if [ -f /etc/rc.lkm ] && [ -x /usr/bin/ld ]; then
+ lkmstage=BEFORENET
+ set stop ; . /etc/rc.lkm
+ fi
+}
+
+load_rc_config lkm
+run_rc_command "$1"
diff --git a/etc/rc.d/lkm2 b/etc/rc.d/lkm2
new file mode 100755
index 0000000..23608df
--- /dev/null
+++ b/etc/rc.d/lkm2
@@ -0,0 +1,38 @@
+#!/bin/sh
+#
+# $NetBSD: lkm2,v 1.4 2000/09/19 13:04:38 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: beforemountlkm
+# REQUIRE: syslogd
+
+. /etc/rc.subr
+
+name="lkm2"
+rcvar="lkm"
+start_cmd="lkm2_start"
+stop_cmd="lkm2_stop"
+
+# load kernel modules specified in /etc/lkm.conf
+#
+lkm2_start()
+{
+ if [ -r /etc/rc.lkm ]; then
+ lkmstage=BEFOREMOUNT
+ set start ; . /etc/rc.lkm
+ else
+ warn "/etc/rc.lkm not found; LKMs not loaded."
+ fi
+}
+
+lkm2_stop()
+{
+ if [ -r /etc/rc.lkm ]; then
+ lkmstage=BEFOREMOUNT
+ set stop ; . /etc/rc.lkm
+ fi
+}
+
+load_rc_config lkm
+run_rc_command "$1"
diff --git a/etc/rc.d/lkm3 b/etc/rc.d/lkm3
new file mode 100755
index 0000000..a9d6efd
--- /dev/null
+++ b/etc/rc.d/lkm3
@@ -0,0 +1,29 @@
+#!/bin/sh
+#
+# $NetBSD: lkm3,v 1.6 2002/03/22 04:33:58 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: aftermountlkm
+# REQUIRE: mountall
+# BEFORE: DAEMON
+
+. /etc/rc.subr
+
+name="lkm3"
+rcvar="lkm"
+start_cmd="do_lkm3 start"
+stop_cmd="do_lkm3 stop"
+
+do_lkm3()
+{
+ # (un)load kernel modules specified in /etc/lkm.conf
+ #
+ if [ -f /etc/rc.lkm ]; then
+ lkmstage=AFTERMOUNT
+ set $1 ; . /etc/rc.lkm
+ fi
+}
+
+load_rc_config lkm
+run_rc_command "$1"
diff --git a/etc/rc.d/local b/etc/rc.d/local
new file mode 100755
index 0000000..42e96bf
--- /dev/null
+++ b/etc/rc.d/local
@@ -0,0 +1,33 @@
+#!/bin/sh
+#
+# $NetBSD: local,v 1.6 2002/03/22 04:33:59 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: local
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+# KEYWORD: FreeBSD NetBSD shutdown
+
+. /etc/rc.subr
+
+name="local"
+start_cmd="local_start"
+stop_cmd="local_stop"
+
+local_start()
+{
+ if [ -f /etc/rc.local ]; then
+ . /etc/rc.local
+ fi
+}
+
+local_stop()
+{
+ if [ -f /etc/rc.shutdown.local ]; then
+ . /etc/rc.shutdown.local
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/localdaemons b/etc/rc.d/localdaemons
new file mode 100644
index 0000000..0ddd4ad
--- /dev/null
+++ b/etc/rc.d/localdaemons
@@ -0,0 +1,89 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: localdaemons
+# REQUIRE: abi
+# KEYWORD: FreeBSD shutdown
+
+. /etc/rc.subr
+
+name="localdaemons"
+start_cmd="locald_start"
+stop_cmd="locald_stop"
+
+locald_start()
+{
+ # For each dir in $local_startup, search for init scripts matching *.sh
+ #
+ case ${local_startup} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ echo -n 'Local package initialization:'
+ slist=""
+ if [ -z "${script_name_sep}" ]; then
+ script_name_sep=" "
+ fi
+ for dir in ${local_startup}; do
+ if [ -d "${dir}" ]; then
+ for script in ${dir}/*.sh; do
+ slist="${slist}${script_name_sep}${script}"
+ done
+ fi
+ done
+ script_save_sep="$IFS"
+ IFS="${script_name_sep}"
+ for script in ${slist}; do
+ if [ -x "${script}" ]; then
+ (set -T
+ trap 'exit 1' 2
+ ${script} start)
+ elif [ -f "${script}" -o -L "${script}" ]; then
+ echo -n " (skipping ${script##*/}, not executable)"
+ fi
+ done
+ IFS="${script_save_sep}"
+ echo '.'
+ ;;
+ esac
+}
+
+locald_stop()
+{
+ echo -n 'Shutting down daemon processes:'
+
+ # For each dir in $local_startup, search for init scripts matching *.sh
+ case ${local_startup} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ slist=""
+ if [ -z "${script_name_sep}" ]; then
+ script_name_sep=" "
+ fi
+ for dir in ${local_startup}; do
+ if [ -d "${dir}" ]; then
+ for script in ${dir}/*.sh; do
+ slist="${slist}${script_name_sep}${script}"
+ done
+ fi
+ done
+ script_save_sep="$IFS"
+ IFS="${script_name_sep}"
+ for script in `reverse_list ${slist}`; do
+ if [ -x "${script}" ]; then
+ (set -T
+ trap 'exit 1' 2
+ ${script} stop)
+ fi
+ done
+ IFS="${script_save_sep}"
+ echo '.'
+ ;;
+ esac
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/lockd b/etc/rc.d/lockd
new file mode 100644
index 0000000..aa55bc3
--- /dev/null
+++ b/etc/rc.d/lockd
@@ -0,0 +1,46 @@
+#!/bin/sh
+#
+# $NetBSD: nfslocking,v 1.6 2002/03/24 15:52:41 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: nfslocking
+# REQUIRE: nfsserver nfsclient nfsd
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+arg=$1
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ RCVAR_SERVER="nfs_server_enable"
+ RCVAR_CLIENT="nfs_client_enable"
+ RCVAR_STATD="rpc_statd_enable"
+ RCVAR_LOCKD="rpc_lockd_enable"
+ ;;
+NetBSD)
+ RCVAR_SERVER="nfs_server"
+ RCVAR_CLIENT="nfs_client"
+ RCVAR_STATD="statd"
+ RCVAR_LOCKD="lockd"
+ ;;
+esac
+
+start_precmd="checkyesno ${RCVAR_SERVER} || checkyesno ${RCVAR_CLIENT}
+ [ -n "$rc_force" ]"
+stop_precmd=$start_precmd
+status_precmd=$start_precmd
+
+name="statd"
+rcvar=${RCVAR_STATD}
+command="/usr/sbin/rpc.${name}"
+load_rc_config $name
+run_rc_command "$arg"
+
+name="lockd"
+rcvar=${RCVAR_LOCKD}
+command="/usr/sbin/rpc.${name}"
+load_rc_config $name
+run_rc_command "$arg"
diff --git a/etc/rc.d/lomac b/etc/rc.d/lomac
new file mode 100644
index 0000000..9919ed0
--- /dev/null
+++ b/etc/rc.d/lomac
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: lomac
+# REQUIRE: mountcritremote
+# BEFORE: syslogd
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="lomac"
+rcvar=`set_rcvar`
+start_cmd="kldload lomac >/dev/null 2>&1"
+stop_cmd=":"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/lpd b/etc/rc.d/lpd
new file mode 100755
index 0000000..83b051e
--- /dev/null
+++ b/etc/rc.d/lpd
@@ -0,0 +1,28 @@
+#!/bin/sh
+#
+# $NetBSD: lpd,v 1.5 2002/03/22 04:33:59 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: lpd
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="lpd"
+rcvar=`set_rcvar`
+command="/usr/sbin/${name}"
+required_files="/etc/printcap"
+
+case `${CMD_OSTYPE}` in
+NetBSD)
+ pidfile="/var/run/${name}.pid"
+ ;;
+*)
+ ;;
+esac
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/mixerctl b/etc/rc.d/mixerctl
new file mode 100755
index 0000000..16fcbb9
--- /dev/null
+++ b/etc/rc.d/mixerctl
@@ -0,0 +1,26 @@
+#!/bin/sh
+#
+# $NetBSD: mixerctl,v 1.2 2002/06/02 19:04:10 jmcneill Exp $
+#
+
+# PROVIDE: mixerctl
+# REQUIRE: mountcritremote
+
+. /etc/rc.subr
+
+name="mixerctl"
+start_cmd="mixerctl_start"
+stop_cmd=":"
+
+mixerctl_start()
+{
+ if [ -r /etc/mixerctl.conf ]; then
+ echo "Setting mixerctl variables..."
+ while read setting; do
+ mixerctl -n -w $setting
+ done < /etc/mixerctl.conf
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/mopd b/etc/rc.d/mopd
new file mode 100755
index 0000000..f6a6710
--- /dev/null
+++ b/etc/rc.d/mopd
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+# $NetBSD: mopd,v 1.5 2002/03/22 04:33:59 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: mopd
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+
+. /etc/rc.subr
+
+name="mopd"
+rcvar=$name
+command="/usr/sbin/${name}"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/motd b/etc/rc.d/motd
new file mode 100755
index 0000000..ca082ca
--- /dev/null
+++ b/etc/rc.d/motd
@@ -0,0 +1,59 @@
+#!/bin/sh
+#
+# $NetBSD: motd,v 1.5 2000/09/19 13:04:38 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: motd
+# REQUIRE: mountcritremote
+# BEFORE: LOGIN
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="motd"
+rcvar="update_motd"
+start_cmd="motd_start"
+stop_cmd=":"
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ T=`mktemp /tmp/_motd.XXXXXX`
+ PERMS="644"
+ ;;
+NetBSD)
+ T="/etc/_motd"
+ PERMS="664"
+ ;;
+esac
+
+motd_start()
+{
+ # Update kernel info in /etc/motd
+ # Must be done *before* interactive logins are possible
+ # to prevent possible race conditions.
+ #
+ echo "Updating motd."
+ if [ ! -f /etc/motd ]; then
+ install -c -o root -g wheel -m ${PERMS} /dev/null /etc/motd
+ fi
+
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ uname -v | sed -e 's,^\([^#]*\) #\(.* [1-2][0-9][0-9][0-9]\).*/\([^\]*\) $,\1 (\3) #\2,' > ${T}
+ awk '{if (NR == 1) {if ($1 == "FreeBSD") {next} else {print "\n"$0}} else {print}}' < /etc/motd >> ${T}
+ ;;
+ NetBSD)
+ sysctl -n kern.version | while read i; do echo $i; break; done > $T
+ sed '1{/^NetBSD.*/{d;};};' < /etc/motd >> $T
+ ;;
+ esac
+ cmp -s $T /etc/motd || {
+ cp $T /etc/motd
+ chmod ${PERMS} /etc/motd
+ }
+ rm -f $T
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/mountall b/etc/rc.d/mountall
new file mode 100755
index 0000000..6ce01f7
--- /dev/null
+++ b/etc/rc.d/mountall
@@ -0,0 +1,17 @@
+#!/bin/sh
+#
+# $NetBSD: mountall,v 1.3 2000/05/13 08:45:07 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: mountall
+# REQUIRE: beforemountlkm
+
+. /etc/rc.subr
+
+name="mountall"
+start_cmd="echo 'Mounting all filesystems...'; mount -a"
+stop_cmd="echo 'Unmounting all filesystems...'; umount -a"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/mountcritlocal b/etc/rc.d/mountcritlocal
new file mode 100755
index 0000000..9598f13
--- /dev/null
+++ b/etc/rc.d/mountcritlocal
@@ -0,0 +1,68 @@
+#!/bin/sh
+#
+# $NetBSD: mountcritlocal,v 1.7 2002/04/29 12:29:53 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: mountcritlocal
+# REQUIRE: root
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="mountcritlocal"
+start_cmd="mountcritlocal_start"
+stop_cmd=":"
+
+mountcritlocal_start()
+{
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ # Set up the list of network filesystem types for which mounting
+ # should be delayed until after network initialization.
+ networkfs_types='nfs:NFS smbfs:SMB portalfs:PORTAL'
+ case ${extra_netfs_types} in
+ [Nn][Oo])
+ ;;
+ *)
+ networkfs_types="${networkfs_types} ${extra_netfs_types}"
+ ;;
+ esac
+
+ # Mount everything except nfs filesystems.
+ mount_excludes='no'
+ for i in ${networkfs_types}; do
+ fstype=${i%:*}
+ mount_excludes="${mount_excludes}${fstype},"
+ done
+ mount_excludes=${mount_excludes%,}
+ mount -a -t ${mount_excludes}
+
+ case $? in
+ 0)
+ ;;
+ *)
+ echo 'Mounting /etc/fstab filesystems failed,' \
+ ' startup aborted'
+ exit 1
+ ;;
+ esac
+ ;;
+ NetBSD)
+ # Mount critical filesystems that are `local'
+ # (as specified in $critical_filesystems_local)
+ # This usually includes /var.
+ #
+ mount_critical_filesystems local
+
+ # clean up left-over files.
+ # this could include the cleanup of lock files and /var/run, etc.
+ #
+ rm -f /etc/nologin /var/spool/lock/LCK.* /var/spool/uucp/STST/*
+ (cd /var/run && rm -rf -- *)
+ ;;
+ esac
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/mountcritremote b/etc/rc.d/mountcritremote
new file mode 100755
index 0000000..919fe6d
--- /dev/null
+++ b/etc/rc.d/mountcritremote
@@ -0,0 +1,89 @@
+#!/bin/sh
+#
+# $NetBSD: mountcritremote,v 1.7 2002/04/29 12:29:53 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: mountcritremote
+# REQUIRE: NETWORKING root mountcritlocal
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="mountcritremote"
+stop_cmd=":"
+
+case `${CMD_OSTYPE}` in
+ FreeBSD)
+ start_cmd="mountcritremote_start"
+ start_precmd="mountcritremote_precmd"
+ ;;
+NetBSD)
+ start_cmd="mountcritremote_start"
+ ;;
+esac
+
+# Mount NFS filesystems if present in /etc/fstab
+#
+# XXX When the vfsload() issues with nfsclient support and related sysctls
+# have been resolved, this block can be removed, and the condition that
+# skips nfs in the following block (for "other network filesystems") can
+# be removed.
+#
+mountcritremote_precmd()
+{
+ case "`mount -d -a -t nfs 2> /dev/null`" in
+ *mount_nfs*)
+ # Handle absent nfs client support
+ if ! sysctl vfs.nfs >/dev/null 2>&1 ; then
+ kldload nfsclient || warn 'nfs mount ' \
+ 'requested, but no nfs client in kernel' \
+ return 1
+ fi
+ ;;
+ esac
+ return 0
+}
+
+mountcritremote_start()
+{
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ # Mount nfs filesystems.
+ #
+ echo -n 'Mounting NFS file systems:'
+ mount -a -t nfs
+ echo '.'
+
+ # Mount other network filesystems if present in /etc/fstab
+ for i in ${networkfs_types}; do
+ fstype=${i%:*}
+ fsdecr=${i#*:}
+
+ [ "${fstype}" = "nfs" ] && continue
+
+ case "`mount -d -a -t ${fstype}`" in
+ *mount_${fstype}*)
+ echo -n "Mounting ${fsdecr} file systems:"
+ mount -a -t ${fstype}
+ echo '.'
+ ;;
+ esac
+ done
+
+ # Cleanup /var again just in case it's a network mount
+ /etc/rc.d/cleanvar start
+ rm -f /var/run/clean_var /var/spool/lock/clean_var
+ ;;
+ NetBSD)
+ # Mount critical filesystems that may be `remote'.
+ # (as specified in $critical_filesystems_remote)
+ # This usually includes /usr.
+ #
+ mount_critical_filesystems remote
+ ;;
+ esac
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/mountd b/etc/rc.d/mountd
new file mode 100755
index 0000000..7de831b
--- /dev/null
+++ b/etc/rc.d/mountd
@@ -0,0 +1,51 @@
+#!/bin/sh
+#
+# $NetBSD: mountd,v 1.11 2002/01/31 01:26:06 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: mountd
+# REQUIRE: NETWORKING mountall beforemountlkm nfsserver rpcbind quota
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="mountd"
+rcvar=`set_rcvar`
+command="/usr/sbin/${name}"
+required_files="/etc/exports"
+start_precmd="mountd_precmd"
+extra_commands="reload"
+
+mountd_precmd()
+{
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ if ! checkyesno rpcbind_enable && \
+ ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
+ then
+ force_depend rpcbind || return 1
+ fi
+
+ # mountd flags will differ depending on rc.conf settings
+ #
+ case ${nfs_server_enable} in
+ [Yy][Ee][Ss])
+ if checkyesno weak_mountd_authentication ; then
+ mountd_flags="${mountd_flags} -n"
+ fi
+ ;;
+ *)
+ if checkyesno single_mountd_enable ; then
+ checkyesno weak_mountd_authentication && mountd_flags="-n"
+ fi
+ esac
+ ;;
+ esac
+ rm -f /var/db/mountdtab
+ ( umask 022 ; > /var/db/mountdtab )
+ return 0
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/moused b/etc/rc.d/moused
new file mode 100644
index 0000000..bd42e9f
--- /dev/null
+++ b/etc/rc.d/moused
@@ -0,0 +1,47 @@
+#!/bin/sh
+#
+# $NetBSD: moused,v 1.1 2001/10/29 23:25:01 augustss Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: moused
+# REQUIRE: DAEMON
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name=moused
+rcvar=`set_rcvar`
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ start_cmd="moused_start"
+ ;;
+NetBSD)
+ command="/usr/sbin/${name}"
+ ;;
+esac
+
+moused_start()
+{
+ echo -n 'Starting moused:'
+ /usr/sbin/moused ${moused_flags} -p ${moused_port} -t ${moused_type}
+
+ _mousechar_arg=
+ case ${mousechar_start} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ echo -n ' mousechar_start'
+ _mousechar_arg="-M ${mousechar_start}"
+ ;;
+ esac
+
+ for ttyv in /dev/ttyv* ; do
+ vidcontrol < ${ttyv} ${_mousechar_arg} -m on
+ done
+ echo '.'
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/mroute6d b/etc/rc.d/mroute6d
new file mode 100644
index 0000000..7ae71f0
--- /dev/null
+++ b/etc/rc.d/mroute6d
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: mroute6d
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="mroute6d"
+rcvar=`set_rcvar`
+command="/usr/local/sbin/pim6dd"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/mrouted b/etc/rc.d/mrouted
new file mode 100755
index 0000000..b1409e1
--- /dev/null
+++ b/etc/rc.d/mrouted
@@ -0,0 +1,22 @@
+#!/bin/sh
+#
+# $NetBSD: mrouted,v 1.6 2002/03/22 04:33:59 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: mrouted
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="mrouted"
+rcvar=`set_rcvar`
+command="/usr/sbin/${name}"
+pidfile="/var/run/${name}.pid"
+required_files="/etc/${name}.conf"
+extra_commands="reload"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/msgs b/etc/rc.d/msgs
new file mode 100644
index 0000000..64e73cf
--- /dev/null
+++ b/etc/rc.d/msgs
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: msgs
+# REQUIRE: LOGIN
+# KEYWORD: FreeBSD
+
+# Make a bounds file for msgs(1) if there isn't one already
+#
+if [ -d /var/msgs -a ! -f /var/msgs/bounds -a ! -L /var/msgs/bounds ]; then
+ echo 0 > /var/msgs/bounds
+fi
diff --git a/etc/rc.d/named b/etc/rc.d/named
new file mode 100755
index 0000000..11cf225
--- /dev/null
+++ b/etc/rc.d/named
@@ -0,0 +1,124 @@
+#!/bin/sh
+#
+# $NetBSD: named,v 1.10 2002/03/22 04:33:59 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: named
+# REQUIRE: SERVERS
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="named"
+rcvar=`set_rcvar`
+command="/usr/sbin/${name}"
+pidfile="/var/run/${name}.pid"
+start_precmd="named_precmd"
+required_dirs="$named_chrootdir" # if it is set, it must exist
+extra_commands="reload"
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ nuser=bind
+ ngroup=bind
+ ;;
+NetBSD)
+ nuser=named
+ ngroup=named
+ ;;
+esac
+
+# If running in a chroot cage, ensure that the appropriate files
+# exist inside the cage, as well as helper symlinks into the cage
+# from outside.
+#
+# As this is called after the is_running and required_dir checks
+# are made in run_rc_command(), we can safely assume ${named_chrootdir}
+# exists and named isn't running at this point (unless forcestart
+# is used).
+#
+chroot_autoupdate()
+{
+ # If the named-xfer in the system is newer than the one in the
+ # chroot directory or if it (in the chrootdir) doesn't exist
+ # copy it over
+ #
+ if [ ! -x "${named_chrootdir}/usr/libexec/named-xfer" -o \
+ "${named_chrootdir}/usr/libexec/named-xfer" -ot \
+ /usr/libexec/named-xfer ]; then
+ rm -f "${named_chrootdir}/usr/libexec/named-xfer"
+ cp -p /usr/libexec/named-xfer "${named_chrootdir}/usr/libexec"
+ fi
+
+ # Copy /dev/null over, if neccessary. Preserve everything (perms,
+ # ownership, mod times).
+ #
+ if [ ! -c "${named_chrootdir}/dev/null" ]; then
+ rm -f "${named_chrootdir}/dev/null"
+ ( cd /dev ; /bin/pax -rw -pe null "${named_chrootdir}/dev" )
+ fi
+
+ # Copy local timezone information if it's not up-to-date.
+ #
+ if [ -f /etc/localtime ]; then
+ cmp -s /etc/localtime "${named_chrootdir}/etc/localtime" || \
+ cp -p /etc/localtime "${named_chrootdir}/etc/localtime"
+ fi
+}
+
+# Make symlinks to the correct pid and ndc socket files
+#
+make_symlinks()
+{
+ ln -fs "${named_chrootdir}/var/run/named.pid" /var/run/named.pid
+ ln -fs "${named_chrootdir}/var/run/ndc" /var/run/ndc
+
+}
+
+named_precmd()
+{
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ ! checkyesno named_rcng && return 0
+ # Is the user using a sandbox?
+ if [ -z "$named_chrootdir" ]; then
+ rc_flags="-u $nuser -g $ngroup $rc_flags"
+ return 0
+ fi
+
+ # Do the following checks only if the user wants them done
+ checkyesno named_chroot_autoupdate && chroot_autoupdate
+ ;;
+ NetBSD)
+ chroot_autoupdate
+ ;;
+ esac
+
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ # Make the symlinks only if the user wants them done.
+ checkyesno named_symlink_enable && make_symlinks
+ ;;
+ NetBSD)
+ make_symlinks
+ ;;
+ esac
+
+ # Change run_rc_commands()'s internal copy of $named_flags
+ #
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ ! checkyesno named_rcng && return
+ ;;
+ esac
+ rc_flags="-u $nuser -g $ngroup -t ${named_chrootdir} $rc_flags"
+}
+
+load_rc_config $name
+# The following variable requires that rc.conf be loaded first
+#
+required_dirs="$named_chrootdir" # if it is set, it must exist
+
+run_rc_command "$1"
diff --git a/etc/rc.d/ndbootd b/etc/rc.d/ndbootd
new file mode 100755
index 0000000..e24f8fc
--- /dev/null
+++ b/etc/rc.d/ndbootd
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+# $NetBSD$
+#
+
+# PROVIDE: ndbootd
+# REQUIRE: DAEMON
+
+. /etc/rc.subr
+
+name="ndbootd"
+rcvar=$name
+command="/usr/sbin/${name}"
+pidfile="/var/run/${name}.pid"
+required_files="/etc/ethers"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/netoptions b/etc/rc.d/netoptions
new file mode 100644
index 0000000..a79aa5f
--- /dev/null
+++ b/etc/rc.d/netoptions
@@ -0,0 +1,35 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: network3
+# REQUIRE: localdaemons
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+load_rc_config 'XXX'
+
+echo -n 'Additional TCP options:'
+case ${log_in_vain} in
+[Nn][Oo] | '')
+ log_in_vain=0
+ ;;
+[Yy][Ee][Ss])
+ log_in_vain=1
+ ;;
+[0-9]*)
+ ;;
+*)
+ echo " invalid log_in_vain setting: ${log_in_vain}"
+ log_in_vain=0
+ ;;
+esac
+
+[ "${log_in_vain}" -ne 0 ] && (
+ echo -n " log_in_vain=${log_in_vain}"
+ sysctl net.inet.tcp.log_in_vain="${log_in_vain}" >/dev/null
+ sysctl net.inet.udp.log_in_vain="${log_in_vain}" >/dev/null
+)
+echo '.'
diff --git a/etc/rc.d/network b/etc/rc.d/network
new file mode 100755
index 0000000..7fcb5b2
--- /dev/null
+++ b/etc/rc.d/network
@@ -0,0 +1,387 @@
+#!/bin/sh
+#
+# $NetBSD: network,v 1.29 2001/01/11 17:56:16 itojun Exp $
+# $FreeBSD$
+
+# PROVIDE: network
+# REQUIRE: ipfilter ipsec mountcritlocal root tty sysctl
+
+. /etc/rc.subr
+
+name="network"
+start_cmd="network_start"
+stop_cmd="network_stop"
+
+network_start()
+{
+ # set hostname, turn on network
+ #
+ echo "Starting network."
+
+ # If $hostname is set, use it for my Internet name,
+ # otherwise use /etc/myname
+ #
+ if [ -z "$hostname" ] && [ -f /etc/myname ]; then
+ hostname=`cat /etc/myname`
+ fi
+ if [ -n "$hostname" ]; then
+ echo "Hostname: $hostname"
+ hostname $hostname
+ else
+ # Don't warn about it if we're going to run
+ # DHCP later, as we will probably get the
+ # hostname at that time.
+ #
+ if ! checkyesno dhclient && [ -z "`hostname`" ]; then
+ warn "\$hostname not set."
+ fi
+ fi
+
+ # Check $domainname first, then /etc/defaultdomain,
+ # for NIS/YP domain name
+ #
+ if [ -z "$domainname" ] && [ -f /etc/defaultdomain ]; then
+ domainname=`cat /etc/defaultdomain`
+ fi
+ if [ -n "$domainname" ]; then
+ echo "NIS domainname: $domainname"
+ domainname $domainname
+ fi
+
+ # Flush all routes just to make sure it is clean
+ if checkyesno flushroutes; then
+ route -n flush
+ fi
+
+ # Set the address for the first loopback interface, so that the
+ # auto-route from a newly configured interface's address to lo0
+ # works correctly.
+ #
+ # NOTE: obscure networking problems may occur if lo0 isn't configured...
+ #
+ ifconfig lo0 inet 127.0.0.1
+
+ # According to RFC1122, 127.0.0.0/8 should not leave the node.
+ #
+ route add -inet 127.0.0.0 -netmask 0xff000000 127.0.0.1 -reject
+
+ # IPv6 routing setups, and host/router mode selection.
+ #
+ if ifconfig lo0 inet6 >/dev/null 2>&1; then
+ # We have IPv6 support in kernel.
+
+ # disallow link-local unicast dest without outgoing scope
+ # identifiers.
+ #
+ route add -inet6 fe80:: -prefixlen 10 ::1 -reject
+
+ # disallow site-local unicast dest without outgoing scope
+ # identifiers.
+ # If you configure site-locals without scope id (it is
+ # permissible config for routers that are not on scope
+ # boundary), you may want to comment the following one out.
+ #
+ if ! checkyesno ip6sitelocal; then
+ route add -inet6 fec0:: -prefixlen 10 ::1 -reject
+ fi
+
+ # disallow "internal" addresses to appear on the wire.
+ #
+ route add -inet6 ::ffff:0.0.0.0 -prefixlen 96 ::1 -reject
+
+ # disallow packets to malicious IPv4 compatible prefix
+ #
+ route add -inet6 ::224.0.0.0 -prefixlen 100 ::1 -reject
+ route add -inet6 ::127.0.0.0 -prefixlen 104 ::1 -reject
+ route add -inet6 ::0.0.0.0 -prefixlen 104 ::1 -reject
+ route add -inet6 ::255.0.0.0 -prefixlen 104 ::1 -reject
+
+ # disallow packets to malicious 6to4 prefix
+ #
+ route add -inet6 2002:e000:: -prefixlen 20 ::1 -reject
+ route add -inet6 2002:7f00:: -prefixlen 24 ::1 -reject
+ route add -inet6 2002:0000:: -prefixlen 24 ::1 -reject
+ route add -inet6 2002:ff00:: -prefixlen 24 ::1 -reject
+
+ # Completely disallow packets to IPv4 compatible prefix.
+ # This may conflict with RFC1933 under following circumstances:
+ # (1) An IPv6-only KAME node tries to originate packets to IPv4
+ # compatible destination. The KAME node has no IPv4
+ # compatible support. Under RFC1933, it should transmit
+ # native IPv6 packets toward IPv4 compatible destination,
+ # hoping it would reach a router that forwards the packet
+ # toward auto-tunnel interface.
+ # (2) An IPv6-only node originates a packet to IPv4 compatible
+ # destination. A KAME node is acting as an IPv6 router, and
+ # asked to forward it.
+ # Due to rare use of IPv4 compatible address, and security
+ # issues with it, we disable it by default.
+ #
+ route add -inet6 ::0.0.0.0 -prefixlen 96 ::1 -reject
+
+ sysctl net.inet6.ip6.forwarding=0 >/dev/null
+ sysctl net.inet6.ip6.accept_rtadv=0 >/dev/null
+
+ # backward compatibility
+ #
+ if [ -z "$ip6mode" ] && [ -n "$ip6forwarding" ]; then
+ warn 'Please migrate to newer rc.conf' \
+ '(use ip6mode, not ip6forwarding)'
+ if checkyesno ip6forwarding; then
+ ip6mode=router
+ elif checkyesno rtsol; then
+ ip6mode=autohost
+ else
+ ip6mode=host
+ fi
+ fi
+
+ case $ip6mode in
+ router)
+ echo 'IPv6 mode: router'
+ sysctl net.inet6.ip6.forwarding=1 >/dev/null
+ ;;
+
+ autohost)
+ echo 'IPv6 mode: autoconfigured host'
+ sysctl net.inet6.ip6.accept_rtadv=1 >/dev/null
+ ;;
+
+ host)
+ echo 'IPv6 mode: host'
+ ;;
+
+ *) echo 'WARNING: invalid value in ip6mode'
+ ;;
+
+ esac
+ fi
+
+ # Configure all of the network interfaces listed in $net_interfaces;
+ # if $auto_ifconfig is YES, grab all interfaces from ifconfig.
+ # In the following, "xxN" stands in for interface names, like "le0".
+ # For any interfaces that has an $ifconfig_xxN variable associated,
+ # we do "ifconfig xxN $ifconfig_xxN".
+ # If there is no such variable, we take the contents of the file
+ # /etc/ifconfig.xxN, and run "ifconfig xxN" repeatedly, using each
+ # line of the file as the arguments for a separate "ifconfig"
+ # invocation.
+ #
+ # In order to configure an interface reasonably, you at the very least
+ # need to specify "[addr_family] [hostname]" (e.g "inet my.domain.org"),
+ # and probably a netmask (as in "netmask 0xffffffe0"). You will
+ # frequently need to specify a media type, as in "media UTP", for
+ # interface cards with multiple media connections that do not
+ # autoconfigure. See the ifconfig manual page for details.
+ #
+ # Note that /etc/ifconfig.xxN takes multiple lines. The following
+ # configuration is possible:
+ # inet 10.1.1.1 netmask 0xffffff00
+ # inet 10.1.1.2 netmask 0xffffff00 alias
+ # inet6 fec0::1 prefixlen 64 alias
+ #
+ # You can put shell script fragment into /etc/ifconfig.xxN by
+ # starting a line with "!". Refer to ifconfig.if(5) for details.
+ #
+ if [ "$net_interfaces" != NO ]; then
+ if checkyesno auto_ifconfig; then
+ tmp=`ifconfig -l`
+ for cloner in `ifconfig -C 2>/dev/null`; do
+ for int in /etc/ifconfig.${cloner}[0-9]*; do
+ [ ! -f $int ] && break
+ tmp="$tmp ${int##*.}"
+ done
+ done
+ else
+ tmp="$net_interfaces"
+ fi
+ echo -n 'Configuring network interfaces:'
+ for int in $tmp; do
+ eval args=\$ifconfig_$int
+ if [ -n "$args" ]; then
+ echo -n " $int"
+ ifconfig $int $args
+ elif [ -f /etc/ifconfig.$int ]; then
+ echo -n " $int"
+ while read args; do
+ [ -z "$args" ] && continue
+ case "$args" in
+ "#"*)
+ ;;
+ "!"*)
+ eval ${args#*!}
+ ;;
+ *)
+ ifconfig $int $args
+ ;;
+ esac
+ done < /etc/ifconfig.$int
+ else
+ if ! checkyesno auto_ifconfig; then
+ echo
+ warn \
+ "/etc/ifconfig.$int missing and ifconfig_$int not set;"
+ warn "interface $int not configured."
+ fi
+ continue
+ fi
+ configured_interfaces="$configured_interfaces $int"
+ done
+ echo "."
+ fi
+
+ # Check $defaultroute, then /etc/mygate, for the name of my gateway
+ # host. That name must be in /etc/hosts.
+ #
+ if [ -z "$defaultroute" ] && [ -f /etc/mygate ]; then
+ defaultroute=`cat /etc/mygate`
+ fi
+ if [ -n "$defaultroute" ]; then
+ route add default $defaultroute
+ fi
+
+ # Check if each configured interface xxN has an $ifaliases_xxN variable
+ # associated, then configure additional IP addresses for that interface.
+ # The variable contains a list of "address netmask" pairs, with
+ # "netmask" set to "-" if the interface default netmask is to be used.
+ #
+ # Note that $ifaliases_xxN works only with certain configurations and
+ # considered not recommended. Use /etc/ifconfig.xxN if possible.
+ #
+ #
+ if [ -n "$configured_interfaces" ]; then
+ echo "Adding interface aliases:"
+ done_aliases_message=yes
+ fi
+ for int in $configured_interfaces; do
+ eval args=\$ifaliases_$int
+ if [ -n "$args" ]; then
+ set -- $args
+ while [ $# -ge 2 ]; do
+ addr=$1 ; net=$2 ; shift 2
+ if [ "$net" = "-" ]; then
+ # for compatibility only, obsolete
+ ifconfig $int inet alias $addr
+ else
+ ifconfig $int inet alias $addr \
+ netmask $net
+ fi
+ # Use loopback, not the wire
+ route add $addr 127.0.0.1
+ done
+ fi
+ done
+
+ # /etc/ifaliases, if it exists, contains the names of additional IP
+ # addresses for each interface. It is formatted as a series of lines
+ # that contain
+ # address interface netmask
+ #
+ # Note that /etc/ifaliases works only with certain cases only and its
+ # use is not recommended. Use /etc/ifconfig.xxN instead.
+ #
+ #
+ if [ -f /etc/ifaliases ]; then
+ if [ "$done_aliases_message" != yes ]; then
+ echo "Adding interface aliases:"
+ fi
+ while read addr int net; do
+ if [ -z "$net" ]; then
+ # for compatibility only, obsolete
+ ifconfig $int inet alias $addr
+ else
+ ifconfig $int inet alias $addr netmask $net
+ fi
+ # use loopback, not the wire
+ route add $addr 127.0.0.1
+ done < /etc/ifaliases
+ fi
+
+ # IPv6 interface autoconfiguration.
+ #
+ if ifconfig lo0 inet6 >/dev/null 2>&1; then
+ # wait till DAD is completed. always invoke it in case
+ # if are configured manually by ifconfig
+ #
+ dadcount=`sysctl -n net.inet6.ip6.dad_count 2>/dev/null`
+ sleep $dadcount
+ sleep 1
+
+ if checkyesno rtsol; then
+ if [ "$ip6mode" = "autohost" ]; then
+ echo 'Sending router solicitation...'
+ rtsol $rtsol_flags
+ else
+ echo
+ warn \
+ "ip6mode must be set to 'autohost' to use rtsol."
+ fi
+
+ # wait till DAD is completed, for global addresses
+ # configured by router advert message.
+ #
+ sleep $dadcount
+ sleep 1
+ fi
+ fi
+
+ # XXX this must die
+ if [ -s /etc/netstart.local ]; then
+ sh /etc/netstart.local start
+ fi
+}
+
+network_stop()
+{
+ echo "Stopping network."
+
+ # XXX this must die
+ if [ -s /etc/netstart.local ]; then
+ sh /etc/netstart.local stop
+ fi
+
+ echo "Deleting aliases."
+ if [ -f /etc/ifaliases ]; then
+ while read addr int net; do
+ ifconfig $int inet delete $addr
+ done < /etc/ifaliases
+ fi
+
+ for int in `ifconfig -lu`; do
+ eval args=\$ifaliases_$int
+ if [ -n "$args" ]; then
+ set -- $args
+ while [ $# -ge 2 ]; do
+ addr=$1 ; net=$2 ; shift 2
+ ifconfig $int inet delete $addr
+ done
+ fi
+ done
+
+ # down interfaces
+ #
+ echo -n 'Downing network interfaces:'
+ if [ "$net_interfaces" != NO ]; then
+ if checkyesno auto_ifconfig; then
+ tmp=`ifconfig -l`
+ else
+ tmp="$net_interfaces"
+ fi
+ for int in $tmp; do
+ eval args=\$ifconfig_$int
+ if [ -n "$args" ] || [ -f /etc/ifconfig.$int ]; then
+ echo -n " $int"
+ ifconfig $int down
+ fi
+ done
+ echo "."
+ fi
+
+ # flush routes
+ #
+ route -n flush
+
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/network1 b/etc/rc.d/network1
new file mode 100644
index 0000000..7b2f40f
--- /dev/null
+++ b/etc/rc.d/network1
@@ -0,0 +1,225 @@
+#!/bin/sh -x
+#
+# $FreeBSD$
+#
+
+# PROVIDE: network1
+# REQUIRE: atm1 ipfilter mountcritlocal pccard serial sppp sysctl tty
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="network1"
+start_cmd="network_start"
+stop_cmd="network_stop"
+
+convert_host_conf()
+{
+ host_conf=$1; shift;
+ nsswitch_conf=$1; shift;
+ awk ' \
+ /^[:blank:]*#/ { next } \
+ /(hosts|local|file)/ { nsswitch[c] = "files"; c++; next } \
+ /(dns|bind)/ { nsswitch[c] = "dns"; c++; next } \
+ /nis/ { nsswitch[c] = "nis"; c++; next } \
+ { printf "Warning: unrecognized line [%s]", $0 > "/dev/stderr" } \
+ END { \
+ printf "hosts: "; \
+ for (i in nsswitch) printf "%s ", nsswitch[i]; \
+ printf "\n"; \
+ }' < $host_conf > $nsswitch_conf
+}
+
+generate_host_conf()
+{
+ nsswitch_conf=$1; shift;
+ host_conf=$1; shift;
+
+ awk '
+BEGIN {
+ xlat["files"] = "hosts";
+ xlat["dns"] = "bind";
+ xlat["nis"] = "nis";
+ cont = 0;
+}
+sub(/^[\t ]*hosts:/, "") || cont {
+ if (!cont)
+ srcs = ""
+ sub(/#.*/, "")
+ gsub(/[][]/, " & ")
+ cont = sub(/\\$/, "")
+ srcs = srcs " " $0
+}
+END {
+ print "# Auto-generated from nsswitch.conf, do not edit"
+ ns = split(srcs, s)
+ for (n = 1; n <= ns; ++n) {
+ if (s[n] in xlat)
+ print xlat[s[n]]
+ }
+}
+' <$nsswitch_conf >$host_conf
+}
+
+network_gif_setup() {
+ case ${gif_interfaces} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ for i in ${gif_interfaces}; do
+ eval peers=\$gifconfig_$i
+ case ${peers} in
+ '')
+ continue
+ ;;
+ *)
+ ifconfig $i create >/dev/null 2>&1
+ ifconfig $i tunnel ${peers}
+ ;;
+ esac
+ done
+ ;;
+ esac
+}
+
+network_start()
+{
+ # set hostname, turn on network
+ #
+ echo -n "Doing initial network setup:"
+
+ # Generate host.conf for compatibility
+ #
+ if [ -f "/etc/nsswitch.conf" ]; then
+ echo -n ' host.conf'
+ generate_host_conf /etc/nsswitch.conf /etc/host.conf
+ fi
+
+ # Convert host.conf to nsswitch.conf if necessary
+ #
+ if [ -f "/etc/host.conf" -a ! -f "/etc/nsswitch.conf" ]; then
+ echo ''
+ echo 'Warning: /etc/host.conf is no longer used'
+ echo ' /etc/nsswitch.conf will be created for you'
+ convert_host_conf /etc/host.conf /etc/nsswitch.conf
+ fi
+
+ # Set the host name if it is not already set
+ #
+ if [ -z "`hostname -s`" ]; then
+ hostname ${hostname}
+ echo -n ' hostname'
+ fi
+
+ # Set the domainname if we're using NIS
+ #
+ case ${nisdomainname} in
+ [Nn][Oo]|'')
+ ;;
+ *)
+ domainname ${nisdomainname}
+ echo -n ' domain'
+ ;;
+ esac
+
+ echo '.'
+
+ # Attempt to create cloned interfaces.
+ for ifn in ${cloned_interfaces}; do
+ ifconfig ${ifn} create
+ done
+
+ # gifconfig
+ network_gif_setup
+
+ # Set up all the network interfaces, calling startup scripts if needed
+ #
+ case ${network_interfaces} in
+ [Aa][Uu][Tt][Oo])
+ network_interfaces="`ifconfig -l`"
+ ;;
+ *)
+ network_interfaces="${network_interfaces} ${cloned_interfaces}"
+ ;;
+ esac
+
+ dhcp_interfaces=""
+ for ifn in ${network_interfaces}; do
+ if [ -r /etc/start_if.${ifn} ]; then
+ . /etc/start_if.${ifn}
+ eval showstat_$ifn=1
+ fi
+
+ # Do the primary ifconfig if specified
+ #
+ eval ifconfig_args=\$ifconfig_${ifn}
+
+ case ${ifconfig_args} in
+ '')
+ ;;
+ [Dd][Hh][Cc][Pp])
+ # DHCP inits are done all in one go below
+ dhcp_interfaces="$dhcp_interfaces $ifn"
+ eval showstat_$ifn=1
+ ;;
+ *)
+ ifconfig ${ifn} ${ifconfig_args}
+ eval showstat_$ifn=1
+ ;;
+ esac
+ done
+
+ if [ ! -z "${dhcp_interfaces}" ]; then
+ ${dhcp_program:-/sbin/dhclient} ${dhcp_flags} ${dhcp_interfaces}
+ fi
+
+ for ifn in ${network_interfaces}; do
+ # Check to see if aliases need to be added
+ #
+ alias=0
+ while : ; do
+ eval ifconfig_args=\$ifconfig_${ifn}_alias${alias}
+ if [ -n "${ifconfig_args}" ]; then
+ ifconfig ${ifn} ${ifconfig_args} alias
+ eval showstat_$ifn=1
+ alias=$((${alias} + 1))
+ else
+ break;
+ fi
+ done
+
+ # Do ipx address if specified
+ #
+ eval ifconfig_args=\$ifconfig_${ifn}_ipx
+ if [ -n "${ifconfig_args}" ]; then
+ ifconfig ${ifn} ${ifconfig_args}
+ eval showstat_$ifn=1
+ fi
+ done
+
+ # Display ifconfiged interfaces
+ for ifn in ${network_interfaces}; do
+ eval showstat=\$showstat_${ifn}
+ if [ ! -z ${showstat} ]; then
+ ifconfig ${ifn}
+ fi
+ done
+
+ # Resync ipfilter
+ /etc/rc.d/ipfilter resync
+}
+
+network_stop()
+{
+ echo -n "Stopping network:"
+
+ # flush routes
+ #
+ echo -n " flush routes"
+ route -n flush
+
+ echo '.'
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/network2 b/etc/rc.d/network2
new file mode 100644
index 0000000..abeea16
--- /dev/null
+++ b/etc/rc.d/network2
@@ -0,0 +1,140 @@
+#!/bin/sh
+#
+# Configure routing and miscellaneous network tunables
+#
+# $FreeBSD$
+#
+
+# PROVIDE: network2
+# REQUIRE: network1 ppp-user
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="network2"
+start_cmd="network2_start"
+stop_cmd=":"
+
+network2_start()
+{
+ case ${defaultrouter} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ static_routes="default ${static_routes}"
+ route_default="default ${defaultrouter}"
+ ;;
+ esac
+
+ # Setup static routes. This should be done before router discovery.
+ #
+ if [ -n "${static_routes}" ]; then
+ for i in ${static_routes}; do
+ eval route_args=\$route_${i}
+ route add ${route_args}
+ done
+ fi
+
+ echo -n 'Additional routing options:'
+ case ${tcp_extensions} in
+ [Yy][Ee][Ss] | '')
+ ;;
+ *)
+ echo -n ' tcp extensions=NO'
+ sysctl net.inet.tcp.rfc1323=0 >/dev/null
+ ;;
+ esac
+
+ case ${icmp_bmcastecho} in
+ [Yy][Ee][Ss])
+ echo -n ' broadcast ping responses=YES'
+ sysctl net.inet.icmp.bmcastecho=1 >/dev/null
+ ;;
+ esac
+
+ case ${icmp_drop_redirect} in
+ [Yy][Ee][Ss])
+ echo -n ' ignore ICMP redirect=YES'
+ sysctl net.inet.icmp.drop_redirect=1 >/dev/null
+ ;;
+ esac
+
+ case ${icmp_log_redirect} in
+ [Yy][Ee][Ss])
+ echo -n ' log ICMP redirect=YES'
+ sysctl net.inet.icmp.log_redirect=1 >/dev/null
+ ;;
+ esac
+
+ case ${gateway_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' IP gateway=YES'
+ sysctl net.inet.ip.forwarding=1 >/dev/null
+ ;;
+ esac
+
+ case ${forward_sourceroute} in
+ [Yy][Ee][Ss])
+ echo -n ' do source routing=YES'
+ sysctl net.inet.ip.sourceroute=1 >/dev/null
+ ;;
+ esac
+
+ case ${accept_sourceroute} in
+ [Yy][Ee][Ss])
+ echo -n ' accept source routing=YES'
+ sysctl net.inet.ip.accept_sourceroute=1 >/dev/null
+ ;;
+ esac
+
+ case ${tcp_keepalive} in
+ [Nn][Oo])
+ echo -n ' TCP keepalive=NO'
+ sysctl net.inet.tcp.always_keepalive=0 >/dev/null
+ ;;
+ esac
+
+ case ${tcp_drop_synfin} in
+ [Yy][Ee][Ss])
+ echo -n ' drop SYN+FIN packets=YES'
+ sysctl net.inet.tcp.drop_synfin=1 >/dev/null
+ ;;
+ esac
+
+ case ${ipxgateway_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' IPX gateway=YES'
+ sysctl net.ipx.ipx.ipxforwarding=1 >/dev/null
+ ;;
+ esac
+
+ case ${arpproxy_all} in
+ [Yy][Ee][Ss])
+ echo -n ' ARP proxyall=YES'
+ sysctl net.link.ether.inet.proxyall=1 >/dev/null
+ ;;
+ esac
+
+ case ${ip_portrange_first} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ echo -n " ip_portrange_first=$ip_portrange_first"
+ sysctl net.inet.ip.portrange.first=$ip_portrange_first >/dev/null
+ ;;
+ esac
+
+ case ${ip_portrange_last} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ echo -n " ip_portrange_last=$ip_portrange_last"
+ sysctl net.inet.ip.portrange.last=$ip_portrange_last >/dev/null
+ ;;
+ esac
+
+ echo '.'
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/network3 b/etc/rc.d/network3
new file mode 100644
index 0000000..a79aa5f
--- /dev/null
+++ b/etc/rc.d/network3
@@ -0,0 +1,35 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: network3
+# REQUIRE: localdaemons
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+load_rc_config 'XXX'
+
+echo -n 'Additional TCP options:'
+case ${log_in_vain} in
+[Nn][Oo] | '')
+ log_in_vain=0
+ ;;
+[Yy][Ee][Ss])
+ log_in_vain=1
+ ;;
+[0-9]*)
+ ;;
+*)
+ echo " invalid log_in_vain setting: ${log_in_vain}"
+ log_in_vain=0
+ ;;
+esac
+
+[ "${log_in_vain}" -ne 0 ] && (
+ echo -n " log_in_vain=${log_in_vain}"
+ sysctl net.inet.tcp.log_in_vain="${log_in_vain}" >/dev/null
+ sysctl net.inet.udp.log_in_vain="${log_in_vain}" >/dev/null
+)
+echo '.'
diff --git a/etc/rc.d/network_ipv6 b/etc/rc.d/network_ipv6
new file mode 100644
index 0000000..31ed76d
--- /dev/null
+++ b/etc/rc.d/network_ipv6
@@ -0,0 +1,414 @@
+#!/bin/sh
+#
+# Copyright (c) 2000 The KAME Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+# From: src/etc/rc.network6,v 1.29 2002/04/06 15:15:43
+#
+
+# PROVIDE: network_ipv6
+# REQUIRE: network2
+# KEYWORD: FreeBSD
+
+name="network_ipv6"
+rcvar=`set_rcvar ipv6`
+start_cmd="network_ipv6_start"
+#required_files="/etc/rc.network6"
+
+hexdigit()
+{
+ if [ $1 -lt 10 ]; then
+ echo $1
+ else
+ case $1 in
+ 10) echo a ;;
+ 11) echo b ;;
+ 12) echo c ;;
+ 13) echo d ;;
+ 14) echo e ;;
+ 15) echo f ;;
+ esac
+ fi
+}
+
+hexprint()
+{
+ val=$1
+ str=''
+
+ dig=`hexdigit $((${val} & 15))`
+ str=${dig}${str}
+ val=$((${val} >> 4))
+ while [ ${val} -gt 0 ]; do
+ dig=`hexdigit $((${val} & 15))`
+ str=${dig}${str}
+ val=$((${val} >> 4))
+ done
+
+ echo ${str}
+}
+
+network6_interface_setup()
+{
+ interfaces=$*
+ rtsol_interfaces=''
+ case ${ipv6_gateway_enable} in
+ [Yy][Ee][Ss])
+ rtsol_available=no
+ ;;
+ *)
+ rtsol_available=yes
+ ;;
+ esac
+ for i in $interfaces; do
+ rtsol_interface=yes
+ eval prefix=\$ipv6_prefix_$i
+ if [ -n "${prefix}" ]; then
+ rtsol_available=no
+ rtsol_interface=no
+ laddr=`network6_getladdr $i`
+ hostid=`expr "${laddr}" : 'fe80::\(.*\)%\(.*\)'`
+ for j in ${prefix}; do
+ address=$j\:${hostid}
+ ifconfig $i inet6 ${address} prefixlen 64 alias
+
+ case ${ipv6_gateway_enable} in
+ [Yy][Ee][Ss])
+ # subnet-router anycast address
+ # (rfc2373)
+ ifconfig $i inet6 $j:: prefixlen 64 \
+ alias anycast
+ ;;
+ esac
+ done
+ fi
+ eval ipv6_ifconfig=\$ipv6_ifconfig_$i
+ if [ -n "${ipv6_ifconfig}" ]; then
+ rtsol_available=no
+ rtsol_interface=no
+ ifconfig $i inet6 ${ipv6_ifconfig} alias
+ fi
+
+ if [ ${rtsol_available} = yes -a ${rtsol_interface} = yes ]
+ then
+ case ${i} in
+ lo0|gif[0-9]*|stf[0-9]*|faith[0-9]*|lp[0-9]*|sl[0-9]*|tun[0-9]*)
+ ;;
+ *)
+ rtsol_interfaces="${rtsol_interfaces} ${i}"
+ ;;
+ esac
+ else
+ ifconfig $i inet6
+ fi
+ done
+
+ if [ ${rtsol_available} = yes -a -n "${rtsol_interfaces}" ]; then
+ # Act as endhost - automatically configured.
+ # You can configure only single interface, as
+ # specification assumes that autoconfigured host has
+ # single interface only.
+ sysctl net.inet6.ip6.accept_rtadv=1
+ set ${rtsol_interfaces}
+ ifconfig $1 up
+ rtsol $1
+ fi
+
+ for i in $interfaces; do
+ alias=0
+ while : ; do
+ eval ipv6_ifconfig=\$ipv6_ifconfig_${i}_alias${alias}
+ if [ -z "${ipv6_ifconfig}" ]; then
+ break;
+ fi
+ ifconfig $i inet6 ${ipv6_ifconfig} alias
+ alias=$((${alias} + 1))
+ done
+ done
+}
+
+network6_stf_setup()
+{
+ case ${stf_interface_ipv4addr} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ # assign IPv6 addr and interface route for 6to4 interface
+ stf_prefixlen=$((16+${stf_interface_ipv4plen:-0}))
+ OIFS="$IFS"
+ IFS=".$IFS"
+ set ${stf_interface_ipv4addr}
+ IFS="$OIFS"
+ hexfrag1=`hexprint $(($1*256 + $2))`
+ hexfrag2=`hexprint $(($3*256 + $4))`
+ ipv4_in_hexformat="${hexfrag1}:${hexfrag2}"
+ case ${stf_interface_ipv6_ifid} in
+ [Aa][Uu][Tt][Oo] | '')
+ for i in ${ipv6_network_interfaces}; do
+ laddr=`network6_getladdr ${i}`
+ case ${laddr} in
+ '')
+ ;;
+ *)
+ break
+ ;;
+ esac
+ done
+ stf_interface_ipv6_ifid=`expr "${laddr}" : \
+ 'fe80::\(.*\)%\(.*\)'`
+ case ${stf_interface_ipv6_ifid} in
+ '')
+ stf_interface_ipv6_ifid=0:0:0:1
+ ;;
+ esac
+ ;;
+ esac
+ ifconfig stf0 create >/dev/null 2>&1
+ ifconfig stf0 inet6 2002:${ipv4_in_hexformat}:${stf_interface_ipv6_slaid:-0}:${stf_interface_ipv6_ifid} \
+ prefixlen ${stf_prefixlen}
+ # disallow packets to malicious 6to4 prefix
+ route add -inet6 2002:e000:: -prefixlen 20 ::1 -reject
+ route add -inet6 2002:7f00:: -prefixlen 24 ::1 -reject
+ route add -inet6 2002:0000:: -prefixlen 24 ::1 -reject
+ route add -inet6 2002:ff00:: -prefixlen 24 ::1 -reject
+ ;;
+ esac
+}
+
+network6_static_routes_setup()
+{
+ # Set up any static routes.
+ case ${ipv6_defaultrouter} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ ipv6_static_routes="default ${ipv6_static_routes}"
+ ipv6_route_default="default ${ipv6_defaultrouter}"
+ ;;
+ esac
+ case ${ipv6_static_routes} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ for i in ${ipv6_static_routes}; do
+ eval ipv6_route_args=\$ipv6_route_${i}
+ route add -inet6 ${ipv6_route_args}
+ done
+ ;;
+ esac
+}
+
+network6_faith_setup()
+{
+ case ${ipv6_faith_prefix} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ sysctl net.inet6.ip6.keepfaith=1
+ ifconfig faith0 create >/dev/null 2>&1
+ ifconfig faith0 up
+ for prefix in ${ipv6_faith_prefix}; do
+ prefixlen=`expr "${prefix}" : ".*/\(.*\)"`
+ case ${prefixlen} in
+ '')
+ prefixlen=96
+ ;;
+ *)
+ prefix=`expr "${prefix}" : \
+ "\(.*\)/${prefixlen}"`
+ ;;
+ esac
+ route add -inet6 ${prefix} -prefixlen ${prefixlen} ::1
+ route change -inet6 ${prefix} -prefixlen ${prefixlen} \
+ -ifp faith0
+ done
+ ;;
+ esac
+}
+
+network6_default_interface_setup()
+{
+ # Choose IPv6 default interface if it is not clearly specified.
+ case ${ipv6_default_interface} in
+ '')
+ for i in ${ipv6_network_interfaces}; do
+ case $i in
+ lo0|faith[0-9]*)
+ continue
+ ;;
+ esac
+ laddr=`network6_getladdr $i exclude_tentative`
+ case ${laddr} in
+ '')
+ ;;
+ *)
+ ipv6_default_interface=$i
+ break
+ ;;
+ esac
+ done
+ ;;
+ esac
+
+ # Disallow unicast packets without outgoing scope identifiers,
+ # or route such packets to a "default" interface, if it is specified.
+ route add -inet6 fe80:: -prefixlen 10 ::1 -reject
+ case ${ipv6_default_interface} in
+ [Nn][Oo] | '')
+ route add -inet6 ff02:: -prefixlen 16 ::1 -reject
+ ;;
+ *)
+ laddr=`network6_getladdr ${ipv6_default_interface}`
+ route add -inet6 ff02:: ${laddr} -prefixlen 16 -interface \
+ -cloning
+
+ # Disable installing the default interface with the
+ # case net.inet6.ip6.forwarding=0 and
+ # net.inet6.ip6.accept_rtadv=0, due to avoid conflict
+ # between the default router list and the manual
+ # configured default route.
+ case ${ipv6_gateway_enable} in
+ [Yy][Ee][Ss])
+ ;;
+ *)
+ if [ `sysctl -n net.inet6.ip6.accept_rtadv` -eq 1 ]
+ then
+ ndp -I ${ipv6_default_interface}
+ fi
+ ;;
+ esac
+ ;;
+ esac
+}
+
+network6_getladdr()
+{
+ ifconfig $1 2>/dev/null | while read proto addr rest; do
+ case ${proto} in
+ inet6)
+ case ${addr} in
+ fe80::*)
+ if [ -z "$2" ]; then
+ echo ${addr}
+ return
+ fi
+ case ${rest} in
+ *tentative*)
+ continue
+ ;;
+ *)
+ echo ${addr}
+ return
+ esac
+ esac
+ esac
+ done
+}
+
+network_ipv6_start()
+{
+ # disallow "internal" addresses to appear on the wire
+ route add -inet6 ::ffff:0.0.0.0 -prefixlen 96 ::1 -reject
+ route add -inet6 ::0.0.0.0 -prefixlen 96 ::1 -reject
+
+ case ${ipv6_network_interfaces} in
+ [Aa][Uu][Tt][Oo])
+ # Get a list of network interfaces
+ ipv6_network_interfaces="`ifconfig -l`"
+ ;;
+ [Nn][Oo][Nn][Ee])
+ ipv6_network_interfaces=''
+ ;;
+ esac
+
+ if checkyesno ipv6_gateway_enable ; then
+ # act as a router
+ ${SYSCTL_W} net.inet6.ip6.forwarding=1
+ ${SYSCTL_W} net.inet6.ip6.accept_rtadv=0
+
+ # wait for DAD
+ for i in $ipv6_network_interfaces; do
+ ifconfig $i up
+ done
+ sleep `${SYSCTL_N} net.inet6.ip6.dad_count`
+ sleep 1
+ else
+ # act as endhost - start with manual configuration
+ # Setup of net.inet6.ip6.accept_rtadv is done later by
+ # network6_interface_setup.
+ ${SYSCTL_W} net.inet6.ip6.forwarding=0
+ fi
+
+ if [ -n "${ipv6_network_interfaces}" ]; then
+ # Setup the interfaces
+ network6_interface_setup $ipv6_network_interfaces
+
+ # wait for DAD's completion (for global addrs)
+ sleep `${SYSCTL_N} net.inet6.ip6.dad_count`
+ sleep 1
+ fi
+
+ # Filter out interfaces on which IPv6 initialization failed.
+ if checkyesno ipv6_gateway_enable ; then
+ ipv6_working_interfaces=""
+ for i in ${ipv6_network_interfaces}; do
+ laddr=`network6_getladdr $i exclude_tentative`
+ case ${laddr} in
+ '')
+ ;;
+ *)
+ ipv6_working_interfaces="$i \
+ ${ipv6_working_interfaces}"
+ ;;
+ esac
+ done
+ ipv6_network_interfaces=${ipv6_working_interfaces}
+ fi
+
+ # Setup IPv6 to IPv4 mapping
+ network6_stf_setup
+
+ # Install the "default interface" to kernel, which will be used
+ # as the default route when there's no router.
+ network6_default_interface_setup
+
+ # Setup static routes
+ network6_static_routes_setup
+
+ # Setup faith
+ network6_faith_setup
+
+ # Support for IPv4 address tacked onto an IPv6 address
+ if checkyesno ipv6_ipv4mapping ; then
+ echo 'IPv4 mapped IPv6 address support=YES'
+ ${SYSCTL_W} net.inet6.ip6.v6only=0 >/dev/null
+ else
+ echo 'IPv4 mapped IPv6 address support=NO'
+ ${SYSCTL_W} net.inet6.ip6.v6only=1 >/dev/null
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/newsyslog b/etc/rc.d/newsyslog
new file mode 100755
index 0000000..5a3927e
--- /dev/null
+++ b/etc/rc.d/newsyslog
@@ -0,0 +1,27 @@
+#!/bin/sh
+#
+# $NetBSD: newsyslog,v 1.5 2002/03/24 15:51:26 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: newsyslog
+# REQUIRE: mountcritremote sysdb
+# BEFORE: syslogd SERVERS
+
+. /etc/rc.subr
+
+name="newsyslog"
+rcvar=$name
+required_files="/etc/newsyslog.conf"
+start_cmd="newsyslog_start"
+stop_cmd=":"
+
+newsyslog_start()
+{
+ echo -n "Trimming log files:"
+ /usr/bin/newsyslog -s $rc_flags
+ echo " done."
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/nfsclient b/etc/rc.d/nfsclient
new file mode 100644
index 0000000..9327748
--- /dev/null
+++ b/etc/rc.d/nfsclient
@@ -0,0 +1,57 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: nfsclient
+# REQUIRE: NETWORKING mountcritremote rpcbind
+# KEYWORD: FreeBSD shutdown
+
+. /etc/rc.subr
+
+name="nfsclient"
+rcvar="nfs_client_enable"
+start_cmd="nfsclient_start"
+start_precmd="nfsclient_precmd"
+stop_cmd="unmount_all"
+
+# Load nfs module if it was not compiled into the kernel
+nfsclient_precmd()
+{
+ if ! sysctl vfs.nfs >/dev/null 2>&1; then
+ if ! kldload nfsclient ; then
+ warn 'Could not load nfs client module'
+ return 1
+ fi
+ fi
+ return 0
+}
+
+nfsclient_start()
+{
+ #
+ # Set some nfs client related sysctls
+ #
+
+ if [ -n "${nfs_access_cache}" ]; then
+ echo -n " NFS access cache time=${nfs_access_cache}"
+ sysctl vfs.nfs.access_cache_timeout=${nfs_access_cache} >/dev/null
+ fi
+ if [ -n "${nfs_bufpackets}" ]; then
+ sysctl vfs.nfs.bufpackets=${nfs_bufpackets} > /dev/null
+ fi
+
+ unmount_all
+}
+
+unmount_all()
+{
+ # If /var/db/mounttab exists, some nfs-server has not been
+ # successfully notified about a previous client shutdown.
+ # If there is no /var/db/mounttab, we do nothing.
+ if [ -f /var/db/mounttab ]; then
+ rpc.umntall -k
+ fi
+}
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/nfsd b/etc/rc.d/nfsd
new file mode 100755
index 0000000..b44bfe6
--- /dev/null
+++ b/etc/rc.d/nfsd
@@ -0,0 +1,54 @@
+#!/bin/sh
+#
+# $NetBSD: nfsd,v 1.4 2001/06/16 06:13:10 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: nfsd
+# REQUIRE: mountd
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="nfsd"
+rcvar=`set_rcvar nfs_server`
+command="/usr/sbin/${name}"
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ command_args="${nfs_server_flags}"
+ start_precmd="nfsd_precmd"
+ ;;
+NetBSD)
+ required_vars="mountd rpcbind"
+ start_precmd=
+ ;;
+esac
+
+nfsd_precmd()
+{
+ if ! sysctl vfs.nfsrv >/dev/null 2>&1; then
+ force_depend nfsserver || return 1
+ fi
+
+ if ! checkyesno rpcbind_enable && \
+ ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
+ then
+ force_depend rpcbind || return 1
+ fi
+
+ if ! checkyesno mountd_enable && \
+ ! /etc/rc.d/mountd forcestatus 1>/dev/null 2>&1
+ then
+ force_depend mountd || return 1
+ fi
+
+ if checkyesno nfs_reserved_port_only ; then
+ echo 'NFS on reserved port only=YES'
+ sysctl vfs.nfsrv.nfs_privport=1 > /dev/null
+ fi
+ return 0
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/nfslocking b/etc/rc.d/nfslocking
new file mode 100755
index 0000000..aa55bc3
--- /dev/null
+++ b/etc/rc.d/nfslocking
@@ -0,0 +1,46 @@
+#!/bin/sh
+#
+# $NetBSD: nfslocking,v 1.6 2002/03/24 15:52:41 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: nfslocking
+# REQUIRE: nfsserver nfsclient nfsd
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+arg=$1
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ RCVAR_SERVER="nfs_server_enable"
+ RCVAR_CLIENT="nfs_client_enable"
+ RCVAR_STATD="rpc_statd_enable"
+ RCVAR_LOCKD="rpc_lockd_enable"
+ ;;
+NetBSD)
+ RCVAR_SERVER="nfs_server"
+ RCVAR_CLIENT="nfs_client"
+ RCVAR_STATD="statd"
+ RCVAR_LOCKD="lockd"
+ ;;
+esac
+
+start_precmd="checkyesno ${RCVAR_SERVER} || checkyesno ${RCVAR_CLIENT}
+ [ -n "$rc_force" ]"
+stop_precmd=$start_precmd
+status_precmd=$start_precmd
+
+name="statd"
+rcvar=${RCVAR_STATD}
+command="/usr/sbin/rpc.${name}"
+load_rc_config $name
+run_rc_command "$arg"
+
+name="lockd"
+rcvar=${RCVAR_LOCKD}
+command="/usr/sbin/rpc.${name}"
+load_rc_config $name
+run_rc_command "$arg"
diff --git a/etc/rc.d/nfsserver b/etc/rc.d/nfsserver
new file mode 100644
index 0000000..f62029e
--- /dev/null
+++ b/etc/rc.d/nfsserver
@@ -0,0 +1,30 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: nfsserver
+# REQUIRE: NETWORKING mountcritremote
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="nfsserver"
+rcvar="nfs_server_enable"
+start_cmd="nfsserver_start"
+stop_cmd=":"
+
+# Load nfs modules if they were not compiled into the kernel
+nfsserver_start()
+{
+ if ! sysctl vfs.nfsrv >/dev/null 2>&1; then
+ if ! kldload nfsserver ; then
+ warn 'Could not load NFS server module'
+ return 1
+ fi
+ fi
+ return 0
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/ntpd b/etc/rc.d/ntpd
new file mode 100755
index 0000000..fa1726e
--- /dev/null
+++ b/etc/rc.d/ntpd
@@ -0,0 +1,53 @@
+#!/bin/sh
+#
+# $NetBSD: ntpd,v 1.6 2002/03/22 04:33:59 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: ntpd
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name=ntpd
+rcvar=`set_rcvar`
+command="/usr/sbin/${name}"
+pidfile="/var/run/${name}.pid"
+required_files="/etc/ntp.conf"
+
+case `${CMD_OSTYPE}` in
+NetBSD)
+ start_precmd="ntpd_precmd"
+ ;;
+esac
+
+ntpd_precmd()
+{
+ if [ -z "$ntpd_chrootdir" ]; then
+ return 0;
+ fi
+
+ # If running in a chroot cage, ensure that the appropriate files
+ # exist inside the cage, as well as helper symlinks into the cage
+ # from outside.
+ #
+ # As this is called after the is_running and required_dir checks
+ # are made in run_rc_command(), we can safely assume ${ntpd_chrootdir}
+ # exists and ntpd isn't running at this point (unless forcestart
+ # is used).
+ #
+ if [ ! -c "${ntpd_chrootdir}/dev/clockctl" ]; then
+ rm -f "${ntpd_chrootdir}/dev/clockctl"
+ ( cd /dev ; /bin/pax -rw -pe clockctl "${ntpd_chrootdir}/dev" )
+ fi
+ ln -fs "${ntpd_chrootdir}/var/db/ntp.drift" /var/db/ntp.drift
+
+ # Change run_rc_commands()'s internal copy of $ntpd_flags
+ #
+ rc_flags="-u ntpd:ntpd -i ${ntpd_chrootdir} $rc_flags"
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/ntpdate b/etc/rc.d/ntpdate
new file mode 100755
index 0000000..37b1d07
--- /dev/null
+++ b/etc/rc.d/ntpdate
@@ -0,0 +1,43 @@
+#!/bin/sh
+#
+# $NetBSD: ntpdate,v 1.8 2002/03/22 04:16:39 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: ntpdate
+# REQUIRE: NETWORKING syslogd
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="ntpdate"
+rcvar=`set_rcvar`
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ command="/usr/sbin/${name}"
+ command_args=">/dev/null 2>&1"
+ pidfile="/var/run/${name}.pid"
+ ;;
+NetBSD)
+ start_cmd="ntpdate_start"
+ stop_cmd=":"
+ ;;
+esac
+
+ntpdate_start()
+{
+ if [ -z "$ntpdate_hosts" ]; then
+ ntpdate_hosts=`awk '
+ /^server[ \t]*127.127/ {next}
+ /^(server|peer)/ {print $2}
+ ' </etc/ntp.conf`
+ fi
+ if [ -n "$ntpdate_hosts" ]; then
+ echo "Setting date via ntp."
+ ntpdate $rc_flags $ntpdate_hosts
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/othermta b/etc/rc.d/othermta
new file mode 100644
index 0000000..05236a8
--- /dev/null
+++ b/etc/rc.d/othermta
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: mail
+# REQUIRE: LOGIN
+# KEYWORD: FreeBSD
+
+# XXX - TEMPORARY SCRIPT UNTIL YOU WRITE YOUR OWN REPLACEMENT.
+#
+. /etc/rc.subr
+
+load_rc_config 'XXX'
+
+if [ -n "${mta_start_script}" ]; then
+ [ "${mta_start_script}" != "/etc/rc.sendmail" ] && \
+ sh ${mta_start_script} "$1"
+fi
diff --git a/etc/rc.d/pccard b/etc/rc.d/pccard
new file mode 100644
index 0000000..92e052c
--- /dev/null
+++ b/etc/rc.d/pccard
@@ -0,0 +1,68 @@
+#!/bin/sh
+#
+# Copyright (c) 1996 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# PROVIDE: pccard
+# REQUIRE: mountcritlocal
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="pccard"
+start_cmd="pccard_start"
+stop_cmd=":"
+
+pccard_start()
+{
+ if checkyesno pccard_enable ; then
+ echo -n 'Setup PC-CARD:'
+
+ case ${pccard_mem} in
+ [Dd][Ee][Ff][Aa][Uu][Ll][Tt])
+ pccardc pccardmem 0xd0000 1>/dev/null && echo -n ' memory'
+ ;;
+ *)
+ pccardc pccardmem ${pccard_mem} 1>/dev/null && echo -n ' memory'
+ ;;
+ esac
+
+ if [ -n "${pccard_beep}" ] ; then
+ pccardc beep ${pccard_beep} && echo -n ' beep'
+ fi
+
+ if [ -n "${pccard_conf}" ]; then
+ pccardd_flags="${pccardd_flags} -f ${pccard_conf}"
+ fi
+
+ pccardd ${pccardd_flags} && echo -n ' pccardd'
+ echo '.'
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/pcvt b/etc/rc.d/pcvt
new file mode 100644
index 0000000..4f71abc
--- /dev/null
+++ b/etc/rc.d/pcvt
@@ -0,0 +1,226 @@
+#!/bin/sh -
+#
+# Copyright (c) 2002 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# PROVIDE: pcvt
+# REQUIRE: LOGIN
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="pcvt"
+start_precmd="/usr/sbin/ispcvt -d /dev/ttyv0"
+start_cmd="pcvt_start"
+
+pcvt_echo()
+{
+ if checkyesno pcvt_verbose; then
+ echo $1 "$2"
+ fi
+}
+
+pcvt_start()
+{
+ # path for pcvt's EGA/VGA download fonts
+ FONTP=/usr/share/misc/pcvtfonts
+
+ if checkyesno pcvt_verbose; then
+ echo "Configuring pcvt console driver:"
+ else
+ echo "-n" "Configuring pcvt"
+ fi
+
+ # video adapter type
+
+ adapter=`/usr/sbin/scon -d /dev/ttyv0 -a`
+
+ pcvt_echo "-n" " video adapter type is $adapter, "
+
+ # monitor type (mono/color)
+
+ monitor=`/usr/sbin/scon -d /dev/ttyv0 -m`
+
+ pcvt_echo "" "monitor type is $monitor"
+
+ # load fonts into VGA
+
+ if [ $adapter = VGA ] ; then
+ pcvt_echo "-n" " loading fonts: 8x16:0,"
+ loadfont -d /dev/ttyv0 -c0 -f $FONTP/vt220l.816
+
+ pcvt_echo "-n" "1 "
+ loadfont -d /dev/ttyv0 -c1 -f $FONTP/vt220h.816
+
+ pcvt_echo "-n" " 8x14:0,"
+ loadfont -d /dev/ttyv0 -c2 -f $FONTP/vt220l.814
+
+ pcvt_echo "-n" "1 "
+ loadfont -d /dev/ttyv0 -c3 -f $FONTP/vt220h.814
+
+ pcvt_echo "-n" " 8x10:0,"
+ loadfont -d /dev/ttyv0 -c4 -f $FONTP/vt220l.810
+
+ pcvt_echo "-n" "1 "
+ loadfont -d /dev/ttyv0 -c5 -f $FONTP/vt220h.810
+
+ pcvt_echo "-n" " 8x8:0,"
+ loadfont -d /dev/ttyv0 -c6 -f $FONTP/vt220l.808
+
+ pcvt_echo "" "1 "
+ loadfont -d /dev/ttyv0 -c7 -f $FONTP/vt220h.808
+
+ # setting screen sizes
+
+ case ${pcvt_lines} in
+ 28)
+ size=-s28
+ pcvt_echo "" " switching to 28 lines"
+ ;;
+ 40)
+ size=-s40
+ pcvt_echo "" " switching to 40 lines"
+ ;;
+ 50)
+ size=-s50
+ pcvt_echo "" " switching to 50 lines"
+ ;;
+ *)
+ size=-s25
+ pcvt_echo "" " switching to 25 lines"
+ ;;
+ esac
+ fi
+
+ # use HP extensions to VT220 or plain VT220 ?
+
+ if checkyesno pcvt_hpext; then
+ emulation=-H
+ pcvt_echo "" " setting emulation to VT220 with HP extensions"
+ else
+ emulation=-V
+ pcvt_echo "" " setting emulation to VT220"
+ fi
+
+ # for all screens do
+
+ for device in /dev/ttyv*
+ do
+ # set emulation
+
+ /usr/sbin/scon -d$device $size $emulation >/dev/null 2>&1
+ if [ $? != 0 ] ; then
+ break 1
+ fi
+
+ # set cursor shape
+
+ case ${pcvt_cursorh} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ case ${pcvt_cursorl} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ /usr/sbin/cursor -d$device -s$pcvt_cursorh -e$pcvt_cursorl
+ ;;
+ esac
+ ;;
+ esac
+
+
+ # on monochrome monitor, set color palette to use a higher intensity
+
+ if checkyesno pcvt_monohigh && \
+ [ $monitor = MONO -a $adapter = VGA ]
+ then
+ /usr/sbin/scon -d$device -p8,60,60,60
+ fi
+ done
+
+ # switch to screen 0
+
+ pcvt_echo "" " switching to screen 0"
+
+ /usr/sbin/scon -d /dev/ttyv0
+
+ # screensaver timeout
+
+ case ${pcvt_blanktime} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ pcvt_echo "" " setting screensaver timeout to $pcvt_blanktime seconds"
+ /usr/sbin/scon -d /dev/ttyv0 -t$pcvt_blanktime
+ ;;
+ esac
+
+ # national keyboard layout
+
+ case ${pcvt_keymap} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ pcvt_echo "" " switching national keyboard layout to $pcvt_keymap"
+ /usr/sbin/kcon -m $pcvt_keymap
+ ;;
+ esac
+
+ # keyboard repeat delay value
+
+ case ${pcvt_keydel} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ pcvt_echo "" " setting keyboard delay to $pcvt_keydel"
+ /usr/sbin/kcon -d$pcvt_keydel
+ ;;
+ esac
+
+ # keyboard repeat rate value
+
+ case ${pcvt_keyrate} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ pcvt_echo "" " setting keyboard repeat rate to $pcvt_keyrate"
+ /usr/sbin/kcon -r$pcvt_keyrate
+ ;;
+ esac
+
+ # done
+
+ if checkyesno pcvt_verbose; then
+ echo "Finished configuring pcvt console driver."
+ else
+ echo "."
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/poffd b/etc/rc.d/poffd
new file mode 100644
index 0000000..5b5668a
--- /dev/null
+++ b/etc/rc.d/poffd
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+# $NetBSD: poffd,v 1.1 2001/01/14 15:37:22 minoura Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: poffd
+# REQUIRE: DAEMON
+
+. /etc/rc.subr
+
+name="poffd"
+rcvar=$name
+command="/usr/sbin/${name}"
+start_precmd="test -c /dev/pow0"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/postfix b/etc/rc.d/postfix
new file mode 100755
index 0000000..807072b
--- /dev/null
+++ b/etc/rc.d/postfix
@@ -0,0 +1,42 @@
+#!/bin/sh
+#
+# $NetBSD: postfix,v 1.6 2002/02/12 02:19:27 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: mail
+# REQUIRE: LOGIN
+# we make mail start late, so that things like .forward's are not
+# processed until the system is fully operational
+
+. /etc/rc.subr
+
+name="postfix"
+rcvar=$name
+required_files="/etc/${name}/main.cf"
+start_precmd="postfix_precmd"
+start_cmd="${name} start"
+stop_cmd="${name} stop"
+reload_cmd="${name} reload"
+extra_commands="reload"
+spooletcdir="/var/spool/${name}/etc"
+required_dirs=$spooletcdir
+
+postfix_precmd()
+{
+ # As this is called after the is_running and required_dir checks
+ # are made in run_rc_command(), we can safely assume ${spooletcdir}
+ # exists and postfix isn't running at this point (unless forcestart
+ # is used).
+ #
+
+ for f in localtime resolv.conf services; do
+ if [ -f /etc/$f ]; then
+ cmp -s /etc/$f ${spooletcdir}/$f || \
+ cp -p /etc/$f ${spooletcdir}/$f
+ fi
+ done
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/ppp b/etc/rc.d/ppp
new file mode 100644
index 0000000..67638cb
--- /dev/null
+++ b/etc/rc.d/ppp
@@ -0,0 +1,48 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: ppp-user
+# REQUIRE: network1
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="ppp"
+rcvar="ppp_enable"
+start_cmd="ppp_start"
+stop_cmd=":"
+
+ppp_start()
+{
+ # Establish ppp mode.
+ #
+ if [ "${ppp_mode}" != "ddial" -a "${ppp_mode}" != "direct" \
+ -a "${ppp_mode}" != "dedicated" \
+ -a "${ppp_mode}" != "background" ]; then
+ ppp_mode="auto"
+ fi
+
+ ppp_command="/usr/sbin/ppp -quiet -${ppp_mode}"
+
+ # Switch on NAT mode?
+ #
+ case ${ppp_nat} in
+ [Yy][Ee][Ss])
+ ppp_command="${ppp_command} -nat"
+ ;;
+ esac
+
+ ppp_command="${ppp_command} ${ppp_profile}"
+
+ echo "Starting ppp as \"${ppp_user}\""
+ su -m ${ppp_user} -c "exec ${ppp_command}"
+
+ # Re-Sync ipfilter so it picks up any new network interfaces
+ #
+ /etc/rc.d/ipfilter resync
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/ppp-user b/etc/rc.d/ppp-user
new file mode 100644
index 0000000..67638cb
--- /dev/null
+++ b/etc/rc.d/ppp-user
@@ -0,0 +1,48 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: ppp-user
+# REQUIRE: network1
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="ppp"
+rcvar="ppp_enable"
+start_cmd="ppp_start"
+stop_cmd=":"
+
+ppp_start()
+{
+ # Establish ppp mode.
+ #
+ if [ "${ppp_mode}" != "ddial" -a "${ppp_mode}" != "direct" \
+ -a "${ppp_mode}" != "dedicated" \
+ -a "${ppp_mode}" != "background" ]; then
+ ppp_mode="auto"
+ fi
+
+ ppp_command="/usr/sbin/ppp -quiet -${ppp_mode}"
+
+ # Switch on NAT mode?
+ #
+ case ${ppp_nat} in
+ [Yy][Ee][Ss])
+ ppp_command="${ppp_command} -nat"
+ ;;
+ esac
+
+ ppp_command="${ppp_command} ${ppp_profile}"
+
+ echo "Starting ppp as \"${ppp_user}\""
+ su -m ${ppp_user} -c "exec ${ppp_command}"
+
+ # Re-Sync ipfilter so it picks up any new network interfaces
+ #
+ /etc/rc.d/ipfilter resync
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/pppoed b/etc/rc.d/pppoed
new file mode 100644
index 0000000..e9376d2
--- /dev/null
+++ b/etc/rc.d/pppoed
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: pppoed
+# REQUIRE: NETWORKING
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="pppoed"
+rcvar="`set_rcvar`"
+start_cmd="pppoed_start"
+# XXX stop_cmd will not be straightforward
+stop_cmd=":"
+
+pppoed_start()
+{
+ if [ -n "${pppoed_provider}" ]; then
+ pppoed_flags="${pppoed_flags} -p ${pppoed_provider}"
+ fi
+ echo 'Starting pppoed'
+ _opts=$-; set -f
+ /usr/libexec/pppoed ${pppoed_flags} ${pppoed_interface}
+ set +f; set -${_opts}
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/pwcheck b/etc/rc.d/pwcheck
new file mode 100755
index 0000000..c57e27e
--- /dev/null
+++ b/etc/rc.d/pwcheck
@@ -0,0 +1,29 @@
+#!/bin/sh
+#
+# $NetBSD: pwcheck,v 1.4 2002/03/22 04:33:59 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: pwcheck
+# REQUIRE: mountcritremote syslogd
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="pwcheck"
+start_cmd="pwcheck_start"
+stop_cmd=":"
+
+pwcheck_start()
+{
+ # check the password temp/lock file
+ #
+ if [ -f /etc/ptmp ]; then
+ logger -s -p auth.err \
+ "password file may be incorrect -- /etc/ptmp exists"
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/quota b/etc/rc.d/quota
new file mode 100755
index 0000000..a225880
--- /dev/null
+++ b/etc/rc.d/quota
@@ -0,0 +1,35 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# Enable/Check the quotas (must be after ypbind if using NIS)
+#
+
+# PROVIDE: quota
+# REQUIRE: mountcritremote
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="quota"
+rcvar="enable_quotas"
+start_cmd="quota_start"
+stop_cmd="/usr/sbin/quotaoff -a"
+
+quota_start()
+{
+ if checkyesno check_quotas ; then
+ echo -n 'Checking quotas:'
+ quotacheck -a
+ echo ' done.'
+ fi
+
+ echo -n 'Enabling quotas:'
+ quotaon -a
+ echo ' done.'
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/racoon b/etc/rc.d/racoon
new file mode 100755
index 0000000..aaa264a
--- /dev/null
+++ b/etc/rc.d/racoon
@@ -0,0 +1,20 @@
+#!/bin/sh
+#
+# $NetBSD: racoon,v 1.3 2002/03/22 04:33:59 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: ike
+# REQUIRE: isdnd kdc ppp
+# BEFORE: SERVERS
+
+. /etc/rc.subr
+
+name="racoon"
+rcvar=$name
+command="/usr/sbin/${name}"
+pidfile="/var/run/${name}.pid"
+required_files="/etc/racoon/racoon.conf"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/raidframe b/etc/rc.d/raidframe
new file mode 100755
index 0000000..53156dc
--- /dev/null
+++ b/etc/rc.d/raidframe
@@ -0,0 +1,41 @@
+#!/bin/sh
+#
+# $NetBSD: raidframe,v 1.6 2002/01/27 14:16:33 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: disks
+
+. /etc/rc.subr
+
+name="raidframe"
+start_cmd="raidframe_start"
+stop_cmd=":"
+
+raidframe_start()
+{
+ # Configure non-auto-configured raid devices.
+ # Ensure order by globbing raid[0-9].conf before raid[0-9][0-9].conf.
+ #
+ for cfg in /etc/raid[0-9].conf /etc/raid[0-9][0-9].conf ; do
+ [ ! -f $cfg ] && continue
+ dev=${cfg##*/}
+ dev=${dev%%.conf}
+ raidctl -c $cfg $dev
+ done
+
+ # Initiate parity/mirror reconstruction as needed, in the background.
+ #
+ (
+ for dev in `sysctl -n hw.disknames`; do
+ case $dev in
+ raid[0-9]*)
+ raidctl -P $dev
+ ;;
+ esac
+ done
+ ) &
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/random b/etc/rc.d/random
new file mode 100644
index 0000000..1450b93
--- /dev/null
+++ b/etc/rc.d/random
@@ -0,0 +1,93 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: random
+# REQUIRE: diskless mountcritlocal initrandom
+# BEFORE: network1
+# KEYWORD: FreeBSD shutdown
+
+. /etc/rc.subr
+
+name="random"
+start_cmd="random_start"
+stop_cmd="random_stop"
+
+feed_dev_random()
+{
+ if [ -f "${1}" -a -r "${1}" -a -s "${1}" ]; then
+ cat "${1}" | dd of=/dev/random bs=8k 2>/dev/null
+ fi
+}
+
+random_start()
+{
+ # Reseed /dev/random with previously stored entropy.
+ case ${entropy_dir} in
+ [Nn][Oo])
+ ;;
+ *)
+ entropy_dir=${entropy_dir:-/var/db/entropy}
+ if [ -d "${entropy_dir}" ]; then
+ if [ -w /dev/random ]; then
+ for seedfile in ${entropy_dir}/*; do
+ feed_dev_random "${seedfile}"
+ done
+ fi
+ fi
+ ;;
+ esac
+
+ case ${entropy_file} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ if [ -w /dev/random ]; then
+ feed_dev_random "${entropy_file}"
+ fi
+ ;;
+ esac
+}
+
+random_stop()
+{
+ # Write some entropy so when the machine reebots /dev/random
+ # can be reseeded
+ #
+ case ${entropy_file} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ echo -n 'Writing entropy file:'
+ rm -f ${entropy_file}
+ oumask=`umask`
+ umask 077
+ if touch ${entropy_file} ; then
+ entropy_file_confirmed="${entropy_file}"
+ else
+ # Try this as a reasonable alternative for read-only
+ # roots, diskless workstations, etc.
+ rm -f /var/db/entropy
+ if touch /var/db/entropy ; then
+ entropy_file_confirmed=/var/db/entropy
+ fi
+ fi
+ case ${entropy_file_confirmed} in
+ '')
+ err 1 '${entropy_file_confirmed}:' \
+ ' entropy file write failed.'
+ ;;
+ *)
+ dd if=/dev/random of=${entropy_file_confirmed} \
+ bs=4096 count=1 2> /dev/null
+ echo '.'
+ ;;
+ esac
+ umask ${oumask}
+ ;;
+ esac
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/rarpd b/etc/rc.d/rarpd
new file mode 100755
index 0000000..63e0bfc
--- /dev/null
+++ b/etc/rc.d/rarpd
@@ -0,0 +1,21 @@
+#!/bin/sh
+#
+# $NetBSD: rarpd,v 1.5 2002/03/22 04:33:59 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: rarpd
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="rarpd"
+rcvar=`set_rcvar`
+command="/usr/sbin/${name}"
+pidfile="/var/run/${name}.pid"
+required_files="/etc/ethers"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/rbootd b/etc/rc.d/rbootd
new file mode 100755
index 0000000..423c5c0
--- /dev/null
+++ b/etc/rc.d/rbootd
@@ -0,0 +1,21 @@
+#!/bin/sh
+#
+# $NetBSD: rbootd,v 1.6 2002/03/22 04:34:00 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: rbootd
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+
+. /etc/rc.subr
+
+name="rbootd"
+rcvar=$name
+command="/usr/sbin/${name}"
+pidfile="/var/run/${name}.pid"
+required_files="/etc/${name}.conf"
+extra_commands="reload"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/resolv b/etc/rc.d/resolv
new file mode 100644
index 0000000..c5cffb0
--- /dev/null
+++ b/etc/rc.d/resolv
@@ -0,0 +1,122 @@
+#!/bin/sh
+#
+# Copyright (c) 1999 Matt Dillon
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# PROVIDE: diskless
+# REQUIRE: initdiskless mountcritlocal
+# BEFORE: addswap random
+# KEYWORD: FreeBSD
+
+dlv=`/sbin/sysctl -n vfs.nfs.diskless_valid 2> /dev/null`
+[ ${dlv:=0} -eq 0 ] && exit 0
+
+name="diskless2"
+
+# Provide a function for normalizing the mounting of memory
+# filesystems. This should allow the rest of the code here to remain
+# as close as possible between 5-current and 4-stable.
+# $1 = size
+# $2 = mount point
+# $3 = md unit number (ignored in pre 5.0 systems)
+# $4 = (optional) bytes-per-inode
+mount_md()
+{
+ if [ -n "$4" ]; then
+ bpi="-i $4"
+ fi
+ /sbin/mdconfig -a -t malloc -s $1 -u $3
+ /sbin/disklabel -r -w md$3 auto
+ /sbin/newfs $bpi /dev/md$3c
+ /sbin/mount /dev/md$3c $2
+}
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/rc.subr ]; then
+ . /etc/rc.subr
+ load_rc_config $name
+elif [ -r /etc/defaults/rc.conf ]; then
+ . /etc/defaults/rc.conf
+ source_rc_confs
+elif [ -r /etc/rc.conf ]; then
+ . /etc/rc.conf
+fi
+
+echo "+++ mount_md of /var"
+mount_md ${varsize:=32m} /var 1
+
+echo "+++ populate /var using /etc/mtree/BSD.var.dist"
+/usr/sbin/mtree -deU -f /etc/mtree/BSD.var.dist -p /var
+case ${sendmail_enable} in
+[Nn][Oo][Nn][Ee])
+ ;;
+*)
+ /usr/sbin/mtree -deU -f /etc/mtree/BSD.sendmail.dist -p /
+ ;;
+esac
+
+echo "+++ create log files based on the contents of /etc/newsyslog.conf"
+LOGFILES=`/usr/bin/awk '$1 != "#" { printf "%s ", $1 } ' /etc/newsyslog.conf`
+if [ -n "$LOGFILES" ]; then
+ /usr/bin/touch $LOGFILES
+fi
+
+echo "+++ create lastlog"
+/usr/bin/touch /var/log/lastlog
+
+mount -a # chown and chgrp are in /usr
+
+# Since we are starting with a very fresh /etc on an MFS:
+if [ -d /conf/default/etc ]; then
+ newaliases
+fi
+
+#
+# XXX make sure to create one dir for each printer as requested by lpd
+#
+
+# If /tmp is a symlink, assume it points to somewhere writable, like
+# /var/tmp, otherwise, use a small memory filesystem for /tmp.
+#
+# XXX: mtree runs too early to create any directories needed in /tmp,
+# so if /var/tmp == /tmp, then you don't get a vi.recover.
+#
+if [ ! -h /tmp ]; then
+ mount_md ${tmpsize:=64m} /tmp 2
+ chmod 01777 /tmp
+fi
+
+if sysctl vfs.devfs.generation > /dev/null 2>&1 ; then
+ # we have DEVFS, no worries...
+ true
+else
+ # extract a list of device entries, then copy them to a writable fs
+ (cd /; find -x dev | cpio -o -H newc) > /tmp/dev.tmp
+ mount_md 4096 /dev 3 512
+ (cd /; cpio -i -H newc -d < /tmp/dev.tmp)
+fi
diff --git a/etc/rc.d/root b/etc/rc.d/root
new file mode 100755
index 0000000..d1c0783
--- /dev/null
+++ b/etc/rc.d/root
@@ -0,0 +1,51 @@
+#!/bin/sh
+#
+# $NetBSD: root,v 1.2 2000/05/13 08:45:09 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: root
+# REQUIRE: fsck
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="root"
+start_cmd="root_start"
+stop_cmd=":"
+
+root_start()
+{
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ # root normally must be read/write, but if this is a BOOTP NFS
+ # diskless boot it does not have to be.
+ #
+ case ${root_rw_mount} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ if ! mount -u -o rw / ; then
+ echo 'Mounting root filesystem rw failed, startup aborted'
+ exit 1
+ fi
+ ;;
+ esac
+
+ umount -a >/dev/null 2>&1
+ mount /
+
+ # If we booted a special kernel remove the record
+ # so we will boot the default kernel next time.
+ [ -e /boot/nextkernel ] && rm -f /boot/nextkernel
+ ;;
+ NetBSD)
+ umount -a >/dev/null 2>&1
+ mount /
+ rm -f /fastboot
+ ;;
+ esac
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/route6d b/etc/rc.d/route6d
new file mode 100755
index 0000000..5eb4407
--- /dev/null
+++ b/etc/rc.d/route6d
@@ -0,0 +1,35 @@
+#!/bin/sh
+#
+# $NetBSD: route6d,v 1.5 2002/03/22 04:34:00 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: route6d
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="route6d"
+
+# XXX - Executable may be in a different location. The $name variable
+# is different from the variable in rc.conf(5) so the
+# subroutines in rc.subr won't catch it. In this case, it
+# is also needed by the eval statement in the FreeBSD conditional.
+#
+load_rc_config $name
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ rcvar="ipv6_router_enable"
+ command="${ipv6_router:-/usr/sbin/${name}}"
+ eval ${name}_flags=\"${ipv6_router_flags}\"
+ ;;
+NetBSD)
+ rcvar=$name
+ command="/usr/sbin/${name}"
+ ;;
+esac
+
+run_rc_command "$1"
diff --git a/etc/rc.d/routed b/etc/rc.d/routed
new file mode 100755
index 0000000..0d58ee8
--- /dev/null
+++ b/etc/rc.d/routed
@@ -0,0 +1,44 @@
+#!/bin/sh
+#
+# $NetBSD: routed,v 1.7 2002/03/22 04:34:00 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: routed
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="routed"
+
+# XXX - Executable may be in a different location. The $name variable
+# is different from the variable in rc.conf(5) so the
+# subroutines in rc.subr won't catch it.
+#
+load_rc_config $name
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ rcvar="router_enable"
+ command="${router:-/sbin/${name}}"
+ eval ${name}_flags=${router_flags}
+ start_precmd=
+ ;;
+NetBSD)
+ rcvar=${name}
+ command="/sbin/${name}"
+ start_precmd="routed_precmd"
+ ;;
+esac
+
+routed_precmd()
+{
+ if checkyesno gated && checkyesno routed; then
+ warn "gated and routed both requested to be run: only running gated."
+ return 1
+ fi
+}
+
+run_rc_command "$1"
diff --git a/etc/rc.d/routing b/etc/rc.d/routing
new file mode 100644
index 0000000..abeea16
--- /dev/null
+++ b/etc/rc.d/routing
@@ -0,0 +1,140 @@
+#!/bin/sh
+#
+# Configure routing and miscellaneous network tunables
+#
+# $FreeBSD$
+#
+
+# PROVIDE: network2
+# REQUIRE: network1 ppp-user
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="network2"
+start_cmd="network2_start"
+stop_cmd=":"
+
+network2_start()
+{
+ case ${defaultrouter} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ static_routes="default ${static_routes}"
+ route_default="default ${defaultrouter}"
+ ;;
+ esac
+
+ # Setup static routes. This should be done before router discovery.
+ #
+ if [ -n "${static_routes}" ]; then
+ for i in ${static_routes}; do
+ eval route_args=\$route_${i}
+ route add ${route_args}
+ done
+ fi
+
+ echo -n 'Additional routing options:'
+ case ${tcp_extensions} in
+ [Yy][Ee][Ss] | '')
+ ;;
+ *)
+ echo -n ' tcp extensions=NO'
+ sysctl net.inet.tcp.rfc1323=0 >/dev/null
+ ;;
+ esac
+
+ case ${icmp_bmcastecho} in
+ [Yy][Ee][Ss])
+ echo -n ' broadcast ping responses=YES'
+ sysctl net.inet.icmp.bmcastecho=1 >/dev/null
+ ;;
+ esac
+
+ case ${icmp_drop_redirect} in
+ [Yy][Ee][Ss])
+ echo -n ' ignore ICMP redirect=YES'
+ sysctl net.inet.icmp.drop_redirect=1 >/dev/null
+ ;;
+ esac
+
+ case ${icmp_log_redirect} in
+ [Yy][Ee][Ss])
+ echo -n ' log ICMP redirect=YES'
+ sysctl net.inet.icmp.log_redirect=1 >/dev/null
+ ;;
+ esac
+
+ case ${gateway_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' IP gateway=YES'
+ sysctl net.inet.ip.forwarding=1 >/dev/null
+ ;;
+ esac
+
+ case ${forward_sourceroute} in
+ [Yy][Ee][Ss])
+ echo -n ' do source routing=YES'
+ sysctl net.inet.ip.sourceroute=1 >/dev/null
+ ;;
+ esac
+
+ case ${accept_sourceroute} in
+ [Yy][Ee][Ss])
+ echo -n ' accept source routing=YES'
+ sysctl net.inet.ip.accept_sourceroute=1 >/dev/null
+ ;;
+ esac
+
+ case ${tcp_keepalive} in
+ [Nn][Oo])
+ echo -n ' TCP keepalive=NO'
+ sysctl net.inet.tcp.always_keepalive=0 >/dev/null
+ ;;
+ esac
+
+ case ${tcp_drop_synfin} in
+ [Yy][Ee][Ss])
+ echo -n ' drop SYN+FIN packets=YES'
+ sysctl net.inet.tcp.drop_synfin=1 >/dev/null
+ ;;
+ esac
+
+ case ${ipxgateway_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' IPX gateway=YES'
+ sysctl net.ipx.ipx.ipxforwarding=1 >/dev/null
+ ;;
+ esac
+
+ case ${arpproxy_all} in
+ [Yy][Ee][Ss])
+ echo -n ' ARP proxyall=YES'
+ sysctl net.link.ether.inet.proxyall=1 >/dev/null
+ ;;
+ esac
+
+ case ${ip_portrange_first} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ echo -n " ip_portrange_first=$ip_portrange_first"
+ sysctl net.inet.ip.portrange.first=$ip_portrange_first >/dev/null
+ ;;
+ esac
+
+ case ${ip_portrange_last} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ echo -n " ip_portrange_last=$ip_portrange_last"
+ sysctl net.inet.ip.portrange.last=$ip_portrange_last >/dev/null
+ ;;
+ esac
+
+ echo '.'
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/rpcbind b/etc/rc.d/rpcbind
new file mode 100755
index 0000000..a11da1f
--- /dev/null
+++ b/etc/rc.d/rpcbind
@@ -0,0 +1,24 @@
+#!/bin/sh
+#
+# $NetBSD: rpcbind,v 1.6 2002/01/31 01:26:06 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: rpcbind
+# REQUIRE: NETWORKING ntpdate syslogd named ppp
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="rpcbind"
+rcvar=`set_rcvar`
+command="/usr/sbin/${name}"
+
+case `${CMD_OSTYPE}` in
+NetBSD)
+ pidfile="/var/run/${name}.pid"
+ ;;
+esac
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/rtadvd b/etc/rc.d/rtadvd
new file mode 100755
index 0000000..8317e33
--- /dev/null
+++ b/etc/rc.d/rtadvd
@@ -0,0 +1,82 @@
+#!/bin/sh
+#
+# $NetBSD: rtadvd,v 1.5 2002/03/22 04:34:00 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: rtadvd
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="rtadvd"
+rcvar=`set_rcvar`
+command="/usr/sbin/${name}"
+start_precmd="rtadvd_precmd"
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ IS_GATEWAY="checkyesno ipv6_gateway_enable"
+ ;;
+NetBSD)
+ IS_GATEWAY="eval [ \"$ip6mode\" = \"router\" ]"
+ ;;
+esac
+
+rtadvd_precmd()
+{
+ if ! ${IS_GATEWAY} ; then
+ warn \
+ "${name} cannot be used on IPv6 host, only on an IPv6 router."
+ return 1
+ fi
+
+ # This should be enabled with a great care.
+ # You may want to fine-tune /etc/rtadvd.conf.
+ #
+ # And if you wish your rtadvd to receive and process
+ # router renumbering messages, specify your Router Renumbering
+ # security policy by -R option.
+ #
+ # See `man 3 ipsec_set_policy` for IPsec policy specification
+ # details.
+ # (CAUTION: This enables your routers prefix renumbering
+ # from another machine, so if you enable this, do it with
+ # enough care.)
+ #
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ # If specific interfaces haven't been specified,
+ # get a list of interfaces and enable it on them
+ #
+ case ${rtadvd_interfaces} in
+ '')
+ for i in `ifconfig -l` ; do
+ case $i in
+ lo0|gif[0-9]*|stf[0-9]*|faith[0-9]*|lp[0-9]*|sl[0-9]*|tun[0-9]*)
+ continue
+ ;;
+ *)
+ rtadvd_interfaces="${rtadvd_interfaces} ${i}"
+ ;;
+ esac
+ done
+ ;;
+ esac
+ command_args="${rtadvd_interfaces}"
+
+ # Enable Router Renumbering, unicast case
+ # (use correct src/dst addr)
+ # rtadvd -R "in ipsec ah/transport/fec0:0:0:1::1-fec0:0:0:10::1/require" ${ipv6_network_interfaces}
+ # Enable Router Renumbering, multicast case
+ # (use correct src addr)
+ # rtadvd -R "in ipsec ah/transport/ff05::2-fec0:0:0:10::1/require" ${ipv6_network_interfaces}
+ ;;
+ esac
+ return 0
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/rtsold b/etc/rc.d/rtsold
new file mode 100755
index 0000000..8645816
--- /dev/null
+++ b/etc/rc.d/rtsold
@@ -0,0 +1,27 @@
+#!/bin/sh
+#
+# $NetBSD: rtsold,v 1.5 2002/03/22 04:34:00 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: rtsold
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+
+. /etc/rc.subr
+
+name="rtsold"
+rcvar=$name
+command="/usr/sbin/${name}"
+start_precmd="rtsold_precmd"
+
+rtsold_precmd()
+{
+ if [ "$ip6mode" != "autohost" ]; then
+ warn "\$ip6mode must be set to 'autohost' to use ${name}."
+ return 1
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/rwho b/etc/rc.d/rwho
new file mode 100755
index 0000000..4a01ac1
--- /dev/null
+++ b/etc/rc.d/rwho
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+# $NetBSD: rwho,v 1.5 2002/03/22 04:34:00 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: rwho
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="rwhod"
+rcvar="`set_rcvar`"
+command="/usr/sbin/${name}"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/savecore b/etc/rc.d/savecore
new file mode 100755
index 0000000..21a6a4b
--- /dev/null
+++ b/etc/rc.d/savecore
@@ -0,0 +1,74 @@
+#!/bin/sh
+#
+# $NetBSD: savecore,v 1.5 2002/03/22 04:34:00 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: savecore
+# REQUIRE: syslogd
+# BEFORE: SERVERS
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="savecore"
+start_cmd="savecore_start"
+start_precmd="savecore_prestart"
+stop_cmd=":"
+
+case `${CMD_OSTYPE}` in
+NetBSD)
+ rcvar=$name
+ ;;
+esac
+
+savecore_prestart()
+{
+ # ${DUMPDIR} should be a directory or a symbolic link
+ # to the crash directory if core dumps are to be saved.
+ #
+ DUMPDIR="${dumpdir:-/var/crash}"
+
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ # Quit if we have no dump device
+ case ${dumpdev} in
+ [Nn][Oo] | '')
+ debug 'No dump device. Quitting.'
+ return 1
+ ;;
+ esac
+
+ # If there is no crash directory set it now
+ case ${dumpdir} in
+ '')
+ dumpdir='/var/crash'
+ ;;
+ [Nn][Oo])
+ dumpdir='NO'
+ ;;
+ esac
+
+ if [ ! -e "${dumpdev}" -o ! -d "${dumpdir}" ]; then
+ warn "Wrong dump device or directory. Savecore not run."
+ return 1
+ fi
+ ;;
+ NetBSD)
+ if [ ! -d "${dumpdir}" ]; then
+ warn "No /var/crash directory; savecore not run."
+ return 1
+ fi
+ ;;
+ esac
+ return 0
+}
+
+savecore_start()
+{
+ echo "Checking for core dump..."
+ savecore ${savecore_flags} ${DUMPDIR}
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/screenblank b/etc/rc.d/screenblank
new file mode 100755
index 0000000..de2af4f
--- /dev/null
+++ b/etc/rc.d/screenblank
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+# $NetBSD: screenblank,v 1.5 2002/03/22 04:34:00 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: screenblank
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+
+. /etc/rc.subr
+
+name="screenblank"
+rcvar=$name
+command="/usr/sbin/${name}"
+pidfile="/var/run/${name}.pid"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/securelevel b/etc/rc.d/securelevel
new file mode 100755
index 0000000..dce65e5
--- /dev/null
+++ b/etc/rc.d/securelevel
@@ -0,0 +1,56 @@
+#!/bin/sh
+#
+# $NetBSD: securelevel,v 1.4 2002/03/22 04:34:00 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: securelevel
+# REQUIRE: aftermountlkm ipnat mountd
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="securelevel"
+start_cmd="securelevel_start"
+stop_cmd=":"
+
+securelevel_start()
+{
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ case ${kern_securelevel_enable} in
+ [Yy][Ee][Ss])
+ if [ ${kern_securelevel} -ge 0 ]; then
+ echo 'Raising kernel security level: '
+ ${SYSCTL_W} kern.securelevel=${kern_securelevel}
+ fi
+ ;;
+ esac
+ ;;
+ NetBSD)
+ # if $securelevel is set higher, change it here, else if
+ # it is 0, change it to 1 here, before we start daemons
+ # or login services.
+ #
+ osecurelevel=`sysctl -n kern.securelevel`
+ if [ -n "$securelevel" -a "$securelevel" != "$osecurelevel" ]; then
+ if [ "$securelevel" -lt "$osecurelevel" ]; then
+ echo "Can't lower securelevel."
+ exit 1
+ else
+ echo -n "Setting securelevel: "
+ ${SYSCTL_W} kern.securelevel=$securelevel
+ fi
+ else
+ if [ "$osecurelevel" = 0 ]; then
+ echo -n "Setting securelevel: "
+ ${SYSCTL_W} kern.securelevel=1
+ fi
+ fi
+ ;;
+ esac
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/sendmail b/etc/rc.d/sendmail
new file mode 100755
index 0000000..0e717d4
--- /dev/null
+++ b/etc/rc.d/sendmail
@@ -0,0 +1,102 @@
+#!/bin/sh
+#
+# $NetBSD: sendmail,v 1.14 2002/02/12 01:26:36 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: mail
+# REQUIRE: LOGIN
+# KEYWORD: FreeBSD NetBSD
+# we make mail start late, so that things like .forward's are not
+# processed until the system is fully operational
+
+# XXX - Get together with sendmail mantainer to figure out how to
+# better handle SENDMAIL_ENABLE and 3rd party MTAs.
+#
+. /etc/rc.subr
+
+name="sendmail"
+rcvar=`set_rcvar`
+command="/usr/sbin/${name}"
+pidfile="/var/run/${name}.pid"
+required_files="/etc/mail/${name}.cf"
+start_precmd="sendmail_precmd"
+
+sendmail_precmd()
+{
+ # Die if there's pre-8.10 custom configuration file. This check is
+ # mandatory for smooth upgrade. See NetBSD PR 10100 for details.
+ #
+ if checkyesno ${rcvar} && [ -f "/etc/${name}.cf" ]; then
+ if ! cmp -s "/etc/mail/${name}.cf" "/etc/${name}.cf"; then
+ warn \
+ "${name} was not started; you have multiple copies of sendmail.cf."
+ return 1
+ fi
+ fi
+
+ # check modifications on /etc/mail/aliases
+ if [ -f "/etc/mail/aliases.db" ]; then
+ if [ "/etc/mail/aliases" -nt "/etc/mail/aliases.db" ]; then
+ echo \
+ "${name}: /etc/mail/aliases newer than /etc/mail/aliases.db, regenerating"
+ /usr/bin/newaliases
+ fi
+ else
+ echo \
+ "${name}: /etc/mail/aliases.db not present, generating"
+ /usr/bin/newaliases
+ fi
+
+ # check couple of common db files, too
+ for f in genericstable virtusertable domaintable mailertable; do
+ if [ -r "/etc/mail/$f" -a \
+ "/etc/mail/$f" -nt "/etc/mail/$f.db" ]; then
+ echo \
+ "${name}: /etc/mail/$f newer than /etc/mail/$f.db, regenerating"
+ /usr/sbin/makemap hash /etc/mail/$f < /etc/mail/$f
+ fi
+ done
+}
+
+load_rc_config $name
+run_rc_command "$1"
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ case $sendmail_enable in
+ NONE)
+ exit
+ ;;
+ esac
+ pid_file=
+ required_files=
+ start_precmd=
+
+ name="sendmail_outbound"
+ rcvar=`set_rcvar`
+ start_cmd="/usr/sbin/sendmail $sendmail_outbound_flags"
+ #command="/usr/sbin/sendmail"
+
+ load_rc_config $name
+ run_rc_command "$1"
+
+ name="sendmail_submit"
+ rcvar=`set_rcvar`
+ start_cmd="/usr/sbin/sendmail $sendmail_submit_flags"
+ #command="/usr/sbin/sendmail"
+
+ load_rc_config $name
+ run_rc_command "$1"
+
+ name="sendmail_clientmqueue"
+ rcvar="sendmail_msp_queue_enable"
+ start_cmd="/usr/sbin/sendmail $sendmail_msp_queue_flags"
+ #command="/usr/sbin/sendmail"
+ #command_args="${sendmail_msp_queue_flags}"
+ required_files="/etc/mail/submit.cf"
+
+ load_rc_config $name
+ run_rc_command "$1"
+ ;;
+esac
diff --git a/etc/rc.d/serial b/etc/rc.d/serial
new file mode 100644
index 0000000..8b030d6
--- /dev/null
+++ b/etc/rc.d/serial
@@ -0,0 +1,157 @@
+#!/bin/sh
+#
+# Copyright (c) 1996 Andrey A. Chernov
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# PROVIDE: serial
+# REQUIRE: root
+# KEYWORD: FreeBSD
+
+# Change some defaults for serial devices.
+# Standard defaults are:
+# dtrwait 300 drainwait 0
+# initial cflag from <sys/ttydefaults.h> = cread cs8 hupcl
+# initial iflag, lflag and oflag all 0
+# speed 9600
+# special chars from <sys/ttydefaults.h>
+# nothing locked
+# except for serial consoles the initial iflag, lflag and oflag are from
+# <sys/ttydefaults.h> and clocal is locked on.
+
+default() {
+ # Reset everything changed by the other functions to initial defaults.
+
+ ci=$1; shift # call in device identifier
+ co=$1; shift # call out device identifier
+
+ for i in $*
+ do
+ comcontrol /dev/tty${ci}${i} dtrwait 300 drainwait 300
+ stty < /dev/ttyi${ci}${i} -clocal crtscts hupcl 9600 reprint ^R
+ stty < /dev/ttyl${ci}${i} -clocal -crtscts -hupcl 0
+ stty < /dev/cuai${co}${i} -clocal crtscts hupcl 9600 reprint ^R
+ stty < /dev/cual${co}${i} -clocal -crtscts -hupcl 0
+ done
+}
+
+maybe() {
+ # Special settings.
+
+ ci=$1; shift
+ co=$1; shift
+
+ for i in $*
+ do
+ # Don't use ^R; it breaks bash's ^R when typed ahead.
+ stty < /dev/ttyi${ci}${i} reprint undef
+ stty < /dev/cuai${co}${i} reprint undef
+ # Lock clocal off on dialin device for security.
+ stty < /dev/ttyl${ci}${i} clocal
+ # Lock the speeds to use old binaries that don't support them.
+ # Any legal speed works to lock the initial speed.
+ stty < /dev/ttyl${ci}${i} 300
+ stty < /dev/cual${co}${i} 300
+ done
+}
+
+modem() {
+ # Modem that supports CTS and perhaps RTS handshaking.
+
+ ci=$1; shift
+ co=$1; shift
+
+ for i in $*
+ do
+ # may depend on modem
+ comcontrol /dev/tty${ci}${i} dtrwait 100 drainwait 180
+ # Lock crtscts on.
+ # Speed reasonable for V42bis.
+ stty < /dev/ttyi${ci}${i} crtscts 57600
+ stty < /dev/ttyl${ci}${i} crtscts
+ stty < /dev/cuai${co}${i} crtscts 57600
+ stty < /dev/cual${co}${i} crtscts
+ done
+}
+
+mouse() {
+ # Mouse on either callin or callout port.
+
+ ci=$1; shift
+ co=$1; shift
+
+ for i in $*
+ do
+ # Lock clocal on, hupcl off.
+ # Standard speed for Microsoft mouse.
+ stty < /dev/ttyi${ci}${i} clocal -hupcl 1200
+ stty < /dev/ttyl${ci}${i} clocal hupcl
+ stty < /dev/cuai${co}${i} clocal -hupcl 1200
+ stty < /dev/cual${co}${i} clocal hupcl
+ done
+}
+
+terminal() {
+ # Terminal that supports CTS and perhaps RTS handshaking
+ # with the cable or terminal arranged so that DCD is on
+ # at least while the terminal is on.
+ # Also works for bidirectional communications to another pc
+ # provided at most one side runs getty.
+ # Same as modem() except we want a faster speed and no dtrwait.
+
+ ci=$1; shift
+ co=$1; shift
+
+ modem ${ci} ${co} $*
+ for i in $*
+ do
+ comcontrol /dev/tty${ci}${i} dtrwait 0
+ stty < /dev/ttyi${ci}${i} 115200
+ stty < /dev/cuai${co}${i} 115200
+ done
+}
+
+# Don't use anything from this file unless you have some buggy programs
+# that require it.
+
+# Edit the functions and the examples to suit your system.
+# $1 is the call in device identifier, $2 is the call out device identifier
+# and the remainder of the line lists the device numbers.
+
+# Initialize assorted 8250-16550 (sio) ports.
+# maybe d a 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v
+# mouse d a 2
+# modem d a 1
+# terminal d a 0
+
+# Initialize all ports on a Cyclades-8yo.
+# modem c c 00 01 02 03 04 05 06 07
+
+# Initialize all ports on a Cyclades-16ye.
+# modem c c 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
+
+# Initialize all ports on a Digiboard 8.
+# modem D D 00 01 02 03 04 05 06 07
diff --git a/etc/rc.d/sppp b/etc/rc.d/sppp
new file mode 100644
index 0000000..0080fc7
--- /dev/null
+++ b/etc/rc.d/sppp
@@ -0,0 +1,36 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: sppp
+# REQUIRE: root
+# BEFORE: network1
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="sppp"
+start_cmd="sppp_start"
+stop_cmd=":"
+
+sppp_start()
+{
+ # Special options for sppp(4) interfaces go here. These need
+ # to go _before_ the general ifconfig since in the case
+ # of hardwired (no link1 flag) but required authentication, you
+ # cannot pass auth parameters down to the already running interface.
+ #
+ for ifn in ${sppp_interfaces}; do
+ eval spppcontrol_args=\$spppconfig_${ifn}
+ if [ -n "${spppcontrol_args}" ]; then
+ # The auth secrets might contain spaces; in order
+ # to retain the quotation, we need to eval them
+ # here.
+ eval spppcontrol ${ifn} ${spppcontrol_args}
+ fi
+ done
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/sshd b/etc/rc.d/sshd
new file mode 100755
index 0000000..416ab7f
--- /dev/null
+++ b/etc/rc.d/sshd
@@ -0,0 +1,70 @@
+#!/bin/sh
+#
+# $NetBSD: sshd,v 1.18 2002/04/29 08:23:34 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: sshd
+# REQUIRE: LOGIN
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="sshd"
+rcvar=`set_rcvar`
+command="/usr/sbin/${name}"
+keygen_cmd="sshd_keygen"
+start_precmd="sshd_precmd"
+pidfile="/var/run/${name}.pid"
+required_files="/etc/ssh/sshd_config"
+extra_commands="keygen reload"
+
+sshd_keygen()
+{
+ (
+ umask 022
+
+ # Can't do anything if ssh is not installed
+ [ -x /usr/bin/ssh-keygen ] || {
+ warn "/usr/bin/ssh-keygen does not exist."
+ return 1
+ }
+
+ if [ -f /etc/ssh/ssh_host_key ]; then
+ echo "You already have an RSA host key" \
+ "in /etc/ssh/ssh_host_key"
+ echo "Skipping protocol version 1 RSA Key Generation"
+ else
+ /usr/bin/ssh-keygen -t rsa1 -b 1024 \
+ -f /etc/ssh/ssh_host_key -N ''
+ fi
+
+ if [ -f /etc/ssh/ssh_host_dsa_key ]; then
+ echo "You already have a DSA host key" \
+ "in /etc/ssh/ssh_host_dsa_key"
+ echo "Skipping protocol version 2 DSA Key Generation"
+ else
+ /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ''
+ fi
+
+ if [ -f /etc/ssh/ssh_host_rsa_key ]; then
+ echo "You already have a RSA host key" \
+ "in /etc/ssh/ssh_host_rsa_key"
+ echo "Skipping protocol version 2 RSA Key Generation"
+ else
+ /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''
+ fi
+ )
+}
+
+sshd_precmd()
+{
+ if [ ! -f /etc/ssh/ssh_host_key -o \
+ ! -f /etc/ssh/ssh_host_dsa_key -o \
+ ! -f /etc/ssh/ssh_host_rsa_key ]; then
+ run_rc_command keygen
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/statd b/etc/rc.d/statd
new file mode 100644
index 0000000..aa55bc3
--- /dev/null
+++ b/etc/rc.d/statd
@@ -0,0 +1,46 @@
+#!/bin/sh
+#
+# $NetBSD: nfslocking,v 1.6 2002/03/24 15:52:41 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: nfslocking
+# REQUIRE: nfsserver nfsclient nfsd
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+arg=$1
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ RCVAR_SERVER="nfs_server_enable"
+ RCVAR_CLIENT="nfs_client_enable"
+ RCVAR_STATD="rpc_statd_enable"
+ RCVAR_LOCKD="rpc_lockd_enable"
+ ;;
+NetBSD)
+ RCVAR_SERVER="nfs_server"
+ RCVAR_CLIENT="nfs_client"
+ RCVAR_STATD="statd"
+ RCVAR_LOCKD="lockd"
+ ;;
+esac
+
+start_precmd="checkyesno ${RCVAR_SERVER} || checkyesno ${RCVAR_CLIENT}
+ [ -n "$rc_force" ]"
+stop_precmd=$start_precmd
+status_precmd=$start_precmd
+
+name="statd"
+rcvar=${RCVAR_STATD}
+command="/usr/sbin/rpc.${name}"
+load_rc_config $name
+run_rc_command "$arg"
+
+name="lockd"
+rcvar=${RCVAR_LOCKD}
+command="/usr/sbin/rpc.${name}"
+load_rc_config $name
+run_rc_command "$arg"
diff --git a/etc/rc.d/swap1 b/etc/rc.d/swap1
new file mode 100755
index 0000000..9281107
--- /dev/null
+++ b/etc/rc.d/swap1
@@ -0,0 +1,50 @@
+#!/bin/sh
+#
+# $NetBSD: swap1,v 1.8 2002/03/24 15:52:41 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: localswap
+# REQUIRE: disks
+# KEYWORD: FreeBSD NetBSD shutdown
+
+. /etc/rc.subr
+
+name="swap1"
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ start_cmd='swapon -a'
+ stop_cmd=':'
+ ;;
+NetBSD)
+ # Add all block-type swap devices; these might be necessary
+ # during disk checks.
+ #
+ start_cmd="swap1_start"
+ stop_cmd="swap1_stop"
+ ;;
+esac
+
+# Add all block-type swap devices; these might be necessary
+# during disk checks.
+#
+swap1_start()
+{
+ if ! checkyesno no_swap; then
+ swapctl -A -t blk
+ fi
+}
+
+# Remove all block-type swap devices
+#
+swap1_stop()
+{
+ if checkyesno swapoff || [ -n "$rc_force" ]; then
+ echo "Removing block-type swap devices"
+ swapctl -U -t blk
+ fi
+}
+
+load_rc_config swap
+run_rc_command "$1"
diff --git a/etc/rc.d/swap2 b/etc/rc.d/swap2
new file mode 100755
index 0000000..5f3bd6f
--- /dev/null
+++ b/etc/rc.d/swap2
@@ -0,0 +1,37 @@
+#!/bin/sh
+#
+# $NetBSD: swap2,v 1.6 2002/03/22 04:34:00 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: nonlocalswap
+# REQUIRE: mountcritremote
+# BEFORE: DAEMON
+
+. /etc/rc.subr
+
+name="swap2"
+start_cmd="swap2_start"
+
+swap2_start()
+{
+ # "Critical" file systems are now mounted. Go ahead and swap
+ # to files now, since they will be residing in the critical file
+ # systems (or, at least, they should be...).
+ # Check for no swap, and warn about it unless that is desired.
+ #
+ swapctl -A -t noblk;
+ if ! checkyesno no_swap; then
+ if swapctl -s | grep "no swap devices configured" > /dev/null;
+ then
+ warn "No swap space configured!"
+ fi
+ fi
+}
+
+# Remove all non-block-type swap devices
+#
+stop_cmd="swapctl -U -t noblk"
+
+load_rc_config swap
+run_rc_command "$1"
diff --git a/etc/rc.d/syscons b/etc/rc.d/syscons
new file mode 100644
index 0000000..32bf5bf
--- /dev/null
+++ b/etc/rc.d/syscons
@@ -0,0 +1,183 @@
+#!/bin/sh -
+#
+# Copyright (c) 2000 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# PROVIDE: syscons
+# REQUIRE: LOGIN usbd
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="syscons"
+load_rc_config $name
+
+# stdin must be redirected because it might be for a serial console
+#
+kbddev=/dev/ttyv0
+viddev=/dev/ttyv0
+
+echo -n 'Configuring syscons:'
+
+# keymap
+#
+case ${keymap} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' keymap'; kbdcontrol < ${kbddev} -l ${keymap}
+ ;;
+esac
+
+# keyrate
+#
+case ${keyrate} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' keyrate'; kbdcontrol < ${kbddev} -r ${keyrate}
+ ;;
+esac
+
+# keybell
+#
+case ${keybell} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' keybell'; kbdcontrol < ${kbddev} -b ${keybell}
+ ;;
+esac
+
+# change function keys
+#
+case ${keychange} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' keychange'
+ set - ${keychange}
+ while [ $# -gt 0 ]; do
+ kbdcontrol <${kbddev} -f "$1" "$2"
+ shift; shift
+ done
+ ;;
+esac
+
+# cursor type
+#
+case ${cursor} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' cursor'; vidcontrol < ${viddev} -c ${cursor}
+ ;;
+esac
+
+# screen mapping
+#
+case ${scrnmap} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' scrnmap'; vidcontrol < ${viddev} -l ${scrnmap}
+ ;;
+esac
+
+# font 8x16
+#
+case ${font8x16} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' font8x16'; vidcontrol < ${viddev} -f 8x16 ${font8x16}
+ ;;
+esac
+
+# font 8x14
+#
+case ${font8x14} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' font8x14'; vidcontrol < ${viddev} -f 8x14 ${font8x14}
+ ;;
+esac
+
+# font 8x8
+#
+case ${font8x8} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' font8x8'; vidcontrol < ${viddev} -f 8x8 ${font8x8}
+ ;;
+esac
+
+# blank time
+#
+case ${blanktime} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' blanktime'; vidcontrol < ${viddev} -t ${blanktime}
+ ;;
+esac
+
+# screen saver
+#
+case ${saver} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' screensaver'
+ for i in `kldstat | awk '$5 ~ "^splash_.*$" { print $5 }'`; do
+ kldunload ${i}
+ done
+ kldstat -v | grep -q _saver || kldload ${saver}_saver
+ ;;
+esac
+
+# set this mode for all virtual screens
+#
+if [ -n "${allscreens_flags}" ]; then
+ echo -n ' allscreens'
+ for ttyv in /dev/ttyv*; do
+ vidcontrol ${allscreens_flags} < ${ttyv} > ${ttyv} 2>&1
+ done
+fi
+
+# set this keyboard mode for all virtual terminals
+#
+if [ -n "${allscreens_kbdflags}" ]; then
+ echo -n ' allscreens_kbd'
+ for ttyv in /dev/ttyv*; do
+ kbdcontrol ${allscreens_kbdflags} < ${ttyv} > ${ttyv} 2>&1
+ done
+fi
+
+echo '.'
diff --git a/etc/rc.d/sysctl b/etc/rc.d/sysctl
new file mode 100644
index 0000000..c478828
--- /dev/null
+++ b/etc/rc.d/sysctl
@@ -0,0 +1,70 @@
+#!/bin/sh
+#
+# $NetBSD: sysctl,v 1.12 2002/04/29 12:10:23 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: sysctl
+# REQUIRE: root ipfilter ipsec
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="sysctl"
+stop_cmd=":"
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ start_cmd="FreeBSD_start"
+ extra_commands="reload lastload"
+ reload_cmd="FreeBSD_start"
+ lastload_cmd="FreeBSD_start last"
+ ;;
+NetBSD)
+ start_cmd="NetBSD_start"
+ ;;
+esac
+
+FreeBSD_start()
+{
+ #
+ # Read in /etc/sysctl.conf and set things accordingly
+ #
+ if [ -f /etc/sysctl.conf ]; then
+ while read var comments
+ do
+ case ${var} in
+ \#*|'')
+ ;;
+ *)
+ mib=${var%=*}
+ val=${var#*=}
+
+ if current_value=`${SYSCTL} -n ${mib} 2>/dev/null`; then
+ case ${current_value} in
+ ${val})
+ ;;
+ *)
+ sysctl ${var}
+ ;;
+ esac
+ elif [ "$1" -eq "last" ]; then
+ warn "sysctl ${mib} does not exits."
+ fi
+ ;;
+ esac
+ done < /etc/sysctl.conf
+ fi
+}
+
+NetBSD_start()
+{
+ if [ -r /etc/sysctl.conf ]; then
+ echo "Setting sysctl variables:"
+ ${SYSCTL} -f /etc/sysctl.conf
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/sysdb b/etc/rc.d/sysdb
new file mode 100755
index 0000000..7d07235
--- /dev/null
+++ b/etc/rc.d/sysdb
@@ -0,0 +1,36 @@
+#!/bin/sh
+#
+# $NetBSD: sysdb,v 1.9 2002/03/22 04:34:00 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: sysdb
+# REQUIRE: mountcritremote
+# BEFORE: DAEMON
+
+. /etc/rc.subr
+
+name="sysdb"
+start_cmd="sysdb_start"
+stop_cmd=":"
+
+sysdb_start()
+{
+ # Build ps databases. If this kernel supports
+ # machdep.booted_kernel, use that to build the KVM db so dmesg
+ # will run work when we boot /netbsd.new, etc.
+ #
+ echo "Building databases..."
+ booted_kernel=`sysctl -n machdep.booted_kernel 2>/dev/null`
+ kvm_mkdb "${booted_kernel:-/netbsd}"
+ dev_mkdb
+
+ # Re-create /var/run/utmp, which is deleted by mountcritlocal
+ # but can't be recreated by it because install and chown may
+ # not be available then (possibly no /usr).
+ #
+ install -c -m 664 -g utmp /dev/null /var/run/utmp
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/syslogd b/etc/rc.d/syslogd
new file mode 100755
index 0000000..07399b8
--- /dev/null
+++ b/etc/rc.d/syslogd
@@ -0,0 +1,80 @@
+#!/bin/sh
+#
+# $NetBSD: syslogd,v 1.12 2002/03/22 04:34:00 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: syslogd
+# REQUIRE: mountcritremote sysdb wscons
+# BEFORE: SERVERS
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="syslogd"
+rcvar=`set_rcvar`
+command="/usr/sbin/${name}"
+required_files="/etc/syslog.conf"
+start_precmd="syslogd_precmd"
+extra_commands="reload"
+
+_sockfile="/var/run/syslogd.sockets"
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ pidfile="/var/run/syslog.pid"
+ evalargs="rc_flags=\"\`set_socketlist\` \$rc_flags\""
+ altlog_proglist="named"
+ ;;
+NetBSD)
+ pidfile="/var/run/${name}.pid"
+ evalargs="rc_flags=\"-P \$_sockfile \$rc_flags\""
+ altlog_proglist="named ntpd"
+ ;;
+esac
+
+syslogd_precmd()
+{
+ # Transitional symlink for old binaries
+ #
+ if [ ! -h /dev/log ]; then
+ ln -sf /var/run/log /dev/log
+ fi
+ rm -f /var/run/log
+
+ # Create default list of syslog sockets to watch
+ #
+ ( umask 022 ; > $_sockfile )
+
+ # If running named(8) or ntpd(8) chrooted, added appropriate
+ # syslog socket to list of sockets to watch.
+ #
+ for _l in $altlog_proglist; do
+ eval _ldir=\$${_l}_chrootdir
+ if checkyesno `set_rcvar $_l` && [ -n "$_ldir" ]; then
+ echo "${_ldir}/var/run/log" >> $_sockfile
+ fi
+ done
+
+ # If other sockets have been provided, change run_rc_command()'s
+ # internal copy of $syslogd_flags to force use of specific
+ # syslogd sockets.
+ #
+ if [ -s $_sockfile ]; then
+ echo "/var/run/log" >> $_sockfile
+ eval $evalargs
+ fi
+
+ return 0
+}
+
+set_socketlist()
+{
+ _socketargs=
+ for _s in `cat $_sockfile | tr '\n' ' '` ; do
+ _socketargs="-l $_s $_socketargs"
+ done
+ echo $_socketargs
+}
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/timed b/etc/rc.d/timed
new file mode 100755
index 0000000..1c26e4a
--- /dev/null
+++ b/etc/rc.d/timed
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+# $NetBSD: timed,v 1.5 2002/03/22 04:34:00 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: timed
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="timed"
+rcvar=`set_rcvar`
+command="/usr/sbin/${name}"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/tmp b/etc/rc.d/tmp
new file mode 100644
index 0000000..c5cffb0
--- /dev/null
+++ b/etc/rc.d/tmp
@@ -0,0 +1,122 @@
+#!/bin/sh
+#
+# Copyright (c) 1999 Matt Dillon
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# PROVIDE: diskless
+# REQUIRE: initdiskless mountcritlocal
+# BEFORE: addswap random
+# KEYWORD: FreeBSD
+
+dlv=`/sbin/sysctl -n vfs.nfs.diskless_valid 2> /dev/null`
+[ ${dlv:=0} -eq 0 ] && exit 0
+
+name="diskless2"
+
+# Provide a function for normalizing the mounting of memory
+# filesystems. This should allow the rest of the code here to remain
+# as close as possible between 5-current and 4-stable.
+# $1 = size
+# $2 = mount point
+# $3 = md unit number (ignored in pre 5.0 systems)
+# $4 = (optional) bytes-per-inode
+mount_md()
+{
+ if [ -n "$4" ]; then
+ bpi="-i $4"
+ fi
+ /sbin/mdconfig -a -t malloc -s $1 -u $3
+ /sbin/disklabel -r -w md$3 auto
+ /sbin/newfs $bpi /dev/md$3c
+ /sbin/mount /dev/md$3c $2
+}
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/rc.subr ]; then
+ . /etc/rc.subr
+ load_rc_config $name
+elif [ -r /etc/defaults/rc.conf ]; then
+ . /etc/defaults/rc.conf
+ source_rc_confs
+elif [ -r /etc/rc.conf ]; then
+ . /etc/rc.conf
+fi
+
+echo "+++ mount_md of /var"
+mount_md ${varsize:=32m} /var 1
+
+echo "+++ populate /var using /etc/mtree/BSD.var.dist"
+/usr/sbin/mtree -deU -f /etc/mtree/BSD.var.dist -p /var
+case ${sendmail_enable} in
+[Nn][Oo][Nn][Ee])
+ ;;
+*)
+ /usr/sbin/mtree -deU -f /etc/mtree/BSD.sendmail.dist -p /
+ ;;
+esac
+
+echo "+++ create log files based on the contents of /etc/newsyslog.conf"
+LOGFILES=`/usr/bin/awk '$1 != "#" { printf "%s ", $1 } ' /etc/newsyslog.conf`
+if [ -n "$LOGFILES" ]; then
+ /usr/bin/touch $LOGFILES
+fi
+
+echo "+++ create lastlog"
+/usr/bin/touch /var/log/lastlog
+
+mount -a # chown and chgrp are in /usr
+
+# Since we are starting with a very fresh /etc on an MFS:
+if [ -d /conf/default/etc ]; then
+ newaliases
+fi
+
+#
+# XXX make sure to create one dir for each printer as requested by lpd
+#
+
+# If /tmp is a symlink, assume it points to somewhere writable, like
+# /var/tmp, otherwise, use a small memory filesystem for /tmp.
+#
+# XXX: mtree runs too early to create any directories needed in /tmp,
+# so if /var/tmp == /tmp, then you don't get a vi.recover.
+#
+if [ ! -h /tmp ]; then
+ mount_md ${tmpsize:=64m} /tmp 2
+ chmod 01777 /tmp
+fi
+
+if sysctl vfs.devfs.generation > /dev/null 2>&1 ; then
+ # we have DEVFS, no worries...
+ true
+else
+ # extract a list of device entries, then copy them to a writable fs
+ (cd /; find -x dev | cpio -o -H newc) > /tmp/dev.tmp
+ mount_md 4096 /dev 3 512
+ (cd /; cpio -i -H newc -d < /tmp/dev.tmp)
+fi
diff --git a/etc/rc.d/ttys b/etc/rc.d/ttys
new file mode 100755
index 0000000..d9073f8
--- /dev/null
+++ b/etc/rc.d/ttys
@@ -0,0 +1,50 @@
+#!/bin/sh
+#
+# $NetBSD: ttys,v 1.1.1.1 2000/03/10 11:53:24 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: tty
+# REQUIRE: root
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="ttyflags"
+start_cmd="ttyflags_start"
+stop_cmd=":"
+
+ttyflags_start()
+{
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+
+ # Whack the pty perms back into shape.
+ # XXX: there may be more ptys than this; maybe use
+ # sysctl to find out how many?
+ #
+ if ls /dev/tty[pqrsPQRS]* > /dev/null 2>&1; then
+ chflags 0 /dev/tty[pqrsPQRS]*
+ chmod 666 /dev/tty[pqrsPQRS]*
+ chown root:wheel /dev/tty[pqrsPQRS]*
+ fi
+ ;;
+ NetBSD)
+ # set flags on ttys.
+ # (do early, in case they use tty for SLIP in network)
+ #
+ echo "Setting tty flags."
+ ttyflags -a
+
+ # setup ptys
+ #
+ # XXX: there may be more ptys than this; maybe use
+ # sysctl to find out how many?
+ #
+ chmod 666 /dev/tty[pqrs]*
+ ;;
+ esac
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/usbd b/etc/rc.d/usbd
new file mode 100644
index 0000000..bed1a6d
--- /dev/null
+++ b/etc/rc.d/usbd
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: usbd
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="usbd"
+rcvar=`set_rcvar`
+command="/usr/sbin/${name}"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/var b/etc/rc.d/var
new file mode 100644
index 0000000..c5cffb0
--- /dev/null
+++ b/etc/rc.d/var
@@ -0,0 +1,122 @@
+#!/bin/sh
+#
+# Copyright (c) 1999 Matt Dillon
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# PROVIDE: diskless
+# REQUIRE: initdiskless mountcritlocal
+# BEFORE: addswap random
+# KEYWORD: FreeBSD
+
+dlv=`/sbin/sysctl -n vfs.nfs.diskless_valid 2> /dev/null`
+[ ${dlv:=0} -eq 0 ] && exit 0
+
+name="diskless2"
+
+# Provide a function for normalizing the mounting of memory
+# filesystems. This should allow the rest of the code here to remain
+# as close as possible between 5-current and 4-stable.
+# $1 = size
+# $2 = mount point
+# $3 = md unit number (ignored in pre 5.0 systems)
+# $4 = (optional) bytes-per-inode
+mount_md()
+{
+ if [ -n "$4" ]; then
+ bpi="-i $4"
+ fi
+ /sbin/mdconfig -a -t malloc -s $1 -u $3
+ /sbin/disklabel -r -w md$3 auto
+ /sbin/newfs $bpi /dev/md$3c
+ /sbin/mount /dev/md$3c $2
+}
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/rc.subr ]; then
+ . /etc/rc.subr
+ load_rc_config $name
+elif [ -r /etc/defaults/rc.conf ]; then
+ . /etc/defaults/rc.conf
+ source_rc_confs
+elif [ -r /etc/rc.conf ]; then
+ . /etc/rc.conf
+fi
+
+echo "+++ mount_md of /var"
+mount_md ${varsize:=32m} /var 1
+
+echo "+++ populate /var using /etc/mtree/BSD.var.dist"
+/usr/sbin/mtree -deU -f /etc/mtree/BSD.var.dist -p /var
+case ${sendmail_enable} in
+[Nn][Oo][Nn][Ee])
+ ;;
+*)
+ /usr/sbin/mtree -deU -f /etc/mtree/BSD.sendmail.dist -p /
+ ;;
+esac
+
+echo "+++ create log files based on the contents of /etc/newsyslog.conf"
+LOGFILES=`/usr/bin/awk '$1 != "#" { printf "%s ", $1 } ' /etc/newsyslog.conf`
+if [ -n "$LOGFILES" ]; then
+ /usr/bin/touch $LOGFILES
+fi
+
+echo "+++ create lastlog"
+/usr/bin/touch /var/log/lastlog
+
+mount -a # chown and chgrp are in /usr
+
+# Since we are starting with a very fresh /etc on an MFS:
+if [ -d /conf/default/etc ]; then
+ newaliases
+fi
+
+#
+# XXX make sure to create one dir for each printer as requested by lpd
+#
+
+# If /tmp is a symlink, assume it points to somewhere writable, like
+# /var/tmp, otherwise, use a small memory filesystem for /tmp.
+#
+# XXX: mtree runs too early to create any directories needed in /tmp,
+# so if /var/tmp == /tmp, then you don't get a vi.recover.
+#
+if [ ! -h /tmp ]; then
+ mount_md ${tmpsize:=64m} /tmp 2
+ chmod 01777 /tmp
+fi
+
+if sysctl vfs.devfs.generation > /dev/null 2>&1 ; then
+ # we have DEVFS, no worries...
+ true
+else
+ # extract a list of device entries, then copy them to a writable fs
+ (cd /; find -x dev | cpio -o -H newc) > /tmp/dev.tmp
+ mount_md 4096 /dev 3 512
+ (cd /; cpio -i -H newc -d < /tmp/dev.tmp)
+fi
diff --git a/etc/rc.d/vinum b/etc/rc.d/vinum
new file mode 100644
index 0000000..706e7f0
--- /dev/null
+++ b/etc/rc.d/vinum
@@ -0,0 +1,17 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: disks
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="vinum"
+rcvar="start_vinum"
+start_cmd="vinum start"
+stop_cmd=":"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/virecover b/etc/rc.d/virecover
new file mode 100755
index 0000000..9ecdbf6
--- /dev/null
+++ b/etc/rc.d/virecover
@@ -0,0 +1,73 @@
+#!/bin/sh
+#
+# $NetBSD: virecover,v 1.6 2002/03/22 04:34:00 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: virecover
+# REQUIRE: mountcritremote
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD NetBSD
+#
+# XXX: should require `mail'!
+
+. /etc/rc.subr
+
+name="virecover"
+stop_cmd=":"
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ start_cmd="virecover_start"
+ ;;
+NetBSD)
+ command="/usr/libexec/${name}"
+ ;;
+esac
+
+virecover_start()
+{
+ find /var/tmp/vi.recover ! -type f -a ! -type d -delete
+ vibackup=`echo /var/tmp/vi.recover/vi.*`
+ if [ "${vibackup}" != '/var/tmp/vi.recover/vi.*' ]; then
+ echo -n 'Recovering vi editor sessions:'
+ for i in /var/tmp/vi.recover/vi.*; do
+ # Only test files that are readable.
+ if [ ! -r "${i}" ]; then
+ continue
+ fi
+
+ # Unmodified nvi editor backup files either have the
+ # execute bit set or are zero length. Delete them.
+ if [ -x "${i}" -o ! -s "${i}" ]; then
+ rm -f "${i}"
+ fi
+ done
+
+ # It is possible to get incomplete recovery files, if the editor
+ # crashes at the right time.
+ virecovery=`echo /var/tmp/vi.recover/recover.*`
+ if [ "${virecovery}" != "/var/tmp/vi.recover/recover.*" ]; then
+ for i in /var/tmp/vi.recover/recover.*; do
+ # Only test files that are readable.
+ if [ ! -r "${i}" ]; then
+ continue
+ fi
+
+ # Delete any recovery files that are zero length,
+ # corrupted, or that have no corresponding backup file.
+ # Else send mail to the user.
+ recfile=`awk '/^X-vi-recover-path:/{print $2}' < "${i}"`
+ if [ -n "${recfile}" -a -s "${recfile}" ]; then
+ sendmail -t < "${i}"
+ else
+ rm -f "${i}"
+ fi
+ done
+ fi
+ echo '.'
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/wscons b/etc/rc.d/wscons
new file mode 100755
index 0000000..9bb6e11
--- /dev/null
+++ b/etc/rc.d/wscons
@@ -0,0 +1,170 @@
+#!/bin/sh
+#
+# $NetBSD: wscons,v 1.9 2002/04/26 00:06:54 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: wscons
+# REQUIRE: mountcritremote
+# BEFORE: LOGIN
+
+. /etc/rc.subr
+
+name="wscons"
+rcvar=$name
+start_cmd="wscons_start"
+stop_cmd=":"
+
+wscons_start()
+{
+ wscfg=/usr/sbin/wsconscfg
+ wsfld=/usr/sbin/wsfontload
+ wsctl=/sbin/wsconsctl
+ config=/etc/wscons.conf
+ usage="Usage: wsconfig [-n] [-f configfile] [-font fontpgm] [-screen screenpgm]"
+ DOIT=
+
+ while [ $# -gt 0 ]; do
+ case $1 in
+ -n)
+ DOIT=echo
+ ;;
+ -f)
+ config=$2
+ shift
+ ;;
+ -font)
+ wsfld=$2
+ shift
+ ;;
+ -screen)
+ wscfg=$2
+ shift
+ ;;
+ *)
+ echo $usage
+ exit 1
+ ;;
+ esac
+ shift
+ done
+
+
+ # args mean:
+ # screen idx scr emul
+ # font name width height enc file
+ ( while read type arg1 arg2 arg3 arg4 arg5; do
+ case "$type" in
+ \#*|"")
+ continue
+ ;;
+
+ font)
+ name=$arg1
+ width=$arg2
+ height=$arg3
+ enc=$arg4
+ file=$arg5
+ cmd=$wsfld
+
+ case $width in
+ -)
+ ;;
+ *)
+ cmd="$cmd -w $width"
+ ;;
+ esac
+ case $height in
+ -)
+ ;;
+ *)
+ cmd="$cmd -h $height"
+ ;;
+ esac
+ case $enc in
+ -)
+ ;;
+ *)
+ cmd="$cmd -e $enc"
+ ;;
+ esac
+ cmd="$cmd -N $name $file"
+ eval $DOIT $cmd
+ ;;
+
+ screen)
+ idx=$arg1
+ scr=$arg2
+ emul=$arg3
+ cmd=$wscfg
+
+ case $scr in
+ -)
+ ;;
+ *)
+ cmd="$cmd -t $scr"
+ ;;
+ esac
+ case $emul in
+ -)
+ ;;
+ *)
+ cmd="$cmd -e $emul"
+ ;;
+ esac
+ cmd="$cmd $idx"
+ eval $DOIT $cmd
+ ;;
+
+ keyboard)
+ kbd=$arg1
+ cmd=$wscfg
+ case $kbd in
+ -|auto)
+ cmd="$cmd -k"
+ ;;
+ *)
+ cmd="$cmd -k $kbd"
+ ;;
+ esac
+ eval $DOIT $cmd
+ ;;
+
+ encoding)
+ map=$arg1
+ cmd="$wsctl -w \"encoding=$map\""
+ eval $DOIT $cmd
+ ;;
+
+ mapfile)
+ mapfile=$arg1
+ ( while read entry; do
+ case "$entry" in
+ \#*|"")
+ continue
+ ;;
+ *)
+ cmd="$wsctl -w \"map+=$entry\""
+ cmd="$cmd >/dev/null"
+ eval $DOIT $cmd
+ ;;
+ esac
+ done ) < $mapfile
+ ;;
+
+ mux)
+ cmd="$wscfg -m $arg1"
+ eval $DOIT $cmd
+ ;;
+
+ setvar)
+ cmd="$wsctl -w $arg1"
+ eval $DOIT $cmd
+ ;;
+
+ esac
+ done ) < $config
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/xdm b/etc/rc.d/xdm
new file mode 100755
index 0000000..a5c6b76
--- /dev/null
+++ b/etc/rc.d/xdm
@@ -0,0 +1,20 @@
+#!/bin/sh
+#
+# $NetBSD: xdm,v 1.5 2000/07/17 15:24:48 lukem Exp $
+#
+
+# PROVIDE: xdm
+# REQUIRE: DAEMON LOGIN wscons
+# KEYWORD: shutdown
+
+. /etc/rc.subr
+
+name="xdm"
+rcvar=$name
+command="/usr/X11R6/bin/${name}"
+pidfile="/var/run/${name}.pid"
+required_files="/usr/X11R6/lib/X11/xdm/xdm-config"
+extra_commands="reload"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/xfs b/etc/rc.d/xfs
new file mode 100755
index 0000000..a0692fa
--- /dev/null
+++ b/etc/rc.d/xfs
@@ -0,0 +1,21 @@
+#!/bin/sh
+#
+# $NetBSD: xfs,v 1.6 2002/03/22 04:34:01 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: xfs
+# REQUIRE: mountall cleartmp
+# BEFORE: LOGIN
+
+. /etc/rc.subr
+
+name="xfs"
+rcvar=$name
+command="/usr/X11R6/bin/${name}"
+command_args="& sleep 2"
+required_files="/usr/X11R6/lib/X11/fs/config"
+extra_commands="reload"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/ypbind b/etc/rc.d/ypbind
new file mode 100755
index 0000000..dfd87ec
--- /dev/null
+++ b/etc/rc.d/ypbind
@@ -0,0 +1,38 @@
+#!/bin/sh
+#
+# $NetBSD: ypbind,v 1.5 2002/03/22 04:34:01 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: ypbind
+# REQUIRE: ypserv
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="ypbind"
+command="/usr/sbin/${name}"
+start_precmd="ypbind_precmd"
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ rcvar="nis_client_enable"
+ command_args="${nis_client_flags}"
+ ;;
+NetBSD)
+ rcvar=$name
+ ;;
+esac
+
+ypbind_precmd()
+{
+ _domain=`domainname`
+ if [ -z "$_domain" ]; then
+ warn "domainname(1) is not set."
+ return 1
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/yppasswdd b/etc/rc.d/yppasswdd
new file mode 100755
index 0000000..13928f3
--- /dev/null
+++ b/etc/rc.d/yppasswdd
@@ -0,0 +1,54 @@
+#!/bin/sh
+#
+# $NetBSD: yppasswdd,v 1.6 2002/03/22 04:34:01 thorpej Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: yppasswdd
+# REQUIRE: ypserv ypbind
+# BEFORE: LOGIN
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="yppasswdd"
+command="/usr/sbin/rpc.{name}"
+start_precmd="yppasswdd_precmd"
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ rcvar="nis_yppasswdd_enable"
+ command_args="${nis_yppasswdd_flags}"
+ ;;
+NetBSD)
+ rcvar=$name
+ required_vars="rpcbind ypserv"
+ ;;
+esac
+
+yppasswdd_precmd()
+{
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ if ! checkyesno rpcbind_enable && \
+ ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
+ then
+ force_depend rpcbind || return 1
+ fi
+ if ! checkyesno nis_server_enable && \
+ ! /etc/rc.d/ypserv forcestatus 1>/dev/null 2>&1
+ then
+ force_depend ypserv || return 1
+ fi
+ ;;
+ esac
+
+ _domain=`domainname`
+ if [ -z "$_domain" ]; then
+ warn "domainname(1) is not set."
+ return 1
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/ypserv b/etc/rc.d/ypserv
new file mode 100755
index 0000000..29ec316
--- /dev/null
+++ b/etc/rc.d/ypserv
@@ -0,0 +1,53 @@
+#!/bin/sh
+#
+# $NetBSD: ypserv,v 1.5 2000/09/19 13:04:39 lukem Exp $
+# $FreeBSD$
+#
+
+# PROVIDE: ypserv
+# REQUIRE: rpcbind
+# KEYWORD: FreeBSD NetBSD
+
+. /etc/rc.subr
+
+name="ypserv"
+command="/usr/sbin/${name}"
+start_precmd="ypserv_precmd"
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ rcvar="nis_server_enable"
+ command_args="${nis_server_flags}"
+ ;;
+NetBSD)
+ rcvar=${name}
+ required_vars="rpcbind"
+ ;;
+esac
+
+ypserv_precmd()
+{
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ if ! checkyesno rpcbind_enable && \
+ ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
+ then
+ force_depend rpcbind || return 1
+ fi
+ ;;
+ esac
+
+ _domain=`domainname`
+ if [ -z "$_domain" ]; then
+ warn "domainname(1) is not set."
+ return 1
+ fi
+
+ if [ ! -d /var/yp/$_domain/. ]; then
+ warn "/var/yp/$_domain is not a directory."
+ return 1
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/ypset b/etc/rc.d/ypset
new file mode 100644
index 0000000..577b545
--- /dev/null
+++ b/etc/rc.d/ypset
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: ypset
+# REQUIRE: ypbind
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="ypset"
+rcvar="nis_ypset_enable"
+command="/usr/sbin/${name}"
+command_args="${nis_ypset_flags}"
+start_precmd="ypset_precmd"
+
+ypset_precmd()
+{
+ if ! checkyesno rpcbind_enable && \
+ ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
+ then
+ force_depend rpcbind || return 1
+ fi
+ if ! checkyesno nis_client_enable && \
+ ! /etc/rc.d/ypbind forcestatus 1>/dev/null 2>&1
+ then
+ force_depend ypbind || return 1
+ fi
+
+ _domain=`domainname`
+ if [ -z "$_domain" ]; then
+ warn "domainname(1) is not set."
+ return 1
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/ypupdated b/etc/rc.d/ypupdated
new file mode 100644
index 0000000..6e8b193
--- /dev/null
+++ b/etc/rc.d/ypupdated
@@ -0,0 +1,38 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: ypupdated
+# REQUIRE: rpcbind ypserv
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="ypupdated"
+rcvar="rpc_ypupdated_enable"
+command="/usr/sbin/rpc.${name}"
+start_precmd="rpc_ypupdated_precmd"
+
+rpc_ypupdated_precmd()
+{
+ if ! checkyesno rpcbind_enable && \
+ ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
+ then
+ force_depend rpcbind || return 1
+ fi
+ if ! checkyesno nis_server_enable && \
+ ! /etc/rc.d/ypserv forcestatus 1>/dev/null 2>&1
+ then
+ force_depend ypserv || return 1
+ fi
+
+ _domain=`domainname`
+ if [ -z "$_domain" ]; then
+ warn "domainname(1) is not set."
+ return 1
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.d/ypxfrd b/etc/rc.d/ypxfrd
new file mode 100644
index 0000000..cf873fb
--- /dev/null
+++ b/etc/rc.d/ypxfrd
@@ -0,0 +1,39 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: ypxfrd
+# REQUIRE: rpcbind
+# KEYWORD: FreeBSD
+
+. /etc/rc.subr
+
+name="ypxfrd"
+rcvar="nis_ypxfrd_enable"
+command="/usr/sbin/rpc.${name}"
+command_args="${nis_ypxfrd_flags}"
+start_precmd="ypxfrd_precmd"
+
+ypxfrd_precmd()
+{
+ if ! checkyesno rpcbind_enable && \
+ ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
+ then
+ force_depend rpcbind || return 1
+ fi
+ if ! checkyesno nis_server_enable && \
+ ! /etc/rc.d/ypserv forcestatus 1>/dev/null 2>&1
+ then
+ force_depend ypserv || return 1
+ fi
+
+ _domain=`domainname`
+ if [ -z "$_domain" ]; then
+ warn "domainname(1) is not set."
+ return 1
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/etc/rc.devfs b/etc/rc.devfs
new file mode 100644
index 0000000..52966e9
--- /dev/null
+++ b/etc/rc.devfs
@@ -0,0 +1,58 @@
+# Copyright (c) 1998 Søren Schmidt
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# If there is a global system configuration file, suck it in.
+
+if [ -r /etc/defaults/rc.conf ]; then
+ . /etc/defaults/rc.conf
+ source_rc_confs
+elif [ -r /etc/rc.conf ]; then
+ . /etc/rc.conf
+fi
+
+# Setup DEVFS, ie permissions, links etc.
+#
+cd /dev
+
+# This isn't necessarily a good example, since we probably shouldn't need this.
+# However, a lot of X software depends on it.
+#
+if [ -c ttyv0 -a ! -e vga ]; then
+ ln -fs ttyv0 vga
+fi
+
+# Commonly used by many ports
+#
+#if [ -c acd0c -a ! -e cdrom ]; then
+# ln -fs acd0c cdrom
+#fi
+
+# Allow users to query the smb device
+#
+#if [ -c smb0 ]; then
+# chmod 660 smb0
+#fi
diff --git a/etc/rc.diskless1 b/etc/rc.diskless1
new file mode 100644
index 0000000..bdda6d8
--- /dev/null
+++ b/etc/rc.diskless1
@@ -0,0 +1,144 @@
+# Copyright (c) 1999 Matt Dillion
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+#
+# /etc/rc.diskless1 - general BOOTP startup
+#
+# BOOTP has mounted / for us. Assume a read-only mount. We must then
+# - figure out our IP by querying the interface
+# - mount /etc as an MFS
+# - populate /etc from /conf/default version
+# - override files in /etc with files from /conf/*/etc where
+# '*' is default, netmask of client, ip-address of client
+#
+# The operator is in charge of setting /conf/*/etc/* things as appropriate.
+# Typically rc.conf and fstab need to be changed, but possibly also other
+# files such as inetd.conf etc.
+
+# chkerr:
+#
+# Routine to check for error
+#
+# checks error code and drops into shell on failure.
+# if shell exits, terminates script as well as /etc/rc.
+#
+chkerr() {
+ case $1 in
+ 0)
+ ;;
+ *)
+ echo "$2 failed: dropping into /bin/sh"
+ /bin/sh
+ # RESUME
+ ;;
+ esac
+}
+
+mount_md() {
+ /sbin/mdconfig -a -t malloc -s $1 -u $3
+ /sbin/disklabel -r -w md$3 auto
+ /sbin/newfs -i 4096 /dev/md$3c
+ /sbin/mount /dev/md$3c $2
+}
+
+# DEBUGGING
+#
+# set -v
+
+# Figure out our interface and IP.
+#
+bootp_ifc=""
+bootp_ipa=""
+bootp_ipbca=""
+iflist=`ifconfig -l`
+for i in ${iflist} ; do
+ set `ifconfig ${i}`
+ while [ $# -ge 1 ] ; do
+ if [ "${bootp_ifc}" = "" -a "$1" = "inet" ] ; then
+ bootp_ifc=${i} ; bootp_ipa=${2} ; shift
+ fi
+ if [ "${bootp_ipbca}" = "" -a "$1" = "broadcast" ] ; then
+ bootp_ipbca=$2; shift
+ fi
+ shift
+ done
+ if [ "${bootp_ifc}" != "" ] ; then
+ break
+ fi
+done
+echo "Interface ${bootp_ifc} IP-Address ${bootp_ipa} Broadcast ${bootp_ipbca}"
+
+if [ -z "`hostname -s`" ]; then
+ hostname=`kenv dhcp.host-name`
+ hostname $hostname
+ echo "Hostname is $hostname"
+fi
+
+if [ -d /conf/default/etc ]; then
+ mount_md 4096 /etc 0
+ chkerr $? "MFS mount on /etc"
+ /bin/chmod 755 /etc
+
+ /bin/cp -Rp /conf/default/etc/* /etc
+ chkerr $? "cp /conf/default/etc to /etc MFS"
+fi
+
+# Allow for override files to replace files in /etc. Use /conf/*/etc to find
+# the override files. First choice is default files that # always override,
+# then files that from the directory that matches the client's broadcast
+# address, finally followed by overrides that match the client's IP address.
+#
+# This way we have some flexibility to handle clusters of machines on
+# separate subnets.
+
+for i in ${bootp_ipbca} ${bootp_ipa} ${hostname} ; do
+ if [ -d /conf/${i}/etc ]; then
+ cp -Rp /conf/${i}/etc/* /etc
+ fi
+done
+
+#
+# if the info is available via dhcp/kenv
+# build the resolv.conf
+#
+if [ ! -e /etc/resolv.conf ]; then
+ echo domain `kenv dhcp.domain-name` > /etc/resolv.conf
+
+ set `kenv dhcp.domain-name-servers`
+ for ns in `IFS=','; echo $*`; do
+ echo nameserver $ns >> /etc/resolv.conf;
+ done
+fi
+
+# Tell /etc/rc to run the specified script after it does its mounts but
+# before it does anything else.
+#
+# This script is responsible for setting up the diskless mount environment.
+# This can be overriden by /conf/ME/rc.conf.local if, for example, you do not
+# want to run the standard system /etc/rc.diskless2
+
+diskless_mount="/etc/rc.diskless2"
diff --git a/etc/rc.diskless2 b/etc/rc.diskless2
new file mode 100644
index 0000000..5c17585
--- /dev/null
+++ b/etc/rc.diskless2
@@ -0,0 +1,110 @@
+# Copyright (c) 1999 Matt Dillon
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+#
+# rc.diskless2
+#
+
+# Provide a function for normalizing the mounting of memory
+# filesystems. This should allow the rest of the code here to remain
+# as close as possible between 5-current and 4-stable.
+# $1 = size
+# $2 = mount point
+# $3 = md unit number (ignored in pre 5.0 systems)
+# $4 = (optional) bytes-per-inode
+mount_md() {
+ if [ -n "$4" ]; then
+ bpi="-i $4"
+ fi
+ /sbin/mdconfig -a -t malloc -s $1 -u $3
+ /sbin/disklabel -r -w md$3 auto
+ /sbin/newfs $bpi /dev/md$3c
+ /sbin/mount /dev/md$3c $2
+}
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/rc.conf ]; then
+ . /etc/defaults/rc.conf
+ source_rc_confs
+elif [ -r /etc/rc.conf ]; then
+ . /etc/rc.conf
+fi
+
+echo "+++ mount_md of /var"
+mount_md ${varsize:=32m} /var 1
+
+echo "+++ populate /var using /etc/mtree/BSD.var.dist"
+/usr/sbin/mtree -deU -f /etc/mtree/BSD.var.dist -p /var
+case ${sendmail_enable} in
+[Nn][Oo][Nn][Ee])
+ ;;
+*)
+ /usr/sbin/mtree -deU -f /etc/mtree/BSD.sendmail.dist -p /
+ ;;
+esac
+
+echo "+++ create log files based on the contents of /etc/newsyslog.conf"
+LOGFILES=`/usr/bin/awk '$1 != "#" { printf "%s ", $1 } ' /etc/newsyslog.conf`
+if [ -n "$LOGFILES" ]; then
+ /usr/bin/touch $LOGFILES
+fi
+
+echo "+++ create lastlog"
+/usr/bin/touch /var/log/lastlog
+
+mount -a # chown and chgrp are in /usr
+
+# Since we are starting with a very fresh /etc on an MFS:
+if [ -d /conf/default/etc ]; then
+ newaliases
+fi
+
+#
+# XXX make sure to create one dir for each printer as requested by lpd
+#
+
+# If /tmp is a symlink, assume it points to somewhere writable, like
+# /var/tmp, otherwise, use a small memory filesystem for /tmp.
+#
+# XXX: mtree runs too early to create any directories needed in /tmp,
+# so if /var/tmp == /tmp, then you don't get a vi.recover.
+#
+if [ ! -h /tmp ]; then
+ mount_md ${tmpsize:=64m} /tmp 2
+ chmod 01777 /tmp
+fi
+
+if sysctl vfs.devfs.generation > /dev/null 2>&1 ; then
+ # we have DEVFS, no worries...
+ true
+else
+ # extract a list of device entries, then copy them to a writable fs
+ (cd /; find -x dev | cpio -o -H newc) > /tmp/dev.tmp
+ mount_md 4096 /dev 3 512
+ (cd /; cpio -i -H newc -d < /tmp/dev.tmp)
+fi
diff --git a/etc/rc.firewall b/etc/rc.firewall
new file mode 100644
index 0000000..57ce6bf
--- /dev/null
+++ b/etc/rc.firewall
@@ -0,0 +1,301 @@
+# Copyright (c) 1996 Poul-Henning Kamp
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+#
+# Setup system for firewall service.
+#
+
+# Suck in the configuration variables.
+if [ -z "${source_rc_confs_defined}" ]; then
+ if [ -r /etc/defaults/rc.conf ]; then
+ . /etc/defaults/rc.conf
+ source_rc_confs
+ elif [ -r /etc/rc.conf ]; then
+ . /etc/rc.conf
+ fi
+fi
+
+############
+# Define the firewall type in /etc/rc.conf. Valid values are:
+# open - will allow anyone in
+# client - will try to protect just this machine
+# simple - will try to protect a whole network
+# closed - totally disables IP services except via lo0 interface
+# UNKNOWN - disables the loading of firewall rules.
+# filename - will load the rules in the given filename (full path required)
+#
+# For ``client'' and ``simple'' the entries below should be customized
+# appropriately.
+
+############
+#
+# If you don't know enough about packet filtering, we suggest that you
+# take time to read this book:
+#
+# Building Internet Firewalls, 2nd Edition
+# Brent Chapman and Elizabeth Zwicky
+#
+# O'Reilly & Associates, Inc
+# ISBN 1-56592-871-7
+# http://www.ora.com/
+# http://www.oreilly.com/catalog/fire2/
+#
+# For a more advanced treatment of Internet Security read:
+#
+# Firewalls & Internet Security
+# Repelling the wily hacker
+# William R. Cheswick, Steven M. Bellowin
+#
+# Addison-Wesley
+# ISBN 0-201-63357-4
+# http://www.awl.com/
+# http://www.awlonline.com/product/0%2C2627%2C0201633574%2C00.html
+#
+
+setup_loopback () {
+ ############
+ # Only in rare cases do you want to change these rules
+ #
+ ${fwcmd} add 100 pass all from any to any via lo0
+ ${fwcmd} add 200 deny all from any to 127.0.0.0/8
+ ${fwcmd} add 300 deny ip from 127.0.0.0/8 to any
+}
+
+if [ -n "${1}" ]; then
+ firewall_type="${1}"
+fi
+
+############
+# Set quiet mode if requested
+#
+case ${firewall_quiet} in
+[Yy][Ee][Ss])
+ fwcmd="/sbin/ipfw -q"
+ ;;
+*)
+ fwcmd="/sbin/ipfw"
+ ;;
+esac
+
+############
+# Flush out the list before we begin.
+#
+${fwcmd} -f flush
+
+############
+# Network Address Translation. All packets are passed to natd(8)
+# before they encounter your remaining rules. The firewall rules
+# will then be run again on each packet after translation by natd
+# starting at the rule number following the divert rule.
+#
+# For ``simple'' firewall type the divert rule should be put to a
+# different place to not interfere with address-checking rules.
+#
+case ${firewall_type} in
+[Oo][Pp][Ee][Nn]|[Cc][Ll][Ii][Ee][Nn][Tt])
+ case ${natd_enable} in
+ [Yy][Ee][Ss])
+ if [ -n "${natd_interface}" ]; then
+ ${fwcmd} add 50 divert natd all from any to any via ${natd_interface}
+ fi
+ ;;
+ esac
+esac
+
+############
+# If you just configured ipfw in the kernel as a tool to solve network
+# problems or you just want to disallow some particular kinds of traffic
+# then you will want to change the default policy to open. You can also
+# do this as your only action by setting the firewall_type to ``open''.
+#
+# ${fwcmd} add 65000 pass all from any to any
+
+
+# Prototype setups.
+#
+case ${firewall_type} in
+[Oo][Pp][Ee][Nn])
+ setup_loopback
+ ${fwcmd} add 65000 pass all from any to any
+ ;;
+
+[Cc][Ll][Ii][Ee][Nn][Tt])
+ ############
+ # This is a prototype setup that will protect your system somewhat
+ # against people from outside your own network.
+ ############
+
+ # set these to your network and netmask and ip
+ net="192.0.2.0"
+ mask="255.255.255.0"
+ ip="192.0.2.1"
+
+ setup_loopback
+
+ # Allow any traffic to or from my own net.
+ ${fwcmd} add pass all from ${ip} to ${net}:${mask}
+ ${fwcmd} add pass all from ${net}:${mask} to ${ip}
+
+ # Allow TCP through if setup succeeded
+ ${fwcmd} add pass tcp from any to any established
+
+ # Allow IP fragments to pass through
+ ${fwcmd} add pass all from any to any frag
+
+ # Allow setup of incoming email
+ ${fwcmd} add pass tcp from any to ${ip} 25 setup
+
+ # Allow setup of outgoing TCP connections only
+ ${fwcmd} add pass tcp from ${ip} to any setup
+
+ # Disallow setup of all other TCP connections
+ ${fwcmd} add deny tcp from any to any setup
+
+ # Allow DNS queries out in the world
+ ${fwcmd} add pass udp from ${ip} to any 53 keep-state
+
+ # Allow NTP queries out in the world
+ ${fwcmd} add pass udp from ${ip} to any 123 keep-state
+
+ # Everything else is denied by default, unless the
+ # IPFIREWALL_DEFAULT_TO_ACCEPT option is set in your kernel
+ # config file.
+ ;;
+
+[Ss][Ii][Mm][Pp][Ll][Ee])
+ ############
+ # This is a prototype setup for a simple firewall. Configure this
+ # machine as a named server and ntp server, and point all the machines
+ # on the inside at this machine for those services.
+ ############
+
+ # set these to your outside interface network and netmask and ip
+ oif="ed0"
+ onet="192.0.2.0"
+ omask="255.255.255.240"
+ oip="192.0.2.1"
+
+ # set these to your inside interface network and netmask and ip
+ iif="ed1"
+ inet="192.0.2.16"
+ imask="255.255.255.240"
+ iip="192.0.2.17"
+
+ setup_loopback
+
+ # Stop spoofing
+ ${fwcmd} add deny all from ${inet}:${imask} to any in via ${oif}
+ ${fwcmd} add deny all from ${onet}:${omask} to any in via ${iif}
+
+ # Stop RFC1918 nets on the outside interface
+ ${fwcmd} add deny all from any to 10.0.0.0/8 via ${oif}
+ ${fwcmd} add deny all from any to 172.16.0.0/12 via ${oif}
+ ${fwcmd} add deny all from any to 192.168.0.0/16 via ${oif}
+
+ # Stop draft-manning-dsua-03.txt (1 May 2000) nets (includes RESERVED-1,
+ # DHCP auto-configuration, NET-TEST, MULTICAST (class D), and class E)
+ # on the outside interface
+ ${fwcmd} add deny all from any to 0.0.0.0/8 via ${oif}
+ ${fwcmd} add deny all from any to 169.254.0.0/16 via ${oif}
+ ${fwcmd} add deny all from any to 192.0.2.0/24 via ${oif}
+ ${fwcmd} add deny all from any to 224.0.0.0/4 via ${oif}
+ ${fwcmd} add deny all from any to 240.0.0.0/4 via ${oif}
+
+ # Network Address Translation. This rule is placed here deliberately
+ # so that it does not interfere with the surrounding address-checking
+ # rules. If for example one of your internal LAN machines had its IP
+ # address set to 192.0.2.1 then an incoming packet for it after being
+ # translated by natd(8) would match the `deny' rule above. Similarly
+ # an outgoing packet originated from it before being translated would
+ # match the `deny' rule below.
+ case ${natd_enable} in
+ [Yy][Ee][Ss])
+ if [ -n "${natd_interface}" ]; then
+ ${fwcmd} add divert natd all from any to any via ${natd_interface}
+ fi
+ ;;
+ esac
+
+ # Stop RFC1918 nets on the outside interface
+ ${fwcmd} add deny all from 10.0.0.0/8 to any via ${oif}
+ ${fwcmd} add deny all from 172.16.0.0/12 to any via ${oif}
+ ${fwcmd} add deny all from 192.168.0.0/16 to any via ${oif}
+
+ # Stop draft-manning-dsua-03.txt (1 May 2000) nets (includes RESERVED-1,
+ # DHCP auto-configuration, NET-TEST, MULTICAST (class D), and class E)
+ # on the outside interface
+ ${fwcmd} add deny all from 0.0.0.0/8 to any via ${oif}
+ ${fwcmd} add deny all from 169.254.0.0/16 to any via ${oif}
+ ${fwcmd} add deny all from 192.0.2.0/24 to any via ${oif}
+ ${fwcmd} add deny all from 224.0.0.0/4 to any via ${oif}
+ ${fwcmd} add deny all from 240.0.0.0/4 to any via ${oif}
+
+ # Allow TCP through if setup succeeded
+ ${fwcmd} add pass tcp from any to any established
+
+ # Allow IP fragments to pass through
+ ${fwcmd} add pass all from any to any frag
+
+ # Allow setup of incoming email
+ ${fwcmd} add pass tcp from any to ${oip} 25 setup
+
+ # Allow access to our DNS
+ ${fwcmd} add pass tcp from any to ${oip} 53 setup
+ ${fwcmd} add pass udp from any to ${oip} 53
+ ${fwcmd} add pass udp from ${oip} 53 to any
+
+ # Allow access to our WWW
+ ${fwcmd} add pass tcp from any to ${oip} 80 setup
+
+ # Reject&Log all setup of incoming connections from the outside
+ ${fwcmd} add deny log tcp from any to any in via ${oif} setup
+
+ # Allow setup of any other TCP connection
+ ${fwcmd} add pass tcp from any to any setup
+
+ # Allow DNS queries out in the world
+ ${fwcmd} add pass udp from ${oip} to any 53 keep-state
+
+ # Allow NTP queries out in the world
+ ${fwcmd} add pass udp from ${oip} to any 123 keep-state
+
+ # Everything else is denied by default, unless the
+ # IPFIREWALL_DEFAULT_TO_ACCEPT option is set in your kernel
+ # config file.
+ ;;
+
+[Cc][Ll][Oo][Ss][Ee][Dd])
+ setup_loopback
+ ;;
+[Uu][Nn][Kk][Nn][Oo][Ww][Nn])
+ ;;
+*)
+ if [ -r "${firewall_type}" ]; then
+ ${fwcmd} ${firewall_flags} ${firewall_type}
+ fi
+ ;;
+esac
diff --git a/etc/rc.firewall6 b/etc/rc.firewall6
new file mode 100644
index 0000000..a8cd69c
--- /dev/null
+++ b/etc/rc.firewall6
@@ -0,0 +1,286 @@
+############
+# Setup system for IPv6 firewall service.
+# $FreeBSD$
+
+# Suck in the configuration variables.
+if [ -z "${source_rc_confs_defined}" ]; then
+ if [ -r /etc/defaults/rc.conf ]; then
+ . /etc/defaults/rc.conf
+ source_rc_confs
+ elif [ -r /etc/rc.conf ]; then
+ . /etc/rc.conf
+ fi
+fi
+
+############
+# Define the firewall type in /etc/rc.conf. Valid values are:
+# open - will allow anyone in
+# client - will try to protect just this machine
+# simple - will try to protect a whole network
+# closed - totally disables IP services except via lo0 interface
+# UNKNOWN - disables the loading of firewall rules.
+# filename - will load the rules in the given filename (full path required)
+#
+# For ``client'' and ``simple'' the entries below should be customized
+# appropriately.
+
+############
+#
+# If you don't know enough about packet filtering, we suggest that you
+# take time to read this book:
+#
+# Building Internet Firewalls, 2nd Edition
+# Brent Chapman and Elizabeth Zwicky
+#
+# O'Reilly & Associates, Inc
+# ISBN 1-56592-871-7
+# http://www.ora.com/
+# http://www.oreilly.com/catalog/fire2/
+#
+# For a more advanced treatment of Internet Security read:
+#
+# Firewalls & Internet Security
+# Repelling the wily hacker
+# William R. Cheswick, Steven M. Bellowin
+#
+# Addison-Wesley
+# ISBN 0-201-63357-4
+# http://www.awl.com/
+# http://www.awlonline.com/product/0%2C2627%2C0201633574%2C00.html
+#
+
+setup_local () {
+ ############
+ # Only in rare cases do you want to change these rules
+ #
+ ${fw6cmd} add 100 pass all from any to any via lo0
+ #
+ # ND
+ #
+ # DAD
+ ${fw6cmd} add pass ipv6-icmp from :: to ff02::/16
+ # RS, RA, NS, NA, redirect...
+ ${fw6cmd} add pass ipv6-icmp from fe80::/10 to fe80::/10
+ ${fw6cmd} add pass ipv6-icmp from fe80::/10 to ff02::/16
+}
+
+if [ -n "${1}" ]; then
+ ipv6_firewall_type="${1}"
+fi
+
+############
+# Set quiet mode if requested
+#
+case ${ipv6_firewall_quiet} in
+[Yy][Ee][Ss])
+ fw6cmd="/sbin/ip6fw -q"
+ ;;
+*)
+ fw6cmd="/sbin/ip6fw"
+ ;;
+esac
+
+############
+# Flush out the list before we begin.
+#
+${fw6cmd} -f flush
+
+############
+# If you just configured ipfw in the kernel as a tool to solve network
+# problems or you just want to disallow some particular kinds of traffic
+# then you will want to change the default policy to open. You can also
+# do this as your only action by setting the ipv6_firewall_type to ``open''.
+#
+# ${fw6cmd} add 65000 pass all from any to any
+
+
+# Prototype setups.
+#
+case ${ipv6_firewall_type} in
+[Oo][Pp][Ee][Nn])
+ setup_local
+ ${fw6cmd} add 65000 pass all from any to any
+ ;;
+
+[Cc][Ll][Ii][Ee][Nn][Tt])
+ ############
+ # This is a prototype setup that will protect your system somewhat
+ # against people from outside your own network.
+ ############
+
+ # set these to your network and prefixlen and ip
+ #
+ # This needs more work
+ #
+ net="3ffe:505:2:1::"
+ prefixlen="64"
+ ip="3ffe:505:2:1::1"
+
+ setup_local
+
+ # Allow any traffic to or from my own net.
+ ${fw6cmd} add pass all from ${ip} to ${net}/${prefixlen}
+ ${fw6cmd} add pass all from ${net}/${prefixlen} to ${ip}
+
+ # Allow any link-local multicast traffic
+ ${fw6cmd} add pass all from fe80::/10 to ff02::/16
+ ${fw6cmd} add pass all from ${net}/${prefixlen} to ff02::/16
+
+ # Allow TCP through if setup succeeded
+ ${fw6cmd} add pass tcp from any to any established
+
+ # Allow IP fragments to pass through
+ ${fw6cmd} add pass all from any to any frag
+
+ # Allow setup of incoming email
+ ${fw6cmd} add pass tcp from any to ${ip} 25 setup
+
+ # Allow setup of outgoing TCP connections only
+ ${fw6cmd} add pass tcp from ${ip} to any setup
+
+ # Disallow setup of all other TCP connections
+ ${fw6cmd} add deny tcp from any to any setup
+
+ # Allow DNS queries out in the world
+ ${fw6cmd} add pass udp from any 53 to ${ip}
+ ${fw6cmd} add pass udp from ${ip} to any 53
+
+ # Allow NTP queries out in the world
+ ${fw6cmd} add pass udp from any 123 to ${ip}
+ ${fw6cmd} add pass udp from ${ip} to any 123
+
+ # Allow ICMPv6 destination unreach
+ ${fw6cmd} add pass ipv6-icmp from any to any icmptypes 1
+
+ # Allow NS/NA/toobig (don't filter it out)
+ ${fw6cmd} add pass ipv6-icmp from any to any icmptypes 2,135,136
+
+ # Everything else is denied by default, unless the
+ # IPV6FIREWALL_DEFAULT_TO_ACCEPT option is set in your kernel
+ # config file.
+ ;;
+
+[Ss][Ii][Mm][Pp][Ll][Ee])
+ ############
+ # This is a prototype setup for a simple firewall. Configure this
+ # machine as a named server and ntp server, and point all the machines
+ # on the inside at this machine for those services.
+ ############
+
+ # set these to your outside interface network and prefixlen and ip
+ oif="ed0"
+ onet="3ffe:505:2:1::"
+ oprefixlen="64"
+ oip="3ffe:505:2:1::1"
+
+ # set these to your inside interface network and prefixlen and ip
+ iif="ed1"
+ inet="3ffe:505:2:2::"
+ iprefixlen="64"
+ iip="3ffe:505:2:2::1"
+
+ setup_local
+
+ # Stop spoofing
+ ${fw6cmd} add deny all from ${inet}/${iprefixlen} to any in via ${oif}
+ ${fw6cmd} add deny all from ${onet}/${oprefixlen} to any in via ${iif}
+
+ # Stop site-local on the outside interface
+ ${fw6cmd} add deny all from fec0::/10 to any via ${oif}
+ ${fw6cmd} add deny all from any to fec0::/10 via ${oif}
+
+ # Disallow "internal" addresses to appear on the wire.
+ ${fw6cmd} add deny all from ::ffff:0.0.0.0/96 to any via ${oif}
+ ${fw6cmd} add deny all from any to ::ffff:0.0.0.0/96 via ${oif}
+
+ # Disallow packets to malicious IPv4 compatible prefix.
+ ${fw6cmd} add deny all from ::224.0.0.0/100 to any via ${oif}
+ ${fw6cmd} add deny all from any to ::224.0.0.0/100 via ${oif}
+ ${fw6cmd} add deny all from ::127.0.0.0/104 to any via ${oif}
+ ${fw6cmd} add deny all from any to ::127.0.0.0/104 via ${oif}
+ ${fw6cmd} add deny all from ::0.0.0.0/104 to any via ${oif}
+ ${fw6cmd} add deny all from any to ::0.0.0.0/104 via ${oif}
+ ${fw6cmd} add deny all from ::255.0.0.0/104 to any via ${oif}
+ ${fw6cmd} add deny all from any to ::255.0.0.0/104 via ${oif}
+
+ ${fw6cmd} add deny all from ::0.0.0.0/96 to any via ${oif}
+ ${fw6cmd} add deny all from any to ::0.0.0.0/96 via ${oif}
+
+ # Disallow packets to malicious 6to4 prefix.
+ ${fw6cmd} add deny all from 2002:e000::/20 to any via ${oif}
+ ${fw6cmd} add deny all from any to 2002:e000::/20 via ${oif}
+ ${fw6cmd} add deny all from 2002:7f00::/24 to any via ${oif}
+ ${fw6cmd} add deny all from any to 2002:7f00::/24 via ${oif}
+ ${fw6cmd} add deny all from 2002:0000::/24 to any via ${oif}
+ ${fw6cmd} add deny all from any to 2002:0000::/24 via ${oif}
+ ${fw6cmd} add deny all from 2002:ff00::/24 to any via ${oif}
+ ${fw6cmd} add deny all from any to 2002:ff00::/24 via ${oif}
+
+ ${fw6cmd} add deny all from 2002:0a00::/24 to any via ${oif}
+ ${fw6cmd} add deny all from any to 2002:0a00::/24 via ${oif}
+ ${fw6cmd} add deny all from 2002:ac10::/28 to any via ${oif}
+ ${fw6cmd} add deny all from any to 2002:ac10::/28 via ${oif}
+ ${fw6cmd} add deny all from 2002:c0a8::/32 to any via ${oif}
+ ${fw6cmd} add deny all from any to 2002:c0a8::/32 via ${oif}
+
+ ${fw6cmd} add deny all from ff05::/16 to any via ${oif}
+ ${fw6cmd} add deny all from any to ff05::/16 via ${oif}
+
+ # Allow TCP through if setup succeeded
+ ${fw6cmd} add pass tcp from any to any established
+
+ # Allow IP fragments to pass through
+ ${fw6cmd} add pass all from any to any frag
+
+ # Allow setup of incoming email
+ ${fw6cmd} add pass tcp from any to ${oip} 25 setup
+
+ # Allow access to our DNS
+ ${fw6cmd} add pass tcp from any to ${oip} 53 setup
+ ${fw6cmd} add pass udp from any to ${oip} 53
+ ${fw6cmd} add pass udp from ${oip} 53 to any
+
+ # Allow access to our WWW
+ ${fw6cmd} add pass tcp from any to ${oip} 80 setup
+
+ # Reject&Log all setup of incoming connections from the outside
+ ${fw6cmd} add deny log tcp from any to any in via ${oif} setup
+
+ # Allow setup of any other TCP connection
+ ${fw6cmd} add pass tcp from any to any setup
+
+ # Allow DNS queries out in the world
+ ${fw6cmd} add pass udp from any 53 to ${oip}
+ ${fw6cmd} add pass udp from ${oip} to any 53
+
+ # Allow NTP queries out in the world
+ ${fw6cmd} add pass udp from any 123 to ${oip}
+ ${fw6cmd} add pass udp from ${oip} to any 123
+
+ # Allow RIPng
+ #${fw6cmd} add pass udp from fe80::/10 521 to ff02::9 521
+ #${fw6cmd} add pass udp from fe80::/10 521 to fe80::/10 521
+
+ # Allow ICMPv6 destination unreach
+ ${fw6cmd} add pass ipv6-icmp from any to any icmptypes 1
+
+ # Allow NS/NA/toobig (don't filter it out)
+ ${fw6cmd} add pass ipv6-icmp from any to any icmptypes 2,135,136
+
+ # Everything else is denied by default, unless the
+ # IPV6FIREWALL_DEFAULT_TO_ACCEPT option is set in your kernel
+ # config file.
+ ;;
+
+[Cc][Ll][Oo][Ss][Ee][Dd])
+ # Only enable the loopback interface
+ ${fw6cmd} add 100 pass all from any to any via lo0
+ ;;
+[Uu][Nn][Kk][Nn][Oo][Ww][Nn])
+ ;;
+*)
+ if [ -r "${ipv6_firewall_type}" ]; then
+ ${fw6cmd} ${ipv6_firewall_flags} ${ipv6_firewall_type}
+ fi
+ ;;
+esac
diff --git a/etc/rc.initdiskless b/etc/rc.initdiskless
new file mode 100644
index 0000000..6e47bb9
--- /dev/null
+++ b/etc/rc.initdiskless
@@ -0,0 +1,143 @@
+#!/bin/sh
+#
+# Copyright (c) 1999 Matt Dillion
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# PROVIDE: initdiskless
+# KEYWORD: FreeBSD
+
+dlv=`/sbin/sysctl -n vfs.nfs.diskless_valid 2> /dev/null`
+[ ${dlv:=0} -eq 0 ] && exit 0
+
+#
+# BOOTP has mounted / for us. Assume a read-only mount. We must then
+# - figure out our IP by querying the interface
+# - mount /etc as an MFS
+# - populate /etc from /conf/default version
+# - override files in /etc with files from /conf/*/etc where
+# '*' is default, netmask of client, ip-address of client
+#
+# The operator is in charge of setting /conf/*/etc/* things as appropriate.
+# Typically rc.conf and fstab need to be changed, but possibly also other
+# files such as inetd.conf etc.
+
+# chkerr:
+#
+# Routine to check for error
+#
+# checks error code and drops into shell on failure.
+# if shell exits, terminates script as well as /etc/rc.
+#
+chkerr()
+{
+ case $1 in
+ 0)
+ ;;
+ *)
+ echo "$2 failed: dropping into /bin/sh"
+ /bin/sh
+ # RESUME
+ ;;
+ esac
+}
+
+mount_md()
+{
+ /sbin/mdconfig -a -t malloc -s $1 -u $3
+ /sbin/disklabel -r -w md$3 auto
+ /sbin/newfs -i 4096 /dev/md$3c
+ /sbin/mount /dev/md$3c $2
+}
+
+# DEBUGGING
+#
+# set -v
+
+# Figure out our interface and IP.
+#
+bootp_ifc=""
+bootp_ipa=""
+bootp_ipbca=""
+iflist=`ifconfig -l`
+for i in ${iflist} ; do
+ set `ifconfig ${i}`
+ while [ $# -ge 1 ] ; do
+ if [ "${bootp_ifc}" = "" -a "$1" = "inet" ] ; then
+ bootp_ifc=${i} ; bootp_ipa=${2} ; shift
+ fi
+ if [ "${bootp_ipbca}" = "" -a "$1" = "broadcast" ] ; then
+ bootp_ipbca=$2; shift
+ fi
+ shift
+ done
+ if [ "${bootp_ifc}" != "" ] ; then
+ break
+ fi
+done
+echo "Interface ${bootp_ifc} IP-Address ${bootp_ipa} Broadcast ${bootp_ipbca}"
+
+if [ -z "`hostname -s`" ]; then
+ hostname=`kenv dhcp.host-name`
+ hostname $hostname
+ echo "Hostname is $hostname"
+fi
+
+if [ -d /conf/default/etc ]; then
+ mount_md 4096 /etc 0
+ chkerr $? "MFS mount on /etc"
+ /bin/chmod 755 /etc
+
+ /bin/cp -Rp /conf/default/etc/* /etc
+ chkerr $? "cp /conf/default/etc to /etc MFS"
+fi
+
+# Allow for override files to replace files in /etc. Use /conf/*/etc to find
+# the override files. First choice is default files that # always override,
+# then files that from the directory that matches the client's broadcast
+# address, finally followed by overrides that match the client's IP address.
+#
+# This way we have some flexibility to handle clusters of machines on
+# separate subnets.
+
+for i in ${bootp_ipbca} ${bootp_ipa} ${hostname} ; do
+ if [ -d /conf/${i}/etc ]; then
+ cp -Rp /conf/${i}/etc/* /etc
+ fi
+done
+
+#
+# if the info is available via dhcp/kenv
+# build the resolv.conf
+#
+if [ ! -e /etc/resolv.conf ]; then
+ echo domain `kenv dhcp.domain-name` > /etc/resolv.conf
+
+ set `kenv dhcp.domain-name-servers`
+ for ns in `IFS=','; echo $*`; do
+ echo nameserver $ns >> /etc/resolv.conf;
+ done
+fi
diff --git a/etc/rc.isdn b/etc/rc.isdn
new file mode 100644
index 0000000..a3d3e54
--- /dev/null
+++ b/etc/rc.isdn
@@ -0,0 +1,96 @@
+#!/bin/sh
+#
+# Copyright (c) 1999 Hellmuth Michaelis
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+#---------------------------------------------------------------------------
+#
+# /etc/rc.isdn - isdn4bsd startup script
+# --------------------------------------
+#
+#---------------------------------------------------------------------------
+
+case ${isdn_enable} in
+[Yy][Ee][Ss])
+ echo -n 'ISDN subsystem setup:'
+
+ # Check for pcvt driver (VT100/VT220 emulator)
+ #
+ if [ -x /usr/sbin/ispcvt ]; then
+ if /usr/sbin/ispcvt; then
+ # No vidcontrol if we are using pcvt
+ #
+ isdn_screenflags=NO
+ fi
+ fi
+
+ case ${isdn_flags} in
+ [Nn][Oo])
+ isdn_flags=''
+ ;;
+ esac
+
+ # Start the isdn daemon
+ #
+ if [ -x /usr/sbin/isdnd ]; then
+ echo -n ' isdnd'
+ case ${isdn_fsdev} in
+ [Nn][Oo] | '')
+ /usr/sbin/isdnd ${isdn_flags}
+ ;;
+ *)
+ # Change vidmode of ${isdn_fsdev}
+ #
+ case ${isdn_screenflags} in
+ [Nn][Oo])
+ ;;
+ *)
+ if [ -x /usr/sbin/vidcontrol ]; then
+ /usr/sbin/vidcontrol < ${isdn_fsdev} > ${isdn_fsdev} 2>&1 ${isdn_screenflags}
+ fi
+ ;;
+ esac
+
+ /usr/sbin/isdnd ${isdn_flags} -f -r ${isdn_fsdev} -t ${isdn_ttype}
+ ;;
+ esac
+ fi
+
+ # Start isdntrace
+ #
+ case ${isdn_trace} in
+ [Yy][Ee][Ss])
+ if [ -x /usr/sbin/isdntrace ]; then
+ echo -n ' isdntrace'
+ nohup /usr/sbin/isdntrace ${isdn_traceflags} >/dev/null 2>&1 &
+ fi
+ ;;
+ esac
+
+ echo '.'
+ ;;
+esac
diff --git a/etc/rc.network b/etc/rc.network
new file mode 100644
index 0000000..b53e358
--- /dev/null
+++ b/etc/rc.network
@@ -0,0 +1,969 @@
+#!/bin/sh -
+#
+# Copyright (c) 1993 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+# From: @(#)netstart 5.9 (Berkeley) 3/30/91
+#
+
+# Note that almost all of the user-configurable behavior is no longer in
+# this file, but rather in /etc/defaults/rc.conf. Please check that file
+# first before contemplating any changes here. If you do need to change
+# this file for some reason, we would like to know about it.
+
+# First pass startup stuff.
+#
+network_pass1() {
+ echo -n 'Doing initial network setup:'
+
+ # Generate host.conf for compatibility
+ #
+ if [ -f "/etc/nsswitch.conf" ]; then
+ echo -n ' host.conf'
+ generate_host_conf /etc/nsswitch.conf /etc/host.conf
+ fi
+
+ # Convert host.conf to nsswitch.conf if necessary
+ #
+ if [ -f "/etc/host.conf" -a ! -f "/etc/nsswitch.conf" ]; then
+ echo ''
+ echo 'Warning: /etc/host.conf is no longer used'
+ echo ' /etc/nsswitch.conf will be created for you'
+ convert_host_conf /etc/host.conf /etc/nsswitch.conf
+ fi
+
+ # Set the host name if it is not already set
+ #
+ if [ -z "`hostname -s`" ]; then
+ hostname ${hostname}
+ echo -n ' hostname'
+ fi
+
+ # Establish ipfilter ruleset as early as possible (best in
+ # addition to IPFILTER_DEFAULT_BLOCK in the kernel config file)
+
+ # check whether ipfilter and/or ipnat is enabled
+ ipfilter_active="NO"
+ case ${ipfilter_enable} in
+ [Yy][Ee][Ss])
+ ipfilter_active="YES"
+ ;;
+ esac
+ case ${ipnat_enable} in
+ [Yy][Ee][Ss])
+ ipfilter_active="YES"
+ ;;
+ esac
+ case ${ipfilter_active} in
+ [Yy][Ee][Ss])
+ # load ipfilter kernel module if needed
+ if ! sysctl net.inet.ipf.fr_pass > /dev/null 2>&1; then
+ if kldload ipl; then
+ echo 'IP-filter module loaded.'
+ else
+ echo 'Warning: IP-filter module failed to load.'
+ # avoid further errors
+ ipfilter_active="NO"
+ ipmon_enable="NO"
+ ipfilter_enable="NO"
+ ipnat_enable="NO"
+ ipfs_enable="NO"
+ fi
+ fi
+ # start ipmon before loading any rules
+ case "${ipmon_enable}" in
+ [Yy][Ee][Ss])
+ echo -n ' ipmon'
+ ${ipmon_program:-/sbin/ipmon} ${ipmon_flags}
+ ;;
+ esac
+ case "${ipfilter_enable}" in
+ [Yy][Ee][Ss])
+ if [ -r "${ipfilter_rules}" ]; then
+ echo -n ' ipfilter'
+ ${ipfilter_program:-/sbin/ipf} -Fa -f \
+ "${ipfilter_rules}" ${ipfilter_flags}
+ else
+ ipfilter_enable="NO"
+ echo -n ' NO IPF RULES'
+ fi
+ ;;
+ esac
+ case "${ipnat_enable}" in
+ [Yy][Ee][Ss])
+ if [ -r "${ipnat_rules}" ]; then
+ echo -n ' ipnat'
+ eval ${ipnat_program:-/sbin/ipnat} -CF -f \
+ "${ipnat_rules}" ${ipnat_flags}
+ else
+ ipnat_enable="NO"
+ echo -n ' NO IPNAT RULES'
+ fi
+ ;;
+ esac
+ # restore filter/NAT state tables after loading the rules
+ case "${ipfs_enable}" in
+ [Yy][Ee][Ss])
+ if [ -r "/var/db/ipf/ipstate.ipf" ]; then
+ echo -n ' ipfs'
+ ${ipfs_program:-/sbin/ipfs} -R ${ipfs_flags}
+ # remove files to avoid reloading old state
+ # after an ungraceful shutdown
+ rm -f /var/db/ipf/ipstate.ipf
+ rm -f /var/db/ipf/ipnat.ipf
+ fi
+ ;;
+ esac
+ ;;
+ esac
+
+ # Set the domainname if we're using NIS
+ #
+ case ${nisdomainname} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ domainname ${nisdomainname}
+ echo -n ' domain'
+ ;;
+ esac
+
+ echo '.'
+
+ # Initial ATM interface configuration
+ #
+ case ${atm_enable} in
+ [Yy][Ee][Ss])
+ if [ -r /etc/rc.atm ]; then
+ . /etc/rc.atm
+ atm_pass1
+ fi
+ ;;
+ esac
+
+ # Attempt to create cloned interfaces.
+ for ifn in ${cloned_interfaces}; do
+ ifconfig ${ifn} create
+ done
+
+ # Special options for sppp(4) interfaces go here. These need
+ # to go _before_ the general ifconfig section, since in the case
+ # of hardwired (no link1 flag) but required authentication, you
+ # cannot pass auth parameters down to the already running interface.
+ #
+ for ifn in ${sppp_interfaces}; do
+ eval spppcontrol_args=\$spppconfig_${ifn}
+ if [ -n "${spppcontrol_args}" ]; then
+ # The auth secrets might contain spaces; in order
+ # to retain the quotation, we need to eval them
+ # here.
+ eval spppcontrol ${ifn} ${spppcontrol_args}
+ fi
+ done
+
+ # gifconfig
+ network_gif_setup
+
+ # Set up all the network interfaces, calling startup scripts if needed
+ #
+ case ${network_interfaces} in
+ [Aa][Uu][Tt][Oo])
+ network_interfaces="`ifconfig -l`"
+ ;;
+ *)
+ network_interfaces="${network_interfaces} ${cloned_interfaces}"
+ ;;
+ esac
+
+ dhcp_interfaces=""
+ for ifn in ${network_interfaces}; do
+ if [ -r /etc/start_if.${ifn} ]; then
+ . /etc/start_if.${ifn}
+ eval showstat_$ifn=1
+ fi
+
+ # Do the primary ifconfig if specified
+ #
+ eval ifconfig_args=\$ifconfig_${ifn}
+
+ case ${ifconfig_args} in
+ '')
+ ;;
+ [Dd][Hh][Cc][Pp])
+ # DHCP inits are done all in one go below
+ dhcp_interfaces="$dhcp_interfaces $ifn"
+ eval showstat_$ifn=1
+ ;;
+ *)
+ ifconfig ${ifn} ${ifconfig_args}
+ eval showstat_$ifn=1
+ ;;
+ esac
+ done
+
+ if [ ! -z "${dhcp_interfaces}" ]; then
+ ${dhcp_program:-/sbin/dhclient} ${dhcp_flags} ${dhcp_interfaces}
+ fi
+
+ for ifn in ${network_interfaces}; do
+ # Check to see if aliases need to be added
+ #
+ alias=0
+ while : ; do
+ eval ifconfig_args=\$ifconfig_${ifn}_alias${alias}
+ if [ -n "${ifconfig_args}" ]; then
+ ifconfig ${ifn} ${ifconfig_args} alias
+ eval showstat_$ifn=1
+ alias=$((${alias} + 1))
+ else
+ break;
+ fi
+ done
+
+ # Do ipx address if specified
+ #
+ eval ifconfig_args=\$ifconfig_${ifn}_ipx
+ if [ -n "${ifconfig_args}" ]; then
+ ifconfig ${ifn} ${ifconfig_args}
+ eval showstat_$ifn=1
+ fi
+ done
+
+ for ifn in ${network_interfaces}; do
+ eval showstat=\$showstat_${ifn}
+ if [ ! -z ${showstat} ]; then
+ ifconfig ${ifn}
+ fi
+ done
+
+ # ISDN subsystem startup
+ #
+ case ${isdn_enable} in
+ [Yy][Ee][Ss])
+ if [ -r /etc/rc.isdn ]; then
+ . /etc/rc.isdn
+ fi
+ ;;
+ esac
+
+ # Start user ppp if required. This must happen before natd.
+ #
+ case ${ppp_enable} in
+ [Yy][Ee][Ss])
+ # Establish ppp mode.
+ #
+ if [ "${ppp_mode}" != "ddial" -a "${ppp_mode}" != "direct" \
+ -a "${ppp_mode}" != "dedicated" \
+ -a "${ppp_mode}" != "background" ]; then
+ ppp_mode="auto"
+ fi
+
+ ppp_command="/usr/sbin/ppp -quiet -${ppp_mode}"
+
+ # Switch on NAT mode?
+ #
+ case ${ppp_nat} in
+ [Yy][Ee][Ss])
+ ppp_command="${ppp_command} -nat"
+ ;;
+ esac
+
+ ppp_command="${ppp_command} ${ppp_profile}"
+
+ echo "Starting ppp as \"${ppp_user}\""
+ su -m ${ppp_user} -c "exec ${ppp_command}"
+ ;;
+ esac
+
+ # Re-Sync ipfilter so it picks up any new network interfaces
+ #
+ case ${ipfilter_active} in
+ [Yy][Ee][Ss])
+ ${ipfilter_program:-/sbin/ipf} -y ${ipfilter_flags} >/dev/null
+ ;;
+ esac
+ unset ipfilter_active
+
+ # Initialize IP filtering using ipfw
+ #
+ if /sbin/ipfw -q flush > /dev/null 2>&1; then
+ firewall_in_kernel=1
+ else
+ firewall_in_kernel=0
+ fi
+
+ case ${firewall_enable} in
+ [Yy][Ee][Ss])
+ if [ "${firewall_in_kernel}" -eq 0 ] && kldload ipfw; then
+ firewall_in_kernel=1
+ echo 'Kernel firewall module loaded'
+ elif [ "${firewall_in_kernel}" -eq 0 ]; then
+ echo 'Warning: firewall kernel module failed to load'
+ fi
+ ;;
+ esac
+
+ # Load the filters if required
+ #
+ case ${firewall_in_kernel} in
+ 1)
+ if [ -z "${firewall_script}" ]; then
+ firewall_script=/etc/rc.firewall
+ fi
+
+ case ${firewall_enable} in
+ [Yy][Ee][Ss])
+ if [ -r "${firewall_script}" ]; then
+ . "${firewall_script}"
+ echo -n 'Firewall rules loaded, starting divert daemons:'
+
+ # Network Address Translation daemon
+ #
+ case ${natd_enable} in
+ [Yy][Ee][Ss])
+ if [ -n "${natd_interface}" ]; then
+ if echo ${natd_interface} | \
+ grep -q -E '^[0-9]+(\.[0-9]+){0,3}$'; then
+ natd_flags="$natd_flags -a ${natd_interface}"
+ else
+ natd_flags="$natd_flags -n ${natd_interface}"
+ fi
+ fi
+ echo -n ' natd'; ${natd_program:-/sbin/natd} ${natd_flags}
+ ;;
+ esac
+
+ echo '.'
+
+ elif [ "`ipfw l 65535`" = "65535 deny ip from any to any" ]; then
+ echo 'Warning: kernel has firewall functionality,' \
+ 'but firewall rules are not enabled.'
+ echo ' All ip services are disabled.'
+ fi
+
+ case ${firewall_logging} in
+ [Yy][Ee][Ss] | '')
+ echo 'Firewall logging=YES'
+ sysctl net.inet.ip.fw.verbose=1 >/dev/null
+ ;;
+ *)
+ ;;
+ esac
+
+ ;;
+ esac
+ ;;
+ esac
+
+ # Additional ATM interface configuration
+ #
+ if [ -n "${atm_pass1_done}" ]; then
+ atm_pass2
+ fi
+
+ # Configure routing
+ #
+ case ${defaultrouter} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ static_routes="default ${static_routes}"
+ route_default="default ${defaultrouter}"
+ ;;
+ esac
+
+ # Set up any static routes. This should be done before router discovery.
+ #
+ if [ -n "${static_routes}" ]; then
+ for i in ${static_routes}; do
+ eval route_args=\$route_${i}
+ route add ${route_args}
+ done
+ fi
+
+ echo -n 'Additional routing options:'
+ case ${tcp_extensions} in
+ [Yy][Ee][Ss] | '')
+ ;;
+ *)
+ echo -n ' tcp extensions=NO'
+ sysctl net.inet.tcp.rfc1323=0 >/dev/null
+ ;;
+ esac
+
+ case ${icmp_bmcastecho} in
+ [Yy][Ee][Ss])
+ echo -n ' broadcast ping responses=YES'
+ sysctl net.inet.icmp.bmcastecho=1 >/dev/null
+ ;;
+ esac
+
+ case ${icmp_drop_redirect} in
+ [Yy][Ee][Ss])
+ echo -n ' ignore ICMP redirect=YES'
+ sysctl net.inet.icmp.drop_redirect=1 >/dev/null
+ ;;
+ esac
+
+ case ${icmp_log_redirect} in
+ [Yy][Ee][Ss])
+ echo -n ' log ICMP redirect=YES'
+ sysctl net.inet.icmp.log_redirect=1 >/dev/null
+ ;;
+ esac
+
+ case ${gateway_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' IP gateway=YES'
+ sysctl net.inet.ip.forwarding=1 >/dev/null
+ ;;
+ esac
+
+ case ${forward_sourceroute} in
+ [Yy][Ee][Ss])
+ echo -n ' do source routing=YES'
+ sysctl net.inet.ip.sourceroute=1 >/dev/null
+ ;;
+ esac
+
+ case ${accept_sourceroute} in
+ [Yy][Ee][Ss])
+ echo -n ' accept source routing=YES'
+ sysctl net.inet.ip.accept_sourceroute=1 >/dev/null
+ ;;
+ esac
+
+ case ${tcp_keepalive} in
+ [Nn][Oo])
+ echo -n ' TCP keepalive=NO'
+ sysctl net.inet.tcp.always_keepalive=0 >/dev/null
+ ;;
+ esac
+
+ case ${tcp_drop_synfin} in
+ [Yy][Ee][Ss])
+ echo -n ' drop SYN+FIN packets=YES'
+ sysctl net.inet.tcp.drop_synfin=1 >/dev/null
+ ;;
+ esac
+
+ case ${ipxgateway_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' IPX gateway=YES'
+ sysctl net.ipx.ipx.ipxforwarding=1 >/dev/null
+ ;;
+ esac
+
+ case ${arpproxy_all} in
+ [Yy][Ee][Ss])
+ echo -n ' ARP proxyall=YES'
+ sysctl net.link.ether.inet.proxyall=1 >/dev/null
+ ;;
+ esac
+
+ case ${ip_portrange_first} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ echo -n " ip_portrange_first=$ip_portrange_first"
+ sysctl net.inet.ip.portrange.first=$ip_portrange_first >/dev/null
+ ;;
+ esac
+
+ case ${ip_portrange_last} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ echo -n " ip_portrange_last=$ip_portrange_last"
+ sysctl net.inet.ip.portrange.last=$ip_portrange_last >/dev/null
+ ;;
+ esac
+
+ echo '.'
+
+ case ${ipsec_enable} in
+ [Yy][Ee][Ss])
+ if [ -f ${ipsec_file} ]; then
+ echo ' ipsec: enabled'
+ setkey -f ${ipsec_file}
+ else
+ echo ' ipsec: file not found'
+ fi
+ ;;
+ esac
+
+ echo -n 'Routing daemons:'
+ case ${router_enable} in
+ [Yy][Ee][Ss])
+ echo -n " ${router}"; ${router} ${router_flags}
+ ;;
+ esac
+
+ case ${ipxrouted_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' IPXrouted'
+ IPXrouted ${ipxrouted_flags} > /dev/null 2>&1
+ ;;
+ esac
+
+ case ${mrouted_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' mrouted'; mrouted ${mrouted_flags}
+ ;;
+ esac
+
+ case ${rarpd_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' rarpd'; rarpd ${rarpd_flags}
+ ;;
+ esac
+ echo '.'
+
+ # Let future generations know we made it.
+ #
+ network_pass1_done=YES
+}
+
+network_pass2() {
+ echo -n 'Doing additional network setup:'
+ case ${named_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' named'; ${named_program:-named} ${named_flags}
+ ;;
+ esac
+
+ case ${ntpdate_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' ntpdate'
+ ${ntpdate_program:-ntpdate} ${ntpdate_flags} >/dev/null 2>&1
+ ;;
+ esac
+
+ case ${ntpd_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' ntpd'; ${ntpd_program:-ntpd} ${ntpd_flags}
+ ;;
+ esac
+
+ case ${timed_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' timed'; timed ${timed_flags}
+ ;;
+ esac
+
+ case ${rpcbind_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' rpcbind'; ${rpcbind_program:-/usr/sbin/rpcbind} \
+ ${rpcbind_flags}
+
+ # Start ypserv if we're an NIS server.
+ # Run rpc.ypxfrd and rpc.yppasswdd only on the NIS master server.
+ #
+ case ${nis_server_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' ypserv'; ypserv ${nis_server_flags}
+
+ case ${nis_ypxfrd_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' rpc.ypxfrd'
+ rpc.ypxfrd ${nis_ypxfrd_flags}
+ ;;
+ esac
+
+ case ${nis_yppasswdd_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' rpc.yppasswdd'
+ rpc.yppasswdd ${nis_yppasswdd_flags}
+ ;;
+ esac
+ ;;
+ esac
+
+ # Start ypbind if we're an NIS client
+ #
+ case ${nis_client_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' ypbind'; ypbind ${nis_client_flags}
+ case ${nis_ypset_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' ypset'; ypset ${nis_ypset_flags}
+ ;;
+ esac
+ ;;
+ esac
+
+ # Start keyserv if we are running Secure RPC
+ #
+ case ${keyserv_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' keyserv'; keyserv ${keyserv_flags}
+ ;;
+ esac
+
+ # Start ypupdated if we are running Secure RPC
+ # and we are NIS master
+ #
+ case ${rpc_ypupdated_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' rpc.ypupdated'; rpc.ypupdated
+ ;;
+ esac
+ ;;
+ esac
+
+ # Start ATM daemons
+ if [ -n "${atm_pass2_done}" ]; then
+ atm_pass3
+ fi
+
+ echo '.'
+ network_pass2_done=YES
+}
+
+network_pass3() {
+ echo -n 'Starting final network daemons:'
+
+ case ${rpcbind_enable} in
+ [Yy][Ee][Ss])
+ case ${nfs_server_enable} in
+ [Yy][Ee][Ss])
+ # Handle absent nfs server support
+ nfsserver_in_kernel=0
+ if sysctl vfs.nfsrv >/dev/null 2>&1; then
+ nfsserver_in_kernel=1
+ else
+ kldload nfsserver && nfsserver_in_kernel=1
+ fi
+
+ if [ -r /etc/exports -a \
+ ${nfsserver_in_kernel} -eq 1 ]; then
+ echo -n ' mountd'
+
+ case ${weak_mountd_authentication} in
+ [Yy][Ee][Ss])
+ mountd_flags="${mountd_flags} -n"
+ ;;
+ esac
+
+ mountd ${mountd_flags}
+
+ case ${nfs_reserved_port_only} in
+ [Yy][Ee][Ss])
+ echo -n ' NFS on reserved port only=YES'
+ sysctl vfs.nfsrv.nfs_privport=1 > /dev/null
+ ;;
+ esac
+
+ echo -n ' nfsd'; nfsd ${nfs_server_flags}
+
+ case ${rpc_statd_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' rpc.statd'; rpc.statd
+ ;;
+ esac
+
+ case ${rpc_lockd_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' rpc.lockd'; rpc.lockd
+ ;;
+ esac
+ else
+ echo -n ' Warning: nfs server failed'
+ fi
+ ;;
+ *)
+ case ${mountd_enable} in
+ [Yy][Ee][Ss])
+ if [ -r /etc/exports ]; then
+ echo -n ' mountd'
+
+ case ${weak_mountd_authentication} in
+ [Yy][Ee][Ss])
+ mountd_flags="-n"
+ ;;
+ esac
+
+ mountd ${mountd_flags}
+ fi
+ ;;
+ esac
+ ;;
+ esac
+
+ case ${nfs_client_enable} in
+ [Yy][Ee][Ss])
+ nfsclient_in_kernel=0
+ # Handle absent nfs client support
+ if sysctl vfs.nfs >/dev/null 2>&1; then
+ nfsclient_in_kernel=1
+ else
+ kldload nfsclient && nfsclient_in_kernel=1
+ fi
+
+ if [ ${nfsclient_in_kernel} -eq 1 ]
+ then
+ if [ -n "${nfs_access_cache}" ]; then
+ echo -n " NFS access cache time=${nfs_access_cache}"
+ sysctl vfs.nfs.access_cache_timeout=${nfs_access_cache} >/dev/null
+ fi
+ if [ -n "${nfs_bufpackets}" ]; then
+ sysctl vfs.nfs.bufpackets=${nfs_bufpackets} > /dev/null
+ fi
+ case ${rpc_statd_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' rpc.statd'; rpc.statd
+ ;;
+ esac
+
+ case ${rpc_lockd_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' rpc.lockd'; rpc.lockd
+ ;;
+ esac
+
+ case ${amd_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' amd'
+ case ${amd_map_program} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ amd_flags="${amd_flags} `eval\
+ ${amd_map_program}`"
+ ;;
+ esac
+
+ case "${amd_flags}" in
+ '')
+ if [ -r /etc/amd.conf ]; then
+ amd &
+ else
+ echo ''
+ echo 'Warning: amd will not load without arguments'
+ fi
+ ;;
+ *)
+ amd -p ${amd_flags} \
+ >/var/run/amd.pid \
+ 2>/dev/null &
+ ;;
+ esac
+ ;;
+ esac
+ else
+ echo 'Warning: NFS client kernel module failed to load'
+ nfs_client_enable=NO
+ fi
+ ;;
+ esac
+
+ # If /var/db/mounttab exists, some nfs-server has not been
+ # successfully notified about a previous client shutdown.
+ # If there is no /var/db/mounttab, we do nothing.
+ if [ -f /var/db/mounttab ]; then
+ rpc.umntall -k
+ fi
+
+ ;;
+ esac
+
+ case ${rwhod_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' rwhod'; rwhod ${rwhod_flags}
+ ;;
+ esac
+
+ # Kerberos servers run ONLY on the Kerberos server machine
+ case ${kerberos4_server_enable} in
+ [Yy][Ee][Ss])
+ case ${kerberos_stash} in
+ [Yy][Ee][Ss])
+ stash=-n
+ ;;
+ *)
+ stash=
+ ;;
+ esac
+
+ echo -n ' kerberosIV'
+ ${kerberos4_server} ${stash} >> /var/log/kerberos.log &
+
+ case ${kadmind4_server_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' kadmindIV'
+ (
+ sleep 20;
+ ${kadmind4_server} ${stash} >/dev/null 2>&1 &
+ ) &
+ ;;
+ esac
+ unset stash_flag
+ ;;
+ esac
+
+ case ${kerberos5_server_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' kerberos5'
+ ${kerberos5_server} &
+
+ case ${kadmind5_server_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' kadmind5'
+ ${kadmind5_server} &
+ ;;
+ esac
+ ;;
+ esac
+
+ case ${pppoed_enable} in
+ [Yy][Ee][Ss])
+ if [ -n "${pppoed_provider}" ]; then
+ pppoed_flags="${pppoed_flags} -p ${pppoed_provider}"
+ fi
+ echo -n ' pppoed';
+ _opts=$-; set -f
+ /usr/libexec/pppoed ${pppoed_flags} ${pppoed_interface}
+ set +f; set -${_opts}
+ ;;
+ esac
+
+ case ${sshd_enable} in
+ [Yy][Ee][Ss])
+ if [ -x /usr/bin/ssh-keygen ]; then
+ if [ ! -f /etc/ssh/ssh_host_key ]; then
+ echo ' creating ssh1 RSA host key';
+ /usr/bin/ssh-keygen -t rsa1 -N "" \
+ -f /etc/ssh/ssh_host_key
+ fi
+ if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then
+ echo ' creating ssh2 RSA host key';
+ /usr/bin/ssh-keygen -t rsa -N "" \
+ -f /etc/ssh/ssh_host_rsa_key
+ fi
+ if [ ! -f /etc/ssh/ssh_host_dsa_key ]; then
+ echo ' creating ssh2 DSA host key';
+ /usr/bin/ssh-keygen -t dsa -N "" \
+ -f /etc/ssh/ssh_host_dsa_key
+ fi
+ fi
+ ;;
+ esac
+
+ echo '.'
+ network_pass3_done=YES
+}
+
+network_pass4() {
+ echo -n 'Additional TCP options:'
+ case ${log_in_vain} in
+ [Nn][Oo] | '')
+ log_in_vain=0
+ ;;
+ [Yy][Ee][Ss])
+ log_in_vain=1
+ ;;
+ [0-9]*)
+ ;;
+ *)
+ echo " invalid log_in_vain setting: ${log_in_vain}"
+ log_in_vain=0
+ ;;
+ esac
+
+ [ "${log_in_vain}" -ne 0 ] && (
+ echo -n " log_in_vain=${log_in_vain}"
+ sysctl net.inet.tcp.log_in_vain="${log_in_vain}" >/dev/null
+ sysctl net.inet.udp.log_in_vain="${log_in_vain}" >/dev/null
+ )
+ echo '.'
+ network_pass4_done=YES
+}
+
+network_gif_setup() {
+ case ${gif_interfaces} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ for i in ${gif_interfaces}; do
+ eval peers=\$gifconfig_$i
+ case ${peers} in
+ '')
+ continue
+ ;;
+ *)
+ ifconfig $i create >/dev/null 2>&1
+ ifconfig $i tunnel ${peers}
+ ;;
+ esac
+ done
+ ;;
+ esac
+}
+
+convert_host_conf() {
+ host_conf=$1; shift;
+ nsswitch_conf=$1; shift;
+ awk ' \
+ /^[:blank:]*#/ { next } \
+ /(hosts|local|file)/ { nsswitch[c] = "files"; c++; next } \
+ /(dns|bind)/ { nsswitch[c] = "dns"; c++; next } \
+ /nis/ { nsswitch[c] = "nis"; c++; next } \
+ { printf "Warning: unrecognized line [%s]", $0 > "/dev/stderr" } \
+ END { \
+ printf "hosts: "; \
+ for (i in nsswitch) printf "%s ", nsswitch[i]; \
+ printf "\n"; \
+ }' < $host_conf > $nsswitch_conf
+}
+
+generate_host_conf() {
+ nsswitch_conf=$1; shift;
+ host_conf=$1; shift;
+
+ awk '
+BEGIN {
+ xlat["files"] = "hosts";
+ xlat["dns"] = "bind";
+ xlat["nis"] = "nis";
+ cont = 0;
+}
+sub(/^[\t ]*hosts:/, "") || cont {
+ if (!cont)
+ srcs = ""
+ sub(/#.*/, "")
+ gsub(/[][]/, " & ")
+ cont = sub(/\\$/, "")
+ srcs = srcs " " $0
+}
+END {
+ print "# Auto-generated from nsswitch.conf, do not edit"
+ ns = split(srcs, s)
+ for (n = 1; n <= ns; ++n) {
+ if (s[n] in xlat)
+ print xlat[s[n]]
+ }
+}
+' <$nsswitch_conf >$host_conf
+}
diff --git a/etc/rc.network6 b/etc/rc.network6
new file mode 100644
index 0000000..3e9a7c3
--- /dev/null
+++ b/etc/rc.network6
@@ -0,0 +1,540 @@
+#! /bin/sh
+#
+# Copyright (c) 2000 The KAME Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# Note that almost all of the user-configurable behavior is not in this
+# file, but rather in /etc/defaults/rc.conf. Please check that file
+# first before contemplating any changes here. If you do need to change
+# this file for some reason, we would like to know about it.
+
+hexdigit () {
+ if [ $1 -lt 10 ]; then
+ echo $1
+ else
+ case $1 in
+ 10) echo a ;;
+ 11) echo b ;;
+ 12) echo c ;;
+ 13) echo d ;;
+ 14) echo e ;;
+ 15) echo f ;;
+ esac
+ fi
+}
+
+hexprint () {
+ val=$1
+ str=''
+
+ dig=`hexdigit $((${val} & 15))`
+ str=${dig}${str}
+ val=$((${val} >> 4))
+ while [ ${val} -gt 0 ]; do
+ dig=`hexdigit $((${val} & 15))`
+ str=${dig}${str}
+ val=$((${val} >> 4))
+ done
+
+ echo ${str}
+}
+
+# IPv6 startup
+
+network6_pass1() {
+ echo -n 'Doing IPv6 network setup:'
+
+ # Initialize IP filtering using ip6fw
+ #
+ if /sbin/ip6fw -q flush > /dev/null 2>&1; then
+ ipv6_firewall_in_kernel=1
+ else
+ ipv6_firewall_in_kernel=0
+ fi
+
+ case ${ipv6_firewall_enable} in
+ [Yy][Ee][Ss])
+ if [ "${ipv6_firewall_in_kernel}" -eq 0 ] && kldload ip6fw; then
+ ipv6_firewall_in_kernel=1
+ echo "Kernel IPv6 firewall module loaded."
+ elif [ "${ipv6_firewall_in_kernel}" -eq 0 ]; then
+ echo "Warning: IPv6 firewall kernel module failed to load."
+ fi
+ ;;
+ esac
+
+ # Load the filters if required
+ #
+ case ${ipv6_firewall_in_kernel} in
+ 1)
+ if [ -z "${ipv6_firewall_script}" ]; then
+ ipv6_firewall_script=/etc/rc.firewall6
+ fi
+
+ case ${ipv6_firewall_enable} in
+ [Yy][Ee][Ss])
+ if [ -r "${ipv6_firewall_script}" ]; then
+ . "${ipv6_firewall_script}"
+ echo -n 'IPv6 Firewall rules loaded.'
+ elif [ "`ip6fw l 65535`" = "65535 deny ipv6 from any to any" ]; then
+ echo -n "Warning: kernel has IPv6 firewall functionality, "
+ echo "but IPv6 firewall rules are not enabled."
+ echo " All ipv6 services are disabled."
+ fi
+
+ case ${ipv6_firewall_logging} in
+ [Yy][Ee][Ss] | '')
+ echo 'IPv6 Firewall logging=YES'
+ sysctl net.inet6.ip6.fw.verbose=1 >/dev/null
+ ;;
+ *)
+ ;;
+ esac
+
+ ;;
+ esac
+ ;;
+ esac
+
+ case ${ipv6_network_interfaces} in
+ [Aa][Uu][Tt][Oo])
+ #
+ # list of interfaces, and prefix for interfaces
+ #
+ ipv6_network_interfaces="`ifconfig -l`"
+ ;;
+ [Nn][Oo][Nn][Ee])
+ ipv6_network_interfaces=''
+ ;;
+ esac
+
+ # just to make sure
+ ifconfig lo0 up
+
+ # disallow "internal" addresses to appear on the wire
+ route add -inet6 ::ffff:0.0.0.0 -prefixlen 96 ::1 -reject
+ route add -inet6 ::0.0.0.0 -prefixlen 96 ::1 -reject
+
+ case ${ipv6_gateway_enable} in
+ [Yy][Ee][Ss])
+ # act as a router
+ sysctl net.inet6.ip6.forwarding=1
+ sysctl net.inet6.ip6.accept_rtadv=0
+
+ # wait for DAD
+ for i in $ipv6_network_interfaces; do
+ ifconfig $i up
+ done
+ sleep `sysctl -n net.inet6.ip6.dad_count`
+ sleep 1
+ ;;
+ *)
+ # act as endhost - start with manual configuration
+ # Setup of net.inet6.ip6.accept_rtadv is done later by
+ # network6_interface_setup.
+ sysctl net.inet6.ip6.forwarding=0
+ ;;
+ esac
+
+ if [ -n "${ipv6_network_interfaces}" ]; then
+ # setting up interfaces
+ network6_interface_setup $ipv6_network_interfaces
+
+ # wait for DAD's completion (for global addrs)
+ sleep `sysctl -n net.inet6.ip6.dad_count`
+ sleep 1
+ fi
+
+ case ${ipv6_gateway_enable} in
+ [Yy][Ee][Ss])
+ # Filter out interfaces on which IPv6 addr init failed.
+ ipv6_working_interfaces=""
+ for i in ${ipv6_network_interfaces}; do
+ laddr=`network6_getladdr $i exclude_tentative`
+ case ${laddr} in
+ '')
+ ;;
+ *)
+ ipv6_working_interfaces="$i \
+ ${ipv6_working_interfaces}"
+ ;;
+ esac
+ done
+ ipv6_network_interfaces=${ipv6_working_interfaces}
+ ;;
+ esac
+
+ # 6to4 setup
+ network6_stf_setup
+
+ # install the "default interface" to kernel, which will be used
+ # as the default route when there's no router.
+ network6_default_interface_setup
+
+ # setup static routes
+ network6_static_routes_setup
+
+ # setup faith
+ network6_faith_setup
+
+ # ipv6_router
+ case ${ipv6_router_enable} in
+ [Yy][Ee][Ss])
+ if [ -x ${ipv6_router} ]; then
+ echo -n " ${ipv6_router}"
+ ${ipv6_router} ${ipv6_router_flags}
+ fi
+ ;;
+ esac
+
+
+ case ${ipv6_gateway_enable} in
+ [Yy][Ee][Ss])
+ # rtadvd
+ # This should enabled with a great care.
+ # You may want to fine-tune /etc/rtadvd.conf.
+ #
+ # And if you wish your rtadvd to receive and process
+ # router renumbering messages, specify your Router Renumbering
+ # security policy by -R option.
+ #
+ # See `man 3 ipsec_set_policy` for IPsec policy specification
+ # details.
+ # (CAUTION: This enables your routers prefix renumbering
+ # from another machine, so if you enable this, do it with
+ # enough care.)
+ #
+ case ${rtadvd_enable} in
+ [Yy][Ee][Ss])
+ # default
+ case ${rtadvd_interfaces} in
+ '')
+ for i in ${ipv6_network_interfaces}; do
+ case $i in
+ lo0|gif[0-9]*|stf[0-9]*|faith[0-9]*|lp[0-9]*|sl[0-9]*|tun[0-9]*)
+ continue
+ ;;
+ *)
+ rtadvd_interfaces="${rtadvd_interfaces} ${i}"
+ ;;
+ esac
+ done
+ ;;
+ esac
+ rtadvd ${rtadvd_interfaces}
+ #
+ # Enable Router Renumbering, unicast case
+ # (use correct src/dst addr)
+ # rtadvd -R "in ipsec ah/transport/fec0:0:0:1::1-fec0:0:0:10::1/require" \
+ # ${ipv6_network_interfaces}
+ # Enable Router Renumbering, multicast case
+ # (use correct src addr)
+ # rtadvd -R "in ipsec ah/transport/ff05::2-fec0:0:0:10::1/require" \
+ # ${ipv6_network_interfaces}
+ ;;
+ esac
+
+ # mroute6d
+ case ${mroute6d_enable} in
+ [Yy][Ee][Ss])
+ if [ -x ${mroute6d_program} ]; then
+ echo -n " ${mroute6d_program}"
+ ${mroute6d_program} ${mroute6d_flags}
+ fi
+ ;;
+ esac
+ ;;
+ esac
+
+ case ${ipv6_ipv4mapping} in
+ [Yy][Ee][Ss])
+ echo -n ' IPv4 mapped IPv6 address support=YES'
+ sysctl net.inet6.ip6.v6only=0 >/dev/null
+ ;;
+ '' | *)
+ echo -n ' IPv4 mapped IPv6 address support=NO'
+ sysctl net.inet6.ip6.v6only=1 >/dev/null
+ ;;
+ esac
+
+ echo '.'
+
+ # Let future generations know we made it.
+ #
+ network6_pass1_done=YES
+}
+
+network6_interface_setup() {
+ interfaces=$*
+ rtsol_interfaces=''
+ case ${ipv6_gateway_enable} in
+ [Yy][Ee][Ss])
+ rtsol_available=no
+ ;;
+ *)
+ rtsol_available=yes
+ ;;
+ esac
+ for i in $interfaces; do
+ rtsol_interface=yes
+ eval prefix=\$ipv6_prefix_$i
+ if [ -n "${prefix}" ]; then
+ rtsol_available=no
+ rtsol_interface=no
+ laddr=`network6_getladdr $i`
+ hostid=`expr "${laddr}" : 'fe80::\(.*\)%\(.*\)'`
+ for j in ${prefix}; do
+ address=$j\:${hostid}
+ ifconfig $i inet6 ${address} prefixlen 64 alias
+
+ case ${ipv6_gateway_enable} in
+ [Yy][Ee][Ss])
+ # subnet-router anycast address
+ # (rfc2373)
+ ifconfig $i inet6 $j:: prefixlen 64 \
+ alias anycast
+ ;;
+ esac
+ done
+ fi
+ eval ipv6_ifconfig=\$ipv6_ifconfig_$i
+ if [ -n "${ipv6_ifconfig}" ]; then
+ rtsol_available=no
+ rtsol_interface=no
+ ifconfig $i inet6 ${ipv6_ifconfig} alias
+ fi
+
+ if [ ${rtsol_available} = yes -a ${rtsol_interface} = yes ]
+ then
+ case ${i} in
+ lo0|gif[0-9]*|stf[0-9]*|faith[0-9]*|lp[0-9]*|sl[0-9]*|tun[0-9]*)
+ ;;
+ *)
+ rtsol_interfaces="${rtsol_interfaces} ${i}"
+ ;;
+ esac
+ else
+ ifconfig $i inet6
+ fi
+ done
+
+ if [ ${rtsol_available} = yes -a -n "${rtsol_interfaces}" ]; then
+ # Act as endhost - automatically configured.
+ # You can configure only single interface, as
+ # specification assumes that autoconfigured host has
+ # single interface only.
+ sysctl net.inet6.ip6.accept_rtadv=1
+ set ${rtsol_interfaces}
+ ifconfig $1 up
+ rtsol $1
+ fi
+
+ for i in $interfaces; do
+ alias=0
+ while : ; do
+ eval ipv6_ifconfig=\$ipv6_ifconfig_${i}_alias${alias}
+ if [ -z "${ipv6_ifconfig}" ]; then
+ break;
+ fi
+ ifconfig $i inet6 ${ipv6_ifconfig} alias
+ alias=$((${alias} + 1))
+ done
+ done
+}
+
+network6_stf_setup() {
+ case ${stf_interface_ipv4addr} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ # assign IPv6 addr and interface route for 6to4 interface
+ stf_prefixlen=$((16+${stf_interface_ipv4plen:-0}))
+ OIFS="$IFS"
+ IFS=".$IFS"
+ set ${stf_interface_ipv4addr}
+ IFS="$OIFS"
+ hexfrag1=`hexprint $(($1*256 + $2))`
+ hexfrag2=`hexprint $(($3*256 + $4))`
+ ipv4_in_hexformat="${hexfrag1}:${hexfrag2}"
+ case ${stf_interface_ipv6_ifid} in
+ [Aa][Uu][Tt][Oo] | '')
+ for i in ${ipv6_network_interfaces}; do
+ laddr=`network6_getladdr ${i}`
+ case ${laddr} in
+ '')
+ ;;
+ *)
+ break
+ ;;
+ esac
+ done
+ stf_interface_ipv6_ifid=`expr "${laddr}" : \
+ 'fe80::\(.*\)%\(.*\)'`
+ case ${stf_interface_ipv6_ifid} in
+ '')
+ stf_interface_ipv6_ifid=0:0:0:1
+ ;;
+ esac
+ ;;
+ esac
+ ifconfig stf0 create >/dev/null 2>&1
+ ifconfig stf0 inet6 2002:${ipv4_in_hexformat}:${stf_interface_ipv6_slaid:-0}:${stf_interface_ipv6_ifid} \
+ prefixlen ${stf_prefixlen}
+ # disallow packets to malicious 6to4 prefix
+ route add -inet6 2002:e000:: -prefixlen 20 ::1 -reject
+ route add -inet6 2002:7f00:: -prefixlen 24 ::1 -reject
+ route add -inet6 2002:0000:: -prefixlen 24 ::1 -reject
+ route add -inet6 2002:ff00:: -prefixlen 24 ::1 -reject
+ ;;
+ esac
+}
+
+network6_static_routes_setup() {
+ # Set up any static routes.
+ case ${ipv6_defaultrouter} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ ipv6_static_routes="default ${ipv6_static_routes}"
+ ipv6_route_default="default ${ipv6_defaultrouter}"
+ ;;
+ esac
+ case ${ipv6_static_routes} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ for i in ${ipv6_static_routes}; do
+ eval ipv6_route_args=\$ipv6_route_${i}
+ route add -inet6 ${ipv6_route_args}
+ done
+ ;;
+ esac
+}
+
+network6_faith_setup() {
+ case ${ipv6_faith_prefix} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ sysctl net.inet6.ip6.keepfaith=1
+ ifconfig faith0 create >/dev/null 2>&1
+ ifconfig faith0 up
+ for prefix in ${ipv6_faith_prefix}; do
+ prefixlen=`expr "${prefix}" : ".*/\(.*\)"`
+ case ${prefixlen} in
+ '')
+ prefixlen=96
+ ;;
+ *)
+ prefix=`expr "${prefix}" : \
+ "\(.*\)/${prefixlen}"`
+ ;;
+ esac
+ route add -inet6 ${prefix} -prefixlen ${prefixlen} ::1
+ route change -inet6 ${prefix} -prefixlen ${prefixlen} \
+ -ifp faith0
+ done
+ ;;
+ esac
+}
+
+network6_default_interface_setup() {
+ # Choose IPv6 default interface if it is not clearly specified.
+ case ${ipv6_default_interface} in
+ '')
+ for i in ${ipv6_network_interfaces}; do
+ case $i in
+ lo0|faith[0-9]*)
+ continue
+ ;;
+ esac
+ laddr=`network6_getladdr $i exclude_tentative`
+ case ${laddr} in
+ '')
+ ;;
+ *)
+ ipv6_default_interface=$i
+ break
+ ;;
+ esac
+ done
+ ;;
+ esac
+
+ # Disallow unicast packets without outgoing scope identifiers,
+ # or route such packets to a "default" interface, if it is specified.
+ route add -inet6 fe80:: -prefixlen 10 ::1 -reject
+ case ${ipv6_default_interface} in
+ [Nn][Oo] | '')
+ route add -inet6 ff02:: -prefixlen 16 ::1 -reject
+ ;;
+ *)
+ laddr=`network6_getladdr ${ipv6_default_interface}`
+ route add -inet6 ff02:: ${laddr} -prefixlen 16 -interface \
+ -cloning
+
+ # Disable installing the default interface with the
+ # case net.inet6.ip6.forwarding=0 and
+ # net.inet6.ip6.accept_rtadv=0, due to avoid conflict
+ # between the default router list and the manual
+ # configured default route.
+ case ${ipv6_gateway_enable} in
+ [Yy][Ee][Ss])
+ ;;
+ *)
+ if [ `sysctl -n net.inet6.ip6.accept_rtadv` -eq 1 ]
+ then
+ ndp -I ${ipv6_default_interface}
+ fi
+ ;;
+ esac
+ ;;
+ esac
+}
+
+network6_getladdr() {
+ ifconfig $1 2>/dev/null | while read proto addr rest; do
+ case ${proto} in
+ inet6)
+ case ${addr} in
+ fe80::*)
+ if [ -z "$2" ]; then
+ echo ${addr}
+ return
+ fi
+ case ${rest} in
+ *tentative*)
+ continue
+ ;;
+ *)
+ echo ${addr}
+ return
+ esac
+ esac
+ esac
+ done
+}
diff --git a/etc/rc.pccard b/etc/rc.pccard
new file mode 100644
index 0000000..9152e82
--- /dev/null
+++ b/etc/rc.pccard
@@ -0,0 +1,56 @@
+#!/bin/sh -
+#
+# Copyright (c) 1996 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# PC-card startup script
+
+case ${pccard_enable} in
+[Yy][Ee][Ss])
+ echo -n 'Setup PC-CARD:'
+
+ case ${pccard_mem} in
+ [Dd][Ee][Ff][Aa][Uu][Ll][Tt])
+ pccardc pccardmem 0xd0000 1>/dev/null && echo -n ' memory'
+ ;;
+ *)
+ pccardc pccardmem ${pccard_mem} 1>/dev/null && echo -n ' memory'
+ ;;
+ esac
+
+ if [ -n "${pccard_beep}" ] ; then
+ pccardc beep ${pccard_beep} && echo -n ' beep'
+ fi
+
+ if [ -n "${pccard_conf}" ]; then
+ pccardd_flags="${pccardd_flags} -f ${pccard_conf}"
+ fi
+
+ pccardd ${pccardd_flags} && echo -n ' pccardd'
+ echo '.'
+ ;;
+esac
diff --git a/etc/rc.resume b/etc/rc.resume
new file mode 100755
index 0000000..ee1b82c
--- /dev/null
+++ b/etc/rc.resume
@@ -0,0 +1,46 @@
+#!/bin/sh
+#
+# Copyright (c) 1999 Mitsuru IWASAKI
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# sample run command file for APM Resume Event
+
+if [ -r /var/run/rc.suspend.pid ]; then
+ kill -9 `cat /var/run/rc.suspend.pid`
+ rm -f /var/run/rc.suspend.pid
+ echo 'rc.suspend is killed'
+fi
+
+# Turns on a power supply of a card in the slot inactivated.
+# See also contrib/pccardq.c (only for PAO users).
+# pccardq | awk -F '~' '$5 == "inactive" \
+# { printf("pccardc power %d 1", $1); }' | sh
+
+logger -t apmd resumed at `date +'%Y%m%d %H:%M:%S'`
+sync && sync && sync
+
+exit 0
diff --git a/etc/rc.sendmail b/etc/rc.sendmail
new file mode 100644
index 0000000..74dde31
--- /dev/null
+++ b/etc/rc.sendmail
@@ -0,0 +1,194 @@
+#!/bin/sh
+
+#
+# Copyright (c) 2002 Gregory Neil Shapiro. All Rights Reserved.
+# Copyright (c) 2000, 2002 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# This script is used by /etc/rc at boot time to start sendmail. It
+# is meant to be sendmail specific and not a generic script for all
+# MTAs. It is only called by /etc/rc if the rc.conf mta_start_script is
+# set to /etc/rc.sendmail. This provides the opportunity for other MTAs
+# to provide their own startup script.
+
+# The script is also used by /etc/mail/Makefile to enable the
+# start/stop/restart targets.
+
+# The source for the script can be found in src/etc/sendmail/rc.sendmail.
+
+if [ -r /etc/defaults/rc.conf ]; then
+ . /etc/defaults/rc.conf
+ source_rc_confs
+elif [ -r /etc/rc.conf ]; then
+ . /etc/rc.conf
+fi
+
+# The sendmail binary
+sendmail_program=${sendmail_program:-/usr/sbin/sendmail}
+
+# The pid is used to stop and restart the running daemon(s).
+sendmail_pidfile=${sendmail_pidfile:-/var/run/sendmail.pid}
+sendmail_mspq_pidfile=${sendmail_mspq_pidfile:-/var/spool/clientmqueue/sm-client.pid}
+
+start_mta()
+{
+ case ${sendmail_enable} in
+ [Nn][Oo][Nn][Ee])
+ ;;
+ [Yy][Ee][Ss])
+ echo -n ' sendmail'
+ ${sendmail_program} ${sendmail_flags}
+ ;;
+ *)
+ case ${sendmail_submit_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' sendmail-submit'
+ ${sendmail_program} ${sendmail_submit_flags}
+ ;;
+ *)
+ case ${sendmail_outbound_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' sendmail-outbound'
+ ${sendmail_program} ${sendmail_outbound_flags}
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+}
+
+stop_mta()
+{
+ if [ -r ${sendmail_pidfile} ]; then
+ echo -n ' sendmail'
+ kill -TERM `head -1 ${sendmail_pidfile}`
+ else
+ echo "$0: stop-mta: ${sendmail_pidfile} not found"
+ fi
+}
+
+restart_mta()
+{
+ if [ -r ${sendmail_pidfile} ]; then
+ echo -n ' sendmail'
+ kill -HUP `head -1 ${sendmail_pidfile}`
+ else
+ echo "$0: restart-mta: ${sendmail_pidfile} not found"
+ fi
+}
+
+start_mspq()
+{
+ case ${sendmail_enable} in
+ [Nn][Oo][Nn][Ee])
+ ;;
+ *)
+ if [ -r /etc/mail/submit.cf ]; then
+ case ${sendmail_msp_queue_enable} in
+ [Yy][Ee][Ss])
+ echo -n ' sendmail-clientmqueue'
+ ${sendmail_program} ${sendmail_msp_queue_flags}
+ ;;
+ esac
+ fi
+ ;;
+ esac
+}
+
+stop_mspq()
+{
+ if [ -r ${sendmail_mspq_pidfile} ]; then
+ echo -n ' sendmail-clientmqueue'
+ kill -TERM `head -1 ${sendmail_mspq_pidfile}`
+ else
+ echo "$0: stop-mspq: ${sendmail_mspq_pidfile} not found"
+ fi
+}
+
+restart_mspq()
+{
+ if [ -r ${sendmail_mspq_pidfile} ]; then
+ echo -n ' sendmail-clientmqueue'
+ kill -HUP `head -1 ${sendmail_mspq_pidfile}`
+ else
+ echo "$0: restart-mspq: ${sendmail_mspq_pidfile} not found"
+ fi
+}
+
+# If no argument is given, assume we are being called at boot time.
+_action=${1:-start}
+
+case ${_action} in
+start)
+ start_mta
+ start_mspq
+ ;;
+
+stop)
+ stop_mta
+ stop_mspq
+ ;;
+
+restart)
+ restart_mta
+ restart_mspq
+ ;;
+
+start-mta)
+ start_mta
+ ;;
+
+stop-mta)
+ stop_mta
+ ;;
+
+restart-mta)
+ restart_mta
+ ;;
+
+start-mspq)
+ start_mspq
+ ;;
+
+stop-mspq)
+ stop_mspq
+ ;;
+
+restart-mspq)
+ restart_mspq
+ ;;
+
+*)
+ echo "usage: `basename $0` {start|stop|restart}" >&2
+ echo " `basename $0` {start-mta|stop-mta|restart-mta}" >&2
+ echo " `basename $0` {start-mspq|stop-mspq|restart-mspq}" >&2
+ exit 64
+ ;;
+
+esac
+exit 0
diff --git a/etc/rc.serial b/etc/rc.serial
new file mode 100644
index 0000000..13edd2a
--- /dev/null
+++ b/etc/rc.serial
@@ -0,0 +1,153 @@
+#!/bin/sh
+#
+# Copyright (c) 1996 Andrey A. Chernov
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# Change some defaults for serial devices.
+# Standard defaults are:
+# dtrwait 300 drainwait 0
+# initial cflag from <sys/ttydefaults.h> = cread cs8 hupcl
+# initial iflag, lflag and oflag all 0
+# speed 9600
+# special chars from <sys/ttydefaults.h>
+# nothing locked
+# except for serial consoles the initial iflag, lflag and oflag are from
+# <sys/ttydefaults.h> and clocal is locked on.
+
+default() {
+ # Reset everything changed by the other functions to initial defaults.
+
+ ci=$1; shift # call in device identifier
+ co=$1; shift # call out device identifier
+
+ for i in $*
+ do
+ comcontrol /dev/tty${ci}${i} dtrwait 300 drainwait 300
+ stty < /dev/ttyi${ci}${i} -clocal crtscts hupcl 9600 reprint ^R
+ stty < /dev/ttyl${ci}${i} -clocal -crtscts -hupcl 0
+ stty < /dev/cuai${co}${i} -clocal crtscts hupcl 9600 reprint ^R
+ stty < /dev/cual${co}${i} -clocal -crtscts -hupcl 0
+ done
+}
+
+maybe() {
+ # Special settings.
+
+ ci=$1; shift
+ co=$1; shift
+
+ for i in $*
+ do
+ # Don't use ^R; it breaks bash's ^R when typed ahead.
+ stty < /dev/ttyi${ci}${i} reprint undef
+ stty < /dev/cuai${co}${i} reprint undef
+ # Lock clocal off on dialin device for security.
+ stty < /dev/ttyl${ci}${i} clocal
+ # Lock the speeds to use old binaries that don't support them.
+ # Any legal speed works to lock the initial speed.
+ stty < /dev/ttyl${ci}${i} 300
+ stty < /dev/cual${co}${i} 300
+ done
+}
+
+modem() {
+ # Modem that supports CTS and perhaps RTS handshaking.
+
+ ci=$1; shift
+ co=$1; shift
+
+ for i in $*
+ do
+ # may depend on modem
+ comcontrol /dev/tty${ci}${i} dtrwait 100 drainwait 180
+ # Lock crtscts on.
+ # Speed reasonable for V42bis.
+ stty < /dev/ttyi${ci}${i} crtscts 57600
+ stty < /dev/ttyl${ci}${i} crtscts
+ stty < /dev/cuai${co}${i} crtscts 57600
+ stty < /dev/cual${co}${i} crtscts
+ done
+}
+
+mouse() {
+ # Mouse on either callin or callout port.
+
+ ci=$1; shift
+ co=$1; shift
+
+ for i in $*
+ do
+ # Lock clocal on, hupcl off.
+ # Standard speed for Microsoft mouse.
+ stty < /dev/ttyi${ci}${i} clocal -hupcl 1200
+ stty < /dev/ttyl${ci}${i} clocal hupcl
+ stty < /dev/cuai${co}${i} clocal -hupcl 1200
+ stty < /dev/cual${co}${i} clocal hupcl
+ done
+}
+
+terminal() {
+ # Terminal that supports CTS and perhaps RTS handshaking
+ # with the cable or terminal arranged so that DCD is on
+ # at least while the terminal is on.
+ # Also works for bidirectional communications to another pc
+ # provided at most one side runs getty.
+ # Same as modem() except we want a faster speed and no dtrwait.
+
+ ci=$1; shift
+ co=$1; shift
+
+ modem ${ci} ${co} $*
+ for i in $*
+ do
+ comcontrol /dev/tty${ci}${i} dtrwait 0
+ stty < /dev/ttyi${ci}${i} 115200
+ stty < /dev/cuai${co}${i} 115200
+ done
+}
+
+# Don't use anything from this file unless you have some buggy programs
+# that require it.
+
+# Edit the functions and the examples to suit your system.
+# $1 is the call in device identifier, $2 is the call out device identifier
+# and the remainder of the line lists the device numbers.
+
+# Initialize assorted 8250-16550 (sio) ports.
+# maybe d a 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v
+# mouse d a 2
+# modem d a 1
+# terminal d a 0
+
+# Initialize all ports on a Cyclades-8yo.
+# modem c c 00 01 02 03 04 05 06 07
+
+# Initialize all ports on a Cyclades-16ye.
+# modem c c 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
+
+# Initialize all ports on a Digiboard 8.
+# modem D D 00 01 02 03 04 05 06 07
diff --git a/etc/rc.shutdown b/etc/rc.shutdown
new file mode 100644
index 0000000..0f4bd3d
--- /dev/null
+++ b/etc/rc.shutdown
@@ -0,0 +1,207 @@
+#!/bin/sh
+#
+# Copyright (c) 1997 Ollivier Robert
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# Site-specific closing actions for daemons run by init on shutdown,
+# or before going single-user from multi-user.
+# Output and errors are directed to console by init, and the
+# console is the controlling terminal.
+
+stty status '^T'
+
+# Set shell to ignore SIGINT (2), but not children;
+# shell catches SIGQUIT (3) and returns to single user after fsck.
+trap : 2
+trap : 3 # shouldn't be needed
+
+HOME=/
+PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin
+export HOME PATH
+
+# If there is a global system configuration file, suck it in.
+# XXX - It's only purpose is to catch rc_ng="YES".
+#
+if [ -r /etc/defaults/rc.conf ]; then
+ . /etc/defaults/rc.conf
+ source_rc_confs
+elif [ -r /etc/rc.conf ]; then
+ . /etc/rc.conf
+fi
+
+case ${rc_ng} in
+[Yy][Ee][Ss])
+ . /etc/rc.subr
+
+ load_rc_config 'XXX'
+
+ # If requested, start a watchdog timer in the background which
+ # will terminate rc.shutdown if rc.shutdown doesn't complete
+ # within the specified time.
+ #
+ _rcshutdown_watchdog=
+ if [ -n "$rcshutdown_timeout" ]; then
+ debug "Initiating watchdog timer."
+ sleep $rcshutdown_timeout && (
+ _msg="$rcshutdown_timeout second watchdog" \
+ " timeout expired. Shutdown terminated."
+ logger -t rc.shutdown "$_msg"
+ echo "$_msg"
+ date
+ kill -KILL $$ >/dev/null 2>&1
+ ) &
+ _rcshutdown_watchdog=$!
+ fi
+
+ # Determine the shutdown order of the /etc/rc.d scripts,
+ # and perform the operation
+ # XXX - rcorder(8) with multiple -k switches works as a logical OR,
+ # so, we can't do this: rcorder -k shutdown -k FreeBSD.
+ #
+ files=`eval grep -l \'^# KEYWORD:.*FreeBSD\' \`rcorder -k shutdown /etc/rc.d/*\``
+
+ for _rc_elem in `reverse_list $files`; do
+ debug "run_rc_script $_rc_elem stop"
+ run_rc_script $_rc_elem stop
+ done
+
+ # Terminate the background watchdog timer (if it is running)
+ #
+ if [ -n "$_rcshutdown_watchdog" ]; then
+ kill -TERM $_rcshutdown_watchdog >/dev/null 2>&1
+ fi
+
+ echo '.'
+ exit 0
+ ;;
+*)
+ # fall-through to the old rc scripts
+ ;;
+esac
+
+# reverse_list list
+# print the list in reverse order
+#
+reverse_list()
+{
+ _revlist=
+ for _revfile in $*; do
+ _revlist="$_revfile${script_name_sep}$_revlist"
+ done
+ echo $_revlist
+}
+
+# Write some entropy so the rebooting /dev/random can reseed
+#
+case ${entropy_file} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n 'Writing entropy file:'
+ rm -f ${entropy_file}
+ oumask=`umask`
+ umask 077
+ if touch ${entropy_file} ; then
+ entropy_file_confirmed="${entropy_file}"
+ else
+ # Try this as a reasonable alternative for read-only
+ # roots, diskless workstations, etc.
+ rm -f /var/db/entropy
+ if touch /var/db/entropy ; then
+ entropy_file_confirmed=/var/db/entropy
+ fi
+ fi
+ case ${entropy_file_confirmed} in
+ '')
+ echo ' ERROR - entropy file write failed'
+ ;;
+ *)
+ dd if=/dev/random of=${entropy_file_confirmed} \
+ bs=4096 count=1 2> /dev/null
+ echo '.'
+ ;;
+ esac
+ umask ${oumask}
+ ;;
+esac
+
+# Check if /var/db/mounttab is clean.
+case $1 in
+reboot)
+ if [ -f /var/db/mounttab ]; then
+ rpc.umntall
+ fi
+ ;;
+esac
+
+echo -n 'Shutting down daemon processes:'
+
+# for each valid dir in $local_startup, search for init scripts matching *.sh
+case ${local_startup} in
+[Nn][Oo] | '')
+ ;;
+*)
+ slist=""
+ if [ -z "${script_name_sep}" ]; then
+ script_name_sep=" "
+ fi
+ for dir in ${local_startup}; do
+ if [ -d "${dir}" ]; then
+ for script in ${dir}/*.sh; do
+ slist="${slist}${script_name_sep}${script}"
+ done
+ fi
+ done
+ script_save_sep="$IFS"
+ IFS="${script_name_sep}"
+ for script in `reverse_list ${slist}`; do
+ if [ -x "${script}" ]; then
+ (set -T
+ trap 'exit 1' 2
+ ${script} stop)
+ fi
+ done
+ IFS="${script_save_sep}"
+ echo '.'
+ ;;
+esac
+
+# Insert other shutdown procedures here
+
+# Saving firewall state tables should be done last
+echo -n 'Saving firewall state tables:'
+
+# Save IP-filter state tables
+case ${ipfs_enable} in
+[Yy][Ee][Ss])
+ echo -n ' ipfs'
+ ${ipfs_program:-/sbin/ipfs} -W ${ipfs_flags}
+ ;;
+esac
+
+echo '.'
+exit 0
diff --git a/etc/rc.subr b/etc/rc.subr
new file mode 100644
index 0000000..d2b178d
--- /dev/null
+++ b/etc/rc.subr
@@ -0,0 +1,1000 @@
+# $NetBSD: rc.subr,v 1.49 2002/05/21 12:31:01 lukem Exp $
+# $FreeBSD$
+#
+# Copyright (c) 1997-2002 The NetBSD Foundation, Inc.
+# All rights reserved.
+#
+# This code is derived from software contributed to The NetBSD Foundation
+# by Luke Mewburn.
+#
+# 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 NetBSD
+# Foundation, Inc. and its contributors.
+# 4. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
+#
+# rc.subr
+# functions used by various rc scripts
+#
+
+#
+# Operating System dependent/independent variables
+#
+
+SYSCTL="/sbin/sysctl"
+SYSCTL_N="${SYSCTL} -n"
+CMD_OSTYPE="${SYSCTL_N} kern.ostype"
+
+case `${CMD_OSTYPE}` in
+FreeBSD)
+ SYSCTL_W="${SYSCTL}"
+ ;;
+NetBSD)
+ SYSCTL_W="${SYSCTL} -w"
+ ;;
+esac
+
+#
+# functions
+# ---------
+
+#
+# set_rcvar base_var
+# Set the variable name enabling a specific service.
+# FreeBSD uses ${service}_enable, while NetBSD uses
+# just the name of the service. For example:
+# FreeBSD: sendmail_enable="YES"
+# NetBSD : sendmail="YES"
+# $1 - if $name is not the base to work of off, specify
+# a different one
+#
+set_rcvar()
+{
+ if [ -z "$1" ]; then
+ base_var=${name}
+ else
+ base_var="$1"
+ fi
+
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ echo ${base_var}_enable
+ ;;
+ NetBSD)
+ echo ${base_var}
+ ;;
+ *)
+ echo 'XXX'
+ ;;
+ esac
+}
+
+#
+# force_depend script
+# Force a service to start. Intended for use by services
+# to resolve dependency issues. It is assumed the caller
+# has check to make sure this call is necessary
+# $1 - filename of script, in /etc/rc.d, to run
+#
+force_depend()
+{
+ _depend="$1"
+
+ info "${name} depends on ${_depend}, which will be forced to start."
+ if ! /etc/rc.d/${_depend} forcestart ; then
+ warn "Unable to force ${_depend}. It may already be running."
+ return 1
+ fi
+ return 0
+}
+
+#
+# checkyesno var
+# Test $1 variable, and warn if not set to YES or NO.
+# Return 0 if it's "yes" (et al), nonzero otherwise.
+#
+checkyesno()
+{
+ eval _value=\$${1}
+ debug "checkyesno: $1 is set to $_value."
+ case $_value in
+
+ # "yes", "true", "on", or "1"
+ [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
+ return 0
+ ;;
+
+ # "no", "false", "off", or "0"
+ [Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0)
+ return 1
+ ;;
+ *)
+ warn "\$${1} is not set properly."
+ return 1
+ ;;
+ esac
+}
+
+# reverse_list list
+# print the list in reverse order
+#
+reverse_list()
+{
+ _revlist=
+ for _revfile in $*; do
+ _revlist="$_revfile $_revlist"
+ done
+ echo $_revlist
+}
+
+#
+# mount_critical_filesystems type
+# Go through the list of critical filesystems as provided in
+# the rc.conf(5) variable $critical_filesystems_${type}, checking
+# each one to see if it is mounted, and if it is not, mounting it.
+#
+mount_critical_filesystems()
+{
+ eval _fslist=\$critical_filesystems_${1}
+ for _fs in $_fslist; do
+ mount | (
+ _ismounted=no
+ while read what _on on _type type; do
+ if [ $on = $_fs ]; then
+ _ismounted=yes
+ fi
+ done
+ if [ $_ismounted = no ]; then
+ mount $_fs >/dev/null 2>&1
+ fi
+ )
+ done
+}
+
+#
+# check_pidfile pidfile procname [interpreter]
+# Parses the first line of pidfile for a PID, and ensures
+# that the process is running and matches procname.
+# Prints the matching PID upon success, nothing otherwise.
+# interpreter is optional; see _find_processes() for details.
+#
+check_pidfile()
+{
+ _pidfile=$1
+ _procname=$2
+ _interpreter=$3
+ if [ -z "$_pidfile" -o -z "$_procname" ]; then
+ err 3 'USAGE: check_pidfile pidfile procname [interpreter]'
+ fi
+ if [ ! -f $_pidfile ]; then
+ debug "pid file {$_pidfile): not readable."
+ return
+ fi
+ read _pid _junk < $_pidfile
+ if [ -z "$_pid" ]; then
+ debug "pid file {$_pidfile): no pid in file."
+ return
+ fi
+ _find_processes $_procname ${_interpreter:-.} '-p '"$_pid"
+}
+
+#
+# check_process procname [interpreter]
+# Ensures that a process (or processes) named procname is running.
+# Prints a list of matching PIDs.
+# interpreter is optional; see _find_processes() for details.
+#
+check_process()
+{
+ _procname=$1
+ _interpreter=$2
+ if [ -z "$_procname" ]; then
+ err 3 'USAGE: check_process procname [interpreter]'
+ fi
+ _find_processes $_procname ${_interpreter:-.} '-ax'
+}
+
+#
+# _find_processes procname interpreter psargs
+# Search for procname in the output of ps generated by psargs.
+# Prints the PIDs of any matching processes, space separated.
+#
+# If interpreter == ".", check the following variations of procname
+# against the first word of each command:
+# procname
+# `basename procname`
+# `basename procname` + ":"
+# "(" + `basename procname` + ")"
+#
+# If interpreter != ".", read the first line of procname, remove the
+# leading #!, normalise whitespace, append procname, and attempt to
+# match that against each command, either as is, or with extra words
+# at the end.
+#
+_find_processes()
+{
+ if [ $# -ne 3 ]; then
+ err 3 'USAGE: _find_processes procname interpreter psargs'
+ fi
+ _procname=$1
+ _interpreter=$2
+ _psargs=$3
+
+ _pref=
+ if [ $_interpreter != "." ]; then # an interpreted script
+ read _interp < $_procname # read interpreter name
+ _interp=${_interp#\#!} # strip #!
+ set -- $_interp
+ if [ $_interpreter != $1 ]; then
+ warn "\$command_interpreter $_interpreter != $1"
+ fi
+ _interp="$* $_procname" # cleanup spaces, add _procname
+ _fp_args='_argv'
+ _fp_match='case "$_argv" in
+ ${_interp}|"${_interp} "*)'
+ else # a normal daemon
+ _procnamebn=${_procname##*/}
+ _fp_args='_arg0 _argv'
+ _fp_match='case "$_arg0" in
+ $_procname|$_procnamebn|${_procnamebn}:|"(${_procnamebn})")'
+ fi
+
+ _proccheck='
+ ps -o "pid,command" '"$_psargs"' |
+ while read _npid '"$_fp_args"'; do
+ case "$_npid" in
+ PID)
+ continue ;;
+ esac ; '"$_fp_match"'
+ echo -n "$_pref$_npid" ;
+ _pref=" "
+ ;;
+ esac
+ done'
+
+ debug "in _find_processes: proccheck is ($_proccheck)."
+ eval $_proccheck
+}
+
+#
+# wait_for_pids pid [pid ...]
+# spins until none of the pids exist
+#
+wait_for_pids()
+{
+ _list=$*
+ if [ -z "$_list" ]; then
+ return
+ fi
+ _prefix=
+ while true; do
+ _nlist="";
+ for _j in $_list; do
+ if kill -0 $_j 2>/dev/null; then
+ _nlist="${_nlist}${_nlist:+ }$_j"
+ fi
+ done
+ if [ -z "$_nlist" ]; then
+ break
+ fi
+ _list=$_nlist
+ echo -n ${_prefix:-"Waiting for PIDS: "}$_list
+ _prefix=", "
+ sleep 2
+ done
+ if [ -n "$_prefix" ]; then
+ echo "."
+ fi
+}
+
+#
+# run_rc_command argument
+# Search for argument in the list of supported commands, which is:
+# "start stop restart rcvar status poll ${extra_commands}"
+# If there's a match, run ${argument}_cmd or the default method
+# (see below).
+#
+# If argument has a given prefix, then change the operation as follows:
+# Prefix Operation
+# ------ ---------
+# fast Skip the pid check, and set rc_fast=yes
+# force Set ${rcvar} to YES, and set rc_force=yes
+#
+# The following globals are used:
+#
+# Name Needed Purpose
+# ---- ------ -------
+# name y Name of script.
+#
+# command n Full path to command.
+# Not needed if ${rc_arg}_cmd is set for
+# each keyword.
+#
+# command_args n Optional args/shell directives for command.
+#
+# command_interpreter n If not empty, command is interpreted, so
+# call check_{pidfile,process}() appropriately.
+#
+# extra_commands n List of extra commands supported.
+#
+# pidfile n If set, use check_pidfile $pidfile $command,
+# otherwise use check_process $command.
+# In either case, only check if $command is set.
+#
+# procname n Process name to check for instead of $command.
+#
+# rcvar n This is checked with checkyesno to determine
+# if the action should be run.
+#
+# ${name}_chroot n Directory to chroot to before running ${command}
+# Requires /usr to be mounted.
+#
+# ${name}_chdir n Directory to cd to before running ${command}
+# (if not using ${name}_chroot).
+#
+# ${name}_flags n Arguments to call ${command} with.
+# NOTE: $flags from the parent environment
+# can be used to override this.
+#
+# ${name}_nice n Nice level to run ${command} at.
+#
+# ${name}_user n User to run ${command} as, using su(1) if not
+# using ${name}_chroot.
+# Requires /usr to be mounted.
+#
+# ${name}_group n Group to run chrooted ${command} as.
+# Requires /usr to be mounted.
+#
+# ${name}_groups n Comma separated list of supplementary groups
+# to run the chrooted ${command} with.
+# Requires /usr to be mounted.
+#
+# ${rc_arg}_cmd n If set, use this as the method when invoked;
+# Otherwise, use default command (see below)
+#
+# ${rc_arg}_precmd n If set, run just before performing the
+# ${rc_arg}_cmd method in the default
+# operation (i.e, after checking for required
+# bits and process (non)existence).
+# If this completes with a non-zero exit code,
+# don't run ${rc_arg}_cmd.
+#
+# ${rc_arg}_postcmd n If set, run just after performing the
+# ${rc_arg}_cmd method, if that method
+# returned a zero exit code.
+#
+# required_dirs n If set, check for the existence of the given
+# directories before running the default
+# (re)start command.
+#
+# required_files n If set, check for the readability of the given
+# files before running the default (re)start
+# command.
+#
+# required_vars n If set, perform checkyesno on each of the
+# listed variables before running the default
+# (re)start command.
+#
+# Default behaviour for a given argument, if no override method is
+# provided:
+#
+# Argument Default behaviour
+# -------- -----------------
+# start if !running && checkyesno ${rcvar}
+# ${command}
+#
+# stop if ${pidfile}
+# rc_pid=$(check_pidfile $pidfile $command)
+# else
+# rc_pid=$(check_process $command)
+# kill $sig_stop $rc_pid
+# wait_for_pids $rc_pid
+# ($sig_stop defaults to TERM.)
+#
+# reload Similar to stop, except use $sig_reload instead,
+# and doesn't wait_for_pids.
+# $sig_reload defaults to HUP.
+#
+# restart Run `stop' then `start'.
+#
+# status Show if ${command} is running, etc.
+#
+# poll Wait for ${command} to exit.
+#
+# rcvar Display what rc.conf variable is used (if any).
+#
+# Variables available to methods, and after run_rc_command() has
+# completed:
+#
+# Variable Purpose
+# -------- -------
+# rc_arg Argument to command, after fast/force processing
+# performed
+#
+# rc_flags Flags to start the default command with.
+# Defaults to ${name}_flags, unless overridden
+# by $flags from the environment.
+# This variable may be changed by the precmd method.
+#
+# rc_pid PID of command (if appropriate)
+#
+# rc_fast Not empty if "fast" was provided (q.v.)
+#
+# rc_force Not empty if "force" was provided (q.v.)
+#
+#
+run_rc_command()
+{
+ rc_arg=$1
+ if [ -z "$name" ]; then
+ err 3 'run_rc_command: $name is not set.'
+ fi
+
+ case "$rc_arg" in
+ fast*) # "fast" prefix; don't check pid
+ rc_arg=${rc_arg#fast}
+ rc_fast=yes
+ ;;
+ force*) # "force prefix; always start
+ rc_arg=${rc_arg#force}
+ rc_force=yes
+ if [ -n "${rcvar}" ]; then
+ eval ${rcvar}=YES
+ fi
+ ;;
+ esac
+
+ eval _overide_command=\$${name}_program
+ if [ -n "$_overide_command" ]; then
+ command=$_overide_command
+ fi
+
+ _keywords="start stop restart rcvar $extra_commands"
+ rc_pid=
+ _pidcmd=
+ _procname=${procname:-${command}}
+
+ # setup pid check command if not fast
+ if [ -z "$rc_fast" -a -n "$_procname" ]; then
+ if [ -n "$pidfile" ]; then
+ _pidcmd='rc_pid=$(check_pidfile '"$pidfile $_procname $command_interpreter"')'
+ else
+ _pidcmd='rc_pid=$(check_process '"$_procname $command_interpreter"')'
+ fi
+ if [ -n "$_pidcmd" ]; then
+ _keywords="${_keywords} status poll"
+ fi
+ fi
+
+ if [ -z "$rc_arg" ]; then
+ rc_usage "$_keywords"
+ fi
+
+ if [ -n "$flags" ]; then # allow override from environment
+ rc_flags=$flags
+ else
+ eval rc_flags=\$${name}_flags
+ fi
+ eval _chdir=\$${name}_chdir _chroot=\$${name}_chroot \
+ _nice=\$${name}_nice _user=\$${name}_user \
+ _group=\$${name}_group _groups=\$${name}_groups
+
+ if [ -n "$_user" ]; then # unset $_user if running as that user
+ if [ "$_user" = "$(id -un)" ]; then
+ unset _user
+ fi
+ fi
+
+ # if ${rcvar} is set, and $1 is not
+ # "rcvar", then run
+ # checkyesno ${rcvar}
+ # and return if that failed
+ #
+ if [ -n "${rcvar}" -a "$rc_arg" != "rcvar" ]; then
+ if ! checkyesno ${rcvar}; then
+ return 0
+ fi
+ fi
+
+ eval $_pidcmd # determine the pid if necessary
+
+ for _elem in $_keywords; do
+ if [ "$_elem" != "$rc_arg" ]; then
+ continue
+ fi
+
+ # if there's a custom ${XXX_cmd},
+ # run that instead of the default
+ #
+ eval _cmd=\$${rc_arg}_cmd _precmd=\$${rc_arg}_precmd \
+ _postcmd=\$${rc_arg}_postcmd
+ if [ -n "$_cmd" ]; then
+ debug "run_rc_command: using XXX_cmd functions."
+ # if the precmd failed and force
+ # isn't set, exit
+ #
+ if ! eval $_precmd && [ -z "$rc_force" ]; then
+ return 1
+ fi
+
+ if ! eval $_cmd && [ -z "$rc_force" ]; then
+ return 1
+ fi
+ eval $_postcmd
+ return 0
+ fi
+
+ case "$rc_arg" in # default operations...
+
+ status)
+ if [ -n "$rc_pid" ]; then
+ echo "${name} is running as pid $rc_pid."
+ else
+ echo "${name} is not running."
+ return 1
+ fi
+ ;;
+
+ start)
+ if [ -n "$rc_pid" ]; then
+ echo "${name} already running? (pid=$rc_pid)."
+ exit 1
+ fi
+
+ if [ ! -x $command ]; then
+ info "run_rc_command: cannot run ($command)."
+ return 0
+ fi
+
+ # check for required variables,
+ # directories, and files
+ #
+ for _f in $required_vars; do
+ if ! checkyesno $_f; then
+ warn "\$${_f} is not set."
+ if [ -z "$rc_force" ]; then
+ return 1
+ fi
+ fi
+ done
+ for _f in $required_dirs; do
+ if [ ! -d "${_f}/." ]; then
+ warn "${_f} is not a directory."
+ if [ -z "$rc_force" ]; then
+ return 1
+ fi
+ fi
+ done
+ for _f in $required_files; do
+ if [ ! -r "${_f}" ]; then
+ warn "${_f} is not readable."
+ if [ -z "$rc_force" ]; then
+ return 1
+ fi
+ fi
+ done
+
+ # if the precmd failed and force
+ # isn't set, exit
+ #
+ if ! eval $_precmd && [ -z "$rc_force" ]; then
+ return 1
+ fi
+
+ # setup the command to run, and run it
+ #
+ echo "Starting ${name}."
+ if [ -n "$_chroot" ]; then
+ _doit="\
+${_nice:+nice -n $_nice }\
+chroot ${_user:+-u $_user }${_group:+-g $_group }${_groups:+-G $_groups }\
+$_chroot $command $rc_flags $command_args"
+ else
+ _doit="\
+${_chdir:+cd $_chdir; }\
+${_nice:+nice -n $_nice }\
+$command $rc_flags $command_args"
+ if [ -n "$_user" ]; then
+ _doit="su -m $_user -c 'sh -c \"$_doit\"'"
+ fi
+ fi
+
+ # if the cmd failed and force
+ # isn't set, exit
+ #
+ debug "run_rc_command: _doit: $_doit"
+ if ! eval $_doit && [ -z "$rc_force" ]; then
+ return 1
+ fi
+
+ # finally, run postcmd
+ #
+ eval $_postcmd
+ ;;
+
+ stop)
+ if [ -z "$rc_pid" ]; then
+ if [ -n "$pidfile" ]; then
+ echo \
+ "${name} not running? (check $pidfile)."
+ else
+ echo "${name} not running?"
+ fi
+ exit 1
+ fi
+
+ # if the precmd failed and force
+ # isn't set, exit
+ #
+ if ! eval $_precmd && [ -z "$rc_force" ]; then
+ return 1
+ fi
+
+ # send the signal to stop
+ #
+ echo "Stopping ${name}."
+ _doit="kill -${sig_stop:-TERM} $rc_pid"
+ if [ -n "$_user" ]; then
+ _doit="su -m $_user -c 'sh -c \"$_doit\"'"
+ fi
+
+ # if the stop cmd failed and force
+ # isn't set, exit
+ #
+ if ! eval $_doit && [ -z "$rc_force" ]; then
+ return 1
+ fi
+
+ # wait for the command to exit,
+ # and run postcmd.
+ wait_for_pids $rc_pid
+ eval $_postcmd
+ ;;
+
+ reload)
+ if [ -z "$rc_pid" ]; then
+ if [ -n "$pidfile" ]; then
+ echo \
+ "${name} not running? (check $pidfile)."
+ else
+ echo "${name} not running?"
+ fi
+ exit 1
+ fi
+ echo "Reloading ${name} config files."
+ if ! eval $_precmd && [ -z "$rc_force" ]; then
+ return 1
+ fi
+ _doit="kill -${sig_reload:-HUP} $rc_pid"
+ if [ -n "$_user" ]; then
+ _doit="su -m $_user -c 'sh -c \"$_doit\"'"
+ fi
+ if ! eval $_doit && [ -z "$rc_force" ]; then
+ return 1
+ fi
+ eval $_postcmd
+ ;;
+
+ restart)
+ if ! eval $_precmd && [ -z "$rc_force" ]; then
+ return 1
+ fi
+ # prevent restart being called more
+ # than once by any given script
+ #
+ if [ -n "$_rc_restart_done" ]; then
+ return 0
+ fi
+ _rc_restart_done=YES
+
+ ( $0 ${rc_force:+force}stop )
+ $0 ${rc_force:+force}start
+
+ eval $_postcmd
+ ;;
+
+ poll)
+ if [ -n "$rc_pid" ]; then
+ wait_for_pids $rc_pid
+ fi
+ ;;
+
+ rcvar)
+ echo "# $name"
+ if [ -n "$rcvar" ]; then
+ if checkyesno ${rcvar}; then
+ echo "\$${rcvar}=YES"
+ else
+ echo "\$${rcvar}=NO"
+ fi
+ fi
+ ;;
+
+ *)
+ rc_usage "$_keywords"
+ ;;
+
+ esac
+ return 0
+ done
+
+ echo 1>&2 "$0: unknown directive '$rc_arg'."
+ rc_usage "$_keywords"
+ exit 1
+}
+
+#
+# run_rc_script file arg
+# Start the script `file' with `arg', and correctly handle the
+# return value from the script. If `file' ends with `.sh', it's
+# sourced into the current environment. If `file' appears to be
+# a backup or scratch file, ignore it. Otherwise if it's
+# executable run as a child process.
+#
+run_rc_script()
+{
+ _file=$1
+ _arg=$2
+ if [ -z "$_file" -o -z "$_arg" ]; then
+ err 3 'USAGE: run_rc_script file arg'
+ fi
+
+ trap "echo 'Reboot interrupted'; exit 1" 3
+
+ unset name command command_args command_interpreter \
+ extra_commands pidfile procname \
+ rcvar required_dirs required_files required_vars
+ eval unset ${_arg}_cmd ${_arg}_precmd ${_arg}_postcmd
+
+ case "$_file" in
+ *.sh) # run in current shell
+ set $_arg ; . $_file
+ ;;
+ *[~#]|*.OLD|*.orig) # scratch file; skip
+ warn "Ignoring scratch file $_file"
+ ;;
+ *) # run in subshell
+ if [ -x $_file ]; then
+ if [ -n "$rc_fast_and_loose" ]; then
+ set $_arg ; . $_file
+ else
+ ( trap "echo 'Reboot interrupted'; exit 1" 3
+ set $_arg ; . $_file )
+ fi
+ fi
+ ;;
+ esac
+}
+
+#
+# load_rc_config
+# Source in the configuration file for a given command.
+#
+load_rc_config()
+{
+ _command=$1
+ if [ -z "$_command" ]; then
+ err 3 'USAGE: load_rc_config command'
+ fi
+
+ if [ -z "$_rc_conf_loaded" ]; then
+ if [ -r /etc/defaults/rc.conf ]; then
+ debug "Sourcing /etc/defaults/rc.conf"
+ . /etc/defaults/rc.conf
+ source_rc_confs
+ elif [ -r /etc/rc.conf ]; then
+ debug "Sourcing /etc/rc.conf (/etc/defaults/rc.conf doesn't exist)."
+ . /etc/rc.conf
+ fi
+ _rc_conf_loaded=YES
+ fi
+ if [ -f /etc/rc.conf.d/"$_command" ]; then
+ debug "Sourcing /etc/rc.conf.d/${_command}"
+ . /etc/rc.conf.d/"$_command"
+ fi
+
+ # XXX - Deprecated variable name support
+ #
+ case `${CMD_OSTYPE}` in
+ FreeBSD)
+ [ -n "$portmap_enable" ] && rpcbind_enable="$portmap_enable"
+ [ -n "$portmap_program" ] && rpcbind_program="$portmap_program"
+ [ -n "$portmap_flags" ] && rpcbind_flags="$portmap_flags"
+ [ -n "$single_mountd_enable" ] && mountd_enable="$single_mountd_enable"
+ [ -n "$xntpd_enable" ] && ntpd_enable="$xntpd_enable"
+ [ -n "$xntpd_program" ] && ntpd_program="$xntpd_program"
+ [ -n "$xntpd_flags" ] && ntpd_flags="$xntpd_flags"
+ ;;
+ esac
+
+}
+
+#
+# rc_usage commands
+# Print a usage string for $0, with `commands' being a list of
+# valid commands.
+#
+rc_usage()
+{
+ echo -n 1>&2 "usage: $0 [fast|force]("
+
+ _sep=
+ for _elem in $*; do
+ echo -n 1>&2 "$_sep$_elem"
+ _sep="|"
+ done
+ echo 1>&2 ")"
+ exit 1
+}
+
+#
+# _echo prefix message
+# Display message preceded by "$prefix:". Log to syslog as well.
+# XXX - syslogd may not be listening (especially if this subroutine
+# is called at boot before syslogd has had a chance to startup).
+#
+_echo()
+{
+ [ -x /usr/bin/logger ] && /usr/bin/logger "$0: $1: $2"
+ echo "$0: $1: $2"
+}
+
+#
+# err exitval message
+# Display message to stderr and log to the syslog, and exit with exitval.
+#
+err()
+{
+ exitval=$1
+ shift
+
+ _echo 1>&2 "ERROR" "$*"
+ exit $exitval
+}
+
+#
+# warn message
+# Display message to stderr and log to the syslog.
+#
+warn()
+{
+ _echo 1>&2 "WARNING" "$*"
+}
+
+#
+# info message
+# Display informational message to stdout and log to syslog.
+#
+info()
+{
+ _echo "INFO" "$*"
+}
+
+#
+# debug message
+# If debugging is enabled in rc.conf output message to stderr and syslog.
+# BEWARE that you don't call any subroutine that itself calls this
+# function.
+#
+debug()
+{
+ # This subroutine is provided as a convenience to script writers, who
+ # should enable debugging in /etc/rc.conf.
+ #
+ [ -f /etc/rc.conf ] && . /etc/rc.conf
+
+ case ${rc_debug} in
+ [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
+ _echo 1>&2 "DEBUG" "$*"
+ return
+ ;;
+ esac
+}
+
+#
+# backup_file action file cur backup
+# Make a backup copy of `file' into `cur', and save the previous
+# version of `cur' as `backup' or use rcs for archiving.
+#
+# This routine checks the value of the backup_uses_rcs variable,
+# which can be either YES or NO.
+#
+# The `action' keyword can be one of the following:
+#
+# add `file' is now being backed up (and is possibly
+# being reentered into the backups system). `cur'
+# is created and RCS files, if necessary, are
+# created as well.
+#
+# update `file' has changed and needs to be backed up.
+# If `cur' exists, it is copied to to `back' or
+# checked into RCS (if the repository file is old),
+# and then `file' is copied to `cur'. Another RCS
+# check in done here if RCS is being used.
+#
+# remove `file' is no longer being tracked by the backups
+# system. If RCS is not being used, `cur' is moved
+# to `back', otherwise an empty file is checked in,
+# and then `cur' is removed.
+#
+#
+backup_file()
+{
+ _action=$1
+ _file=$2
+ _cur=$3
+ _back=$4
+
+ if checkyesno backup_uses_rcs; then
+ _msg0="backup archive"
+ _msg1="update"
+
+ # ensure that history file is not locked
+ if [ -f $_cur,v ]; then
+ rcs -q -u -U -M $_cur
+ fi
+
+ # ensure after switching to rcs that the
+ # current backup is not lost
+ if [ -f $_cur ]; then
+ # no archive, or current newer than archive
+ if [ ! -f $_cur,v -o $_cur -nt $_cur,v ]; then
+ ci -q -f -u -t-"$_msg0" -m"$_msg1" $_cur
+ rcs -q -kb -U $_cur
+ co -q -f -u $_cur
+ fi
+ fi
+
+ case $_action in
+ add|update)
+ cp -p $_file $_cur
+ ci -q -f -u -t-"$_msg0" -m"$_msg1" $_cur
+ rcs -q -kb -U $_cur
+ co -q -f -u $_cur
+ chown root:wheel $_cur $_cur,v
+ ;;
+ remove)
+ cp /dev/null $_cur
+ ci -q -f -u -t-"$_msg0" -m"$_msg1" $_cur
+ rcs -q -kb -U $_cur
+ chown root:wheel $_cur $_cur,v
+ rm $_cur
+ ;;
+ esac
+ else
+ case $_action in
+ add|update)
+ if [ -f $_cur ]; then
+ cp -p $_cur $_back
+ fi
+ cp -p $_file $_cur
+ chown root:wheel $_cur
+ ;;
+ remove)
+ mv -f $_cur $_back
+ ;;
+ esac
+ fi
+}
diff --git a/etc/rc.suspend b/etc/rc.suspend
new file mode 100755
index 0000000..8b3e4fa
--- /dev/null
+++ b/etc/rc.suspend
@@ -0,0 +1,50 @@
+#!/bin/sh
+#
+# Copyright (c) 1999 Mitsuru IWASAKI
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+# sample run command file for APM Suspend Event
+
+if [ -r /var/run/rc.suspend.pid ]; then
+ exit 1
+fi
+
+echo $$ > /var/run/rc.suspend.pid
+
+# If you have troubles on suspending with PC-CARD modem, try this.
+# See also contrib/pccardq.c (Only for PAO users).
+# pccardq | awk -F '~' '$5 == "filled" && $4 ~ /sio/ \
+# { printf("pccardc power %d 0", $1); }' | sh
+
+logger -t apmd suspend at `date +'%Y%m%d %H:%M:%S'`
+sync && sync && sync
+sleep 3
+
+rm -f /var/run/rc.suspend.pid
+zzz
+
+exit 0
diff --git a/etc/rc.syscons b/etc/rc.syscons
new file mode 100644
index 0000000..6798b29
--- /dev/null
+++ b/etc/rc.syscons
@@ -0,0 +1,197 @@
+#!/bin/sh -
+#
+# Copyright (c) 2000 The FreeBSD Project
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+# Do syscons configuration
+#
+
+# stdin must be redirected because it might be for a serial console
+#
+kbddev=/dev/ttyv0
+viddev=/dev/ttyv0
+
+# Handle diskless boots, and other situations where syscons is not present
+#
+if [ -c "${kbddev}" ]; then
+
+echo -n 'Configuring syscons:'
+
+# keymap
+#
+case ${keymap} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' keymap'; kbdcontrol < ${kbddev} -l ${keymap}
+ ;;
+esac
+
+# keyrate
+#
+case ${keyrate} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' keyrate'; kbdcontrol < ${kbddev} -r ${keyrate}
+ ;;
+esac
+
+# keybell
+#
+case ${keybell} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' keybell'; kbdcontrol < ${kbddev} -b ${keybell}
+ ;;
+esac
+
+# change function keys
+#
+case ${keychange} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' keychange'
+ set - ${keychange}
+ while [ $# -gt 0 ]; do
+ kbdcontrol <${kbddev} -f "$1" "$2"
+ shift; shift
+ done
+ ;;
+esac
+
+# cursor type
+#
+case ${cursor} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' cursor'; vidcontrol < ${viddev} -c ${cursor}
+ ;;
+esac
+
+# screen mapping
+#
+case ${scrnmap} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' scrnmap'; vidcontrol < ${viddev} -l ${scrnmap}
+ ;;
+esac
+
+# font 8x16
+#
+case ${font8x16} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' font8x16'; vidcontrol < ${viddev} -f 8x16 ${font8x16}
+ ;;
+esac
+
+# font 8x14
+#
+case ${font8x14} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' font8x14'; vidcontrol < ${viddev} -f 8x14 ${font8x14}
+ ;;
+esac
+
+# font 8x8
+#
+case ${font8x8} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' font8x8'; vidcontrol < ${viddev} -f 8x8 ${font8x8}
+ ;;
+esac
+
+# blank time
+#
+case ${blanktime} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' blanktime'; vidcontrol < ${viddev} -t ${blanktime}
+ ;;
+esac
+
+# screen saver
+#
+case ${saver} in
+[Nn][Oo] | '')
+ ;;
+*)
+ echo -n ' screensaver'
+ for i in `kldstat | awk '$5 ~ "^splash_.*$" { print $5 }'`; do
+ kldunload ${i}
+ done
+ kldstat -v | grep -q _saver || kldload ${saver}_saver
+ ;;
+esac
+
+# mouse daemon
+#
+case ${moused_enable} in
+[Yy][Ee][Ss])
+ echo -n ' moused'
+ moused ${moused_flags} -p ${moused_port} -t ${moused_type}
+ case ${mousechar_start} in
+ [Nn][Oo] | '')
+ ;;
+ *)
+ echo -n ' mousechar_start'; vidcontrol < ${viddev} -M ${mousechar_start}
+ ;;
+ esac
+ vidcontrol < ${viddev} -m on
+ ;;
+esac
+
+# set this mode for all virtual screens
+#
+if [ -n "${allscreens_flags}" ]; then
+ echo -n ' allscreens'
+ for ttyv in /dev/ttyv*; do
+ vidcontrol ${allscreens_flags} < ${ttyv} > ${ttyv} 2>&1
+ done
+fi
+
+# set this keyboard mode for all virtual terminals
+#
+if [ -n "${allscreens_kbdflags}" ]; then
+ echo -n ' allscreens_kbd'
+ for ttyv in /dev/ttyv*; do
+ kbdcontrol ${allscreens_kbdflags} < ${ttyv} > ${ttyv} 2>&1
+ done
+fi
+
+echo '.'
+fi
diff --git a/etc/rc.sysctl b/etc/rc.sysctl
new file mode 100644
index 0000000..1e315f2
--- /dev/null
+++ b/etc/rc.sysctl
@@ -0,0 +1,61 @@
+#!/bin/sh
+#
+# Copyright (c) 1999 Warner Losh
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+#
+# $FreeBSD$
+#
+
+#
+# Read in /etc/sysctl.conf and set things accordingly
+#
+
+if [ -f /etc/sysctl.conf ]; then
+ while read var comments
+ do
+ case ${var} in
+ \#*|'')
+ ;;
+ *)
+ mib=${var%=*}
+ val=${var#*=}
+
+ if current_value=`sysctl -n ${mib} 2>/dev/null`; then
+ case ${current_value} in
+ ${val}) ;;
+ *)
+ sysctl ${var}
+ ;;
+ esac
+ else
+ case ${1} in
+ last)
+ echo "Warning: sysctl ${mib} does not exist"
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ done < /etc/sysctl.conf
+fi
diff --git a/etc/remote b/etc/remote
new file mode 100644
index 0000000..78c684c
--- /dev/null
+++ b/etc/remote
@@ -0,0 +1,58 @@
+# $FreeBSD$
+#
+# @(#)remote 5.2 (Berkeley) 6/30/90
+#
+# remote -- remote host description file
+# see tip(1), remote(5)
+#
+# dv device to use for the tty
+# el EOL marks (default is NULL)
+# du make a call flag (dial up)
+# pn phone numbers (@ =>'s search phones file; possibly taken from
+# PHONES environment variable)
+# at ACU type
+# ie input EOF marks (default is NULL)
+# oe output EOF string (default is NULL)
+# cu call unit (default is dv)
+# br baud rate (defaults to 300)
+# fs frame size (default is BUFSIZ) -- used in buffering writes on
+# receive operations
+# tc to continue a capability
+
+# Systems definitions
+netcom|Netcom Unix Access:\
+ :pn=\@:tc=unix1200:
+omen|Omen BBS:\
+ :pn=\@:tc=dos1200:
+
+# UNIX system definitions
+unix1200|1200 Baud dial-out to a UNIX system:\
+ :el=^U^C^R^O^D^S^Q:ie=%$:oe=^D:tc=dial1200:
+unix300|300 Baud dial-out to a UNIX system:\
+ :el=^U^C^R^O^D^S^Q:ie=%$:oe=^D:tc=dial300:
+
+# DOS system definitions
+dos1200|1200 Baud dial-out to a DOS system:\
+ :el=^U^C^R^O^D^S^Q:ie=%$:oe=^Z:pa=none:tc=dial1200:
+
+# General dialer definitions used below
+#
+# COURIER switch settings:
+# switch: 1 2 3 4 5 6 7 8 9 10
+# setting: D U D U D D U D U U
+# Rackmount: U U D U D U D D U D
+#
+dial2400|2400 Baud Hayes attributes:\
+ :dv=/dev/cuaa0:br#2400:cu=/dev/cuaa0:at=hayes:du:
+dial1200|1200 Baud Hayes attributes:\
+ :dv=/dev/cuaa0:br#1200:cu=/dev/cuaa0:at=hayes:du:
+
+# Hardwired line
+cuaa0b|cua0b:dv=/dev/cuaa0:br#2400:pa=none:
+cuaa0c|cua0c:dv=/dev/cuaa0:br#9600:pa=none:
+
+# Finger friendly shortcuts
+com1:dv=/dev/cuaa0:br#9600:pa=none:
+com2:dv=/dev/cuaa1:br#9600:pa=none:
+com3:dv=/dev/cuaa2:br#9600:pa=none:
+com4:dv=/dev/cuaa3:br#9600:pa=none:
diff --git a/etc/root/dot.cshrc b/etc/root/dot.cshrc
new file mode 100644
index 0000000..8469eba
--- /dev/null
+++ b/etc/root/dot.cshrc
@@ -0,0 +1,35 @@
+# $FreeBSD$
+#
+# .cshrc - csh resource script, read at beginning of execution by each shell
+#
+# see also csh(1), environ(7).
+#
+
+alias h history 25
+alias j jobs -l
+alias la ls -a
+alias lf ls -FA
+alias ll ls -lA
+
+# A righteous umask
+umask 22
+
+set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin /usr/X11R6/bin $HOME/bin)
+
+setenv EDITOR vi
+setenv PAGER more
+setenv BLOCKSIZE K
+
+if ($?prompt) then
+ # An interactive shell -- set some stuff up
+ set prompt = "`hostname -s`# "
+ set filec
+ set history = 100
+ set savehist = 100
+ set mail = (/var/mail/$USER)
+ if ( $?tcsh ) then
+ bindkey "^W" backward-delete-word
+ bindkey -k up history-search-backward
+ bindkey -k down history-search-forward
+ endif
+endif
diff --git a/etc/root/dot.klogin b/etc/root/dot.klogin
new file mode 100644
index 0000000..55e653a
--- /dev/null
+++ b/etc/root/dot.klogin
@@ -0,0 +1,4 @@
+# $FreeBSD$
+#
+# user1.root@your.realm.wherever
+# user2.root@your.realm.wherever
diff --git a/etc/root/dot.login b/etc/root/dot.login
new file mode 100644
index 0000000..3032ef9
--- /dev/null
+++ b/etc/root/dot.login
@@ -0,0 +1,9 @@
+# $FreeBSD$
+#
+# .login - csh login script, read by login shell, after `.cshrc' at login.
+#
+# see also csh(1), environ(7).
+#
+
+# Uncomment to display a random cookie each login:
+# [ -x /usr/games/fortune ] && /usr/games/fortune -s
diff --git a/etc/root/dot.profile b/etc/root/dot.profile
new file mode 100644
index 0000000..bcf606d
--- /dev/null
+++ b/etc/root/dot.profile
@@ -0,0 +1,10 @@
+# $FreeBSD$
+#
+PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin
+export PATH
+HOME=/root
+export HOME
+TERM=${TERM:-cons25}
+export TERM
+PAGER=more
+export PAGER
diff --git a/etc/rpc b/etc/rpc
new file mode 100644
index 0000000..897f5ab
--- /dev/null
+++ b/etc/rpc
@@ -0,0 +1,68 @@
+#
+# $FreeBSD$
+# rpc 88/08/01 4.0 RPCSRC; from 1.12 99/07/25 SMI
+#
+rpcbind 100000 portmap sunrpc rpcbind
+rstatd 100001 rstat rstat_svc rup perfmeter
+rusersd 100002 rusers
+nfs 100003 nfsprog
+ypserv 100004 ypprog
+mountd 100005 mount showmount
+ypbind 100007
+walld 100008 rwall shutdown
+yppasswdd 100009 yppasswd
+etherstatd 100010 etherstat
+rquotad 100011 rquotaprog quota rquota
+sprayd 100012 spray
+3270_mapper 100013
+rje_mapper 100014
+selection_svc 100015 selnsvc
+database_svc 100016
+rexd 100017 rex
+alis 100018
+sched 100019
+llockmgr 100020
+nlockmgr 100021
+x25.inr 100022
+statmon 100023
+status 100024
+bootparamd 100026 bootparam
+ypupdated 100028 ypupdate
+keyserv 100029 keyserver
+sunlink_mapper 100033
+tfsd 100037
+nsed 100038
+nsemntd 100039
+showfhd 100043 showfh
+ioadmd 100055 rpc.ioadmd
+NETlicense 100062
+sunisamd 100065
+debug_svc 100066 dbsrv
+cmsd 100068
+bugtraqd 100071
+kerbd 100078
+ttdbserver 100083 tooltalk
+event 100101 na.event # SunNet Manager
+logger 100102 na.logger # SunNet Manager
+sync 100104 na.sync
+hostperf 100107 na.hostperf
+activity 100109 na.activity # SunNet Manager
+hostmem 100112 na.hostmem
+sample 100113 na.sample
+x25 100114 na.x25
+ping 100115 na.ping
+rpcnfs 100116 na.rpcnfs
+hostif 100117 na.hostif
+etherif 100118 na.etherif
+iproutes 100120 na.iproutes
+layers 100121 na.layers
+snmp 100122 na.snmp snmp-cmc snmp-synoptics snmp-unisys snmp-utk
+traffic 100123 na.traffic
+nfs_acl 100227
+sadmind 100232
+nisd 100300 rpc.nisd
+nispasswd 100303 rpc.nispasswdd
+ufsd 100233
+pcnfsd 150001 pcnfs
+amd 300019
+sgi_fam 391002 # file alteration monitor
diff --git a/etc/sendmail/Makefile b/etc/sendmail/Makefile
new file mode 100644
index 0000000..ca4443c
--- /dev/null
+++ b/etc/sendmail/Makefile
@@ -0,0 +1,139 @@
+# @(#)Makefile 8.19 (Berkeley) 1/14/97
+# $FreeBSD$
+
+M4= m4
+CHMOD= chmod
+ROMODE= 444
+RM= rm -f
+
+SENDMAIL_DIR= ${.CURDIR}/../../contrib/sendmail
+SMDIR= ${SENDMAIL_DIR}/src
+CFDIR= ${SENDMAIL_DIR}/cf
+
+# this is overkill, but....
+M4FILES!= find ${CFDIR} -type f -name '*.m4' -print
+
+.SUFFIXES: .mc .cf
+
+.mc.cf: ${M4FILES}
+ ${RM} ${.TARGET}
+ (cd ${.CURDIR} && \
+ ${M4} -D_CF_DIR_=${CFDIR}/ ${SENDMAIL_M4_FLAGS} \
+ ${CFDIR}/m4/cf.m4 ${@:R}.mc) > ${.TARGET}
+ ${CHMOD} ${ROMODE} ${.TARGET}
+
+ALL= freebsd.cf
+CLEANFILES+= freebsd.cf
+
+# Local SENDMAIL_MC or SENDMAIL_CF may be set in /etc/make.conf.
+# Warning! If set, this causes 'make install' to always copy it
+# over /etc/mail/sendmail.cf!!!
+# Caveat emptor! Be sure you want this before you enable it.
+.if defined(SENDMAIL_MC)
+INSTALL_CF= ${SENDMAIL_MC:R}.cf
+.else
+.if defined(SENDMAIL_CF)
+INSTALL_CF= ${SENDMAIL_CF}
+.endif
+.endif
+
+.ifndef SENDMAIL_SET_USER_ID
+.if defined(SENDMAIL_SUBMIT_MC)
+INSTALL_SUBMIT_CF=${SENDMAIL_SUBMIT_MC:R}.cf
+.endif
+.endif
+
+DEST_CF= ${DESTDIR}/etc/mail/sendmail.cf
+DEST_SUBMIT_CF= ${DESTDIR}/etc/mail/submit.cf
+
+ALL+= ${INSTALL_CF} ${INSTALL_SUBMIT_CF}
+
+# Make sure we don't remove /etc/mail/sendmail.cf on make clean
+# since this will break a running system during a buildworld.
+.if defined(INSTALL_CF)
+.if ${INSTALL_CF} != ${DEST_CF}
+CLEANFILES+= ${INSTALL_CF}
+.endif
+.endif
+
+.if defined(INSTALL_SUBMIT_CF)
+.if ${INSTALL_SUBMIT_CF} != ${DEST_SUBMIT_CF}
+CLEANFILES+= ${INSTALL_SUBMIT_CF}
+.endif
+.endif
+
+# Additional .cf files to build
+.if defined(SENDMAIL_ADDITIONAL_MC)
+SENDMAIL_ADDITIONAL_CF= ${SENDMAIL_ADDITIONAL_MC:S/.mc$/.cf/g}
+ALL+= ${SENDMAIL_ADDITIONAL_CF}
+CLEANFILES+= ${SENDMAIL_ADDITIONAL_CF}
+.endif
+
+all: ${ALL}
+
+depend:
+
+install: ${INSTALL_CF} ${INSTALL_SUBMIT_CF}
+.if (defined(SENDMAIL_MC) && defined(SENDMAIL_CF))
+ @echo ">>> ERROR: Both SENDMAIL_CF and SENDMAIL_MC can not be set"
+ @false
+.endif
+.if defined(INSTALL_CF)
+.if ${INSTALL_CF} != ${DEST_CF}
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 ${INSTALL_CF} \
+ ${DEST_CF}
+.endif
+.endif
+.if defined(SENDMAIL_ADDITIONAL_CF)
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
+ ${SENDMAIL_ADDITIONAL_CF} ${DESTDIR}/etc/mail
+.endif
+.ifndef SENDMAIL_SET_USER_ID
+.if defined(INSTALL_SUBMIT_CF)
+.if ${INSTALL_SUBMIT_CF} != ${DEST_SUBMIT_CF}
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
+ ${INSTALL_SUBMIT_CF} ${DEST_SUBMIT_CF}
+.endif
+.endif
+.endif
+
+# Helper for src/etc/Makefile
+distribution: freebsd.cf freebsd.mc ${INSTALL_CF} ${INSTALL_SUBMIT_CF}
+.if (defined(SENDMAIL_MC) && defined(SENDMAIL_CF))
+ @echo ">>> ERROR: Both SENDMAIL_CF and SENDMAIL_MC can not be set"
+ @false
+.endif
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 ${.CURDIR}/freebsd.mc \
+ ${DESTDIR}/etc/mail/freebsd.mc
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 freebsd.cf \
+ ${DESTDIR}/etc/mail/freebsd.cf
+.if defined(INSTALL_CF)
+.if ${INSTALL_CF} != ${DEST_CF}
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 ${INSTALL_CF} \
+ ${DEST_CF}
+.endif
+.else
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 freebsd.cf \
+ ${DEST_CF}
+.endif
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 ${CFDIR}/cf/submit.mc \
+ ${DESTDIR}/etc/mail/freebsd.submit.mc
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 ${CFDIR}/cf/submit.cf \
+ ${DESTDIR}/etc/mail/freebsd.submit.cf
+.ifndef SENDMAIL_SET_USER_ID
+.if defined(INSTALL_SUBMIT_CF)
+.if ${INSTALL_SUBMIT_CF} != ${DEST_SUBMIT_CF}
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
+ ${INSTALL_SUBMIT_CF} ${DEST_SUBMIT_CF}
+.endif
+.else
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 ${CFDIR}/cf/submit.cf \
+ ${DEST_SUBMIT_CF}
+.endif
+.endif
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 ${SMDIR}/helpfile \
+ ${DESTDIR}/etc/mail/helpfile
+ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 640 /dev/null \
+ ${DESTDIR}/var/log/sendmail.st
+
+.include <bsd.prog.mk>
diff --git a/etc/sendmail/freebsd.mc b/etc/sendmail/freebsd.mc
new file mode 100644
index 0000000..9ed3774
--- /dev/null
+++ b/etc/sendmail/freebsd.mc
@@ -0,0 +1,92 @@
+divert(-1)
+#
+# Copyright (c) 1983 Eric P. Allman
+# Copyright (c) 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.
+#
+
+#
+# This is a generic configuration file for FreeBSD 5.X and later systems.
+# If you want to customize it, copy it to a name appropriate for your
+# environment and do the modifications there.
+#
+# The best documentation for this .mc file is:
+# /usr/share/sendmail/cf/README or
+# /usr/src/contrib/sendmail/cf/README
+#
+
+divert(0)
+VERSIONID(`$FreeBSD$')
+OSTYPE(freebsd5)
+DOMAIN(generic)
+
+FEATURE(access_db, `hash -o -T<TMPF> /etc/mail/access')
+FEATURE(blacklist_recipients)
+FEATURE(local_lmtp)
+FEATURE(mailertable, `hash -o /etc/mail/mailertable')
+FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')
+
+dnl Uncomment to allow relaying based on your MX records.
+dnl NOTE: This can allow sites to use your server as a backup MX without
+dnl your permission.
+dnl FEATURE(relay_based_on_MX)
+
+dnl DNS based black hole lists
+dnl --------------------------------
+dnl DNS based black hole lists come and go on a regular basis
+dnl so this file will not serve as a database of the available servers.
+dnl For that, visit http://dmoz.org/Computers/Internet/Abuse/Spam/Blacklists/
+
+dnl Uncomment to activate Realtime Blackhole List
+dnl information available at http://www.mail-abuse.com/
+dnl NOTE: This is a subscription service as of July 31, 2001
+dnl FEATURE(dnsbl)
+dnl Alternatively, you can provide your own server and rejection message:
+dnl FEATURE(dnsbl, `blackholes.mail-abuse.org', `"550 Mail from " $&{client_addr} " rejected, see http://mail-abuse.org/cgi-bin/lookup?" $&{client_addr}')
+
+dnl Dialup users should uncomment and define this appropriately
+dnl define(`SMART_HOST', `your.isp.mail.server')
+
+dnl Uncomment the first line to change the location of the default
+dnl /etc/mail/local-host-names and comment out the second line.
+dnl define(`confCW_FILE', `-o /etc/mail/sendmail.cw')
+define(`confCW_FILE', `-o /etc/mail/local-host-names')
+
+dnl Uncomment both of the following lines to listen on IPv6 as well as IPv4
+dnl DAEMON_OPTIONS(`Name=IPv4, Family=inet')
+dnl DAEMON_OPTIONS(`Name=IPv6, Family=inet6')
+
+define(`confBIND_OPTS', `WorkAroundBrokenAAAA')
+define(`confMAX_MIME_HEADER_LENGTH', `256/128')
+define(`confNO_RCPT_ACTION', `add-to-undisclosed')
+define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy')
+MAILER(local)
+MAILER(smtp)
diff --git a/etc/sendmail/freefall.mc b/etc/sendmail/freefall.mc
new file mode 100644
index 0000000..ffc29f8
--- /dev/null
+++ b/etc/sendmail/freefall.mc
@@ -0,0 +1,47 @@
+divert(-1)
+#
+# Copyright (c) 1983 Eric P. Allman
+# Copyright (c) 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.
+#
+
+#
+# This is the prototype for a "null client" -- that is, a client that
+# does nothing except forward all mail to a mail hub, plus an extra
+# line to make the email all appear as coming from "FreeBSD.org".
+#
+
+divert(0)dnl
+VERSIONID(`$FreeBSD$')
+
+OSTYPE(freebsd5)
+FEATURE(nullclient, hub.$m)
+MASQUERADE_AS(FreeBSD.org)
diff --git a/etc/services b/etc/services
new file mode 100644
index 0000000..15023a7
--- /dev/null
+++ b/etc/services
@@ -0,0 +1,2100 @@
+#
+# Network services, Internet style
+#
+# Note that it is presently the policy of IANA to assign a single well-known
+# port number for both TCP and UDP; hence, most entries here have two entries
+# even if the protocol doesn't support UDP operations.
+#
+# The latest IANA port assignments can be gotten from
+#
+# http://www.iana.org/assignments/port-numbers
+#
+# The Well Known Ports are those from 0 through 1023.
+# The Registered Ports are those from 1024 through 49151
+# The Dynamic and/or Private Ports are those from 49152 through 65535
+#
+# Kerberos services are for Kerberos v4, and are unofficial. Sites running
+# v5 should uncomment v5 entries and comment v4 entries.
+#
+# $FreeBSD$
+# From: @(#)services 5.8 (Berkeley) 5/9/91
+#
+# WELL KNOWN PORT NUMBERS
+#
+rtmp 1/ddp #Routing Table Maintenance Protocol
+tcpmux 1/tcp #TCP Port Service Multiplexer
+tcpmux 1/udp #TCP Port Service Multiplexer
+nbp 2/ddp #Name Binding Protocol
+compressnet 2/tcp #Management Utility
+compressnet 2/udp #Management Utility
+compressnet 3/tcp #Compression Process
+compressnet 3/udp #Compression Process
+echo 4/ddp #AppleTalk Echo Protocol
+rje 5/tcp #Remote Job Entry
+rje 5/udp #Remote Job Entry
+zip 6/ddp #Zone Information Protocol
+echo 7/tcp
+echo 7/udp
+discard 9/tcp sink null
+discard 9/udp sink null
+systat 11/tcp users #Active Users
+systat 11/udp users #Active Users
+daytime 13/tcp
+daytime 13/udp
+qotd 17/tcp quote #Quote of the Day
+qotd 17/udp quote #Quote of the Day
+msp 18/tcp #Message Send Protocol
+msp 18/udp #Message Send Protocol
+chargen 19/tcp ttytst source #Character Generator
+chargen 19/udp ttytst source #Character Generator
+ftp-data 20/tcp #File Transfer [Default Data]
+ftp-data 20/udp #File Transfer [Default Data]
+ftp 21/tcp #File Transfer [Control]
+ftp 21/udp #File Transfer [Control]
+ssh 22/tcp #Secure Shell Login
+ssh 22/udp #Secure Shell Login
+telnet 23/tcp
+telnet 23/udp
+# 24/tcp any private mail system
+# 24/udp any private mail system
+smtp 25/tcp mail #Simple Mail Transfer
+smtp 25/udp mail #Simple Mail Transfer
+nsw-fe 27/tcp #NSW User System FE
+nsw-fe 27/udp #NSW User System FE
+msg-icp 29/tcp #MSG ICP
+msg-icp 29/udp #MSG ICP
+msg-auth 31/tcp #MSG Authentication
+msg-auth 31/udp #MSG Authentication
+dsp 33/tcp #Display Support Protocol
+dsp 33/udp #Display Support Protocol
+# 35/tcp any private printer server
+# 35/udp any private printer server
+time 37/tcp timserver
+time 37/udp timserver
+rap 38/tcp #Route Access Protocol
+rap 38/udp #Route Access Protocol
+rlp 39/tcp resource #Resource Location Protocol
+rlp 39/udp resource #Resource Location Protocol
+graphics 41/tcp
+graphics 41/udp
+nameserver 42/tcp name #Host Name Server
+nameserver 42/udp name #Host Name Server
+nicname 43/tcp whois
+nicname 43/udp whois
+mpm-flags 44/tcp #MPM FLAGS Protocol
+mpm-flags 44/udp #MPM FLAGS Protocol
+mpm 45/tcp #Message Processing Module [recv]
+mpm 45/udp #Message Processing Module [recv]
+mpm-snd 46/tcp #MPM [default send]
+mpm-snd 46/udp #MPM [default send]
+ni-ftp 47/tcp #NI FTP
+ni-ftp 47/udp #NI FTP
+auditd 48/tcp #Digital Audit Daemon
+auditd 48/udp #Digital Audit Daemon
+tacacs 49/tcp #Login Host Protocol (TACACS)
+tacacs 49/udp #Login Host Protocol (TACACS)
+re-mail-ck 50/tcp #Remote Mail Checking Protocol
+re-mail-ck 50/udp #Remote Mail Checking Protocol
+la-maint 51/tcp #IMP Logical Address Maintenance
+la-maint 51/udp #IMP Logical Address Maintenance
+xns-time 52/tcp #XNS Time Protocol
+xns-time 52/udp #XNS Time Protocol
+domain 53/tcp #Domain Name Server
+domain 53/udp #Domain Name Server
+xns-ch 54/tcp #XNS Clearinghouse
+xns-ch 54/udp #XNS Clearinghouse
+isi-gl 55/tcp #ISI Graphics Language
+isi-gl 55/udp #ISI Graphics Language
+xns-auth 56/tcp #XNS Authentication
+xns-auth 56/udp #XNS Authentication
+mtp 57/tcp # deprecated
+#PROBLEMS!==============================================================
+# 57/tcp any private terminal access
+#PROBLEMS!==============================================================
+# 57/udp any private terminal access
+xns-mail 58/tcp #XNS Mail
+xns-mail 58/udp #XNS Mail
+# 59/tcp any private file service
+# 59/udp any private file service
+ni-mail 61/tcp #NI MAIL
+ni-mail 61/udp #NI MAIL
+acas 62/tcp #ACA Services
+acas 62/udp #ACA Services
+whois++ 63/tcp
+whois++ 63/udp
+covia 64/tcp #Communications Integrator (CI)
+covia 64/udp #Communications Integrator (CI)
+tacacs-ds 65/tcp #TACACS-Database Service
+tacacs-ds 65/udp #TACACS-Database Service
+sql*net 66/tcp #Oracle SQL*NET
+sql*net 66/udp #Oracle SQL*NET
+bootps 67/tcp dhcps #Bootstrap Protocol Server
+bootps 67/udp dhcps #Bootstrap Protocol Server
+bootpc 68/tcp dhcpc #Bootstrap Protocol Client
+bootpc 68/udp dhcpc #Bootstrap Protocol Client
+tftp 69/tcp #Trivial File Transfer
+tftp 69/udp #Trivial File Transfer
+gopher 70/tcp
+gopher 70/udp
+netrjs-1 71/tcp #Remote Job Service
+netrjs-1 71/udp #Remote Job Service
+netrjs-2 72/tcp #Remote Job Service
+netrjs-2 72/udp #Remote Job Service
+netrjs-3 73/tcp #Remote Job Service
+netrjs-3 73/udp #Remote Job Service
+netrjs-4 74/tcp #Remote Job Service
+netrjs-4 74/udp #Remote Job Service
+# 75/tcp any private dial out service
+# 75/udp any private dial out service
+deos 76/tcp #Distributed External Object Store
+deos 76/udp #Distributed External Object Store
+netrjs 77/tcp
+#PROBLEMS!==============================================================
+# 77/tcp any private RJE service
+#PROBLEMS!==============================================================
+# 77/udp any private RJE service
+vettcp 78/tcp
+vettcp 78/udp
+finger 79/tcp
+finger 79/udp
+http 80/tcp www www-http #World Wide Web HTTP
+http 80/udp www www-http #World Wide Web HTTP
+hosts2-ns 81/tcp #HOSTS2 Name Server
+hosts2-ns 81/udp #HOSTS2 Name Server
+xfer 82/tcp #XFER Utility
+xfer 82/udp #XFER Utility
+mit-ml-dev 83/tcp #MIT ML Device
+mit-ml-dev 83/udp #MIT ML Device
+ctf 84/tcp #Common Trace Facility
+ctf 84/udp #Common Trace Facility
+mit-ml-dev 85/tcp #MIT ML Device
+mit-ml-dev 85/udp #MIT ML Device
+mfcobol 86/tcp #Micro Focus Cobol
+mfcobol 86/udp #Micro Focus Cobol
+ttylink 87/tcp
+#PROBLEMS!===========================================================
+# 87/tcp any private terminal link
+#PROBLEMS!===========================================================
+# 87/udp any private terminal link
+kerberos-sec 88/tcp kerberos # krb5 # Kerberos (v5)
+kerberos-sec 88/udp kerberos # krb5 # Kerberos (v5)
+su-mit-tg 89/tcp #SU/MIT Telnet Gateway
+su-mit-tg 89/udp #SU/MIT Telnet Gateway
+dnsix 90/tcp #DNSIX Securit Attribute Token Map
+dnsix 90/udp #DNSIX Securit Attribute Token Map
+mit-dov 91/tcp #MIT Dover Spooler
+mit-dov 91/udp #MIT Dover Spooler
+npp 92/tcp #Network Printing Protocol
+npp 92/udp #Network Printing Protocol
+dcp 93/tcp #Device Control Protocol
+dcp 93/udp #Device Control Protocol
+objcall 94/tcp #Tivoli Object Dispatcher
+objcall 94/udp #Tivoli Object Dispatcher
+supdup 95/tcp
+supdup 95/udp
+dixie 96/tcp #DIXIE Protocol Specification
+dixie 96/udp #DIXIE Protocol Specification
+swift-rvf 97/tcp #Swift Remote Virtural File Protocol
+swift-rvf 97/udp #Swift Remote Virtural File Protocol
+tacnews 98/tcp #TAC News, Unofficial: Red Hat linuxconf
+tacnews 98/udp #TAC News, Unofficial: Red Hat linuxconf
+metagram 99/tcp #Metagram Relay
+metagram 99/udp #Metagram Relay
+newacct 100/tcp #[unauthorized use]
+hostname 101/tcp hostnames #NIC Host Name Server
+hostname 101/udp hostnames #NIC Host Name Server
+iso-tsap 102/tcp tsap #ISO-TSAP Class 0
+iso-tsap 102/udp tsap #ISO-TSAP Class 0
+gppitnp 103/tcp #Genesis Point-to-Point Trans Net
+gppitnp 103/udp #Genesis Point-to-Point Trans Net
+acr-nema 104/tcp #ACR-NEMA Digital Imag. & Comm. 300
+acr-nema 104/udp #ACR-NEMA Digital Imag. & Comm. 300
+csnet-ns 105/tcp cso-ns cso #Mailbox Name Nameserver
+csnet-ns 105/udp cso-ns cso #Mailbox Name Nameserver
+pop3pw 106/tcp 3com-tsmux #Eudora compatible PW changer
+3com-tsmux 106/udp
+rtelnet 107/tcp #Remote Telnet Service
+rtelnet 107/udp #Remote Telnet Service
+snagas 108/tcp #SNA Gateway Access Server
+snagas 108/udp #SNA Gateway Access Server
+pop2 109/tcp postoffice #Post Office Protocol - Version 2
+pop2 109/udp postoffice #Post Office Protocol - Version 2
+pop3 110/tcp #Post Office Protocol - Version 3
+pop3 110/udp #Post Office Protocol - Version 3
+sunrpc 111/tcp rpcbind #SUN Remote Procedure Call
+sunrpc 111/udp rpcbind #SUN Remote Procedure Call
+mcidas 112/tcp #McIDAS Data Transmission Protocol
+mcidas 112/udp #McIDAS Data Transmission Protocol
+auth 113/tcp ident tap #Authentication Service
+auth 113/udp ident tap #Authentication Service
+audionews 114/tcp #Audio News Multicast
+audionews 114/udp #Audio News Multicast
+sftp 115/tcp #Simple File Transfer Protocol
+sftp 115/udp #Simple File Transfer Protocol
+ansanotify 116/tcp #ANSA REX Notify
+ansanotify 116/udp #ANSA REX Notify
+uucp-path 117/tcp #UUCP Path Service
+uucp-path 117/udp #UUCP Path Service
+sqlserv 118/tcp #SQL Services
+sqlserv 118/udp #SQL Services
+nntp 119/tcp usenet #Network News Transfer Protocol
+nntp 119/udp usenet #Network News Transfer Protocol
+cfdptkt 120/tcp
+cfdptkt 120/udp
+erpc 121/tcp #Encore Expedited Remote Pro.Call
+erpc 121/udp #Encore Expedited Remote Pro.Call
+smakynet 122/tcp
+smakynet 122/udp
+ntp 123/tcp #Network Time Protocol
+ntp 123/udp #Network Time Protocol
+ansatrader 124/tcp #ANSA REX Trader
+ansatrader 124/udp #ANSA REX Trader
+locus-map 125/tcp #Locus PC-Interface Net Map Ser
+locus-map 125/udp #Locus PC-Interface Net Map Ser
+unitary 126/tcp #Unisys Unitary Login
+unitary 126/udp #Unisys Unitary Login
+locus-con 127/tcp #Locus PC-Interface Conn Server
+locus-con 127/udp #Locus PC-Interface Conn Server
+gss-xlicen 128/tcp #GSS X License Verification
+gss-xlicen 128/udp #GSS X License Verification
+pwdgen 129/tcp #Password Generator Protocol
+pwdgen 129/udp #Password Generator Protocol
+cisco-fna 130/tcp #cisco FNATIVE
+cisco-fna 130/udp #cisco FNATIVE
+cisco-tna 131/tcp #cisco TNATIVE
+cisco-tna 131/udp #cisco TNATIVE
+cisco-sys 132/tcp #cisco SYSMAINT
+cisco-sys 132/udp #cisco SYSMAINT
+statsrv 133/tcp #Statistics Service
+statsrv 133/udp #Statistics Service
+ingres-net 134/tcp #INGRES-NET Service
+ingres-net 134/udp #INGRES-NET Service
+loc-srv 135/tcp epmap #Location Service
+loc-srv 135/udp epmap #Location Service
+profile 136/tcp #PROFILE Naming System
+profile 136/udp #PROFILE Naming System
+netbios-ns 137/tcp #NETBIOS Name Service
+netbios-ns 137/udp #NETBIOS Name Service
+netbios-dgm 138/tcp #NETBIOS Datagram Service
+netbios-dgm 138/udp #NETBIOS Datagram Service
+netbios-ssn 139/tcp #NETBIOS Session Service
+netbios-ssn 139/udp #NETBIOS Session Service
+emfis-data 140/tcp #EMFIS Data Service
+emfis-data 140/udp #EMFIS Data Service
+emfis-cntl 141/tcp #EMFIS Control Service
+emfis-cntl 141/udp #EMFIS Control Service
+bl-idm 142/tcp #Britton-Lee IDM
+bl-idm 142/udp #Britton-Lee IDM
+imap 143/tcp imap2 imap4 #Interim Mail Access Protocol v2
+imap 143/udp imap2 imap4 #Interim Mail Access Protocol v2
+NeWS 144/tcp # Window System
+NeWS 144/udp # Window System
+#PROBLEMS!==============================================================
+#uma 144/tcp #Universal Management Architecture
+#uma 144/udp #Universal Management Architecture
+#PROBLEMS!==============================================================
+uaac 145/tcp #UAAC Protocol
+uaac 145/udp #UAAC Protocol
+iso-tp0 146/tcp
+iso-tp0 146/udp
+iso-ip 147/tcp
+iso-ip 147/udp
+cronus 148/tcp jargon #CRONUS-SUPPORT
+cronus 148/udp jargon #CRONUS-SUPPORT
+aed-512 149/tcp #AED 512 Emulation Service
+aed-512 149/udp #AED 512 Emulation Service
+sql-net 150/tcp
+sql-net 150/udp
+hems 151/tcp
+hems 151/udp
+bftp 152/tcp #Background File Transfer Program
+bftp 152/udp #Background File Transfer Program
+sgmp 153/tcp
+sgmp 153/udp
+netsc-prod 154/tcp
+netsc-prod 154/udp
+netsc-dev 155/tcp
+netsc-dev 155/udp
+sqlsrv 156/tcp #SQL Service
+sqlsrv 156/udp #SQL Service
+knet-cmp 157/tcp #KNET/VM Command/Message Protocol
+knet-cmp 157/udp #KNET/VM Command/Message Protocol
+pcmail-srv 158/tcp #PCMail Server
+pcmail-srv 158/udp #PCMail Server
+nss-routing 159/tcp
+nss-routing 159/udp
+sgmp-traps 160/tcp
+sgmp-traps 160/udp
+snmp 161/tcp
+snmp 161/udp
+snmptrap 162/tcp snmp-trap
+snmptrap 162/udp snmp-trap
+cmip-man 163/tcp #CMIP/TCP Manager
+cmip-man 163/udp #CMIP/TCP Manager
+cmip-agent 164/tcp #CMIP/TCP Agent
+smip-agent 164/udp #CMIP/TCP Agent
+xns-courier 165/tcp #Xerox
+xns-courier 165/udp #Xerox
+s-net 166/tcp #Sirius Systems
+s-net 166/udp #Sirius Systems
+namp 167/tcp
+namp 167/udp
+rsvd 168/tcp
+rsvd 168/udp
+send 169/tcp
+send 169/udp
+print-srv 170/tcp #Network PostScript
+print-srv 170/udp #Network PostScript
+multiplex 171/tcp #Network Innovations Multiplex
+multiplex 171/udp #Network Innovations Multiplex
+cl/1 172/tcp #Network Innovations CL/1
+cl/1 172/udp #Network Innovations CL/1
+xyplex-mux 173/tcp
+xyplex-mux 173/udp
+mailq 174/tcp
+mailq 174/udp
+vmnet 175/tcp
+vmnet 175/udp
+genrad-mux 176/tcp
+genrad-mux 176/udp
+xdmcp 177/tcp #X Display Manager Control Protocol
+xdmcp 177/udp #X Display Manager Control Protocol
+NextStep 178/tcp nextstep NeXTStep #NextStep Window Server
+NextStep 178/udp nextstep NeXTStep #NextStep Window Server
+bgp 179/tcp #Border Gateway Protocol
+bgp 179/udp #Border Gateway Protocol
+ris 180/tcp #Intergraph
+ris 180/udp #Intergraph
+unify 181/tcp
+unify 181/udp
+audit 182/tcp #Unisys Audit SITP
+audit 182/udp #Unisys Audit SITP
+ocbinder 183/tcp
+ocbinder 183/udp
+ocserver 184/tcp
+ocserver 184/udp
+remote-kis 185/tcp
+remote-kis 185/udp
+kis 186/tcp #KIS Protocol
+kis 186/udp #KIS Protocol
+aci 187/tcp #Application Communication Interface
+aci 187/udp #Application Communication Interface
+mumps 188/tcp #Plus Five's MUMPS
+mumps 188/udp #Plus Five's MUMPS
+qft 189/tcp #Queued File Transport
+qft 189/udp #Queued File Transport
+gacp 190/tcp #Gateway Access Control Protocol
+gacp 190/udp cacp #Gateway Access Control Protocol
+prospero 191/tcp #Prospero Directory Service
+prospero 191/udp #Prospero Directory Service
+osu-nms 192/tcp #OSU Network Monitoring System
+osu-nms 192/udp #OSU Network Monitoring System
+srmp 193/tcp #Spider Remote Monitoring Protocol
+srmp 193/udp #Spider Remote Monitoring Protocol
+irc 194/tcp #Internet Relay Chat Protocol
+irc 194/udp #Internet Relay Chat Protocol
+dn6-nlm-aud 195/tcp #DNSIX Network Level Module Audit
+dn6-nlm-aud 195/udp #DNSIX Network Level Module Audit
+dn6-smm-red 196/tcp #DNSIX Session Mgt Module Audit Redir
+dn6-smm-red 196/udp #DNSIX Session Mgt Module Audit Redir
+dls 197/tcp #Directory Location Service
+dls 197/udp #Directory Location Service
+dls-mon 198/tcp #Directory Location Service Monitor
+dls-mon 198/udp #Directory Location Service Monitor
+smux 199/tcp
+smux 199/udp
+src 200/tcp #IBM System Resource Controller
+src 200/udp #IBM System Resource Controller
+at-rtmp 201/tcp #AppleTalk Routing Maintenance
+at-rtmp 201/udp #AppleTalk Routing Maintenance
+at-nbp 202/tcp #AppleTalk Name Binding
+at-nbp 202/udp #AppleTalk Name Binding
+at-3 203/tcp #AppleTalk Unused
+at-3 203/udp #AppleTalk Unused
+at-echo 204/tcp #AppleTalk Echo
+at-echo 204/udp #AppleTalk Echo
+at-5 205/tcp #AppleTalk Unused
+at-5 205/udp #AppleTalk Unused
+at-zis 206/tcp #AppleTalk Zone Information
+at-zis 206/udp #AppleTalk Zone Information
+at-7 207/tcp #AppleTalk Unused
+at-7 207/udp #AppleTalk Unused
+at-8 208/tcp #AppleTalk Unused
+at-8 208/udp #AppleTalk Unused
+qmtp 209/tcp #The Quick Mail Transfer Protocol
+qmtp 209/udp #The Quick Mail Transfer Protocol
+#PROBLEMS!==============================================================
+#tam 209/tcp #Trivial Authenticated Mail Protocol
+#tam 209/udp #Trivial Authenticated Mail Protocol
+#PROBLEMS!==============================================================
+z39.50 210/tcp wais #ANSI Z39.50
+z39.50 210/udp wais #ANSI Z39.50
+914c/g 211/tcp #Texas Instruments 914C/G Terminal
+914c/g 211/udp #Texas Instruments 914C/G Terminal
+anet 212/tcp #ATEXSSTR
+anet 212/udp #ATEXSSTR
+ipx 213/tcp
+ipx 213/udp
+vmpwscs 214/tcp
+vmpwscs 214/udp
+softpc 215/tcp #Insignia Solutions
+softpc 215/udp #Insignia Solutions
+CAIlic 216/tcp atls #Computer Associates Int'l License Server
+CAIlic 216/udp atls #Computer Associates Int'l License Server
+dbase 217/tcp #dBASE Unix
+dbase 217/udp #dBASE Unix
+mpp 218/tcp #Netix Message Posting Protocol
+mpp 218/udp #Netix Message Posting Protocol
+uarps 219/tcp #Unisys ARPs
+uarps 219/udp #Unisys ARPs
+imap3 220/tcp #Interactive Mail Access Protocol v3
+imap3 220/udp #Interactive Mail Access Protocol v3
+fln-spx 221/tcp #Berkeley rlogind with SPX auth
+fln-spx 221/udp #Berkeley rlogind with SPX auth
+rsh-spx 222/tcp #Berkeley rshd with SPX auth
+rsh-spx 222/udp #Berkeley rshd with SPX auth
+cdc 223/tcp #Certificate Distribution Center
+cdc 223/udp #Certificate Distribution Center
+direct 242/tcp
+direct 242/udp
+sur-meas 243/tcp #Survey Measurement
+sur-meas 243/udp #Survey Measurement
+dayna 244/tcp
+dayna 244/udp
+link 245/tcp
+link 245/udp
+dsp3270 246/tcp #Display Systems Protocol
+dsp3270 246/udp #Display Systems Protocol
+
+subntbcst_tftp 247/tcp #subntbcst_tftp
+subntbcst_tftp 247/udp #subntbcst_tftp
+bhfhs 248/tcp
+bhfhs 248/udp
+# 249-255 reserved
+rap 256/tcp
+rap 256/udp
+set 257/tcp #secure electronic transaction
+set 257/udp #secure electronic transaction
+yak-chat 258/tcp #yak winsock personal chat
+yak-chat 258/udp #yak winsock personal chat
+esro-gen 259/tcp #efficient short remote operations
+esro-gen 259/udp #efficient short remote operations
+openport 260/tcp
+openport 260/udp
+nsiiops 261/tcp #iiop name service over tls/ssl
+nsiiops 261/udp #iiop name service over tls/ssl
+arcisdms 262/tcp
+arcisdms 262/udp
+hdap 263/tcp
+hdap 263/udp
+bgmp 264/tcp
+bgmp 264/udp
+# 265-279 unassigned
+http-mgmt 280/tcp
+http-mgmt 280/udp
+personal-link 281/tcp
+personal-link 281/udp
+cableport-ax 282/tcp #cable port a/x
+cableport-ax 282/udp #cable port a/x
+# 283-307 unassigned
+novastorbakcup 308/tcp #novastor backup
+novastorbakcup 308/udp #novastor backup
+entrusttime 309/tcp
+entrusttime 309/udp
+bhmds 310/tcp
+bhmds 310/udp
+asip-webadmin 311/tcp #appleshare ip webadmin
+asip-webadmin 311/udp #appleshare ip webadmin
+vslmp 312/tcp
+vslmp 312/udp
+magenta-logic 313/tcp
+magenta-logic 313/udp
+opalis-robot 314/tcp
+opalis-robot 314/udp
+dpsi 315/tcp
+dpsi 315/udp
+decauth 316/tcp
+decauth 316/udp
+zannet 317/tcp
+zannet 317/udp
+# 318-320 #unassigned
+pip 321/tcp
+pip 321/udp
+# 322-343 #unassigned
+pdap 344/tcp #Prospero Data Access Protocol
+pdap 344/udp #Prospero Data Access Protocol
+pawserv 345/tcp #Perf Analysis Workbench
+pawserv 345/udp #Perf Analysis Workbench
+zserv 346/tcp #Zebra server
+zserv 346/udp #Zebra server
+fatserv 347/tcp #Fatmen Server
+fatserv 347/udp #Fatmen Server
+csi-sgwp 348/tcp #Cabletron Management Protocol
+csi-sgwp 348/udp #Cabletron Management Protocol
+
+
+mftp 349/tcp
+mftp 349/udp
+matip-type-a 350/tcp #MATIP Type A
+matip-type-a 350/udp
+matip-type-b 351/tcp #MATIP Type B
+matip-type-b 351/udp
+bhoetty 351/tcp #unassigned but widespread use
+bhoetty 351/udp #unassigned but widespread use
+dtag-ste-sb 352/tcp #DTAG
+dtag-ste-sb 352/udp #DTAG
+bhoedap4 352/tcp #unassigned but widespread use
+bhoedap4 352/udp #unassigned but widespread use
+ndsauth 353/tcp
+ndsauth 353/udp
+bh611 354/tcp
+bh611 354/udp
+datex-asn 355/tcp
+datex-asn 355/udp
+cloanto-net-1 356/tcp #Cloanto Net 1
+cloanto-net-1 356/udp
+bhevent 357/tcp
+bhevent 357/udp
+shrinkwrap 358/tcp
+shrinkwrap 358/udp
+tenebris_nts 359/tcp #Tenebris Network Trace Service
+tenebris_nts 359/udp #Tenebris Network Trace Service
+scoi2odialog 360/tcp
+scoi2odialog 360/udp
+semantix 361/tcp
+semantix 361/udp
+srssend 362/tcp #SRS Send
+srssend 362/udp #SRS Send
+rsvp_tunnel 363/tcp
+rsvp_tunnel 363/udp
+aurora-cmgr 364/tcp
+aurora-cmgr 364/udp
+dtk 365/tcp #Deception Tool Kit - Fred Cohen <fc@all.net>
+dtk 365/udp #Deception Tool Kit - Fred Cohen <fc@all.net>
+odmr 366/tcp
+odmr 366/udp
+mortgageware 367/tcp
+mortgageware 367/udp
+qbikgdp 368/tcp #QbikGDP
+qbikgdp 368/udp
+rpc2portmap 369/tcp
+rpc2portmap 369/udp
+codaauth2 370/tcp
+codaauth2 370/udp
+clearcase 371/tcp
+clearcase 371/udp
+ulistserv 372/tcp ulistproc #Unix Listserv
+ulistserv 372/udp ulistproc #Unix Listserv
+legent-1 373/tcp #Legent Corporation (now Computer Associates Intl.)
+legent-1 373/udp #Legent Corporation (now Computer Associates Intl.)
+legent-2 374/tcp #Legent Corporation (now Computer Associates Intl.)
+legent-2 374/udp #Legent Corporation (now Computer Associates Intl.)
+hassle 375/tcp
+hassle 375/udp
+nip 376/tcp #Amiga Envoy Network Inquiry Proto
+nip 376/udp #Amiga Envoy Network Inquiry Proto
+tnETOS 377/tcp #NEC Corporation
+tnETOS 377/udp #NEC Corporation
+dsETOS 378/tcp #NEC Corporation
+dsETOS 378/udp #NEC Corporation
+is99c 379/tcp #TIA/EIA/IS-99 modem client
+is99c 379/udp #TIA/EIA/IS-99 modem client
+is99s 380/tcp #TIA/EIA/IS-99 modem server
+is99s 380/udp #TIA/EIA/IS-99 modem server
+hp-collector 381/tcp #hp performance data collector
+hp-collector 381/udp #hp performance data collector
+hp-managed-node 382/tcp #hp performance data managed node
+hp-managed-node 382/udp #hp performance data managed node
+hp-alarm-mgr 383/tcp #hp performance data alarm manager
+hp-alarm-mgr 383/udp #hp performance data alarm manager
+arns 384/tcp #A Remote Network Server System
+arns 384/udp #A Remote Network Server System
+ibm-app 385/tcp #IBM Application
+ibm-app 385/udp #IBM Application
+asa 386/tcp #ASA Message Router Object Def.
+asa 386/udp #ASA Message Router Object Def.
+aurp 387/tcp #Appletalk Update-Based Routing Pro.
+aurp 387/udp #Appletalk Update-Based Routing Pro.
+unidata-ldm 388/tcp #Unidata LDM Version 4
+unidata-ldm 388/udp #Unidata LDM Version 4
+ldap 389/tcp #Lightweight Directory Access Protocol
+ldap 389/udp #Lightweight Directory Access Protocol
+uis 390/tcp
+uis 390/udp
+synotics-relay 391/tcp #SynOptics SNMP Relay Port
+synotics-relay 391/udp #SynOptics SNMP Relay Port
+synotics-broker 392/tcp #SynOptics Port Broker Port
+synotics-broker 392/udp #SynOptics Port Broker Port
+dis 393/tcp #Data Interpretation System
+dis 393/udp #Data Interpretation System
+embl-ndt 394/tcp #EMBL Nucleic Data Transfer
+embl-ndt 394/udp #EMBL Nucleic Data Transfer
+netcp 395/tcp #NETscout Control Protocol
+netcp 395/udp #NETscout Control Protocol
+netware-ip 396/tcp #Novell Netware over IP
+netware-ip 396/udp #Novell Netware over IP
+mptn 397/tcp #Multi Protocol Trans. Net.
+mptn 397/udp #Multi Protocol Trans. Net.
+kryptolan 398/tcp
+kryptolan 398/udp
+iso-tsap-c2 399/tcp #ISO-TSAP Class 2
+iso-tsap-c2 399/udp #ISO-TSAP Class 2
+work-sol 400/tcp #Workstation Solutions
+work-sol 400/udp #Workstation Solutions
+ups 401/tcp #Uninterruptible Power Supply
+ups 401/udp #Uninterruptible Power Supply
+genie 402/tcp #Genie Protocol
+genie 402/udp #Genie Protocol
+decap 403/tcp
+decap 403/udp
+nced 404/tcp
+nced 404/udp
+ncld 405/tcp
+ncld 405/udp
+imsp 406/tcp #Interactive Mail Support Protocol
+imsp 406/udp #Interactive Mail Support Protocol
+timbuktu 407/tcp
+timbuktu 407/udp
+prm-sm 408/tcp #Prospero Resource Manager Sys. Man.
+prm-sm 408/udp #Prospero Resource Manager Sys. Man.
+prm-nm 409/tcp #Prospero Resource Manager Node Man.
+prm-nm 409/udp #Prospero Resource Manager Node Man.
+decladebug 410/tcp #DECLadebug Remote Debug Protocol
+decladebug 410/udp #DECLadebug Remote Debug Protocol
+rmt 411/tcp #Remote MT Protocol
+rmt 411/udp #Remote MT Protocol
+synoptics-trap 412/tcp #Trap Convention Port
+synoptics-trap 412/udp #Trap Convention Port
+smsp 413/tcp
+smsp 413/udp
+infoseek 414/tcp
+infoseek 414/udp
+bnet 415/tcp
+bnet 415/udp
+silverplatter 416/tcp
+silverplatter 416/udp
+onmux 417/tcp
+onmux 417/udp
+hyper-g 418/tcp
+hyper-g 418/udp
+ariel1 419/tcp
+ariel1 419/udp
+smpte 420/tcp
+smpte 420/udp
+ariel2 421/tcp
+ariel2 421/udp
+ariel3 422/tcp
+ariel3 422/udp
+opc-job-start 423/tcp #IBM Operations Planning and Control Start
+opc-job-start 423/udp #IBM Operations Planning and Control Start
+opc-job-track 424/tcp #IBM Operations Planning and Control Track
+opc-job-track 424/udp #IBM Operations Planning and Control Track
+icad-el 425/tcp
+icad-el 425/udp
+smartsdp 426/tcp
+smartsdp 426/udp
+svrloc 427/tcp #Server Location
+svrloc 427/udp #Server Location
+ocs_cmu 428/tcp
+ocs_cmu 428/udp
+ocs_amu 429/tcp
+ocs_amu 429/udp
+utmpsd 430/tcp
+utmpsd 430/udp
+utmpcd 431/tcp
+utmpcd 431/udp
+iasd 432/tcp
+iasd 432/udp
+nnsp 433/tcp
+nnsp 433/udp
+mobileip-agent 434/tcp
+mobileip-agent 434/udp
+mobilip-mn 435/tcp
+mobilip-mn 435/udp
+dna-cml 436/tcp
+dna-cml 436/udp
+comscm 437/tcp
+comscm 437/udp
+dsfgw 438/tcp
+dsfgw 438/udp
+dasp 439/tcp
+dasp 439/udp
+sgcp 440/tcp
+sgcp 440/udp
+decvms-sysmgt 441/tcp
+decvms-sysmgt 441/udp
+cvc_hostd 442/tcp
+cvc_hostd 442/udp
+https 443/tcp
+https 443/udp
+snpp 444/tcp #Simple Network Paging Protocol
+snpp 444/udp #Simple Network Paging Protocol
+# [RFC1568]
+microsoft-ds 445/tcp
+microsoft-ds 445/udp
+ddm-rdb 446/tcp
+ddm-rdb 446/udp
+ddm-dfm 447/tcp
+ddm-dfm 447/udp
+ddm-ssl 448/tcp ddm-byte
+ddm-ssl 448/udp ddm-byte
+as-servermap 449/tcp #AS Server Mapper
+as-servermap 449/udp #AS Server Mapper
+tserver 450/tcp
+tserver 450/udp
+sfs-smp-net 451/tcp #Cray Network Semaphore server
+sfs-smp-net 451/udp #Cray Network Semaphore server
+sfs-config 452/tcp #Cray SFS config server
+sfs-config 452/udp #Cray SFS config server
+creativeserver 453/tcp #CreativeServer
+creativeserver 453/udp #CreativeServer
+contentserver 454/tcp #ContentServer
+contentserver 454/udp #ContentServer
+creativepartnr 455/tcp #CreativePartnr
+creativepartnr 455/udp #CreativePartnr
+macon-tcp 456/tcp
+macon-udp 456/udp
+scohelp 457/tcp
+scohelp 457/udp
+appleqtc 458/tcp #apple quick time
+appleqtc 458/udp #apple quick time
+ampr-rcmd 459/tcp
+ampr-rcmd 459/udp
+skronk 460/tcp
+skronk 460/udp
+datasurfsrv 461/tcp
+datasurfsrv 461/udp
+datasurfsrvsec 462/tcp
+datasurfsrvsec 462/udp
+alpes 463/tcp
+alpes 463/udp
+#
+kpasswd5 464/tcp # Kerberos (v5)
+kpasswd5 464/udp # Kerberos (v5)
+#PROBLEMS!==============================================================
+# IANA has offically assigned these two ports as ``kpasswd''
+#kpasswd 464/tcp # Kerberos (v5)
+#kpasswd 464/udp # Kerberos (v5)
+#PROBLEMS!==============================================================
+smtps 465/tcp #smtp protocol over TLS/SSL (was ssmtp)
+smtps 465/udp #smtp protocol over TLS/SSL (was ssmtp)
+digital-vrc 466/tcp
+digital-vrc 466/udp
+mylex-mapd 467/tcp
+mylex-mapd 467/udp
+photuris 468/tcp
+photuris 468/udp
+rcp 469/tcp #Radio Control Protocol
+rcp 469/udp #Radio Control Protocol
+scx-proxy 470/tcp
+scx-proxy 470/udp
+mondex 471/tcp
+mondex 471/udp
+ljk-login 472/tcp
+ljk-login 472/udp
+hybrid-pop 473/tcp
+hybrid-pop 473/udp
+tn-tl-w1 474/tcp
+tn-tl-w2 474/udp
+tcpnethaspsrv 475/tcp
+tcpnethaspsrv 475/udp
+tn-tl-fd1 476/tcp
+tn-tl-fd1 476/udp
+ss7ns 477/tcp
+ss7ns 477/udp
+spsc 478/tcp
+spsc 478/udp
+iafserver 479/tcp
+iafserver 479/udp
+iafdbase 480/tcp
+iafdbase 480/udp
+ph 481/tcp
+ph 481/udp
+bgs-nsi 482/tcp
+bgs-nsi 482/udp
+ulpnet 483/tcp
+ulpnet 483/udp
+integra-sme 484/tcp #Integra Software Management Environment
+integra-sme 484/udp #Integra Software Management Environment
+powerburst 485/tcp #Air Soft Power Burst
+powerburst 485/udp #Air Soft Power Burst
+avian 486/tcp
+avian 486/udp
+saft 487/tcp #saft Simple Asynchronous File Transfer
+saft 487/udp #saft Simple Asynchronous File Transfer
+gss-http 488/tcp
+gss-http 488/udp
+nest-protocol 489/tcp
+nest-protocol 489/udp
+micom-pfs 490/tcp
+micom-pfs 490/udp
+go-login 491/tcp
+go-login 491/udp
+ticf-1 492/tcp #Transport Independent Convergence for FNA
+ticf-1 492/udp #Transport Independent Convergence for FNA
+ticf-2 493/tcp #Transport Independent Convergence for FNA
+ticf-2 493/udp #Transport Independent Convergence for FNA
+pov-ray 494/tcp
+pov-ray 494/udp
+intecourier 495/tcp
+intecourier 495/udp
+pim-rp-disc 496/tcp
+pim-rp-disc 496/udp
+dantz 497/tcp
+dantz 497/udp
+siam 498/tcp
+siam 498/udp
+iso-ill 499/tcp #ISO ILL Protocol
+iso-ill 499/udp #ISO ILL Protocol
+isakmp 500/tcp
+isakmp 500/udp
+stmf 501/tcp
+stmf 501/udp
+asa-appl-proto 502/tcp
+asa-appl-proto 502/udp
+intrinsa 503/tcp
+intrinsa 503/udp
+citadel 504/tcp
+citadel 504/udp
+mailbox-lm 505/tcp
+mailbox-lm 505/udp
+ohimsrv 506/tcp
+ohimsrv 506/udp
+crs 507/tcp
+crs 507/udp
+xvttp 508/tcp
+xvttp 508/udp
+snare 509/tcp
+snare 509/udp
+fcp 510/tcp #FirstClass Protocol
+fcp 510/udp #FirstClass Protocol
+passgo 511/tcp
+passgo 511/udp
+#
+# Berkeley-specific services
+#
+exec 512/tcp #remote process execution;
+# authentication performed using
+# passwords and UNIX login names
+biff 512/udp comsat #used by mail system to notify users
+# of new mail received; currently
+# receives messages only from
+# processes on the same machine
+login 513/tcp #remote login a la telnet;
+# automatic authentication performed
+# based on priviledged port numbers
+# and distributed data bases which
+# identify "authentication domains"
+who 513/udp whod #maintains data bases showing who's
+# logged in to machines on a local
+# net and the load average of the
+# machine
+shell 514/tcp cmd #like exec, but automatic
+# authentication is performed as for
+# login server
+syslog 514/udp
+printer 515/tcp spooler
+printer 515/udp spooler
+videotex 516/tcp
+videotex 516/udp
+talk 517/tcp #like tenex link, but across
+# machine - unfortunately, doesn't
+# use link protocol (this is actually
+# just a rendezvous port from which a
+# tcp connection is established)
+talk 517/udp #like tenex link, but across
+# machine - unfortunately, doesn't
+# use link protocol (this is actually
+# just a rendezvous port from which a
+# tcp connection is established)
+ntalk 518/tcp
+ntalk 518/udp
+utime 519/tcp unixtime
+utime 519/udp unixtime
+efs 520/tcp #extended file name server
+router 520/udp route routed #local routing process (on site);
+# uses variant of Xerox NS routing
+# information protocol
+ripng 521/tcp
+ripng 521/udp
+ulp 522/tcp
+ulp 522/udp
+ibm-db2 523/tcp
+ibm-db2 523/udp
+ncp 524/tcp
+ncp 524/udp
+timed 525/tcp timeserver
+timed 525/udp timeserver
+tempo 526/tcp newdate
+tempo 526/udp newdate
+stx 527/tcp #Stock IXChange
+stx 527/udp #Stock IXChange
+custix 528/tcp #Customer IXChange
+custix 528/udp #Customer IXChange
+irc-serv 529/tcp
+irc-serv 529/udp
+courier 530/tcp rpc
+courier 530/udp rpc
+conference 531/tcp chat
+conference 531/udp chat
+netnews 532/tcp readnews
+netnews 532/udp readnews
+netwall 533/tcp #for emergency broadcasts
+netwall 533/udp #for emergency broadcasts
+mm-admin 534/tcp #MegaMedia Admin
+mm-admin 534/udp #MegaMedia Admin
+iiop 535/tcp
+iiop 535/udp
+opalis-rdv 536/tcp
+opalis-rdv 536/udp
+nmsp 537/tcp #Networked Media Streaming Protocol
+nmsp 537/udp #Networked Media Streaming Protocol
+gdomap 538/tcp
+gdomap 538/udp
+apertus-ldp 539/tcp #Apertus Technologies Load Determination
+apertus-ldp 539/udp #Apertus Technologies Load Determination
+uucp 540/tcp uucpd
+uucp 540/udp uucpd
+uucp-rlogin 541/tcp
+uucp-rlogin 541/udp
+commerce 542/tcp
+commerce 542/udp
+klogin 543/tcp # Kerberos (v4/v5)
+klogin 543/udp # Kerberos (v4/v5)
+kshell 544/tcp krcmd # Kerberos (v4/v5)
+kshell 544/udp krcmd # Kerberos (v4/v5)
+appleqtcsrvr 545/tcp
+appleqtcsrvr 545/udp
+dhcpv6-client 546/tcp #DHCPv6 Client
+dhcpv6-client 546/udp #DHCPv6 Client
+dhcpv6-server 547/tcp #DHCPv6 Server
+dhcpv6-server 547/udp #DHCPv6 Server
+afpovertcp 548/tcp #AFP over TCP
+afpovertcp 548/udp #AFP over TCP
+idfp 549/tcp
+idfp 549/udp
+new-rwho 550/tcp new-who
+new-rwho 550/udp new-who
+cybercash 551/tcp
+cybercash 551/udp
+deviceshare 552/tcp
+deviceshare 552/udp
+pirp 553/tcp
+pirp 553/udp
+rtsp 554/tcp #Real Time Stream Control Protocol
+rtsp 554/udp #Real Time Stream Control Protocol
+dsf 555/tcp
+dsf 555/udp
+remotefs 556/tcp rfs rfs_server # Brunhoff remote filesystem
+remotefs 556/udp rfs rfs_server # Brunhoff remote filesystem
+openvms-sysipc 557/tcp
+openvms-sysipc 557/udp
+sdnskmp 558/tcp
+sdnskmp 558/udp
+teedtap 559/tcp
+teedtap 559/udp
+rmonitor 560/tcp rmonitord
+rmonitor 560/udp rmonitord
+monitor 561/tcp
+monitor 561/udp
+chshell 562/tcp chcmd
+chshell 562/udp chcmd
+nntps 563/tcp snntp #nntp protocol over TLS/SSL
+nntps 563/udp snntp #nntp protocol over TLS/SSL
+9pfs 564/tcp #plan 9 file service
+9pfs 564/udp #plan 9 file service
+whoami 565/tcp
+whoami 565/udp
+streettalk 566/tcp
+banyan-rpc 567/tcp
+banyan-rpc 567/udp
+ms-shuttle 568/tcp #Microsoft shuttle
+ms-shuttle 568/udp #Microsoft shuttle
+ms-rome 569/tcp #Microsoft rome
+ms-rome 569/udp #Microsoft rome
+meter 570/tcp #demon
+meter 570/udp #demon
+umeter 571/tcp #udemon
+umeter 571/udp #udemon
+
+
+
+sonar 572/tcp
+sonar 572/udp
+banyan-vip 573/tcp
+banyan-vip 573/udp
+ftp-agent 574/tcp #FTP Software Agent System
+ftp-agent 574/udp #FTP Software Agent System
+vemmi 575/tcp
+vemmi 575/udp
+ipcd 576/tcp
+ipcd 576/udp
+vnas 577/tcp
+vnas 577/udp
+ipdd 578/tcp
+ipdd 578/udp
+decbsrv 579/tcp
+decbsrv 579/udp
+sntp-heartbeat 580/tcp
+sntp-heartbeat 580/udp
+bdp 581/tcp #Bundle Discovery Protocol
+bdp 581/udp #Bundle Discovery Protocol
+scc-security 582/tcp
+scc-security 582/udp
+philips-vc 583/tcp #Philips Video-Conferencing
+philips-vc 583/udp #Philips Video-Conferencing
+keyserver 584/tcp
+keyserver 584/udp
+imap4-ssl 585/tcp #IMAP4+SSL (use of 585 is not recommended,
+imap4-ssl 585/udp # use 993 instead)
+password-chg 586/tcp
+password-chg 586/udp
+submission 587/tcp
+submission 587/udp
+cal 588/tcp
+cal 588/udp
+eyelink 589/tcp
+eyelink 589/udp
+tns-cml 590/tcp
+tns-cml 590/udp
+http-alt 591/tcp #FileMaker, Inc. - HTTP Alternate (see Port 80)
+http-alt 591/udp #FileMaker, Inc. - HTTP Alternate (see Port 80)
+eudora-set 592/tcp
+eudora-set 592/udp
+http-rpc-epmap 593/tcp #HTTP RPC Ep Map
+http-rpc-epmap 593/udp #HTTP RPC Ep Map
+tpip 594/tcp
+tpip 594/udp
+cab-protocol 595/tcp
+cab-protocol 595/udp
+smsd 596/tcp
+smsd 596/udp
+ptcnameservice 597/tcp #PTC Name Service
+ptcnameservice 597/udp #PTC Name Service
+sco-websrvrmg3 598/tcp #SCO Web Server Manager 3
+sco-websrvrmg3 598/udp #SCO Web Server Manager 3
+acp 599/tcp #Aeolon Core Protocol
+acp 599/udp #Aeolon Core Protocol
+ipcserver 600/tcp #Sun IPC server
+ipcserver 600/udp #Sun IPC server
+nqs 607/tcp
+nqs 607/udp
+urm 606/tcp #Cray Unified Resource Manager
+urm 606/udp #Cray Unified Resource Manager
+sift-uft 608/tcp #Sender-Initiated/Unsolicited File Transfer
+sift-uft 608/udp #Sender-Initiated/Unsolicited File Transfer
+npmp-trap 609/tcp
+npmp-trap 609/udp
+npmp-local 610/tcp
+npmp-local 610/udp
+npmp-gui 611/tcp
+npmp-gui 611/udp
+sshell 614/tcp #SSLshell
+sshell 614/udp
+ginad 634/tcp
+ginad 634/udp
+ldaps 636/tcp sldap #ldap protocol over TLS/SSL
+ldaps 636/udp sldap
+mdqs 666/tcp
+mdqs 666/udp
+#PROBLEMS!===============================================
+doom 666/tcp #doom Id Software
+doom 666/udp #doom Id Software
+#PROBLEMS!===============================================
+acap 674/tcp #Application Configuration Access Protocol
+acap 674/udp #Application Configuration Access Protocol
+elcsd 704/tcp #errlog copy/server daemon
+elcsd 704/udp #errlog copy/server daemon
+entrustmanager 709/tcp #EntrustManager
+entrustmanager 709/udp #EntrustManager
+netviewdm1 729/tcp #IBM NetView DM/6000 Server/Client
+netviewdm1 729/udp #IBM NetView DM/6000 Server/Client
+netviewdm2 730/tcp #IBM NetView DM/6000 send/tcp
+netviewdm2 730/udp #IBM NetView DM/6000 send/tcp
+netviewdm3 731/tcp #IBM NetView DM/6000 receive/tcp
+netviewdm3 731/udp #IBM NetView DM/6000 receive/tcp
+netgw 741/tcp
+netgw 741/udp
+netrcs 742/tcp #Network based Rev. Cont. Sys.
+netrcs 742/udp #Network based Rev. Cont. Sys.
+flexlm 744/tcp #Flexible License Manager
+flexlm 744/udp #Flexible License Manager
+fujitsu-dev 747/tcp #Fujitsu Device Control
+fujitsu-dev 747/udp #Fujitsu Device Control
+ris-cm 748/tcp #Russell Info Sci Calendar Manager
+ris-cm 748/udp #Russell Info Sci Calendar Manager
+kerberos-adm 749/tcp #Kerberos administration (v5)
+kerberos-adm 749/udp #Kerberos administration (v5)
+kerberos-iv 750/udp kdc # Kerberos (v4)
+kerberos-iv 750/tcp kdc # Kerberos (v4)
+#PROBLEMS!========================================================
+#rfile 750/tcp
+#loadav 750/udp
+#PROBLEMS!========================================================
+kerberos_master 751/tcp # Kerberos `kadmin' (v4)
+kerberos_master 751/udp # Kerberos `kadmin' (v4)
+#PROBLEMS!========================================================
+pump 751/tcp
+pump 751/udp
+#PROBLEMS!========================================================
+qrh 752/tcp
+qrh 752/udp
+rrh 753/tcp
+rrh 753/udp
+krb_prop 754/tcp krb5_prop # kerberos/v5 server propagation
+#PROBLEMS!========================================================
+tell 754/tcp #send
+#PROBLEMS!========================================================
+tell 754/udp #send
+nlogin 758/tcp
+nlogin 758/udp
+con 759/tcp
+con 759/udp
+krbupdate 760/tcp kreg # Kerberos (v4) registration
+#PROBLEMS!========================================================
+ns 760/tcp
+#PROBLEMS!========================================================
+ns 760/udp
+kpasswd 761/tcp kpwd # Kerberos (v4) "passwd"
+#PROBLEMS!========================================================
+rxe 761/tcp
+#PROBLEMS!========================================================
+rxe 761/udp
+quotad 762/tcp
+quotad 762/udp
+cycleserv 763/tcp
+cycleserv 763/udp
+omserv 764/tcp
+omserv 764/udp
+webster 765/tcp
+webster 765/udp
+phonebook 767/tcp #phone
+phonebook 767/udp #phone
+vid 769/tcp
+vid 769/udp
+cadlock 770/tcp
+cadlock 770/udp
+rtip 771/tcp
+rtip 771/udp
+cycleserv2 772/tcp
+cycleserv2 772/udp
+submit 773/tcp
+notify 773/udp
+rpasswd 774/tcp
+acmaint_dbd 774/udp
+entomb 775/tcp
+acmaint_transd 775/udp
+wpages 776/tcp
+wpages 776/udp
+wpgs 780/tcp
+wpgs 780/udp
+concert 786/tcp
+concert 786/udp
+mdbs_daemon 800/tcp
+mdbs_daemon 800/udp
+device 801/tcp
+device 801/udp
+supfilesrv 871/tcp # for SUP
+rsync 873/tcp
+rsync 873/udp
+accessbuilder 888/tcp
+accessbuilder 888/udp
+swat 901/tcp # samba web configuration tool
+ftps-data 989/tcp # ftp protocol, data, over TLS/SSL
+ftps-data 989/udp
+ftps 990/tcp # ftp protocol, control, over TLS/SSL
+ftps 990/udp
+telnets 992/tcp # telnet protocol over TLS/SSL
+telnets 992/udp
+imaps 993/tcp # imap4 protocol over TLS/SSL
+imaps 993/udp
+ircs 994/tcp # irc protocol over TLS/SSL
+ircs 994/udp
+pop3s 995/tcp spop3 # pop3 protocol over TLS/SSL
+pop3s 995/udp spop3
+vsinet 996/tcp
+vsinet 996/udp
+maitrd 997/tcp
+maitrd 997/udp
+busboy 998/tcp
+puparp 998/udp
+garcon 999/tcp
+applix 999/udp #Applix ac
+puprouter 999/tcp
+puprouter 999/udp
+cadlock 1000/tcp
+ock 1000/udp
+#
+# REGISTERED PORT NUMBERS
+#
+blackjack 1025/tcp #network blackjack
+blackjack 1025/udp #network blackjack
+iad1 1030/tcp #BBN IAD
+iad1 1030/udp #BBN IAD
+iad2 1031/tcp #BBN IAD
+iad2 1031/udp #BBN IAD
+iad3 1032/tcp #BBN IAD
+iad3 1032/udp #BBN IAD
+nim 1058/tcp
+nim 1058/udp
+nimreg 1059/tcp
+nimreg 1059/udp
+instl_boots 1067/tcp #Installation Bootstrap Proto. Serv.
+instl_boots 1067/udp #Installation Bootstrap Proto. Serv.
+instl_bootc 1068/tcp #Installation Bootstrap Proto. Cli.
+instl_bootc 1068/udp #Installation Bootstrap Proto. Cli.
+socks 1080/tcp
+socks 1080/udp
+ansoft-lm-1 1083/tcp #Anasoft License Manager
+ansoft-lm-1 1083/udp #Anasoft License Manager
+ansoft-lm-2 1084/tcp #Anasoft License Manager
+ansoft-lm-2 1084/udp #Anasoft License Manager
+kpop 1109/tcp #Unofficial
+kpop 1109/udp #Unofficial
+nfsd-status 1110/tcp #Cluster status info
+nfsd-keepalive 1110/udp #Client status info
+supfiledbg 1127/tcp # for SUP
+nfa 1155/tcp #Network File Access
+nfa 1155/udp #Network File Access
+phone 1167/udp #conference calling
+skkserv 1178/tcp #SKK (kanji input)
+lupa 1212/tcp
+lupa 1212/udp
+nerv 1222/tcp #SNI R&D network
+nerv 1222/udp #SNI R&D network
+hermes 1248/tcp
+hermes 1248/udp
+healthd 1281/tcp #healthd
+healthd 1281/udp #healthd
+alta-ana-lm 1346/tcp #Alta Analytics License Manager
+alta-ana-lm 1346/udp #Alta Analytics License Manager
+bbn-mmc 1347/tcp #multi media conferencing
+bbn-mmc 1347/udp #multi media conferencing
+bbn-mmx 1348/tcp #multi media conferencing
+bbn-mmx 1348/udp #multi media conferencing
+sbook 1349/tcp #Registration Network Protocol
+sbook 1349/udp #Registration Network Protocol
+editbench 1350/tcp #Registration Network Protocol
+editbench 1350/udp #Registration Network Protocol
+equationbuilder 1351/tcp #Digital Tool Works (MIT)
+equationbuilder 1351/udp #Digital Tool Works (MIT)
+lotusnote 1352/tcp #Lotus Note
+lotusnote 1352/udp #Lotus Note
+relief 1353/tcp #Relief Consulting
+relief 1353/udp #Relief Consulting
+rightbrain 1354/tcp #RightBrain Software
+rightbrain 1354/udp #RightBrain Software
+intuitive-edge 1355/tcp #Intuitive Edge
+intuitive-edge 1355/udp #Intuitive Edge
+cuillamartin 1356/tcp #CuillaMartin Company
+cuillamartin 1356/udp #CuillaMartin Company
+pegboard 1357/tcp #Electronic PegBoard
+pegboard 1357/udp #Electronic PegBoard
+connlcli 1358/tcp
+connlcli 1358/udp
+ftsrv 1359/tcp
+ftsrv 1359/udp
+mimer 1360/tcp
+mimer 1360/udp
+linx 1361/tcp
+linx 1361/udp
+timeflies 1362/tcp
+timeflies 1362/udp
+ndm-requester 1363/tcp #Network DataMover Requester
+ndm-requester 1363/udp #Network DataMover Requester
+ndm-server 1364/tcp #Network DataMover Server
+ndm-server 1364/udp #Network DataMover Server
+adapt-sna 1365/tcp #Network Software Associates
+adapt-sna 1365/udp #Network Software Associates
+netware-csp 1366/tcp #Novell NetWare Comm Service Platform
+netware-csp 1366/udp #Novell NetWare Comm Service Platform
+dcs 1367/tcp
+dcs 1367/udp
+screencast 1368/tcp
+screencast 1368/udp
+gv-us 1369/tcp #GlobalView to Unix Shell
+gv-us 1369/udp #GlobalView to Unix Shell
+us-gv 1370/tcp #Unix Shell to GlobalView
+us-gv 1370/udp #Unix Shell to GlobalView
+fc-cli 1371/tcp #Fujitsu Config Protocol
+fc-cli 1371/udp #Fujitsu Config Protocol
+fc-ser 1372/tcp #Fujitsu Config Protocol
+fc-ser 1372/udp #Fujitsu Config Protocol
+chromagrafx 1373/tcp
+chromagrafx 1373/udp
+molly 1374/tcp #EPI Software Systems
+molly 1374/udp #EPI Software Systems
+bytex 1375/tcp
+bytex 1375/udp
+ibm-pps 1376/tcp #IBM Person to Person Software
+ibm-pps 1376/udp #IBM Person to Person Software
+cichlid 1377/tcp #Cichlid License Manager
+cichlid 1377/udp #Cichlid License Manager
+elan 1378/tcp #Elan License Manager
+elan 1378/udp #Elan License Manager
+dbreporter 1379/tcp #Integrity Solutions
+dbreporter 1379/udp #Integrity Solutions
+telesis-licman 1380/tcp #Telesis Network License Manager
+telesis-licman 1380/udp #Telesis Network License Manager
+apple-licman 1381/tcp #Apple Network License Manager
+apple-licman 1381/udp #Apple Network License Manager
+#udt_os 1382/tcp
+#udt_os 1382/udp
+gwha 1383/tcp #GW Hannaway Network License Manager
+gwha 1383/udp #GW Hannaway Network License Manager
+os-licman 1384/tcp #Objective Solutions License Manager
+os-licman 1384/udp #Objective Solutions License Manager
+atex_elmd 1385/tcp #Atex Publishing License Manager
+atex_elmd 1385/udp #Atex Publishing License Manager
+checksum 1386/tcp #CheckSum License Manager
+checksum 1386/udp #CheckSum License Manager
+cadsi-lm 1387/tcp #Computer Aided Design Software Inc LM
+cadsi-lm 1387/udp #Computer Aided Design Software Inc LM
+objective-dbc 1388/tcp #Objective Solutions DataBase Cache
+objective-dbc 1388/udp #Objective Solutions DataBase Cache
+iclpv-dm 1389/tcp #Document Manager
+iclpv-dm 1389/udp #Document Manager
+iclpv-sc 1390/tcp #Storage Controller
+iclpv-sc 1390/udp #Storage Controller
+iclpv-sas 1391/tcp #Storage Access Server
+iclpv-sas 1391/udp #Storage Access Server
+iclpv-pm 1392/tcp #Print Manager
+iclpv-pm 1392/udp #Print Manager
+iclpv-nls 1393/tcp #Network Log Server
+iclpv-nls 1393/udp #Network Log Server
+iclpv-nlc 1394/tcp #Network Log Client
+iclpv-nlc 1394/udp #Network Log Client
+iclpv-wsm 1395/tcp #PC Workstation Manager software
+iclpv-wsm 1395/udp #PC Workstation Manager software
+dvl-activemail 1396/tcp #DVL Active Mail
+dvl-activemail 1396/udp #DVL Active Mail
+audio-activmail 1397/tcp #Audio Active Mail
+audio-activmail 1397/udp #Audio Active Mail
+video-activmail 1398/tcp #Video Active Mail
+video-activmail 1398/udp #Video Active Mail
+cadkey-licman 1399/tcp #Cadkey License Manager
+cadkey-licman 1399/udp #Cadkey License Manager
+cadkey-tablet 1400/tcp #Cadkey Tablet Daemon
+cadkey-tablet 1400/udp #Cadkey Tablet Daemon
+goldleaf-licman 1401/tcp #Goldleaf License Manager
+goldleaf-licman 1401/udp #Goldleaf License Manager
+prm-sm-np 1402/tcp #Prospero Resource Manager
+prm-sm-np 1402/udp #Prospero Resource Manager
+prm-nm-np 1403/tcp #Prospero Resource Manager
+prm-nm-np 1403/udp #Prospero Resource Manager
+igi-lm 1404/tcp #Infinite Graphics License Manager
+igi-lm 1404/udp #Infinite Graphics License Manager
+ibm-res 1405/tcp #IBM Remote Execution Starter
+ibm-res 1405/udp #IBM Remote Execution Starter
+netlabs-lm 1406/tcp #NetLabs License Manager
+netlabs-lm 1406/udp #NetLabs License Manager
+dbsa-lm 1407/tcp #DBSA License Manager
+dbsa-lm 1407/udp #DBSA License Manager
+sophia-lm 1408/tcp #Sophia License Manager
+sophia-lm 1408/udp #Sophia License Manager
+here-lm 1409/tcp #Here License Manager
+here-lm 1409/udp #Here License Manager
+hiq 1410/tcp #HiQ License Manager
+hiq 1410/udp #HiQ License Manager
+af 1411/tcp #AudioFile
+af 1411/udp #AudioFile
+innosys 1412/tcp
+innosys 1412/udp
+innosys-acl 1413/tcp
+innosys-acl 1413/udp
+ibm-mqseries 1414/tcp #IBM MQSeries
+ibm-mqseries 1414/udp #IBM MQSeries
+dbstar 1415/tcp
+dbstar 1415/udp
+novell-lu6.2 1416/tcp #Novell LU6.2
+novell-lu6.2 1416/udp #Novell LU6.2
+timbuktu-srv1 1417/tcp #Timbuktu Service 1 Port
+timbuktu-srv1 1417/udp #Timbuktu Service 1 Port
+timbuktu-srv2 1418/tcp #Timbuktu Service 2 Port
+timbuktu-srv2 1418/udp #Timbuktu Service 2 Port
+timbuktu-srv3 1419/tcp #Timbuktu Service 3 Port
+timbuktu-srv3 1419/udp #Timbuktu Service 3 Port
+timbuktu-srv4 1420/tcp #Timbuktu Service 4 Port
+timbuktu-srv4 1420/udp #Timbuktu Service 4 Port
+gandalf-lm 1421/tcp #Gandalf License Manager
+gandalf-lm 1421/udp #Gandalf License Manager
+autodesk-lm 1422/tcp #Autodesk License Manager
+autodesk-lm 1422/udp #Autodesk License Manager
+essbase 1423/tcp #Essbase Arbor Software
+essbase 1423/udp #Essbase Arbor Software
+hybrid 1424/tcp #Hybrid Encryption Protocol
+hybrid 1424/udp #Hybrid Encryption Protocol
+zion-lm 1425/tcp #Zion Software License Manager
+zion-lm 1425/udp #Zion Software License Manager
+sas-1 1426/tcp #Satellite-data Acquisition System 1
+sas-1 1426/udp #Satellite-data Acquisition System 1
+mloadd 1427/tcp #mloadd monitoring tool
+mloadd 1427/udp #mloadd monitoring tool
+informatik-lm 1428/tcp #Informatik License Manager
+informatik-lm 1428/udp #Informatik License Manager
+nms 1429/tcp #Hypercom NMS
+nms 1429/udp #Hypercom NMS
+tpdu 1430/tcp #Hypercom TPDU
+tpdu 1430/udp #Hypercom TPDU
+rgtp 1431/tcp #Reverse Gossip Transport
+rgtp 1431/udp #Reverse Gossip Transport
+blueberry-lm 1432/tcp #Blueberry Software License Manager
+blueberry-lm 1432/udp #Blueberry Software License Manager
+ms-sql-s 1433/tcp #Microsoft-SQL-Server
+ms-sql-s 1433/udp #Microsoft-SQL-Server
+ms-sql-m 1434/tcp #Microsoft-SQL-Monitor
+ms-sql-m 1434/udp #Microsoft-SQL-Monitor
+ibm-cics 1435/tcp
+ibm-cics 1435/udp
+sas-2 1436/tcp #Satellite-data Acquisition System 2
+sas-2 1436/udp #Satellite-data Acquisition System 2
+tabula 1437/tcp
+tabula 1437/udp
+eicon-server 1438/tcp #Eicon Security Agent/Server
+eicon-server 1438/udp #Eicon Security Agent/Server
+eicon-x25 1439/tcp #Eicon X25/SNA Gateway
+eicon-x25 1439/udp #Eicon X25/SNA Gateway
+eicon-slp 1440/tcp #Eicon Service Location Protocol
+eicon-slp 1440/udp #Eicon Service Location Protocol
+cadis-1 1441/tcp #Cadis License Management
+cadis-1 1441/udp #Cadis License Management
+cadis-2 1442/tcp #Cadis License Management
+cadis-2 1442/udp #Cadis License Management
+ies-lm 1443/tcp #Integrated Engineering Software
+ies-lm 1443/udp #Integrated Engineering Software
+marcam-lm 1444/tcp #Marcam License Management
+marcam-lm 1444/udp #Marcam License Management
+proxima-lm 1445/tcp #Proxima License Manager
+proxima-lm 1445/udp #Proxima License Manager
+ora-lm 1446/tcp #Optical Research Associates License Manager
+ora-lm 1446/udp #Optical Research Associates License Manager
+apri-lm 1447/tcp #Applied Parallel Research LM
+apri-lm 1447/udp #Applied Parallel Research LM
+oc-lm 1448/tcp #OpenConnect License Manager
+oc-lm 1448/udp #OpenConnect License Manager
+peport 1449/tcp
+peport 1449/udp
+dwf 1450/tcp #Tandem Distributed Workbench Facility
+dwf 1450/udp #Tandem Distributed Workbench Facility
+infoman 1451/tcp #IBM Information Management
+infoman 1451/udp #IBM Information Management
+gtegsc-lm 1452/tcp #GTE Government Systems License Man
+gtegsc-lm 1452/udp #GTE Government Systems License Man
+genie-lm 1453/tcp #Genie License Manager
+genie-lm 1453/udp #Genie License Manager
+interhdl_elmd 1454/tcp #interHDL License Manager
+interhdl_elmd 1454/udp #interHDL License Manager
+esl-lm 1455/tcp #ESL License Manager
+esl-lm 1455/udp #ESL License Manager
+dca 1456/tcp
+dca 1456/udp
+valisys-lm 1457/tcp #Valisys License Manager
+valisys-lm 1457/udp #Valisys License Manager
+nrcabq-lm 1458/tcp #Nichols Research Corp.
+nrcabq-lm 1458/udp #Nichols Research Corp.
+proshare1 1459/tcp #Proshare Notebook Application
+proshare1 1459/udp #Proshare Notebook Application
+proshare2 1460/tcp #Proshare Notebook Application
+proshare2 1460/udp #Proshare Notebook Application
+ibm_wrless_lan 1461/tcp #IBM Wireless LAN
+ibm_wrless_lan 1461/udp #IBM Wireless LAN
+world-lm 1462/tcp #World License Manager
+world-lm 1462/udp #World License Manager
+nucleus 1463/tcp
+nucleus 1463/udp
+msl_lmd 1464/tcp #MSL License Manager
+msl_lmd 1464/udp #MSL License Manager
+pipes 1465/tcp #Pipes Platform
+pipes 1465/udp #Pipes Platform mfarlin@peerlogic.com
+oceansoft-lm 1466/tcp #Ocean Software License Manager
+oceansoft-lm 1466/udp #Ocean Software License Manager
+csdmbase 1467/tcp
+csdmbase 1467/udp
+csdm 1468/tcp
+csdm 1468/udp
+aal-lm 1469/tcp #Active Analysis Limited License Manager
+aal-lm 1469/udp #Active Analysis Limited License Manager
+uaiact 1470/tcp #Universal Analytics
+uaiact 1470/udp #Universal Analytics
+csdmbase 1471/tcp
+csdmbase 1471/udp
+csdm 1472/tcp
+csdm 1472/udp
+openmath 1473/tcp
+openmath 1473/udp
+telefinder 1474/tcp
+telefinder 1474/udp
+taligent-lm 1475/tcp #Taligent License Manager
+taligent-lm 1475/udp #Taligent License Manager
+clvm-cfg 1476/tcp
+clvm-cfg 1476/udp
+ms-sna-server 1477/tcp
+ms-sna-server 1477/udp
+ms-sna-base 1478/tcp
+ms-sna-base 1478/udp
+dberegister 1479/tcp
+dberegister 1479/udp
+pacerforum 1480/tcp
+pacerforum 1480/udp
+airs 1481/tcp
+airs 1481/udp
+miteksys-lm 1482/tcp #Miteksys License Manager
+miteksys-lm 1482/udp #Miteksys License Manager
+afs 1483/tcp #AFS License Manager
+afs 1483/udp #AFS License Manager
+confluent 1484/tcp #Confluent License Manager
+confluent 1484/udp #Confluent License Manager
+lansource 1485/tcp
+lansource 1485/udp
+nms_topo_serv 1486/tcp
+nms_topo_serv 1486/udp
+localinfosrvr 1487/tcp
+localinfosrvr 1487/udp
+docstor 1488/tcp
+docstor 1488/udp
+dmdocbroker 1489/tcp
+dmdocbroker 1489/udp
+insitu-conf 1490/tcp
+insitu-conf 1490/udp
+anynetgateway 1491/tcp
+anynetgateway 1491/udp
+stone-design-1 1492/tcp
+stone-design-1 1492/udp
+netmap_lm 1493/tcp
+netmap_lm 1493/udp
+ica 1494/tcp
+ica 1494/udp
+cvc 1495/tcp
+cvc 1495/udp
+liberty-lm 1496/tcp
+liberty-lm 1496/udp
+rfx-lm 1497/tcp
+rfx-lm 1497/udp
+watcom-sql 1498/tcp
+watcom-sql 1498/udp
+fhc 1499/tcp #Federico Heinz Consultora
+fhc 1499/udp #Federico Heinz Consultora
+vlsi-lm 1500/tcp #VLSI License Manager
+vlsi-lm 1500/udp #VLSI License Manager
+sas-3 1501/tcp #Satellite-data Acquisition System 3
+sas-3 1501/udp #Satellite-data Acquisition System 3
+shivadiscovery 1502/tcp #Shiva
+shivadiscovery 1502/udp #Shiva
+imtc-mcs 1503/tcp #Databeam
+imtc-mcs 1503/udp #Databeam
+evb-elm 1504/tcp #EVB Software Engineering License Manager
+evb-elm 1504/udp #EVB Software Engineering License Manager
+funkproxy 1505/tcp #Funk Software, Inc.
+funkproxy 1505/udp #Funk Software, Inc.
+utcd 1506/tcp #Universal Time daemon (utcd)
+utcd 1506/udp #Universal Time daemon (utcd)
+symplex 1507/tcp
+symplex 1507/udp
+diagmond 1508/tcp
+diagmond 1508/udp
+robcad-lm 1509/tcp #Robcad, Ltd. License Manager
+robcad-lm 1509/udp #Robcad, Ltd. License Manager
+mvx-lm 1510/tcp #Midland Valley Exploration Ltd. Lic. Man.
+mvx-lm 1510/udp #Midland Valley Exploration Ltd. Lic. Man.
+3l-l1 1511/tcp
+3l-l1 1511/udp
+wins 1512/tcp #Microsoft's Windows Internet Name Service
+wins 1512/udp #Microsoft's Windows Internet Name Service
+fujitsu-dtc 1513/tcp #Fujitsu Systems Business of America, Inc
+fujitsu-dtc 1513/udp #Fujitsu Systems Business of America, Inc
+fujitsu-dtcns 1514/tcp #Fujitsu Systems Business of America, Inc
+fujitsu-dtcns 1514/udp #Fujitsu Systems Business of America, Inc
+ifor-protocol 1515/tcp
+ifor-protocol 1515/udp
+vpad 1516/tcp #Virtual Places Audio data
+vpad 1516/udp #Virtual Places Audio data
+vpac 1517/tcp #Virtual Places Audio control
+vpac 1517/udp #Virtual Places Audio control
+vpvd 1518/tcp #Virtual Places Video data
+vpvd 1518/udp #Virtual Places Video data
+vpvc 1519/tcp #Virtual Places Video control
+vpvc 1519/udp #Virtual Places Video control
+atm-zip-office 1520/tcp #atm zip office
+atm-zip-office 1520/udp #atm zip office
+ncube-lm 1521/tcp #nCube License Manager
+ncube-lm 1521/udp #nCube License Manager
+rna-lm 1522/tcp #Ricardo North America License Manager
+rna-lm 1522/udp #Ricardo North America License Manager
+cichild-lm 1523/tcp
+cichild-lm 1523/udp
+ingreslock 1524/tcp #ingres
+ingreslock 1524/udp #ingres
+prospero-np 1525/tcp #Prospero Directory Service non-priv
+prospero-np 1525/udp #Prospero Directory Service non-priv
+#PROBLEMS!========================================================
+orasrv 1525/tcp #oracle
+orasrv 1525/udp #oracle
+#PROBLEMS!========================================================
+pdap-np 1526/tcp #Prospero Data Access Prot non-priv
+pdap-np 1526/udp #Prospero Data Access Prot non-priv
+tlisrv 1527/tcp #oracle
+tlisrv 1527/udp #oracle
+mciautoreg 1528/tcp
+mciautoreg 1528/udp
+support 1529/tcp prmsd gnatsd # cygnus bug tracker
+coauthor 1529/tcp #oracle
+coauthor 1529/udp #oracle
+rap-service 1530/tcp
+rap-service 1530/udp
+rap-listen 1531/tcp
+rap-listen 1531/udp
+miroconnect 1532/tcp
+miroconnect 1532/udp
+virtual-places 1533/tcp #Virtual Places Software
+virtual-places 1533/udp #Virtual Places Software
+micromuse-lm 1534/tcp
+micromuse-lm 1534/udp
+ampr-info 1535/tcp
+ampr-info 1535/udp
+ampr-inter 1536/tcp
+ampr-inter 1536/udp
+sdsc-lm 1537/tcp
+sdsc-lm 1537/udp
+3ds-lm 1538/tcp
+3ds-lm 1538/udp
+intellistor-lm 1539/tcp #Intellistor License Manager
+intellistor-lm 1539/udp #Intellistor License Manager
+rds 1540/tcp
+rds 1540/udp
+rds2 1541/tcp
+rds2 1541/udp
+gridgen-elmd 1542/tcp
+gridgen-elmd 1542/udp
+simba-cs 1543/tcp
+simba-cs 1543/udp
+aspeclmd 1544/tcp
+aspeclmd 1544/udp
+vistium-share 1545/tcp
+vistium-share 1545/udp
+abbaccuray 1546/tcp
+abbaccuray 1546/udp
+laplink 1547/tcp
+laplink 1547/udp
+axon-lm 1548/tcp #Axon License Manager
+axon-lm 1548/udp #Axon License Manager
+shivahose 1549/tcp #Shiva Hose
+shivasound 1549/udp #Shiva Sound
+3m-image-lm 1550/tcp #Image Storage license manager 3M Company
+3m-image-lm 1550/udp #Image Storage license manager 3M Company
+hecmtl-db 1551/tcp
+hecmtl-db 1551/udp
+pciarray 1552/tcp
+pciarray 1552/udp
+issd 1600/tcp
+issd 1600/udp
+# IMPORTANT NOTE: Ports 1645/1646 are the traditional radius ports used by
+# many vendors without obtaining official IANA assignment. The official
+# assignment is now ports 1812/1813 and users are encouraged to migrate
+# when possible to these new ports.
+#radius 1645/udp #RADIUS authentication protocol (old)
+#radacct 1646/udp #RADIUS accounting protocol (old)
+nkd 1650/tcp
+nkd 1650/udp
+shiva_confsrvr 1651/tcp
+shiva_confsrvr 1651/udp
+xnmp 1652/tcp
+xnmp 1652/udp
+netview-aix-1 1661/tcp
+netview-aix-1 1661/udp
+netview-aix-2 1662/tcp
+netview-aix-2 1662/udp
+netview-aix-3 1663/tcp
+netview-aix-3 1663/udp
+netview-aix-4 1664/tcp
+netview-aix-4 1664/udp
+netview-aix-5 1665/tcp
+netview-aix-5 1665/udp
+netview-aix-6 1666/tcp
+netview-aix-6 1666/udp
+netview-aix-7 1667/tcp
+netview-aix-7 1667/udp
+netview-aix-8 1668/tcp
+netview-aix-8 1668/udp
+netview-aix-9 1669/tcp
+netview-aix-9 1669/udp
+netview-aix-10 1670/tcp
+netview-aix-10 1670/udp
+netview-aix-11 1671/tcp
+netview-aix-11 1671/udp
+netview-aix-12 1672/tcp
+netview-aix-12 1672/udp
+pptp 1723/tcp #Point-to-point tunnelling protocol
+# IMPORTANT NOTE: See comments for ports 1645/1646 when using older equipment
+radius 1812/udp #RADIUS authentication protocol (IANA sanctioned)
+radacct 1813/udp #RADIUS accounting protocol (IANA sanctioned)
+licensedaemon 1986/tcp #cisco license management
+licensedaemon 1986/udp #cisco license management
+tr-rsrb-p1 1987/tcp #cisco RSRB Priority 1 port
+tr-rsrb-p1 1987/udp #cisco RSRB Priority 1 port
+tr-rsrb-p2 1988/tcp #cisco RSRB Priority 2 port
+tr-rsrb-p2 1988/udp #cisco RSRB Priority 2 port
+tr-rsrb-p3 1989/tcp #cisco RSRB Priority 3 port
+tr-rsrb-p3 1989/udp #cisco RSRB Priority 3 port
+#PROBLEMS!===================================================
+mshnet 1989/tcp #MHSnet system
+mshnet 1989/udp #MHSnet system
+#PROBLEMS!===================================================
+stun-p1 1990/tcp #cisco STUN Priority 1 port
+stun-p1 1990/udp #cisco STUN Priority 1 port
+stun-p2 1991/tcp #cisco STUN Priority 2 port
+stun-p2 1991/udp #cisco STUN Priority 2 port
+stun-p3 1992/tcp #cisco STUN Priority 3 port
+stun-p3 1992/udp #cisco STUN Priority 3 port
+#PROBLEMS!===================================================
+ipsendmsg 1992/tcp
+ipsendmsg 1992/udp
+#PROBLEMS!===================================================
+snmp-tcp-port 1993/tcp #cisco SNMP TCP port
+snmp-tcp-port 1993/udp #cisco SNMP TCP port
+stun-port 1994/tcp #cisco serial tunnel port
+stun-port 1994/udp #cisco serial tunnel port
+perf-port 1995/tcp #cisco perf port
+perf-port 1995/udp #cisco perf port
+tr-rsrb-port 1996/tcp #cisco Remote SRB port
+tr-rsrb-port 1996/udp #cisco Remote SRB port
+gdp-port 1997/tcp #cisco Gateway Discovery Protocol
+gdp-port 1997/udp #cisco Gateway Discovery Protocol
+x25-svc-port 1998/tcp #cisco X.25 service (XOT)
+x25-svc-port 1998/udp #cisco X.25 service (XOT)
+tcp-id-port 1999/tcp #cisco identification port
+tcp-id-port 1999/udp #cisco identification port
+callbook 2000/tcp
+callbook 2000/udp
+dc 2001/tcp
+wizard 2001/udp #curry
+globe 2002/tcp
+globe 2002/udp
+cfingerd 2003/tcp #GNU finger
+mailbox 2004/tcp
+emce 2004/udp #CCWS mm conf
+berknet 2005/tcp
+oracle 2005/udp
+invokator 2006/tcp
+raid-cc 2006/udp #raid
+dectalk 2007/tcp
+raid-am 2007/udp
+conf 2008/tcp
+terminaldb 2008/udp
+news 2009/tcp
+whosockami 2009/udp
+search 2010/tcp
+pipe_server 2010/udp
+raid-cc 2011/tcp #raid
+servserv 2011/udp
+ttyinfo 2012/tcp
+raid-ac 2012/udp
+raid-am 2013/tcp
+raid-cd 2013/udp
+troff 2014/tcp
+raid-sf 2014/udp
+cypress 2015/tcp
+raid-cs 2015/udp
+bootserver 2016/tcp
+bootserver 2016/udp
+cypress-stat 2017/tcp
+bootclient 2017/udp
+terminaldb 2018/tcp
+rellpack 2018/udp
+whosockami 2019/tcp
+about 2019/udp
+xinupageserver 2020/tcp
+xinupageserver 2020/udp
+servexec 2021/tcp
+xinuexpansion1 2021/udp
+down 2022/tcp
+xinuexpansion2 2022/udp
+xinuexpansion3 2023/tcp
+xinuexpansion3 2023/udp
+xinuexpansion4 2024/tcp
+xinuexpansion4 2024/udp
+ellpack 2025/tcp
+xribs 2025/udp
+scrabble 2026/tcp
+scrabble 2026/udp
+shadowserver 2027/tcp
+shadowserver 2027/udp
+submitserver 2028/tcp
+submitserver 2028/udp
+device2 2030/tcp
+device2 2030/udp
+blackboard 2032/tcp
+blackboard 2032/udp
+glogger 2033/tcp
+glogger 2033/udp
+scoremgr 2034/tcp
+scoremgr 2034/udp
+imsldoc 2035/tcp
+imsldoc 2035/udp
+objectmanager 2038/tcp
+objectmanager 2038/udp
+lam 2040/tcp
+lam 2040/udp
+interbase 2041/tcp
+interbase 2041/udp
+isis 2042/tcp
+isis 2042/udp
+isis-bcast 2043/tcp
+isis-bcast 2043/udp
+rimsl 2044/tcp
+rimsl 2044/udp
+cdfunc 2045/tcp
+cdfunc 2045/udp
+sdfunc 2046/tcp
+sdfunc 2046/udp
+#dls 2047/tcp
+#dls 2047/udp
+dls-monitor 2048/tcp
+dls-monitor 2048/udp
+nfsd 2049/tcp nfs # NFS server daemon
+nfsd 2049/udp nfs # NFS server daemon
+#PROBLEMS!=============================================================
+#shilp 2049/tcp
+#shilp 2049/udp
+#PROBLEMS!=============================================================
+dlsrpn 2065/tcp #Data Link Switch Read Port Number
+dlsrpn 2065/udp #Data Link Switch Read Port Number
+dlswpn 2067/tcp #Data Link Switch Write Port Number
+dlswpn 2067/udp #Data Link Switch Write Port Number
+zephyr-clt 2103/udp #Zephyr serv-hm connection
+zephyr-hm 2104/udp #Zephyr hostmanager
+#PROBLEMS!=============================================================
+#zephyr-hm-srv 2105/udp #Zephyr hm-serv connection
+#PROBLEMS!=============================================================
+eklogin 2105/tcp #Kerberos (v4) encrypted rlogin
+eklogin 2105/udp #Kerberos (v4) encrypted rlogin
+ekshell 2106/tcp #Kerberos (v4) encrypted rshell
+ekshell 2106/udp #Kerberos (v4) encrypted rshell
+rkinit 2108/tcp #Kerberos (v4) remote initialization
+rkinit 2108/udp #Kerberos (v4) remote initialization
+ats 2201/tcp #Advanced Training System Program
+ats 2201/udp #Advanced Training System Program
+ivs-video 2232/tcp #IVS Video default
+ivs-video 2232/udp #IVS Video default
+ivsd 2241/tcp #IVS Daemon
+ivsd 2241/udp #IVS Daemon
+pehelp 2307/tcp
+pehelp 2307/udp
+cvspserver 2401/tcp #CVS network server
+cvspserver 2401/udp #CVS network server
+venus 2430/tcp #venus
+venus 2430/udp #venus
+venus-se 2431/tcp #venus-se
+venus-se 2431/udp #venus-se
+codasrv 2432/tcp #codasrv
+codasrv 2432/udp #codasrv
+codasrv-se 2433/tcp #codasrv-se
+codasrv-se 2433/udp #codasrv-se
+rtsserv 2500/tcp #Resource Tracking system server
+rtsserv 2500/udp #Resource Tracking system server
+rtsclient 2501/tcp #Resource Tracking system client
+rtsclient 2501/udp #Resource Tracking system client
+hp-3000-telnet 2564/tcp #HP 3000 NS/VT block mode telnet
+zebrasrv 2600/tcp #zebra service
+zebra 2601/tcp #zebra vty
+ripd 2602/tcp #RIPd vty
+ripngd 2603/tcp #RIPngd vty
+ospfd 2604/tcp #OSPFd vty
+bgpd 2605/tcp #BGPd vty
+ospf6d 2606/tcp #OSPF6d vty
+listen 2766/tcp #System V listener port
+www-dev 2784/tcp #world wide web - development
+www-dev 2784/udp #world wide web - development
+dict 2628/tcp #RFC 2229
+dict 2628/udp #RFC 2229
+NSWS 3049/tcp
+NSWS 3049/udp
+sj3 3086/tcp #SJ3 (kanji input)
+vmodem 3141/tcp
+vmodem 3141/udp
+ccmail 3264/tcp #cc:mail/lotus
+ccmail 3264/udp #cc:mail/lotus
+dec-notes 3333/tcp #DEC Notes
+dec-notes 3333/udp #DEC Notes
+rsvp-encap 3455/udp #RSVP encapsulated in UDP
+mapper-nodemgr 3984/tcp #MAPPER network node manager
+mapper-nodemgr 3984/udp #MAPPER network node manager
+mapper-mapethd 3985/tcp #MAPPER TCP/IP server
+mapper-mapethd 3985/udp #MAPPER TCP/IP server
+mapper-ws_ethd 3986/tcp #MAPPER workstation server
+mapper-ws_ethd 3986/udp #MAPPER workstation server
+bmap 3421/tcp #Bull Apprise portmapper
+bmap 3421/udp #Bull Apprise portmapper
+prsvp 3455/tcp #RSVP Port
+prsvp 3455/udp #RSVP Port
+vat 3456/tcp #VAT default data
+vat 3456/udp #VAT default data
+vat-control 3457/tcp #VAT default control
+vat-control 3457/udp #VAT default control
+udt_os 3900/tcp #Unidata UDT OS
+udt_os 3900/udp #Unidata UDT OS
+netcheque 4008/tcp #NetCheque accounting
+netcheque 4008/udp #NetCheque accounting
+lockd 4045/udp # NFS lock daemon/manager
+lockd 4045/tcp
+nuts_dem 4132/tcp #NUTS Daemon
+nuts_dem 4132/udp #NUTS Daemon
+nuts_bootp 4133/tcp #NUTS Bootp Server
+nuts_bootp 4133/udp #NUTS Bootp Server
+rwhois 4321/tcp #Remote Who Is
+rwhois 4321/udp #Remote Who Is
+unicall 4343/tcp
+unicall 4343/udp
+krb524 4444/tcp
+krb524 4444/udp
+# PROBLEM krb524 assigned the port,
+# PROBLEM nv used it without an assignment
+nv-video 4444/tcp #NV Video default
+nv-video 4444/udp #NV Video default
+sae-urn 4500/tcp
+sae-urn 4500/udp
+fax 4557/tcp #FAX transmission service
+hylafax 4559/tcp #HylaFAX client-server protocol
+rfa 4672/tcp #remote file access server
+rfa 4672/udp #remote file access server
+commplex-main 5000/tcp
+commplex-main 5000/udp
+commplex-link 5001/tcp
+commplex-link 5001/udp
+rfe 5002/tcp #radio free ethernet
+rfe 5002/udp #radio free ethernet
+telelpathstart 5010/tcp
+telelpathstart 5010/udp
+telelpathattack 5011/tcp
+telelpathattack 5011/udp
+mmcc 5050/tcp #multimedia conference control tool
+mmcc 5050/udp #multimedia conference control tool
+rmonitor_secure 5145/tcp
+rmonitor_secure 5145/udp
+aol 5190/tcp #America-Online
+aol 5190/udp #America-Online
+aol-1 5191/tcp #AmericaOnline1
+aol-1 5191/udp #AmericaOnline1
+aol-2 5192/tcp #AmericaOnline2
+aol-2 5192/udp #AmericaOnline2
+aol-3 5193/tcp #AmericaOnline3
+aol-3 5193/udp #AmericaOnline3
+jabber-client 5222/tcp #Jabber Client Connection
+jabber-client 5222/udp #Jabber Client Connection
+padl2sim 5236/tcp
+padl2sim 5236/udp
+jabber-server 5269/tcp #Jabber Server Connection
+jabber-server 5269/udp #Jabber Server Connection
+hacl-hb 5300/tcp # HA cluster heartbeat
+hacl-hb 5300/udp # HA cluster heartbeat
+hacl-gs 5301/tcp # HA cluster general services
+hacl-gs 5301/udp # HA cluster general services
+hacl-cfg 5302/tcp # HA cluster configuration
+hacl-cfg 5302/udp # HA cluster configuration
+hacl-probe 5303/tcp # HA cluster probing
+hacl-probe 5303/udp # HA cluster probing
+hacl-local 5304/tcp
+hacl-local 5304/udp
+hacl-test 5305/tcp
+hacl-test 5305/udp
+cfengine 5308/tcp
+cfengine 5308/udp
+postgresql 5432/tcp #PostgreSQL Database
+postgresql 5432/udp #PostgreSQL Database
+rplay 5555/udp
+canna 5680/tcp #Canna (Japanese Input)
+proshareaudio 5713/tcp #proshare conf audio
+proshareaudio 5713/udp #proshare conf audio
+prosharevideo 5714/tcp #proshare conf video
+prosharevideo 5714/udp #proshare conf video
+prosharedata 5715/tcp #proshare conf data
+prosharedata 5715/udp #proshare conf data
+prosharerequest 5716/tcp #proshare conf request
+prosharerequest 5716/udp #proshare conf request
+prosharenotify 5717/tcp #proshare conf notify
+prosharenotify 5717/udp #proshare conf notify
+cvsup 5999/tcp #CVSup file transfer/John Polstra/FreeBSD
+x11 6000/tcp #6000-6063 are assigned to X Window System
+x11 6000/udp
+x11-ssh 6010/tcp #Unofficial name, for convenience
+x11-ssh 6010/udp
+softcm 6110/tcp #HP SoftBench CM
+softcm 6110/udp #HP SoftBench CM
+spc 6111/tcp #HP SoftBench Sub-Process Control
+spc 6111/udp #HP SoftBench Sub-Process Control
+meta-corp 6141/tcp #Meta Corporation License Manager
+meta-corp 6141/udp #Meta Corporation License Manager
+aspentec-lm 6142/tcp #Aspen Technology License Manager
+aspentec-lm 6142/udp #Aspen Technology License Manager
+watershed-lm 6143/tcp #Watershed License Manager
+watershed-lm 6143/udp #Watershed License Manager
+statsci1-lm 6144/tcp #StatSci License Manager - 1
+statsci1-lm 6144/udp #StatSci License Manager - 1
+statsci2-lm 6145/tcp #StatSci License Manager - 2
+statsci2-lm 6145/udp #StatSci License Manager - 2
+lonewolf-lm 6146/tcp #Lone Wolf Systems License Manager
+lonewolf-lm 6146/udp #Lone Wolf Systems License Manager
+montage-lm 6147/tcp #Montage License Manager
+montage-lm 6147/udp #Montage License Manager
+ricardo-lm 6148/tcp #Ricardo North America License Manager
+ricardo-lm 6148/udp #Ricardo North America License Manager
+xdsxdm 6558/tcp
+xdsxdm 6558/udp
+ircd 6667/tcp #Internet Relay Chat (unoffical)
+acmsoda 6969/tcp
+acmsoda 6969/udp
+afs3-fileserver 7000/tcp #file server itself
+afs3-fileserver 7000/udp #file server itself
+afs3-callback 7001/tcp #callbacks to cache managers
+afs3-callback 7001/udp #callbacks to cache managers
+afs3-prserver 7002/tcp #users & groups database
+afs3-prserver 7002/udp #users & groups database
+afs3-vlserver 7003/tcp #volume location database
+afs3-vlserver 7003/udp #volume location database
+afs3-kaserver 7004/tcp #AFS/Kerberos authentication service
+afs3-kaserver 7004/udp #AFS/Kerberos authentication service
+afs3-volser 7005/tcp #volume management server
+afs3-volser 7005/udp #volume management server
+afs3-errors 7006/tcp #error interpretation service
+afs3-errors 7006/udp #error interpretation service
+afs3-bos 7007/tcp #basic overseer process
+afs3-bos 7007/udp #basic overseer process
+afs3-update 7008/tcp #server-to-server updater
+afs3-update 7008/udp #server-to-server updater
+afs3-rmtsys 7009/tcp #remote cache manager service
+afs3-rmtsys 7009/udp #remote cache manager service
+afs3-resserver 7010/tcp #MR-AFS residence server
+afs3-resserver 7010/udp #MR-AFS residence server
+afs3-remio 7011/tcp #MR-AFS remote IO server
+afs3-remio 7011/udp #MR-AFS remote IO server
+ups-onlinet 7010/tcp #onlinet uninterruptable power supplies
+ups-onlinet 7010/udp #onlinet uninterruptable power supplies
+font-service 7100/tcp #X Font Service
+font-service 7100/udp #X Font Service
+fodms 7200/tcp #FODMS FLIP
+fodms 7200/udp #FODMS FLIP
+dlip 7201/tcp
+dlip 7201/udp
+natd 8668/divert # Network Address Translation
+jetdirect 9100/tcp #HP JetDirect card
+man 9535/tcp
+man 9535/udp
+sd 9876/tcp #Session Director
+sd 9876/udp #Session Director
+amanda 10080/udp #Dump server control
+amandaidx 10082/tcp #Amanda indexing
+amidxtape 10083/tcp #Amanda tape indexing
+isode-dua 17007/tcp
+isode-dua 17007/udp
+biimenu 18000/tcp #Beckman Instruments, Inc.
+biimenu 18000/udp #Beckman Instruments, Inc.
+dbbrowse 47557/tcp #Databeam Corporation
+dbbrowse 47557/udp #Databeam Corporation
+wnn4 22273/tcp #Wnn4 (Japanese input)
+wnn4_Cn 22289/tcp #Wnn4 (Chinese input)
+wnn4_Tw 22321/tcp #Wnn4 (Taiwanse input)
+wnn4_Kr 22305/tcp #Wnn4 (Korean input)
+wnn6 22273/tcp #Wnn6 (Japanese input)
+wnn6_Cn 22289/tcp #Wnn6 (Chinese input)
+wnn6_Tw 22321/tcp #Wnn6 (Taiwanse input)
+wnn6_Kr 22305/tcp #Wnn6 (Korean input)
+wnn6_DS 26208/tcp #Wnn6 (Dserver)
diff --git a/etc/shells b/etc/shells
new file mode 100644
index 0000000..fe1e029
--- /dev/null
+++ b/etc/shells
@@ -0,0 +1,9 @@
+# $FreeBSD$
+#
+# List of acceptable shells for chpass(1).
+# Ftpd will not allow users to connect who are not using
+# one of these shells.
+
+/bin/sh
+/bin/csh
+/bin/tcsh
diff --git a/etc/sysctl.conf b/etc/sysctl.conf
new file mode 100644
index 0000000..398ce27
--- /dev/null
+++ b/etc/sysctl.conf
@@ -0,0 +1,6 @@
+# $FreeBSD$
+#
+# This file is read when going to multi-user and its contents piped thru
+# ``sysctl'' to adjust kernel values. ``man 5 sysctl.conf'' for details.
+#
+
diff --git a/etc/syslog.conf b/etc/syslog.conf
new file mode 100644
index 0000000..18d0fc8
--- /dev/null
+++ b/etc/syslog.conf
@@ -0,0 +1,30 @@
+# $FreeBSD$
+#
+# Spaces ARE valid field separators in this file. However,
+# other *nix-like systems still insist on using tabs as field
+# separators. If you are sharing this file between systems, you
+# may want to use only tabs as field separators here.
+# Consult the syslog.conf(5) manpage.
+*.err;kern.debug;auth.notice;mail.crit /dev/console
+*.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
+security.* /var/log/security
+auth.info;authpriv.info /var/log/auth.log
+mail.info /var/log/maillog
+lpr.info /var/log/lpd-errs
+cron.* /var/log/cron
+*.emerg *
+# uncomment this to log all writes to /dev/console to /var/log/console.log
+#console.info /var/log/console.log
+# uncomment this to enable logging of all log messages to /var/log/all.log
+# touch /var/log/all.log and chmod it to mode 600 before it will work
+#*.* /var/log/all.log
+# uncomment this to enable logging to a remote loghost named loghost
+#*.* @loghost
+# uncomment these if you're running inn
+# news.crit /var/log/news/news.crit
+# news.err /var/log/news/news.err
+# news.notice /var/log/news/news.notice
+!startslip
+*.* /var/log/slip.log
+!ppp
+*.* /var/log/ppp.log
diff --git a/etc/termcap.small b/etc/termcap.small
new file mode 100644
index 0000000..1f2ecdc
--- /dev/null
+++ b/etc/termcap.small
@@ -0,0 +1,250 @@
+# 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.88 (Berkeley) 4/30/91
+# $FreeBSD$
+#
+# for syscons
+# common entry without semigraphics
+cons25w|ansiw|ansi80x25-raw:\
+ :am:bs:NP:ms:pt:AX:eo:bw:ut:km:\
+ :co#80:li#25:pa#64:Co#8:it#8:\
+ :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\
+ :dc=\E[P:dl=\E[M:do=\E[B:bt=\E[Z:ho=\E[H:ic=\E[@:cb=\E[1K:\
+ :nd=\E[C:rs=\Ec:so=\E[7m:se=\E[27m:up=\E[A:cr=^M:ta=^I:\
+ :AF=\E[3%dm:AB=\E[4%dm:op=\E[39;49m:sc=\E7:rc=\E8:\
+ :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:k;=\E[V:F1=\E[W:F2=\E[X:K2=\E[E:nw=\E[E:ec=\E[%dX:\
+ :kb=^H:kh=\E[H:ku=\E[A:kd=\E[B:kl=\E[D:kr=\E[C:le=^H:sf=\E[S:sr=\E[T:\
+ :kN=\E[G:kP=\E[I:@7=\E[F:kI=\E[L:kD=\177:kB=\E[Z:\
+ :IC=\E[%d@:DC=\E[%dP:SF=\E[%dS:SR=\E[%dT:AL=\E[%dL:DL=\E[%dM:\
+ :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:cv=\E[%i%dd:ch=\E[%i%d`:\
+ :mb=\E[5m:md=\E[1m:mr=\E[7m:me=\E[m:bl=^G:\
+ :ve=\E[=S:vi=\E[=1S:vs=\E[=2S:
+# CP437 FreeBSD console with ACS support
+cons25|ansis|ansi80x25:\
+ :ac=l\332m\300k\277j\331u\264t\303v\301w\302q\304x\263n\305`^Da\260f\370g\361~\371.^Y-^Xh\261i^U0\333y\363z\362:\
+ :tc=cons25w:
+cons25-m|ansis-mono|ansi80x25-mono:\
+ :pa@:Co@:AF@:AB@:AX@:op@:us=\E[4m:ue=\E[24m:tc=cons25:
+cons30|ansi80x30:\
+ :li#30:tc=cons25:
+cons30-m|ansi80x30-mono:\
+ :li#30:tc=cons25-m:
+cons43|ansi80x43:\
+ :li#43:tc=cons25:
+cons43-m|ansi80x43-mono:\
+ :li#43:tc=cons25-m:
+cons50|ansil|ansi80x50:\
+ :li#50:tc=cons25:
+cons50-m|ansil-mono|ansi80x50-mono:\
+ :li#50:tc=cons25-m:
+cons60|ansi80x60:\
+ :li#60:tc=cons25:
+cons60-m|ansi80x60-mono:\
+ :li#60:tc=cons25-m:
+# KOI8-R/KOI8-U FreeBSD console with ACS support
+cons25r|cons25u|pc3r|ibmpc3r|cons25-koi8:\
+ :ac=q\200x\201m\204v\211j\205t\206n\212u\207l\202w\210k\203y\230z\231f\234~\225a\220h\2210\215:\
+ :tc=cons25w:
+cons25r-m|cons25u-m|pc3r-m|ibmpc3r-mono|cons25-koi8-mono:\
+ :pa@:Co@:AF@:AB@:AX@:op@:us=\E[4m:ue=\E[24m:tc=cons25r:
+cons30r|cons30u|cons30-koi8:\
+ :li#30:tc=cons25r:
+cons30r-m|cons30u-m|cons30-koi8-mono:\
+ :li#30:tc=cons25r-m:
+cons43r|cons43u|cons43-koi8:\
+ :li#43:tc=cons25r:
+cons43r-m|cons43u-m|cons43-koi8-mono:\
+ :li#43:tc=cons25r-m:
+cons50r|cons50u|cons50-koi8:\
+ :li#50:tc=cons25r:
+cons50r-m|cons50u-m|cons50-koi8-mono:\
+ :li#50:tc=cons25r-m:
+cons60r|cons60u|cons60-koi8:\
+ :li#60:tc=cons25r:
+cons60r-m|cons60u-m|cons60-koi8-mono:\
+ :li#60:tc=cons25r-m:
+# ISO 8859-2 FreeBSD console with ACS support
+cons25l2|cons25-iso8859-2:\
+ :ac=f\260i\247:\
+ :tc=cons25w:
+cons25l2-m|cons25-iso8859-2-mono:\
+ :pa@:Co@:AF@:AB@:AX@:op@:us=\E[4m:ue=\E[24m:tc=cons25l2:
+cons30l2|cons30-iso8859-2:\
+ :li#30:tc=cons25l2:
+cons30l2-m|cons30-iso8859-2-mono:\
+ :li#30:tc=cons25l2-m:
+cons43l2|cons43-iso8859-2:\
+ :li#43:tc=cons25l2:
+cons43l2-m|cons43-iso8859-2-mono:\
+ :li#43:tc=cons25l2-m:
+cons50l2|cons50-iso8859-2:\
+ :li#50:tc=cons25l2:
+cons50l2-m|cons50-iso8859-2-mono:\
+ :li#50:tc=cons25l2-m:
+cons60l2|cons60-iso8859-2:\
+ :li#60:tc=cons25l2:
+cons60l2-m|cons60-iso8859-2-mono:\
+ :li#60:tc=cons25l2-m:
+# ISO 8859-1 FreeBSD console with ACS support
+cons25l1|cons25-iso8859-1:\
+ :ac=f\260g\261}\243+\253,\273i\247:\
+ :tc=cons25w:
+cons25l1-m|cons25-iso8859-1-mono:\
+ :pa@:Co@:AF@:AB@:AX@:op@:us=\E[4m:ue=\E[24m:tc=cons25l1:
+cons30l1|cons30-iso8859-1:\
+ :li#30:tc=cons25l1:
+cons30l1-m|cons30-iso8859-1-mono:\
+ :li#30:tc=cons25l1-m:
+cons43l1|cons43-iso8859-1:\
+ :li#43:tc=cons25l1:
+cons43l1-m|cons43-iso8859-1-mono:\
+ :li#43:tc=cons25l1-m:
+cons50l1|cons50-iso8859-1:\
+ :li#50:tc=cons25l1:
+cons50l1-m|cons50-iso8859-1-mono:\
+ :li#50:tc=cons25l1-m:
+cons60l1|cons60-iso8859-1:\
+ :li#60:tc=cons25l1:
+cons60l1-m|cons60-iso8859-1-mono:\
+ :li#60:tc=cons25l1-m:
+# ISO 8859-7 FreeBSD console with ACS support
+cons25l7:cons25-iso8859-7:\
+ :ac=f\260g\261{\360}\243+\253,\273i\247:\
+ :tc=cons25w:
+cons25l7-m|cons25-iso8859-7-mono:\
+ :pa@:Co@:AF@:AB@:AX@:op@:us=\E[4m:ue=\E[24m:tc=cons25l7:
+cons30l7|cons30-iso8859-7:\
+ :li#30:tc=cons25l7:
+cons30l7-m|cons30-iso8859-7-mono:\
+ :li#30:tc=cons25l7-m:
+cons43l7|cons43-iso8859-7:\
+ :li#43:tc=cons25l7:
+cons43l7-m|cons43-iso8859-7-mono:\
+ :li#43:tc=cons25l7-m:
+cons50l7|cons50-iso8859-7:\
+ :li#50:tc=cons25l7:
+cons50l7-m|cons50-iso8859-7-mono:\
+ :li#50:tc=cons25l7-m:
+cons60l7|cons60-iso8859-7:\
+ :li#60:tc=cons25l7:
+cons60l7-m|cons60-iso8859-7-mono:\
+ :li#60:tc=cons25l7-m:
+#
+dosansi|ANSI.SYS standard crt:\
+ :am:bs:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:co#80:\
+ :do=\E[B:li#25:mi:nd=\E[C:\
+ :se=\E[m:so=\E[7m:up=\E[A:us=\E[4m:ue=\E[m:\
+ :md=\E[1m:mr=\E[7m:mb=\E[5m:me=\E[m:\
+ :kh=\EG:kb=^h:ku=\EH:kd=\EP:kl=\EK:kr=\EM:\
+ :k1=\E;:k2=\E<:k3=\E=:k4=\E>:k5=\E?:\
+ :k6=\E@:k7=\EA:k8=\EB:k9=\EC:k0=\ED:
+
+# The following is a version of the ibm-pc entry distributed with PC/IX,
+# (Interactive Systems' System 3 for the Big Blue), modified by Richard
+# McIntosh at UCB/CSM. The :pt: and :uc: have been removed from the original,
+# (the former is untrue, and the latter failed under UCB/man); standout and
+# underline modes have been added. Note: this entry describes the "native"
+# capabilities of the PC monochrome display, without ANY emulation; most
+# communications packages (but NOT PC/IX connect) do some kind of emulation.
+pc|ibmpc|ibm pc PC/IX:\
+ :li#24:co#80:am:bs:bw:eo:\
+ :cd=\E[J:ce=\E[K:cl=\Ec:cm=\E[%i%2;%2H:do=\E[B:ho=\E[;H:\
+ :nd=\E[C:up=\E[A:so=\E[7m:se=\E[0m:us=\E[4m:ue=\E[0m:
+pc3mono|IBM PC 386BSD Console with monochrome monitor:\
+ :so=\E[0;1r\E[m:tc=pc3:
+pc3|ibmpc3|IBM PC 386BSD Console:\
+ :Co#8:\
+ :DO=\E[%dB:\
+ :F1=\E[W:\
+ :F2=\E[X:\
+ :K1=\E[H:\
+ :K2=\E[I:\
+ :K3=\E[E:\
+ :K4=\E[F:\
+ :K5=\E[G:\
+ :LE=\E[%dD:\
+ :RI=\E[%dC:\
+ :Sb=\E[1;%dx:\
+ :Sf=\E[2;%dx:\
+ :UP=\E[%dA:\
+ :ac=l\332m\300k\277j\331u\264t\303v\301w\302q\304x\263n\305`^Da\260f\370g\361~\371.^Y-^Xh\261I^U0\333y\363z\362:\
+ :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=\E[B:\
+ :ho=\E[H:\
+ :is=\E[m:\
+ :it#8:\
+ :k;=\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:\
+ :@7=\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:\
+ :op=\E[x:\
+ :pa#64:\
+ :rs=\E[m:\
+ :se=\E[m:\
+ :sf=\E[S:\
+ :so=\E[7;1r\E[7m:\
+ :sr=\E[T:\
+ :ta=^I:\
+ :te=\E[m:\
+ :ti=\E[m:\
+ :up=\E[A:\
+ :ut:
diff --git a/etc/usbd.conf b/etc/usbd.conf
new file mode 100644
index 0000000..550bd26
--- /dev/null
+++ b/etc/usbd.conf
@@ -0,0 +1,54 @@
+# Configuration file the USB daemon.
+#
+# See usbd.conf(5) for the description of the format of the file.
+#
+# $FreeBSD$
+
+# Firmware download into the ActiveWire board. After the firmware download is
+# done the device detaches and reappears as something new and shiny automatically.
+#
+device "ActiveWire board, firmware download"
+ vendor 0x0854
+ product 0x0100
+ release 0x0000
+ attach "/usr/local/bin/ezdownload -f /usr/local/share/usb/firmware/0854.0100.0_01.hex ${DEVNAME}"
+
+# Firmware download for Entrega Serial DB25 adapter.
+#
+device "Entrega Serial with UART"
+ product 0x8001
+ vendor 0x1645
+ release 0x0101
+ attach "if ! kldstat -n usio > /dev/null 2>&1 ; then kldload usio; fi"
+ attach "/usr/sbin/ezdownload -v -f /usr/share/usb/firmware/1645.8001.0101 /dev/${DEVNAME}"
+
+# The entry below starts and stops dhclient when an ethernet device is inserted
+# Caveat: It does not support multiple interfaces (but neither does pccardd,
+# it shouldn't be too big a deal :-)
+#
+device "USB ethernet"
+ devname "[ack]ue[0-9]+"
+ attach "/etc/pccard_ether ${DEVNAME} start"
+ detach "/etc/pccard_ether ${DEVNAME} stop"
+
+# This entry starts the ColdSync tool in daemon mode. Make sure you have an up
+# to date /usr/local/etc/palms. We override the 'listen' settings for port and
+# type in /usr/local/etc/coldsync.conf.
+device "Handspring Visor"
+ devname "ugen[0-9]+"
+ vendor 0x082d
+ product 0x0100
+ release 0x0100
+ attach "/usr/local/bin/coldsync -md -p /dev/${DEVNAME} -t usb"
+
+# The entry below starts moused when a mouse is plugged in. Moused
+# stops automatically (actually it bombs :) when the device disappears.
+#
+device "Mouse"
+ devname "ums[0-9]+"
+ attach "/usr/sbin/moused -p /dev/${DEVNAME} -I /var/run/moused.${DEVNAME}.pid ; /usr/sbin/vidcontrol -m on"
+
+# The fallthrough entry: Nothing is specified, nothing is done. And it isn't
+# necessary at all :-). Just for pretty printing in debugging mode.
+#
+device "USB device"
OpenPOWER on IntegriCloud