daandemeyer / rpms / systemd

Forked from rpms/systemd 2 years ago
Clone
Zbigniew Jędrzejewski-Szmek e4fbe4
From af67487dbe254648f9a9c2b836017d348b72435f Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek e4fbe4
From: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
Zbigniew Jędrzejewski-Szmek e4fbe4
Date: Thu, 26 Jun 2014 00:36:43 +0200
Zbigniew Jędrzejewski-Szmek e4fbe4
Subject: [PATCH] sysv-generator: fix incorect ordering of Wants
Zbigniew Jędrzejewski-Szmek e4fbe4
Zbigniew Jędrzejewski-Szmek e4fbe4
(cherry picked from commit 260ad50f5b4a9795032e3119c64f838a2d03370d)
Zbigniew Jędrzejewski-Szmek e4fbe4
---
Zbigniew Jędrzejewski-Szmek e4fbe4
 src/sysv-generator/sysv-generator.c | 12 ++++++++++--
Zbigniew Jędrzejewski-Szmek e4fbe4
 1 file changed, 10 insertions(+), 2 deletions(-)
Zbigniew Jędrzejewski-Szmek e4fbe4
Zbigniew Jędrzejewski-Szmek e4fbe4
diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c
Zbigniew Jędrzejewski-Szmek e4fbe4
index 9778fbc5..52062793 100644
Zbigniew Jędrzejewski-Szmek e4fbe4
--- a/src/sysv-generator/sysv-generator.c
Zbigniew Jędrzejewski-Szmek e4fbe4
+++ b/src/sysv-generator/sysv-generator.c
Zbigniew Jędrzejewski-Szmek e4fbe4
@@ -78,6 +78,7 @@ typedef struct SysvStub {
Zbigniew Jędrzejewski-Szmek e4fbe4
         char **before;
Zbigniew Jędrzejewski-Szmek e4fbe4
         char **after;
Zbigniew Jędrzejewski-Szmek e4fbe4
         char **wants;
Zbigniew Jędrzejewski-Szmek e4fbe4
+        char **wanted_by;
Zbigniew Jędrzejewski-Szmek e4fbe4
         char **conflicts;
Zbigniew Jędrzejewski-Szmek e4fbe4
         bool has_lsb;
Zbigniew Jędrzejewski-Szmek e4fbe4
         bool reload;
Zbigniew Jędrzejewski-Szmek e4fbe4
@@ -118,6 +119,7 @@ static int generate_unit_file(SysvStub *s) {
Zbigniew Jędrzejewski-Szmek e4fbe4
         _cleanup_fclose_ FILE *f = NULL;
Zbigniew Jędrzejewski-Szmek e4fbe4
         _cleanup_free_ char *before = NULL;
Zbigniew Jędrzejewski-Szmek e4fbe4
         _cleanup_free_ char *after = NULL;
Zbigniew Jędrzejewski-Szmek e4fbe4
+        _cleanup_free_ char *wants = NULL;
Zbigniew Jędrzejewski-Szmek e4fbe4
         _cleanup_free_ char *conflicts = NULL;
Zbigniew Jędrzejewski-Szmek e4fbe4
         int r;
Zbigniew Jędrzejewski-Szmek e4fbe4
 
Zbigniew Jędrzejewski-Szmek e4fbe4
@@ -129,6 +131,10 @@ static int generate_unit_file(SysvStub *s) {
Zbigniew Jędrzejewski-Szmek e4fbe4
         if (!after)
Zbigniew Jędrzejewski-Szmek e4fbe4
                 return log_oom();
Zbigniew Jędrzejewski-Szmek e4fbe4
 
Zbigniew Jędrzejewski-Szmek e4fbe4
+        wants = strv_join(s->wants, " ");
Zbigniew Jędrzejewski-Szmek e4fbe4
+        if (!wants)
Zbigniew Jędrzejewski-Szmek e4fbe4
+                return log_oom();
Zbigniew Jędrzejewski-Szmek e4fbe4
+
Zbigniew Jędrzejewski-Szmek e4fbe4
         conflicts = strv_join(s->conflicts, " ");
Zbigniew Jędrzejewski-Szmek e4fbe4
         if (!conflicts)
Zbigniew Jędrzejewski-Szmek e4fbe4
                 return log_oom();
Zbigniew Jędrzejewski-Szmek e4fbe4
@@ -154,6 +160,8 @@ static int generate_unit_file(SysvStub *s) {
Zbigniew Jędrzejewski-Szmek e4fbe4
                 fprintf(f, "Before=%s\n", before);
Zbigniew Jędrzejewski-Szmek e4fbe4
         if (!isempty(after))
Zbigniew Jędrzejewski-Szmek e4fbe4
                 fprintf(f, "After=%s\n", after);
Zbigniew Jędrzejewski-Szmek e4fbe4
+        if (!isempty(wants))
Zbigniew Jędrzejewski-Szmek e4fbe4
+                fprintf(f, "Wants=%s\n", wants);
Zbigniew Jędrzejewski-Szmek e4fbe4
         if (!isempty(conflicts))
Zbigniew Jędrzejewski-Szmek e4fbe4
                 fprintf(f, "Conflicts=%s\n", conflicts);
Zbigniew Jędrzejewski-Szmek e4fbe4
 
Zbigniew Jędrzejewski-Szmek e4fbe4
@@ -182,7 +190,7 @@ static int generate_unit_file(SysvStub *s) {
Zbigniew Jędrzejewski-Szmek e4fbe4
         if (s->reload)
Zbigniew Jędrzejewski-Szmek e4fbe4
                 fprintf(f, "ExecReload=%s reload\n", s->path);
Zbigniew Jędrzejewski-Szmek e4fbe4
 
Zbigniew Jędrzejewski-Szmek e4fbe4
-        STRV_FOREACH(p, s->wants) {
Zbigniew Jędrzejewski-Szmek e4fbe4
+        STRV_FOREACH(p, s->wanted_by) {
Zbigniew Jędrzejewski-Szmek e4fbe4
                 r = add_symlink(s->name, *p);
Zbigniew Jędrzejewski-Szmek e4fbe4
                 if (r < 0)
Zbigniew Jędrzejewski-Szmek e4fbe4
                         log_error_unit(s->name, "Failed to create 'Wants' symlink to %s: %s", *p, strerror(-r));
Zbigniew Jędrzejewski-Szmek e4fbe4
@@ -832,7 +840,7 @@ static int set_dependencies_from_rcnd(LookupPaths lp, Hashmap *all_services) {
Zbigniew Jędrzejewski-Szmek e4fbe4
                         r = strv_extend(&service->before, rcnd_table[i].target);
Zbigniew Jędrzejewski-Szmek e4fbe4
                         if (r < 0)
Zbigniew Jędrzejewski-Szmek e4fbe4
                                 return log_oom();
Zbigniew Jędrzejewski-Szmek e4fbe4
-                        r = strv_extend(&service->wants, rcnd_table[i].target);
Zbigniew Jędrzejewski-Szmek e4fbe4
+                        r = strv_extend(&service->wanted_by, rcnd_table[i].target);
Zbigniew Jędrzejewski-Szmek e4fbe4
                         if (r < 0)
Zbigniew Jędrzejewski-Szmek e4fbe4
                                 return log_oom();
Zbigniew Jędrzejewski-Szmek e4fbe4
                 }