diff --git a/0439-test-add-test-case-for-AddDependencyUnitFiles-assert.patch b/0439-test-add-test-case-for-AddDependencyUnitFiles-assert.patch new file mode 100644 index 0000000..1aed620 --- /dev/null +++ b/0439-test-add-test-case-for-AddDependencyUnitFiles-assert.patch @@ -0,0 +1,32 @@ +From 68c407e06c533814d9173bbee6bf8585190625bb Mon Sep 17 00:00:00 2001 +From: Luca Boccassi +Date: Mon, 6 Jan 2025 23:47:45 +0000 +Subject: [PATCH] test: add test case for AddDependencyUnitFiles assert + +Follow-up for d87dc74e8f1a30d72a0f202e411400bab34ab55a + +(cherry picked from commit f2b34ce7f397b89fbf734c05a1440e1541f5751d) + +Resolves: RHEL-108257 +--- + test/units/TEST-07-PID1.issue-35882.sh | 11 +++++++++++ + 1 file changed, 11 insertions(+) + create mode 100755 test/units/TEST-07-PID1.issue-35882.sh + +diff --git a/test/units/TEST-07-PID1.issue-35882.sh b/test/units/TEST-07-PID1.issue-35882.sh +new file mode 100755 +index 0000000000..cf1650cc22 +--- /dev/null ++++ b/test/units/TEST-07-PID1.issue-35882.sh +@@ -0,0 +1,11 @@ ++#!/usr/bin/env bash ++# SPDX-License-Identifier: LGPL-2.1-or-later ++set -eux ++set -o pipefail ++ ++# shellcheck source=test/units/util.sh ++. "$(dirname "$0")"/util.sh ++ ++(! busctl call org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager AddDependencyUnitFiles "asssbb" 0 abracadabra After 1 1) ++ ++exit 0 diff --git a/0440-TEST-17-drop-unnecessary-PATH-setting.patch b/0440-TEST-17-drop-unnecessary-PATH-setting.patch new file mode 100644 index 0000000..be56095 --- /dev/null +++ b/0440-TEST-17-drop-unnecessary-PATH-setting.patch @@ -0,0 +1,28 @@ +From 5a26d4d52115079e3da7ddffd77d5b87e45a11aa Mon Sep 17 00:00:00 2001 +From: Yu Watanabe +Date: Wed, 30 Apr 2025 21:07:48 +0900 +Subject: [PATCH] TEST-17: drop unnecessary $PATH setting + +My local setting was unintentionally inserted by the commit +7cb4508c5af465ab1be1b103e6c2b613eb58e63c. + +(cherry picked from commit da9d75e0c6f6ae1e70e2f7efb8adb3851926e220) + +Resolves: RHEL-108242 +--- + test/units/TEST-17-UDEV.11.sh | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/test/units/TEST-17-UDEV.11.sh b/test/units/TEST-17-UDEV.11.sh +index ac99a80b0f..f0ab20e5c9 100755 +--- a/test/units/TEST-17-UDEV.11.sh ++++ b/test/units/TEST-17-UDEV.11.sh +@@ -8,8 +8,6 @@ set -o pipefail + # shellcheck source=test/units/util.sh + . "$(dirname "$0")"/util.sh + +-PATH=/var/build:$PATH +- + # shellcheck disable=SC2317 + cleanup() { + cd / diff --git a/0441-chase-check-the-result-is-a-directory-or-regular-fil.patch b/0441-chase-check-the-result-is-a-directory-or-regular-fil.patch new file mode 100644 index 0000000..c9b4322 --- /dev/null +++ b/0441-chase-check-the-result-is-a-directory-or-regular-fil.patch @@ -0,0 +1,58 @@ +From d81f351e334d852978277ac716043ad957ec2a85 Mon Sep 17 00:00:00 2001 +From: Yu Watanabe +Date: Tue, 29 Jul 2025 03:25:17 +0900 +Subject: [PATCH] chase: check the result is a directory or regular file only + when the resolved path exists + +Otherwise, if it is called with CHASE_NONEXISTENT, when we call +stat_verify_directory()/_regular() the struct stat is for one of the +parent directory, rather than for the result path. + +With this change, we can safely specify CHASE_MUST_BE_DIRECTORY/REGULAR +with CHASE_NONEXISTENT. + +More importantly, chaseat() internally sets CHASE_MUST_BE_DIRECTORY when +the input path ends with "/", "/,", "/..". Hence, without this change, +we cannot specify CHASE_NONEXISTENT safely. + +Follow-up for 90b9f7a07e6f57825f416f6ce2db0a9f2086754b. + +(cherry picked from commit 1cabb6905b98ecc11bfb1fd8305c8f5c089e5c32) + +Resolves: RHEL-108006 +--- + src/basic/chase.c | 20 +++++++++++--------- + 1 file changed, 11 insertions(+), 9 deletions(-) + +diff --git a/src/basic/chase.c b/src/basic/chase.c +index e5a6fb1587..3db1ea7e0e 100644 +--- a/src/basic/chase.c ++++ b/src/basic/chase.c +@@ -485,16 +485,18 @@ int chaseat(int dir_fd, const char *path, ChaseFlags flags, char **ret_path, int + close_and_replace(fd, child); + } + +- if (FLAGS_SET(flags, CHASE_MUST_BE_DIRECTORY)) { +- r = stat_verify_directory(&st); +- if (r < 0) +- return r; +- } ++ if (exists) { ++ if (FLAGS_SET(flags, CHASE_MUST_BE_DIRECTORY)) { ++ r = stat_verify_directory(&st); ++ if (r < 0) ++ return r; ++ } + +- if (FLAGS_SET(flags, CHASE_MUST_BE_REGULAR)) { +- r = stat_verify_regular(&st); +- if (r < 0) +- return r; ++ if (FLAGS_SET(flags, CHASE_MUST_BE_REGULAR)) { ++ r = stat_verify_regular(&st); ++ if (r < 0) ++ return r; ++ } + } + + if (ret_path) { diff --git a/0442-bootctl-stop-printing-Stub-Boot-loader-set-partition.patch b/0442-bootctl-stop-printing-Stub-Boot-loader-set-partition.patch new file mode 100644 index 0000000..f6bd46a --- /dev/null +++ b/0442-bootctl-stop-printing-Stub-Boot-loader-set-partition.patch @@ -0,0 +1,64 @@ +From 9e239ea80030f6740d900891cf5c1aeb0248cf3e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 14 Feb 2025 09:42:43 +0100 +Subject: [PATCH] bootctl: stop printing "Stub/Boot loader set partition + information" +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +... and "Stub/Boot loader set network boot URL information". + +This reverts 26bfd97216ab55664214d1e0fac7065e5573a36b +('bootctl: also shown whether stub loader partition data was passed'), +and one line from bfcf48b842644c1016583ecf0c4258cb59a102bb +('bootctl: show stub partition data too in "status" too'), +and two lines from e15d18b4c64e13c37a4c676bf61a5ecf8bba04a3 +('sd-stub: if we are http booted, query source URL and write to EFI variable'). + +As discussed in https://github.com/systemd/systemd/pull/36372, those are not +"features", but optional pieces of information that may or may not be set, also +depending on how the boot loader and stub were loaded. We already prominently +show this information right below: either we print the device path or "n/a" or +skip the output. The user already has all the information, and the status +output should be dense, so it doesn't make sense to repeat this twice. + + ✓ Boot loader set partition information + Partition: /dev/disk/by-partuuid/3f003ec5-5673-5b4f-b9a4-cbac1ca4461a +OR + - Boot loader set partition information + Partition: n/a + + ✓ Stub loader set partition information + Partition: /dev/disk/by-partuuid/3f003ec5-5673-5b4f-b9a4-cbac1ca4461a +OR + - Stub loader set partition information + Partition: n/a + +(cherry picked from commit f25e4e5af0518b4865eff84b65dd339047e429ed) + +Resolves: RHEL-108251 +--- + src/bootctl/bootctl-status.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/src/bootctl/bootctl-status.c b/src/bootctl/bootctl-status.c +index 6f38b0f793..e130838fb0 100644 +--- a/src/bootctl/bootctl-status.c ++++ b/src/bootctl/bootctl-status.c +@@ -478,7 +478,6 @@ int verb_status(int argc, char *argv[], void *userdata) { + + sd_id128_t loader_partition_uuid = SD_ID128_NULL; + (void) efi_loader_get_device_part_uuid(&loader_partition_uuid); +- print_yes_no_line(/* first= */ false, !sd_id128_is_null(loader_partition_uuid), "Boot loader set partition information"); + + if (!sd_id128_is_null(loader_partition_uuid)) { + if (!sd_id128_is_null(esp_uuid) && !sd_id128_equal(esp_uuid, loader_partition_uuid)) +@@ -511,7 +510,6 @@ int verb_status(int argc, char *argv[], void *userdata) { + + sd_id128_t stub_partition_uuid = SD_ID128_NULL; + (void) efi_stub_get_device_part_uuid(&stub_partition_uuid); +- print_yes_no_line(/* first= */ false, !sd_id128_is_null(stub_partition_uuid), "Stub loader set partition information"); + + if (!sd_id128_is_null(stub_partition_uuid)) { + if (!(!sd_id128_is_null(esp_uuid) && sd_id128_equal(esp_uuid, stub_partition_uuid)) && diff --git a/0443-ukify-rstrip-and-escape-binary-null-characters-from-.patch b/0443-ukify-rstrip-and-escape-binary-null-characters-from-.patch new file mode 100644 index 0000000..db88818 --- /dev/null +++ b/0443-ukify-rstrip-and-escape-binary-null-characters-from-.patch @@ -0,0 +1,32 @@ +From ed799d3b50e866d021ab1c4b0acb5b8fd6d19c6d Mon Sep 17 00:00:00 2001 +From: Li Tian <94442129+litian1992@users.noreply.github.com> +Date: Tue, 19 Aug 2025 05:43:41 +0800 +Subject: [PATCH] ukify: rstrip and escape binary null characters from + 'inspect' output (#38607) + +SBAT section of UKI may contain \u000 null characters. Rstrip them, and if there's anything left in the middle, +escape them so they are displayed as text. + +Fixes #38606 + +(cherry picked from commit 776991a3f349d9c99fd166a0c87fcd2bc1bf92a5) +Signed-off-by: Li Tian + +Resolves: RHEL-109552 +--- + src/ukify/ukify.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/ukify/ukify.py b/src/ukify/ukify.py +index da3ceeed24..a868a5b778 100755 +--- a/src/ukify/ukify.py ++++ b/src/ukify/ukify.py +@@ -1468,7 +1468,7 @@ def inspect_section( + + if ttype == 'text': + try: +- struct['text'] = data.decode() ++ struct['text'] = data.rstrip(b'\0').replace(b'\0', b'\\0').decode() + except UnicodeDecodeError as e: + print(f'Section {name!r} is not valid text: {e}') + struct['text'] = '(not valid UTF-8)' diff --git a/systemd.spec b/systemd.spec index be7e7c5..a5c0141 100644 --- a/systemd.spec +++ b/systemd.spec @@ -48,7 +48,7 @@ Url: https://systemd.io # Allow users to specify the version and release when building the rpm by # setting the %%version_override and %%release_override macros. Version: %{?version_override}%{!?version_override:257} -Release: 13%{?dist}.alma.1 +Release: 14%{?dist}.alma.1 %global stable %(c="%version"; [ "$c" = "${c#*.*}" ]; echo $?) @@ -548,6 +548,11 @@ Patch0435: 0435-hwdb-Add-launch-emoji-keyboard-mapping-for-Asus-M160.patch Patch0436: 0436-Enable-KEY_PERFORMANCE-key-present-on-Linux-6.17.patch Patch0437: 0437-hwdb-add-HP-150-Wired-Mouse-37341.patch Patch0438: 0438-core-transaction-do-not-attempt-to-log-n-a-as-a-jour.patch +Patch0439: 0439-test-add-test-case-for-AddDependencyUnitFiles-assert.patch +Patch0440: 0440-TEST-17-drop-unnecessary-PATH-setting.patch +Patch0441: 0441-chase-check-the-result-is-a-directory-or-regular-fil.patch +Patch0442: 0442-bootctl-stop-printing-Stub-Boot-loader-set-partition.patch +Patch0443: 0443-ukify-rstrip-and-escape-binary-null-characters-from-.patch # Downstream-only patches (9000–9999) %endif @@ -1494,9 +1499,16 @@ rm -f .file-list-* rm -f %{name}.lang %changelog -* Sun Aug 17 2025 Andrew Lukoshko - 257-13.alma.1 +* Wed Sep 17 2025 Andrew Lukoshko - 257-14.alma.1 - Debrand for AlmaLinux +* Mon Sep 15 2025 systemd maintenance team - 257-14 +- test: add test case for AddDependencyUnitFiles assert (RHEL-108257) +- TEST-17: drop unnecessary $PATH setting (RHEL-108242) +- chase: check the result is a directory or regular file only when the resolved path exists (RHEL-108006) +- bootctl: stop printing "Stub/Boot loader set partition information" (RHEL-108251) +- ukify: rstrip and escape binary null characters from 'inspect' output (#38607) (RHEL-109552) + * Fri Aug 15 2025 systemd maintenance team - 257-13 - core/transaction: do not attempt to log "n/a" as a journal field (RHEL-106260)