c939ecec0c
See https://github.com/openSUSE/systemd/blob/SUSE/v246/NEWS for details. Now that the number of SUSE specific patches has been shrinked and is pretty low (12 at the time of this writing), they are no more tracked by the git repo and are now handled at the package level. Hence It is easier to maintain and identify them. This effectively means that SUSE/v246 will contain upstream commits only. OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=1113
74 lines
3.0 KiB
Diff
74 lines
3.0 KiB
Diff
From a32292849ca2837f99d6801da26b8d8e401831c4 Mon Sep 17 00:00:00 2001
|
|
From: Thomas Blume <Thomas.Blume@suse.com>
|
|
Date: Wed, 4 May 2016 17:40:04 +0200
|
|
Subject: [PATCH 08/12] sysv-generator: translate "Required-Start" into a
|
|
"Wants" dependency
|
|
|
|
[tblume: Port of SLES12SP1 patch 0018-Make-LSB-Skripts-know-about-Required-and-Should.patch]
|
|
|
|
[fbui: this is needed probably because insserv's behavior has been
|
|
sadly changed since SLE11: it now doesn't failed if a
|
|
dependency listed by Required-Start is missing.]
|
|
|
|
[fbui: according to Werner "This should fix bnc#858864 and
|
|
bnc#857204." (see Base:System changelog)]
|
|
---
|
|
src/sysv-generator/sysv-generator.c | 12 ++++++++++--
|
|
1 file changed, 10 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c
|
|
index 1c01008967..7a58be9287 100644
|
|
--- a/src/sysv-generator/sysv-generator.c
|
|
+++ b/src/sysv-generator/sysv-generator.c
|
|
@@ -258,6 +258,7 @@ static int sysv_translate_facility(SysvStub *s, unsigned line, const char *name,
|
|
"remote_fs", SPECIAL_REMOTE_FS_TARGET,
|
|
"syslog", NULL,
|
|
"time", SPECIAL_TIME_SYNC_TARGET,
|
|
+ "all", SPECIAL_DEFAULT_TARGET,
|
|
};
|
|
|
|
const char *filename;
|
|
@@ -272,6 +273,7 @@ static int sysv_translate_facility(SysvStub *s, unsigned line, const char *name,
|
|
|
|
filename = basename(s->path);
|
|
|
|
+ n = *name == '+' ? ++name : name;
|
|
n = *name == '$' ? name + 1 : name;
|
|
|
|
for (i = 0; i < ELEMENTSOF(table); i += 2) {
|
|
@@ -408,7 +410,7 @@ static int handle_dependencies(SysvStub *s, unsigned line, const char *full_text
|
|
|
|
for (;;) {
|
|
_cleanup_free_ char *word = NULL, *m = NULL;
|
|
- bool is_before;
|
|
+ bool is_before, is_wanted;
|
|
|
|
r = extract_first_word(&text, &word, NULL, EXTRACT_UNQUOTE|EXTRACT_RELAX);
|
|
if (r < 0)
|
|
@@ -421,6 +423,7 @@ static int handle_dependencies(SysvStub *s, unsigned line, const char *full_text
|
|
continue;
|
|
|
|
is_before = startswith_no_case(full_text, "X-Start-Before:");
|
|
+ is_wanted = startswith_no_case(full_text, "Required-Start:");
|
|
|
|
if (streq(m, SPECIAL_NETWORK_ONLINE_TARGET) && !is_before) {
|
|
/* the network-online target is special, as it needs to be actively pulled in */
|
|
@@ -429,8 +432,13 @@ static int handle_dependencies(SysvStub *s, unsigned line, const char *full_text
|
|
return log_oom();
|
|
|
|
r = strv_extend(&s->wants, m);
|
|
- } else
|
|
+ } else {
|
|
r = strv_extend(is_before ? &s->before : &s->after, m);
|
|
+
|
|
+ if (is_wanted)
|
|
+ r = strv_extend(&s->wants, m);
|
|
+ }
|
|
+
|
|
if (r < 0)
|
|
return log_oom();
|
|
}
|
|
--
|
|
2.26.2
|
|
|