From 591f411f729e2f9c2f1fd45540a4d777c16b3245 Mon Sep 17 00:00:00 2001 From: Christian Ebner Date: Mon, 12 Jun 2023 12:31:13 +0200 Subject: [PATCH] pve7to8: Improve systemd unified cgroupv2 support check Checking /lib/systemd if it is present and a directory is not enough, as the shared object file used to check the version might nevertheless be located at /usr/lib/systemd, or under /usr/lib/x86_64-linux-gnu/systemd. So check also the latter paths, if the former returned no match. Further, Arch Linux appends the minor version and release version to the filename, so include that in the regex as well. Signed-off-by: Christian Ebner --- PVE/CLI/pve7to8.pm | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/PVE/CLI/pve7to8.pm b/PVE/CLI/pve7to8.pm index 6e2cc04f..1d29880a 100644 --- a/PVE/CLI/pve7to8.pm +++ b/PVE/CLI/pve7to8.pm @@ -1016,9 +1016,14 @@ sub check_containers_cgroup_compat { my $get_systemd_version = sub { my ($self) = @_; - my $sd_lib_dir = -d "/lib/systemd" ? "/lib/systemd" : "/usr/lib/systemd"; - my $libsd = PVE::Tools::dir_glob_regex($sd_lib_dir, "libsystemd-shared-.+\.so"); - if (defined($libsd) && $libsd =~ /libsystemd-shared-(\d+)\.so/) { + my $libsd = PVE::Tools::dir_glob_regex("/lib/systemd", "libsystemd-shared-.+\.so"); + if (!defined($libsd)) { + $libsd = PVE::Tools::dir_glob_regex("/usr/lib/systemd", "libsystemd-shared-.+\.so"); + } + if (!defined($libsd)) { + $libsd = PVE::Tools::dir_glob_regex("/usr/lib/x86_64-linux-gnu/systemd", "libsystemd-shared-.+\.so"); + } + if (defined($libsd) && $libsd =~ /libsystemd-shared-(\d+)(\.\d-\d)?\.so/) { return $1; } -- 2.39.2