From owner-freebsd-rc@FreeBSD.ORG Thu Dec 8 21:54:06 2005 Return-Path: X-Original-To: freebsd-rc@FreeBSD.org Delivered-To: freebsd-rc@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4A74316A41F for ; Thu, 8 Dec 2005 21:54:06 +0000 (GMT) (envelope-from dougb@FreeBSD.org) Received: from mail2.fluidhosting.com (mail2.fluidhosting.com [204.14.90.12]) by mx1.FreeBSD.org (Postfix) with SMTP id E1A0243D70 for ; Thu, 8 Dec 2005 21:53:59 +0000 (GMT) (envelope-from dougb@FreeBSD.org) Received: (qmail 97500 invoked by uid 399); 8 Dec 2005 21:53:55 -0000 Received: from localhost (HELO ?192.168.0.3?) (dougb@dougbarton.us@127.0.0.1) by localhost with SMTP; 8 Dec 2005 21:53:55 -0000 Message-ID: <4398AB6A.3000209@FreeBSD.org> Date: Thu, 08 Dec 2005 13:53:46 -0800 From: Doug Barton Organization: http://www.FreeBSD.org/ User-Agent: Thunderbird 1.5 (X11/20051206) MIME-Version: 1.0 To: freebsd-rc@FreeBSD.org Content-Type: multipart/mixed; boundary="------------020801090309070505050802" Cc: Subject: For Review: Latest update to rcorder patch X-BeenThere: freebsd-rc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion related to /etc/rc.d design and implementation." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Dec 2005 21:54:06 -0000 This is a multi-part message in MIME format. --------------020801090309070505050802 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Howdy, The attached patch contains what I hope are the final tweaks to the new rcorder code. It has the following changes: 1. Silences a grep warning when an rc.d directory in $local_startup is empty. 2. Adds a variable to /etc/defaults/rc.conf called early_late_divider (better name suggestions welcome) that defines the script to use to separate the early and late stages, and the commensurate code in rc. This makes the option configurable, which on the one hand puts a bullet in the foot-shooting gun for careless admins, but on the other hand gives more flexibility to those that can make use of it. 3. Defaults the divider to mountcritlocal, instead of mountcritremote. When last I talked to Brooks about this, he said that this would "probably" be ok even for diskless booting, however I'm willing to make it mountcritremote for now if we're not sure of this. Alternatively, we can make the default mountcritlocal, and instruct diskless booters to change this setting. Since I am not really involved in the diskless booting stuff, I'm totally open to the consensus opinion on this. If we change it, this will move the following scripts into the late stage: /etc/rc.d/var /etc/rc.d/cleanvar /etc/rc.d/random /etc/rc.d/adjkerntz /etc/rc.d/atm1 /etc/rc.d/hostname /etc/rc.d/ipfilter /etc/rc.d/ipnat /etc/rc.d/ipfs /etc/rc.d/kldxref /etc/rc.d/sppp /etc/rc.d/addswap /etc/rc.d/sysctl /etc/rc.d/serial /etc/rc.d/pccard /etc/rc.d/netif /etc/rc.d/isdnd /etc/rc.d/ppp /etc/rc.d/ipfw /etc/rc.d/nsswitch /etc/rc.d/newsyslog /etc/rc.d/syslogd /etc/rc.d/ip6addrctl /etc/rc.d/atm2 /etc/rc.d/pfsync /etc/rc.d/pflog /etc/rc.d/pf /etc/rc.d/routing /etc/rc.d/ip6fw /etc/rc.d/network_ipv6 /etc/rc.d/mroute6d /etc/rc.d/route6d /etc/rc.d/mrouted /etc/rc.d/routed /etc/rc.d/NETWORKING /etc/rc.d/devd /etc/rc.d/ipsec Enjoy, Doug -- This .signature sanitized for your protection --------------020801090309070505050802 Content-Type: text/plain; name="rc.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="rc.diff" Index: rc =================================================================== RCS file: /usr/local/ncvs/src/etc/rc,v retrieving revision 1.337 diff -u -r1.337 rc --- rc 2 Dec 2005 20:06:07 -0000 1.337 +++ rc 8 Dec 2005 21:23:56 -0000 @@ -73,7 +73,7 @@ skip="-s nostart" [ `/sbin/sysctl -n security.jail.jailed` -eq 1 ] && skip="$skip -s nojail" -# Do a first pass to get everything up to mountcritremote so that +# Do a first pass to get everything up to $early_late_divider so that # we can do a second pass that includes $local_startup directories # files=`rcorder ${skip} /etc/rc.d/* 2>/dev/null` @@ -82,7 +82,7 @@ run_rc_script ${_rc_elem} ${_boot} case "$_rc_elem" in - */mountcritremote) break ;; + */${early_late_divider}) break ;; esac done @@ -101,7 +101,7 @@ for _rc_elem in ${files}; do case "$_skip_early" in 1) case "$_rc_elem" in - */mountcritremote) _skip_early=0 ;; + */${early_late_divider}) _skip_early=0 ;; esac continue ;; Index: rc.subr =================================================================== RCS file: /usr/local/ncvs/src/etc/rc.subr,v retrieving revision 1.45 diff -u -r1.45 rc.subr --- rc.subr 5 Dec 2005 07:04:15 -0000 1.45 +++ rc.subr 8 Dec 2005 21:20:15 -0000 @@ -1380,7 +1380,7 @@ local_rc='' for dir in ${local_startup}; do if [ -d "${dir}" ]; then - for file in `grep -l '^# PROVIDE:' ${dir}/*`; do + for file in `grep -l '^# PROVIDE:' ${dir}/* 2>/dev/null`; do case "$file" in *.sample) ;; *) if [ -x "$file" ]; then Index: defaults/rc.conf =================================================================== RCS file: /usr/local/ncvs/src/etc/defaults/rc.conf,v retrieving revision 1.265 diff -u -r1.265 rc.conf --- defaults/rc.conf 24 Nov 2005 14:39:41 -0000 1.265 +++ defaults/rc.conf 8 Dec 2005 21:27:04 -0000 @@ -24,6 +24,10 @@ rc_debug="NO" # Set to YES to enable debugging output from rc.d rc_info="NO" # Enables display of informational messages at boot. rcshutdown_timeout="30" # Seconds to wait before terminating rc.shutdown +early_late_divider="mountcritlocal" # Script that separates early/late + # stages of the boot process. Make sure you know + # the ramifications if you change this. + swapfile="NO" # Set to name of swapfile if aux swapfile desired. apm_enable="NO" # Set to YES to enable APM BIOS functions (or NO). apmd_enable="NO" # Run apmd to handle APM event from userland. --------------020801090309070505050802--