public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/glibmm2.4] rawhide: Backport upstream fix for type defition conflict with GLib 2.89.2
@ 2026-07-23 12:37 Mamoru TASAKA
  0 siblings, 0 replies; only message in thread
From: Mamoru TASAKA @ 2026-07-23 12:37 UTC (permalink / raw)
  To: git-commits

            A new commit has been pushed.

            Repo   : rpms/glibmm2.4
            Branch : rawhide
            Commit : 6e77ba5cb2c44cd965fff9ff07b887233ca56817
            Author : Mamoru TASAKA <mtasaka@fedoraproject.org>
            Date   : 2026-07-22T23:40:33+09:00
            Stats  : +122/-1 in 2 file(s)
            URL    : https://src.fedoraproject.org/rpms/glibmm2.4/c/6e77ba5cb2c44cd965fff9ff07b887233ca56817?branch=rawhide

            Log:
            Backport upstream fix for type defition conflict with GLib 2.89.2

Regenerate .h from .hg using maintainer-mode

---
diff --git a/glibmm2.4.spec b/glibmm2.4.spec
index 3dc1728..a7e8207 100644
--- a/glibmm2.4.spec
+++ b/glibmm2.4.spec
@@ -14,6 +14,11 @@ URL:            https://gtkmm.org/
 Source0:        https://download.gnome.org/sources/glibmm/%{gnome_major_minor_version}/glibmm-%{version}.tar.xz
 
 Patch0:         glibmm24-gcc11.patch
+# https://gitlab.gnome.org/GNOME/glibmm/-/commit/d26083c41219958e802d5da733d4b4d3c342ec89
+# https://gitlab.gnome.org/GNOME/glibmm/-/commit/b353a8b0afc1aa78f3eec58229f02acd9fab6d3e
+# Fix type definition conflict with GLib 2.89.2
+Patch1:         glibmm24-2.66.9-glib_2.89.2-type-definition.patch
+
 
 BuildRequires:  doxygen
 BuildRequires:  gcc-c++
@@ -23,7 +28,12 @@ BuildRequires:  meson
 BuildRequires:  mm-common
 BuildRequires:  perl-generators
 BuildRequires:  perl-interpreter
+BuildRequires:  perl(feature)
 BuildRequires:  perl(Getopt::Long)
+BuildRequires:  perl(open)
+BuildRequires:  perl(strict)
+BuildRequires:  perl(warnings)
+BuildRequires:  perl(XML::Parser)
 BuildRequires:  pkgconfig(glib-2.0) >= %{glib2_version}
 BuildRequires:  pkgconfig(sigc++-2.0) >= %{libsigc_version}
 
@@ -76,7 +86,8 @@ This package contains the full API documentation for %{name}.
 
 
 %build
-%meson -Dbuild-documentation=true
+%meson -Dbuild-documentation=true \
+    -Dmaintainer-mode=true
 %meson_build
 
 

diff --git a/glibmm24-2.66.9-glib_2.89.2-type-definition.patch b/glibmm24-2.66.9-glib_2.89.2-type-definition.patch
new file mode 100644
index 0000000..d108c25
--- /dev/null
+++ b/glibmm24-2.66.9-glib_2.89.2-type-definition.patch
@@ -0,0 +1,110 @@
+From d26083c41219958e802d5da733d4b4d3c342ec89 Mon Sep 17 00:00:00 2001
+From: Kjell Ahlstedt <kjellahlstedt@gmail.com>
+Date: Sun, 5 Jul 2026 16:49:52 +0200
+Subject: [PATCH] Gio: Emblem and DBus::ActionGroup: Don't derive gtkmm__Gxxx
+ types
+
+GEmblem and GDBusActionGroup are declared G_DECLARE_FINAL_TYPE.
+Add _DO_NOT_DERIVE_GTYPE, _ABI_AS_WITH_DERIVED_GTYPE and _STRUCT_NOT_HIDDEN
+to the corresponding glibmm classes.
+---
+ gio/src/dbusactiongroup.hg | 14 ++++++++++++++
+ gio/src/emblem.hg          |  4 ++++
+ 2 files changed, 18 insertions(+)
+
+diff --git a/gio/src/dbusactiongroup.hg b/gio/src/dbusactiongroup.hg
+index ae9bb6fd..27359bfe 100644
+--- a/gio/src/dbusactiongroup.hg
++++ b/gio/src/dbusactiongroup.hg
+@@ -21,6 +21,17 @@
+ _DEFS(giomm,gio)
+ _PINCLUDE(glibmm/private/object_p.h)
+ 
++#ifndef DOXYGEN_SHOULD_SKIP_THIS
++// Necessary if compiled against glib < 2.89.1, where GDBusActionGroup is not
++// a final type, and GDBusActionGroupClass is not defined by G_DECLARE_FINAL_TYPE().
++// (It was declared a final type somewhere between 2.89.1 and 2.89.2.
++// The compiler will probably complain if you compile against a glib 2.89.1
++// where GDBusActionGroup is not a final type.)
++#if !GLIB_CHECK_VERSION(2,89,1)
++using GDBusActionGroupClass = struct _GDBusActionGroupClass;
++#endif
++#endif /* DOXYGEN_SHOULD_SKIP_THIS */
++
+ namespace Gio
+ {
+ 
+@@ -43,6 +54,9 @@ class GIOMM_API ActionGroup
+   _CLASS_GOBJECT(ActionGroup, GDBusActionGroup, G_DBUS_ACTION_GROUP, Glib::Object, GObject, , , GIOMM_API)
+   _IMPLEMENTS_INTERFACE(::Gio::ActionGroup)
+   _IMPLEMENTS_INTERFACE(RemoteActionGroup)
++  _DO_NOT_DERIVE_GTYPE dnl// GDBusActionGroup is a final type since glib 2.89.2
++  _ABI_AS_WITH_DERIVED_GTYPE dnl// Remove when we can break ABI
++  _STRUCT_NOT_HIDDEN
+ 
+ protected:
+   _CTOR_DEFAULT
+diff --git a/gio/src/emblem.hg b/gio/src/emblem.hg
+index 3a0d3316..737fff24 100644
+--- a/gio/src/emblem.hg
++++ b/gio/src/emblem.hg
+@@ -16,6 +16,7 @@
+ 
+ #include <glibmm/object.h>
+ #include <giomm/icon.h>
++#include <gio/gio.h>
+ 
+ _DEFS(giomm,gio)
+ _PINCLUDE(glibmm/private/object_p.h)
+@@ -42,6 +43,9 @@ class GIOMM_API Emblem
+ {
+   _CLASS_GOBJECT(Emblem, GEmblem, G_EMBLEM, Glib::Object, GObject, , , GIOMM_API)
+   _IMPLEMENTS_INTERFACE(Icon)
++  _DO_NOT_DERIVE_GTYPE dnl// GEmblem is a final type since glib 2.89.2
++  _ABI_AS_WITH_DERIVED_GTYPE dnl// Remove when we can break ABI
++  _STRUCT_NOT_HIDDEN
+ 
+ protected:
+   /** Creates a new emblem for @a icon.
+-- 
+GitLab
+
+From b353a8b0afc1aa78f3eec58229f02acd9fab6d3e Mon Sep 17 00:00:00 2001
+From: Kjell Ahlstedt <kjellahlstedt@gmail.com>
+Date: Mon, 6 Jul 2026 12:23:57 +0200
+Subject: [PATCH] Gio::DBus::ActionGroup: Improve the test whether
+ GDBusActionGroup is final
+
+---
+ gio/src/dbusactiongroup.hg | 15 ++++++++-------
+ 1 file changed, 8 insertions(+), 7 deletions(-)
+
+diff --git a/gio/src/dbusactiongroup.hg b/gio/src/dbusactiongroup.hg
+index 27359bfe..777e8fd7 100644
+--- a/gio/src/dbusactiongroup.hg
++++ b/gio/src/dbusactiongroup.hg
+@@ -22,13 +22,14 @@ _DEFS(giomm,gio)
+ _PINCLUDE(glibmm/private/object_p.h)
+ 
+ #ifndef DOXYGEN_SHOULD_SKIP_THIS
+-// Necessary if compiled against glib < 2.89.1, where GDBusActionGroup is not
+-// a final type, and GDBusActionGroupClass is not defined by G_DECLARE_FINAL_TYPE().
+-// (It was declared a final type somewhere between 2.89.1 and 2.89.2.
+-// The compiler will probably complain if you compile against a glib 2.89.1
+-// where GDBusActionGroup is not a final type.)
+-#if !GLIB_CHECK_VERSION(2,89,1)
+-using GDBusActionGroupClass = struct _GDBusActionGroupClass;
++// GDBusActionGroup was declared a final type between GLib 2.89.1 and 2.89.2.
++// Before that, GDBusActionGroupClass was not declared in GLib.
++// The preprocessor macro G_DBUS_ACTION_GROUP_CLASS was defined, though.
++#if !GLIB_CHECK_VERSION(2,89,1) || (!GLIB_CHECK_VERSION(2,89,2) && defined(G_DBUS_ACTION_GROUP_CLASS))
++  // glib < 2.89.1 or (glib == 2.89.1 and G_DBUS_ACTION_GROUP_CLASS is a preprocessor macro)
++  // GDBusActionGroup is not a final type,
++  // GDBusActionGroupClass is not declared in GLib.
++  using GDBusActionGroupClass = struct _GDBusActionGroupClass;
+ #endif
+ #endif /* DOXYGEN_SHOULD_SKIP_THIS */
+ 
+-- 
+GitLab
+

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-07-23 12:37 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-23 12:37 [rpms/glibmm2.4] rawhide: Backport upstream fix for type defition conflict with GLib 2.89.2 Mamoru TASAKA

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox