Applications can use this to determine if an OS is just a snapshot and not an actual released product yet. For example, gnome-continuous images for development snapshots of GNOME and nightly build ISOs of Fedora etc. --- data/schemas/libosinfo.rng | 5 +++++ osinfo/libosinfo.syms | 1 + osinfo/osinfo_loader.c | 1 + osinfo/osinfo_os.c | 18 ++++++++++++++++++ osinfo/osinfo_os.h | 8 +++++--- 5 files changed, 30 insertions(+), 3 deletions(-) diff --git a/data/schemas/libosinfo.rng b/data/schemas/libosinfo.rng index 786fc3a..6187cab 100644 --- a/data/schemas/libosinfo.rng +++ b/data/schemas/libosinfo.rng @@ -486,6 +486,11 @@ <ref name='bool'/> </element> </optional> + <optional> + <element name='is-continuous-snapshot'> + <ref name='bool'/> + </element> + </optional> <zeroOrMore> <ref name='resources'/> </zeroOrMore> diff --git a/osinfo/libosinfo.syms b/osinfo/libosinfo.syms index 5d620aa..c4f4b74 100644 --- a/osinfo/libosinfo.syms +++ b/osinfo/libosinfo.syms @@ -446,6 +446,7 @@ LIBOSINFO_0.2.8 { LIBOSINFO_0.2.9 { osinfo_os_get_is_pre_release; + osinfo_os_get_is_continuous_snapshot; } LIBOSINFO_0.2.8; /* Symbols in next release... diff --git a/osinfo/osinfo_loader.c b/osinfo/osinfo_loader.c index 1b0dad2..8e92841 100644 --- a/osinfo/osinfo_loader.c +++ b/osinfo/osinfo_loader.c @@ -1167,6 +1167,7 @@ static void osinfo_loader_os(OsinfoLoader *loader, { OSINFO_OS_PROP_FAMILY, G_TYPE_STRING }, { OSINFO_OS_PROP_DISTRO, G_TYPE_STRING }, { OSINFO_OS_PROP_IS_PRE_RELEASE, G_TYPE_BOOLEAN }, + { OSINFO_OS_PROP_IS_CONTINUOUS_SNAPSHOT, G_TYPE_BOOLEAN }, { NULL, G_TYPE_INVALID } }; diff --git a/osinfo/osinfo_os.c b/osinfo/osinfo_os.c index fe0bacd..6ac589f 100644 --- a/osinfo/osinfo_os.c +++ b/osinfo/osinfo_os.c @@ -419,6 +419,24 @@ gboolean osinfo_os_get_is_pre_release(OsinfoOs *os) } /** + * osinfo_os_get_is_continuous_snapshot: + * @os: an #OsinfoOs + * + * Use this to determine if @os is just a continuous integration snapshot and + * not an actual released product yet. For example, gnome-continuous images + * for development snapshots of GNOME and nightly build ISOs of Fedora etc. + * + * Returns: (transfer none): %TRUE if @os is a snapshot, %FALSE otherwise. + */ +gboolean osinfo_os_get_is_continuous_snapshot(OsinfoOs *os) +{ + g_return_val_if_fail(OSINFO_IS_OS(os), FALSE); + + return osinfo_entity_get_param_value_boolean(OSINFO_ENTITY(os), + "is-continuous-snapshot"); +} + +/** * osinfo_os_get_media_list: * @os: an operating system * diff --git a/osinfo/osinfo_os.h b/osinfo/osinfo_os.h index a7531f7..a5c2e00 100644 --- a/osinfo/osinfo_os.h +++ b/osinfo/osinfo_os.h @@ -55,9 +55,10 @@ typedef struct _OsinfoOsClass OsinfoOsClass; typedef struct _OsinfoOsPrivate OsinfoOsPrivate; -#define OSINFO_OS_PROP_FAMILY "family" -#define OSINFO_OS_PROP_DISTRO "distro" -#define OSINFO_OS_PROP_IS_PRE_RELEASE "is-pre-release" +#define OSINFO_OS_PROP_FAMILY "family" +#define OSINFO_OS_PROP_DISTRO "distro" +#define OSINFO_OS_PROP_IS_PRE_RELEASE "is-pre-release" +#define OSINFO_OS_PROP_IS_CONTINUOUS_SNAPSHOT "is-continuous-snapshot" /* object */ struct _OsinfoOs @@ -95,6 +96,7 @@ OsinfoDeviceLink *osinfo_os_add_device(OsinfoOs *os, OsinfoDevice *dev); const gchar *osinfo_os_get_family(OsinfoOs *os); const gchar *osinfo_os_get_distro(OsinfoOs *os); gboolean osinfo_os_get_is_pre_release(OsinfoOs *os); +gboolean osinfo_os_get_is_continuous_snapshot(OsinfoOs *os); OsinfoMediaList *osinfo_os_get_media_list(OsinfoOs *os); void osinfo_os_add_media(OsinfoOs *os, OsinfoMedia *media); OsinfoTreeList *osinfo_os_get_tree_list(OsinfoOs *os); -- 1.8.4.2 _______________________________________________ Libosinfo mailing list Libosinfo@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libosinfo