forked from pool/systemd
bbba62be60
- Add or port upstream bugfix patches: 0001-Fix-systemd-stdio-bridge-symlink.patch 0002-execute-free-directory-path-if-we-fail-to-remove-it-.patch 0003-Do-not-print-invalid-UTF-8-in-error-messages.patch 0004-man-document-missing-options-of-systemd-run.patch 0005-systemd-run-add-some-extra-safety-checks.patch 0006-journal-assume-that-next-entry-is-after-previous-ent.patch 0007-journal-forget-file-after-encountering-an-error.patch 0008-core-correctly-unregister-PIDs-from-PID-hashtables.patch 0009-logind-fix-reference-to-systemd-user-sessions.servic.patch 0010-man-update-link-to-LSB.patch 0011-man-systemd-bootchart-fix-spacing-in-command.patch 0012-man-add-missing-comma.patch 0013-units-Do-not-unescape-instance-name-in-systemd-backl.patch - Add linker scripts as place holder of the old systemd shared libraries now all included in libsystemd.so (bnc#867128) - Make patch 1006-udev-always-rename-network.patch work again and add it again. - address missing owner functionality in systemd-tmpfiles (fate#314974) 1022-systemd-tmpfiles-ownerkeep.patch - Generate the bash completion files on the fly for the case of not having the package bash-completion around - Add or port upstream bugfix patches: 0001-nspawn-fix-detection-of-missing-proc-self-loginuid.patch 0002-cdrom_id-use-the-old-MMC-fallback.patch 0003-journalctl-refuse-extra-arguments-with-verify-and-si.patch OBS-URL: https://build.opensuse.org/request/show/225408 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=177
69 lines
3.2 KiB
Diff
69 lines
3.2 KiB
Diff
Should solve the problems of
|
|
|
|
bug #858864 - LSB "+" dependencies aren't handled properly
|
|
bug #857204 - inssrv fails to enable rpcbind
|
|
The side effect is that RequiresOverridable= is used for the services
|
|
add behind Required-Start
|
|
bug #863217 - systemd overrides explicit admin request to disable a service
|
|
That is that in this version the Wants= for all services behind
|
|
Should-Start, X-Start-Before, and X-Stop-After is not used anymore
|
|
|
|
---
|
|
service.c | 15 +++++++++++++--
|
|
1 file changed, 13 insertions(+), 2 deletions(-)
|
|
|
|
--- systemd-208/src/core/service.c
|
|
+++ systemd-208/src/core/service.c 2014-02-21 14:44:59.066735478 +0000
|
|
@@ -380,6 +380,8 @@ static int sysv_translate_facility(const
|
|
"remote_fs", SPECIAL_REMOTE_FS_TARGET,
|
|
"syslog", NULL,
|
|
"time", SPECIAL_TIME_SYNC_TARGET,
|
|
+ "all", SPECIAL_DEFAULT_TARGET,
|
|
+ "null", NULL,
|
|
};
|
|
|
|
unsigned i;
|
|
@@ -389,7 +391,7 @@ static int sysv_translate_facility(const
|
|
assert(name);
|
|
assert(_r);
|
|
|
|
- n = *name == '$' ? name + 1 : name;
|
|
+ n = (*name == '$' || *name == '+') ? name + 1 : name;
|
|
|
|
for (i = 0; i < ELEMENTSOF(table); i += 2) {
|
|
|
|
@@ -816,10 +818,13 @@ static int service_load_sysv_path(Servic
|
|
startswith_no_case(t, "Should-Start:") ||
|
|
startswith_no_case(t, "X-Start-Before:") ||
|
|
startswith_no_case(t, "X-Start-After:")) {
|
|
+ UnitDependency d, e;
|
|
char *i, *w;
|
|
size_t z;
|
|
|
|
state = LSB;
|
|
+ d = startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER;
|
|
+ e = startswith_no_case(t, "Required-Start:") ? UNIT_REQUIRES_OVERRIDABLE : _UNIT_DEPENDENCY_INVALID;
|
|
|
|
FOREACH_WORD_QUOTED(w, z, strchr(t, ':')+1, i) {
|
|
char *n, *m;
|
|
@@ -838,12 +843,18 @@ static int service_load_sysv_path(Servic
|
|
continue;
|
|
}
|
|
|
|
+ if (*n == '+')
|
|
+ e = UNIT_WANTS;
|
|
+
|
|
free(n);
|
|
|
|
if (r == 0)
|
|
continue;
|
|
|
|
- r = unit_add_dependency_by_name(u, startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER, m, NULL, true);
|
|
+ if (e != _UNIT_DEPENDENCY_INVALID)
|
|
+ r = unit_add_two_dependencies_by_name(u, d, e, m, NULL, true);
|
|
+ else
|
|
+ r = unit_add_dependency_by_name(u, d, m, NULL, true);
|
|
|
|
if (r < 0)
|
|
log_error_unit(u->id, "[%s:%u] Failed to add dependency on %s, ignoring: %s",
|