glib-2.0: fix build issue with gobject-introspection

- Add backport patch to fix a build issue with gobject-introspection >= 1.83.2

(From OE-Core rev: 153de2c6a87dd0c0abd2ee8c805167ef36b15c9f)

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Markus Volk
2025-03-16 09:07:36 +01:00
committed by Richard Purdie
parent 612f45be10
commit ba62f7745a
2 changed files with 76 additions and 0 deletions

View File

@@ -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 isnt needed in libgirepository — but
the GIR parser does have to know about the element in order to not throw
an error claiming its 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
GLibs 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

View File

@@ -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 \