$package_format = "rpm";
             $package_management = "yum";
         }
+        elsif ($distro eq "gentoo") {
+            $package_format = "ebuild";
+            $package_management = "portage";
+        }
         elsif ($distro eq "pardus") {
             $package_format = "pisi";
             $package_management = "pisi";
 
      * determine the actual release or product string.
      */
   }
+  else if (guestfs_exists (g, "/etc/gentoo-release") > 0) {
+    fs->distro = OS_DISTRO_GENTOO;
+
+    if (parse_release_file (g, fs, "/etc/gentoo-release") == -1)
+      return -1;
+
+    if (parse_major_minor (g, fs) == -1)
+      return -1;
+  }
 
   /* Determine the architecture. */
   const char *binaries[] =
   case OS_DISTRO_ARCHLINUX: ret = safe_strdup (g, "archlinux"); break;
   case OS_DISTRO_DEBIAN: ret = safe_strdup (g, "debian"); break;
   case OS_DISTRO_FEDORA: ret = safe_strdup (g, "fedora"); break;
+  case OS_DISTRO_GENTOO: ret = safe_strdup (g, "gentoo"); 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;