From 40fbf55cf3e97b8a7610e9945ae9f90d4f6dbb30 Mon Sep 17 00:00:00 2001 From: Lionel Sambuc Date: Wed, 9 Oct 2013 16:28:17 +0200 Subject: [PATCH] Revert "MAKEDEV: Add mtree output, and ramdisk set." This reverts commit 4c87adc85c83ea5971ad647f4ee5d1d37625e30b. Change-Id: I469fbbe6f49802cb86d81b059cb454d967f47079 Reason: Introduces new device nodes and removes old devices nodes which where unintended at this point. --- commands/MAKEDEV/MAKEDEV.8 | 57 --- commands/MAKEDEV/MAKEDEV.sh | 733 +++++++++++++++--------------------- commands/MAKEDEV/Makefile | 2 +- etc/Makefile | 3 +- man/man8/MAKEDEV.8 | 53 +++ man/man8/Makefile | 2 +- 6 files changed, 356 insertions(+), 494 deletions(-) delete mode 100644 commands/MAKEDEV/MAKEDEV.8 mode change 100755 => 100644 commands/MAKEDEV/MAKEDEV.sh create mode 100644 man/man8/MAKEDEV.8 diff --git a/commands/MAKEDEV/MAKEDEV.8 b/commands/MAKEDEV/MAKEDEV.8 deleted file mode 100644 index 51e0063d8..000000000 --- a/commands/MAKEDEV/MAKEDEV.8 +++ /dev/null @@ -1,57 +0,0 @@ -.Dd October 4, 2013 -.Dt MAKEDEV 8 -.Os -.Sh NAME -.Nm MAKEDEV, DESCRIBE -.Nd make/describe device files -.Sh SYNOPSIS -.Nm MAKEDEV -.Op Fl n | Fl m -.Op Fl r | Fl s -.Op key ... -.Nm DESCRIBE -.Op device ... -.Sh DESCRIPTION -.Nm MAKEDEV -may be used to create the device files normally found in the /dev directory. -.Nm MAKEDEV -knows about all supported devices and will create them in the current -directory with the proper owner and mode. For many devices -.Nm MAKEDEV -will not only create the device you want, but also the devices related -to it that you will probably want too. Naming one floppy device will -create all floppy devices for the same drive for instance. -.Pp -The options are as follows: -.Bl -tag -width Xxxexcludexfilexx -.It Fl n -echo the commands it would execute when you call it without that flag. -.It Fl m -echo -.Nm mtree(8) -formatted lines instead of creating the device nodes. -.It Fl r -Restricted set of devices. This set is used when generating the ramdisk. -.It Fl s -Standard set of devices. This set is used when popluating /dev. -.El -.Pp -.Ar key -arguments are simply the names of the devices you want to create. Call -.Nm MAKEDEV -without arguments to see a list of keys that it understands. -.Pp -The command -.Nm DESCRIBE -will give you a one-line description of a given device. By default It -will list all devices in /dev. -.Sh "SEE ALSO" -.Xr dev 4 , -.Xr mknod 8 -.Sh BUGS -The eagerness of -.Nm MAKEDEV -to create devices may cause many "File exists" errors from -.Nm mknod . -.Sh AUTHORS -Written by Kees J. Bot (kjb@cs.vu.nl) and Lionel A. Sambuc (lionel@minix3.org) diff --git a/commands/MAKEDEV/MAKEDEV.sh b/commands/MAKEDEV/MAKEDEV.sh old mode 100755 new mode 100644 index 240e4deea..9a4c1a9cd --- a/commands/MAKEDEV/MAKEDEV.sh +++ b/commands/MAKEDEV/MAKEDEV.sh @@ -1,115 +1,43 @@ #!/bin/sh # # MAKEDEV 3.3 - Make special devices. Author: Kees J. Bot -# 3.4 - Rewritten to allow mtree line to be printed, Lionel A. Sambuc -# also use getopt for argument parsing -umask 077 -MTREE=false -STD=false -RAMDISK=false -ECHO= -EXIT=0 +case $1 in +-n) e=echo; shift ;; # Just echo when -n is given. +*) e= +esac -# console => lp tty log -# boot => kmem mem null ram zero -RAMDISK_DEVICES=" - boot - console - input - c0d0 c0d0p0 c0d0p0s0 c0d1 c0d1p0 c0d1p0s0 - c0d2 c0d2p0 c0d2p0s0 c0d3 c0d3p0 c0d3p0s0 - c0d4 c0d4p0 c0d4p0s0 c0d5 c0d5p0 c0d5p0s0 - c0d6 c0d6p0 c0d6p0s0 c0d7 c0d7p0 c0d7p0s0 - c1d0 c1d0p0 c1d0p0s0 c1d1 c1d1p0 c1d1p0s0 - c1d2 c1d2p0 c1d2p0s0 c1d3 c1d3p0 c1d3p0s0 - c1d4 c1d4p0 c1d4p0s0 c1d5 c1d5p0 c1d5p0s0 - c1d6 c1d6p0 c1d6p0s0 c1d7 c1d7p0 c1d7p0s0 - fd0 fd1 fd0p0 fd1p0 - ttyc1 ttyc2 ttyc3 tty00 tty01 tty02 tty03 - ttyp0 ttyp1 ttyp2 ttyp3 ttyp4 ttyp5 ttyp6 ttyp7 ttyp8 ttyp9 - ttypa ttypb ttypc ttypd ttype ttypf - ttyq0 ttyq1 ttyq2 ttyq3 ttyq4 ttyq5 ttyq6 ttyq7 ttyq8 ttyq9 - ttyqa ttyqb ttyqc ttyqd ttyqe ttyqf -" - -#eth => ip tcp udp -STD_DEVICES=" - ${RAMDISK_DEVICES} +case $#:$1 in +1:std) # Standard devices. + set -$- mem fd0 fd1 fd0p0 fd1p0 \ + c0d0 c0d0p0 c0d0p0s0 c0d1 c0d1p0 c0d1p0s0 \ + c0d2 c0d2p0 c0d2p0s0 c0d3 c0d3p0 c0d3p0s0 \ + c0d4 c0d4p0 c0d4p0s0 c0d5 c0d5p0 c0d5p0s0 \ + c0d6 c0d6p0 c0d6p0s0 c0d7 c0d7p0 c0d7p0s0 \ + c1d0 c1d0p0 c1d0p0s0 c1d1 c1d1p0 c1d1p0s0 \ + c1d2 c1d2p0 c1d2p0s0 c1d3 c1d3p0 c1d3p0s0 \ + c1d4 c1d4p0 c1d4p0s0 c1d5 c1d5p0 c1d5p0s0 \ + c1d6 c1d6p0 c1d6p0s0 c1d7 c1d7p0 c1d7p0s0 \ + tty ttyc1 ttyc2 ttyc3 tty00 tty01 tty02 tty03 \ + ttyp0 ttyp1 ttyp2 ttyp3 ttyp4 ttyp5 ttyp6 ttyp7 ttyp8 ttyp9 \ + ttypa ttypb ttypc ttypd ttype ttypf \ + ttyq0 ttyq1 ttyq2 ttyq3 ttyq4 ttyq5 ttyq6 ttyq7 ttyq8 ttyq9 \ + ttyqa ttyqb ttyqc ttyqd ttyqe ttyqf \ + eth klog random uds filter fbd hello fb0 \ + i2c-1 i2c-2 i2c-3 \ + eepromb1s50 eepromb1s51 eepromb1s52 eepromb1s53 \ + eepromb1s54 eepromb1s55 eepromb1s56 eepromb1s57 \ + eepromb2s50 eepromb2s51 eepromb2s52 eepromb2s53 \ + eepromb2s54 eepromb2s55 eepromb2s56 eepromb2s57 \ + eepromb3s50 eepromb3s51 eepromb3s52 eepromb3s53 \ + eepromb3s54 eepromb3s55 eepromb3s56 eepromb3s57 \ + tsl2550b1s39 tsl2550b2s39 tsl2550b3s39 \ + sht21b1s40 sht21b2s40 sht21b3s40 \ bmp085b1s77 bmp085b2s77 bmp085b3s77 - eepromb1s50 eepromb1s51 eepromb1s52 eepromb1s53 - eepromb1s54 eepromb1s55 eepromb1s56 eepromb1s57 - eepromb2s50 eepromb2s51 eepromb2s52 eepromb2s53 - eepromb2s54 eepromb2s55 eepromb2s56 eepromb2s57 - eepromb3s50 eepromb3s51 eepromb3s52 eepromb3s53 - eepromb3s54 eepromb3s55 eepromb3s56 eepromb3s57 - eth fb0 fbd filter hello - i2c-1 i2c-2 i2c-3 - klog random - sht21b1s40 sht21b2s40 sht21b3s40 - tsl2550b1s39 tsl2550b2s39 tsl2550b3s39 - uds - vnd0 vnd0p0 vnd0p0s0 vnd1 vnd1p0 vnd1p0s0 - vnd2 vnd3 vnd4 vnd5 vnd6 vnd7 -" - -#makedev ${dev} $type ${major} ${minor} ${uname} ${gname} ${permissions} [link_target] -#When called for a link, major and minor are ignored -makedev() -{ - # Check that all the arguments are there, we trust the caller to put - # values which make sens. - [ $# -eq 7 ] || [ $# -eq 8 ] || return 1; - - local _dev=$1 - local __type=$2 - local _major=$3 - local _minor=$4 - local _uname=$5 - local _gname=$6 - local _mode=$7 - - case ${__type} in - b)_type=block;; - c) _type=char;; - l) _type=link; _target=$8;; - *) return 2;; - esac - - if [ ${MTREE} = "yes" ] - then - if [ ${_type} = "link" ] - then - echo ./dev/${_dev} type=${_type} \ - uname=${_uname} gname=${_gname} mode=${_mode} \ - link=${_target} - else - echo ./dev/${_dev} type=${_type} \ - uname=${_uname} gname=${_gname} mode=${_mode} \ - device=native,${_major},${_minor} - fi - else - if [ ${_type} = "link" ] - then - ${ECHO} ln -f ${_target} ${_dev} - else - ${ECHO} mknod ${_dev} ${__type} ${_major} ${_minor} - ${ECHO} chmod ${_mode} ${_dev} - ${ECHO} chown ${_uname}:${_gname} ${_dev} - fi - fi -} - -# no_return usage() -usage() -{ - cat >&2 <&2 <&2 + ex=1 + esac done -if [ ${STD} = "yes" ] -then - DEVICES=${STD_DEVICES} -elif [ ${RAMDISK} = "yes" ] -then - DEVICES=${RAMDISK_DEVICES} -else - while [ $OPTIND -gt 1 ] - do - shift - OPTIND=$((${OPTIND} - 1)) - done - while [ ! -z "$1" ] - do - DEVICES="${DEVICES} $1" - shift - done -fi - -for dev in ${DEVICES} -do - # Reset the defaults - uname=root - gname=operator - permissions=600 - - case ${dev} in - c0*) major=3 ;; - c1*) major=8 ;; - c2*) major=10 ;; - c3*) major=12 ;; - vnd*) # Whole vnode disk devices. - disk=`expr ${dev} : '...\\(.\\)'` - major=`expr ${disk} + 56` - ;; - esac - - # The following is lexicographicaly ordered - case ${dev} in - audio|mixer) - # Audio devices. - makedev audio c 13 0 ${uname} ${gname} 666 - makedev mixer c 13 1 ${uname} ${gname} 666 - ;; - bmp085b[1-3]s77) - # Weather Cape: temperature & pressure sensor - bus=`expr ${dev} : 'bmp085b\\(.*\\)s77'` #bus number - major=`expr ${bus} + 52` - - makedev bmp085b${bus}s77 c ${major} 0 ${uname} ${gname} 444 - ;; - c[0-3]d[0-7]) - # Whole disk devices. - disk=`expr ${dev} : '...\\(.\\)'` - minor=`expr ${disk} '*' 5` - - makedev ${dev} b ${major} ${minor} ${uname} ${gname} ${permissions} - ;; - c[0-3]d[0-7]p[0-3]) - # Disk primary partitions. - prefix=`expr ${dev} : '\\(.*\\).'` - disk=`expr ${dev} : '...\\(.\\)'` - - for p in 0 1 2 3 - do - minor=`expr ${disk} '*' 5 + 1 + ${p}` - makedev ${prefix}${p} b ${major} ${minor} \ - ${uname} ${gname} ${permissions} - done - ;; - c[0-3]d[0-7]p[0-3]s[0-3]) - # Disk subpartition. - prefix=`expr ${dev} : '\\(.*\\)...'` - disk=`expr ${dev} : '...\\(.\\)'` - - for p in 0 1 2 3 - do - for s in 0 1 2 3 - do - minor=`expr 128 + ${disk} '*' 16 + ${p} '*' 4 + ${s}` - makedev ${prefix}${p}s${s} b ${major} ${minor} \ - ${uname} ${gname} ${permissions} - done - done - ;; - c[0-3]t[0-7]|c[0-3]t[0-7]n) - # Tape devices. - prefix=`expr ${dev} : '\\(....\\)'` - tape=`expr ${dev} : '...\\(.\\)'` - minor=`expr 64 + ${tape} '*' 2` - - makedev ${prefix}n c ${major} ${minor} ${uname} ${gname} 660 - makedev ${prefix} c ${major} `expr ${minor} + 1` ${uname} ${gname} 660 - ;; - console|lp|tty|log|video) - # Console, line printer, anonymous tty, diagnostics device, video. - makedev console c 4 0 ${uname} tty ${permissions} - makedev tty c 5 0 ${uname} ${gname} 666 - makedev lp c 6 0 daemon daemon 200 - makedev log c 4 15 ${uname} ${gname} 222 - makedev video c 4 125 ${uname} ${gname} ${permissions} - ;; - eepromb[1-3]s5[0-7]) - # cat24c256 driver - bus=`expr ${dev} : 'eepromb\\(.*\\)s'` - # configurable part of slave addr - slave_low=`expr ${dev} : 'eepromb.s5\\(.*\\)'` - major=`expr ${bus} '*' 8 + ${slave_low} + 17` - - makedev eepromb${bus}s5${slave_low} b ${major} 0 ${uname} ${gname} ${permissions} - ;; - eth|ip|tcp|udp|eth0|ip0|tcp0|udp0) - # TCP/IP devices. - makedev ipstat c 7 0 ${uname} ${gname} 666 - makedev eth0 c 7 1 ${uname} ${gname} ${permissions} - makedev ip0 c 7 2 ${uname} ${gname} ${permissions} - makedev tcp0 c 7 3 ${uname} ${gname} 666 - makedev udp0 c 7 4 ${uname} ${gname} 666 - - # Default interface - makedev eth c 7 1 ${uname} ${gname} ${permissions} - makedev ip c 7 2 ${uname} ${gname} ${permissions} - makedev tcp c 7 3 ${uname} ${gname} 666 - makedev udp c 7 4 ${uname} ${gname} 666 - ;; - fb0) - # Framebuffer driver - makedev ${dev} c 19 0 ${uname} ${gname} 644 - ;; - fbd) - # Faulty block device driver - makedev ${dev} b 14 0 ${uname} ${gname} ${permissions} - ;; - fd[0-3]) - # Floppy disk drive N has minor N. - minor=`expr ${dev} : '..\\(.\\)'` - - makedev ${dev} b 2 ${minor} ${uname} ${gname} 666 - ;; - fd[0-3]p[0-3]) - # Floppy disk partitions. - prefix=`expr ${dev} : '\\(.*\\).'` - drive=`expr ${dev} : '..\\(.\\)'` - - for p in 0 1 2 3 - do - minor=`expr 112 + ${drive} + ${p} '*' 4` - makedev ${prefix}${p} b 2 ${minor} \ - ${uname} ${gname} 666 - done - ;; - filter) - # Filter driver - makedev ${dev} b 11 0 ${uname} ${gname} ${permissions} - ;; - hello) - # Hello driver - makedev ${dev} c 17 0 ${uname} ${gname} 644 - ;; - i2c-[1-3]) - # i2c driver - bus=`expr ${dev} : '....\\(.*\\)'` # bus number - # least significant digit of major - major_low=`expr ${dev} : '....\\(.*\\)'` - major_low=`expr ${major_low} - 1` - - makedev "i2c-${bus}" c 2${major_low} 0 ${uname} ${gname} ${permissions} - ;; - input) - # Input server - makedev kbdmux c 64 0 ${uname} ${gname} ${permissions} - makedev mousemux c 64 64 ${uname} ${gname} ${permissions} - - for n in 0 1 2 3 - do - minor_keyboard=`expr ${n} + 1` - minor_mouse=`expr ${n} + 65` - - makedev kbd${n} c 64 ${minor_keyboard} ${uname} ${gname} ${permissions} - makedev mouse${n} c 64 ${minor_mouse} ${uname} ${gname} ${permissions} - done - ;; - klog) - # Logging device. - makedev ${dev} c 15 0 ${uname} ${gname} ${permissions} - ;; - pc[0-3]|at[0-3]|qd[0-3]|ps[0-3]|pat[0-3]|qh[0-3]|PS[0-3]) - # Obsolete density locked floppy disk drive n. - drive=`expr ${dev} : '.*\\(.\\)'` - minor=${drive} - - for prefix in pc at qd ps pat qh PS - do - makedev ${prefix}${drive} b 2 ${minor} \ - ${uname} ${gname} 666 - minor=`expr ${minor} + 4` - done - ;; - ram|mem|kmem|null|boot|zero|imgrd) - # Memory devices. - makedev ram b 1 0 ${uname} kmem ${permissions} - makedev mem c 1 1 ${uname} kmem 640 - makedev kmem c 1 2 ${uname} kmem 640 - makedev null c 1 3 ${uname} kmem 666 - makedev boot b 1 4 ${uname} kmem ${permissions} - makedev zero c 1 5 ${uname} kmem 644 - makedev imgrd b 1 6 ${uname} kmem ${permissions} - - for n in 0 1 2 3 4 5 - do - minor=`expr ${n} + 7` - - makedev ram${n} b 1 ${minor} ${uname} kmem ${permissions} - done - ;; - random|urandom) - # Random data generator. - makedev random c 16 0 ${uname} ${gname} 644 - makedev urandom c 16 0 ${uname} ${gname} 644 - ;; - sht21b[1-3]s40) - # Weather Cape: relative humidity & temperature sensor - bus=`expr ${dev} : 'sht21b\\(.*\\)s40'` - major=`expr ${bus} + 49` - - makedev sht21b${bus}s40 c ${major} 0 ${uname} ${gname} 444 - ;; - tsl2550b[1-3]s39) - # Weather Cape: ambient light sensor - bus=`expr ${dev} : 'tsl2550b\\(.*\\)s39'` - major=`expr ${bus} + 46` - - makedev tsl2550b${bus}s39 c ${major} 0 ${uname} ${gname} 444 - ;; - tty0[0-3]) - # Serial lines. - line=`expr ${dev} : '.*\\(.\\)'` - minor=`expr ${line} + 16` - - makedev ${dev} c 4 ${minor} ${uname} tty 666 - ;; - tty[p-s][0-9a-f]|pty[p-s][0-9a-f]) - # Pseudo ttys. - dev=`expr ${dev} : '...\\(..\\)'` - group=`expr ${dev} : '\\(.\\)'` - group=`echo ${group} | tr 'pqrs' '0123'` - pty=`expr ${dev} : '.\\(.\\)'` - case ${pty} in - [a-f]) pty=1`/bin/echo ${pty} | tr 'abcdef' '012345'` - esac - minor_tty=`expr ${group} '*' 16 + ${pty} + 128` - minor_pty=`expr ${group} '*' 16 + ${pty} + 192` - - makedev tty${dev} c 4 ${minor_tty} ${uname} tty 666 - makedev pty${dev} c 4 ${minor_pty} ${uname} tty 666 - ;; - ttyc[1-7]) - # Virtual consoles. - minor=`expr ${dev} : '....\\(.*\\)'` - - makedev ${dev} c 4 ${minor} ${uname} tty ${permissions} - ;; - uds) - # Unix domain sockets device - makedev ${dev} c 18 0 ${uname} ${gname} 666 - ;; - vnd[0-7]) - # Whole vnode disk devices. - makedev ${dev} b ${major} 0 ${uname} ${gname} ${permissions} - ;; - vnd[0-7]p[0-3]) - # Vnode disk primary partitions. - prefix=`expr ${dev} : '\\(.*\\).'` - disk=`expr ${dev} : '...\\(.\\)'` - - for p in 0 1 2 3 - do - minor=`expr 1 + ${p}` - - makedev ${prefix}${p} b ${major} ${minor} \ - ${uname} ${gname} ${permissions} - done - ;; - vnd[0-7]p[0-3]s[0-3]) - # Vnode disk subpartition. - prefix=`expr ${dev} : '\\(.*\\)...'` - disk=`expr ${dev} : '...\\(.\\)'` - - for p in 0 1 2 3 - do - for s in 0 1 2 3 - do - minor=`expr 128 + ${p} '*' 4 + ${s}` - - makedev ${prefix}${p}s${s} b ${major} ${minor} \ - ${uname} ${gname} ${permissions} - done - done - ;; - *) - echo "$0: don't know about ${dev}" >&2 - EXIT=1 - esac -done - -exit $EXIT +exit $ex diff --git a/commands/MAKEDEV/Makefile b/commands/MAKEDEV/Makefile index 9a9ac5d1d..93040ea76 100644 --- a/commands/MAKEDEV/Makefile +++ b/commands/MAKEDEV/Makefile @@ -1,4 +1,4 @@ SCRIPTS= MAKEDEV.sh -MAN= MAKEDEV.8 +MAN= .include diff --git a/etc/Makefile b/etc/Makefile index fc5f8a7fc..f070c3a3b 100644 --- a/etc/Makefile +++ b/etc/Makefile @@ -196,7 +196,8 @@ MAKEDEV: ${.CURDIR}/MAKEDEV.awk ${.CURDIR}/MAKEDEV.tmpl \ .else MAKEDEV: if [ ${MKUNPRIVED} != "yes" ]; then \ - cd ${DESTDIR}/dev && sh ${NETBSDSRCDIR}/commands/MAKEDEV/MAKEDEV.sh -s 2>/dev/null ;\ + cd ${DESTDIR}/dev && sh ${NETBSDSRCDIR}/commands/MAKEDEV/MAKEDEV.sh null ;\ + cd ${DESTDIR}/dev && sh ${NETBSDSRCDIR}/commands/MAKEDEV/MAKEDEV.sh std 2>/dev/null ;\ fi .endif # !defined(__MINIX) diff --git a/man/man8/MAKEDEV.8 b/man/man8/MAKEDEV.8 new file mode 100644 index 000000000..040ecb1f2 --- /dev/null +++ b/man/man8/MAKEDEV.8 @@ -0,0 +1,53 @@ +.TH MAKEDEV 8 +.SH NAME +MAKEDEV, DESCRIBE \- make/describe device files +.SH SYNOPSIS +.B MAKEDEV +.RB [ \-n ] +.IR key " ..." +.br +.B DESCRIBE +.RI [ device "] ..." +.SH DESCRIPTION +.B MAKEDEV +may be used to create the device files normally found in the +.B /dev +directory. The +.I key +arguments are simply the names of the devices you want. +.B MAKEDEV +knows about all supported devices and will create them in the current +directory with the proper owner and mode. For many devices +.B MAKEDEV +will not only create the device you want, but also the devices related +to it that you will probably want too. Naming one floppy device will +create all floppy devices for the same drive for instance. +.PP +Call +.B MAKEDEV +without arguments to see a list of keys that it understands. Then use +the +.B \-n +flag to make the script echo the commands it will execute the next time +when you call it without that flag. +.PP +The special key +.B std +must be given alone to +.BR MAKEDEV . +This key will create all standard devices. +.PP +The command +.B DESCRIBE +will give you a one-line description of a given device. It will by +default list all devices in +.BR /dev . +.SH "SEE ALSO" +.BR dev (4), +.BR mknod (8). +.SH BUGS +.BR MAKEDEV "'s" +eagerness to create devices may cause many "File exists" errors from +.BR mknod . +.SH AUTHOR +Kees J. Bot (kjb@cs.vu.nl) diff --git a/man/man8/Makefile b/man/man8/Makefile index 863517143..4b370ad98 100644 --- a/man/man8/Makefile +++ b/man/man8/Makefile @@ -2,7 +2,7 @@ MAN= add_route.8 backup.8 boot.8 btrace.8 \ cdprobe.8 chown.8 cleantmp.8 config.8 cron.8 \ dhcpd.8 diskctl.8 fbdctl.8 fdisk.8 \ getty.8 halt.8 hgfs.8 httpd.8 ifconfig.8 inet.8 init.8 \ - intr.8 irdpd.8 loadramdisk.8 \ + intr.8 irdpd.8 loadramdisk.8 MAKEDEV.8 \ netconf.8 newroot.8 nonamed.8 \ ossdevlinks.8 part.8 partition.8 \ poweroff.8 printroot.8 pr_routes.8 pwdauth.8 rarpd.8 \