Module Name:    src
Committed By:   jym
Date:           Mon Aug 22 18:54:06 UTC 2011

Modified Files:
        src/etc: Makefile
        src/etc/defaults: Makefile rc.conf
Added Files:
        src/etc/etc.amd64: rc.conf
        src/etc/etc.i386: rc.conf

Log Message:
Modify etc/defaults/Makefile so that architectures can specify an additional
rc.conf file. This one should reside under etc/etc.${MACHINE}/, and will
get automatically appended to etc/defaults/rc.conf at build time if present.

This is used by i386 and amd64 to append a small MD rc.conf(5) configuration
at the end of the defaults/rc.conf file, so that powerd(8) can be started
by default when we are running in a Xen environment. This is needed to support
save/restore functions for domains.

>From all the alternatives proposed to fix that issue (from /etc/rc.conf
parsing in postinstall to etc/defaults/rc.conf arch-hooks) I believe
this one will appease everyone because it:
- does not touch etc/defaults/rc.conf template file,
- patches it at build time for MD hooks only when required,
- does not need to parse/modify a user-specified file like /etc/rc.conf (which
is a complex, error-prone operation),
- only enables powerd(8) by default when conditions are met (Xen environment)
while still allowing root to shoot himself in the foot if he wants to
override this manually in /etc/rc.conf.

See also http://mail-index.netbsd.org/tech-userlevel/2011/07/25/msg005246.html


To generate a diff of this commit:
cvs rdiff -u -r1.391 -r1.392 src/etc/Makefile
cvs rdiff -u -r1.3 -r1.4 src/etc/defaults/Makefile
cvs rdiff -u -r1.113 -r1.114 src/etc/defaults/rc.conf
cvs rdiff -u -r0 -r1.1 src/etc/etc.amd64/rc.conf
cvs rdiff -u -r0 -r1.1 src/etc/etc.i386/rc.conf

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/etc/Makefile
diff -u src/etc/Makefile:1.391 src/etc/Makefile:1.392
--- src/etc/Makefile:1.391	Thu Jun 30 18:15:13 2011
+++ src/etc/Makefile	Mon Aug 22 18:54:05 2011
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.391 2011/06/30 18:15:13 matt Exp $
+#	$NetBSD: Makefile,v 1.392 2011/08/22 18:54:05 jym Exp $
 #	from: @(#)Makefile	8.7 (Berkeley) 5/25/95
 
 # Environment variables without default values:
@@ -630,7 +630,7 @@
 clean:
 	-rm -rf ${CDROM.dir} ${CDROM.pathlist} ${OBSOLETE.dir}
 
-SUBDIR=	rc.d mtree
+SUBDIR=	defaults rc.d mtree
 
 .include <bsd.prog.mk>
 .include <bsd.subdir.mk>

Index: src/etc/defaults/Makefile
diff -u src/etc/defaults/Makefile:1.3 src/etc/defaults/Makefile:1.4
--- src/etc/defaults/Makefile:1.3	Sun May 16 09:53:09 2004
+++ src/etc/defaults/Makefile	Mon Aug 22 18:54:06 2011
@@ -1,7 +1,23 @@
-#	$NetBSD: Makefile,v 1.3 2004/05/16 09:53:09 lukem Exp $
+#	$NetBSD: Makefile,v 1.4 2011/08/22 18:54:06 jym Exp $
 
-CONFIGFILES=	daily.conf monthly.conf rc.conf security.conf weekly.conf
+.include <bsd.own.mk>
+
+CONFIGFILES=	daily.conf monthly.conf security.conf weekly.conf
 FILESDIR=	/etc/defaults
 FILESMODE=	${NONBINMODE}
 
+# Manage arch-specific rc.conf(5) file
+CONFIGFILES+=	rc_conf
+FILESNAME_rc_conf=	rc.conf
+FILESBUILD_rc_conf=	yes
+
+RCCONF_SRCS=	${.CURDIR}/rc.conf
+.if exists(../etc.${MACHINE}/rc.conf)
+RCCONF_SRCS+=	${.CURDIR}/../etc.${MACHINE}/rc.conf
+.endif
+
+rc_conf: ${RCCONF_SRCS}
+	${_MKTARGET_CREATE}
+	${TOOL_CAT} ${RCCONF_SRCS} > ${.TARGET}
+
 .include <bsd.prog.mk>

Index: src/etc/defaults/rc.conf
diff -u src/etc/defaults/rc.conf:1.113 src/etc/defaults/rc.conf:1.114
--- src/etc/defaults/rc.conf:1.113	Fri May 27 09:28:42 2011
+++ src/etc/defaults/rc.conf	Mon Aug 22 18:54:06 2011
@@ -1,4 +1,4 @@
-#	$NetBSD: rc.conf,v 1.113 2011/05/27 09:28:42 plunky Exp $
+#	$NetBSD: rc.conf,v 1.114 2011/08/22 18:54:06 jym Exp $
 #
 # /etc/defaults/rc.conf --
 #	default configuration of /etc/rc.conf
@@ -360,3 +360,4 @@
 veriexec_strict=0
 veriexec_verbose=0
 veriexec_flags="-k"
+

Added files:

Index: src/etc/etc.amd64/rc.conf
diff -u /dev/null src/etc/etc.amd64/rc.conf:1.1
--- /dev/null	Mon Aug 22 18:54:07 2011
+++ src/etc/etc.amd64/rc.conf	Mon Aug 22 18:54:06 2011
@@ -0,0 +1,9 @@
+#	$NetBSD: rc.conf,v 1.1 2011/08/22 18:54:06 jym Exp $
+#
+# Arch-specific rc.conf(5) configuration.
+
+# powerd(8) is required under Xen to manage save/restore events.
+#
+if /sbin/sysctl -q machdep.xen; then
+	powerd=YES
+fi

Index: src/etc/etc.i386/rc.conf
diff -u /dev/null src/etc/etc.i386/rc.conf:1.1
--- /dev/null	Mon Aug 22 18:54:07 2011
+++ src/etc/etc.i386/rc.conf	Mon Aug 22 18:54:06 2011
@@ -0,0 +1,9 @@
+#	$NetBSD: rc.conf,v 1.1 2011/08/22 18:54:06 jym Exp $
+#
+# Arch-specific rc.conf(5) configuration.
+
+# powerd(8) is required under Xen to manage save/restore events.
+#
+if /sbin/sysctl -q machdep.xen; then
+	powerd=YES
+fi

Reply via email to