- 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
This commit is contained in:
parent
52ce89a80d
commit
ead650f61d
@ -7,23 +7,21 @@ Subject: [PATCH] service: Fix dependencies added when parsing insserv.conf
|
|||||||
src/service.c | 16 +++++++++-------
|
src/service.c | 16 +++++++++-------
|
||||||
1 files changed, 9 insertions(+), 7 deletions(-)
|
1 files changed, 9 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
Index: systemd-40/src/service.c
|
Index: systemd-41/src/service.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-40.orig/src/service.c
|
--- systemd-41.orig/src/service.c
|
||||||
+++ systemd-40/src/service.c
|
+++ systemd-41/src/service.c
|
||||||
@@ -3162,23 +3162,32 @@ static void sysv_facility_in_insserv_con
|
@@ -3210,23 +3210,30 @@ static void sysv_facility_in_insserv_con
|
||||||
Unit *u;
|
Unit *u;
|
||||||
if (sysv_translate_facility(parsed[0], NULL, &facility) < 0)
|
if (sysv_translate_facility(parsed[0], NULL, &facility) < 0)
|
||||||
continue;
|
continue;
|
||||||
+ if (streq(facility, SPECIAL_REMOTE_FS_TARGET)) {
|
+ if (streq(facility, SPECIAL_REMOTE_FS_TARGET)) {
|
||||||
+ /* insert also a Wants dependency from remote-fs-pre on remote-fs */
|
+ /* insert also a Wants dependency from remote-fs-pre on remote-fs */
|
||||||
+ u = manager_get_unit(mgr, SPECIAL_REMOTE_FS_TARGET);
|
+ u = manager_get_unit(mgr, SPECIAL_REMOTE_FS_TARGET);
|
||||||
+ unit_add_dependency_by_name(u, UNIT_WANTS,
|
+ unit_add_dependency_by_name(u, UNIT_WANTS, SPECIAL_REMOTE_FS_PRE_TARGET, NULL, true);
|
||||||
+ SPECIAL_REMOTE_FS_PRE_TARGET, NULL, true);
|
|
||||||
+ free (facility);
|
+ free (facility);
|
||||||
+ facility=strdup(SPECIAL_REMOTE_FS_PRE_TARGET);
|
+ facility=strdup(SPECIAL_REMOTE_FS_PRE_TARGET);
|
||||||
+ }
|
+ }
|
||||||
+
|
|
||||||
if ((u = manager_get_unit(mgr, facility)) && (u->type == UNIT_TARGET)) {
|
if ((u = manager_get_unit(mgr, facility)) && (u->type == UNIT_TARGET)) {
|
||||||
- UnitDependency e;
|
- UnitDependency e;
|
||||||
char *dep = NULL, *name, **j;
|
char *dep = NULL, *name, **j;
|
||||||
|
@ -12,15 +12,13 @@ Fixes https://bugzilla.novell.com/show_bug.cgi?id=721426
|
|||||||
src/service.c | 8 +++++++-
|
src/service.c | 8 +++++++-
|
||||||
1 files changed, 7 insertions(+), 1 deletions(-)
|
1 files changed, 7 insertions(+), 1 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/service.c b/src/service.c
|
Index: systemd-37/src/service.c
|
||||||
index 6b7064a..eb2699c 100644
|
===================================================================
|
||||||
--- a/src/service.c
|
--- systemd-37.orig/src/service.c
|
||||||
+++ b/src/service.c
|
+++ systemd-37/src/service.c
|
||||||
@@ -2012,9 +2012,15 @@ static void service_enter_running(Service *s, bool success) {
|
@@ -2014,8 +2014,13 @@ static void service_enter_running(Servic
|
||||||
main_pid_ok = main_pid_good(s);
|
|
||||||
cgroup_ok = cgroup_good(s);
|
cgroup_ok = cgroup_good(s);
|
||||||
|
|
||||||
+
|
|
||||||
if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) &&
|
if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) &&
|
||||||
- (s->bus_name_good || s->type != SERVICE_DBUS))
|
- (s->bus_name_good || s->type != SERVICE_DBUS))
|
||||||
+ (s->bus_name_good || s->type != SERVICE_DBUS)) {
|
+ (s->bus_name_good || s->type != SERVICE_DBUS)) {
|
||||||
@ -33,6 +31,3 @@ index 6b7064a..eb2699c 100644
|
|||||||
else if (s->remain_after_exit)
|
else if (s->remain_after_exit)
|
||||||
service_set_state(s, SERVICE_EXITED);
|
service_set_state(s, SERVICE_EXITED);
|
||||||
else
|
else
|
||||||
--
|
|
||||||
1.7.3.4
|
|
||||||
|
|
||||||
|
9
dm-lvm-after-local-fs-pre-target.patch
Normal file
9
dm-lvm-after-local-fs-pre-target.patch
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
Index: systemd-37/units/local-fs-pre.target
|
||||||
|
===================================================================
|
||||||
|
--- systemd-37.orig/units/local-fs-pre.target
|
||||||
|
+++ systemd-37/units/local-fs-pre.target
|
||||||
|
@@ -9,3 +9,4 @@
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=Local File Systems (Pre)
|
||||||
|
+After=md.service lvm.service dmraid.service
|
51
fix-kmod-build.patch
Normal file
51
fix-kmod-build.patch
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
From 0bb96d9971975a42c102d87036c858e1347d6bc5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Frederic Crozat <fcrozat@suse.com>
|
||||||
|
Date: Thu, 9 Feb 2012 14:12:10 +0100
|
||||||
|
Subject: [PATCH] kmod-setup: fix build with libkmod
|
||||||
|
|
||||||
|
---
|
||||||
|
Makefile.am | 12 ++++++------
|
||||||
|
1 files changed, 6 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile.am b/Makefile.am
|
||||||
|
index fbf2358..c5b819e 100644
|
||||||
|
--- a/Makefile.am
|
||||||
|
+++ b/Makefile.am
|
||||||
|
@@ -546,7 +546,8 @@ libsystemd_core_la_CFLAGS = \
|
||||||
|
$(UDEV_CFLAGS) \
|
||||||
|
$(LIBWRAP_CFLAGS) \
|
||||||
|
$(PAM_CFLAGS) \
|
||||||
|
- $(AUDIT_CFLAGS)
|
||||||
|
+ $(AUDIT_CFLAGS) \
|
||||||
|
+ $(KMOD_CFLAGS)
|
||||||
|
|
||||||
|
libsystemd_core_la_LIBADD = \
|
||||||
|
libsystemd-basic.la \
|
||||||
|
@@ -555,7 +556,8 @@ libsystemd_core_la_LIBADD = \
|
||||||
|
$(LIBWRAP_LIBS) \
|
||||||
|
$(PAM_LIBS) \
|
||||||
|
$(AUDIT_LIBS) \
|
||||||
|
- $(CAP_LIBS)
|
||||||
|
+ $(CAP_LIBS) \
|
||||||
|
+ $(KMOD_LIBS)
|
||||||
|
|
||||||
|
# This is needed because automake is buggy in how it generates the
|
||||||
|
# rules for C programs, but not Vala programs. We therefore can't
|
||||||
|
@@ -728,12 +730,10 @@ systemd_SOURCES = \
|
||||||
|
systemd_CFLAGS = \
|
||||||
|
$(AM_CFLAGS) \
|
||||||
|
$(DBUS_CFLAGS) \
|
||||||
|
- $(UDEV_CFLAGS) \
|
||||||
|
- $(KMOD_CFLAGS)
|
||||||
|
+ $(UDEV_CFLAGS)
|
||||||
|
|
||||||
|
systemd_LDADD = \
|
||||||
|
- libsystemd-core.la \
|
||||||
|
- $(KMOD_LIBS)
|
||||||
|
+ libsystemd-core.la
|
||||||
|
|
||||||
|
test_engine_SOURCES = \
|
||||||
|
src/test-engine.c
|
||||||
|
--
|
||||||
|
1.7.7
|
||||||
|
|
40
fix-message-after-chkconfig.patch
Normal file
40
fix-message-after-chkconfig.patch
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
From ab5919fa1af147c2632fdae7bed4504c898a60af Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michal Schmidt <mschmidt@redhat.com>
|
||||||
|
Date: Thu, 9 Feb 2012 10:05:15 +0100
|
||||||
|
Subject: [PATCH] systemctl: check for no more work after chkconfig
|
||||||
|
|
||||||
|
Avoid a bogus message from 'systemctl enable ...' when all units given
|
||||||
|
are SysV services:
|
||||||
|
Warning: unit files do not carry install information. No operation
|
||||||
|
executed.
|
||||||
|
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=787407
|
||||||
|
---
|
||||||
|
src/systemctl.c | 7 +++++--
|
||||||
|
1 files changed, 5 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/systemctl.c b/src/systemctl.c
|
||||||
|
index 12264f8..ab6d126 100644
|
||||||
|
--- a/src/systemctl.c
|
||||||
|
+++ b/src/systemctl.c
|
||||||
|
@@ -3662,12 +3662,15 @@ static int enable_unit(DBusConnection *bus, char **args) {
|
||||||
|
int r;
|
||||||
|
DBusError error;
|
||||||
|
|
||||||
|
- dbus_error_init(&error);
|
||||||
|
-
|
||||||
|
r = enable_sysv_units(args);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
|
||||||
|
+ if (!args[1])
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
+ dbus_error_init(&error);
|
||||||
|
+
|
||||||
|
if (!bus || avoid_bus()) {
|
||||||
|
if (streq(verb, "enable")) {
|
||||||
|
r = unit_file_enable(arg_scope, arg_runtime, arg_root, args+1, arg_force, &changes, &n_changes);
|
||||||
|
--
|
||||||
|
1.7.7
|
||||||
|
|
34
is-enabled-non-existing-service.patch
Normal file
34
is-enabled-non-existing-service.patch
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
From 81006b8ad8cfdbfdb418fc99918ee5c33eb5b35a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michal Schmidt <mschmidt@redhat.com>
|
||||||
|
Date: Thu, 9 Feb 2012 10:36:56 +0100
|
||||||
|
Subject: [PATCH] install: fix incorrect 'Access denied' message with a
|
||||||
|
non-existent unit
|
||||||
|
|
||||||
|
With "systemctl is-enabled non-existent.service"
|
||||||
|
_UNIT_FILE_STATE_INVALID (-1) was wrongly interpreted as -errno.
|
||||||
|
Return -ENOENT in this case.
|
||||||
|
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=766579
|
||||||
|
---
|
||||||
|
src/install.c | 2 +-
|
||||||
|
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/install.c b/src/install.c
|
||||||
|
index 1fb1f9d..174d79b 100644
|
||||||
|
--- a/src/install.c
|
||||||
|
+++ b/src/install.c
|
||||||
|
@@ -1571,10 +1571,10 @@ UnitFileState unit_file_get_state(
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lstat(path, &st) < 0) {
|
||||||
|
+ r = -errno;
|
||||||
|
if (errno == ENOENT)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
- r = -errno;
|
||||||
|
goto finish;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
1.7.7
|
||||||
|
|
@ -7,25 +7,26 @@ Subject: [PATCH] module-load: handle SUSE /etc/sysconfig/kernel module list
|
|||||||
src/modules-load.c | 42 ++++++++++++++++++++++++++++++++++++++++++
|
src/modules-load.c | 42 ++++++++++++++++++++++++++++++++++++++++++
|
||||||
1 files changed, 42 insertions(+), 0 deletions(-)
|
1 files changed, 42 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
Index: systemd-37/src/modules-load.c
|
Index: systemd-41/src/modules-load.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-37.orig/src/modules-load.c
|
--- systemd-41.orig/src/modules-load.c
|
||||||
+++ systemd-37/src/modules-load.c
|
+++ systemd-41/src/modules-load.c
|
||||||
@@ -36,6 +36,9 @@ int main(int argc, char *argv[]) {
|
@@ -44,6 +44,9 @@ static void systemd_kmod_log(void *data,
|
||||||
char **arguments = NULL;
|
int main(int argc, char *argv[]) {
|
||||||
unsigned n_arguments = 0, n_allocated = 0;
|
int r = EXIT_FAILURE;
|
||||||
char **files, **fn;
|
char **files, **fn;
|
||||||
+#if defined(TARGET_SUSE)
|
+#if defined(TARGET_SUSE)
|
||||||
+ char *modules_on_boot = NULL;
|
+ char *modules_on_boot = NULL;
|
||||||
+#endif
|
+#endif
|
||||||
|
struct kmod_ctx *ctx;
|
||||||
|
const int probe_flags = KMOD_PROBE_APPLY_BLACKLIST|KMOD_PROBE_IGNORE_LOADED;
|
||||||
|
|
||||||
if (argc > 1) {
|
@@ -141,9 +144,58 @@ int main(int argc, char *argv[]) {
|
||||||
log_error("This program takes no argument.");
|
|
||||||
@@ -126,6 +129,43 @@ int main(int argc, char *argv[]) {
|
fclose(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
strv_free(files);
|
|
||||||
+#if defined(TARGET_SUSE)
|
+#if defined(TARGET_SUSE)
|
||||||
|
+ log_debug("apply: /etc/sysconfig/kernel MODULES_LOADED_ON_BOOT");
|
||||||
+ if ((r = parse_env_file("/etc/sysconfig/kernel", NEWLINE,
|
+ if ((r = parse_env_file("/etc/sysconfig/kernel", NEWLINE,
|
||||||
+ "MODULES_LOADED_ON_BOOT", &modules_on_boot,
|
+ "MODULES_LOADED_ON_BOOT", &modules_on_boot,
|
||||||
+ NULL)) < 0) {
|
+ NULL)) < 0) {
|
||||||
@ -36,49 +37,53 @@ Index: systemd-37/src/modules-load.c
|
|||||||
+ if (modules_on_boot) {
|
+ if (modules_on_boot) {
|
||||||
+ char **modules = strv_split(modules_on_boot,WHITESPACE);
|
+ char **modules = strv_split(modules_on_boot,WHITESPACE);
|
||||||
+ char **module;
|
+ char **module;
|
||||||
|
+ struct kmod_list *itr, *modlist = NULL;
|
||||||
|
+ int err;
|
||||||
|
+
|
||||||
+ if (modules) {
|
+ if (modules) {
|
||||||
+ STRV_FOREACH(module, modules) {
|
+ STRV_FOREACH(module, modules) {
|
||||||
+ if (n_arguments >= n_allocated) {
|
+ err = kmod_module_new_from_lookup(ctx, *module, &modlist);
|
||||||
+ char **a;
|
+ if (err < 0) {
|
||||||
+ unsigned m;
|
+ log_error("Failed to lookup alias '%s'", *module);
|
||||||
+
|
|
||||||
+ m = MAX(16U, n_arguments*2);
|
|
||||||
+
|
|
||||||
+ if (!(a = realloc(arguments, sizeof(char*) * (m+1)))) {
|
|
||||||
+ log_error("Failed to increase module array size.");
|
|
||||||
+ free(*module);
|
|
||||||
+ r = EXIT_FAILURE;
|
+ r = EXIT_FAILURE;
|
||||||
+ continue;
|
+ continue;
|
||||||
+ }
|
+ }
|
||||||
|
+ kmod_list_foreach(itr, modlist) {
|
||||||
|
+ struct kmod_module *mod = kmod_module_get_module(itr);
|
||||||
|
+ err = kmod_module_probe_insert_module(mod, probe_flags,
|
||||||
|
+ NULL, NULL, NULL, NULL);
|
||||||
+
|
+
|
||||||
+ arguments = a;
|
+ if (err == 0)
|
||||||
+ n_allocated = m;
|
+ log_info("Inserted module '%s'", kmod_module_get_name(mod));
|
||||||
|
+ else if (err == KMOD_PROBE_APPLY_BLACKLIST)
|
||||||
|
+ log_info("Module '%s' is blacklisted", kmod_module_get_name(mod));
|
||||||
|
+ else {
|
||||||
|
+ log_error("Failed to insert '%s': %s", kmod_module_get_name(mod),
|
||||||
|
+ strerror(-err));
|
||||||
|
+ r = EXIT_FAILURE;
|
||||||
+ }
|
+ }
|
||||||
+ log_debug("adding module: %s\n", *module);
|
+
|
||||||
+ arguments[n_arguments++] = strdup(*module);
|
+ kmod_module_unref(mod);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
+ kmod_module_unref_list(modlist);
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ strv_free(modules);
|
+ strv_free(modules);
|
||||||
+ }
|
+ }
|
||||||
+#endif
|
+#endif
|
||||||
+
|
|
||||||
finish:
|
finish:
|
||||||
|
strv_free(files);
|
||||||
if (n_arguments > 3) {
|
|
||||||
@@ -138,6 +178,9 @@ finish:
|
|
||||||
}
|
|
||||||
|
|
||||||
strv_free(arguments);
|
|
||||||
+#if defined(TARGET_SUSE)
|
+#if defined(TARGET_SUSE)
|
||||||
+ free(modules_on_boot);
|
+ free(modules_on_boot);
|
||||||
+#endif
|
+#endif
|
||||||
|
kmod_unref(ctx);
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
}
|
Index: systemd-41/units/systemd-modules-load.service.in
|
||||||
Index: systemd-37/units/systemd-modules-load.service.in
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-37.orig/units/systemd-modules-load.service.in
|
--- systemd-41.orig/units/systemd-modules-load.service.in
|
||||||
+++ systemd-37/units/systemd-modules-load.service.in
|
+++ systemd-41/units/systemd-modules-load.service.in
|
||||||
@@ -11,6 +11,7 @@ DefaultDependencies=no
|
@@ -11,6 +11,7 @@ DefaultDependencies=no
|
||||||
Conflicts=shutdown.target
|
Conflicts=shutdown.target
|
||||||
After=systemd-readahead-collect.service systemd-readahead-replay.service
|
After=systemd-readahead-collect.service systemd-readahead-replay.service
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
Index: systemd-37/src/service.c
|
Index: systemd-41/src/service.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-37.orig/src/service.c
|
--- systemd-41.orig/src/service.c
|
||||||
+++ systemd-37/src/service.c
|
+++ systemd-41/src/service.c
|
||||||
@@ -116,6 +116,7 @@ static void service_init(Unit *u) {
|
@@ -119,6 +119,7 @@ static void service_init(Unit *u) {
|
||||||
#ifdef HAVE_SYSV_COMPAT
|
#ifdef HAVE_SYSV_COMPAT
|
||||||
s->sysv_start_priority = -1;
|
s->sysv_start_priority = -1;
|
||||||
s->sysv_start_priority_from_rcnd = -1;
|
s->sysv_start_priority_from_rcnd = -1;
|
||||||
@ -10,7 +10,7 @@ Index: systemd-37/src/service.c
|
|||||||
#endif
|
#endif
|
||||||
s->socket_fd = -1;
|
s->socket_fd = -1;
|
||||||
s->guess_main_pid = true;
|
s->guess_main_pid = true;
|
||||||
@@ -805,6 +806,31 @@ static int service_load_sysv_path(Servic
|
@@ -861,6 +862,34 @@ static int service_load_sysv_path(Servic
|
||||||
|
|
||||||
} else
|
} else
|
||||||
state = LSB;
|
state = LSB;
|
||||||
@ -33,16 +33,29 @@ Index: systemd-37/src/service.c
|
|||||||
+ free(s->pid_file);
|
+ free(s->pid_file);
|
||||||
+ s->pid_file = fn;
|
+ s->pid_file = fn;
|
||||||
+ s->sysv_remain_after_exit_heuristic = false;
|
+ s->sysv_remain_after_exit_heuristic = false;
|
||||||
|
+ s->remain_after_exit = false;
|
||||||
+ } else if (startswith_no_case(t, "X-Systemd-RemainAfterExit:")) {
|
+ } else if (startswith_no_case(t, "X-Systemd-RemainAfterExit:")) {
|
||||||
+ char *j;
|
+ char *j;
|
||||||
+
|
+
|
||||||
+ state = LSB;
|
+ state = LSB;
|
||||||
+ if ((j = strstrip(t+26)) && *j)
|
+ if ((j = strstrip(t+26)) && *j) {
|
||||||
+ s->sysv_remain_after_exit_heuristic = !parse_boolean(j);
|
+ s->remain_after_exit = parse_boolean(j);
|
||||||
|
+ s->sysv_remain_after_exit_heuristic = false;
|
||||||
|
+ }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2017,7 +2043,7 @@ static void service_enter_running(Servic
|
@@ -891,7 +920,8 @@ static int service_load_sysv_path(Servic
|
||||||
|
|
||||||
|
/* Special setting for all SysV services */
|
||||||
|
s->type = SERVICE_FORKING;
|
||||||
|
- s->remain_after_exit = !s->pid_file;
|
||||||
|
+ if (s->sysv_remain_after_exit_heuristic)
|
||||||
|
+ s->remain_after_exit = !s->pid_file;
|
||||||
|
s->guess_main_pid = false;
|
||||||
|
s->restart = SERVICE_RESTART_NO;
|
||||||
|
s->exec_context.ignore_sigpipe = false;
|
||||||
|
@@ -2030,7 +2060,7 @@ static void service_enter_running(Servic
|
||||||
if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) &&
|
if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) &&
|
||||||
(s->bus_name_good || s->type != SERVICE_DBUS)) {
|
(s->bus_name_good || s->type != SERVICE_DBUS)) {
|
||||||
#ifdef HAVE_SYSV_COMPAT
|
#ifdef HAVE_SYSV_COMPAT
|
||||||
@ -51,11 +64,11 @@ Index: systemd-37/src/service.c
|
|||||||
s->remain_after_exit = false;
|
s->remain_after_exit = false;
|
||||||
#endif
|
#endif
|
||||||
service_set_state(s, SERVICE_RUNNING);
|
service_set_state(s, SERVICE_RUNNING);
|
||||||
Index: systemd-37/src/service.h
|
Index: systemd-41/src/service.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-37.orig/src/service.h
|
--- systemd-41.orig/src/service.h
|
||||||
+++ systemd-37/src/service.h
|
+++ systemd-41/src/service.h
|
||||||
@@ -139,6 +139,7 @@ struct Service {
|
@@ -157,6 +157,7 @@ struct Service {
|
||||||
#ifdef HAVE_SYSV_COMPAT
|
#ifdef HAVE_SYSV_COMPAT
|
||||||
bool sysv_has_lsb:1;
|
bool sysv_has_lsb:1;
|
||||||
bool sysv_enabled:1;
|
bool sysv_enabled:1;
|
||||||
|
@ -1,74 +0,0 @@
|
|||||||
From db1355b1c181a4b1ac277064918d7c794dfb6edd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michal Schmidt <mschmidt@redhat.com>
|
|
||||||
Date: Tue, 7 Feb 2012 11:05:18 +0100
|
|
||||||
Subject: [PATCH] mount: adjust dependencies for remote filesystems
|
|
||||||
|
|
||||||
Currently remote mounts automatically get:
|
|
||||||
After=remote-fs-pre.target network.target
|
|
||||||
|
|
||||||
remote-fs-pre.target is already After=network.target. Just make sure
|
|
||||||
remote-fs-pre.target is pulled in by remote-fs.target if any remote
|
|
||||||
filesystems are configured.
|
|
||||||
For the mount units it is then sufficient to get:
|
|
||||||
After=remote-fs-pre.target
|
|
||||||
|
|
||||||
Later NetworkManager will hook its NM-wait-online.service into
|
|
||||||
remote-fs-pre.target.wants in order to remove the need for the administrator
|
|
||||||
to enable the service manually when he has any remote filesystems.
|
|
||||||
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=787314
|
|
||||||
---
|
|
||||||
src/mount.c | 20 ++++++++++++--------
|
|
||||||
1 files changed, 12 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/mount.c b/src/mount.c
|
|
||||||
index 3411b73..0ae964b 100644
|
|
||||||
--- a/src/mount.c
|
|
||||||
+++ b/src/mount.c
|
|
||||||
@@ -320,7 +320,7 @@ static bool needs_quota(MountParameters *p) {
|
|
||||||
}
|
|
||||||
|
|
||||||
static int mount_add_fstab_links(Mount *m) {
|
|
||||||
- const char *target, *after = NULL, *after2 = NULL;
|
|
||||||
+ const char *target, *after, *tu_wants = NULL;
|
|
||||||
MountParameters *p;
|
|
||||||
Unit *tu;
|
|
||||||
int r;
|
|
||||||
@@ -350,23 +350,27 @@ static int mount_add_fstab_links(Mount *m) {
|
|
||||||
|
|
||||||
if (mount_is_network(p)) {
|
|
||||||
target = SPECIAL_REMOTE_FS_TARGET;
|
|
||||||
- after = SPECIAL_REMOTE_FS_PRE_TARGET;
|
|
||||||
- after2 = SPECIAL_NETWORK_TARGET;
|
|
||||||
+ after = tu_wants = SPECIAL_REMOTE_FS_PRE_TARGET;
|
|
||||||
} else {
|
|
||||||
target = SPECIAL_LOCAL_FS_TARGET;
|
|
||||||
after = SPECIAL_LOCAL_FS_PRE_TARGET;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if ((r = manager_load_unit(UNIT(m)->manager, target, NULL, NULL, &tu)) < 0)
|
|
||||||
+ r = manager_load_unit(UNIT(m)->manager, target, NULL, NULL, &tu);
|
|
||||||
+ if (r < 0)
|
|
||||||
return r;
|
|
||||||
|
|
||||||
- if (after)
|
|
||||||
- if ((r = unit_add_dependency_by_name(UNIT(m), UNIT_AFTER, after, NULL, true)) < 0)
|
|
||||||
+ if (tu_wants) {
|
|
||||||
+ r = unit_add_dependency_by_name(tu, UNIT_WANTS, tu_wants, NULL, true);
|
|
||||||
+ if (r < 0)
|
|
||||||
return r;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- if (after2)
|
|
||||||
- if ((r = unit_add_dependency_by_name(UNIT(m), UNIT_AFTER, after2, NULL, true)) < 0)
|
|
||||||
+ if (after) {
|
|
||||||
+ r = unit_add_dependency_by_name(UNIT(m), UNIT_AFTER, after, NULL, true);
|
|
||||||
+ if (r < 0)
|
|
||||||
return r;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
if (automount) {
|
|
||||||
Unit *am;
|
|
||||||
--
|
|
||||||
1.7.7
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:5f0c04e45e593c0903698f3ab3eb3e565d68de26a91858c470675a090a05cab5
|
|
||||||
size 896004
|
|
3
systemd-41.tar.xz
Normal file
3
systemd-41.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:edeb6d2fc9d55cf3ec0c09817e736238c224c615887ff23e8f314b52abe0468d
|
||||||
|
size 881864
|
@ -1,3 +1,28 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Feb 9 16:19:38 UTC 2012 - fcrozat@suse.com
|
||||||
|
|
||||||
|
- 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.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Feb 7 14:43:58 UTC 2012 - fcrozat@suse.com
|
Tue Feb 7 14:43:58 UTC 2012 - fcrozat@suse.com
|
||||||
|
|
||||||
|
@ -16,10 +16,9 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Name: systemd-gtk
|
Name: systemd-gtk
|
||||||
Url: http://www.freedesktop.org/wiki/Software/systemd
|
Url: http://www.freedesktop.org/wiki/Software/systemd
|
||||||
Version: 40
|
Version: 41
|
||||||
Release: 0
|
Release: 0
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
BuildRequires: audit-devel
|
BuildRequires: audit-devel
|
||||||
|
@ -1,3 +1,28 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Feb 9 16:19:38 UTC 2012 - fcrozat@suse.com
|
||||||
|
|
||||||
|
- 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.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Feb 7 14:43:58 UTC 2012 - fcrozat@suse.com
|
Tue Feb 7 14:43:58 UTC 2012 - fcrozat@suse.com
|
||||||
|
|
||||||
|
15
systemd.spec
15
systemd.spec
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
Name: systemd
|
Name: systemd
|
||||||
Url: http://www.freedesktop.org/wiki/Software/systemd
|
Url: http://www.freedesktop.org/wiki/Software/systemd
|
||||||
Version: 40
|
Version: 41
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: A System and Session Manager
|
Summary: A System and Session Manager
|
||||||
License: GPL-2.0+
|
License: GPL-2.0+
|
||||||
@ -36,6 +36,7 @@ BuildRequires: intltool
|
|||||||
BuildRequires: libacl-devel
|
BuildRequires: libacl-devel
|
||||||
BuildRequires: libcap-devel
|
BuildRequires: libcap-devel
|
||||||
BuildRequires: libcryptsetup-devel
|
BuildRequires: libcryptsetup-devel
|
||||||
|
BuildRequires: libkmod-devel
|
||||||
BuildRequires: libselinux-devel
|
BuildRequires: libselinux-devel
|
||||||
BuildRequires: libsepol-devel
|
BuildRequires: libsepol-devel
|
||||||
BuildRequires: libtool
|
BuildRequires: libtool
|
||||||
@ -84,13 +85,16 @@ Patch24: delay-fsck-cryptsetup-after-md-lvm-dmraid.patch
|
|||||||
Patch31: lock-opensuse.patch
|
Patch31: lock-opensuse.patch
|
||||||
Patch33: crypt-loop-file.patch
|
Patch33: crypt-loop-file.patch
|
||||||
Patch36: sysctl-modules.patch
|
Patch36: sysctl-modules.patch
|
||||||
|
Patch38: dm-lvm-after-local-fs-pre-target.patch
|
||||||
|
|
||||||
# Upstream First - Policy:
|
# Upstream First - Policy:
|
||||||
# Never add any patches to this package without the upstream commit id
|
# Never add any patches to this package without the upstream commit id
|
||||||
# in the patch. Any patches added here without a very good reason to make
|
# in the patch. Any patches added here without a very good reason to make
|
||||||
# an exception will be silently removed with the next version update.
|
# an exception will be silently removed with the next version update.
|
||||||
Patch21: no-tmpfs-fsck.patch
|
Patch21: no-tmpfs-fsck.patch
|
||||||
Patch37: remote-fs-after-network.patch
|
Patch37: fix-kmod-build.patch
|
||||||
|
Patch39: fix-message-after-chkconfig.patch
|
||||||
|
Patch40: is-enabled-non-existing-service.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Systemd is a system and service manager, compatible with SysV and LSB
|
Systemd is a system and service manager, compatible with SysV and LSB
|
||||||
@ -152,6 +156,9 @@ Plymouth integration for systemd
|
|||||||
%patch33 -p1
|
%patch33 -p1
|
||||||
%patch36 -p1
|
%patch36 -p1
|
||||||
%patch37 -p1
|
%patch37 -p1
|
||||||
|
%patch38 -p1
|
||||||
|
%patch39 -p1
|
||||||
|
%patch40 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
autoreconf -fiv
|
autoreconf -fiv
|
||||||
@ -189,7 +196,8 @@ ln -s ../bootsplash-startup.service %{buildroot}/lib/systemd/system/basic.target
|
|||||||
ln -s ../bootsplash-quit.service %{buildroot}/lib/systemd/system/multi-user.target.wants/
|
ln -s ../bootsplash-quit.service %{buildroot}/lib/systemd/system/multi-user.target.wants/
|
||||||
ln -s ../bootsplash-shutdown.service %{buildroot}/lib/systemd/system/shutdown.target.wants/
|
ln -s ../bootsplash-shutdown.service %{buildroot}/lib/systemd/system/shutdown.target.wants/
|
||||||
ln -s ../bootsplash-shutdown.service %{buildroot}/lib/systemd/system/reboot.target.wants/
|
ln -s ../bootsplash-shutdown.service %{buildroot}/lib/systemd/system/reboot.target.wants/
|
||||||
ln -s ../bin/systemd %{buildroot}/sbin/init
|
ln -s ../lib/systemd/systemd %{buildroot}/bin/systemd
|
||||||
|
ln -s ../lib/systemd/systemd %{buildroot}/sbin/init
|
||||||
ln -s ../bin/systemctl %{buildroot}/sbin/reboot
|
ln -s ../bin/systemctl %{buildroot}/sbin/reboot
|
||||||
ln -s ../bin/systemctl %{buildroot}/sbin/halt
|
ln -s ../bin/systemctl %{buildroot}/sbin/halt
|
||||||
ln -s ../bin/systemctl %{buildroot}/sbin/shutdown
|
ln -s ../bin/systemctl %{buildroot}/sbin/shutdown
|
||||||
@ -388,6 +396,7 @@ rm -rf %{buildroot}
|
|||||||
%dir /lib/systemd
|
%dir /lib/systemd
|
||||||
/lib/systemd/system
|
/lib/systemd/system
|
||||||
/lib/systemd/system-generators
|
/lib/systemd/system-generators
|
||||||
|
/lib/systemd/systemd
|
||||||
%dir /usr/lib/systemd
|
%dir /usr/lib/systemd
|
||||||
/usr/lib/systemd/user
|
/usr/lib/systemd/user
|
||||||
%dir %{_sysconfdir}/systemd
|
%dir %{_sysconfdir}/systemd
|
||||||
|
Loading…
Reference in New Issue
Block a user