[Libguestfs] [PATCH v2] inspect: return osinfo short IDs for recent Windows versions

Richard W.M. Jones rjones at redhat.com
Mon Mar 25 15:02:30 UTC 2019


On Thu, Feb 28, 2019 at 11:11:44AM +0100, Pino Toscano wrote:
> Return the right osinfo short IDs for the majority of Windows versions
> since Windows XP.
> ---
> Changes from v1:
> - used the new win2k19 osinfo ID
> 
> 
>  lib/inspect-osinfo.c | 63 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 63 insertions(+)
> 
> diff --git a/lib/inspect-osinfo.c b/lib/inspect-osinfo.c
> index 816d317f1..e0d19c672 100644
> --- a/lib/inspect-osinfo.c
> +++ b/lib/inspect-osinfo.c
> @@ -69,6 +69,69 @@ guestfs_impl_inspect_get_osinfo (guestfs_h *g, const char *root)
>      if (STREQ (distro, "msdos"))
>        return safe_strdup (g, "msdos6.22");
>    }
> +  else if (STREQ (type, "windows")) {
> +    CLEANUP_FREE char *product_name = NULL;
> +    CLEANUP_FREE char *product_variant = NULL;
> +
> +    product_name = guestfs_inspect_get_product_name (g, root);
> +    if (!product_name)
> +      return NULL;
> +    product_variant = guestfs_inspect_get_product_variant (g, root);
> +    if (!product_variant)
> +      return NULL;
> +
> +    switch (major) {
> +    case 5:
> +      switch (minor) {
> +      case 1:
> +        return safe_strdup (g, "winxp");
> +      case 2:
> +        if (strstr (product_name, "XP"))
> +          return safe_strdup (g, "winxp");
> +        else if (strstr (product_name, "R2"))
> +          return safe_strdup (g, "win2k3r2");
> +        else
> +          return safe_strdup (g, "win2k3");
> +      }
> +      break;
> +    case 6:
> +      switch (minor) {
> +      case 0:
> +        if (strstr (product_variant, "Server"))
> +          return safe_strdup (g, "win2k8");
> +        else
> +          return safe_strdup (g, "winvista");
> +      case 1:
> +        if (strstr (product_variant, "Server"))
> +          return safe_strdup (g, "win2k8r2");
> +        else
> +          return safe_strdup (g, "win7");
> +      case 2:
> +        if (strstr (product_variant, "Server"))
> +          return safe_strdup (g, "win2k12");
> +        else
> +          return safe_strdup (g, "win8");
> +      case 3:
> +        if (strstr (product_variant, "Server"))
> +          return safe_strdup (g, "win2k12r2");
> +        else
> +          return safe_strdup (g, "win8.1");
> +      }
> +      break;
> +    case 10:
> +      switch (minor) {
> +      case 0:
> +        if (strstr (product_variant, "Server")) {
> +          if (strstr (product_name, "2019"))
> +            return safe_strdup (g, "win2k19");
> +          else
> +            return safe_strdup (g, "win2k16");
> +        } else
> +          return safe_strdup (g, "win10");
> +      }
> +      break;
> +    }
> +  }

Did I review v1?  Anyway this one is fine too, ACK.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW




More information about the Libguestfs mailing list