diff --git a/SOURCES/0432-units-add-generic-boot-complete.target.patch b/SOURCES/0432-units-add-generic-boot-complete.target.patch new file mode 100644 index 0000000..912b230 --- /dev/null +++ b/SOURCES/0432-units-add-generic-boot-complete.target.patch @@ -0,0 +1,46 @@ +From dd573e5fbac858c20628052acfa19401d3e0d135 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Fri, 22 Jun 2018 12:52:28 +0200 +Subject: [PATCH] units: add generic boot-complete.target + +(cherry picked from commit 329d20db3cb02d789473b8f7e4a59526fcbf5728) + +Resolves: #1872243 +--- + units/boot-complete.target | 14 ++++++++++++++ + units/meson.build | 1 + + 2 files changed, 15 insertions(+) + create mode 100644 units/boot-complete.target + +diff --git a/units/boot-complete.target b/units/boot-complete.target +new file mode 100644 +index 0000000000..f0b9e57e7c +--- /dev/null ++++ b/units/boot-complete.target +@@ -0,0 +1,14 @@ ++# SPDX-License-Identifier: LGPL-2.1+ ++# ++# This file is part of systemd. ++# ++# systemd is free software; you can redistribute it and/or modify it ++# under the terms of the GNU Lesser General Public License as published by ++# the Free Software Foundation; either version 2.1 of the License, or ++# (at your option) any later version. ++ ++[Unit] ++Description=Boot Completion Check ++Documentation=man:systemd.special(7) ++Requires=sysinit.target ++After=sysinit.target +diff --git a/units/meson.build b/units/meson.build +index e118d81888..a1cd2524dc 100644 +--- a/units/meson.build ++++ b/units/meson.build +@@ -3,6 +3,7 @@ + units = [ + ['basic.target', ''], + ['bluetooth.target', ''], ++ ['boot-complete.target', ''], + ['cryptsetup-pre.target', 'HAVE_LIBCRYPTSETUP'], + ['cryptsetup.target', 'HAVE_LIBCRYPTSETUP', + 'sysinit.target.wants/'], diff --git a/SOURCES/0433-man-document-new-boot-complete.target-unit.patch b/SOURCES/0433-man-document-new-boot-complete.target-unit.patch new file mode 100644 index 0000000..376958c --- /dev/null +++ b/SOURCES/0433-man-document-new-boot-complete.target-unit.patch @@ -0,0 +1,53 @@ +From 8ad89170001c9aba8849630ddb5da81d9e24a1bc Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Mon, 25 Jun 2018 17:21:34 +0200 +Subject: [PATCH] man: document new "boot-complete.target" unit + +(cherry picked from commit 82ea38258c0f4964c2f3ad3691c6e4554c4f0bb0) + +Related: #1872243 +--- + man/systemd.special.xml | 23 +++++++++++++++++++++++ + 1 file changed, 23 insertions(+) + +diff --git a/man/systemd.special.xml b/man/systemd.special.xml +index fb12805fff..c9d4345016 100644 +--- a/man/systemd.special.xml ++++ b/man/systemd.special.xml +@@ -29,6 +29,7 @@ + cryptsetup-pre.target, + cryptsetup.target, + ctrl-alt-del.target, ++ boot-complete.target, + default.target, + emergency.target, + exit.target, +@@ -646,6 +647,28 @@ + + + ++ ++ boot-complete.target ++ ++ This target is intended as generic synchronization point for services that shall determine or act on ++ whether the boot process completed successfully. Order units that are required to succeed for a boot process ++ to be considered successful before this unit, and add a Requires= dependency from the ++ target unit to them. Order units that shall only run when the boot process is considered successful after the ++ target unit and pull in the target from it, also with Requires=. Note that by default this ++ target unit is not part of the initial boot transaction, but is supposed to be pulled in only if required by ++ units that want to run only on successful boots. ++ ++ See ++ systemd-boot-check-no-failures.service8 ++ for a service that implements a generic system health check and orders itself before ++ boot-complete.target. ++ ++ See ++ systemd-bless-boot.service8 ++ for a service that propagates boot success information to the boot loader, and orders itself after ++ boot-complete.target. ++ ++ + + syslog.socket + diff --git a/SOURCES/0434-core-make-sure-to-restore-the-control-command-id-too.patch b/SOURCES/0434-core-make-sure-to-restore-the-control-command-id-too.patch new file mode 100644 index 0000000..c5bd3e1 --- /dev/null +++ b/SOURCES/0434-core-make-sure-to-restore-the-control-command-id-too.patch @@ -0,0 +1,30 @@ +From 37f2576684d7494c916fd1f13275982f3c43f44f Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 22 Apr 2020 20:34:02 +0200 +Subject: [PATCH] core: make sure to restore the control command id, too + +Fixes: #15356 +(cherry picked from commit e9da62b18af647bfa73807e1c7fc3bfa4bb4b2ac) + +Resolves: #1829867 +--- + src/core/service.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/core/service.c b/src/core/service.c +index 89b41f6783..7cff419e4e 100644 +--- a/src/core/service.c ++++ b/src/core/service.c +@@ -2703,9 +2703,10 @@ static int service_deserialize_exec_command(Unit *u, const char *key, const char + break; + } + +- if (command && control) ++ if (command && control) { + s->control_command = command; +- else if (command) ++ s->control_command_id = id; ++ } else if (command) + s->main_command = command; + else + log_unit_warning(u, "Current command vanished from the unit file, execution of the command list won't be resumed."); diff --git a/SPECS/systemd.spec b/SPECS/systemd.spec index 71fc1e9..a8be922 100644 --- a/SPECS/systemd.spec +++ b/SPECS/systemd.spec @@ -13,7 +13,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 239 -Release: 39%{?dist} +Release: 40%{?dist} # For a breakdown of the licensing, see README License: LGPLv2+ and MIT and GPLv2+ Summary: System and Service Manager @@ -481,6 +481,9 @@ Patch0428: 0428-fix-mis-merge.patch Patch0429: 0429-tests-sleep-a-bit-and-give-kernel-time-to-perform-th.patch Patch0430: 0430-device-make-sure-we-emit-PropertiesChanged-signal-on.patch Patch0431: 0431-device-don-t-emit-PropetiesChanged-needlessly.patch +Patch0432: 0432-units-add-generic-boot-complete.target.patch +Patch0433: 0433-man-document-new-boot-complete.target-unit.patch +Patch0434: 0434-core-make-sure-to-restore-the-control-command-id-too.patch %ifarch %{ix86} x86_64 aarch64 @@ -1109,6 +1112,11 @@ fi %files tests -f .file-list-tests %changelog +* Fri Aug 28 2020 systemd maintenance team - 239-40 +- units: add generic boot-complete.target (#1872243) +- man: document new "boot-complete.target" unit (#1872243) +- core: make sure to restore the control command id, too (#1829867) + * Thu Aug 06 2020 systemd maintenance team - 239-39 - device: make sure we emit PropertiesChanged signal once we set sysfs (#1793533) - device: don't emit PropetiesChanged needlessly (#1793533)