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. There are no packaging changes. Debdiff attached. The debdiff excludes hwdb generated IDs. The list of commits included can be seen at: https://github.com/systemd/systemd-stable/compare/v252.28...v252.29 -- 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.28/debian/changelog systemd-252.29/debian/changelog --- systemd-252.28/debian/changelog 2024-07-07 11:56:20.000000000 +0100 +++ systemd-252.29/debian/changelog 2024-07-25 13:49:17.000000000 +0100 @@ -1,3 +1,9 @@ +systemd (252.29-1~deb12u1) bookworm; urgency=medium + + * New upstream version 252.29 (Closes: #1074789) + + -- Luca Boccassi <bluca@debian.org> Thu, 25 Jul 2024 13:49:17 +0100 + systemd (252.28-1~deb12u1) bookworm; urgency=medium * New upstream version 252.28 (Closes: #1074789) 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.28/hwdb.d/meson.build systemd-252.29/hwdb.d/meson.build --- systemd-252.28/hwdb.d/meson.build 2024-07-07 11:52:10.000000000 +0100 +++ systemd-252.29/hwdb.d/meson.build 2024-07-25 13:45:32.000000000 +0100 @@ -29,6 +29,7 @@ '70-analyzers.hwdb', '70-av-production.hwdb', '70-cameras.hwdb', + '70-hardware-wallets.hwdb', '70-joystick.hwdb', '70-mouse.hwdb', '70-pda.hwdb', 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.28/man/systemd.service.xml systemd-252.29/man/systemd.service.xml --- systemd-252.28/man/systemd.service.xml 2024-07-07 11:52:10.000000000 +0100 +++ systemd-252.29/man/systemd.service.xml 2024-07-25 13:45:32.000000000 +0100 @@ -707,8 +707,8 @@ <listitem><para>Configures a maximum time for the service to run. If this is used and the service has been active for longer than the specified time it is terminated and put into a failure state. Note that this setting does not have any effect on <varname>Type=oneshot</varname> services, as they terminate immediately after - activation completed. Pass <literal>infinity</literal> (the default) to configure no runtime - limit.</para> + activation completed (use <varname>TimeoutStartSec=</varname> to limit their activation). + Pass <literal>infinity</literal> (the default) to configure no runtime limit.</para> <para>If a service of <varname>Type=notify</varname> sends <literal>EXTEND_TIMEOUT_USEC=…</literal>, this may cause the runtime to be extended beyond <varname>RuntimeMaxSec=</varname>. The first receipt of this message 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.28/man/systemd.unit.xml systemd-252.29/man/systemd.unit.xml --- systemd-252.28/man/systemd.unit.xml 2024-07-07 11:52:10.000000000 +0100 +++ systemd-252.29/man/systemd.unit.xml 2024-07-25 13:45:32.000000000 +0100 @@ -165,13 +165,13 @@ section. When the unit is enabled, symlinks will be created for those names, and removed when the unit is disabled. For example, <filename>reboot.target</filename> specifies <varname>Alias=ctrl-alt-del.target</varname>, so when enabled, the symlink - <filename>/etc/systemd/system/ctrl-alt-del.service</filename> pointing to the + <filename>/etc/systemd/system/ctrl-alt-del.target</filename> pointing to the <filename>reboot.target</filename> file will be created, and when <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>Del</keycap></keycombo> is invoked, - <command>systemd</command> will look for the <filename>ctrl-alt-del.service</filename> and execute - <filename>reboot.service</filename>. <command>systemd</command> does not look at the [Install] section at - all during normal operation, so any directives in that section only have an effect through the symlinks - created during enablement.</para> + <command>systemd</command> will look for <filename>ctrl-alt-del.target</filename>, follow the symlink to + <filename>reboot.target</filename>, and execute <filename>reboot.service</filename> as part of that target. + <command>systemd</command> does not look at the [Install] section at all during normal operation, so any + directives in that section only have an effect through the symlinks created during enablement.</para> <para>Along with a unit file <filename>foo.service</filename>, the directory <filename>foo.service.wants/</filename> may exist. All unit files symlinked from such a directory are @@ -805,7 +805,7 @@ type when precisely a unit has finished starting up. Most importantly, for service units start-up is considered completed for the purpose of <varname>Before=</varname>/<varname>After=</varname> when all its configured start-up commands have been invoked and they either failed or reported start-up - success. Note that this does includes <varname>ExecStartPost=</varname> (or + success. Note that this includes <varname>ExecStartPost=</varname> (or <varname>ExecStopPost=</varname> for the shutdown case).</para> <para>Note that those settings are independent of and orthogonal to the requirement dependencies as 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.28/mkosi.default.d/debian/10-mkosi.debian systemd-252.29/mkosi.default.d/debian/10-mkosi.debian --- systemd-252.28/mkosi.default.d/debian/10-mkosi.debian 2024-07-07 11:52:10.000000000 +0100 +++ systemd-252.29/mkosi.default.d/debian/10-mkosi.debian 2024-07-25 13:45:32.000000000 +0100 @@ -30,7 +30,7 @@ libip4tc2 libtss2-dev # Use the -dev package to avoid churn in updating version numbers netcat-openbsd - policykit-1 + polkitd procps quota xxd 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.28/mkosi.default.d/ubuntu/10-mkosi.ubuntu systemd-252.29/mkosi.default.d/ubuntu/10-mkosi.ubuntu --- systemd-252.28/mkosi.default.d/ubuntu/10-mkosi.ubuntu 2024-07-07 11:52:10.000000000 +0100 +++ systemd-252.29/mkosi.default.d/ubuntu/10-mkosi.ubuntu 2024-07-25 13:45:32.000000000 +0100 @@ -27,7 +27,7 @@ linux-tools-common linux-tools-generic netcat-openbsd - policykit-1 + polkitd procps quota xxd 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.28/rules.d/70-uaccess.rules.in systemd-252.29/rules.d/70-uaccess.rules.in --- systemd-252.28/rules.d/70-uaccess.rules.in 2024-07-07 11:52:10.000000000 +0100 +++ systemd-252.29/rules.d/70-uaccess.rules.in 2024-07-25 13:45:32.000000000 +0100 @@ -97,4 +97,8 @@ # This also allows accessing HID devices with the libusb backend of hidapi. SUBSYSTEM=="usb", ENV{ID_AV_PRODUCTION_CONTROLLER}=="1", TAG+="uaccess" +# Hardware wallets +SUBSYSTEM=="usb", ENV{ID_HARDWARE_WALLET}=="1", TAG+="uaccess" +SUBSYSTEM=="hidraw", ENV{ID_HARDWARE_WALLET}=="1", TAG+="uaccess" + LABEL="uaccess_end" 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.28/src/boot/efi/boot.c systemd-252.29/src/boot/efi/boot.c --- systemd-252.28/src/boot/efi/boot.c 2024-07-07 11:52:10.000000000 +0100 +++ systemd-252.29/src/boot/efi/boot.c 2024-07-25 13:45:32.000000000 +0100 @@ -1349,7 +1349,7 @@ return; /* Boot counter in the middle of the name? */ - if (!streq16(counter, suffix)) + if (!strcaseeq16(counter, suffix)) return; entry->tries_left = tries_left; 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.28/src/core/core-varlink.c systemd-252.29/src/core/core-varlink.c --- systemd-252.28/src/core/core-varlink.c 2024-07-07 11:52:10.000000000 +0100 +++ systemd-252.29/src/core/core-varlink.c 2024-07-25 13:45:32.000000000 +0100 @@ -5,6 +5,7 @@ #include "strv.h" #include "user-util.h" #include "varlink.h" +#include "varlink-internal.h" typedef struct LookupParameters { const char *user_name; @@ -486,46 +487,42 @@ } static int manager_varlink_init_system(Manager *m) { - _cleanup_(varlink_server_unrefp) VarlinkServer *s = NULL; int r; assert(m); - if (m->varlink_server) - return 1; - if (!MANAGER_IS_SYSTEM(m)) return 0; - r = manager_setup_varlink_server(m, &s); + r = manager_setup_varlink_server(m); if (r < 0) return log_error_errno(r, "Failed to set up varlink server: %m"); + bool fresh = r > 0; if (!MANAGER_IS_TEST_RUN(m)) { (void) mkdir_p_label("/run/systemd/userdb", 0755); 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) + if (!fresh) { + /* We might have got sockets through deserialization. Do not bind to them twice. */ + + bool found = false; + LIST_FOREACH(sockets, ss, m->varlink_server->sockets) + if (path_equal(ss->address, address)) { + found = true; + break; + } + + if (found) 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, address, 0666); + r = varlink_server_listen_address(m->varlink_server, 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); - if (r < 0) - return log_error_errno(r, "Failed to attach varlink connection to event loop: %m"); - - m->varlink_server = TAKE_PTR(s); return 1; } @@ -590,12 +587,17 @@ return 1; } -int manager_setup_varlink_server(Manager *m, VarlinkServer **ret) { +int manager_setup_varlink_server(Manager *m) { _cleanup_(varlink_server_unrefp) VarlinkServer *s = NULL; int r; assert(m); - assert(ret); + + if (m->varlink_server) + return 0; + + if (!MANAGER_IS_SYSTEM(m)) + return -EINVAL; r = varlink_server_new(&s, VARLINK_SERVER_ACCOUNT_UID|VARLINK_SERVER_INHERIT_USERDATA); if (r < 0) @@ -616,8 +618,12 @@ if (r < 0) return log_debug_errno(r, "Failed to register varlink disconnect handler: %m"); - *ret = TAKE_PTR(s); - return 0; + r = varlink_server_attach_event(s, m->event, SD_EVENT_PRIORITY_NORMAL); + if (r < 0) + return log_debug_errno(r, "Failed to attach varlink connection to event loop: %m"); + + m->varlink_server = TAKE_PTR(s); + return 1; } int manager_varlink_init(Manager *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.28/src/core/core-varlink.h systemd-252.29/src/core/core-varlink.h --- systemd-252.28/src/core/core-varlink.h 2024-07-07 11:52:10.000000000 +0100 +++ systemd-252.29/src/core/core-varlink.h 2024-07-25 13:45:32.000000000 +0100 @@ -8,7 +8,7 @@ /* Creates a new VarlinkServer and binds methods. Does not set up sockets or attach events. * Used for manager serialize/deserialize. */ -int manager_setup_varlink_server(Manager *m, VarlinkServer **ret_s); +int manager_setup_varlink_server(Manager *m); /* The manager is expected to send an update to systemd-oomd if one of the following occurs: * - The value of ManagedOOM*= properties change 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.28/src/core/import-creds.c systemd-252.29/src/core/import-creds.c --- systemd-252.28/src/core/import-creds.c 2024-07-07 11:52:10.000000000 +0100 +++ systemd-252.29/src/core/import-creds.c 2024-07-25 13:45:32.000000000 +0100 @@ -585,9 +585,11 @@ return log_oom(); r = read_virtual_file(p, sizeof(dmi_field_header) + CREDENTIALS_TOTAL_SIZE_MAX, (char**) &data, &size); + if (r == -ENOENT) /* Once we reach ENOENT there are no more DMI Type 11 fields around. */ + break; if (r < 0) { /* Once we reach ENOENT there are no more DMI Type 11 fields around. */ - log_full_errno(r == -ENOENT ? LOG_DEBUG : LOG_WARNING, r, "Failed to open '%s', ignoring: %m", p); + log_warning_errno(r, "Failed to open '%s', ignoring: %m", p); 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.28/src/core/manager-serialize.c systemd-252.29/src/core/manager-serialize.c --- systemd-252.28/src/core/manager-serialize.c 2024-07-07 11:52:10.000000000 +0100 +++ systemd-252.29/src/core/manager-serialize.c 2024-07-25 13:45:32.000000000 +0100 @@ -533,7 +533,7 @@ return -ENOMEM; } else if ((val = startswith(l, "varlink-server-socket-address="))) { if (!m->varlink_server && MANAGER_IS_SYSTEM(m)) { - r = manager_varlink_init(m); + r = manager_setup_varlink_server(m); if (r < 0) { log_warning_errno(r, "Failed to setup varlink server, ignoring: %m"); continue; 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.28/src/core/path.c systemd-252.29/src/core/path.c --- systemd-252.28/src/core/path.c 2024-07-07 11:52:10.000000000 +0100 +++ systemd-252.29/src/core/path.c 2024-07-25 13:45:32.000000000 +0100 @@ -81,7 +81,7 @@ tmp = *cut; *cut = '\0'; - flags = IN_MOVE_SELF | IN_DELETE_SELF | IN_ATTRIB | IN_CREATE | IN_MOVED_TO; + flags = IN_MOVE_SELF | IN_DELETE_SELF | IN_CREATE | IN_MOVED_TO; } else { cut = NULL; flags = flags_table[s->type]; 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.28/src/libsystemd/sd-device/device-enumerator.c systemd-252.29/src/libsystemd/sd-device/device-enumerator.c --- systemd-252.28/src/libsystemd/sd-device/device-enumerator.c 2024-07-07 11:52:10.000000000 +0100 +++ systemd-252.29/src/libsystemd/sd-device/device-enumerator.c 2024-07-25 13:45:32.000000000 +0100 @@ -688,13 +688,11 @@ dir = opendir(path); if (!dir) { - bool ignore = errno == ENOENT; + /* This is necessarily racey, so ignore missing directories */ + if (errno == ENOENT) + return 0; - /* this is necessarily racey, so ignore missing directories */ - log_debug_errno(errno, - "sd-device-enumerator: Failed to open directory %s%s: %m", - path, ignore ? ", ignoring" : ""); - return ignore ? 0 : -errno; + return log_debug_errno(errno, "sd-device-enumerator: Failed to open directory '%s': %m", path); } FOREACH_DIRENT_ALL(de, dir, return -errno) { @@ -754,12 +752,10 @@ dir = opendir(path); if (!dir) { - bool ignore = errno == ENOENT; + if (errno == ENOENT) + return 0; - log_debug_errno(errno, - "sd-device-enumerator: Failed to open directory %s%s: %m", - path, ignore ? ", ignoring" : ""); - return ignore ? 0 : -errno; + return log_debug_errno(errno, "sd-device-enumerator: Failed to open directory '%s': %m", path); } FOREACH_DIRENT_ALL(de, dir, return -errno) { @@ -791,12 +787,10 @@ dir = opendir(path); if (!dir) { - bool ignore = errno == ENOENT; + if (errno == ENOENT) + return 0; - log_debug_errno(errno, - "sd-device-enumerator: Failed to open directory %s%s: %m", - path, ignore ? ", ignoring" : ""); - return ignore ? 0 : -errno; + return log_debug_errno(errno, "sd-device-enumerator: Failed to open directory '%s': %m", path); } /* TODO: filter away subsystems? */ @@ -879,12 +873,10 @@ dir = opendir(path); if (!dir) { - bool ignore = errno == ENOENT; + if (errno == ENOENT) + return 0; - log_debug_errno(errno, - "sd-device-enumerator: Failed to open directory %s%s: %m", - path, ignore ? ", ignoring" : ""); - return ignore ? 0 : -errno; + return log_debug_errno(errno, "sd-device-enumerator: Failed to open directory '%s': %m", path); } FOREACH_DIRENT_ALL(de, dir, return -errno) { 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.28/src/shared/bootspec.c systemd-252.29/src/shared/bootspec.c --- systemd-252.28/src/shared/bootspec.c 2024-07-07 11:52:10.000000000 +0100 +++ systemd-252.29/src/shared/bootspec.c 2024-07-25 13:45:32.000000000 +0100 @@ -522,6 +522,12 @@ assert(a); assert(b); + /* This mimics a function of the same name in src/boot/efi/sd-boot.c */ + + r = CMP(a->tries_left == 0, b->tries_left == 0); + if (r != 0) + return r; + r = CMP(!a->sort_key, !b->sort_key); if (r != 0) return r; @@ -540,7 +546,18 @@ return r; } - return -strverscmp_improved(a->id, b->id); + r = -strverscmp_improved(a->id, b->id); + if (r != 0) + return r; + + if (a->tries_left != UINT_MAX || b->tries_left != UINT_MAX) + return 0; + + r = -CMP(a->tries_left, b->tries_left); + if (r != 0) + return r; + + return CMP(a->tries_done, b->tries_done); } static void inode_hash_func(const struct stat *q, struct siphash *state) { 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.28/src/shared/exec-util.c systemd-252.29/src/shared/exec-util.c --- systemd-252.28/src/shared/exec-util.c 2024-07-07 11:52:10.000000000 +0100 +++ systemd-252.29/src/shared/exec-util.c 2024-07-25 13:45:32.000000000 +0100 @@ -557,5 +557,6 @@ va_end(ap); execv(path, l); + log_error_errno(errno, "Failed to execute %s: %m", path); _exit(EXIT_FAILURE); } 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.28/src/shared/spawn-polkit-agent.c systemd-252.29/src/shared/spawn-polkit-agent.c --- systemd-252.28/src/shared/spawn-polkit-agent.c 2024-07-07 11:52:10.000000000 +0100 +++ systemd-252.29/src/shared/spawn-polkit-agent.c 2024-07-25 13:45:32.000000000 +0100 @@ -44,16 +44,21 @@ xsprintf(notify_fd, "%i", pipe_fd[1]); r = fork_agent("(polkit-agent)", - &pipe_fd[1], 1, + &pipe_fd[1], + 1, &agent_pid, POLKIT_AGENT_BINARY_PATH, - POLKIT_AGENT_BINARY_PATH, "--notify-fd", notify_fd, "--fallback", NULL); + POLKIT_AGENT_BINARY_PATH, + "--notify-fd", + notify_fd, + "--fallback", + NULL); /* Close the writing side, because that's the one for the agent */ safe_close(pipe_fd[1]); if (r < 0) - log_error_errno(r, "Failed to fork TTY ask password agent: %m"); + log_error_errno(r, "Failed to fork polkit agent: %m"); else /* Wait until the agent closes the fd */ (void) fd_wait_for_event(pipe_fd[0], POLLHUP, USEC_INFINITY); 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.28/src/shared/varlink.c systemd-252.29/src/shared/varlink.c --- systemd-252.28/src/shared/varlink.c 2024-07-07 11:52:10.000000000 +0100 +++ systemd-252.29/src/shared/varlink.c 2024-07-25 13:45:32.000000000 +0100 @@ -151,42 +151,6 @@ sd_event_source *defer_event_source; }; -typedef struct VarlinkServerSocket VarlinkServerSocket; - -struct VarlinkServerSocket { - VarlinkServer *server; - - int fd; - char *address; - - sd_event_source *event_source; - - LIST_FIELDS(VarlinkServerSocket, sockets); -}; - -struct VarlinkServer { - unsigned n_ref; - VarlinkServerFlags flags; - - LIST_HEAD(VarlinkServerSocket, sockets); - - Hashmap *methods; - VarlinkConnect connect_callback; - VarlinkDisconnect disconnect_callback; - - sd_event *event; - int64_t event_priority; - - unsigned n_connections; - Hashmap *by_uid; - - void *userdata; - char *description; - - unsigned connections_max; - unsigned connections_per_uid_max; -}; - static const char* const varlink_state_table[_VARLINK_STATE_MAX] = { [VARLINK_IDLE_CLIENT] = "idle-client", [VARLINK_AWAITING_REPLY] = "awaiting-reply", 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.28/src/shared/varlink-internal.h systemd-252.29/src/shared/varlink-internal.h --- systemd-252.28/src/shared/varlink-internal.h 2024-07-07 11:52:10.000000000 +0100 +++ systemd-252.29/src/shared/varlink-internal.h 2024-07-25 13:45:32.000000000 +0100 @@ -6,5 +6,47 @@ #include "fdset.h" #include "varlink.h" +typedef struct VarlinkServerSocket VarlinkServerSocket; + +struct VarlinkServerSocket { + VarlinkServer *server; + + int fd; + char *address; + + sd_event_source *event_source; + + LIST_FIELDS(VarlinkServerSocket, sockets); +}; + +struct VarlinkServer { + unsigned n_ref; + VarlinkServerFlags flags; + + LIST_HEAD(VarlinkServerSocket, sockets); + + Hashmap *methods; + VarlinkConnect connect_callback; + VarlinkDisconnect disconnect_callback; + + sd_event *event; + int64_t event_priority; + + unsigned n_connections; + Hashmap *by_uid; + + void *userdata; + char *description; + + unsigned connections_max; + unsigned connections_per_uid_max; +}; + +typedef struct VarlinkCollectContext { + JsonVariant *parameters; + const char *error_id; + VarlinkReplyFlags flags; +} VarlinkCollectContext ; + int varlink_server_serialize(VarlinkServer *s, FILE *f, FDSet *fds); int varlink_server_deserialize_one(VarlinkServer *s, const char *value, FDSet *fds);
Attachment:
signature.asc
Description: This is a digitally signed message part