Just basic identification, name and version.
---
generator/actions.ml | 4 ++++
src/guestfs-internal.h | 1 +
src/inspect-fs-unix.c | 21 +++++++++++++++++++++
src/inspect-fs.c | 2 ++
src/inspect-icon.c | 1 +
src/inspect.c | 1 +
6 files changed, 30 insertions(+)
diff --git a/generator/actions.ml b/generator/actions.ml
index 13c8bc8..2f0ad0b 100644
--- a/generator/actions.ml
+++ b/generator/actions.ml
@@ -1099,6 +1099,10 @@ FreeBSD.
FreeDOS.
+=item \"frugalware\"
+
+Frugalware.
+
=item \"gentoo\"
Gentoo.
diff --git a/src/guestfs-internal.h b/src/guestfs-internal.h
index 6cf3dad..f0eb28a 100644
--- a/src/guestfs-internal.h
+++ b/src/guestfs-internal.h
@@ -554,6 +554,7 @@ enum inspect_os_distro {
OS_DISTRO_COREOS,
OS_DISTRO_ALPINE_LINUX,
OS_DISTRO_ALTLINUX,
+ OS_DISTRO_FRUGALWARE,
};
enum inspect_os_package_format {
diff --git a/src/inspect-fs-unix.c b/src/inspect-fs-unix.c
index abbae35..65ab8ef 100644
--- a/src/inspect-fs-unix.c
+++ b/src/inspect-fs-unix.c
@@ -85,6 +85,7 @@ COMPILE_REGEXP (re_openbsd_duid, "^[0-9a-f]{16}\\.[a-z]", 0)
COMPILE_REGEXP (re_openbsd_dev, "^/dev/(s|w)d([0-9])([a-z])$", 0)
COMPILE_REGEXP (re_netbsd_dev, "^/dev/(l|s)d([0-9])([a-z])$", 0)
COMPILE_REGEXP (re_altlinux, "
(?:(\\d+)(?:\\.(\\d+)(?:[\\.\\d]+)?)?)\\s+\\((?:[^)]+)\\)$", 0)
+COMPILE_REGEXP (re_frugalware, "Frugalware (\\d+)\\.(\\d+)", 0)
static void check_architecture (guestfs_h *g, struct inspect_fs *fs);
static int check_hostname_unix (guestfs_h *g, struct inspect_fs *fs);
@@ -632,6 +633,26 @@ guestfs_int_check_linux_root (guestfs_h *g, struct inspect_fs *fs)
if (guestfs_int_parse_major_minor (g, fs) == -1)
return -1;
}
+ else if (guestfs_is_file_opts (g, "/etc/frugalware-release",
+ GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) > 0) {
+ fs->distro = OS_DISTRO_FRUGALWARE;
+
+ if (parse_release_file (g, fs, "/etc/frugalware-release") == -1)
+ return -1;
+
+ if (match2 (g, fs->product_name, re_frugalware, &major, &minor)) {
+ fs->major_version = guestfs_int_parse_unsigned_int (g, major);
+ free (major);
+ if (fs->major_version == -1) {
+ free (minor);
+ return -1;
+ }
+ fs->minor_version = guestfs_int_parse_unsigned_int (g, minor);
+ free (minor);
+ if (fs->minor_version == -1)
+ return -1;
+ }
+ }
skip_release_checks:;
diff --git a/src/inspect-fs.c b/src/inspect-fs.c
index b239302..b6f03ee 100644
--- a/src/inspect-fs.c
+++ b/src/inspect-fs.c
@@ -499,6 +499,7 @@ guestfs_int_check_package_format (guestfs_h *g, struct inspect_fs
*fs)
case OS_DISTRO_FREEBSD:
case OS_DISTRO_NETBSD:
case OS_DISTRO_OPENBSD:
+ case OS_DISTRO_FRUGALWARE:
case OS_DISTRO_UNKNOWN:
fs->package_format = OS_PACKAGE_FORMAT_UNKNOWN;
break;
@@ -575,6 +576,7 @@ guestfs_int_check_package_management (guestfs_h *g, struct inspect_fs
*fs)
case OS_DISTRO_FREEBSD:
case OS_DISTRO_NETBSD:
case OS_DISTRO_OPENBSD:
+ case OS_DISTRO_FRUGALWARE:
case OS_DISTRO_UNKNOWN:
fs->package_management = OS_PACKAGE_MANAGEMENT_UNKNOWN;
break;
diff --git a/src/inspect-icon.c b/src/inspect-icon.c
index 93cd67a..33d0aa7 100644
--- a/src/inspect-icon.c
+++ b/src/inspect-icon.c
@@ -184,6 +184,7 @@ guestfs_impl_inspect_get_icon (guestfs_h *g, const char *root, size_t
*size_r,
case OS_DISTRO_OPENBSD:
case OS_DISTRO_ALPINE_LINUX:
case OS_DISTRO_ALTLINUX:
+ case OS_DISTRO_FRUGALWARE:
case OS_DISTRO_UNKNOWN:
; /* nothing */
}
diff --git a/src/inspect.c b/src/inspect.c
index c01888a..7c7ee0c 100644
--- a/src/inspect.c
+++ b/src/inspect.c
@@ -266,6 +266,7 @@ guestfs_impl_inspect_get_distro (guestfs_h *g, const char *root)
case OS_DISTRO_FEDORA: ret = safe_strdup (g, "fedora"); break;
case OS_DISTRO_FREEBSD: ret = safe_strdup (g, "freebsd"); break;
case OS_DISTRO_FREEDOS: ret = safe_strdup (g, "freedos"); break;
+ case OS_DISTRO_FRUGALWARE: ret = safe_strdup (g, "frugalware"); break;
case OS_DISTRO_GENTOO: ret = safe_strdup (g, "gentoo"); break;
case OS_DISTRO_LINUX_MINT: ret = safe_strdup (g, "linuxmint"); break;
case OS_DISTRO_MAGEIA: ret = safe_strdup (g, "mageia"); break;
--
2.1.0