support OpencloudOS

Reviewed-by: Richard W.M. Jones <rjones@redhat.com>
Fixes: https://github.com/libguestfs/libguestfs/pull/125
This commit is contained in:
cunshunxia
2023-09-18 08:59:36 +00:00
committed by Richard W.M. Jones
parent f76c871adb
commit 188c5f7d93
7 changed files with 46 additions and 9 deletions

View File

@@ -13,6 +13,7 @@ dnl SUSE=1 For OpenSUSE.
dnl FRUGALWARE=1 For Frugalware.
dnl MAGEIA=1 For Mageia.
dnl OPENMANDRIVA=1 For OpenMandriva.
dnl OPENCLOUDOS=1 For OpenCloudOS.
/etc/ld.so.cache
/lib/lsb/*

View File

@@ -4,13 +4,14 @@ dnl
dnl This file is processed by m4 with one of the
dnl following symbols defined (depending on the distro):
dnl
dnl REDHAT=1 For Fedora, RHEL, EPEL and workalikes.
dnl DEBIAN=1 For Debian.
dnl UBUNTU=1 For Ubuntu.
dnl ARCHLINUX=1 For Archlinux.
dnl SUSE=1 For OpenSUSE.
dnl FRUGALWARE=1 For Frugalware.
dnl MAGEIA=1 For Mageia.
dnl REDHAT=1 For Fedora, RHEL, EPEL and workalikes.
dnl DEBIAN=1 For Debian.
dnl UBUNTU=1 For Ubuntu.
dnl ARCHLINUX=1 For Archlinux.
dnl SUSE=1 For OpenSUSE.
dnl FRUGALWARE=1 For Frugalware.
dnl MAGEIA=1 For Mageia.
dnl OPENCLOUDOS=1 For OpencloudOS.
dnl
dnl There is also a list of packages which are excluded if they appear
dnl as dependencies of the packages below. See: excludelist.in
@@ -213,6 +214,29 @@ ifelse(OPENMANDRIVA,1,
zstd
)
ifelse(OPENCLOUDOS,1,
clevis-luks
cryptsetup
cryptsetup-luks
dhclient
gfs2-utils
glibc-gconv-extra
hfsplus-tools
iproute
iputils
kernel
ntfsprogs
ntfs-3g
openssh-clients
policycoreutils
rpm-libs
syslinux-extlinux
systemd
vim-minimal
xz
zstd
)
include(guestfsd.deps)
acl

View File

@@ -266,6 +266,7 @@ and check_package_format { distro } =
| Some DISTRO_MEEGO
| Some DISTRO_NEOKYLIN
| Some DISTRO_OPENMANDRIVA
| Some DISTRO_OPENCLOUDOS
| Some DISTRO_OPENSUSE
| Some DISTRO_ORACLE_LINUX
| Some DISTRO_REDHAT_BASED
@@ -380,6 +381,8 @@ and check_package_management { distro; version } =
| Some DISTRO_OPENMANDRIVA ->
Some PACKAGE_MANAGEMENT_DNF
| Some DISTRO_OPENCLOUDOS ->
Some PACKAGE_MANAGEMENT_DNF
| Some DISTRO_BUILDROOT
| Some DISTRO_CIRROS
| Some DISTRO_COREOS

View File

@@ -58,6 +58,7 @@ let re_pldlinux = PCRE.compile "(\\d+)\\.(\\d+) PLD Linux"
let re_neokylin_version = PCRE.compile "^V(\\d+)Update(\\d+)$"
let re_openmandriva =
PCRE.compile "OpenMandriva.*release (\\d+)\\.(\\d+)\\.?(\\d+)? .*"
let re_opencloudos = PCRE.compile "OpenCloudOS.*release (\\d+)"
let arch_binaries =
[ "/bin/bash"; "/bin/ls"; "/bin/echo"; "/bin/rm"; "/bin/sh" ]
@@ -154,6 +155,7 @@ and distro_of_os_release_id = function
| "mageia" -> Some DISTRO_MAGEIA
| "neokylin" -> Some DISTRO_NEOKYLIN
| "openmandriva" -> Some DISTRO_OPENMANDRIVA
| "opencloudos" -> Some DISTRO_OPENCLOUDOS
| "opensuse" -> Some DISTRO_OPENSUSE
| s when String.is_prefix s "opensuse-" -> Some DISTRO_OPENSUSE
| "pardus" -> Some DISTRO_PARDUS
@@ -395,6 +397,9 @@ let linux_root_tests : tests = [
"/etc/openmandriva-release", parse_generic ~rex:re_openmandriva
DISTRO_OPENMANDRIVA;
"/etc/opencloudos-release", parse_generic ~rex:re_opencloudos
DISTRO_OPENCLOUDOS;
(* RHEL-based distros include a [/etc/redhat-release] file, hence their
* checks need to be performed before the Red-Hat one.
*)

View File

@@ -90,6 +90,7 @@ and distro =
| DISTRO_NETBSD
| DISTRO_OPENBSD
| DISTRO_OPENMANDRIVA
| DISTRO_OPENCLOUDOS
| DISTRO_OPENSUSE
| DISTRO_ORACLE_LINUX
| DISTRO_PARDUS
@@ -226,6 +227,7 @@ and string_of_distro = function
| DISTRO_NETBSD -> "netbsd"
| DISTRO_OPENBSD -> "openbsd"
| DISTRO_OPENMANDRIVA -> "openmandriva"
| DISTRO_OPENCLOUDOS -> "opencloudos"
| DISTRO_OPENSUSE -> "opensuse"
| DISTRO_ORACLE_LINUX -> "oraclelinux"
| DISTRO_PARDUS -> "pardus"

View File

@@ -97,6 +97,7 @@ and distro =
| DISTRO_NETBSD
| DISTRO_OPENBSD
| DISTRO_OPENMANDRIVA
| DISTRO_OPENCLOUDOS
| DISTRO_OPENSUSE
| DISTRO_ORACLE_LINUX
| DISTRO_PARDUS

View File

@@ -119,7 +119,8 @@ if test "x$ENABLE_APPLIANCE" = "xyes"; then
[DISTRO=REDHAT],
[OPENSUSE* | SLED | SLES],[DISTRO=SUSE],
[ARCH | MANJARO | ARTIX],[DISTRO=ARCHLINUX],
[OPENMANDRIVA],[DISTRO=OPENMANDRIVA])
[OPENMANDRIVA],[DISTRO=OPENMANDRIVA],
[OPENCLOUDOS],[DISTRO=OPENCLOUDOS])
AC_MSG_RESULT([$DISTRO (from /etc/os-release)])
else
AC_MSG_ERROR([/etc/os-release not available, please specify the distro using --with-distro=DISTRO])
@@ -129,7 +130,7 @@ if test "x$ENABLE_APPLIANCE" = "xyes"; then
AC_SUBST([DISTRO])
fi
AM_CONDITIONAL([HAVE_RPM],
[AS_CASE([$DISTRO], [REDHAT | SUSE | OPENMANDRIVA | MAGEIA ], [true],
[AS_CASE([$DISTRO], [REDHAT | SUSE | OPENMANDRIVA | MAGEIA | OPENCLOUDOS ], [true],
[*], [false])])
AM_CONDITIONAL([HAVE_DPKG],
[AS_CASE([$DISTRO], [DEBIAN | UBUNTU ], [true],