components/gnome/gnome-control-center/patches/03-libv12n.patch
changeset 7185 e0e4e1a6d658
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/gnome/gnome-control-center/patches/03-libv12n.patch	Mon Oct 24 19:13:20 2016 -0700
@@ -0,0 +1,81 @@
+Use libv12n to find virtualization environment instead of asking systemd
+
+Need to submit upstream
+
+--- gnome-control-center-3.18.2/configure.ac
++++ gnome-control-center-3.18.2/configure.ac
+@@ -64,6 +64,7 @@ AC_CHECK_HEADERS(X11/extensions/XKB.h)
+ CPPFLAGS=$savecppflags
+ 
+ AC_CHECK_LIB(m, floor)
++AC_CHECK_LIB(v12n, v12n_get_current_env)
+ 
+ # IBus support
+ IBUS_REQUIRED_VERSION=1.5.2
+--- gnome-control-center-3.18.2/panels/info/cc-info-panel.c
++++ gnome-control-center-3.18.2/panels/info/cc-info-panel.c
+@@ -43,6 +43,10 @@
+ #include <GL/glx.h>
+ #endif
+ 
++#ifdef HAVE_LIBV12N
++#include <libv12n.h>
++#endif
++
+ #include "gsd-disk-space-helper.h"
+ 
+ /* Autorun options */
+@@ -740,6 +744,10 @@ static struct {
+   const char *id;
+   const char *display;
+ } const virt_tech[] = {
++  { "kernel-zone", "Kernel Zone" },
++  { "logical-domain", "Logical Domain" },
++  { "non-global-zone", "Non-Global Zone" },
++  { "virtualbox", "VirtualBox" },
+   { "kvm", "KVM" },
+   { "qemu", "QEmu" },
+   { "vmware", "VMware" },
+@@ -788,13 +796,31 @@ set_virtualization_label (CcInfoPanel  *
+ static void
+ info_panel_setup_virt (CcInfoPanel  *self)
+ {
++  char *str = NULL;
++
++#ifdef HAVE_LIBV12N
++  v12n_env_t *env;
++  char *name;
++
++  env = v12n_get_current_env ();
++  if (env == NULL)
++    {
++      g_debug (" v12n_get_current_env failed, bailing: %s", strerror(errno));
++      goto bail;
++    }
++
++  name = v12n_get_env_prop (env, V12N_PROP_NAME);
++  if (name != NULL)
++    {
++      str = g_strdup (name);
++      free (name);
++    }
++  v12n_free_env(env);
++#else /* systemd */
+   GError *error = NULL;
+   GDBusProxy *systemd_proxy;
+   GVariant *variant;
+   GVariant *inner;
+-  char *str;
+-
+-  str = NULL;
+ 
+   systemd_proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
+                                                  G_DBUS_PROXY_FLAGS_NONE,
+@@ -832,6 +858,7 @@ info_panel_setup_virt (CcInfoPanel  *sel
+   g_variant_unref (variant);
+ 
+   g_object_unref (systemd_proxy);
++#endif
+ 
+ bail:
+   set_virtualization_label (self, str);