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