daemon: inspection: Add support for NeoKylin (RHBZ#1476081).

Thanks: Qingzheng Zhang
This commit is contained in:
Richard W.M. Jones
2017-10-12 10:24:53 +01:00
parent bf22909dd6
commit cd08039d24
6 changed files with 30 additions and 1 deletions

View File

@@ -253,6 +253,7 @@ and check_package_format { distro } =
| Some DISTRO_MAGEIA
| Some DISTRO_MANDRIVA
| Some DISTRO_MEEGO
| Some DISTRO_NEOKYLIN
| Some DISTRO_OPENSUSE
| Some DISTRO_ORACLE_LINUX
| Some DISTRO_REDHAT_BASED
@@ -307,6 +308,12 @@ and check_package_management { distro; version } =
(* Probably parsing the release file failed, see RHBZ#1332025. *)
None
| Some DISTRO_NEOKYLIN ->
(* We don't have access to NeoKylin for testing, but it is
* supposed to be a Fedora derivative.
*)
Some PACKAGE_MANAGEMENT_DNF
| Some DISTRO_CENTOS
| Some DISTRO_ORACLE_LINUX
| Some DISTRO_REDHAT_BASED

View File

@@ -53,6 +53,7 @@ let re_minix = PCRE.compile "^(\\d+)\\.(\\d+)(\\.(\\d+))?"
let re_openbsd = PCRE.compile "^OpenBSD (\\d+|\\?)\\.(\\d+|\\?)"
let re_frugalware = PCRE.compile "Frugalware (\\d+)\\.(\\d+)"
let re_pldlinux = PCRE.compile "(\\d+)\\.(\\d+) PLD Linux"
let re_neokylin_version = PCRE.compile "^V(\\d+)Update(\\d+)$"
let arch_binaries =
[ "/bin/bash"; "/bin/ls"; "/bin/echo"; "/bin/rm"; "/bin/sh" ]
@@ -94,7 +95,7 @@ let rec parse_os_release release_file data =
else if key = "PRETTY_NAME" then
data.product_name <- Some value
else if key = "VERSION_ID" then
parse_version_from_major_minor value data
parse_os_release_version_id value data
)
) lines;
@@ -124,6 +125,18 @@ let rec parse_os_release release_file data =
| _ -> true
)
and parse_os_release_version_id value data =
(* NeoKylin uses a non-standard format in the VERSION_ID
* field (RHBZ#1476081).
*)
if PCRE.matches re_neokylin_version value then (
let major = int_of_string (PCRE.sub 1)
and minor = int_of_string (PCRE.sub 2) in
data.version <- Some (major, minor)
)
else
parse_version_from_major_minor value data
(* ID="fedora" => Some DISTRO_FEDORA *)
and distro_of_os_release_id = function
| "alpine" -> Some DISTRO_ALPINE_LINUX
@@ -135,6 +148,7 @@ and distro_of_os_release_id = function
| "fedora" -> Some DISTRO_FEDORA
| "frugalware" -> Some DISTRO_FRUGALWARE
| "mageia" -> Some DISTRO_MAGEIA
| "neokylin" -> Some DISTRO_NEOKYLIN
| "opensuse" -> Some DISTRO_OPENSUSE
| "pld" -> Some DISTRO_PLD_LINUX
| "rhel" -> Some DISTRO_RHEL

View File

@@ -82,6 +82,7 @@ and distro =
| DISTRO_MAGEIA
| DISTRO_MANDRIVA
| DISTRO_MEEGO
| DISTRO_NEOKYLIN
| DISTRO_NETBSD
| DISTRO_OPENBSD
| DISTRO_OPENSUSE
@@ -210,6 +211,7 @@ and string_of_distro = function
| DISTRO_MAGEIA -> "mageia"
| DISTRO_MANDRIVA -> "mandriva"
| DISTRO_MEEGO -> "meego"
| DISTRO_NEOKYLIN -> "neokylin"
| DISTRO_NETBSD -> "netbsd"
| DISTRO_OPENBSD -> "openbsd"
| DISTRO_OPENSUSE -> "opensuse"

View File

@@ -89,6 +89,7 @@ and distro =
| DISTRO_MAGEIA
| DISTRO_MANDRIVA
| DISTRO_MEEGO
| DISTRO_NEOKYLIN
| DISTRO_NETBSD
| DISTRO_OPENBSD
| DISTRO_OPENSUSE

View File

@@ -226,6 +226,10 @@ Mandriva.
MeeGo.
=item \"neokylin\"
NeoKylin.
=item \"netbsd\"
NetBSD.

View File

@@ -90,6 +90,7 @@
<value>mageia</value>
<value>mandriva</value>
<value>meego</value>
<value>neokylin</value>
<value>netbsd</value>
<value>openbsd</value>
<value>opensuse</value>