From owner-freebsd-current Sun Mar 21 18: 9: 0 1999 Delivered-To: freebsd-current@freebsd.org Received: from zippy.cdrom.com (zippy.cdrom.com [204.216.27.228]) by hub.freebsd.org (Postfix) with ESMTP id 3E8CC1532D for ; Sun, 21 Mar 1999 18:07:15 -0800 (PST) (envelope-from jkh@zippy.cdrom.com) Received: from zippy.cdrom.com (localhost [127.0.0.1]) by zippy.cdrom.com (8.9.3/8.9.3) with ESMTP id SAA39220 for ; Sun, 21 Mar 1999 18:06:41 -0800 (PST) (envelope-from jkh@zippy.cdrom.com) To: current@freebsd.org Subject: /etc/rc.conf, take 46! Date: Sun, 21 Mar 1999 18:06:41 -0800 Message-ID: <39218.922068401@zippy.cdrom.com> From: "Jordan K. Hubbard" Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 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