OK, so it seems everyone's found something to like and dislike about
the new scheme.  In that regard, it seems pretty much equivalent to
the previous layout when that was first introduced. :)

However, incremental refinement for this stuff has always been the
order of the day, so in that spirit, here's my proposal to deal with
the most recent set of gripes: That rc.conf contains "code" in
addition to data.

The following diffs make rc.conf a variable-only file, at the cost of
distributing the hook-calling mechanism into all the former clients of
rc.conf.  That really doesn't bother me if it doesn't bother you, and
further optimization of it can always be another future incremental
refinement.  Another incremental, albeit contraversial, refinement
would be to change /etc/defaults/rc.conf and friends into something
truely machine-parsable, changing statements like this:

       if [ -f /some/conf/file ]; then
            . /some/conf/file
       fi

Into something like this:

       if [ -f /some/conf/file ]; then
            eval `/sbin/rcvtosh /some/conf/file`
       fi

But these changes do not attempt to do that, they simply attempt to
make the existing rc.conf format somewhat easier to parse.  Comments
requested.

Index: netstart
===================================================================
RCS file: /home/ncvs/src/etc/netstart,v
retrieving revision 1.53
diff -u -u -r1.53 netstart
--- netstart    1999/02/10 18:08:16     1.53
+++ netstart    1999/03/22 01:54:16
@@ -12,8 +12,11 @@
 # If there is a global system configuration file, suck it in.
 if [ -f /etc/defaults/rc.conf ]; then
        . /etc/defaults/rc.conf
-elif [ -f /etc/rc.conf ]; then
-       . /etc/rc.conf
+       for i in ${rc_conf_files}; do
+               if [ -f $i ]; then
+                       . $i
+               fi
+       done
 fi
 
 if [ -f /etc/rc.network ]; then
Index: pccard_ether
===================================================================
RCS file: /home/ncvs/src/etc/pccard_ether,v
retrieving revision 1.11
diff -u -u -r1.11 pccard_ether
--- pccard_ether        1999/02/22 02:55:18     1.11
+++ pccard_ether        1999/03/22 01:55:27
@@ -7,11 +7,14 @@
 # example: pccard_ether ep0 -link0
 #
 
-# Suck in the configuration variables
+# If there is a global system configuration file, suck it in.
 if [ -f /etc/defaults/rc.conf ]; then
        . /etc/defaults/rc.conf
-elif [ -f /etc/rc.conf ]; then
-       . /etc/rc.conf
+       for i in ${rc_conf_files}; do
+               if [ -f $i ]; then
+                       . $i
+               fi
+       done
 fi
 
 if [ "x$pccard_ifconfig" != "xNO" ] ; then
Index: rc
===================================================================
RCS file: /home/ncvs/src/etc/rc,v
retrieving revision 1.183
diff -u -u -r1.183 rc
--- rc  1999/03/17 04:00:04     1.183
+++ rc  1999/03/22 01:56:24
@@ -33,11 +33,13 @@
 fi
 
 # If there is a global system configuration file, suck it in.
-#
 if [ -f /etc/defaults/rc.conf ]; then
        . /etc/defaults/rc.conf
-elif [ -f /etc/rc.conf ]; then
-       . /etc/rc.conf
+       for i in ${rc_conf_files}; do
+               if [ -f $i ]; then
+                       . $i
+               fi
+       done
 fi
 
 # Configure ccd devices.
Index: rc.devfs
===================================================================
RCS file: /home/ncvs/src/etc/rc.devfs,v
retrieving revision 1.4
diff -u -u -r1.4 rc.devfs
--- rc.devfs    1999/02/10 18:08:16     1.4
+++ rc.devfs    1999/03/22 01:56:39
@@ -1,11 +1,15 @@
 #
 # $Id: rc.devfs,v 1.4 1999/02/10 18:08:16 jkh Exp $
 #
+
 # If there is a global system configuration file, suck it in.
 if [ -f /etc/defaults/rc.conf ]; then
        . /etc/defaults/rc.conf
-elif [ -f /etc/rc.conf ]; then
-       . /etc/rc.conf
+       for i in ${rc_conf_files}; do
+               if [ -f $i ]; then
+                       . $i
+               fi
+       done
 fi
 
 # Setup DEVFS, ie permisisons, links etc.
Index: rc.diskless2
===================================================================
RCS file: /home/ncvs/src/etc/rc.diskless2,v
retrieving revision 1.2
diff -u -u -r1.2 rc.diskless2
--- rc.diskless2        1999/02/10 18:08:16     1.2
+++ rc.diskless2        1999/03/22 01:57:04
@@ -2,11 +2,13 @@
 #
 
 # If there is a global system configuration file, suck it in.
-#
 if [ -f /etc/defaults/rc.conf ]; then
        . /etc/defaults/rc.conf
-elif [ -f /etc/rc.conf ]; then
-       . /etc/rc.conf
+       for i in ${rc_conf_files}; do
+               if [ -f $i ]; then
+                       . $i
+               fi
+       done
 fi
 
 mount_mfs -s ${var_run_sectors:=2048} -T qp120at dummy /var/run
Index: rc.firewall
===================================================================
RCS file: /home/ncvs/src/etc/rc.firewall,v
retrieving revision 1.20
diff -u -u -r1.20 rc.firewall
--- rc.firewall 1999/02/10 18:08:16     1.20
+++ rc.firewall 1999/03/22 01:57:16
@@ -2,11 +2,14 @@
 # Setup system for firewall service.
 # $Id: rc.firewall,v 1.20 1999/02/10 18:08:16 jkh Exp $
 
-# Suck in the configuration variables.
+# If there is a global system configuration file, suck it in.
 if [ -f /etc/defaults/rc.conf ]; then
        . /etc/defaults/rc.conf
-elif [ -f /etc/rc.conf ]; then
-       . /etc/rc.conf
+       for i in ${rc_conf_files}; do
+               if [ -f $i ]; then
+                       . $i
+               fi
+       done
 fi
 
 ############
Index: defaults/rc.conf
===================================================================
RCS file: /home/ncvs/src/etc/defaults/rc.conf,v
retrieving revision 1.4
diff -u -u -r1.4 rc.conf
--- rc.conf     1999/03/17 04:00:04     1.4
+++ rc.conf     1999/03/22 01:58:02
@@ -202,16 +202,3 @@
 kern_securelevel="-1"  # range: -1..3 ; `-1' is the most insecure
 update_motd="YES"      # update version info in /etc/motd (or NO)
 vinum_drives=""                # put in names of disks containing vinum drives
-
-##############################################################
-### Allow local configuration override at the very end here ##
-##############################################################
-#
-#
-
-for i in ${rc_conf_files}; do
-       if [ -f $i ]; then
-               . $i
-       fi
-done
-


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-current" in the body of the message

Reply via email to