summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS14
-rw-r--r--man/systemd-homed.service.xml7
-rw-r--r--man/systemd.preset.xml4
-rw-r--r--src/core/main.c27
-rw-r--r--units/systemd-homed.service.in2
5 files changed, 36 insertions, 18 deletions
diff --git a/NEWS b/NEWS
index 7f241fd642..75432a09df 100644
--- a/NEWS
+++ b/NEWS
@@ -281,6 +281,20 @@ CHANGES WITH 245:
to combine attachment with enablement and invocation, or detachment
with stopping and disablement.
+ * UPGRADE ISSUE: a bug where some jobs were trimmed as redundant was
+ fixed, which in turn exposed bugs in unit configuration of services
+ which have Type=oneshot and should only run once, but do not have
+ RemainAfterExit=yes set. Without RemainAfterExit=yes, a one-shot
+ service may be started again after exiting successfully, for example
+ as a dependency in another transaction. Affected services included
+ some internal systemd services (most notably
+ systemd-vconsole-setup.service, which was updated to have
+ RemainAfterExit=yes), and plymouth-start.service. Please ensure that
+ plymouth has been suitably updated or patched before upgrading to
+ this systemd release. See
+ https://bugzilla.redhat.com/show_bug.cgi?id=1807771 for some
+ additional discussion.
+
Contributions from: AJ Bagwell, Alin Popa, Andreas Rammhold, Anita
Zhang, Ansgar Burchardt, Antonio Russo, Arian van Putten, Ashley Davis,
Balint Reczey, Bart Willems, Bastien Nocera, Benjamin Dahlhoff, Charles
diff --git a/man/systemd-homed.service.xml b/man/systemd-homed.service.xml
index 26789a236a..f79c2be2db 100644
--- a/man/systemd-homed.service.xml
+++ b/man/systemd-homed.service.xml
@@ -18,7 +18,7 @@
<refnamediv>
<refname>systemd-homed.service</refname>
<refname>systemd-homed</refname>
- <refpurpose>Home Directory/User Account Manager</refpurpose>
+ <refpurpose>Home Area/User Account Manager</refpurpose>
</refnamediv>
<refsynopsisdiv>
@@ -30,13 +30,14 @@
<title>Description</title>
<para><command>systemd-homed</command> is a system service that may be used to create, remove, change or
- inspect home directories.</para>
+ inspect home areas (directories and network mounts and real or loopback block devices with a filesystem,
+ optionally encrypted).</para>
<para>Most of <command>systemd-homed</command>'s functionality is accessible through the
<citerefentry><refentrytitle>homectl</refentrytitle><manvolnum>1</manvolnum></citerefentry> command.</para>
<para>See the <ulink url="https://systemd.io/HOME_DIRECTORY">Home Directories</ulink> documentation for
- details about the format and design of home directories managed by
+ details about the format and design of home areas managed by
<filename>systemd-homed.service</filename>.</para>
<para>Each home directory managed by <filename>systemd-homed.service</filename> synthesizes a local user
diff --git a/man/systemd.preset.xml b/man/systemd.preset.xml
index 30c838b3d0..795da35ec8 100644
--- a/man/systemd.preset.xml
+++ b/man/systemd.preset.xml
@@ -70,8 +70,8 @@
either the word <literal>enable</literal> or
<literal>disable</literal> followed by a space and a unit name
(possibly with shell style wildcards), separated by newlines.
- Empty lines and lines whose first non-whitespace character is # or
- ; are ignored.</para>
+ Empty lines and lines whose first non-whitespace character is <literal>#</literal> or
+ <literal>;</literal> are ignored.</para>
<para>Presets must refer to the "real" unit file, and not to any aliases. See
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
diff --git a/src/core/main.c b/src/core/main.c
index ac82c723ea..1a1e09035b 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -1995,21 +1995,21 @@ static int do_queue_default_job(
const char **ret_error_message) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
- const char* default_unit;
- Job *default_unit_job;
- Unit *target = NULL;
+ const char *unit;
+ Job *job;
+ Unit *target;
int r;
if (arg_default_unit)
- default_unit = arg_default_unit;
+ unit = arg_default_unit;
else if (in_initrd())
- default_unit = SPECIAL_INITRD_TARGET;
+ unit = SPECIAL_INITRD_TARGET;
else
- default_unit = SPECIAL_DEFAULT_TARGET;
+ unit = SPECIAL_DEFAULT_TARGET;
- log_debug("Activating default unit: %s", default_unit);
+ log_debug("Activating default unit: %s", unit);
- r = manager_load_startable_unit_or_warn(m, default_unit, NULL, &target);
+ r = manager_load_startable_unit_or_warn(m, unit, NULL, &target);
if (r < 0 && in_initrd() && !arg_default_unit) {
/* Fall back to default.target, which we used to always use by default. Only do this if no
* explicit configuration was given. */
@@ -2031,13 +2031,13 @@ static int do_queue_default_job(
assert(target->load_state == UNIT_LOADED);
- r = manager_add_job(m, JOB_START, target, JOB_ISOLATE, NULL, &error, &default_unit_job);
+ r = manager_add_job(m, JOB_START, target, JOB_ISOLATE, NULL, &error, &job);
if (r == -EPERM) {
log_debug_errno(r, "Default target could not be isolated, starting instead: %s", bus_error_message(&error, r));
sd_bus_error_free(&error);
- r = manager_add_job(m, JOB_START, target, JOB_REPLACE, NULL, &error, &default_unit_job);
+ r = manager_add_job(m, JOB_START, target, JOB_REPLACE, NULL, &error, &job);
if (r < 0) {
*ret_error_message = "Failed to start default target";
return log_emergency_errno(r, "Failed to start default target: %s", bus_error_message(&error, r));
@@ -2046,9 +2046,12 @@ static int do_queue_default_job(
} else if (r < 0) {
*ret_error_message = "Failed to isolate default target";
return log_emergency_errno(r, "Failed to isolate default target: %s", bus_error_message(&error, r));
- }
+ } else
+ log_info("Queued %s job for default target %s.",
+ job_type_to_string(job->type),
+ unit_status_string(job->unit));
- m->default_unit_job_id = default_unit_job->id;
+ m->default_unit_job_id = job->id;
return 0;
}
diff --git a/units/systemd-homed.service.in b/units/systemd-homed.service.in
index 512804cf0e..7cf98e6fa6 100644
--- a/units/systemd-homed.service.in
+++ b/units/systemd-homed.service.in
@@ -8,7 +8,7 @@
# (at your option) any later version.
[Unit]
-Description=Home Manager
+Description=Home Area Manager
Documentation=man:systemd-homed.service(8)
RequiresMountsFor=/home