I implemented the split and it works nicely for me.

I can now just add things like "populate_var" into rc.d which REQUIRE:
mountcritlocal and have BEFORE: MOUNTCRITLOCAL to fill the /var tmpfs
that has just been mounted.

While there I found that random_seed play special tricks and we might
consider moving it in this new section as well, or add another stage
in between, like:

        mountcritlocal -> [various] -> MOUNTCRITLOCAL1
         -> random_seed -> MOUNTCRITLOCAL

Martin
Index: distrib/sets/lists/etc/mi
===================================================================
RCS file: /cvsroot/src/distrib/sets/lists/etc/mi,v
retrieving revision 1.259
diff -u -p -r1.259 mi
--- distrib/sets/lists/etc/mi   15 Sep 2019 19:38:08 -0000      1.259
+++ distrib/sets/lists/etc/mi   7 Jun 2020 19:21:19 -0000
@@ -200,6 +200,7 @@
 ./etc/rc.d/btuartd                             etc-obsolete            obsolete
 ./etc/rc.d/ccd                                 etc-sys-rc
 ./etc/rc.d/cgd                                 etc-sys-rc
+./etc/rc.d/clearcritlocal                              etc-sys-rc
 ./etc/rc.d/cleartmp                            etc-sys-rc
 ./etc/rc.d/cron                                        etc-cron-rc
 ./etc/rc.d/devpubd                             etc-sys-rc
@@ -242,6 +243,7 @@
 ./etc/rc.d/lkm1                                        etc-obsolete            
obsolete
 ./etc/rc.d/lkm2                                        etc-obsolete            
obsolete
 ./etc/rc.d/lkm3                                        etc-obsolete            
obsolete
+./etc/rc.d/llvmlockdir                         etc-sys-rc
 ./etc/rc.d/local                               etc-sys-rc
 ./etc/rc.d/lpd                                 etc-lpr-rc
 ./etc/rc.d/lvm                                 etc-sys-rc
@@ -253,6 +255,7 @@
 ./etc/rc.d/motd                                        etc-sys-rc
 ./etc/rc.d/mountall                            etc-sys-rc
 ./etc/rc.d/mountcritlocal                      etc-sys-rc
+./etc/rc.d/MOUNTCRITLOCAL                      etc-sys-rc
 ./etc/rc.d/mountcritremote                     etc-sys-rc
 ./etc/rc.d/mountd                              etc-nfsserver-rc
 ./etc/rc.d/moused                              etc-sysutil-rc
Index: etc/rc.d/MOUNTCRITLOCAL
===================================================================
RCS file: etc/rc.d/MOUNTCRITLOCAL
diff -N etc/rc.d/MOUNTCRITLOCAL
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ etc/rc.d/MOUNTCRITLOCAL     7 Jun 2020 19:21:19 -0000
@@ -0,0 +1,10 @@
+#!/bin/sh
+#
+# $NetBSD: NETWORKING,v 1.2 2002/03/22 04:33:57 thorpej Exp $
+#
+
+# REQUIRE: mountcritlocal
+# PROVIDE: MOUNTCRITLOCAL
+
+#      This is a dummy dependency, for services which require local
+#      disks to be mounted and fully setup
Index: etc/rc.d/Makefile
===================================================================
RCS file: /cvsroot/src/etc/rc.d/Makefile,v
retrieving revision 1.106
diff -u -p -r1.106 Makefile
--- etc/rc.d/Makefile   18 Sep 2019 05:16:15 -0000      1.106
+++ etc/rc.d/Makefile   7 Jun 2020 19:21:19 -0000
@@ -17,7 +17,7 @@ CONFIGFILES=\
                DAEMON DISKS LOGIN NETWORKING SERVERS \
                accounting altqd amd apmd automount automountd autounmountd \
                bluetooth bootconf.sh bootparams \
-               ccd cgd cleartmp cron \
+               ccd cgd clearcritlocal cleartmp cron \
                devpubd dhcpcd dhcpd dhcpd6 dhcrelay dmesg \
                downinterfaces \
                envsys \
@@ -27,9 +27,10 @@ CONFIGFILES=\
                identd ifwatchd inetd ip6addrctl ipfilter ipfs ipmon ipnat \
                ipsec irdaattach iscsi_target iscsid isibootd \
                kdc \
-               ldconfig ldpd local lpd lvm \
+               ldconfig ldpd llvmlockdir local lpd lvm \
                makemandb mdnsd mixerctl modules mopd motd mountall \
-               mountcritlocal mountcritremote mountd moused mrouted \
+               mountcritlocal MOUNTCRITLOCAL \
+               mountcritremote mountd moused mrouted \
                named ndbootd network newsyslog nfsd nfslocking npf npf_boot \
                npfd ntpd ntpdate \
                perusertmp pf pf_boot pflogd postfix powerd ppp pwcheck \
Index: etc/rc.d/bootconf.sh
===================================================================
RCS file: /cvsroot/src/etc/rc.d/bootconf.sh,v
retrieving revision 1.15
diff -u -p -r1.15 bootconf.sh
--- etc/rc.d/bootconf.sh        31 Dec 2012 23:21:27 -0000      1.15
+++ etc/rc.d/bootconf.sh        7 Jun 2020 19:21:19 -0000
@@ -4,7 +4,7 @@
 #
 
 # PROVIDE: bootconf
-# REQUIRE: mountcritlocal
+# REQUIRE: MOUNTCRITLOCAL
 # KEYWORD: interactive
 
 $_rc_subr_loaded . /etc/rc.subr
Index: etc/rc.d/clearcritlocal
===================================================================
RCS file: etc/rc.d/clearcritlocal
diff -N etc/rc.d/clearcritlocal
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ etc/rc.d/clearcritlocal     7 Jun 2020 19:21:19 -0000
@@ -0,0 +1,25 @@
+#!/bin/sh
+#
+# $NetBSD: mountcritlocal,v 1.15 2016/07/23 01:38:35 kre Exp $
+#
+
+# REQUIRE: mountcritlocal
+# BEFORE: MOUNTCRITLOCAL
+
+$_rc_subr_loaded . /etc/rc.subr
+
+name="clearcritlocal"
+start_cmd="clearcritlocal_start"
+stop_cmd=":"
+
+clearcritlocal_start()
+{
+       #       clean up left-over files.
+       #       this could include the cleanup of lock files and /var/run, etc.
+       #
+       rm -f /etc/nologin /var/spool/lock/LCK.*
+       test -d /var/run && (cd /var/run && rm -rf -- *)
+}
+
+load_rc_config $name
+run_rc_command "$1"
Index: etc/rc.d/dhcpcd
===================================================================
RCS file: /cvsroot/src/etc/rc.d/dhcpcd,v
retrieving revision 1.9
diff -u -p -r1.9 dhcpcd
--- etc/rc.d/dhcpcd     31 May 2020 12:58:09 -0000      1.9
+++ etc/rc.d/dhcpcd     7 Jun 2020 19:21:19 -0000
@@ -3,7 +3,7 @@
 # $NetBSD: dhcpcd,v 1.9 2020/05/31 12:58:09 roy Exp $
 
 # PROVIDE: dhcpcd
-# REQUIRE: network mountcritlocal
+# REQUIRE: network MOUNTCRITLOCAL
 # BEFORE:  NETWORKING
 
 $_rc_subr_loaded . /etc/rc.subr
Index: etc/rc.d/ip6addrctl
===================================================================
RCS file: /cvsroot/src/etc/rc.d/ip6addrctl,v
retrieving revision 1.5
diff -u -p -r1.5 ip6addrctl
--- etc/rc.d/ip6addrctl 14 Feb 2020 12:12:07 -0000      1.5
+++ etc/rc.d/ip6addrctl 7 Jun 2020 19:21:19 -0000
@@ -5,7 +5,7 @@
 #
 
 # PROVIDE: ip6addrctl
-# REQUIRE: root bootconf mountcritlocal tty
+# REQUIRE: root bootconf MOUNTCRITLOCAL tty
 
 $_rc_subr_loaded . /etc/rc.subr
 
Index: etc/rc.d/ipfilter
===================================================================
RCS file: /cvsroot/src/etc/rc.d/ipfilter,v
retrieving revision 1.18
diff -u -p -r1.18 ipfilter
--- etc/rc.d/ipfilter   23 Mar 2009 18:52:02 -0000      1.18
+++ etc/rc.d/ipfilter   7 Jun 2020 19:21:19 -0000
@@ -4,7 +4,7 @@
 #
 
 # PROVIDE: ipfilter
-# REQUIRE: root bootconf mountcritlocal tty
+# REQUIRE: root bootconf MOUNTCRITLOCAL tty
 
 $_rc_subr_loaded . /etc/rc.subr
 
Index: etc/rc.d/ipsec
===================================================================
RCS file: /cvsroot/src/etc/rc.d/ipsec,v
retrieving revision 1.16
diff -u -p -r1.16 ipsec
--- etc/rc.d/ipsec      27 Jan 2020 08:28:33 -0000      1.16
+++ etc/rc.d/ipsec      7 Jun 2020 19:21:19 -0000
@@ -4,7 +4,7 @@
 #
 
 # PROVIDE: ipsec
-# REQUIRE: root bootconf mountcritlocal tty
+# REQUIRE: root bootconf MOUNTCRITLOCAL tty
 # BEFORE:  DAEMON
 
 $_rc_subr_loaded . /etc/rc.subr
Index: etc/rc.d/iscsid
===================================================================
RCS file: /cvsroot/src/etc/rc.d/iscsid,v
retrieving revision 1.1
diff -u -p -r1.1 iscsid
--- etc/rc.d/iscsid     21 Feb 2015 23:13:00 -0000      1.1
+++ etc/rc.d/iscsid     7 Jun 2020 19:21:19 -0000
@@ -4,7 +4,7 @@
 #
 
 # PROVIDE: iscsid
-# REQUIRE: NETWORKING mountcritlocal
+# REQUIRE: NETWORKING MOUNTCRITLOCAL
 # BEFORE:  securelevel mountcritremote
 
 $_rc_subr_loaded . /etc/rc.subr
Index: etc/rc.d/llvmlockdir
===================================================================
RCS file: etc/rc.d/llvmlockdir
diff -N etc/rc.d/llvmlockdir
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ etc/rc.d/llvmlockdir        7 Jun 2020 19:21:19 -0000
@@ -0,0 +1,26 @@
+#!/bin/sh
+#
+# $NetBSD: mountcritlocal,v 1.15 2016/07/23 01:38:35 kre Exp $
+#
+
+# REQUIRE: mountcritlocal
+# BEFORE: MOUNTCRITLOCAL
+
+$_rc_subr_loaded . /etc/rc.subr
+
+name="llvmlockdir"
+start_cmd="llvmlockdir_start"
+stop_cmd=":"
+
+llvmlockdir_start()
+{
+       #       create LVM locking directory, it needs to be owned by operator
+       #       group and has parmissions to allow lock file creation.
+       #
+       mkdir -p /var/run/lvm
+       chown root:operator /var/run/lvm
+       chmod 770 /var/run/lvm
+}
+
+load_rc_config $name
+run_rc_command "$1"
Index: etc/rc.d/mdnsd
===================================================================
RCS file: /cvsroot/src/etc/rc.d/mdnsd,v
retrieving revision 1.3
diff -u -p -r1.3 mdnsd
--- etc/rc.d/mdnsd      15 Oct 2015 16:47:28 -0000      1.3
+++ etc/rc.d/mdnsd      7 Jun 2020 19:21:19 -0000
@@ -4,7 +4,7 @@
 #
 
 # PROVIDE: mdnsd
-# REQUIRE: network mountcritlocal staticroute
+# REQUIRE: network MOUNTCRITLOCAL staticroute
 # BEFORE:  NETWORKING
 
 $_rc_subr_loaded . /etc/rc.subr
Index: etc/rc.d/mountcritlocal
===================================================================
RCS file: /cvsroot/src/etc/rc.d/mountcritlocal,v
retrieving revision 1.15
diff -u -p -r1.15 mountcritlocal
--- etc/rc.d/mountcritlocal     23 Jul 2016 01:38:35 -0000      1.15
+++ etc/rc.d/mountcritlocal     7 Jun 2020 19:21:19 -0000
@@ -19,19 +19,6 @@ mountcritlocal_start()
        #       This usually includes /var.
        #
        mount_critical_filesystems local || return $?
-
-       #       clean up left-over files.
-       #       this could include the cleanup of lock files and /var/run, etc.
-       #
-       rm -f /etc/nologin /var/spool/lock/LCK.*
-       test -d /var/run && (cd /var/run && rm -rf -- *)
-
-       #       create LVM locking directory, it needs to be owned by operator
-       #       group and has parmissions to allow lock file creation.
-       #
-       mkdir -p /var/run/lvm
-       chown root:operator /var/run/lvm
-       chmod 770 /var/run/lvm
        return 0
 }
 
Index: etc/rc.d/mountcritremote
===================================================================
RCS file: /cvsroot/src/etc/rc.d/mountcritremote,v
retrieving revision 1.9
diff -u -p -r1.9 mountcritremote
--- etc/rc.d/mountcritremote    22 Jul 2014 17:11:09 -0000      1.9
+++ etc/rc.d/mountcritremote    7 Jun 2020 19:21:19 -0000
@@ -4,7 +4,7 @@
 #
 
 # PROVIDE: mountcritremote
-# REQUIRE: NETWORKING root mountcritlocal
+# REQUIRE: NETWORKING root MOUNTCRITLOCAL
 
 $_rc_subr_loaded . /etc/rc.subr
 
Index: etc/rc.d/network
===================================================================
RCS file: /cvsroot/src/etc/rc.d/network,v
retrieving revision 1.78
diff -u -p -r1.78 network
--- etc/rc.d/network    15 Apr 2020 20:31:57 -0000      1.78
+++ etc/rc.d/network    7 Jun 2020 19:21:19 -0000
@@ -4,7 +4,7 @@
 #
 
 # PROVIDE: network
-# REQUIRE: ipfilter ipsec mountcritlocal root tty sysctl
+# REQUIRE: ipfilter ipsec MOUNTCRITLOCAL root tty sysctl
 # BEFORE:  NETWORKING
 
 $_rc_subr_loaded . /etc/rc.subr
Index: etc/rc.d/npf
===================================================================
RCS file: /cvsroot/src/etc/rc.d/npf,v
retrieving revision 1.4
diff -u -p -r1.4 npf
--- etc/rc.d/npf        19 Apr 2019 18:36:25 -0000      1.4
+++ etc/rc.d/npf        7 Jun 2020 19:21:19 -0000
@@ -6,7 +6,7 @@
 #
 
 # PROVIDE: npf
-# REQUIRE: root bootconf mountcritlocal tty network
+# REQUIRE: root bootconf MOUNTCRITLOCAL tty network
 # BEFORE: NETWORKING
 
 $_rc_subr_loaded . /etc/rc.subr
Index: etc/rc.d/npf_boot
===================================================================
RCS file: /cvsroot/src/etc/rc.d/npf_boot,v
retrieving revision 1.2
diff -u -p -r1.2 npf_boot
--- etc/rc.d/npf_boot   5 Oct 2019 22:21:29 -0000       1.2
+++ etc/rc.d/npf_boot   7 Jun 2020 19:21:19 -0000
@@ -4,7 +4,7 @@
 #
 
 # PROVIDE: npf_boot
-# REQUIRE: root bootconf mountcritlocal tty
+# REQUIRE: root bootconf MOUNTCRITLOCAL tty
 # BEFORE: network
 
 $_rc_subr_loaded . /etc/rc.subr
Index: etc/rc.d/pf
===================================================================
RCS file: /cvsroot/src/etc/rc.d/pf,v
retrieving revision 1.11
diff -u -p -r1.11 pf
--- etc/rc.d/pf 29 Jun 2018 12:34:15 -0000      1.11
+++ etc/rc.d/pf 7 Jun 2020 19:21:19 -0000
@@ -4,7 +4,7 @@
 #
 
 # PROVIDE: pf
-# REQUIRE: root bootconf mountcritlocal tty network dhcpcd
+# REQUIRE: root bootconf MOUNTCRITLOCAL tty network dhcpcd
 # BEFORE: NETWORKING
 
 $_rc_subr_loaded . /etc/rc.subr
Index: etc/rc.d/pf_boot
===================================================================
RCS file: /cvsroot/src/etc/rc.d/pf_boot,v
retrieving revision 1.5
diff -u -p -r1.5 pf_boot
--- etc/rc.d/pf_boot    5 Oct 2019 22:21:29 -0000       1.5
+++ etc/rc.d/pf_boot    7 Jun 2020 19:21:19 -0000
@@ -4,7 +4,7 @@
 #
 
 # PROVIDE: pf_boot
-# REQUIRE: root bootconf mountcritlocal tty
+# REQUIRE: root bootconf MOUNTCRITLOCAL tty
 # BEFORE: network
 
 $_rc_subr_loaded . /etc/rc.subr
Index: etc/rc.d/random_seed
===================================================================
RCS file: /cvsroot/src/etc/rc.d/random_seed,v
retrieving revision 1.13
diff -u -p -r1.13 random_seed
--- etc/rc.d/random_seed        7 May 2020 20:01:04 -0000       1.13
+++ etc/rc.d/random_seed        7 Jun 2020 19:21:19 -0000
@@ -4,7 +4,7 @@
 #
 
 # PROVIDE: random_seed
-# REQUIRE: mountcritlocal
+# REQUIRE: MOUNTCRITLOCAL
 # BEFORE: securelevel
 # BEFORE: bootconf
 # KEYWORD: shutdown
Index: etc/rc.d/route6d
===================================================================
RCS file: /cvsroot/src/etc/rc.d/route6d,v
retrieving revision 1.9
diff -u -p -r1.9 route6d
--- etc/rc.d/route6d    18 Aug 2011 16:46:14 -0000      1.9
+++ etc/rc.d/route6d    7 Jun 2020 19:21:19 -0000
@@ -4,7 +4,7 @@
 #
 
 # PROVIDE: route6d
-# REQUIRE: network mountcritlocal
+# REQUIRE: network MOUNTCRITLOCAL
 # BEFORE:  NETWORKING
 
 $_rc_subr_loaded . /etc/rc.subr
Index: etc/rc.d/smtoff
===================================================================
RCS file: /cvsroot/src/etc/rc.d/smtoff,v
retrieving revision 1.4
diff -u -p -r1.4 smtoff
--- etc/rc.d/smtoff     13 May 2019 18:53:10 -0000      1.4
+++ etc/rc.d/smtoff     7 Jun 2020 19:21:19 -0000
@@ -6,7 +6,7 @@
 #
 
 # PROVIDE: smtoff
-# REQUIRE: root bootconf mountcritlocal tty
+# REQUIRE: root bootconf MOUNTCRITLOCAL tty
 
 $_rc_subr_loaded . /etc/rc.subr
 
Index: etc/rc.d/wpa_supplicant
===================================================================
RCS file: /cvsroot/src/etc/rc.d/wpa_supplicant,v
retrieving revision 1.7
diff -u -p -r1.7 wpa_supplicant
--- etc/rc.d/wpa_supplicant     29 Jun 2018 12:34:15 -0000      1.7
+++ etc/rc.d/wpa_supplicant     7 Jun 2020 19:21:19 -0000
@@ -4,7 +4,7 @@
 #
 
 # PROVIDE: wpa_supplicant
-# REQUIRE: network mountcritlocal
+# REQUIRE: network MOUNTCRITLOCAL
 # BEFORE:  NETWORKING dhcpcd
 #
 #      We need to run a command that resides in /usr/sbin, and the

Reply via email to