systemd/0001-service-Fix-dependencies-added-when-parsing-insserv..patch
Frederic Crozat ead650f61d - Update to version 41:
+ systemd binary is now installed in /lib/systemd (symlink for
  /bin/systemd is available now)
  + kernel modules are now loaded through libkmod
  + Watchdog support is now useful (not complete)
  + new kernel command line available to set system wide
    environment variable: systemd.setenv
  + journald capabilities set is now limited
  + SIGPIPE is ignored by default. This can be disabled with
    IgnoreSIGPIPE=no in unit files.
- Add fix-kmod-build.patch: fix build with libkmod
- Drop remote-fs-after-network.patch (merged upstream)
- Add dm-lvm-after-local-fs-pre-target.patch: ensure md / lvm
  /dmraid is started before mounting partitions, if fsck was
  disabled for them (bnc#733283).
- Update lsb-header patch to correctly disable heuristic if
  X-Systemd-RemainAfterExit is specified (whatever its value)
- Add fix-message-after-chkconfig.patch: don't complain if only
  sysv services are called in systemctl.
- Add is-enabled-non-existing-service.patch: fix error message when
  running is-enabled on non-existing service.

OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=242
2012-02-09 17:04:56 +00:00

53 lines
2.9 KiB
Diff

From 6620bceb7233a830be3635a4f7a7dc75c13a9c8e Mon Sep 17 00:00:00 2001
From: Frederic Crozat <fcrozat@suse.com>
Date: Fri, 30 Sep 2011 14:12:45 +0200
Subject: [PATCH] service: Fix dependencies added when parsing insserv.conf
---
src/service.c | 16 +++++++++-------
1 files changed, 9 insertions(+), 7 deletions(-)
Index: systemd-41/src/service.c
===================================================================
--- systemd-41.orig/src/service.c
+++ systemd-41/src/service.c
@@ -3210,23 +3210,30 @@ static void sysv_facility_in_insserv_con
Unit *u;
if (sysv_translate_facility(parsed[0], NULL, &facility) < 0)
continue;
+ if (streq(facility, SPECIAL_REMOTE_FS_TARGET)) {
+ /* insert also a Wants dependency from remote-fs-pre on remote-fs */
+ u = manager_get_unit(mgr, SPECIAL_REMOTE_FS_TARGET);
+ unit_add_dependency_by_name(u, UNIT_WANTS, SPECIAL_REMOTE_FS_PRE_TARGET, NULL, true);
+ free (facility);
+ facility=strdup(SPECIAL_REMOTE_FS_PRE_TARGET);
+ }
if ((u = manager_get_unit(mgr, facility)) && (u->type == UNIT_TARGET)) {
- UnitDependency e;
char *dep = NULL, *name, **j;
STRV_FOREACH (j, parsed+1) {
- if (*j[0]=='+') {
- e = UNIT_WANTS;
+ if (*j[0]=='+')
name = *j+1;
- }
- else {
- e = UNIT_REQUIRES;
+ else
name = *j;
- }
+ if (streq(name, "boot.localfs") ||
+ streq(name, "boot.crypto"))
+ continue;
if (sysv_translate_facility(name, NULL, &dep) < 0)
continue;
- r = unit_add_two_dependencies_by_name(u, UNIT_BEFORE, e, dep, NULL, true);
+ r = unit_add_dependency_by_name_inverse(u, UNIT_BEFORE, dep, NULL, true);
+ if (*j[0]!='+')
+ r = unit_add_dependency_by_name(u, UNIT_REQUIRES, dep, NULL, true);
free(dep);
}
}