[systemd-commits] src/sysv-generator

Martin Pitt martin at kemper.freedesktop.org
Tue Jan 27 23:02:40 PST 2015


 src/sysv-generator/sysv-generator.c |    8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

New commits:
commit 40780877c19ef408da8ab21f4156cfc153f94b5c
Author: Martin Pitt <martin.pitt at ubuntu.com>
Date:   Wed Jan 28 08:00:28 2015 +0100

    sysv-generator: Re-fix .sh suffix handling
    
    Commit 4e48855534 caused the .sh suffix to be stripped from the original
    "filename", which caused the generated units to call the wrong init.d script.
    Only use the .sh stripped file name for comparing with Provides:, not for
    generating the Exec*= lines.
    
    Spotted by sysv-generator-test.

diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c
index 09ade0d..662d08c 100644
--- a/src/sysv-generator/sysv-generator.c
+++ b/src/sysv-generator/sysv-generator.c
@@ -299,11 +299,9 @@ static int sysv_translate_facility(const char *name, const char *filename, char
 
         /* strip ".sh" suffix from file name for comparison */
         filename_no_sh = strdupa(filename);
-        e = endswith(filename, ".sh");
-        if (e) {
+        e = endswith(filename_no_sh, ".sh");
+        if (e)
                 *e = '\0';
-                filename = filename_no_sh;
-        }
 
         /* If we don't know this name, fallback heuristics to figure
          * out whether something is a target or a service alias. */
@@ -314,7 +312,7 @@ static int sysv_translate_facility(const char *name, const char *filename, char
 
                 /* Facilities starting with $ are most likely targets */
                 r = unit_name_build(n, NULL, ".target");
-        } else if (filename && streq(name, filename))
+        } else if (filename && streq(name, filename_no_sh))
                 /* Names equaling the file name of the services are redundant */
                 return 0;
         else



More information about the systemd-commits mailing list