diff --git a/backport-systemctl-fix-printing-of-RootImageOptions.patch b/backport-systemctl-fix-printing-of-RootImageOptions.patch new file mode 100644 index 0000000000000000000000000000000000000000..f841729d85d28db7f91ad1ccbdc7ddafe3a08074 --- /dev/null +++ b/backport-systemctl-fix-printing-of-RootImageOptions.patch @@ -0,0 +1,49 @@ +From 64d833dfa6bcac6d4c991447bfd63d6bcda1ba6b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 27 Sep 2024 20:17:12 +0200 +Subject: [PATCH] systemctl: fix printing of RootImageOptions + +The type is a(ss), so a custom printer is required. + +Fixes https://github.com/systemd/systemd/issues/33967. + +(cherry picked from commit 69c751c61cb2b386afe51f03b58f8f7ceeeb643e) +(cherry picked from commit 28ced52894cf6921d1fe9831f2def29de164e189) +--- + src/systemctl/systemctl-show.c | 23 +++++++++++++++++++++++ + 1 file changed, 23 insertions(+) + +diff --git a/src/systemctl/systemctl-show.c b/src/systemctl/systemctl-show.c +index 5d1eb492e1..7fe7f423f6 100644 +--- a/src/systemctl/systemctl-show.c ++++ b/src/systemctl/systemctl-show.c +@@ -1742,6 +1742,29 @@ static int print_property(const char *name, const char *expected_value, sd_bus_m + return bus_log_parse_error(r); + + return 1; ++ ++ } else if (streq(name, "RootImageOptions")) { ++ const char *a, *p; ++ ++ /* In config files, the syntax allows the partition name to be omitted. Here, we ++ * always print the partition name, also because we have no way of knowing if it was ++ * originally omitted or not. We also print the partitions on separate lines. */ ++ ++ r = sd_bus_message_enter_container(m, SD_BUS_TYPE_ARRAY, "(ss)"); ++ if (r < 0) ++ return bus_log_parse_error(r); ++ ++ while ((r = sd_bus_message_read(m, "(ss)", &a, &p)) > 0) ++ bus_print_property_valuef(name, expected_value, flags, "%s:%s", a, p); ++ if (r < 0) ++ return bus_log_parse_error(r); ++ ++ r = sd_bus_message_exit_container(m); ++ if (r < 0) ++ return bus_log_parse_error(r); ++ ++ return 1; ++ + } else if (streq(name, "MountImages")) { + _cleanup_free_ char *paths = NULL; + diff --git a/systemd.spec b/systemd.spec index 9ac3f8fa2a58234be6dd1a11e263bfffc8bac478..058874fcdd8cd6de729ba3b773456e0fc075faa5 100644 --- a/systemd.spec +++ b/systemd.spec @@ -25,7 +25,7 @@ Name: systemd Url: https://systemd.io/ Version: 255 -Release: 29 +Release: 30 License: LGPL-2.1-or-later AND MIT AND GPL-2.0-or-later Summary: System and Service Manager @@ -75,6 +75,7 @@ Patch6019: backport-core-escape-spaces-in-paths-during-serialization.patch Patch6020: backport-core-escape-spaces-when-serializing-as-well.patch Patch6021: backport-network-networkd-address-don-t-set-up-firewall-rules.patch Patch6022: backport-mount-optimize-mountinfo-traversal-by-decoupling-dev.patch +Patch6023: backport-systemctl-fix-printing-of-RootImageOptions.patch Patch9008: update-rtc-with-system-clock-when-shutdown.patch Patch9009: udev-add-actions-while-rename-netif-failed.patch @@ -1683,6 +1684,9 @@ fi %{_unitdir}/veritysetup.target %changelog +* Fri Nov 8 2024 Han Jinpeng - 255-30 +- backport: fix systemctl printing of RootImageOptions issue + * Thu Nov 07 2024 xujing - 255-29 - optimize mountinfo traversal by decoupling device discovery