aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Hubbs <w.d.hubbs@gmail.com>2016-09-05 11:20:03 -0500
committerWilliam Hubbs <w.d.hubbs@gmail.com>2016-09-06 13:34:25 -0500
commitd4d559323819c8a5279bf197d8d3ff80f1e28cdc (patch)
treef6aa03f76b9a224798b3af4130e3d23ea4ad2e0b
parentd5db5489be135ae9295e378e789b4b7b13367fdd (diff)
sh/openrc-run.sh: read global configuration settings first
X-Gentoo-Bug: 503134 X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=503134
-rw-r--r--NEWS.md6
-rw-r--r--sh/openrc-run.sh.in18
2 files changed, 15 insertions, 9 deletions
diff --git a/NEWS.md b/NEWS.md
index d50741ab..931d0abd 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -5,6 +5,12 @@ the information in this file is in reverse order.
## OpenRC-0.22
+In previous versions of OpenRC, configuration information was processed
+so that service-specific configuration stored in /etc/conf.d/* was
+overridden by global configuration stored in /etc/rc.conf. This release
+reverses that. Global configuration is now overridden by
+service-specific configuration.
+
The swapfiles service, which was basically a copy of the swap service,
has been removed. If you are only using swap partitions, this change
will not affect you. If you are using swap files, please adjust the
diff --git a/sh/openrc-run.sh.in b/sh/openrc-run.sh.in
index ce5432f8..4cbfb162 100644
--- a/sh/openrc-run.sh.in
+++ b/sh/openrc-run.sh.in
@@ -193,6 +193,15 @@ status()
yesno $RC_DEBUG && set -x
+# Load configuration settings. First the global ones, then any
+# service-specific settings.
+sourcex -e "@SYSCONFDIR@/rc.conf"
+if [ -d "@SYSCONFDIR@/rc.conf.d" ]; then
+ for _f in "@SYSCONFDIR@"/rc.conf.d/*.conf; do
+ sourcex -e "$_f"
+ done
+fi
+
_conf_d=${RC_SERVICE%/*}/../conf.d
# If we're net.eth0 or openvpn.work then load net or openvpn config
_c=${RC_SVCNAME%%.*}
@@ -209,15 +218,6 @@ if ! sourcex -e "$_conf_d/$RC_SVCNAME.$RC_RUNLEVEL"; then
fi
unset _conf_d
-# Load any system overrides
-sourcex -e "@SYSCONFDIR@/rc.conf"
-if [ -d "@SYSCONFDIR@/rc.conf.d" ]; then
- for _f in "@SYSCONFDIR@"/rc.conf.d/*.conf; do
- sourcex -e "$_f"
- done
-fi
-
-
# load service supervisor functions
sourcex "@LIBEXECDIR@/sh/runit.sh"
sourcex "@LIBEXECDIR@/sh/s6.sh"