inspect: Add detection of Pardus.

This commit is contained in:
Richard Jones
2010-10-29 10:21:33 +01:00
parent a81bf3f3ef
commit 233530d354
4 changed files with 19 additions and 0 deletions

View File

@@ -787,6 +787,10 @@ Debian or a Debian-derived distro such as Ubuntu.
Fedora.
=item \"pardus\"
Pardus.
=item \"redhat-based\"
Some Red Hat-derived distro.

View File

@@ -385,6 +385,10 @@ sub output_applications
$package_format = "rpm";
$package_management = "yum";
}
elsif ($distro eq "pardus") {
$package_format = "pisi";
$package_management = "pisi";
}
elsif ($distro =~ /redhat/ || $distro =~ /rhel/) {
if ($major_version >= 5) {
$package_format = "rpm";

View File

@@ -166,6 +166,7 @@ enum inspect_os_distro {
OS_DISTRO_REDHAT_BASED,
OS_DISTRO_RHEL,
OS_DISTRO_WINDOWS,
OS_DISTRO_PARDUS,
};
struct inspect_fs {

View File

@@ -722,6 +722,15 @@ check_linux_root (guestfs_h *g, struct inspect_fs *fs)
if (parse_major_minor (g, fs) == -1)
return -1;
}
else if (guestfs_exists (g, "/etc/pardus-release") > 0) {
fs->distro = OS_DISTRO_PARDUS;
if (parse_release_file (g, fs, "/etc/pardus-release") == -1)
return -1;
if (parse_major_minor (g, fs) == -1)
return -1;
}
/* Determine the architecture. */
const char *binaries[] =
@@ -1238,6 +1247,7 @@ guestfs__inspect_get_distro (guestfs_h *g, const char *root)
switch (fs->distro) {
case OS_DISTRO_DEBIAN: ret = safe_strdup (g, "debian"); break;
case OS_DISTRO_FEDORA: ret = safe_strdup (g, "fedora"); break;
case OS_DISTRO_PARDUS: ret = safe_strdup (g, "pardus"); break;
case OS_DISTRO_REDHAT_BASED: ret = safe_strdup (g, "redhat-based"); break;
case OS_DISTRO_RHEL: ret = safe_strdup (g, "rhel"); break;
case OS_DISTRO_WINDOWS: ret = safe_strdup (g, "windows"); break;