From b648b1813fc8e55db790435b5414d9be3ec765d2 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Fri, 16 Sep 2011 15:21:26 +0100
Subject: [PATCH] inspection: Add support for ttylinux (a minimal Linux).

---
 generator/generator_actions.ml |  4 ++++
 src/guestfs-internal.h         |  1 +
 src/inspect.c                  |  1 +
 src/inspect_fs.c               |  2 ++
 src/inspect_fs_unix.c          | 10 ++++++++++
 src/inspect_icon.c             |  1 +
 6 files changed, 19 insertions(+)

diff --git a/generator/generator_actions.ml b/generator/generator_actions.ml
index 49963bc..c3d74f5 100644
--- a/generator/generator_actions.ml
+++ b/generator/generator_actions.ml
@@ -830,6 +830,10 @@ Scientific Linux.
 
 Slackware.
 
+=item \"ttylinux\"
+
+ttylinux.
+
 =item \"ubuntu\"
 
 Ubuntu.
diff --git a/src/guestfs-internal.h b/src/guestfs-internal.h
index 79d8990..c0a2be4 100644
--- a/src/guestfs-internal.h
+++ b/src/guestfs-internal.h
@@ -251,6 +251,7 @@ enum inspect_os_distro {
   OS_DISTRO_SLACKWARE,
   OS_DISTRO_CENTOS,
   OS_DISTRO_SCIENTIFIC_LINUX,
+  OS_DISTRO_TTYLINUX,
 };
 
 enum inspect_os_package_format {
diff --git a/src/inspect.c b/src/inspect.c
index c51804d..f3e2186 100644
--- a/src/inspect.c
+++ b/src/inspect.c
@@ -204,6 +204,7 @@ guestfs__inspect_get_distro (guestfs_h *g, const char *root)
   case OS_DISTRO_RHEL: ret = safe_strdup (g, "rhel"); break;
   case OS_DISTRO_SCIENTIFIC_LINUX: ret = safe_strdup (g, "scientificlinux"); break;
   case OS_DISTRO_SLACKWARE: ret = safe_strdup (g, "slackware"); break;
+  case OS_DISTRO_TTYLINUX: ret = safe_strdup (g, "ttylinux"); break;
   case OS_DISTRO_WINDOWS: ret = safe_strdup (g, "windows"); break;
   case OS_DISTRO_UBUNTU: ret = safe_strdup (g, "ubuntu"); break;
   case OS_DISTRO_UNKNOWN: default: ret = safe_strdup (g, "unknown"); break;
diff --git a/src/inspect_fs.c b/src/inspect_fs.c
index 3f7be0e..e317e46 100644
--- a/src/inspect_fs.c
+++ b/src/inspect_fs.c
@@ -384,6 +384,7 @@ check_package_format (guestfs_h *g, struct inspect_fs *fs)
     break;
 
   case OS_DISTRO_SLACKWARE:
+  case OS_DISTRO_TTYLINUX:
   case OS_DISTRO_WINDOWS:
   case OS_DISTRO_UNKNOWN:
   default:
@@ -431,6 +432,7 @@ check_package_management (guestfs_h *g, struct inspect_fs *fs)
     break;
 
   case OS_DISTRO_SLACKWARE:
+  case OS_DISTRO_TTYLINUX:
   case OS_DISTRO_WINDOWS:
   case OS_DISTRO_UNKNOWN:
   default:
diff --git a/src/inspect_fs_unix.c b/src/inspect_fs_unix.c
index b8be049..4270712 100644
--- a/src/inspect_fs_unix.c
+++ b/src/inspect_fs_unix.c
@@ -404,6 +404,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/ttylinux-target") > 0) {
+    fs->distro = OS_DISTRO_TTYLINUX;
+
+    fs->product_name = guestfs___first_line_of_file (g, "/etc/ttylinux-target");
+    if (fs->product_name == NULL)
+      return -1;
+
+    if (guestfs___parse_major_minor (g, fs) == -1)
+      return -1;
+  }
 
  skip_release_checks:;
 
diff --git a/src/inspect_icon.c b/src/inspect_icon.c
index ad0f62c..d9e2ee9 100644
--- a/src/inspect_icon.c
+++ b/src/inspect_icon.c
@@ -134,6 +134,7 @@ guestfs__inspect_get_icon (guestfs_h *g, const char *root, size_t *size_r,
     case OS_DISTRO_MEEGO:
     case OS_DISTRO_PARDUS:
     case OS_DISTRO_SLACKWARE:
+    case OS_DISTRO_TTYLINUX:
     case OS_DISTRO_UBUNTU:
     case OS_DISTRO_WINDOWS:
     case OS_DISTRO_UNKNOWN:
-- 
1.8.3.1