Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 Mar 1999 18:06:41 -0800
From:      "Jordan K. Hubbard" <jkh@zippy.cdrom.com>
To:        current@freebsd.org
Subject:   /etc/rc.conf, take 46!
Message-ID:  <39218.922068401@zippy.cdrom.com>

next in thread | raw e-mail | index | archive | help
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 majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?39218.922068401>