diff options
-rw-r--r-- | generator/generator_actions.ml | 6 | ||||
-rw-r--r-- | src/guestfs-internal.h | 2 | ||||
-rw-r--r-- | src/inspect.c | 2 | ||||
-rw-r--r-- | src/inspect_fs.c | 5 | ||||
-rw-r--r-- | src/inspect_fs_unix.c | 10 |
5 files changed, 24 insertions, 1 deletions
diff --git a/generator/generator_actions.ml b/generator/generator_actions.ml index 6c8a14da..60fca9b7 100644 --- a/generator/generator_actions.ml +++ b/generator/generator_actions.ml @@ -814,6 +814,10 @@ Mandriva. MeeGo. +=item \"opensuse\" + +OpenSUSE. + =item \"pardus\" Pardus. @@ -1190,7 +1194,7 @@ a real packaging system (eg. Windows). Possible strings include: C<yum>, C<up2date>, C<apt> (for all Debian derivatives), -C<portage>, C<pisi>, C<pacman>, C<urpmi>. +C<portage>, C<pisi>, C<pacman>, C<urpmi>, C<zypper>. Future versions of libguestfs may return other strings. Please read L<guestfs(3)/INSPECTION> for more details."); diff --git a/src/guestfs-internal.h b/src/guestfs-internal.h index 58d06e59..cee3048a 100644 --- a/src/guestfs-internal.h +++ b/src/guestfs-internal.h @@ -275,6 +275,7 @@ enum inspect_os_distro { OS_DISTRO_SCIENTIFIC_LINUX, OS_DISTRO_TTYLINUX, OS_DISTRO_MAGEIA, + OS_DISTRO_OPENSUSE, }; enum inspect_os_package_format { @@ -295,6 +296,7 @@ enum inspect_os_package_management { OS_PACKAGE_MANAGEMENT_PORTAGE, OS_PACKAGE_MANAGEMENT_PISI, OS_PACKAGE_MANAGEMENT_URPMI, + OS_PACKAGE_MANAGEMENT_ZYPPER, }; struct inspect_fs { diff --git a/src/inspect.c b/src/inspect.c index be06fde7..62cbc855 100644 --- a/src/inspect.c +++ b/src/inspect.c @@ -200,6 +200,7 @@ guestfs__inspect_get_distro (guestfs_h *g, const char *root) case OS_DISTRO_MAGEIA: ret = safe_strdup (g, "mageia"); break; case OS_DISTRO_MANDRIVA: ret = safe_strdup (g, "mandriva"); break; case OS_DISTRO_MEEGO: ret = safe_strdup (g, "meego"); break; + case OS_DISTRO_OPENSUSE: ret = safe_strdup (g, "opensuse"); 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; @@ -480,6 +481,7 @@ guestfs__inspect_get_package_management (guestfs_h *g, const char *root) case OS_PACKAGE_MANAGEMENT_PORTAGE: ret = safe_strdup (g, "portage"); break; case OS_PACKAGE_MANAGEMENT_PISI: ret = safe_strdup (g, "pisi"); break; case OS_PACKAGE_MANAGEMENT_URPMI: ret = safe_strdup (g, "urpmi"); break; + case OS_PACKAGE_MANAGEMENT_ZYPPER: ret = safe_strdup (g, "zypper"); break; case OS_PACKAGE_MANAGEMENT_UNKNOWN: default: ret = safe_strdup (g, "unknown"); diff --git a/src/inspect_fs.c b/src/inspect_fs.c index 81b30082..25336265 100644 --- a/src/inspect_fs.c +++ b/src/inspect_fs.c @@ -363,6 +363,7 @@ check_package_format (guestfs_h *g, struct inspect_fs *fs) case OS_DISTRO_RHEL: case OS_DISTRO_MAGEIA: case OS_DISTRO_MANDRIVA: + case OS_DISTRO_OPENSUSE: case OS_DISTRO_CENTOS: case OS_DISTRO_SCIENTIFIC_LINUX: fs->package_format = OS_PACKAGE_FORMAT_RPM; @@ -433,6 +434,10 @@ check_package_management (guestfs_h *g, struct inspect_fs *fs) fs->package_management = OS_PACKAGE_MANAGEMENT_URPMI; break; + case OS_DISTRO_OPENSUSE: + fs->package_management = OS_PACKAGE_MANAGEMENT_ZYPPER; + break; + case OS_DISTRO_SLACKWARE: case OS_DISTRO_TTYLINUX: case OS_DISTRO_WINDOWS: diff --git a/src/inspect_fs_unix.c b/src/inspect_fs_unix.c index 689fdb51..20c164ec 100644 --- a/src/inspect_fs_unix.c +++ b/src/inspect_fs_unix.c @@ -419,6 +419,16 @@ guestfs___check_linux_root (guestfs_h *g, struct inspect_fs *fs) if (guestfs___parse_major_minor (g, fs) == -1) return -1; } + else if (guestfs_exists (g, "/etc/SuSE-release") > 0) { + fs->distro = OS_DISTRO_OPENSUSE; + + if (parse_release_file (g, fs, "/etc/SuSE-release") == -1) + return -1; + + if (guestfs___parse_major_minor (g, fs) == -1) + return -1; + } + skip_release_checks:; |