[Libosinfo] [libosinfo PATCH] tree: Add "os" property

Fabiano Fidêncio fidencio at redhat.com
Fri Jul 5 07:31:50 UTC 2019


Similarly to what we have for media, let's add the "os" property to the
trees.

osinfo-detect code is already relying on having an "os" property and,
since commit 722e7d1d4, it errors out due to the missing property:

(osinfo-detect:7808): GLib-GObject-WARNING **: 09:27:58.656: g_object_get_is_valid_property: object class 'OsinfoTree' has no property named 'os

Signed-off-by: Fabiano Fidêncio <fidencio at redhat.com>
---
 osinfo/osinfo_tree.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/osinfo/osinfo_tree.c b/osinfo/osinfo_tree.c
index b797cb4..a11eee6 100644
--- a/osinfo/osinfo_tree.c
+++ b/osinfo/osinfo_tree.c
@@ -112,6 +112,7 @@ enum {
     PROP_INITRD_PATH,
     PROP_BOOT_ISO_PATH,
     PROP_HAS_TREEINFO,
+    PROP_OS,
 };
 
 static void
@@ -173,6 +174,10 @@ osinfo_tree_get_property(GObject *object,
                             osinfo_tree_has_treeinfo(tree));
         break;
 
+    case PROP_OS:
+        g_value_take_object(value, osinfo_tree_get_os(tree));
+        break;
+
     default:
         /* We don't have any other property... */
         G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
@@ -250,6 +255,10 @@ osinfo_tree_set_property(GObject      *object,
                                         g_value_get_boolean(value));
         break;
 
+    case PROP_OS:
+        osinfo_tree_set_os(tree, g_value_get_object(value));
+        break;
+
     default:
         /* We don't have any other property... */
         G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
@@ -415,6 +424,22 @@ osinfo_tree_class_init(OsinfoTreeClass *klass)
                                 G_PARAM_READWRITE |
                                 G_PARAM_STATIC_STRINGS);
     g_object_class_install_property(g_klass, PROP_TREEINFO_FAMILY, pspec);
+
+    /**
+     * OsinfoTree:os:
+     *
+     * Os information for the current tree. For tree stored in an
+     * #OsinfoDB, it will be filled when the database is loaded, otherwise
+     * the property will be filled after a successful call to
+     * osinfo_db_identify_tree().
+     */
+    pspec = g_param_spec_object("os",
+                                "Os",
+                                _("Information about the operating system on this tree"),
+                                OSINFO_TYPE_OS,
+                                G_PARAM_READWRITE |
+                                G_PARAM_STATIC_STRINGS);
+    g_object_class_install_property(g_klass, PROP_OS, pspec);
 }
 
 static void
-- 
2.21.0




More information about the Libosinfo mailing list