public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Jan Grulich <jgrulich@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/glibmm2.68] rawhide: Backport upstream fix for type definition conflict with Glib 2.89.2
Date: Thu, 30 Jul 2026 12:06:16 GMT	[thread overview]
Message-ID: <178541317631.1.15251675644452670840.rpms-glibmm2.68-09136c83a837@fedoraproject.org> (raw)

A new commit has been pushed.

Repo   : rpms/glibmm2.68
Branch : rawhide
Commit : 09136c83a837d3fe2986bf06f6a9c5cd458ef7cd
Author : Jan Grulich <jgrulich@redhat.com>
Date   : 2026-07-30T14:05:55+02:00
Stats  : +87/-2 in 2 file(s)
URL    : https://src.fedoraproject.org/rpms/glibmm2.68/c/09136c83a837d3fe2986bf06f6a9c5cd458ef7cd?branch=rawhide

Log:
Backport upstream fix for type definition conflict with Glib 2.89.2

---
diff --git a/glibmm2.68-2.88.1-glib_2.89.2-dont-derive-gtkmm-gxxx-types.patch b/glibmm2.68-2.88.1-glib_2.89.2-dont-derive-gtkmm-gxxx-types.patch
new file mode 100644
index 0000000..2eaab69
--- /dev/null
+++ b/glibmm2.68-2.88.1-glib_2.89.2-dont-derive-gtkmm-gxxx-types.patch
@@ -0,0 +1,72 @@
+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 fbc00f8..fe5c032 100644
+--- a/gio/src/dbusactiongroup.hg
++++ b/gio/src/dbusactiongroup.hg
+@@ -21,6 +21,18 @@
+ _DEFS(giomm,gio)
+ _PINCLUDE(glibmm/private/object_p.h)
+ 
++#ifndef DOXYGEN_SHOULD_SKIP_THIS
++// 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 */
++
+ namespace Gio
+ {
+ 
+@@ -43,6 +55,9 @@ class GIOMM_API ActionGroup
+   _CLASS_GOBJECT(ActionGroup, GDBusActionGroup, G_DBUS_ACTION_GROUP, Glib::Object, GObject, , , GIOMM_API)
+   _IMPLEMENTS_INTERFACE(Gio::ActionGroup)
+   _IMPLEMENTS_INTERFACE(Gio::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 e8e8cfb..2e6412f 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)
+@@ -40,6 +41,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
+ 
+ public:
+   _WRAP_ENUM(Origin, GEmblemOrigin, NO_GTYPE, decl_prefix GIOMM_API)
+
+-- 
+GitLab

diff --git a/glibmm2.68.spec b/glibmm2.68.spec
index d632682..cc41893 100644
--- a/glibmm2.68.spec
+++ b/glibmm2.68.spec
@@ -12,6 +12,12 @@ License:        LGPL-2.1-or-later AND GPL-2.0-or-later
 URL:            http://www.gtkmm.org/
 Source0:        https://download.gnome.org/sources/glibmm/%{gnome_major_minor_version}/glibmm-%{version}.tar.xz
 
+# https://gitlab.gnome.org/GNOME/glibmm/-/commit/d26083c41219958e802d5da733d4b4d3c342ec89
+# Fix type definition conflict with GLib 2.89.2
+# NOTE: Remove -Dmaintainer-mode=true from meson config, added Perl dependencies
+# and make -doc again noarch when dropping this patch
+Patch1:         glibmm2.68-2.88.1-glib_2.89.2-dont-derive-gtkmm-gxxx-types.patch
+
 BuildRequires:  doxygen
 BuildRequires:  gcc-c++
 BuildRequires:  pkgconfig(glib-2.0) >= %{glib2_version}
@@ -22,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)
 
 Requires:       glib2%{?_isa} >= %{glib2_version}
 Requires:       libsigc++30%{?_isa} >= %{libsigc_version}
@@ -48,7 +59,8 @@ developing glibmm applications.
 
 %package        doc
 Summary:        Documentation for %{name}, includes full API docs
-BuildArch:      noarch
+# FIXME: Restore noarch once -Dmaintainer-mode=true is removed
+# BuildArch:      noarch
 Requires:       %{name} = %{version}-%{release}
 Requires:       libsigc++30-doc
 
@@ -61,7 +73,8 @@ This package contains the full API documentation for %{name}.
 
 
 %build
-%meson -Dbuild-documentation=true
+%meson -Dbuild-documentation=true \
+    -Dmaintainer-mode=true
 %meson_build
 
 

                 reply	other threads:[~2026-07-30 12:06 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178541317631.1.15251675644452670840.rpms-glibmm2.68-09136c83a837@fedoraproject.org \
    --to=jgrulich@redhat.com \
    --cc=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox