[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1069881: bookworm-pu: package systemd/252.24-1~deb12u1



Control: retitle -1 bookworm-pu: package systemd/252.25-1~deb12u1

On Fri, 26 Apr 2024 11:47:51 +0100 Luca Boccassi <bluca@debian.org>
wrote:
> Package: release.debian.org
> Severity: normal
> Tags: bookworm
> User: release.debian.org@packages.debian.org
> Usertags: pu
> X-Debbugs-Cc: pkg-systemd-maintainers@lists.alioth.debian.org
> 
> Dear Release Team,
> 
> We would like to upload the latest stable point release of systemd
252
> to bookworm-p-u. Stable release branches are maintained upstream with
> the intention of providing bug fixes only and no compatibility
> breakages, and with automated non-trivial CI jobs that also cover
> Debian and Ubuntu. I have already uploaded to p-u.
> 
> Packaging changes are limited to refreshing patches. Debdiff
attached.
> The list of commits included can be seen at:
> 
> https://github.com/systemd/systemd-stable/compare/v252.23...v252.24

I have uploaded the next point release now, 252.25. Same as before,
just refreshing patches. The debdiff excludes hwdb generated IDs.

List of changes:

https://github.com/systemd/systemd-stable/compare/v252.24...v252.25

-- 
Kind regards,
Luca Boccassi
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/debian/changelog systemd-252.25/debian/changelog
--- systemd-252.24/debian/changelog	2024-04-26 01:34:18.000000000 +0100
+++ systemd-252.25/debian/changelog	2024-05-09 18:11:06.000000000 +0100
@@ -1,3 +1,10 @@
+systemd (252.25-1~deb12u1) bookworm; urgency=medium
+
+  * New upstream version 252.25
+  * Refresh patches for v252.25
+
+ -- Luca Boccassi <bluca@debian.org>  Thu, 09 May 2024 18:11:06 +0100
+
 systemd (252.24-1~deb12u1) bookworm; urgency=medium
 
   * New upstream version 252.24
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/debian/patches/debian/Don-t-enable-audit-by-default.patch systemd-252.25/debian/patches/debian/Don-t-enable-audit-by-default.patch
--- systemd-252.24/debian/patches/debian/Don-t-enable-audit-by-default.patch	2024-04-26 01:34:02.000000000 +0100
+++ systemd-252.25/debian/patches/debian/Don-t-enable-audit-by-default.patch	2024-05-09 18:10:47.000000000 +0100
@@ -29,7 +29,7 @@
  
        <varlistentry>
 diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c
-index a78e2c0..efeb50c 100644
+index 863575c..1b9b8e1 100644
 --- a/src/journal/journald-server.c
 +++ b/src/journal/journald-server.c
 @@ -2279,7 +2279,7 @@ int server_init(Server *s, const char *namespace) {
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/debian/patches/debian/Downgrade-a-couple-of-warnings-to-debug.patch systemd-252.25/debian/patches/debian/Downgrade-a-couple-of-warnings-to-debug.patch
--- systemd-252.24/debian/patches/debian/Downgrade-a-couple-of-warnings-to-debug.patch	2024-04-26 01:34:02.000000000 +0100
+++ systemd-252.25/debian/patches/debian/Downgrade-a-couple-of-warnings-to-debug.patch	2024-05-09 18:10:47.000000000 +0100
@@ -16,10 +16,10 @@
  3 files changed, 7 insertions(+), 3 deletions(-)
 
 diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c
-index 5f4d4b0..cf5e55f 100644
+index 11166f9..b049507 100644
 --- a/src/core/load-fragment.c
 +++ b/src/core/load-fragment.c
-@@ -543,6 +543,7 @@ static int patch_var_run(
+@@ -578,6 +578,7 @@ static int patch_var_run(
  
          const char *e;
          char *z;
@@ -27,7 +27,7 @@
  
          e = path_startswith(*path, "/var/run/");
          if (!e)
-@@ -552,7 +553,8 @@ static int patch_var_run(
+@@ -587,7 +588,8 @@ static int patch_var_run(
          if (!z)
                  return log_oom();
  
@@ -51,10 +51,10 @@
                                      "Please update package to include a native systemd unit file, in order to make it more safe and robust.", fpath);
  
 diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
-index 281284c..8952a26 100644
+index a186246..83f3e5c 100644
 --- a/src/tmpfiles/tmpfiles.c
 +++ b/src/tmpfiles/tmpfiles.c
-@@ -2991,6 +2991,7 @@ static int specifier_expansion_from_arg(const Specifier *specifier_table, Item *
+@@ -2992,6 +2992,7 @@ static int specifier_expansion_from_arg(const Specifier *specifier_table, Item *
  static int patch_var_run(const char *fname, unsigned line, char **path) {
          const char *k;
          char *n;
@@ -62,7 +62,7 @@
  
          assert(path);
          assert(*path);
-@@ -3016,7 +3017,8 @@ static int patch_var_run(const char *fname, unsigned line, char **path) {
+@@ -3017,7 +3018,8 @@ static int patch_var_run(const char *fname, unsigned line, char **path) {
          /* Also log about this briefly. We do so at LOG_NOTICE level, as we fixed up the situation automatically, hence
           * there's no immediate need for action by the user. However, in the interest of making things less confusing
           * to the user, let's still inform the user that these snippets should really be updated. */
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/debian/patches/debian/Re-enable-journal-forwarding-to-syslog.patch systemd-252.25/debian/patches/debian/Re-enable-journal-forwarding-to-syslog.patch
--- systemd-252.24/debian/patches/debian/Re-enable-journal-forwarding-to-syslog.patch	2024-04-26 01:34:02.000000000 +0100
+++ systemd-252.25/debian/patches/debian/Re-enable-journal-forwarding-to-syslog.patch	2024-05-09 18:10:47.000000000 +0100
@@ -30,7 +30,7 @@
          <literal>systemd.journald.forward_to_kmsg</literal>,
          <literal>systemd.journald.forward_to_console</literal>, and
 diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c
-index 77aef79..a78e2c0 100644
+index 31358cd..863575c 100644
 --- a/src/journal/journald-server.c
 +++ b/src/journal/journald-server.c
 @@ -2289,6 +2289,7 @@ int server_init(Server *s, const char *namespace) {
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/debian/patches/debian/Revert-core-set-RLIMIT_CORE-to-unlimited-by-default.patch systemd-252.25/debian/patches/debian/Revert-core-set-RLIMIT_CORE-to-unlimited-by-default.patch
--- systemd-252.24/debian/patches/debian/Revert-core-set-RLIMIT_CORE-to-unlimited-by-default.patch	2024-04-26 01:34:02.000000000 +0100
+++ systemd-252.25/debian/patches/debian/Revert-core-set-RLIMIT_CORE-to-unlimited-by-default.patch	2024-05-09 18:10:47.000000000 +0100
@@ -19,7 +19,7 @@
  2 files changed, 1 insertion(+), 21 deletions(-)
 
 diff --git a/src/core/main.c b/src/core/main.c
-index a0c7b42..914876e 100644
+index 7b51099..40a6612 100644
 --- a/src/core/main.c
 +++ b/src/core/main.c
 @@ -1650,24 +1650,6 @@ static void cmdline_take_random_seed(void) {
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/debian/patches/p11kit-switch-to-dlopen.patch systemd-252.25/debian/patches/p11kit-switch-to-dlopen.patch
--- systemd-252.24/debian/patches/p11kit-switch-to-dlopen.patch	2024-04-26 01:34:02.000000000 +0100
+++ systemd-252.25/debian/patches/p11kit-switch-to-dlopen.patch	2024-05-09 18:10:47.000000000 +0100
@@ -718,7 +718,7 @@
  }
  
 diff --git a/test/test-functions b/test/test-functions
-index da17bff..58257d4 100644
+index 097babf..dfb8db3 100644
 --- a/test/test-functions
 +++ b/test/test-functions
 @@ -1391,7 +1391,7 @@ install_missing_libraries() {
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/debian/salsa-ci.yml systemd-252.25/debian/salsa-ci.yml
--- systemd-252.24/debian/salsa-ci.yml	2024-04-26 01:34:18.000000000 +0100
+++ systemd-252.25/debian/salsa-ci.yml	2024-05-09 17:53:09.000000000 +0100
@@ -9,10 +9,10 @@
   # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1011649
   SALSA_CI_DISABLE_PIUPARTS: 1
   RELEASE: 'bookworm'
+  SALSA_CI_IMAGES_LINTIAN: ${SALSA_CI_IMAGES}/lintian:stable
   SALSA_CI_LINTIAN_SUPPRESS_TAGS: "bad-distribution-in-changes-file"
   # The following jobs all run on unstable, and cannot work because they expect
   # overrides, compiler flags, dependencies, etc to work as in unstable, but this
   # is a stable branch
-  SALSA_CI_DISABLE_LINTIAN: 1
   SALSA_CI_DISABLE_BLHC: 1
   SALSA_CI_DISABLE_REPROTEST: 1
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/man/systemd.journal-fields.xml systemd-252.25/man/systemd.journal-fields.xml
--- systemd-252.24/man/systemd.journal-fields.xml	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/man/systemd.journal-fields.xml	2024-05-09 17:47:40.000000000 +0100
@@ -491,8 +491,7 @@
       <varlistentry>
         <term><varname>OBJECT_PID=<replaceable>PID</replaceable></varname></term>
         <listitem>
-          <para>PID of the program that this message pertains to.
-          </para>
+          <para>PID of the program that this message pertains to.</para>
         </listitem>
       </varlistentry>
 
@@ -510,9 +509,8 @@
         <term><varname>OBJECT_SYSTEMD_UNIT=</varname></term>
         <term><varname>OBJECT_SYSTEMD_USER_UNIT=</varname></term>
         <listitem>
-          <para>These are additional fields added automatically by
-          <command>systemd-journald</command>. Their meaning is the
-          same as
+          <para>These are additional fields added automatically by <command>systemd-journald</command>.
+          Their meaning is the same as
           <varname>_UID=</varname>,
           <varname>_GID=</varname>,
           <varname>_COMM=</varname>,
@@ -530,6 +528,15 @@
           process which logged the message.</para>
         </listitem>
       </varlistentry>
+
+      <varlistentry>
+        <term><varname>OBJECT_SYSTEMD_INVOCATION_ID=</varname></term>
+        <listitem>
+          <para>An additional field added automatically by <command>systemd-journald</command>. The meaning
+          is mostly the same as <varname>_SYSTEMD_INVOCATION_ID=</varname>, with the difference described
+          above.</para>
+        </listitem>
+      </varlistentry>
     </variablelist>
 
   </refsect1>
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/man/systemd.network.xml systemd-252.25/man/systemd.network.xml
--- systemd-252.24/man/systemd.network.xml	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/man/systemd.network.xml	2024-05-09 17:47:40.000000000 +0100
@@ -354,13 +354,12 @@
       <varlistentry>
         <term><varname>LinkLocalAddressing=</varname></term>
         <listitem>
-          <para>Enables link-local address autoconfiguration. Accepts <option>yes</option>,
-          <option>no</option>, <option>ipv4</option>, and <option>ipv6</option>. An IPv6 link-local
-          address is configured when <option>yes</option> or <option>ipv6</option>. An IPv4 link-local
-          address is configured when <option>yes</option> or <option>ipv4</option> and when DHCPv4
-          autoconfiguration has been unsuccessful for some time. (IPv4 link-local address
-          autoconfiguration will usually happen in parallel with repeated attempts to acquire a DHCPv4
-          lease).</para>
+          <para>Enables link-local address autoconfiguration. Accepts a boolean, <option>ipv4</option>,
+          and <option>ipv6</option>. An IPv6 link-local address is configured when <option>yes</option>
+          or <option>ipv6</option>. An IPv4 link-local address is configured when <option>yes</option>
+          or <option>ipv4</option> and when DHCPv4 autoconfiguration has been unsuccessful for some time.
+          (IPv4 link-local address autoconfiguration will usually happen in parallel with repeated attempts
+          to acquire a DHCPv4 lease).</para>
 
           <para>Defaults to <option>no</option> when <varname>KeepMaster=</varname> or
           <varname>Bridge=</varname> is set or when the specified
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/shell-completion/bash/machinectl systemd-252.25/shell-completion/bash/machinectl
--- systemd-252.24/shell-completion/bash/machinectl	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/shell-completion/bash/machinectl	2024-05-09 17:47:40.000000000 +0100
@@ -106,8 +106,12 @@
         comps=$( __get_machines )
 
     elif __contains_word "$verb" ${VERBS[FILE]}; then
-        comps=$(compgen -f -- "cur")
-        compopt -o filenames
+        if (( COMP_CWORD == i + 1 )); then # first argument after verb
+            comps=$(compgen -f -- "$cur")
+            compopt -o filenames
+        else
+            comps=''
+        fi
     fi
 
     COMPREPLY=( $(compgen -W '$comps' -- "$cur") )
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/boot/bless-boot.c systemd-252.25/src/boot/bless-boot.c
--- systemd-252.24/src/boot/bless-boot.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/boot/bless-boot.c	2024-05-09 17:47:40.000000000 +0100
@@ -476,7 +476,7 @@
                 /* First, fsync() the directory these files are located in */
                 r = fsync_parent_at(fd, skip_slash(target));
                 if (r < 0)
-                        log_debug_errno(errno, "Failed to synchronize image directory, ignoring: %m");
+                        log_debug_errno(r, "Failed to synchronize image directory, ignoring: %m");
 
                 /* Secondly, syncfs() the whole file system these files are located in */
                 if (syncfs(fd) < 0)
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/boot/efi/boot.c systemd-252.25/src/boot/efi/boot.c
--- systemd-252.24/src/boot/efi/boot.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/boot/efi/boot.c	2024-05-09 17:47:40.000000000 +0100
@@ -2517,7 +2517,7 @@
         EFI_STATUS err;
         _cleanup_(file_closep) EFI_FILE *keys_basedir = NULL;
 
-        if (secure_boot_mode() != SECURE_BOOT_SETUP)
+        if (!IN_SET(secure_boot_mode(), SECURE_BOOT_SETUP, SECURE_BOOT_AUDIT))
                 return EFI_SUCCESS;
 
         /* the lack of a 'keys' directory is not fatal and is silently ignored */
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/core/core-varlink.c systemd-252.25/src/core/core-varlink.c
--- systemd-252.24/src/core/core-varlink.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/core/core-varlink.c	2024-05-09 17:47:40.000000000 +0100
@@ -504,13 +504,21 @@
         if (!MANAGER_IS_TEST_RUN(m)) {
                 (void) mkdir_p_label("/run/systemd/userdb", 0755);
 
-                r = varlink_server_listen_address(s, "/run/systemd/userdb/io.systemd.DynamicUser", 0666);
-                if (r < 0)
-                        return log_error_errno(r, "Failed to bind to varlink socket: %m");
+                FOREACH_STRING(address, "/run/systemd/userdb/io.systemd.DynamicUser", VARLINK_ADDR_PATH_MANAGED_OOM_SYSTEM) {
+                        if (MANAGER_IS_RELOADING(m)) {
+                                /* If manager is reloading, we skip listening on existing addresses, since
+                                 * the fd should be acquired later through deserialization. */
+                                if (access(address, F_OK) >= 0)
+                                        continue;
+                                if (errno != ENOENT)
+                                        return log_error_errno(errno,
+                                                               "Failed to check if varlink socket '%s' exists: %m", address);
+                        }
 
-                r = varlink_server_listen_address(s, VARLINK_ADDR_PATH_MANAGED_OOM_SYSTEM, 0666);
-                if (r < 0)
-                        return log_error_errno(r, "Failed to bind to varlink socket: %m");
+                        r = varlink_server_listen_address(s, address, 0666);
+                        if (r < 0)
+                                return log_error_errno(r, "Failed to bind to varlink socket '%s': %m", address);
+                }
         }
 
         r = varlink_server_attach_event(s, m->event, SD_EVENT_PRIORITY_NORMAL);
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/core/dbus-unit.c systemd-252.25/src/core/dbus-unit.c
--- systemd-252.24/src/core/dbus-unit.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/core/dbus-unit.c	2024-05-09 17:47:40.000000000 +0100
@@ -2159,7 +2159,7 @@
                 return bus_set_transient_emergency_action(u, name, &u->job_timeout_action, message, flags, error);
 
         if (streq(name, "JobTimeoutRebootArgument"))
-                return bus_set_transient_string(u, name, &u->job_timeout_reboot_arg, message, flags, error);
+                return bus_set_transient_reboot_parameter(u, name, &u->job_timeout_reboot_arg, message, flags, error);
 
         if (streq(name, "StartLimitIntervalUSec"))
                 return bus_set_transient_usec(u, name, &u->start_ratelimit.interval, message, flags, error);
@@ -2183,7 +2183,7 @@
                 return bus_set_transient_exit_status(u, name, &u->success_action_exit_status, message, flags, error);
 
         if (streq(name, "RebootArgument"))
-                return bus_set_transient_string(u, name, &u->reboot_arg, message, flags, error);
+                return bus_set_transient_reboot_parameter(u, name, &u->reboot_arg, message, flags, error);
 
         if (streq(name, "CollectMode"))
                 return bus_set_transient_collect_mode(u, name, &u->collect_mode, message, flags, error);
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/core/dbus-util.c systemd-252.25/src/core/dbus-util.c
--- systemd-252.24/src/core/dbus-util.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/core/dbus-util.c	2024-05-09 17:47:40.000000000 +0100
@@ -6,6 +6,7 @@
 #include "escape.h"
 #include "parse-util.h"
 #include "path-util.h"
+#include "reboot-util.h"
 #include "unit-printf.h"
 #include "user-util.h"
 #include "unit.h"
@@ -39,6 +40,7 @@
 
 BUS_DEFINE_SET_TRANSIENT_STRING_WITH_CHECK(user_relaxed, valid_user_group_name_or_id_relaxed);
 BUS_DEFINE_SET_TRANSIENT_STRING_WITH_CHECK(path, path_is_absolute);
+BUS_DEFINE_SET_TRANSIENT_STRING_WITH_CHECK(reboot_parameter, reboot_parameter_is_valid);
 
 int bus_set_transient_string(
                 Unit *u,
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/core/dbus-util.h systemd-252.25/src/core/dbus-util.h
--- systemd-252.24/src/core/dbus-util.h	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/core/dbus-util.h	2024-05-09 17:47:40.000000000 +0100
@@ -239,6 +239,7 @@
 int bus_set_transient_unsigned(Unit *u, const char *name, unsigned *p, sd_bus_message *message, UnitWriteFlags flags, sd_bus_error *error);
 int bus_set_transient_user_relaxed(Unit *u, const char *name, char **p, sd_bus_message *message, UnitWriteFlags flags, sd_bus_error *error);
 int bus_set_transient_path(Unit *u, const char *name, char **p, sd_bus_message *message, UnitWriteFlags flags, sd_bus_error *error);
+int bus_set_transient_reboot_parameter(Unit *u, const char *name, char **p, sd_bus_message *message, UnitWriteFlags flags, sd_bus_error *error);
 int bus_set_transient_string(Unit *u, const char *name, char **p, sd_bus_message *message, UnitWriteFlags flags, sd_bus_error *error);
 int bus_set_transient_bool(Unit *u, const char *name, bool *p, sd_bus_message *message, UnitWriteFlags flags, sd_bus_error *error);
 int bus_set_transient_usec_internal(Unit *u, const char *name, usec_t *p, bool fix_0, sd_bus_message *message, UnitWriteFlags flags, sd_bus_error *error);
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/core/load-fragment.c systemd-252.25/src/core/load-fragment.c
--- systemd-252.24/src/core/load-fragment.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/core/load-fragment.c	2024-05-09 17:47:40.000000000 +0100
@@ -54,6 +54,7 @@
 #include "path-util.h"
 #include "percent-util.h"
 #include "process-util.h"
+#include "reboot-util.h"
 #if HAVE_SECCOMP
 #include "seccomp-util.h"
 #endif
@@ -357,6 +358,40 @@
                 return 0;
         }
 
+        return config_parse_string(unit, filename, line, section, section_line, lvalue, ltype, k, data, userdata);
+}
+
+int config_parse_reboot_parameter(
+                const char *unit,
+                const char *filename,
+                unsigned line,
+                const char *section,
+                unsigned section_line,
+                const char *lvalue,
+                int ltype,
+                const char *rvalue,
+                void *data,
+                void *userdata) {
+
+        _cleanup_free_ char *k = NULL;
+        const Unit *u = ASSERT_PTR(userdata);
+        int r;
+
+        assert(filename);
+        assert(line);
+        assert(rvalue);
+
+        r = unit_full_printf(u, rvalue, &k);
+        if (r < 0) {
+                log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to resolve unit specifiers in '%s', ignoring: %m", rvalue);
+                return 0;
+        }
+
+        if (!reboot_parameter_is_valid(k)) {
+                log_syntax(unit, LOG_WARNING, filename, line, 0, "Invalid reboot parameter '%s', ignoring.", k);
+                return 0;
+        }
+
         return config_parse_string(unit, filename, line, section, section_line, lvalue, ltype, k, data, userdata);
 }
 
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/core/load-fragment-gperf.gperf.in systemd-252.25/src/core/load-fragment-gperf.gperf.in
--- systemd-252.24/src/core/load-fragment-gperf.gperf.in	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/core/load-fragment-gperf.gperf.in	2024-05-09 17:47:40.000000000 +0100
@@ -303,7 +303,7 @@
 Unit.JobTimeoutSec,                      config_parse_job_timeout_sec,                0,                                  0
 Unit.JobRunningTimeoutSec,               config_parse_job_running_timeout_sec,        0,                                  0
 Unit.JobTimeoutAction,                   config_parse_emergency_action,               0,                                  offsetof(Unit, job_timeout_action)
-Unit.JobTimeoutRebootArgument,           config_parse_unit_string_printf,             0,                                  offsetof(Unit, job_timeout_reboot_arg)
+Unit.JobTimeoutRebootArgument,           config_parse_reboot_parameter,               0,                                  offsetof(Unit, job_timeout_reboot_arg)
 Unit.StartLimitIntervalSec,              config_parse_sec,                            0,                                  offsetof(Unit, start_ratelimit.interval)
 {# The following is a legacy alias name for compatibility #}
 Unit.StartLimitInterval,                 config_parse_sec,                            0,                                  offsetof(Unit, start_ratelimit.interval)
@@ -313,7 +313,7 @@
 Unit.SuccessAction,                      config_parse_emergency_action,               0,                                  offsetof(Unit, success_action)
 Unit.FailureActionExitStatus,            config_parse_exit_status,                    0,                                  offsetof(Unit, failure_action_exit_status)
 Unit.SuccessActionExitStatus,            config_parse_exit_status,                    0,                                  offsetof(Unit, success_action_exit_status)
-Unit.RebootArgument,                     config_parse_unit_string_printf,             0,                                  offsetof(Unit, reboot_arg)
+Unit.RebootArgument,                     config_parse_reboot_parameter,               0,                                  offsetof(Unit, reboot_arg)
 Unit.ConditionPathExists,                config_parse_unit_condition_path,            CONDITION_PATH_EXISTS,              offsetof(Unit, conditions)
 Unit.ConditionPathExistsGlob,            config_parse_unit_condition_path,            CONDITION_PATH_EXISTS_GLOB,         offsetof(Unit, conditions)
 Unit.ConditionPathIsDirectory,           config_parse_unit_condition_path,            CONDITION_PATH_IS_DIRECTORY,        offsetof(Unit, conditions)
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/core/load-fragment.h systemd-252.25/src/core/load-fragment.h
--- systemd-252.24/src/core/load-fragment.h	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/core/load-fragment.h	2024-05-09 17:47:40.000000000 +0100
@@ -21,6 +21,7 @@
 CONFIG_PARSER_PROTOTYPE(config_parse_unit_deps);
 CONFIG_PARSER_PROTOTYPE(config_parse_obsolete_unit_deps);
 CONFIG_PARSER_PROTOTYPE(config_parse_unit_string_printf);
+CONFIG_PARSER_PROTOTYPE(config_parse_reboot_parameter);
 CONFIG_PARSER_PROTOTYPE(config_parse_unit_strv_printf);
 CONFIG_PARSER_PROTOTYPE(config_parse_unit_path_printf);
 CONFIG_PARSER_PROTOTYPE(config_parse_colon_separated_paths);
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/core/main.c systemd-252.25/src/core/main.c
--- systemd-252.24/src/core/main.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/core/main.c	2024-05-09 17:47:40.000000000 +0100
@@ -2384,7 +2384,7 @@
 
                 r = putenv_dup(*p, true);
                 if (r < 0)
-                        log_warning_errno(errno, "Failed to setenv \"%s\", ignoring: %m", *p);
+                        log_warning_errno(r, "Failed to setenv \"%s\", ignoring: %m", *p);
         }
 }
 
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/core/manager-serialize.c systemd-252.25/src/core/manager-serialize.c
--- systemd-252.24/src/core/manager-serialize.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/core/manager-serialize.c	2024-05-09 17:47:40.000000000 +0100
@@ -533,21 +533,12 @@
                                 return -ENOMEM;
                 } else if ((val = startswith(l, "varlink-server-socket-address="))) {
                         if (!m->varlink_server && MANAGER_IS_SYSTEM(m)) {
-                                _cleanup_(varlink_server_unrefp) VarlinkServer *s = NULL;
-
-                                r = manager_setup_varlink_server(m, &s);
+                                r = manager_varlink_init(m);
                                 if (r < 0) {
                                         log_warning_errno(r, "Failed to setup varlink server, ignoring: %m");
                                         continue;
                                 }
 
-                                r = varlink_server_attach_event(s, m->event, SD_EVENT_PRIORITY_NORMAL);
-                                if (r < 0) {
-                                        log_warning_errno(r, "Failed to attach varlink connection to event loop, ignoring: %m");
-                                        continue;
-                                }
-
-                                m->varlink_server = TAKE_PTR(s);
                                 deserialize_varlink_sockets = true;
                         }
 
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/cryptsetup/cryptsetup-tokens/cryptsetup-token-systemd-fido2.c systemd-252.25/src/cryptsetup/cryptsetup-tokens/cryptsetup-token-systemd-fido2.c
--- systemd-252.24/src/cryptsetup/cryptsetup-tokens/cryptsetup-token-systemd-fido2.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/cryptsetup/cryptsetup-tokens/cryptsetup-token-systemd-fido2.c	2024-05-09 17:47:40.000000000 +0100
@@ -34,7 +34,7 @@
         const char *json;
         _cleanup_(erase_and_freep) char *pin_string = NULL;
 
-        assert(!pin || pin_size);
+        assert(pin || pin_size == 0);
         assert(token >= 0);
 
         /* This must not fail at this moment (internal error) */
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/cryptsetup/cryptsetup-tokens/cryptsetup-token-systemd-pkcs11.c systemd-252.25/src/cryptsetup/cryptsetup-tokens/cryptsetup-token-systemd-pkcs11.c
--- systemd-252.24/src/cryptsetup/cryptsetup-tokens/cryptsetup-token-systemd-pkcs11.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/cryptsetup/cryptsetup-tokens/cryptsetup-token-systemd-pkcs11.c	2024-05-09 17:47:40.000000000 +0100
@@ -33,7 +33,7 @@
         const char *json;
         int r;
 
-        assert(!pin || pin_size);
+        assert(pin || pin_size == 0);
         assert(token >= 0);
 
         /* This must not fail at this moment (internal error) */
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/cryptsetup/cryptsetup-tokens/cryptsetup-token-systemd-tpm2.c systemd-252.25/src/cryptsetup/cryptsetup-tokens/cryptsetup-token-systemd-tpm2.c
--- systemd-252.24/src/cryptsetup/cryptsetup-tokens/cryptsetup-token-systemd-tpm2.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/cryptsetup/cryptsetup-tokens/cryptsetup-token-systemd-tpm2.c	2024-05-09 17:47:40.000000000 +0100
@@ -56,7 +56,7 @@
         int r;
 
         assert(token >= 0);
-        assert(!pin || pin_size > 0);
+        assert(pin || pin_size == 0);
         assert(ret_password);
         assert(ret_password_len);
 
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/home/homed-manager.c systemd-252.25/src/home/homed-manager.c
--- systemd-252.24/src/home/homed-manager.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/home/homed-manager.c	2024-05-09 17:47:40.000000000 +0100
@@ -891,7 +891,7 @@
 
                 r = btrfs_is_subvol_fd(fd);
                 if (r < 0)
-                        return log_warning_errno(errno, "Failed to determine whether %s is a btrfs subvolume: %m", path);
+                        return log_warning_errno(r, "Failed to determine whether %s is a btrfs subvolume: %m", path);
                 if (r > 0)
                         storage = USER_SUBVOLUME;
                 else {
@@ -1415,7 +1415,7 @@
         /* Write out public key (note that we only do that as a help to the user, we don't make use of this ever */
         r = fopen_temporary("/var/lib/systemd/home/local.public", &fpublic, &temp_public);
         if (r < 0)
-                return log_error_errno(errno, "Failed to open key file for writing: %m");
+                return log_error_errno(r, "Failed to open key file for writing: %m");
 
         if (PEM_write_PUBKEY(fpublic, m->private_key) <= 0)
                 return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to write public key.");
@@ -1429,7 +1429,7 @@
         /* Write out the private key (this actually writes out both private and public, OpenSSL is confusing) */
         r = fopen_temporary("/var/lib/systemd/home/local.private", &fprivate, &temp_private);
         if (r < 0)
-                return log_error_errno(errno, "Failed to open key file for writing: %m");
+                return log_error_errno(r, "Failed to open key file for writing: %m");
 
         if (PEM_write_PrivateKey(fprivate, m->private_key, NULL, NULL, 0, NULL, 0) <= 0)
                 return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to write private key pair.");
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/home/homework-fscrypt.c systemd-252.25/src/home/homework-fscrypt.c
--- systemd-252.24/src/home/homework-fscrypt.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/home/homework-fscrypt.c	2024-05-09 17:47:40.000000000 +0100
@@ -224,7 +224,7 @@
 
         r = flistxattr_malloc(setup->root_fd, &xattr_buf);
         if (r < 0)
-                return log_error_errno(errno, "Failed to retrieve xattr list: %m");
+                return log_error_errno(r, "Failed to retrieve xattr list: %m");
 
         NULSTR_FOREACH(xa, xattr_buf) {
                 _cleanup_free_ void *salt = NULL, *encrypted = NULL;
@@ -672,7 +672,7 @@
 
         r = flistxattr_malloc(setup->root_fd, &xattr_buf);
         if (r < 0)
-                return log_error_errno(errno, "Failed to retrieve xattr list: %m");
+                return log_error_errno(r, "Failed to retrieve xattr list: %m");
 
         NULSTR_FOREACH(xa, xattr_buf) {
                 const char *nr;
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/home/homework-quota.c systemd-252.25/src/home/homework-quota.c
--- systemd-252.24/src/home/homework-quota.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/home/homework-quota.c	2024-05-09 17:47:40.000000000 +0100
@@ -113,7 +113,7 @@
 
                 r = btrfs_is_subvol(path);
                 if (r < 0)
-                        return log_error_errno(errno, "Failed to test if %s is a subvolume: %m", path);
+                        return log_error_errno(r, "Failed to test if %s is a subvolume: %m", path);
                 if (r == 0)
                         return log_error_errno(SYNTHETIC_ERRNO(ENOTTY), "Directory %s is not a subvolume, cannot apply quota.", path);
 
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/journal/journalctl.c systemd-252.25/src/journal/journalctl.c
--- systemd-252.24/src/journal/journalctl.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/journal/journalctl.c	2024-05-09 17:47:40.000000000 +0100
@@ -1048,7 +1048,7 @@
                 arg_boot_offset = 0;
         }
 
-        if (!!arg_directory + !!arg_file + !!arg_machine + !!arg_root + !!arg_image > 1)
+        if (!!arg_directory + !!arg_file + arg_file_stdin + !!arg_machine + !!arg_root + !!arg_image > 1)
                 return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
                                        "Please specify at most one of -D/--directory=, --file=, -M/--machine=, --root=, --image=.");
 
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/journal/journald-server.c systemd-252.25/src/journal/journald-server.c
--- systemd-252.24/src/journal/journald-server.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/journal/journald-server.c	2024-05-09 17:47:40.000000000 +0100
@@ -1016,7 +1016,7 @@
                 IOVEC_ADD_STRING_FIELD(iovec, n, o->slice, "OBJECT_SYSTEMD_SLICE");
                 IOVEC_ADD_STRING_FIELD(iovec, n, o->user_slice, "OBJECT_SYSTEMD_USER_SLICE");
 
-                IOVEC_ADD_ID128_FIELD(iovec, n, o->invocation_id, "OBJECT_SYSTEMD_INVOCATION_ID=");
+                IOVEC_ADD_ID128_FIELD(iovec, n, o->invocation_id, "OBJECT_SYSTEMD_INVOCATION_ID");
         }
 
         assert(n <= m);
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/journal-remote/journal-remote-main.c systemd-252.25/src/journal-remote/journal-remote-main.c
--- systemd-252.24/src/journal-remote/journal-remote-main.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/journal-remote/journal-remote-main.c	2024-05-09 17:47:40.000000000 +0100
@@ -107,7 +107,7 @@
 
         r = fd_nonblock(fd[0], true);
         if (r < 0)
-                log_warning_errno(errno, "Failed to set child pipe to non-blocking: %m");
+                log_warning_errno(r, "Failed to set child pipe to non-blocking: %m");
 
         return fd[0];
 }
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/libsystemd/sd-journal/sd-journal.c systemd-252.25/src/libsystemd/sd-journal/sd-journal.c
--- systemd-252.24/src/libsystemd/sd-journal/sd-journal.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/libsystemd/sd-journal/sd-journal.c	2024-05-09 17:47:40.000000000 +0100
@@ -2215,9 +2215,7 @@
         if (r < 0)
                 return r;
 
-        if (ret_boot_id)
-                *ret_boot_id = o->entry.boot_id;
-        else {
+        if (!ret_boot_id) {
                 sd_id128_t id;
 
                 r = sd_id128_get_boot(&id);
@@ -2230,6 +2228,8 @@
 
         if (ret)
                 *ret = le64toh(o->entry.monotonic);
+        if (ret_boot_id)
+                *ret_boot_id = o->entry.boot_id;
 
         return 0;
 }
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/login/logind-dbus.c systemd-252.25/src/login/logind-dbus.c
--- systemd-252.24/src/login/logind-dbus.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/login/logind-dbus.c	2024-05-09 17:47:40.000000000 +0100
@@ -2537,6 +2537,9 @@
         if (r < 0)
                 return r;
 
+        if (!reboot_parameter_is_valid(arg))
+                return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid reboot parameter '%s'.", arg);
+
         r = detect_container();
         if (r < 0)
                 return r;
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/nspawn/nspawn.c systemd-252.25/src/nspawn/nspawn.c
--- systemd-252.24/src/nspawn/nspawn.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/nspawn/nspawn.c	2024-05-09 17:47:40.000000000 +0100
@@ -2699,7 +2699,7 @@
 
         r = mount_nofollow_verbose(LOG_DEBUG, p, q, NULL, MS_BIND, NULL);
         if (r < 0)
-                return log_error_errno(errno, "Failed to bind mount journal from host into guest: %m");
+                return log_error_errno(r, "Failed to bind mount journal from host into guest: %m");
 
         return 0;
 }
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/portable/profile/default/service.conf systemd-252.25/src/portable/profile/default/service.conf
--- systemd-252.24/src/portable/profile/default/service.conf	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/portable/profile/default/service.conf	2024-05-09 17:47:40.000000000 +0100
@@ -4,7 +4,7 @@
 MountAPIVFS=yes
 BindReadOnlyPaths=/dev/log /run/systemd/journal/socket /run/systemd/journal/stdout
 BindReadOnlyPaths=/etc/machine-id
-BindReadOnlyPaths=/etc/resolv.conf
+BindReadOnlyPaths=-/etc/resolv.conf
 BindReadOnlyPaths=/run/dbus/system_bus_socket
 DynamicUser=yes
 RemoveIPC=yes
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/portable/profile/trusted/service.conf systemd-252.25/src/portable/profile/trusted/service.conf
--- systemd-252.24/src/portable/profile/trusted/service.conf	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/portable/profile/trusted/service.conf	2024-05-09 17:47:40.000000000 +0100
@@ -5,4 +5,4 @@
 PrivateTmp=yes
 BindPaths=/run
 BindReadOnlyPaths=/etc/machine-id
-BindReadOnlyPaths=/etc/resolv.conf
+BindReadOnlyPaths=-/etc/resolv.conf
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/resolve/resolved-dns-stream.c systemd-252.25/src/resolve/resolved-dns-stream.c
--- systemd-252.24/src/resolve/resolved-dns-stream.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/resolve/resolved-dns-stream.c	2024-05-09 17:47:40.000000000 +0100
@@ -195,7 +195,7 @@
                 /* Make sure all packets for this connection are sent on the same interface */
                 r = socket_set_unicast_if(s->fd, s->local.sa.sa_family, s->ifindex);
                 if (r < 0)
-                        log_debug_errno(errno, "Failed to invoke IP_UNICAST_IF/IPV6_UNICAST_IF: %m");
+                        log_debug_errno(r, "Failed to invoke IP_UNICAST_IF/IPV6_UNICAST_IF: %m");
         }
 
         s->identified = true;
@@ -454,7 +454,7 @@
         if (progressed && s->timeout_event_source) {
                 r = sd_event_source_set_time_relative(s->timeout_event_source, DNS_STREAM_ESTABLISHED_TIMEOUT_USEC);
                 if (r < 0)
-                        log_warning_errno(errno, "Couldn't restart TCP connection timeout, ignoring: %m");
+                        log_warning_errno(r, "Couldn't restart TCP connection timeout, ignoring: %m");
         }
 
         return 0;
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/resolve/resolved-dns-transaction.c systemd-252.25/src/resolve/resolved-dns-transaction.c
--- systemd-252.24/src/resolve/resolved-dns-transaction.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/resolve/resolved-dns-transaction.c	2024-05-09 17:47:40.000000000 +0100
@@ -2554,6 +2554,10 @@
                                         return r;
                                 if (r == 0)
                                         continue;
+
+                                /* If we were looking for the DS RR, don't request it again. */
+                                if (dns_transaction_key(t)->type == DNS_TYPE_DS)
+                                        continue;
                         }
 
                         r = dnssec_has_rrsig(t->answer, rr->key);
@@ -2627,6 +2631,21 @@
                         if (r < 0)
                                 return r;
 
+                        if (t->scope->dnssec_mode == DNSSEC_ALLOW_DOWNGRADE && dns_name_is_root(name)) {
+                                _cleanup_(dns_resource_key_unrefp) DnsResourceKey *soa = NULL;
+                                /* We made it all the way to the root zone. If we are in allow-downgrade
+                                 * mode, we need to make at least one request that we can be certain should
+                                 * have been signed, to test for servers that are not dnssec aware. */
+                                soa = dns_resource_key_new(rr->key->class, DNS_TYPE_SOA, name);
+                                if (!soa)
+                                        return -ENOMEM;
+
+                                log_debug("Requesting root zone SOA to probe dnssec support.");
+                                r = dns_transaction_request_dnssec_rr(t, soa);
+                                if (r < 0)
+                                        return r;
+                        }
+
                         break;
                 }
 
@@ -2853,7 +2872,12 @@
                         if (r == 0)
                                 continue;
 
-                        return FLAGS_SET(dt->answer_query_flags, SD_RESOLVED_AUTHENTICATED);
+                        if (!FLAGS_SET(dt->answer_query_flags, SD_RESOLVED_AUTHENTICATED))
+                                return false;
+
+                        /* We expect this to be signed when the DS record exists, and don't expect it to be
+                         * signed when the DS record is proven not to exist. */
+                        return dns_answer_match_key(dt->answer, dns_transaction_key(dt), NULL);
                 }
 
                 return true;
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/shared/clean-ipc.c systemd-252.25/src/shared/clean-ipc.c
--- systemd-252.24/src/shared/clean-ipc.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/shared/clean-ipc.c	2024-05-09 17:47:40.000000000 +0100
@@ -58,7 +58,7 @@
 
                 r = read_line(f, LONG_LINE_MAX, &line);
                 if (r < 0)
-                        return log_warning_errno(errno, "Failed to read /proc/sysvipc/shm: %m");
+                        return log_warning_errno(r, "Failed to read /proc/sysvipc/shm: %m");
                 if (r == 0)
                         break;
 
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/shared/reboot-util.c systemd-252.25/src/shared/reboot-util.c
--- systemd-252.24/src/shared/reboot-util.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/shared/reboot-util.c	2024-05-09 17:47:40.000000000 +0100
@@ -11,8 +11,15 @@
 #include "reboot-util.h"
 #include "string-util.h"
 #include "umask-util.h"
+#include "utf8.h"
 #include "virt.h"
 
+bool reboot_parameter_is_valid(const char *parameter) {
+        assert(parameter);
+
+        return ascii_is_valid(parameter) && strlen(parameter) <= NAME_MAX;
+}
+
 int update_reboot_parameter_and_warn(const char *parameter, bool keep) {
         int r;
 
@@ -30,6 +37,9 @@
                 return 0;
         }
 
+        if (!reboot_parameter_is_valid(parameter))
+                return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Invalid reboot parameter '%s'.", parameter);
+
         RUN_WITH_UMASK(0022) {
                 r = write_string_file("/run/systemd/reboot-param", parameter,
                                       WRITE_STRING_FILE_CREATE|WRITE_STRING_FILE_ATOMIC);
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/shared/reboot-util.h systemd-252.25/src/shared/reboot-util.h
--- systemd-252.24/src/shared/reboot-util.h	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/shared/reboot-util.h	2024-05-09 17:47:40.000000000 +0100
@@ -1,6 +1,7 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
+bool reboot_parameter_is_valid(const char *parameter);
 int update_reboot_parameter_and_warn(const char *parameter, bool keep);
 
 typedef enum RebootFlags {
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/systemctl/systemctl-enable.c systemd-252.25/src/systemctl/systemctl-enable.c
--- systemd-252.24/src/systemctl/systemctl-enable.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/systemctl/systemctl-enable.c	2024-05-09 17:47:40.000000000 +0100
@@ -73,7 +73,8 @@
         if (!argv[1])
                 return 0;
 
-        r = mangle_names("to enable", strv_skip(argv, 1), &names);
+        const char *operation = strjoina("to ", verb);
+        r = mangle_names(operation, strv_skip(argv, 1), &names);
         if (r < 0)
                 return r;
 
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/systemctl/systemctl-list-jobs.c systemd-252.25/src/systemctl/systemctl-list-jobs.c
--- systemd-252.24/src/systemctl/systemctl-list-jobs.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/systemctl/systemctl-list-jobs.c	2024-05-09 17:47:40.000000000 +0100
@@ -102,9 +102,9 @@
                         return table_log_add_error(r);
 
                 if (arg_jobs_after)
-                        output_waiting_jobs(bus, table, j->id, "GetJobAfter", "\twaiting for job");
+                        output_waiting_jobs(bus, table, j->id, "GetJobAfter", "\tblocking job");
                 if (arg_jobs_before)
-                        output_waiting_jobs(bus, table, j->id, "GetJobBefore", "\tblocking job");
+                        output_waiting_jobs(bus, table, j->id, "GetJobBefore", "\twaiting for job");
         }
 
         r = table_print(table, NULL);
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/test/test-bpf-foreign-programs.c systemd-252.25/src/test/test-bpf-foreign-programs.c
--- systemd-252.24/src/test/test-bpf-foreign-programs.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/test/test-bpf-foreign-programs.c	2024-05-09 17:47:40.000000000 +0100
@@ -253,7 +253,7 @@
         while (!IN_SET(SERVICE(u)->state, SERVICE_DEAD, SERVICE_FAILED)) {
                 r = sd_event_run(m->event, UINT64_MAX);
                 if (r < 0)
-                        return log_error_errno(errno, "Event run failed %m");
+                        return log_error_errno(r, "Event run failed %m");
         }
 
         cld_code = SERVICE(u)->exec_command[SERVICE_EXEC_START]->exec_status.code;
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/test/test-bpf-lsm.c systemd-252.25/src/test/test-bpf-lsm.c
--- systemd-252.24/src/test/test-bpf-lsm.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/test/test-bpf-lsm.c	2024-05-09 17:47:40.000000000 +0100
@@ -46,7 +46,7 @@
         while (!IN_SET(SERVICE(u)->state, SERVICE_DEAD, SERVICE_FAILED)) {
                 r = sd_event_run(m->event, UINT64_MAX);
                 if (r < 0)
-                        return log_error_errno(errno, "Event run failed %m");
+                        return log_error_errno(r, "Event run failed %m");
         }
 
         cld_code = SERVICE(u)->exec_command[SERVICE_EXEC_START]->exec_status.code;
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/test/test-socket-bind.c systemd-252.25/src/test/test-socket-bind.c
--- systemd-252.24/src/test/test-socket-bind.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/test/test-socket-bind.c	2024-05-09 17:47:40.000000000 +0100
@@ -83,7 +83,7 @@
         while (!IN_SET(SERVICE(u)->state, SERVICE_DEAD, SERVICE_FAILED)) {
                 r = sd_event_run(m->event, UINT64_MAX);
                 if (r < 0)
-                        return log_error_errno(errno, "Event run failed %m");
+                        return log_error_errno(r, "Event run failed %m");
         }
 
         cld_code = SERVICE(u)->exec_command[SERVICE_EXEC_START]->exec_status.code;
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/tmpfiles/tmpfiles.c systemd-252.25/src/tmpfiles/tmpfiles.c
--- systemd-252.24/src/tmpfiles/tmpfiles.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/tmpfiles/tmpfiles.c	2024-05-09 17:47:40.000000000 +0100
@@ -2134,7 +2134,7 @@
                 fdaction_t action) {
 
         struct stat st;
-        int r = 0, q;
+        int r = 0, q = 0;
 
         assert(i);
         assert(path);
@@ -2168,9 +2168,10 @@
                                 continue;
 
                         de_fd = openat(fd, de->d_name, O_NOFOLLOW|O_CLOEXEC|O_PATH);
-                        if (de_fd < 0)
-                                q = log_error_errno(errno, "Failed to open() file '%s': %m", de->d_name);
-                        else {
+                        if (de_fd < 0) {
+                                if (errno != -ENOENT)
+                                        q = log_error_errno(errno, "Failed to open file '%s': %m", de->d_name);
+                        } else {
                                 _cleanup_free_ char *de_path = NULL;
 
                                 de_path = path_join(path, de->d_name);
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/src/udev/udev-rules.c systemd-252.25/src/udev/udev-rules.c
--- systemd-252.24/src/udev/udev-rules.c	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/src/udev/udev-rules.c	2024-05-09 17:47:40.000000000 +0100
@@ -1196,7 +1196,7 @@
 
         r = hashmap_put_stats_by_path(&rules->stats_by_path, filename, &st);
         if (r < 0)
-                return log_warning_errno(errno, "Failed to save stat for %s, ignoring: %m", filename);
+                return log_warning_errno(r, "Failed to save stat for %s, ignoring: %m", filename);
 
         (void) fd_warn_permissions(filename, fileno(f));
 
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/test/test-functions systemd-252.25/test/test-functions
--- systemd-252.24/test/test-functions	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/test/test-functions	2024-05-09 17:47:40.000000000 +0100
@@ -2203,7 +2203,7 @@
     inst_any /usr/share/zoneinfo/Australia/Sydney
     inst_any /usr/share/zoneinfo/Europe/Berlin
     inst_any /usr/share/zoneinfo/Europe/Dublin
-    inst_any /usr/share/zoneinfo/Europe/Kiev
+    inst_any /usr/share/zoneinfo/Europe/Kyiv
     inst_any /usr/share/zoneinfo/Pacific/Auckland
     inst_any /usr/share/zoneinfo/Pacific/Honolulu
     inst_any /usr/share/zoneinfo/CET
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/test/units/testsuite-30.sh systemd-252.25/test/units/testsuite-30.sh
--- systemd-252.24/test/units/testsuite-30.sh	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/test/units/testsuite-30.sh	2024-05-09 17:47:40.000000000 +0100
@@ -16,7 +16,7 @@
 test ! -f /tmp/timezone-changed
 test ! -f /tmp/clock-changed
 
-timedatectl set-timezone Europe/Kiev
+timedatectl set-timezone Europe/Kyiv
 
 while test ! -f /tmp/timezone-changed ; do sleep .5 ; done
 
diff -Nru --exclude pnp_id_registry.html --exclude acpi_id_registry.html --exclude parse_hwdb.py --exclude acpi_id_registry.csv --exclude pnp_id_registry.csv --exclude usb.ids --exclude pci.ids --exclude ma-large.txt --exclude ma-medium.txt --exclude ma-small.txt --exclude '*hwdb.patch' --exclude '*hwdb' systemd-252.24/test/units/testsuite-45.sh systemd-252.25/test/units/testsuite-45.sh
--- systemd-252.24/test/units/testsuite-45.sh	2024-04-26 01:30:13.000000000 +0100
+++ systemd-252.25/test/units/testsuite-45.sh	2024-05-09 17:47:40.000000000 +0100
@@ -55,12 +55,12 @@
     assert_in "Local time:" "$(timedatectl --no-pager)"
 
     echo 'change timezone'
-    assert_eq "$(timedatectl --no-pager set-timezone Europe/Kiev 2>&1)" ""
-    assert_eq "$(readlink /etc/localtime | sed 's#^.*zoneinfo/##')" "Europe/Kiev"
+    assert_eq "$(timedatectl --no-pager set-timezone Europe/Kyiv 2>&1)" ""
+    assert_eq "$(readlink /etc/localtime | sed 's#^.*zoneinfo/##')" "Europe/Kyiv"
     if [[ -f /etc/timezone ]]; then
-        assert_eq "$(cat /etc/timezone)" "Europe/Kiev"
+        assert_eq "$(cat /etc/timezone)" "Europe/Kyiv"
     fi
-    assert_in "Time zone: Europe/Kiev \(EES*T, \+0[0-9]00\)" "$(timedatectl)"
+    assert_in "Time zone: Europe/Kyiv \(EES*T, \+0[0-9]00\)" "$(timedatectl)"
 
     if [[ -n "$ORIG_TZ" ]]; then
         echo 'reset timezone to original'

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: