2021-08-03 15:02:44 +02:00
|
|
|
From 7f59f7b1b506c1394712ad3d6bab81318052a14c Mon Sep 17 00:00:00 2001
|
2020-09-04 08:47:46 +02:00
|
|
|
From: Thomas Blume <Thomas.Blume@suse.com>
|
|
|
|
Date: Wed, 4 May 2016 17:40:04 +0200
|
2021-08-03 15:02:44 +02:00
|
|
|
Subject: [PATCH 08/11] sysv-generator: translate "Required-Start" into a
|
2020-09-04 08:47:46 +02:00
|
|
|
"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
|
2021-08-03 15:02:44 +02:00
|
|
|
index fa5355c964..62755f3652 100644
|
2020-09-04 08:47:46 +02:00
|
|
|
--- a/src/sysv-generator/sysv-generator.c
|
|
|
|
+++ b/src/sysv-generator/sysv-generator.c
|
2021-08-03 15:02:44 +02:00
|
|
|
@@ -257,6 +257,7 @@ static int sysv_translate_facility(SysvStub *s, unsigned line, const char *name,
|
2020-09-04 08:47:46 +02:00
|
|
|
"remote_fs", SPECIAL_REMOTE_FS_TARGET,
|
|
|
|
"syslog", NULL,
|
|
|
|
"time", SPECIAL_TIME_SYNC_TARGET,
|
|
|
|
+ "all", SPECIAL_DEFAULT_TARGET,
|
|
|
|
};
|
|
|
|
|
|
|
|
const char *filename;
|
2021-08-03 15:02:44 +02:00
|
|
|
@@ -271,6 +272,7 @@ static int sysv_translate_facility(SysvStub *s, unsigned line, const char *name,
|
2020-09-04 08:47:46 +02:00
|
|
|
|
|
|
|
filename = basename(s->path);
|
|
|
|
|
|
|
|
+ n = *name == '+' ? ++name : name;
|
|
|
|
n = *name == '$' ? name + 1 : name;
|
|
|
|
|
|
|
|
for (i = 0; i < ELEMENTSOF(table); i += 2) {
|
2021-08-03 15:02:44 +02:00
|
|
|
@@ -407,7 +409,7 @@ static int handle_dependencies(SysvStub *s, unsigned line, const char *full_text
|
2020-09-04 08:47:46 +02:00
|
|
|
|
|
|
|
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)
|
2021-08-03 15:02:44 +02:00
|
|
|
@@ -420,6 +422,7 @@ static int handle_dependencies(SysvStub *s, unsigned line, const char *full_text
|
2020-09-04 08:47:46 +02:00
|
|
|
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 */
|
2021-08-03 15:02:44 +02:00
|
|
|
@@ -428,8 +431,13 @@ static int handle_dependencies(SysvStub *s, unsigned line, const char *full_text
|
2020-09-04 08:47:46 +02:00
|
|
|
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
|
|
|
|
|