Package: release.debian.org Severity: normal Tags: bookworm User: release.debian....@packages.debian.org Usertags: pu X-Debbugs-Cc: pkg-systemd-maintain...@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 refreshing patches and adding a missing dependency for one autopkgtest suite, that should now result in a fully green DebCI run. Attached debdiff excludes hwdb.d/ changes, which are just a large number of hardware vendor/devices IDs and constitutes the bulk of the changes. The list of commits included can be seen at: https://github.com/systemd/systemd-stable/compare/v252.21...v252.22 -- 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.21/debian/changelog systemd-252.22/debian/changelog --- systemd-252.21/debian/changelog 2023-12-24 14:29:22.000000000 +0000 +++ systemd-252.22/debian/changelog 2024-01-26 21:48:36.000000000 +0000 @@ -1,3 +1,12 @@ +systemd (252.22-1~deb12u1) bookworm; urgency=medium + + * d/t/control: add dependency on stress for upstream suite. Needed by + TEST-55-OOMD + * New upstream version 252.22 + * Refresh patches + + -- Luca Boccassi <bl...@debian.org> Fri, 26 Jan 2024 21:48:36 +0000 + systemd (252.21-1~deb12u1) bookworm; urgency=medium * New upstream version 252.21 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.21/debian/patches/debian/fsckd-daemon-for-inter-fsckd-communication.patch systemd-252.22/debian/patches/debian/fsckd-daemon-for-inter-fsckd-communication.patch --- systemd-252.21/debian/patches/debian/fsckd-daemon-for-inter-fsckd-communication.patch 2023-12-24 14:29:22.000000000 +0000 +++ systemd-252.22/debian/patches/debian/fsckd-daemon-for-inter-fsckd-communication.patch 2024-01-26 21:48:26.000000000 +0000 @@ -239,10 +239,10 @@ + +</refentry> diff --git a/meson.build b/meson.build -index b9f2c7e..d2b021d 100644 +index 27d95e7..9ace3e6 100644 --- a/meson.build +++ b/meson.build -@@ -3367,6 +3367,15 @@ executable( +@@ -3368,6 +3368,15 @@ executable( install : true, install_dir : rootlibexecdir) 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.21/debian/patches/debian/Revert-core-one-step-back-again-for-nspawn-we-actual.patch systemd-252.22/debian/patches/debian/Revert-core-one-step-back-again-for-nspawn-we-actual.patch --- systemd-252.21/debian/patches/debian/Revert-core-one-step-back-again-for-nspawn-we-actual.patch 2023-12-24 14:29:22.000000000 +0000 +++ systemd-252.22/debian/patches/debian/Revert-core-one-step-back-again-for-nspawn-we-actual.patch 2024-01-26 21:48:26.000000000 +0000 @@ -14,7 +14,7 @@ 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/core/unit.c b/src/core/unit.c -index 767e821..1f2651e 100644 +index 52df7ce..fb9a740 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -4646,16 +4646,7 @@ int unit_kill_context( 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.21/debian/patches/p11kit-switch-to-dlopen.patch systemd-252.22/debian/patches/p11kit-switch-to-dlopen.patch --- systemd-252.21/debian/patches/p11kit-switch-to-dlopen.patch 2023-12-24 14:29:22.000000000 +0000 +++ systemd-252.22/debian/patches/p11kit-switch-to-dlopen.patch 2024-01-26 21:48:26.000000000 +0000 @@ -13,10 +13,10 @@ 7 files changed, 202 insertions(+), 60 deletions(-) diff --git a/meson.build b/meson.build -index b250474..b9f2c7e 100644 +index 9de2309..27d95e7 100644 --- a/meson.build +++ b/meson.build -@@ -1461,8 +1461,10 @@ if want_p11kit != 'false' and not skip_deps +@@ -1462,8 +1462,10 @@ if want_p11kit != 'false' and not skip_deps version : '>= 0.23.3', required : want_p11kit == 'true') have = libp11kit.found() @@ -718,10 +718,10 @@ } diff --git a/test/test-functions b/test/test-functions -index 29f346f..c169635 100644 +index 73fbef8..0ba7ce2 100644 --- a/test/test-functions +++ b/test/test-functions -@@ -1369,7 +1369,7 @@ install_missing_libraries() { +@@ -1386,7 +1386,7 @@ install_missing_libraries() { local lib path # A number of dependencies is now optional via dlopen, so the install # script will not pick them up, since it looks at linkage. @@ -730,7 +730,7 @@ ddebug "Searching for $lib via pkg-config" if pkg-config --exists "$lib"; then path="$(pkg-config --variable=libdir "$lib")" -@@ -1381,6 +1381,10 @@ install_missing_libraries() { +@@ -1398,6 +1398,10 @@ install_missing_libraries() { if ! [[ ${lib} =~ ^lib ]]; then lib="lib${lib}" fi 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.21/debian/tests/control systemd-252.22/debian/tests/control --- systemd-252.21/debian/tests/control 2023-12-24 14:29:22.000000000 +0000 +++ systemd-252.22/debian/tests/control 2024-01-26 21:46:55.000000000 +0000 @@ -191,6 +191,7 @@ xkb-data, locales, locales-all, + stress, Restrictions: needs-root, allow-stderr, isolation-machine Tests: boot-smoke 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.21/factory/etc/pam.d/system-auth systemd-252.22/factory/etc/pam.d/system-auth --- systemd-252.21/factory/etc/pam.d/system-auth 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/factory/etc/pam.d/system-auth 2024-01-26 21:35:39.000000000 +0000 @@ -13,7 +13,7 @@ account required pam_permit.so -password sufficient pam_systemd_home.so -password sufficient pam_unix.so sha512 shadow try_first_pass use_authtok +password sufficient pam_unix.so sha512 shadow try_first_pass password required pam_deny.so -session optional pam_keyinit.so revoke 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.21/man/pam_systemd_home.xml systemd-252.22/man/pam_systemd_home.xml --- systemd-252.21/man/pam_systemd_home.xml 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/man/pam_systemd_home.xml 2024-01-26 21:35:39.000000000 +0000 @@ -148,7 +148,7 @@ account required pam_permit.so <command>-password sufficient pam_systemd_home.so</command> -password sufficient pam_unix.so sha512 shadow try_first_pass use_authtok +password sufficient pam_unix.so sha512 shadow try_first_pass password required pam_deny.so -session optional pam_keyinit.so revoke 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.21/man/pam_systemd.xml systemd-252.22/man/pam_systemd.xml --- systemd-252.21/man/pam_systemd.xml 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/man/pam_systemd.xml 2024-01-26 21:35:39.000000000 +0000 @@ -318,8 +318,7 @@ account required pam_permit.so -password sufficient pam_systemd_home.so -password sufficient pam_unix.so sha512 shadow try_first_pass use_authtok - +password sufficient pam_unix.so sha512 shadow try_first_pass password required pam_deny.so -session optional pam_keyinit.so revoke 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.21/man/systemctl.xml systemd-252.22/man/systemctl.xml --- systemd-252.21/man/systemctl.xml 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/man/systemctl.xml 2024-01-26 21:35:39.000000000 +0000 @@ -2287,9 +2287,10 @@ <term><option>--firmware-setup</option></term> <listitem> - <para>When used with the <command>reboot</command> command, indicate to the system's firmware to - reboot into the firmware setup interface. Note that this functionality is not available on all - systems.</para> + <para>When used with the <command>reboot</command>, <command>poweroff</command>, or + <command>halt</command> command, indicate to the system's firmware to reboot into the firmware + setup interface for the next boot. Note that this functionality is not available on all systems. + </para> </listitem> </varlistentry> @@ -2297,10 +2298,11 @@ <term><option>--boot-loader-menu=<replaceable>timeout</replaceable></option></term> <listitem> - <para>When used with the <command>reboot</command> command, indicate to the system's boot loader to - show the boot loader menu on the following boot. Takes a time value as parameter — indicating the - menu timeout. Pass zero in order to disable the menu timeout. Note that not all boot loaders - support this functionality.</para> + <para>When used with the <command>reboot</command>, <command>poweroff</command>, or + <command>halt</command> command, indicate to the system's boot loader to show the boot loader menu + on the following boot. Takes a time value as parameter — indicating the menu timeout. Pass zero + in order to disable the menu timeout. Note that not all boot loaders support this functionality. + </para> </listitem> </varlistentry> @@ -2308,10 +2310,11 @@ <term><option>--boot-loader-entry=<replaceable>ID</replaceable></option></term> <listitem> - <para>When used with the <command>reboot</command> command, indicate to the system's boot loader to - boot into a specific boot loader entry on the following boot. Takes a boot loader entry identifier - as argument, or <literal>help</literal> in order to list available entries. Note that not all boot - loaders support this functionality.</para> + <para>When used with the <command>reboot</command>, <command>poweroff</command>, or + <command>halt</command> command, indicate to the system's boot loader to boot into a specific + boot loader entry on the following boot. Takes a boot loader entry identifier as argument, + or <literal>help</literal> in order to list available entries. Note that not all boot loaders + support this functionality.</para> </listitem> </varlistentry> 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.21/man/systemd-analyze.xml systemd-252.22/man/systemd-analyze.xml --- systemd-252.21/man/systemd-analyze.xml 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/man/systemd-analyze.xml 2024-01-26 21:35:39.000000000 +0000 @@ -1253,6 +1253,7 @@ <xi:include href="user-system-options.xml" xpointer="machine" /> <varlistentry> + <term><option>-q</option></term> <term><option>--quiet</option></term> <listitem><para>Suppress hints and other non-essential output.</para></listitem> 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.21/man/systemd-detect-virt.xml systemd-252.22/man/systemd-detect-virt.xml --- systemd-252.21/man/systemd-detect-virt.xml 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/man/systemd-detect-virt.xml 2024-01-26 21:35:39.000000000 +0000 @@ -139,7 +139,7 @@ <row> <entry><varname>apple</varname></entry> - <entry><ulink url="https://developer.apple.com/documentation/virtualization">Apple Virtualization.framework</ulink></entry> + <entry><ulink url="https://developer.apple.com/documentation/virtualization">Apple virtualization framework</ulink></entry> </row> <row> @@ -148,6 +148,11 @@ </row> <row> + <entry><varname>google</varname></entry> + <entry><ulink url="https://cloud.google.com/compute">Google Compute Engine</ulink></entry> + </row> + + <row> <entry valign="top" morerows="9">Container</entry> <entry><varname>openvz</varname></entry> <entry>OpenVZ/Virtuozzo</entry> 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.21/meson.build systemd-252.22/meson.build --- systemd-252.21/meson.build 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/meson.build 2024-01-26 21:35:39.000000000 +0000 @@ -349,6 +349,7 @@ basic_disabled_warnings = [ '-Wno-missing-field-initializers', '-Wno-unused-parameter', + '-Wno-nonnull-compare', ] possible_common_cc_flags = [ 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.21/mkosi.default.d/debian/10-mkosi.debian systemd-252.22/mkosi.default.d/debian/10-mkosi.debian --- systemd-252.21/mkosi.default.d/debian/10-mkosi.debian 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/mkosi.default.d/debian/10-mkosi.debian 2024-01-26 21:35:39.000000000 +0000 @@ -23,6 +23,7 @@ libpam0g libpwquality1 libqrencode4 + libip4tc2 libtss2-dev # Use the -dev package to avoid churn in updating version numbers netcat-openbsd policykit-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.21/modprobe.d/systemd.conf systemd-252.22/modprobe.d/systemd.conf --- systemd-252.21/modprobe.d/systemd.conf 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/modprobe.d/systemd.conf 2024-01-26 21:35:39.000000000 +0000 @@ -18,3 +18,7 @@ # Do the same for dummy0. options dummy numdummies=0 + +# Do the same for ifb0. + +options ifb numifbs=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.21/.packit.yml systemd-252.22/.packit.yml --- systemd-252.21/.packit.yml 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/.packit.yml 2024-01-26 21:35:39.000000000 +0000 @@ -16,6 +16,13 @@ srpm_build_deps: [] actions: + get-current-version: + # Show the closest matching tag for the checked out revision, otherwise + # Packit tries to get the latest tag by creation date, which doesn't work + # well in the systemd-stable repo. We also need to sanitize it manually + # since "upstream_tag_template" defined above doesn't apply here. + - "bash -ec 'git describe --tags --abbrev=0 | cut -b 2-'" + post-upstream-clone: # Use the Fedora 38 specfile - "git clone --branch f38 https://src.fedoraproject.org/rpms/systemd .packit_rpm --depth=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.21/rules.d/50-udev-default.rules.in systemd-252.22/rules.d/50-udev-default.rules.in --- systemd-252.21/rules.d/50-udev-default.rules.in 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/rules.d/50-udev-default.rules.in 2024-01-26 21:35:39.000000000 +0000 @@ -14,6 +14,8 @@ SUBSYSTEM=="rtc", ATTR{hctosys}=="1", SYMLINK+="rtc" SUBSYSTEM=="rtc", KERNEL=="rtc0", SYMLINK+="rtc", OPTIONS+="link_priority=-100" +SUBSYSTEM=="hidraw", IMPORT{builtin}="hwdb" + SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", IMPORT{builtin}="usb_id", IMPORT{builtin}="hwdb --subsystem=usb" ENV{MODALIAS}!="", IMPORT{builtin}="hwdb --subsystem=$env{SUBSYSTEM}" 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.21/rules.d/99-systemd.rules.in systemd-252.22/rules.d/99-systemd.rules.in --- systemd-252.21/rules.d/99-systemd.rules.in 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/rules.d/99-systemd.rules.in 2024-01-26 21:35:39.000000000 +0000 @@ -73,7 +73,7 @@ # Pull in backlight save/restore for all backlight devices and # keyboard backlights SUBSYSTEM=="backlight", TAG+="systemd", IMPORT{builtin}="path_id", ENV{SYSTEMD_WANTS}+="systemd-backlight@backlight:$name.service" -SUBSYSTEM=="leds", KERNEL=="*kbd_backlight", TAG+="systemd", IMPORT{builtin}="path_id", ENV{SYSTEMD_WANTS}+="systemd-backlight@leds:$name.service" +SUBSYSTEM=="leds", KERNEL=="*kbd_backlight*", TAG+="systemd", IMPORT{builtin}="path_id", ENV{SYSTEMD_WANTS}+="systemd-backlight@leds:$name.service" {% endif %} # Pull in rfkill save/restore for all rfkill devices 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.21/shell-completion/bash/systemctl.in systemd-252.22/shell-completion/bash/systemctl.in --- systemd-252.21/shell-completion/bash/systemctl.in 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/shell-completion/bash/systemctl.in 2024-01-26 21:35:39.000000000 +0000 @@ -62,6 +62,8 @@ | { while read -r a b; do [[ $a =~ @\. ]] && echo " ${a%%@.*}@"; done; }; } __get_active_units () { __systemctl $1 list-units "$2*" \ | { while read -r a b; do echo " $a"; done; }; } +__get_active_services() { __systemctl $1 list-units "$2*.service" \ + | { while read -r a b; do echo " $a"; done; }; } __get_not_masked_unit_files() { # filter out masked, not-found, or template units. @@ -219,12 +221,15 @@ list-timers list-units list-unit-files poweroff reboot rescue show-environment suspend get-default is-system-running preset-all list-automounts' - [FILE]='link switch-root bind mount-image' + [FILE]='link switch-root' [TARGETS]='set-default' [MACHINES]='list-machines' [LOG_LEVEL]='log-level' [LOG_TARGET]='log-target' + [SERVICE_LOG_LEVEL]='service-log-level' + [SERVICE_LOG_TARGET]='service-log-target' [SERVICE_WATCHDOGS]='service-watchdogs' + [MOUNT]='bind mount-image' ) for ((i=0; i < COMP_CWORD; i++)); do @@ -353,8 +358,33 @@ comps='debug info notice warning err crit alert emerg' elif __contains_word "$verb" ${VERBS[LOG_TARGET]}; then comps='console journal kmsg journal-or-kmsg null' + elif __contains_word "$verb" ${VERBS[SERVICE_LOG_LEVEL]}; then + if __contains_word "$prev" ${VERBS[SERVICE_LOG_LEVEL]}; then + comps=$( __get_all_unit_files $mode "$cur" ) + elif __contains_word "$prev" debug info notice warning err crit alert emerg; then + return 0 + else + comps='debug info notice warning err crit alert emerg' + fi + elif __contains_word "$verb" ${VERBS[SERVICE_LOG_TARGET]}; then + if __contains_word "$prev" ${VERBS[SERVICE_LOG_TARGET]}; then + comps=$( __get_all_unit_files $mode "$cur" ) + elif __contains_word "$prev" console journal kmsg journal-or-kmsg null; then + return 0 + else + comps='console journal kmsg journal-or-kmsg null' + fi elif __contains_word "$verb" ${VERBS[SERVICE_WATCHDOGS]}; then comps='on off' + elif __contains_word "$verb" ${VERBS[MOUNT]}; then + if __contains_word "$prev" ${VERBS[MOUNT]}; then + comps=$( __get_active_services $mode "$cur" ) + elif [[ "$prev" =~ .service ]]; then + comps=$( compgen -A file -- "$cur" ) + compopt -o filenames + else + return 0 + fi fi COMPREPLY=( $(compgen -o filenames -W '$comps' -- "$cur_orig") ) 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.21/shell-completion/bash/systemd-analyze systemd-252.22/shell-completion/bash/systemd-analyze --- systemd-252.21/shell-completion/bash/systemd-analyze 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/shell-completion/bash/systemd-analyze 2024-01-26 21:35:39.000000000 +0000 @@ -57,7 +57,7 @@ local -A OPTS=( [STANDALONE]='-h --help --version --system --user --global --order --require --no-pager - --man=no --generators=yes --quiet' + --man=no --generators=yes -q --quiet' [ARG]='-H --host -M --machine --fuzz --from-pattern --to-pattern --root' ) 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.21/src/analyze/analyze.c systemd-252.22/src/analyze/analyze.c --- systemd-252.21/src/analyze/analyze.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/analyze/analyze.c 2024-01-26 21:35:39.000000000 +0000 @@ -318,7 +318,7 @@ assert(argc >= 0); assert(argv); - while ((c = getopt_long(argc, argv, "hH:M:U:", options, NULL)) >= 0) + while ((c = getopt_long(argc, argv, "hH:M:U:q", options, NULL)) >= 0) switch (c) { case 'h': 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.21/src/basic/alloc-util.h systemd-252.22/src/basic/alloc-util.h --- systemd-252.21/src/basic/alloc-util.h 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/basic/alloc-util.h 2024-01-26 21:35:39.000000000 +0000 @@ -20,7 +20,7 @@ * proceeding and smashing the stack limits. Note that by default RLIMIT_STACK is 8M on Linux. */ #define ALLOCA_MAX (4U*1024U*1024U) -#define new(t, n) ((t*) malloc_multiply(sizeof(t), (n))) +#define new(t, n) ((t*) malloc_multiply((n), sizeof(t))) #define new0(t, n) ((t*) calloc((n) ?: 1, sizeof(t))) @@ -45,9 +45,9 @@ (t*) alloca0((sizeof(t)*_n_)); \ }) -#define newdup(t, p, n) ((t*) memdup_multiply(p, sizeof(t), (n))) +#define newdup(t, p, n) ((t*) memdup_multiply(p, (n), sizeof(t))) -#define newdup_suffix0(t, p, n) ((t*) memdup_suffix0_multiply(p, sizeof(t), (n))) +#define newdup_suffix0(t, p, n) ((t*) memdup_suffix0_multiply(p, (n), sizeof(t))) #define malloc0(n) (calloc(1, (n) ?: 1)) @@ -112,7 +112,7 @@ return _unlikely_(need != 0 && size > (SIZE_MAX / need)); } -_malloc_ _alloc_(1, 2) static inline void *malloc_multiply(size_t size, size_t need) { +_malloc_ _alloc_(1, 2) static inline void *malloc_multiply(size_t need, size_t size) { if (size_multiply_overflow(size, need)) return NULL; @@ -128,7 +128,7 @@ } #endif -_alloc_(2, 3) static inline void *memdup_multiply(const void *p, size_t size, size_t need) { +_alloc_(2, 3) static inline void *memdup_multiply(const void *p, size_t need, size_t size) { if (size_multiply_overflow(size, need)) return NULL; @@ -137,7 +137,7 @@ /* Note that we can't decorate this function with _alloc_() since the returned memory area is one byte larger * than the product of its parameters. */ -static inline void *memdup_suffix0_multiply(const void *p, size_t size, size_t need) { +static inline void *memdup_suffix0_multiply(const void *p, size_t need, size_t size) { if (size_multiply_overflow(size, need)) return 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.21/src/basic/sigbus.c systemd-252.22/src/basic/sigbus.c --- systemd-252.21/src/basic/sigbus.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/basic/sigbus.c 2024-01-26 21:35:39.000000000 +0000 @@ -39,14 +39,14 @@ } /* If we can't, make sure the queue size is out of bounds, to - * mark it as overflow */ + * mark it as overflowed */ for (;;) { sig_atomic_t c; __atomic_thread_fence(__ATOMIC_SEQ_CST); c = n_sigbus_queue; - if (c > SIGBUS_QUEUE_MAX) /* already overflow */ + if (c > SIGBUS_QUEUE_MAX) /* already overflowed */ return; /* OK if we clobber c here, since we either immediately return @@ -69,7 +69,7 @@ if (_likely_(c == 0)) return 0; - if (_unlikely_(c >= SIGBUS_QUEUE_MAX)) + if (_unlikely_(c > SIGBUS_QUEUE_MAX)) return -EOVERFLOW; for (u = 0; u < SIGBUS_QUEUE_MAX; 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.21/src/basic/strv.c systemd-252.22/src/basic/strv.c --- systemd-252.21/src/basic/strv.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/basic/strv.c 2024-01-26 21:35:39.000000000 +0000 @@ -97,6 +97,22 @@ return TAKE_PTR(result); } +int strv_copy_unless_empty(char * const *l, char ***ret) { + assert(ret); + + if (strv_isempty(l)) { + *ret = NULL; + return 0; + } + + char **copy = strv_copy(l); + if (!copy) + return -ENOMEM; + + *ret = TAKE_PTR(copy); + return 1; +} + size_t strv_length(char * const *l) { size_t n = 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.21/src/basic/strv.h systemd-252.22/src/basic/strv.h --- systemd-252.21/src/basic/strv.h 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/basic/strv.h 2024-01-26 21:35:39.000000000 +0000 @@ -30,6 +30,7 @@ #define _cleanup_strv_free_erase_ _cleanup_(strv_free_erasep) char** strv_copy(char * const *l); +int strv_copy_unless_empty(char * const *l, char ***ret); size_t strv_length(char * const *l) _pure_; int strv_extend_strv(char ***a, char * const *b, bool filter_duplicates); 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.21/src/basic/virt.c systemd-252.22/src/basic/virt.c --- systemd-252.21/src/basic/virt.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/basic/virt.c 2024-01-26 21:35:39.000000000 +0000 @@ -53,6 +53,7 @@ { "ACRNACRNACRN", VIRTUALIZATION_ACRN }, /* https://www.lockheedmartin.com/en-us/products/Hardened-Security-for-Intel-Processors.html */ { "SRESRESRESRE", VIRTUALIZATION_SRE }, + { "Apple VZ", VIRTUALIZATION_APPLE }, }; uint32_t eax, ebx, ecx, edx; @@ -168,22 +169,23 @@ const char *vendor; Virtualization id; } dmi_vendor_table[] = { - { "KVM", VIRTUALIZATION_KVM }, - { "OpenStack", VIRTUALIZATION_KVM }, /* Detect OpenStack instance as KVM in non x86 architecture */ - { "KubeVirt", VIRTUALIZATION_KVM }, /* Detect KubeVirt instance as KVM in non x86 architecture */ - { "Amazon EC2", VIRTUALIZATION_AMAZON }, - { "QEMU", VIRTUALIZATION_QEMU }, - { "VMware", VIRTUALIZATION_VMWARE }, /* https://kb.vmware.com/s/article/1009458 */ - { "VMW", VIRTUALIZATION_VMWARE }, - { "innotek GmbH", VIRTUALIZATION_ORACLE }, - { "VirtualBox", VIRTUALIZATION_ORACLE }, - { "Xen", VIRTUALIZATION_XEN }, - { "Bochs", VIRTUALIZATION_BOCHS }, - { "Parallels", VIRTUALIZATION_PARALLELS }, + { "KVM", VIRTUALIZATION_KVM }, + { "OpenStack", VIRTUALIZATION_KVM }, /* Detect OpenStack instance as KVM in non x86 architecture */ + { "KubeVirt", VIRTUALIZATION_KVM }, /* Detect KubeVirt instance as KVM in non x86 architecture */ + { "Amazon EC2", VIRTUALIZATION_AMAZON }, + { "QEMU", VIRTUALIZATION_QEMU }, + { "VMware", VIRTUALIZATION_VMWARE }, /* https://kb.vmware.com/s/article/1009458 */ + { "VMW", VIRTUALIZATION_VMWARE }, + { "innotek GmbH", VIRTUALIZATION_ORACLE }, + { "VirtualBox", VIRTUALIZATION_ORACLE }, + { "Xen", VIRTUALIZATION_XEN }, + { "Bochs", VIRTUALIZATION_BOCHS }, + { "Parallels", VIRTUALIZATION_PARALLELS }, /* https://wiki.freebsd.org/bhyve */ - { "BHYVE", VIRTUALIZATION_BHYVE }, - { "Hyper-V", VIRTUALIZATION_MICROSOFT }, - { "Apple Virtualization", VIRTUALIZATION_APPLE }, + { "BHYVE", VIRTUALIZATION_BHYVE }, + { "Hyper-V", VIRTUALIZATION_MICROSOFT }, + { "Apple Virtualization", VIRTUALIZATION_APPLE }, + { "Google Compute Engine", VIRTUALIZATION_GOOGLE }, /* https://cloud.google.com/run/docs/container-contract#sandbox */ }; int r; @@ -986,7 +988,7 @@ return true; } - if (__get_cpuid(7, &eax, &ebx, &ecx, &edx)) { + if (__get_cpuid_count(7, 0, &eax, &ebx, &ecx, &edx)) { if (given_flag_in_set(flag, leaf7_ebx, ELEMENTSOF(leaf7_ebx), ebx)) return true; } @@ -1035,6 +1037,7 @@ [VIRTUALIZATION_POWERVM] = "powervm", [VIRTUALIZATION_APPLE] = "apple", [VIRTUALIZATION_SRE] = "sre", + [VIRTUALIZATION_GOOGLE] = "google", [VIRTUALIZATION_VM_OTHER] = "vm-other", [VIRTUALIZATION_SYSTEMD_NSPAWN] = "systemd-nspawn", 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.21/src/basic/virt.h systemd-252.22/src/basic/virt.h --- systemd-252.21/src/basic/virt.h 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/basic/virt.h 2024-01-26 21:35:39.000000000 +0000 @@ -27,6 +27,7 @@ VIRTUALIZATION_POWERVM, VIRTUALIZATION_APPLE, VIRTUALIZATION_SRE, + VIRTUALIZATION_GOOGLE, VIRTUALIZATION_VM_OTHER, VIRTUALIZATION_VM_LAST = VIRTUALIZATION_VM_OTHER, 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.21/src/boot/efi/util.h systemd-252.22/src/boot/efi/util.h --- systemd-252.21/src/boot/efi/util.h 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/boot/efi/util.h 2024-01-26 21:35:39.000000000 +0000 @@ -51,7 +51,7 @@ } _malloc_ _alloc_(1, 2) _returns_nonnull_ _warn_unused_result_ -static inline void *xmalloc_multiply(size_t size, size_t n) { +static inline void *xmalloc_multiply(size_t n, size_t size) { assert_se(!__builtin_mul_overflow(size, n, &size)); return xmalloc(size); } @@ -68,7 +68,7 @@ } #define xpool_print(fmt, ...) ((char16_t *) ASSERT_SE_PTR(PoolPrint((fmt), ##__VA_ARGS__))) -#define xnew(type, n) ((type *) xmalloc_multiply(sizeof(type), (n))) +#define xnew(type, n) ((type *) xmalloc_multiply((n), sizeof(type))) typedef struct { EFI_PHYSICAL_ADDRESS addr; 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.21/src/busctl/busctl.c systemd-252.22/src/busctl/busctl.c --- systemd-252.21/src/busctl/busctl.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/busctl/busctl.c 2024-01-26 21:35:39.000000000 +0000 @@ -1311,24 +1311,24 @@ if (r < 0) return log_error_errno(r, "Failed to process bus: %m"); - if (!is_monitor) { - const char *name; - - /* wait until we lose our unique name */ - if (sd_bus_message_is_signal(m, "org.freedesktop.DBus", "NameLost") <= 0) - continue; + if (m) { + if (!is_monitor) { + const char *name; - r = sd_bus_message_read(m, "s", &name); - if (r < 0) - return bus_log_parse_error(r); + /* wait until we lose our unique name */ + if (sd_bus_message_is_signal(m, "org.freedesktop.DBus", "NameLost") <= 0) + continue; + + r = sd_bus_message_read(m, "s", &name); + if (r < 0) + return bus_log_parse_error(r); - if (streq(name, unique_name)) - is_monitor = true; + if (streq(name, unique_name)) + is_monitor = true; - continue; - } + continue; + } - if (m) { dump(m, stdout); fflush(stdout); 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.21/src/cgtop/cgtop.c systemd-252.22/src/cgtop/cgtop.c --- systemd-252.21/src/cgtop/cgtop.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/cgtop/cgtop.c 2024-01-26 21:35:39.000000000 +0000 @@ -308,9 +308,9 @@ if (all_unified) { while (!isempty(l)) { - if (sscanf(l, "rbytes=%" SCNu64, &k)) + if (sscanf(l, "rbytes=%" SCNu64, &k) == 1) rd += k; - else if (sscanf(l, "wbytes=%" SCNu64, &k)) + else if (sscanf(l, "wbytes=%" SCNu64, &k) == 1) wr += k; l += strcspn(l, WHITESPACE); 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.21/src/core/unit.c systemd-252.22/src/core/unit.c --- systemd-252.21/src/core/unit.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/core/unit.c 2024-01-26 21:35:39.000000000 +0000 @@ -6099,7 +6099,7 @@ return r; } - if (ACTIVATION_DETAILS_VTABLE(details)->append_env) { + if (ACTIVATION_DETAILS_VTABLE(details)->append_pair) { r = ACTIVATION_DETAILS_VTABLE(details)->append_pair(details, strv); 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.21/src/cryptenroll/cryptenroll.c systemd-252.22/src/cryptenroll/cryptenroll.c --- systemd-252.21/src/cryptenroll/cryptenroll.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/cryptenroll/cryptenroll.c 2024-01-26 21:35:39.000000000 +0000 @@ -412,7 +412,7 @@ if (n > INT_MAX) return log_error_errno(SYNTHETIC_ERRNO(ERANGE), "Slot index out of range: %u", n); - a = reallocarray(arg_wipe_slots, sizeof(int), arg_n_wipe_slots + 1); + a = reallocarray(arg_wipe_slots, arg_n_wipe_slots + 1, sizeof(int)); if (!a) return log_oom(); 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.21/src/home/org.freedesktop.home1.conf systemd-252.22/src/home/org.freedesktop.home1.conf --- systemd-252.21/src/home/org.freedesktop.home1.conf 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/home/org.freedesktop.home1.conf 2024-01-26 21:35:39.000000000 +0000 @@ -127,6 +127,10 @@ <allow send_destination="org.freedesktop.home1" send_interface="org.freedesktop.home1.Manager" + send_member="DeactivateAllHomes"/> + + <allow send_destination="org.freedesktop.home1" + send_interface="org.freedesktop.home1.Manager" send_member="Rebalance"/> <!-- Home object --> 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.21/src/journal-remote/microhttpd-util.c systemd-252.22/src/journal-remote/microhttpd-util.c --- systemd-252.21/src/journal-remote/microhttpd-util.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/journal-remote/microhttpd-util.c 2024-01-26 21:35:39.000000000 +0000 @@ -26,11 +26,13 @@ REENABLE_WARNING; } -static int mhd_respond_internal(struct MHD_Connection *connection, - enum MHD_RequestTerminationCode code, - const char *buffer, - size_t size, - enum MHD_ResponseMemoryMode mode) { +int mhd_respond_internal( + struct MHD_Connection *connection, + enum MHD_RequestTerminationCode code, + const char *buffer, + size_t size, + enum MHD_ResponseMemoryMode mode) { + assert(connection); _cleanup_(MHD_destroy_responsep) struct MHD_Response *response @@ -44,29 +46,16 @@ return MHD_queue_response(connection, code, response); } -int mhd_respond(struct MHD_Connection *connection, - enum MHD_RequestTerminationCode code, - const char *message) { - - const char *fmt; - - fmt = strjoina(message, "\n"); - - return mhd_respond_internal(connection, code, - fmt, strlen(message) + 1, - MHD_RESPMEM_PERSISTENT); -} - int mhd_respond_oom(struct MHD_Connection *connection) { - return mhd_respond(connection, MHD_HTTP_SERVICE_UNAVAILABLE, "Out of memory."); + return mhd_respond(connection, MHD_HTTP_SERVICE_UNAVAILABLE, "Out of memory."); } -int mhd_respondf(struct MHD_Connection *connection, - int error, - enum MHD_RequestTerminationCode code, - const char *format, ...) { +int mhd_respondf_internal( + struct MHD_Connection *connection, + int error, + enum MHD_RequestTerminationCode code, + const char *format, ...) { - const char *fmt; char *m; int r; va_list ap; @@ -77,11 +66,8 @@ if (error < 0) error = -error; errno = -error; - fmt = strjoina(format, "\n"); va_start(ap, format); - DISABLE_WARNING_FORMAT_NONLITERAL; - r = vasprintf(&m, fmt, ap); - REENABLE_WARNING; + r = vasprintf(&m, format, ap); va_end(ap); if (r < 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.21/src/journal-remote/microhttpd-util.h systemd-252.22/src/journal-remote/microhttpd-util.h --- systemd-252.21/src/journal-remote/microhttpd-util.h 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/journal-remote/microhttpd-util.h 2024-01-26 21:35:39.000000000 +0000 @@ -62,17 +62,34 @@ /* respond_oom() must be usable with return, hence this form. */ #define respond_oom(connection) log_oom(), mhd_respond_oom(connection) -int mhd_respondf(struct MHD_Connection *connection, - int error, - enum MHD_RequestTerminationCode code, - const char *format, ...) _printf_(4,5); - -int mhd_respond(struct MHD_Connection *connection, +int mhd_respond_internal( + struct MHD_Connection *connection, enum MHD_RequestTerminationCode code, - const char *message); + const char *buffer, + size_t size, + enum MHD_ResponseMemoryMode mode); + +#define mhd_respond(connection, code, message) \ + mhd_respond_internal( \ + connection, code, \ + message "\n", \ + strlen(message) + 1, \ + MHD_RESPMEM_PERSISTENT) int mhd_respond_oom(struct MHD_Connection *connection); +int mhd_respondf_internal( + struct MHD_Connection *connection, + int error, + enum MHD_RequestTerminationCode code, + const char *format, ...) _printf_(4,5); + +#define mhd_respondf(connection, error, code, format, ...) \ + mhd_respondf_internal( \ + connection, error, code, \ + format "\n", \ + ##__VA_ARGS__) + int check_permissions(struct MHD_Connection *connection, int *code, char **hostname); /* Set gnutls internal logging function to a callback which uses our 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.21/src/libsystemd/sd-bus/bus-message.c systemd-252.22/src/libsystemd/sd-bus/bus-message.c --- systemd-252.21/src/libsystemd/sd-bus/bus-message.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/libsystemd/sd-bus/bus-message.c 2024-01-26 21:35:39.000000000 +0000 @@ -1270,7 +1270,7 @@ if (copy < 0) return -errno; - f = reallocarray(m->fds, sizeof(int), m->n_fds + 1); + f = reallocarray(m->fds, m->n_fds + 1, sizeof(int)); if (!f) { m->poisoned = true; safe_close(copy); 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.21/src/libsystemd/sd-id128/id128-util.c systemd-252.22/src/libsystemd/sd-id128/id128-util.c --- systemd-252.21/src/libsystemd/sd-id128/id128-util.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/libsystemd/sd-id128/id128-util.c 2024-01-26 21:35:39.000000000 +0000 @@ -11,6 +11,7 @@ #include "stdio-util.h" #include "string-util.h" #include "sync-util.h" +#include "virt.h" bool id128_is_valid(const char *s) { size_t l; @@ -181,6 +182,13 @@ /* Reads the systems product UUID from DMI or devicetree (where it is located on POWER). This is * particularly relevant in VM environments, where VM managers typically place a VM uuid there. */ + r = detect_container(); + if (r < 0) + return r; + if (r > 0) /* Refuse returning this in containers, as this is not a property of our system then, but + * of the host */ + return -ENOENT; + r = id128_read("/sys/class/dmi/id/product_uuid", ID128_FORMAT_UUID, &uuid); if (r == -ENOENT) r = id128_read("/proc/device-tree/vm,uuid", ID128_FORMAT_UUID, &uuid); 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.21/src/libsystemd/sd-journal/journal-file.c systemd-252.22/src/libsystemd/sd-journal/journal-file.c --- systemd-252.21/src/libsystemd/sd-journal/journal-file.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/libsystemd/sd-journal/journal-file.c 2024-01-26 21:35:39.000000000 +0000 @@ -2190,6 +2190,11 @@ assert(e); assert(t); + /* If we are already going down, we cannot install the timer. + * In such case, the caller needs to call journal_file_post_change() explicitly. */ + if (IN_SET(sd_event_get_state(e), SD_EVENT_EXITING, SD_EVENT_FINISHED)) + return 0; + r = sd_event_add_time(e, &timer, CLOCK_MONOTONIC, 0, 0, post_change_thunk, f); if (r < 0) return r; @@ -2201,7 +2206,7 @@ f->post_change_timer = TAKE_PTR(timer); f->post_change_timer_period = t; - return r; + return 1; } static int entry_item_cmp(const EntryItem *a, const EntryItem *b) { 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.21/src/libsystemd/sd-login/sd-login.c systemd-252.22/src/libsystemd/sd-login/sd-login.c --- systemd-252.21/src/libsystemd/sd-login/sd-login.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/libsystemd/sd-login/sd-login.c 2024-01-26 21:35:39.000000000 +0000 @@ -802,7 +802,7 @@ uid_t *t; n = MAX(16, 2*r); - t = reallocarray(l, sizeof(uid_t), n); + t = reallocarray(l, n, sizeof(uid_t)); if (!t) return -ENOMEM; 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.21/src/network/netdev/tuntap.c systemd-252.22/src/network/netdev/tuntap.c --- systemd-252.21/src/network/netdev/tuntap.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/network/netdev/tuntap.c 2024-01-26 21:35:39.000000000 +0000 @@ -137,6 +137,19 @@ if (ioctl(fd, TUNSETIFF, &ifr) < 0) return log_netdev_error_errno(netdev, errno, "TUNSETIFF failed: %m"); + if (t->multi_queue) { + /* If we don't detach the queue, the kernel will send packets to our queue and they + * will be dropped because we never read them, which is especially important in case + * of KeepCarrier option which persists open FD. So detach our queue right after + * device create/attach to make kernel not send the packets to it. The option is + * available for multi-queue devices only. + * + * See https://github.com/systemd/systemd/pull/30504 for details. */ + struct ifreq detach_request = { .ifr_flags = IFF_DETACH_QUEUE }; + if (ioctl(fd, TUNSETQUEUE, &detach_request) < 0) + return log_netdev_error_errno(netdev, errno, "TUNSETQUEUE failed: %m"); + } + if (t->user_name) { const char *user = t->user_name; uid_t uid; 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.21/src/network/networkd-link.c systemd-252.22/src/network/networkd-link.c --- systemd-252.21/src/network/networkd-link.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/network/networkd-link.c 2024-01-26 21:35:39.000000000 +0000 @@ -1642,7 +1642,7 @@ usec = 5 * USEC_PER_SEC; else - /* Otherwise, use the currently set value. */ + /* Otherwise, use the implied default value. */ usec = link->network->ignore_carrier_loss_usec; if (usec == USEC_INFINITY) @@ -2005,20 +2005,18 @@ if (master_ifindex == link->ifindex) master_ifindex = 0; - if (master_ifindex == link->master_ifindex) - return 0; - - if (link->master_ifindex == 0) - log_link_debug(link, "Attached to master interface: %i", master_ifindex); - else if (master_ifindex == 0) - log_link_debug(link, "Detached from master interface: %i", link->master_ifindex); - else - log_link_debug(link, "Master interface changed: %i %s %i", link->master_ifindex, - special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), master_ifindex); - - link_drop_from_master(link); + if (master_ifindex != link->master_ifindex) { + if (link->master_ifindex == 0) + log_link_debug(link, "Attached to master interface: %i", master_ifindex); + else if (master_ifindex == 0) + log_link_debug(link, "Detached from master interface: %i", link->master_ifindex); + else + log_link_debug(link, "Master interface changed: %i %s %i", link->master_ifindex, + special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), master_ifindex); - link->master_ifindex = master_ifindex; + link_drop_from_master(link); + link->master_ifindex = master_ifindex; + } r = link_append_to_master(link); if (r < 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.21/src/network/networkd-network.c systemd-252.22/src/network/networkd-network.c --- systemd-252.21/src/network/networkd-network.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/network/networkd-network.c 2024-01-26 21:35:39.000000000 +0000 @@ -283,10 +283,8 @@ network->ignore_carrier_loss_usec = USEC_INFINITY; } - if (!network->ignore_carrier_loss_set) { - network->ignore_carrier_loss_set = true; + if (!network->ignore_carrier_loss_set) /* Set implied default. */ network->ignore_carrier_loss_usec = network->configure_without_carrier ? USEC_INFINITY : 0; - } if (IN_SET(network->activation_policy, ACTIVATION_POLICY_DOWN, ACTIVATION_POLICY_ALWAYS_DOWN, ACTIVATION_POLICY_MANUAL)) { if (network->required_for_online < 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.21/src/network/networkd-queue.c systemd-252.22/src/network/networkd-queue.c --- systemd-252.21/src/network/networkd-queue.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/network/networkd-queue.c 2024-01-26 21:35:39.000000000 +0000 @@ -123,11 +123,8 @@ assert(process); req = new(Request, 1); - if (!req) { - if (free_func) - free_func(userdata); + if (!req) return -ENOMEM; - } *req = (Request) { .n_ref = 1, @@ -169,12 +166,19 @@ request_process_func_t process, Request **ret) { + int r; + assert(netdev); - return request_new(netdev->manager, NULL, REQUEST_TYPE_NETDEV_INDEPENDENT, - netdev_ref(netdev), (mfree_func_t) netdev_unref, - trivial_hash_func, trivial_compare_func, - process, NULL, NULL, ret); + r = request_new(netdev->manager, NULL, REQUEST_TYPE_NETDEV_INDEPENDENT, + netdev, (mfree_func_t) netdev_unref, + trivial_hash_func, trivial_compare_func, + process, NULL, NULL, ret); + if (r <= 0) + return r; + + netdev_ref(netdev); + return 1; } int link_queue_request_full( 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.21/src/network/networkd-route.c systemd-252.22/src/network/networkd-route.c --- systemd-252.21/src/network/networkd-route.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/network/networkd-route.c 2024-01-26 21:35:39.000000000 +0000 @@ -2768,6 +2768,7 @@ if (isempty(rvalue)) { n->multipath_routes = ordered_set_free_with_destructor(n->multipath_routes, multipath_route_free); + TAKE_PTR(n); 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.21/src/nspawn/nspawn-bind-user.c systemd-252.22/src/nspawn/nspawn-bind-user.c --- systemd-252.21/src/nspawn/nspawn-bind-user.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/nspawn/nspawn-bind-user.c 2024-01-26 21:35:39.000000000 +0000 @@ -286,7 +286,7 @@ if (!sd) return log_oom(); - cm = reallocarray(*custom_mounts, sizeof(CustomMount), *n_custom_mounts + 1); + cm = reallocarray(*custom_mounts, *n_custom_mounts + 1, sizeof(CustomMount)); if (!cm) return log_oom(); 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.21/src/resolve/dns-type.h systemd-252.22/src/resolve/dns-type.h --- systemd-252.21/src/resolve/dns-type.h 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/resolve/dns-type.h 2024-01-26 21:35:39.000000000 +0000 @@ -7,7 +7,7 @@ * http://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml. */ enum { - /* Normal records */ + /* 0 is reserved */ DNS_TYPE_A = 0x01, DNS_TYPE_NS, DNS_TYPE_MD, @@ -60,7 +60,8 @@ DNS_TYPE_NSEC3, DNS_TYPE_NSEC3PARAM, DNS_TYPE_TLSA, - + DNS_TYPE_SMIMEA, /* RFC 8162 */ + /* 0x36 (54) is not assigned */ DNS_TYPE_HIP = 0x37, DNS_TYPE_NINFO, DNS_TYPE_RKEY, @@ -68,15 +69,23 @@ DNS_TYPE_CDS, DNS_TYPE_CDNSKEY, DNS_TYPE_OPENPGPKEY, - + DNS_TYPE_CSYNC, + DNS_TYPE_ZONEMD, + DNS_TYPE_SVCB, /* RFC 9460 */ + DNS_TYPE_HTTPS, /* RFC 9460 */ + /* 0x42…0x62 (66…98) are not assigned */ DNS_TYPE_SPF = 0x63, + DNS_TYPE_UINFO, + DNS_TYPE_UID, + DNS_TYPE_GID, + DNS_TYPE_UNSPEC, DNS_TYPE_NID, DNS_TYPE_L32, DNS_TYPE_L64, DNS_TYPE_LP, DNS_TYPE_EUI48, DNS_TYPE_EUI64, - + /* 0x6e…0xf8 (110…248) are not assigned */ DNS_TYPE_TKEY = 0xF9, DNS_TYPE_TSIG, DNS_TYPE_IXFR, @@ -86,15 +95,24 @@ DNS_TYPE_ANY, DNS_TYPE_URI, DNS_TYPE_CAA, + DNS_TYPE_AVC, + DNS_TYPE_DOA, + DNS_TYPE_AMTRELAY, + DNS_TYPE_RESINFO, + /* 0x106…0x7fff (262…32767) are not assigned */ DNS_TYPE_TA = 0x8000, DNS_TYPE_DLV, - + /* 32770…65279 are not assigned */ + /* 65280…65534 are for private use */ + /* 65535 is reserved */ _DNS_TYPE_MAX, _DNS_TYPE_INVALID = -EINVAL, }; -assert_cc(DNS_TYPE_SSHFP == 44); -assert_cc(DNS_TYPE_TLSA == 52); +assert_cc(DNS_TYPE_SMIMEA == 53); +assert_cc(DNS_TYPE_HTTPS == 65); +assert_cc(DNS_TYPE_EUI64 == 109); +assert_cc(DNS_TYPE_RESINFO == 261); assert_cc(DNS_TYPE_ANY == 255); /* DNS record classes, see RFC 1035 */ 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.21/src/resolve/resolved-dns-cache.c systemd-252.22/src/resolve/resolved-dns-cache.c --- systemd-252.21/src/resolve/resolved-dns-cache.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/resolve/resolved-dns-cache.c 2024-01-26 21:35:39.000000000 +0000 @@ -1266,6 +1266,10 @@ if (!j->shared_owner) continue; + /* Ignore cached goodby packet. See on_mdns_packet() and RFC 6762 section 10.1. */ + if (j->rr->ttl <= 1) + continue; + /* RFC6762 7.1: Don't append records with less than half the TTL remaining * as known answers. */ if (usec_sub_unsigned(j->until, ts) < j->rr->ttl * USEC_PER_SEC / 2) 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.21/src/resolve/resolved-dns-packet.c systemd-252.22/src/resolve/resolved-dns-packet.c --- systemd-252.21/src/resolve/resolved-dns-packet.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/resolve/resolved-dns-packet.c 2024-01-26 21:35:39.000000000 +0000 @@ -310,9 +310,23 @@ switch (p->protocol) { - case DNS_PROTOCOL_LLMNR: case DNS_PROTOCOL_DNS: - if (DNS_PACKET_TC(p)) /* mDNS query may have truncation flag. */ + if (DNS_PACKET_TC(p)) + return -EBADMSG; + + if (DNS_PACKET_QDCOUNT(p) != 1) + return -EBADMSG; + + if (DNS_PACKET_ANCOUNT(p) > 0) + return -EBADMSG; + + /* Note, in most cases, DNS query packet does not have authority section. But some query + * types, e.g. IXFR, have Authority sections. Hence, unlike the check for LLMNR, we do not + * check DNS_PACKET_NSCOUNT(p) here. */ + break; + + case DNS_PROTOCOL_LLMNR: + if (DNS_PACKET_TC(p)) return -EBADMSG; /* RFC 4795, Section 2.1.1. says to discard all queries with QDCOUNT != 1 */ @@ -330,6 +344,9 @@ break; case DNS_PROTOCOL_MDNS: + /* Note, mDNS query may have truncation flag. So, unlike the check for DNS and LLMNR, + * we do not check DNS_PACKET_TC(p) here. */ + /* RFC 6762, Section 18 specifies that messages with non-zero RCODE * must be silently ignored, and that we must ignore the values of * AA, RD, RA, AD, and CD bits. */ 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.21/src/resolve/resolved-dns-transaction.c systemd-252.22/src/resolve/resolved-dns-transaction.c --- systemd-252.21/src/resolve/resolved-dns-transaction.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/resolve/resolved-dns-transaction.c 2024-01-26 21:35:39.000000000 +0000 @@ -74,6 +74,10 @@ * and the reply we might still get from the server will be eaten up instead of resulting in an ICMP * port unreachable error message. */ + /* Skip the graveyard stuff when we're shutting down, since that requires running event loop */ + if (!t->scope->manager->event || sd_event_get_state(t->scope->manager->event) == SD_EVENT_FINISHED) + use_graveyard = false; + if (use_graveyard && t->dns_udp_fd >= 0 && t->sent && !t->received) { r = manager_add_socket_to_graveyard(t->scope->manager, t->dns_udp_fd); if (r < 0) @@ -633,9 +637,20 @@ } } - if (error != 0) - LIST_FOREACH(transactions_by_stream, t, s->transactions) + if (error != 0) { + /* First, detach the stream from the server. Otherwise, transactions attached to this stream + * may be restarted by on_transaction_stream_error() below with this stream. */ + dns_stream_detach(s); + + /* Do not use LIST_FOREACH() here, as + * on_transaction_stream_error() + * -> dns_transaction_complete_errno() + * -> dns_transaction_free() + * may free multiple transactions in the list. */ + DnsTransaction *t; + while ((t = s->transactions)) on_transaction_stream_error(t, error); + } 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.21/src/resolve/resolved-llmnr.c systemd-252.22/src/resolve/resolved-llmnr.c --- systemd-252.21/src/resolve/resolved-llmnr.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/resolve/resolved-llmnr.c 2024-01-26 21:35:39.000000000 +0000 @@ -45,7 +45,7 @@ if (r < 0) return r; - if (socket_ipv6_is_supported()) { + if (socket_ipv6_is_enabled()) { r = manager_llmnr_ipv6_udp_fd(m); if (r == -EADDRINUSE) goto eaddrinuse; 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.21/src/resolve/resolved-mdns.c systemd-252.22/src/resolve/resolved-mdns.c --- systemd-252.21/src/resolve/resolved-mdns.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/resolve/resolved-mdns.c 2024-01-26 21:35:39.000000000 +0000 @@ -36,7 +36,7 @@ if (r < 0) return r; - if (socket_ipv6_is_supported()) { + if (socket_ipv6_is_enabled()) { r = manager_mdns_ipv6_fd(m); if (r == -EADDRINUSE) goto eaddrinuse; 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.21/src/shared/discover-image.c systemd-252.22/src/shared/discover-image.c --- systemd-252.21/src/shared/discover-image.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/shared/discover-image.c 2024-01-26 21:35:39.000000000 +0000 @@ -1005,6 +1005,11 @@ return 0; } +static void make_lock_dir(void) { + (void) mkdir_p("/run/systemd/nspawn", 0755); + (void) mkdir("/run/systemd/nspawn/locks", 0700); +} + int image_path_lock(const char *path, int operation, LockFile *global, LockFile *local) { _cleanup_free_ char *p = NULL; LockFile t = LOCK_FILE_INIT; @@ -1080,7 +1085,7 @@ } if (p) { - (void) mkdir_p("/run/systemd/nspawn/locks", 0700); + make_lock_dir(); r = make_lock_file(p, operation, global); if (r < 0) { @@ -1253,7 +1258,7 @@ return 0; } - (void) mkdir_p("/run/systemd/nspawn/locks", 0700); + make_lock_dir(); p = strjoina("/run/systemd/nspawn/locks/name-", name); return make_lock_file(p, operation, ret); @@ -1293,7 +1298,6 @@ /* Accept trailing slashes */ if (p[strspn(p, "/")] == 0) return true; - } return false; 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.21/src/shared/utmp-wtmp.h systemd-252.22/src/shared/utmp-wtmp.h --- systemd-252.21/src/shared/utmp-wtmp.h 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/shared/utmp-wtmp.h 2024-01-26 21:35:39.000000000 +0000 @@ -31,7 +31,8 @@ return true; } static inline void utxent_cleanup(bool *initialized) { - if (initialized) + assert(initialized); + if (*initialized) endutxent(); } 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.21/src/shared/watchdog.c systemd-252.22/src/shared/watchdog.c --- systemd-252.21/src/shared/watchdog.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/shared/watchdog.c 2024-01-26 21:35:39.000000000 +0000 @@ -261,12 +261,15 @@ static int update_timeout(void) { int r; + usec_t previous_timeout; assert(watchdog_timeout > 0); if (watchdog_fd < 0) return 0; + previous_timeout = watchdog_timeout; + if (watchdog_timeout != USEC_INFINITY) { r = watchdog_set_timeout(); if (r < 0) { @@ -281,8 +284,12 @@ if (watchdog_timeout == USEC_INFINITY) { r = watchdog_read_timeout(); - if (r < 0) - return log_error_errno(r, "Failed to query watchdog HW timeout: %m"); + if (r < 0) { + if (!ERRNO_IS_NOT_SUPPORTED(r)) + return log_error_errno(r, "Failed to query watchdog HW timeout: %m"); + log_info("Reading watchdog timeout is not supported, reusing the configured timeout."); + watchdog_timeout = previous_timeout; + } } /* If the watchdog timeout was changed, the pretimeout could have been 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.21/src/systemctl/systemctl-is-system-running.c systemd-252.22/src/systemctl/systemctl-is-system-running.c --- systemd-252.21/src/systemctl/systemctl-is-system-running.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/systemctl/systemctl-is-system-running.c 2024-01-26 21:35:39.000000000 +0000 @@ -29,7 +29,7 @@ sd_bus *bus; int r; - if (running_in_chroot() > 0 || (arg_transport == BUS_TRANSPORT_LOCAL && !sd_booted())) { + if (!isempty(arg_root) || running_in_chroot() > 0 || (arg_transport == BUS_TRANSPORT_LOCAL && !sd_booted())) { if (!arg_quiet) puts("offline"); return 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.21/src/systemctl/systemctl-start-special.c systemd-252.22/src/systemctl/systemctl-start-special.c --- systemd-252.21/src/systemctl/systemctl-start-special.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/systemctl/systemctl-start-special.c 2024-01-26 21:35:39.000000000 +0000 @@ -121,8 +121,7 @@ } int verb_start_special(int argc, char *argv[], void *userdata) { - bool termination_action; /* An action that terminates the manager, can be performed also by - * signal. */ + bool termination_action; /* An action that terminates the system, can be performed also by signal. */ enum action a; int r; @@ -140,17 +139,21 @@ return r; } - r = prepare_firmware_setup(); - if (r < 0) - return r; + termination_action = IN_SET(a, ACTION_HALT, ACTION_POWEROFF, ACTION_REBOOT); - r = prepare_boot_loader_menu(); - if (r < 0) - return r; + if (termination_action) { + r = prepare_firmware_setup(); + if (r < 0) + return r; - r = prepare_boot_loader_entry(); - if (r < 0) - return r; + r = prepare_boot_loader_menu(); + if (r < 0) + return r; + + r = prepare_boot_loader_entry(); + if (r < 0) + return r; + } if (a == ACTION_REBOOT) { const char *arg = NULL; @@ -192,10 +195,6 @@ return r; } - termination_action = IN_SET(a, - ACTION_HALT, - ACTION_POWEROFF, - ACTION_REBOOT); if (termination_action && arg_force >= 2) return halt_now(a); 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.21/src/test/test-alloc-util.c systemd-252.22/src/test/test-alloc-util.c --- systemd-252.21/src/test/test-alloc-util.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/test/test-alloc-util.c 2024-01-26 21:35:39.000000000 +0000 @@ -61,7 +61,7 @@ size_t i; int *p; - dup = memdup_suffix0_multiply(org, sizeof(int), 3); + dup = memdup_suffix0_multiply(org, 3, sizeof(int)); assert_se(dup); assert_se(dup[0] == 1); assert_se(dup[1] == 2); @@ -69,7 +69,7 @@ assert_se(((uint8_t*) dup)[sizeof(int) * 3] == 0); free(dup); - dup = memdup_multiply(org, sizeof(int), 3); + dup = memdup_multiply(org, 3, sizeof(int)); assert_se(dup); assert_se(dup[0] == 1); assert_se(dup[1] == 2); 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.21/src/timesync/timesyncd-manager.c systemd-252.22/src/timesync/timesyncd-manager.c --- systemd-252.21/src/timesync/timesyncd-manager.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/timesync/timesyncd-manager.c 2024-01-26 21:35:39.000000000 +0000 @@ -657,8 +657,7 @@ if (r < 0) return r; - if (addr.sa.sa_family == AF_INET) - (void) setsockopt_int(m->server_socket, IPPROTO_IP, IP_TOS, IPTOS_LOWDELAY); + (void) socket_set_option(m->server_socket, addr.sa.sa_family, IP_TOS, IPV6_TCLASS, IPTOS_DSCP_EF); return sd_event_add_io(m->event, &m->event_receive, m->server_socket, EPOLLIN, manager_receive_response, 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.21/src/udev/dmi_memory_id/dmi_memory_id.c systemd-252.22/src/udev/dmi_memory_id/dmi_memory_id.c --- systemd-252.21/src/udev/dmi_memory_id/dmi_memory_id.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/udev/dmi_memory_id/dmi_memory_id.c 2024-01-26 21:35:39.000000000 +0000 @@ -7,7 +7,7 @@ * Copyright (C) 2020 Bastien Nocera <had...@hadess.net> * * Unless specified otherwise, all references are aimed at the "System - * Management BIOS Reference Specification, Version 3.2.0" document, + * Management BIOS Reference Specification, Version 3.7.0" document, * available from http://www.dmtf.org/standards/smbios. * * Note to contributors: @@ -145,7 +145,7 @@ [0x01] = "PC-98/C24 Add-on Card", /* 0xA1 */ [0x02] = "PC-98/E Add-on Card", /* 0xA2 */ [0x03] = "PC-98/Local Bus Add-on Card", /* 0xA3 */ - [0x04] = "CXL Flexbus 1.0", /* 0xA4 */ + [0x04] = "CXL Add-on Card", /* 0xA4 */ }; const char *str = OUT_OF_SPEC_STR; @@ -301,6 +301,9 @@ [0x1F] = "Logical non-volatile device", [0x20] = "HBM", [0x21] = "HBM2", + [0x22] = "DDR5", + [0x23] = "LPDDR5", + [0x24] = "HBM3", }; printf("MEMORY_DEVICE_%u_TYPE=%s\n", slot_num, @@ -315,7 +318,7 @@ [3] = "Fast-paged", [4] = "Static Column", [5] = "Pseudo-static", - [6] = "RAMBus", + [6] = "RAMBUS", [7] = "Synchronous", [8] = "CMOS", [9] = "EDO", @@ -358,7 +361,7 @@ [0x04] = "NVDIMM-N", [0x05] = "NVDIMM-F", [0x06] = "NVDIMM-P", - [0x07] = "Intel Optane DC persistent memory", + [0x07] = "Intel Optane persistent memory", }; printf("MEMORY_DEVICE_%u_MEMORY_TECHNOLOGY=%s\n", slot_num, 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.21/src/udev/udevadm-test-builtin.c systemd-252.22/src/udev/udevadm-test-builtin.c --- systemd-252.21/src/udev/udevadm-test-builtin.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/udev/udevadm-test-builtin.c 2024-01-26 21:35:39.000000000 +0000 @@ -78,6 +78,7 @@ int r; log_set_max_level(LOG_DEBUG); + log_parse_environment(); r = parse_argv(argc, argv); if (r <= 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.21/src/udev/udevadm-test.c systemd-252.22/src/udev/udevadm-test.c --- systemd-252.21/src/udev/udevadm-test.c 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/src/udev/udevadm-test.c 2024-01-26 21:35:39.000000000 +0000 @@ -94,6 +94,7 @@ int r; log_set_max_level(LOG_DEBUG); + log_parse_environment(); r = parse_argv(argc, argv); if (r <= 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.21/test/TEST-64-UDEV-STORAGE/test.sh systemd-252.22/test/TEST-64-UDEV-STORAGE/test.sh --- systemd-252.21/test/TEST-64-UDEV-STORAGE/test.sh 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/test/TEST-64-UDEV-STORAGE/test.sh 2024-01-26 21:35:39.000000000 +0000 @@ -24,7 +24,7 @@ case "${1:?}" in btrfs) - modprobe -nv btrfs && command -v mkfs.btrfs && command -v btrfs || return $? + host_has_btrfs ;; iscsi) # Client/initiator (Open-iSCSI) @@ -36,7 +36,7 @@ command -v lvm || return $? ;; mdadm) - command -v mdadm || return $? + host_has_mdadm ;; multipath) command -v multipath && command -v multipathd || return $? 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.21/test/TEST-74-AUX-UTILS/test.sh systemd-252.22/test/TEST-74-AUX-UTILS/test.sh --- systemd-252.21/test/TEST-74-AUX-UTILS/test.sh 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/test/TEST-74-AUX-UTILS/test.sh 2024-01-26 21:35:39.000000000 +0000 @@ -7,4 +7,7 @@ # shellcheck source=test/test-functions . "${TEST_BASE_DIR:?}/test-functions" +# (Hopefully) a temporary workaround for https://github.com/systemd/systemd/issues/30573 +KERNEL_APPEND="${KERNEL_APPEND:-} SYSTEMD_DEFAULT_MOUNT_RATE_LIMIT_BURST=100" + do_test "$@" 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.21/test/test-functions systemd-252.22/test/test-functions --- systemd-252.21/test/test-functions 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/test/test-functions 2024-01-26 21:35:39.000000000 +0000 @@ -1061,7 +1061,9 @@ image_install kpartx /lib/udev/kpartx_id lsmod mpathpersist multipath multipathd partx image_install "${ROOTLIBDIR:?}"/system/multipathd.{service,socket} if get_bool "$LOOKS_LIKE_DEBIAN"; then - inst_rules 56-dm-parts.rules 56-dm-mpath.rules 60-multipath.rules 68-del-part-nodes.rules 95-kpartx.rules + # Note: try both 60-kpartx.rules (as seen on Debian Sid with 0.9.4-7) and 90-kpartx.rules (as seen on + # Ubuntu Jammy with 0.8.8-1ubuntu1.22.04.4) + inst_rules 56-dm-parts.rules 56-dm-mpath.rules 60-kpartx.rules 60-multipath.rules 68-del-part-nodes.rules 90-kpartx.rules else inst_rules 11-dm-mpath.rules 11-dm-parts.rules 62-multipath.rules 66-kpartx.rules 68-del-part-nodes.rules fi @@ -1108,6 +1110,11 @@ mkdir -p "${initdir:?}/etc/lvm" } +host_has_btrfs() ( + set -e + modprobe -nv btrfs && command -v mkfs.btrfs && command -v btrfs || return $? +) + install_btrfs() { instmods btrfs # Not all utilities provided by btrfs-progs are listed here; extend the list @@ -1175,6 +1182,11 @@ fi } +host_has_mdadm() ( + set -e + command -v mdadm || return $? +) + install_mdadm() { local unit local mdadm_units=( @@ -1188,6 +1200,7 @@ system-shutdown/mdadm.shutdown ) + instmods "=md" image_install mdadm mdmon inst_rules 01-md-raid-creating.rules 63-md-raid-arrays.rules 64-md-raid-assembly.rules 69-md-clustered-confirm-device.rules # Fedora/CentOS/RHEL ships this rule file @@ -1196,6 +1209,10 @@ for unit in "${mdadm_units[@]}"; do image_install "${ROOTLIBDIR:?}/$unit" done + + # Disable the mdmonitor service, since it fails if there's no valid email address + # configured in /etc/mdadm.conf, which just unnecessarily pollutes the logs + "${SYSTEMCTL:?}" mask --root "${initdir:?}" mdmonitor.service || : } install_compiled_systemd() { @@ -1976,14 +1993,14 @@ # Newer Fedora versions use dbus-broker by default. Let's install it if it's available. if [ -f "$ROOTLIBDIR/system/dbus-broker.service" ]; then inst "$ROOTLIBDIR/system/dbus-broker.service" - inst_symlink /etc/systemd/system/dbus.service inst /usr/bin/dbus-broker inst /usr/bin/dbus-broker-launch + image_install -o {/etc,/usr/lib}/systemd/system/dbus.service elif [ -f "$ROOTLIBDIR/system/dbus-daemon.service" ]; then # Fedora rawhide replaced dbus.service with dbus-daemon.service inst "$ROOTLIBDIR/system/dbus-daemon.service" # Alias symlink - inst_symlink /etc/systemd/system/dbus.service + image_install -o {/etc,/usr/lib}/systemd/system/dbus.service else inst "$ROOTLIBDIR/system/dbus.service" fi @@ -2042,12 +2059,12 @@ # Newer Fedora versions use dbus-broker by default. Let's install it if it's available. if [ -f "$userunitdir/dbus-broker.service" ]; then inst "$userunitdir/dbus-broker.service" - inst_symlink /etc/systemd/user/dbus.service + image_install -o {/etc,/usr/lib}/systemd/user/dbus.service elif [ -f "${ROOTLIBDIR:?}/system/dbus-daemon.service" ]; then # Fedora rawhide replaced dbus.service with dbus-daemon.service inst "$userunitdir/dbus-daemon.service" # Alias symlink - inst_symlink /etc/systemd/user/dbus.service + image_install -o {/etc,/usr/lib}/systemd/user/dbus.service else inst "$userunitdir/dbus.service" fi 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.21/test/units/testsuite-17.03.sh systemd-252.22/test/units/testsuite-17.03.sh --- systemd-252.21/test/units/testsuite-17.03.sh 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/test/units/testsuite-17.03.sh 2024-01-26 21:35:39.000000000 +0000 @@ -8,6 +8,9 @@ setup() { mkdir -p "${TEST_RULE%/*}" [[ -e /etc/udev/udev.conf ]] && cp -f /etc/udev/udev.conf /etc/udev/udev.conf.bak + # Don't bother storing the coredumps in journal for this particular test + mkdir -p /run/systemd/coredump.conf.d/ + echo -ne "[Coredump]\nStorage=external\n" >/run/systemd/coredump.conf.d/99-storage-journal.conf cat >"${TEST_RULE}" <<EOF ACTION=="add", SUBSYSTEM=="mem", KERNEL=="null", OPTIONS="log_level=debug" @@ -31,6 +34,7 @@ rm -rf "$TMPDIR" rm -f "$TEST_RULE" [[ -e /etc/udev/udev.conf.bak ]] && mv -f /etc/udev/udev.conf.bak /etc/udev/udev.conf + rm /run/systemd/coredump.conf.d/99-storage-journal.conf systemctl restart systemd-udevd.service } 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.21/test/units/testsuite-64.sh systemd-252.22/test/units/testsuite-64.sh --- systemd-252.21/test/units/testsuite-64.sh 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/test/units/testsuite-64.sh 2024-01-26 21:35:39.000000000 +0000 @@ -988,10 +988,6 @@ : >/failed -# Disable the mdmonitor service, since it fails if there's no valid email address -# configured in /etc/mdadm.conf, which just unnecessarily pollutes the logs -systemctl list-unit-files mdmonitor.service >/dev/null && systemctl mask --runtime mdmonitor.service - udevadm settle udevadm control --log-level debug lsblk -a 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.21/units/systemd-hibernate.service.in systemd-252.22/units/systemd-hibernate.service.in --- systemd-252.21/units/systemd-hibernate.service.in 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/units/systemd-hibernate.service.in 2024-01-26 21:35:39.000000000 +0000 @@ -8,7 +8,7 @@ # (at your option) any later version. [Unit] -Description=Hibernate +Description=System Hibernate Documentation=man:systemd-hibernate.service(8) DefaultDependencies=no Requires=sleep.target 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.21/units/systemd-hybrid-sleep.service.in systemd-252.22/units/systemd-hybrid-sleep.service.in --- systemd-252.21/units/systemd-hybrid-sleep.service.in 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/units/systemd-hybrid-sleep.service.in 2024-01-26 21:35:39.000000000 +0000 @@ -8,7 +8,7 @@ # (at your option) any later version. [Unit] -Description=Hybrid Suspend+Hibernate +Description=System Hybrid Suspend+Hibernate Documentation=man:systemd-hybrid-sleep.service(8) DefaultDependencies=no Requires=sleep.target 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.21/units/systemd-resolved.service.in systemd-252.22/units/systemd-resolved.service.in --- systemd-252.21/units/systemd-resolved.service.in 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/units/systemd-resolved.service.in 2024-01-26 21:35:39.000000000 +0000 @@ -15,7 +15,7 @@ Documentation=https://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients DefaultDependencies=no -After=systemd-sysusers.service +After=systemd-sysctl.service systemd-sysusers.service Before=sysinit.target network.target nss-lookup.target shutdown.target initrd-switch-root.target Conflicts=shutdown.target initrd-switch-root.target Wants=nss-lookup.target 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.21/units/systemd-suspend-then-hibernate.service.in systemd-252.22/units/systemd-suspend-then-hibernate.service.in --- systemd-252.21/units/systemd-suspend-then-hibernate.service.in 2023-12-24 09:01:00.000000000 +0000 +++ systemd-252.22/units/systemd-suspend-then-hibernate.service.in 2024-01-26 21:35:39.000000000 +0000 @@ -8,7 +8,7 @@ # (at your option) any later version. [Unit] -Description=Suspend; Hibernate if not used for a period of time +Description=System Suspend then Hibernate Documentation=man:systemd-suspend-then-hibernate.service(8) DefaultDependencies=no Requires=sleep.target
signature.asc
Description: This is a digitally signed message part