For Fedora 38 the systemd shared object files used to check the systemd
version are located at /usr/lib64/systemd or /usr/lib/systemd.
Therefore, include /usr/lib64/systemd in the list of directories to
check.

Further, Fedora 38 adds a fc38 postfix to the filename, so expand the
regex to cover that as well.

Signed-off-by: Christian Ebner <c.eb...@proxmox.com>
---

Reported by users via the forum:
https://forum.proxmox.com/threads/128721/#post-584456

 PVE/CLI/pve7to8.pm | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/PVE/CLI/pve7to8.pm b/PVE/CLI/pve7to8.pm
index ff8e6045..3947b260 100644
--- a/PVE/CLI/pve7to8.pm
+++ b/PVE/CLI/pve7to8.pm
@@ -1022,12 +1022,18 @@ sub check_containers_cgroup_compat {
        my $get_systemd_version = sub {
            my ($self) = @_;
 
+           my @dirs = (
+               '/lib/systemd',
+               '/usr/lib/systemd',
+               '/usr/lib/x86_64-linux-gnu/systemd',
+               '/usr/lib64/systemd'
+           );
            my $libsd;
-           for my $dir ('/lib/systemd', '/usr/lib/systemd', 
'/usr/lib/x86_64-linux-gnu/systemd') {
+           for my $dir (@dirs) {
                $libsd = PVE::Tools::dir_glob_regex($dir, 
"libsystemd-shared-.+\.so");
                last if defined($libsd);
            }
-           if (defined($libsd) && $libsd =~ 
/libsystemd-shared-(\d+)(\.\d-\d)?\.so/) {
+           if (defined($libsd) && $libsd =~ 
/libsystemd-shared-(\d+)(\.\d-\d)?(\.fc\d\d)?\.so/) {
                return $1;
            }
 
-- 
2.39.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to