diff --git a/0001-Partially-revert-list-Update-GObject-boilerplate.patch b/0001-Partially-revert-list-Update-GObject-boilerplate.patch new file mode 100644 index 0000000..8eca897 --- /dev/null +++ b/0001-Partially-revert-list-Update-GObject-boilerplate.patch @@ -0,0 +1,100 @@ +From 0baa3d3ab5db3cf06c10a3281dee9d2089872aaf Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= +Date: Fri, 10 Jan 2020 11:53:22 +0100 +Subject: [PATCH] Partially revert "list: Update GObject boilerplate" +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This partially reverts commit 706b6fd0d97ed572d92c4a33882605d561ebe3c8, +which introduced an ABI breakage by using G_DECLARE_DERIVABLE_TYPE when +declaring an OsinfoList. + +Signed-off-by: Fabiano FidĂȘncio +--- + osinfo/osinfo_list.c | 4 ++-- + osinfo/osinfo_list.h | 36 +++++++++++++++++++++++++++++++----- + 2 files changed, 33 insertions(+), 7 deletions(-) + +diff --git a/osinfo/osinfo_list.c b/osinfo/osinfo_list.c +index e8fa74c8..7f95c266 100644 +--- a/osinfo/osinfo_list.c ++++ b/osinfo/osinfo_list.c +@@ -35,13 +35,13 @@ + * + */ + +-typedef struct ++struct _OsinfoListPrivate + { + GPtrArray *array; + GHashTable *entities; + + GType elementType; +-} OsinfoListPrivate; ++}; + + enum { + PROP_O, +diff --git a/osinfo/osinfo_list.h b/osinfo/osinfo_list.h +index 07731f0e..49550662 100644 +--- a/osinfo/osinfo_list.h ++++ b/osinfo/osinfo_list.h +@@ -27,16 +27,44 @@ + + # include + +-G_BEGIN_DECLS ++/* ++ * Type macros. ++ */ ++# define OSINFO_TYPE_LIST (osinfo_list_get_type ()) ++# define OSINFO_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OSINFO_TYPE_LIST, OsinfoList)) ++# define OSINFO_IS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OSINFO_TYPE_LIST)) ++# define OSINFO_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OSINFO_TYPE_LIST, OsinfoListClass)) ++# define OSINFO_IS_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OSINFO_TYPE_LIST)) ++# define OSINFO_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OSINFO_TYPE_LIST, OsinfoListClass)) ++ ++typedef struct _OsinfoList OsinfoList; ++ ++typedef struct _OsinfoListClass OsinfoListClass; ++ ++typedef struct _OsinfoListPrivate OsinfoListPrivate; ++ ++/* object */ ++struct _OsinfoList ++{ ++ GObject parent_instance; ++ ++ /* public */ + +-# define OSINFO_TYPE_LIST (osinfo_list_get_type ()) +-G_DECLARE_DERIVABLE_TYPE(OsinfoList, osinfo_list, OSINFO, LIST, GObject) ++ /* private */ ++ OsinfoListPrivate *priv; ++}; + ++/* class */ + struct _OsinfoListClass + { ++ /*< private >*/ + GObjectClass parent_class; ++ ++ /* class members */ + }; + ++GType osinfo_list_get_type(void); ++ + GType osinfo_list_get_element_type(OsinfoList *list); + gint osinfo_list_get_length(OsinfoList *list); + OsinfoEntity *osinfo_list_get_nth(OsinfoList *list, gint idx); +@@ -55,6 +83,4 @@ OsinfoList *osinfo_list_new_filtered(OsinfoList *source, OsinfoFilter *filter); + OsinfoList *osinfo_list_new_intersection(OsinfoList *sourceOne, OsinfoList *sourceTwo); + OsinfoList *osinfo_list_new_union(OsinfoList *sourceOne, OsinfoList *sourceTwo); + +-G_END_DECLS +- + #endif /* __OSINFO_LIST_H__ */ +-- +2.24.1 + diff --git a/libosinfo.spec b/libosinfo.spec index 9a38662..b833234 100644 --- a/libosinfo.spec +++ b/libosinfo.spec @@ -3,12 +3,13 @@ Summary: A library for managing OS information for virtualization Name: libosinfo Version: 1.7.1 -Release: 1%{?dist} +Release: 2%{?dist} License: LGPLv2+ Source: https://releases.pagure.io/%{name}/%{name}-%{version}.tar.xz URL: https://libosinfo.org/ ### Patches ### +Patch0001: 0001-Partially-revert-list-Update-GObject-boilerplate.patch BuildRequires: meson BuildRequires: gcc @@ -95,6 +96,9 @@ Libraries, includes, etc. to compile with the libosinfo library %{_datadir}/vala/vapi/libosinfo-1.0.vapi %changelog +* Mon Jan 13 2020 Fabiano FidĂȘncio - 1.7.1-2 +- Fix OsinfoList ABI breakage + * Wed Dec 04 2019 Fabiano FidĂȘncio - 1.7.1-1 - Update to 1.7.1 release