diff --git a/0037-unit-do-not-order-timers.target-before-basic.target.patch b/0037-unit-do-not-order-timers.target-before-basic.target.patch new file mode 100644 index 0000000..bbbabed --- /dev/null +++ b/0037-unit-do-not-order-timers.target-before-basic.target.patch @@ -0,0 +1,58 @@ +From 3c6a000d5c291f998dba2eb4c8e351f4603ca985 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 2 Nov 2014 11:39:17 -0500 +Subject: [PATCH] unit: do not order timers.target before basic.target + +Since commit 19f8d037833f2 'timer: order OnCalendar units after +timer-sync.target if DefaultDependencies=no' timers might get a +dependency on time-sync.target, which does not really belong in early +boot. If ntp is enabled, time-sync.target might be delayed until a +network connection is established. + +It turns out that majority of timer units found in the wild do not +need to be started in early boot. Out of the timer units available in +Fedora 21, only systemd-readahead-done.timer and mdadm-last-resort@.timer +should be started early, but they both have DefaultDependencies=no, +so are not part of timers.target anyway. All the rest look like they +will be fine with being started a bit later (and the majority even +much later, since they run daily or weekly). + +Let timers.target be pulled in by basic.target, but without the +temporal dependency. This means timer units are started on a "best +effort" schedule. + +https://bugzilla.redhat.com/show_bug.cgi?id=1158206 +(cherry picked from commit 3b0217036040a6013faeab4eb9da7469e3bbcfb3) + +Conflicts: + units/basic.target +--- + units/basic.target | 4 +++- + units/timers.target | 3 +++ + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/units/basic.target b/units/basic.target +index b890d48bbc..abb63ec560 100644 +--- a/units/basic.target ++++ b/units/basic.target +@@ -8,6 +8,8 @@ + [Unit] + Description=Basic System + Documentation=man:systemd.special(7) ++ + Requires=sysinit.target ++After=sysinit.target + Wants=sockets.target timers.target paths.target slices.target +-After=sysinit.target sockets.target timers.target paths.target slices.target ++After=sockets.target paths.target slices.target +diff --git a/units/timers.target b/units/timers.target +index 07fda3d9d0..251fa68065 100644 +--- a/units/timers.target ++++ b/units/timers.target +@@ -8,3 +8,6 @@ + [Unit] + Description=Timers + Documentation=man:systemd.special(7) ++ ++DefaultDependencies=no ++Conflicts=shutdown.target diff --git a/0038-units-order-sd-journal-flush-after-sd-remount-fs.patch b/0038-units-order-sd-journal-flush-after-sd-remount-fs.patch new file mode 100644 index 0000000..c8d369f --- /dev/null +++ b/0038-units-order-sd-journal-flush-after-sd-remount-fs.patch @@ -0,0 +1,28 @@ +From 0ce3f7e212c826162b15f8b78b18a4646b791a6d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 2 Nov 2014 21:45:42 -0500 +Subject: [PATCH] units: order sd-journal-flush after sd-remount-fs + +Otherwise we could attempt to flush the journal while /var/log/ was +still ro, and silently skip journal flushing. + +The way that errors in flushing are handled should still be changed to +be more transparent and robust. + +(cherry picked from commit 1f1926aa5e836caa3bd6df43704aecd606135103) +--- + units/systemd-journal-flush.service.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/units/systemd-journal-flush.service.in b/units/systemd-journal-flush.service.in +index fa290897d6..98c91b4bc5 100644 +--- a/units/systemd-journal-flush.service.in ++++ b/units/systemd-journal-flush.service.in +@@ -11,6 +11,7 @@ Documentation=man:systemd-journald.service(8) man:journald.conf(5) + DefaultDependencies=no + Requires=systemd-journald.service + After=systemd-journald.service ++After=systemd-remount-fs.service + Before=systemd-user-sessions.service systemd-tmpfiles-setup.service + RequiresMountsFor=/var/log/journal + diff --git a/Accept-StartTimeout-options-for-compatibility.patch b/Accept-StartTimeout-options-for-compatibility.patch new file mode 100644 index 0000000..59b2281 --- /dev/null +++ b/Accept-StartTimeout-options-for-compatibility.patch @@ -0,0 +1,45 @@ +From 3cd561fcf1d419fd6484ae831bced6c842453e6f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 2 Nov 2014 19:08:06 -0500 +Subject: [PATCH] Accept StartTimeout* options for compatibility + +Assignments of 0/none are ignored, all others are warned about. +--- + src/core/main.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/src/core/main.c b/src/core/main.c +index d48604e673..a9ca34d8cb 100644 +--- a/src/core/main.c ++++ b/src/core/main.c +@@ -623,6 +623,9 @@ static int config_parse_join_controllers(const char *unit, + } + + static int parse_config_file(void) { ++ usec_t start_timeout_usec = 0; ++ FailureAction start_timeout_action = FAILURE_ACTION_NONE; ++ char *start_timeout_reboot_arg = NULL; + + const ConfigTableItem items[] = { + { "Manager", "LogLevel", config_parse_level2, 0, NULL }, +@@ -670,6 +673,9 @@ static int parse_config_file(void) { + { "Manager", "DefaultCPUAccounting", config_parse_bool, 0, &arg_default_cpu_accounting }, + { "Manager", "DefaultBlockIOAccounting", config_parse_bool, 0, &arg_default_blockio_accounting }, + { "Manager", "DefaultMemoryAccounting", config_parse_bool, 0, &arg_default_memory_accounting }, ++ { "Manager", "StartTimeoutSec", config_parse_sec, 0, &start_timeout_usec }, ++ { "Manager", "StartTimeoutAction", config_parse_failure_action, 0, &start_timeout_action }, ++ { "Manager", "StartTimeoutRebootArgument",config_parse_string, 0, &start_timeout_reboot_arg }, + {} + }; + +@@ -681,6 +687,10 @@ static int parse_config_file(void) { + config_item_table_lookup, items, + false, false, true, NULL); + ++ if (start_timeout_usec != 0 || start_timeout_action != FAILURE_ACTION_NONE) ++ log_warning("StartTimeoutSec, StartTimeoutAction, StartTimeoutRebootArgument settings have\n" ++ "been replaced by JobTimeoutSec, JobTimeoutAction, JobTimeoutReboot, ignoring."); ++ + return 0; + } + diff --git a/systemd.spec b/systemd.spec index d974bee..5430cba 100644 --- a/systemd.spec +++ b/systemd.spec @@ -16,7 +16,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 216 -Release: 6%{?gitcommit:.git%{gitcommit}}%{?dist} +Release: 7%{?gitcommit:.git%{gitcommit}}%{?dist} # For a breakdown of the licensing, see README License: LGPLv2+ and MIT and GPLv2+ Summary: A System and Service Manager @@ -77,8 +77,10 @@ Patch0033: 0033-scsi_id-fix-usage-spelling.patch Patch0034: 0034-libudev-Use-correct-free-function.patch Patch0035: 0035-Raise-level-of-Found-dependency.-lines.patch Patch0036: 0036-manager-do-not-print-timing-when-running-in-test-mod.patch +Patch0037: 0037-unit-do-not-order-timers.target-before-basic.target.patch +Patch0038: 0038-units-order-sd-journal-flush-after-sd-remount-fs.patch -Patch0996: unit-do-not-order-timers.target-before-basic.target.patch +Patch0996: Accept-StartTimeout-options-for-compatibility.patch Patch0997: units-remove-dev-log-to-always-create-symlink.patch Patch0998: fedora-disable-resolv.conf-symlink.patch Patch0999: fedora-add-bridge-sysctl-configuration.patch @@ -866,7 +868,7 @@ getent passwd systemd-journal-upload >/dev/null 2>&1 || useradd -r -l -g systemd %{_datadir}/systemd/gatewayd %changelog -* Sun Nov 02 2014 Zbigniew Jędrzejewski-Szmek - 216-6 +* Sun Nov 02 2014 Zbigniew Jędrzejewski-Szmek - 216-7 - Drop PackageKit.service from presets (#1154126) - Change libgudev1 to only require systemd-libs (#727499), there's no need to require full systemd stack. @@ -879,7 +881,8 @@ getent passwd systemd-journal-upload >/dev/null 2>&1 || useradd -r -l -g systemd - /dev/disk/by-path changes are pulled from upstream (#1157847) - boot and shutdown timeouts are disabled (#1154768, #1159641) - timers.target is not scheduled before basic.target (#1158206) -- Obsolete Finnish keymap is dropped (#1151958). +- Obsolete Finnish keymap is dropped (#1151958) +- StartTimeout* options are ignored to avoid warnings. * Thu Oct 16 2014 Zbigniew Jędrzejewski-Szmek - 216-5 - Tentative fix for #1099299.