[pve-devel] [PATCH] pve7to8: Improve systemd unified cgroupv2 support check

Christian Ebner c.ebner at proxmox.com
Mon Jun 12 12:21:49 CEST 2023


Ignore this one, it is still incomplete as Debian 12 stores the shared object at /usr/lib/x86_64-linux-gnu/systemd. Will include that too and send a v2.

> On 12.06.2023 12:06 CEST Christian Ebner <c.ebner at proxmox.com> wrote:
> 
>  
> 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. So check also the latter, 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 <c.ebner at proxmox.com>
> ---
>  PVE/CLI/pve7to8.pm | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/PVE/CLI/pve7to8.pm b/PVE/CLI/pve7to8.pm
> index 6b51e98e..3061b691 100644
> --- a/PVE/CLI/pve7to8.pm
> +++ b/PVE/CLI/pve7to8.pm
> @@ -1015,9 +1015,11 @@ 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 =~ /libsystemd-shared-(\d+)(\.\d-\d)?\.so/) {
>  		return $1;
>  	    }
>  
> -- 
> 2.39.2





More information about the pve-devel mailing list