summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorgreen <green@FreeBSD.org>1999-12-19 09:42:15 +0000
committergreen <green@FreeBSD.org>1999-12-19 09:42:15 +0000
commit48b97c099714f0a4bc351b6a73de9b06c23c6628 (patch)
tree7fb514c2bf151fafade1ee153b2ac555c1766193 /etc
parent119cfeff30039ede6411a41a8d6bd98394efcba6 (diff)
downloadFreeBSD-src-48b97c099714f0a4bc351b6a73de9b06c23c6628.zip
FreeBSD-src-48b97c099714f0a4bc351b6a73de9b06c23c6628.tar.gz
Remove all vestiges of /usr programs (awk, sed, grep...) from MAKEDEV.
MAKEDEV can now run (with /sbin/chown and /bin/chgrp, still) without any /usr. The default PATH for MAKEDEV is now "/sbin:/bin" to prevent against further spammage of /usr programs in MAKEDEV. In the event of an emergency, the variable "MAKEDEVPATH" can be used to replace PATH, but I don't know what that emergency could be. Let me know if you have any problems. I've tested it as well as I could, which basically means everything except for RocketPorts. Reviewed in principle by: peter
Diffstat (limited to 'etc')
-rw-r--r--etc/MAKEDEV213
1 files changed, 128 insertions, 85 deletions
diff --git a/etc/MAKEDEV b/etc/MAKEDEV
index 4e09e40..a4734a4 100644
--- a/etc/MAKEDEV
+++ b/etc/MAKEDEV
@@ -134,7 +134,11 @@
# $FreeBSD$
#
-PATH=/sbin:/bin/:/usr/bin:/usr/sbin:$PATH
+if [ -n "$MAKEDEVPATH" ]; then
+ PATH="$MAKEDEVPATH"
+else
+ PATH=/sbin:/bin
+fi
umask 77
# Usage: die exitcode msg
@@ -297,9 +301,12 @@ std)
mknod stderr c 22 2; chmod 666 stderr
mknod pci c 78 0; chmod 644 pci
mkdir -p fd
- (cd fd && eval `echo "" | awk ' BEGIN { \
- for (i = 0; i < 64; i++) \
- printf("mknod %d c 22 %d;", i, i)}'`)
+ (cd fd && i=0 &&
+ while [ $i -lt 64 ]; do
+ mknod $i c 22 $i
+ i=$(($i + 1))
+ done
+ )
chown -R root:wheel fd
chmod 555 fd
chmod 666 fd/*
@@ -607,13 +614,14 @@ xpt*)
if [ -z "${units}" ]; then
units=1
fi
- eval `echo ${chr} ${units} ${name} |awk \
- '{ c=$1; n=$2; name=$3;} END {
- for (i = 0; i < n; i++)
- printf("rm -f %s%d r%s%d; mknod %s%d c %d %d; \
- chgrp operator %s%d;", \
- name, i, name, i, name, i, c, i, \
- name, i); }'`
+ i=0
+ while [ $i -lt $units ]; do
+ dname=$name$i
+ rm -rf $dname r$dname
+ mknod $dname c $chr $i
+ chown root:operator $dname
+ i=$(($i + 1))
+ done
;;
# CAM passthrough device
pass*|uk*)
@@ -625,13 +633,14 @@ pass*|uk*)
if [ -z "${units}" ]; then
units=1
fi
- eval `echo ${chr} ${units} ${name} |awk \
- '{ c=$1; n=$2; name=$3;} END {
- for (i = 0; i < n; i++)
- printf("rm -f %s%d r%s%d; mknod %s%d c %d %d; \
- chgrp operator %s%d;", \
- name, i, name, i, name, i, c, i, \
- name, i); }'`
+ i=0
+ while [ $i -lt $units ]; do
+ dname=$name$i
+ rm -rf $dname r$dname
+ mknod $dname c $chr $i
+ chown root:operator $dname
+ i=$(($i + 1))
+ done
;;
pty*)
class=`expr $i : 'pty\(.*\)'`
@@ -648,21 +657,21 @@ pty*)
# 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)
- umask 0
- eval `echo $offset $name | awk ' { b=0+$1; n=$2 } END { \
- for (i = 0; i < 32; i++) {
- c = substr("0123456789abcdefghijklmnopqrstuv", i + 1, 1); \
- printf("mknod tty%s%s c 5 %d; \
- mknod pty%s%s c 6 %d;", \
- n, c, b+i, \
- n, c, b+i); \
- } \
- }'`
- umask 77
+ 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*)
@@ -742,21 +751,17 @@ acd*|cd*|mcd*|scd*)
units=1
fi
if [ "${units}" -le 31 ]; then
- eval `echo ${chr} ${units} ${name} |awk \
- '{ c=$1; n=$2; name=$3;} END{
- for (i = 0; i < n; i++){
- printf("rm -f %s%d* r%s%d*; \
- mknod %s%da c %d %d; \
- mknod %s%dc c %d %d; \
- mknod r%s%da c %d %d; \
- mknod r%s%dc c %d %d; \
- chgrp operator %s%d* r%s%d*;",
- name, i, name, i,
- name, i, c, (i * 8),
- name, i, c, (i * 8) + 2,
- name, i, c, (i * 8),
- name, i, c, (i * 8) + 2,
- name, i, name, i); }}'`
+ i=0
+ while [ $i -lt $units ]; do
+ dname=$name$i
+ rm -rf ${dname}* r${dname}*
+ mknod ${dname}a c $chr $(($i * 8))
+ mknod ${dname}c c $chr $(($i * 8 + 2))
+ mknod r${dname}a c $chr $(($i * 8))
+ mknod r${dname}c c $chr $(($i * 8 + 2))
+ chown root:operator ${dname}* r${dname}*
+ i=$(($i + 1))
+ done
else
echo "$i is invalid -- can't have more than 32 cd devices"
fi
@@ -871,12 +876,14 @@ ugen*)
echo $i - Invalid unit number
fi
if [ -z "${endpoint}" ]; then # ugen0 & ugen0.1 - ugen0.15
- eval `echo ${unit} | awk ' { u=0+$1 } END {
- printf("mknod ugen%d c 114 %d;", u, u*16+0);
- for (i = 1; i < 16; i++)
- printf("mknod ugen%d.%d c 114 %d;", u, i, u*16+i); }'`
+ mknod ugen$unit c 114 $(($unit * 16))
+ i=1
+ while [ $i -lt 16 ]; do
+ mknod ugen$unit.$i c 114 $(($unit * 16 + $i))
+ i=$(($i + 1))
+ done
else
- minor=`expr $unit \* 16 + $endpoint`
+ minor=$(($unit * 16 + $endpoint))
mknod ugen$unit.$endpoint c 114 $minor
fi
;;
@@ -899,9 +906,11 @@ tw*)
vty*)
chr=12
units=`expr $i : 'vty\(.*\)'`
- eval `echo ${chr} ${units} | awk ' { c=0+$1; n=0+$2 } END {
- for (i = 0; i < n; i++)
- printf("mknod ttyv%01x c %d %d;", i, c, i); }'`
+ i=0
+ while [ $i -lt $units ]; do
+ mknod ttyv$(printf %01x $i) c $chr $i
+ i=$(($i + 1))
+ done
ln -fs ttyv0 vga # XXX X still needs this pccons relic
;;
@@ -910,7 +919,7 @@ bpf*)
unit=0
while [ $unit -le $nbpf ]; do
mknod bpf$unit c 23 $unit
- unit=`expr $unit + 1`
+ unit=$(($unit + 1))
done
;;
@@ -1002,7 +1011,7 @@ ttyA*)
mknod ttyA$name c $major $minor
mknod ttyiA$name c $major `expr $minor + 65536`
mknod ttylA$name c $major `expr $minor + 131072`
- port=`expr $port + 1`
+ port=$(($port + 1))
done
# For the user-mode control program, 'sicontrol'
mknod si_control c 68 262144
@@ -1020,7 +1029,7 @@ cuaA*)
mknod cuaiA$name c $major `expr $minor + 128 + 65536`
mknod cualA$name c $major `expr $minor + 128 + 131072`
chown uucp:dialer cuaA$name cuaiA$name cualA$name
- port=`expr $port + 1`
+ port=$(($port + 1))
done
umask 77
;;
@@ -1121,46 +1130,80 @@ cuaM?)
ttyR?)
major=81
- BOARD=1; MINOR=65536; Rnum=0
- MINOR=`expr $BOARD \* 65536`
- dmesg | grep ^RocketPort[0-4] > /tmp/rp_list
- controllers=`awk '{print $1}' < /tmp/rp_list`
- rm -f /dev/ttyR*; rm -f /dev/ttyiR*; rm -f /dev/ttylR*
- for i in $controllers;do
- ndevices=`grep ^$i /tmp/rp_list | sed -e 's/.* \([0-9]*\) ports/\1/'`
+ 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 /dev/ttyR* /dev/ttyiR* /dev/ttylR*
+ for i in $controllers; do
+ ndevices=$(
+ dmesg | while read first bar ports rest; do
+ case "\$first" in
+ $i*)
+ echo "\$ports"
+ ;;
+ esac
+ done
+ )
echo -n "Creating $ndevices devices for $i: "
- for dev in `jot $ndevices 0`;do
+ dev=0
+ while [ $dev -lt $ndevices ]; do
mknod /dev/ttyR$Rnum c $major $MINOR
- mknod /dev/ttylR$Rnum c $major `expr $MINOR + 32`
- mknod /dev/ttyiR$Rnum c $major `expr $MINOR + 64`
- Rnum=`expr $Rnum + 1`
- MINOR=`expr $MINOR + 1`
+ mknod /dev/ttylR$Rnum c $major $(($MINOR + 32))
+ mknod /dev/ttyiR$Rnum c $major $(($MINOR + 64))
+ Rnum=$(($Rnum + 1))
+ MINOR=$(($MINOR + 1))
+ dev=$(($dev + 1))
done
- BOARD=`expr $BOARD + 1`
- MINOR=`expr $BOARD \* 65536`
+ BOARD=$(($BOARD + 1))
+ MINOR=$(($BOARD * 65536))
echo " "
done
;;
cuaR?)
major=81
- BOARD=1; MINOR=65536; Rnum=0
- MINOR=`expr $BOARD \* 65536`
- dmesg | grep ^RocketPort[0-4] > /tmp/rp_list
- controllers=`awk '{print $1}' < /tmp/rp_list`
- rm -f /dev/cuaR*; rm -f /dev/cuaiR*; rm -f /dev/cualR*
- for i in $controllers;do
- ndevices=`grep ^$i /tmp/rp_list | sed -e 's/.* \([0-9]*\) ports/\1/'`
+ 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 /dev/cuaR* /dev/cuaiR* /dev/cualR*
+ for i in $controllers; do
+ ndevices=$(
+ dmesg | while read first bar ports rest; do
+ case "\$first" in
+ $i*)
+ echo "\$ports"
+ ;;
+ esac
+ done
+ )
echo -n "Creating $ndevices devices for $i: "
- for dev in `jot $ndevices 0`;do
- mknod /dev/cuaR$Rnum c $major `expr $MINOR + 128`
- mknod /dev/cualR$Rnum c $major `expr $MINOR + 128 + 32`
- mknod /dev/cuaiR$Rnum c $major `expr $MINOR + 128 + 64`
- Rnum=`expr $Rnum + 1`
- MINOR=`expr $MINOR + 1`
+ dev=0
+ while [ $dev -lt $ndevices ]; do
+ mknod /dev/cuaR$Rnum c $major $(($MINOR + 128))
+ mknod /dev/cualR$Rnum c $major $(($MINOR + 128 + 32))
+ mknod /dev/cuaiR$Rnum c $major $(($MINOR + 128 + 64))
+ Rnum=$(($Rnum + 1))
+ MINOR=$(($MINOR + 1))
+ dev=$(($dev + 1))
done
- BOARD=`expr $BOARD + 1`
- MINOR=`expr $BOARD \* 65536`
+ BOARD=$(($BOARD + 1))
+ MINOR=$(($BOARD * 65536))
echo " "
done
chown uucp:dialer /dev/cuaR*
@@ -1324,7 +1367,7 @@ tun*)
while [ $unit -le $ntun ]; do
mknod tun$unit c 52 $unit
chown uucp:dialer tun$unit
- unit=`expr $unit + 1`
+ unit=$(($unit + 1))
done
;;
OpenPOWER on IntegriCloud