chiark / gitweb /
service: don't create sysv order deps on merged units
authorLennart Poettering <lennart@poettering.net>
Mon, 27 Sep 2010 21:24:17 +0000 (23:24 +0200)
committerLennart Poettering <lennart@poettering.net>
Mon, 27 Sep 2010 21:24:17 +0000 (23:24 +0200)
src/service.c
src/unit.c

index 797f28577408e5adbce0409b1d5063bff6e00435..5706d7c490273d1a2269e6f37309e4d3e336bff9 100644 (file)
@@ -239,9 +239,9 @@ static char *sysv_translate_name(const char *name) {
                 /* Drop Debian-style .sh suffix */
                 strcpy(stpcpy(r, name) - 3, ".service");
 #ifdef TARGET_ARCH
                 /* Drop Debian-style .sh suffix */
                 strcpy(stpcpy(r, name) - 3, ".service");
 #ifdef TARGET_ARCH
-       else if (startswith(name, "@"))
-               /* Drop Arch-style background prefix */
-               strcpy(stpcpy(r, name + 1), ".service");
+        else if (startswith(name, "@"))
+                /* Drop Arch-style background prefix */
+                strcpy(stpcpy(r, name + 1), ".service");
 #endif
         else
                 /* Normal init scripts */
 #endif
         else
                 /* Normal init scripts */
@@ -326,6 +326,9 @@ static int sysv_fix_order(Service *s) {
                 if (s == t)
                         continue;
 
                 if (s == t)
                         continue;
 
+                if (t->meta.load_state != UNIT_LOADED)
+                        continue;
+
                 if (t->sysv_start_priority < 0)
                         continue;
 
                 if (t->sysv_start_priority < 0)
                         continue;
 
index 5a451c57c2a038c1cc297c7d3658f96527ab206e..5960c277b7dc60d0db724bd8a8ec8e7295c63844 100644 (file)
@@ -578,7 +578,7 @@ const char *unit_description(Unit *u) {
         if (u->meta.description)
                 return u->meta.description;
 
         if (u->meta.description)
                 return u->meta.description;
 
-        return u->meta.id;
+        return strna(u->meta.id);
 }
 
 void unit_dump(Unit *u, FILE *f, const char *prefix) {
 }
 
 void unit_dump(Unit *u, FILE *f, const char *prefix) {
@@ -1403,6 +1403,9 @@ int unit_add_dependency(Unit *u, UnitDependency d, Unit *other, bool add_referen
         assert(d >= 0 && d < _UNIT_DEPENDENCY_MAX);
         assert(other);
 
         assert(d >= 0 && d < _UNIT_DEPENDENCY_MAX);
         assert(other);
 
+        u = unit_follow_merge(u);
+        other = unit_follow_merge(other);
+
         /* We won't allow dependencies on ourselves. We will not
          * consider them an error however. */
         if (u == other)
         /* We won't allow dependencies on ourselves. We will not
          * consider them an error however. */
         if (u == other)