diff mbox series

[PATCHv2] glib-2.0: fix build issue with gobject-introspection

Message ID 20250316080742.2737670-1-f_l_k@t-online.de
State New
Headers show
Series [PATCHv2] glib-2.0: fix build issue with gobject-introspection | expand

Commit Message

Markus Volk March 16, 2025, 8:07 a.m. UTC
- Add backport patch to fix a build issue with gobject-introspection >= 1.83.2

Signed-off-by: Markus Volk <f_l_k@t-online.de>
---
 ...664e6f1a29e0d5f301979f6d168b08435a61.patch | 75 +++++++++++++++++++
 meta/recipes-core/glib-2.0/glib.inc           |  1 +
 2 files changed, 76 insertions(+)
 create mode 100644 meta/recipes-core/glib-2.0/files/aee0664e6f1a29e0d5f301979f6d168b08435a61.patch
diff mbox series

Patch

diff --git a/meta/recipes-core/glib-2.0/files/aee0664e6f1a29e0d5f301979f6d168b08435a61.patch b/meta/recipes-core/glib-2.0/files/aee0664e6f1a29e0d5f301979f6d168b08435a61.patch
new file mode 100644
index 0000000000..28bce02dc3
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/files/aee0664e6f1a29e0d5f301979f6d168b08435a61.patch
@@ -0,0 +1,75 @@ 
+From aee0664e6f1a29e0d5f301979f6d168b08435a61 Mon Sep 17 00:00:00 2001
+From: Philip Withnall <pwithnall@gnome.org>
+Date: Mon, 10 Mar 2025 15:21:15 +0000
+Subject: [PATCH] girparser: Ignore new doc:format element in GIR files
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+As of gobject-introspection 1.83.2, a new `<doc:format name="…"/>`
+element is supported (as a child of `<repository>`) in GIR files.
+
+For the moment, this information isn’t needed in libgirepository — but
+the GIR parser does have to know about the element in order to not throw
+an error claiming it’s invalid.
+
+This is a slightly tweaked version of the code added to
+gobject-introspection.git in commit
+9544cd6c962fab2c3203898779948309833e2439 by Corentin Noël
+<corentin.noel@collabora.com>, reformatted slightly to fit in with
+GLib’s style guidelines.
+
+This is backwards compatible and does not require a new
+gobject-introspection version.
+
+Signed-off-by: Philip Withnall <pwithnall@gnome.org>
+
+Fixes: #3634
+
+Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/aee0664e6f1a29e0d5f301979f6d168b08435a61.patch]
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+---
+ girepository/girparser.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/girepository/girparser.c b/girepository/girparser.c
+index 63143718d9..be88d871a4 100644
+--- a/girepository/girparser.c
++++ b/girepository/girparser.c
+@@ -107,7 +107,8 @@ typedef enum
+   STATE_ALIAS,
+   STATE_TYPE,
+   STATE_ATTRIBUTE,
+-  STATE_PASSTHROUGH
++  STATE_PASSTHROUGH,
++  STATE_DOC_FORMAT,  /* 35 */
+ } ParseState;
+ 
+ typedef struct _ParseContext ParseContext;
+@@ -3159,6 +3160,11 @@ start_element_handler (GMarkupParseContext  *context,
+           state_switch (ctx, STATE_PASSTHROUGH);
+           goto out;
+         }
++      else if (strcmp ("doc:format", element_name) == 0)
++        {
++          state_switch (ctx, STATE_DOC_FORMAT);
++          goto out;
++        }
+       break;
+ 
+     case 'e':
+@@ -3843,6 +3849,10 @@ end_element_handler (GMarkupParseContext  *context,
+           state_switch (ctx, ctx->prev_state);
+         }
+       break;
++    case STATE_DOC_FORMAT:
++      if (require_end_element (context, ctx, "doc:format", element_name, error))
++        state_switch (ctx, STATE_REPOSITORY);
++      break;
+ 
+     case STATE_PASSTHROUGH:
+       ctx->unknown_depth -= 1;
+-- 
+GitLab
+
diff --git a/meta/recipes-core/glib-2.0/glib.inc b/meta/recipes-core/glib-2.0/glib.inc
index ee23c5089d..61e1a3ef17 100644
--- a/meta/recipes-core/glib-2.0/glib.inc
+++ b/meta/recipes-core/glib-2.0/glib.inc
@@ -229,6 +229,7 @@  SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
            file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
            file://0010-Do-not-hardcode-python-path-into-various-tools.patch \
            file://skip-timeout.patch \
+           file://aee0664e6f1a29e0d5f301979f6d168b08435a61.patch \
            "
 SRC_URI:append:class-native = " file://relocate-modules.patch \ 
                                 file://0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch \