@@ -14,7 +14,7 @@ config BR2_PACKAGE_GOBJECT_INTROSPECTION
# can be verified.
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
depends on BR2_HOST_GCC_AT_LEAST_8 # host-qemu
- depends on BR2_TOOLCHAIN_USES_GLIBC
+ depends on BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL
# gobject-introspection does not require python3 to run on the
# target; however, because the tools run in a qemu wrapper, a
# cross-compiled python3 must be installed to staging. As there
@@ -36,15 +36,15 @@ config BR2_PACKAGE_GOBJECT_INTROSPECTION
language bindings can read this metadata and automatically
provide bindings to call into the C library.
- https://wiki.gnome.org/action/show/Projects/GObjectIntrospection
+ https://gi.readthedocs.io/
comment "gobject-introspection needs python3"
depends on !BR2_PACKAGE_PYTHON3
depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS
-comment "gobject-introspection needs a glibc toolchain, gcc >= 4.9, host gcc >= 8"
+comment "gobject-introspection needs a glibc or musl toolchain, gcc >= 4.9, host gcc >= 8"
depends on BR2_USE_MMU
depends on BR2_PACKAGE_GOBJECT_INTROSPECTION_ARCH_SUPPORTS
- depends on !BR2_TOOLCHAIN_USES_GLIBC || \
+ depends on !(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL) || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
!BR2_HOST_GCC_AT_LEAST_8
@@ -1,5 +1,5 @@
-# From https://download.gnome.org/sources/gobject-introspection/1.76/gobject-introspection-1.76.1.sha256sum
-sha256 196178bf64345501dcdc4d8469b36aa6fe80489354efe71cb7cb8ab82a3738bf gobject-introspection-1.76.1.tar.xz
+# From https://download.gnome.org/sources/gobject-introspection/1.80/gobject-introspection-1.80.1.sha256sum
+sha256 a1df7c424e15bda1ab639c00e9051b9adf5cea1a9e512f8a603b53cd199bc6d8 gobject-introspection-1.80.1.tar.xz
sha256 faa2e414bd5f91d2d2c39e85c7cc3f2ccde05c3306f96b404f8ed8cf0266c279 COPYING.LGPL
sha256 4c1cedcbb4a12ea964f1160dbbf36099e5a59b96129a99a1a1a61f2cb09271fb COPYING.GPL
sha256 23f82cbc9808cdd8e902df38271434040ce0562ca382ac2a96f5e3bf807b6d31 giscanner/scannerlexer.l
@@ -4,7 +4,7 @@
#
################################################################################
-GOBJECT_INTROSPECTION_VERSION_MAJOR = 1.76
+GOBJECT_INTROSPECTION_VERSION_MAJOR = 1.80
GOBJECT_INTROSPECTION_VERSION = $(GOBJECT_INTROSPECTION_VERSION_MAJOR).1
GOBJECT_INTROSPECTION_SITE = https://download.gnome.org/sources/gobject-introspection/$(GOBJECT_INTROSPECTION_VERSION_MAJOR)
GOBJECT_INTROSPECTION_SOURCE = gobject-introspection-$(GOBJECT_INTROSPECTION_VERSION).tar.xz
@@ -12,19 +12,24 @@ GOBJECT_INTROSPECTION_INSTALL_STAGING = YES
GOBJECT_INTROSPECTION_LICENSE = LGPL-2.0+, GPL-2.0+, BSD-2-Clause
GOBJECT_INTROSPECTION_LICENSE_FILES = COPYING.LGPL COPYING.GPL giscanner/scannerlexer.l
+# gobject-introspection depends on the bootstrap version of libglib2
+# during the build because the full version depends on
+# gobject-introspection (applies to target and host packages
+# alike). "select BR2_PACKAGE_LIBGLIB2" in Config.in ensures the full
+# libglib2 gets installed together with gobject-introspection.
GOBJECT_INTROSPECTION_DEPENDENCIES = \
host-autoconf-archive \
host-gobject-introspection \
host-qemu \
libffi \
- libglib2 \
+ libglib2-bootstrap \
python3 \
zlib
HOST_GOBJECT_INTROSPECTION_DEPENDENCIES = \
host-bison \
host-flex \
- host-libglib2 \
+ host-libglib2-bootstrap \
host-python3
# g-ir-scanner will default to /usr/bin/ld for linking if this is not set.
@@ -1,4 +1,4 @@
-From 03e9cae3f3a7e2bbd5110f1ce2739601571bc024 Mon Sep 17 00:00:00 2001
+From 3fcd5f431dee9909b6bcbd9b8b61d4b1fe4b5f92 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Fri, 12 Nov 2021 18:01:05 +0100
Subject: [PATCH] meson.build: add girdir to gio-2.0.pc and glib-2.0.pc
@@ -16,6 +16,8 @@ Fixes:
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[Dario: make the patch to be applied with fuzz factor 0]
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
+[Fiona: refresh for glib 2.80.4]
+Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
Upstream: Never submitted
---
gio/meson.build | 1 +
@@ -23,29 +25,29 @@ Upstream: Never submitted
2 files changed, 2 insertions(+)
diff --git a/gio/meson.build b/gio/meson.build
-index 462606f3b56c..e6b736167b8d 100644
+index 59c2b0f..5120537 100644
--- a/gio/meson.build
+++ b/gio/meson.build
-@@ -880,6 +880,7 @@ pkg.generate(libgio,
- variables : ['datadir=' + join_paths('${prefix}', get_option('datadir')),
- 'schemasdir=' + join_paths('${datadir}', schemas_subdir),
- 'bindir=' + join_paths('${prefix}', get_option('bindir')),
-+ 'girdir=' + join_paths('${libdir}', '../share/gir-1.0'),
- 'giomoduledir=' + pkgconfig_giomodulesdir,
- 'gio=' + join_paths('${bindir}', 'gio'),
- 'gio_querymodules=@0@'.format(pkgconfig_multiarch_bindir / 'gio-querymodules'),
+@@ -885,6 +885,7 @@ pkg.generate(libgio,
+ variables : [
+ 'schemasdir=' + '${datadir}' / schemas_subdir,
+ 'dtdsdir=' + '${datadir}' / dtds_subdir,
++ 'girdir=' + join_paths('${libdir}', '../share/gir-1.0'),
+ 'giomoduledir=' + pkgconfig_giomodulesdir,
+ 'gio=' + '${bindir}' / 'gio',
+ 'gio_querymodules=' + pkgconfig_multiarch_bindir / 'gio-querymodules',
diff --git a/glib/meson.build b/glib/meson.build
-index da76fc005e46..cde2edb197c7 100644
+index d2efeba..a69532b 100644
--- a/glib/meson.build
+++ b/glib/meson.build
-@@ -441,6 +441,7 @@ pkg.generate(libglib,
+@@ -447,6 +447,7 @@ pkg.generate(libglib,
subdirs : ['glib-2.0'],
extra_cflags : ['-I${libdir}/glib-2.0/include'] + win32_cflags,
- variables : ['bindir=' + join_paths('${prefix}', get_option('bindir')),
-+ 'girdir=' + join_paths('${libdir}', '../share/gir-1.0'),
- 'glib_genmarshal=' + join_paths('${bindir}', 'glib-genmarshal'),
- 'gobject_query=' + join_paths('${bindir}', 'gobject-query'),
- 'glib_mkenums=' + join_paths('${bindir}', 'glib-mkenums')],
+ variables : [
++ 'girdir=' + join_paths('${libdir}', '../share/gir-1.0'),
+ 'glib_genmarshal=' + '${bindir}' / 'glib-genmarshal',
+ 'gobject_query=' + '${bindir}' / 'gobject-query',
+ 'glib_mkenums=' + '${bindir}' / 'glib-mkenums',
--
-2.43.0
+2.45.2
deleted file mode 100644
@@ -1,93 +0,0 @@
-From 4ae8606b6f80f9764e1f0a82cea7e23c8af487ae Mon Sep 17 00:00:00 2001
-From: James Knight <james.d.knight@live.com>
-Date: Thu, 20 Apr 2023 23:41:32 -0400
-Subject: [PATCH] Fix error format in gio/gunixconnection.c (part 2)
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Update a series of error messages to use `g_set_error_literal` instead
-of `g_set_error`. This should prevent `format-nonliteral` compiler
-issues when `-Werror` is configured:
-
- ../gio/gunixconnection.c: In function ‘g_unix_connection_receive_fd’:
- ../gio/gunixconnection.c:183:9: error: format not a string literal, argument types not checked [-Werror=format-nonliteral]
- 183 | nscm);
- | ^~~~
- ../gio/gunixconnection.c:217:20: error: format not a string literal, argument types not checked [-Werror=format-nonliteral]
- 217 | nfd);
- | ^~~
- ../gio/gunixconnection.c: In function ‘g_unix_connection_receive_credentials’:
- ../gio/gunixconnection.c:601:24: error: format not a string literal, argument types not checked [-Werror=format-nonliteral]
- 601 | nscm);
- | ^~~~
-
-This is similar to a previous change [1] made to `gunixconnection.c`.
-
-[1]: 44b3d5d80445234041f6c59feb89645f7102c3a4
-
-Signed-off-by: James Knight <james.d.knight@live.com>
-Upstream: backport from upstream https://gitlab.gnome.org/GNOME/glib/-/commit/4ae8606b6f80f9764e1f0a82cea7e23c8af487ae
----
- gio/gunixconnection.c | 31 ++++++++++++++-----------------
- 1 file changed, 14 insertions(+), 17 deletions(-)
-
-diff --git a/gio/gunixconnection.c b/gio/gunixconnection.c
-index b3f2b1c04b0abdf7136918585ae4cea8970a88bb..c012fcbfe00b69e9da609c7b626229db98e931ac 100644
---- a/gio/gunixconnection.c
-+++ b/gio/gunixconnection.c
-@@ -176,11 +176,10 @@ g_unix_connection_receive_fd (GUnixConnection *connection,
- {
- gint i;
-
-- g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
-- ngettext("Expecting 1 control message, got %d",
-- "Expecting 1 control message, got %d",
-- nscm),
-- nscm);
-+ g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
-+ ngettext ("Expecting 1 control message, got %d",
-+ "Expecting 1 control message, got %d",
-+ nscm));
-
- for (i = 0; i < nscm; i++)
- g_object_unref (scms[i]);
-@@ -210,11 +209,10 @@ g_unix_connection_receive_fd (GUnixConnection *connection,
- {
- gint i;
-
-- g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
-- ngettext("Expecting one fd, but got %d\n",
-- "Expecting one fd, but got %d\n",
-- nfd),
-- nfd);
-+ g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
-+ ngettext ("Expecting one fd, but got %d\n",
-+ "Expecting one fd, but got %d\n",
-+ nfd));
-
- for (i = 0; i < nfd; i++)
- close (fds[i]);
-@@ -592,13 +590,12 @@ g_unix_connection_receive_credentials (GUnixConnection *connection,
- {
- if (nscm != 1)
- {
-- g_set_error (error,
-- G_IO_ERROR,
-- G_IO_ERROR_FAILED,
-- ngettext("Expecting 1 control message, got %d",
-- "Expecting 1 control message, got %d",
-- nscm),
-- nscm);
-+ g_set_error_literal (error,
-+ G_IO_ERROR,
-+ G_IO_ERROR_FAILED,
-+ ngettext ("Expecting 1 control message, got %d",
-+ "Expecting 1 control message, got %d",
-+ nscm));
- goto out;
- }
-
---
-2.39.1.windows.1
-
deleted file mode 100644
@@ -1,96 +0,0 @@
-From 0fa17ec3c7152cf0e1cbf965acf1426ac203bb1d Mon Sep 17 00:00:00 2001
-From: James Knight <james.d.knight@live.com>
-Date: Thu, 27 Apr 2023 20:23:30 -0400
-Subject: [PATCH] meson: wrap html documentation generation with gtk_doc option
-
-By default, if a host environment has the `rst2html5` application
-available, builds will automatically perform some HTML documentation
-generation from the documentation's glib reference content (e.g.
-creating `gvariant-specification-1.0.html`). The creation of this
-documentation is not required for all use cases.
-
-This commit tweaks the building of the HTML-based GLIB specification
-document to be guarded by `gtk_doc`.
-
-Signed-off-by: James Knight <james.d.knight@live.com>
-Upstream: https://gitlab.gnome.org/GNOME/glib/-/commit/0fa17ec3c7152cf0e1cbf965acf1426ac203bb1d
-[yann.morin.1998@free.fr: backport from upstream]
-Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
----
- docs/reference/glib/meson.build | 58 +++++++++++++++++----------------
- 1 file changed, 30 insertions(+), 28 deletions(-)
-
-diff --git a/docs/reference/glib/meson.build b/docs/reference/glib/meson.build
-index 114de49da..3cfff2f0b 100644
---- a/docs/reference/glib/meson.build
-+++ b/docs/reference/glib/meson.build
-@@ -113,35 +113,37 @@ if get_option('man')
- endforeach
- endif
-
--# GVariant specification is currently standalone
--rst2html5 = find_program('rst2html5', 'rst2html5.py', required: false)
-+if get_option('gtk_doc')
-+ # GVariant specification is currently standalone
-+ rst2html5 = find_program('rst2html5', 'rst2html5.py', required: false)
-
--if rst2html5.found()
-- spec_path = glib_datadir / 'doc' / 'glib-2.0'
-+ if rst2html5.found()
-+ spec_path = glib_datadir / 'doc' / 'glib-2.0'
-
-- figures = files(
-- 'gvariant-byte-boundaries.svg',
-- 'gvariant-integer-and-string-structure.svg',
-- 'gvariant-integer-array.svg',
-- 'gvariant-string-array.svg',
-- )
-+ figures = files(
-+ 'gvariant-byte-boundaries.svg',
-+ 'gvariant-integer-and-string-structure.svg',
-+ 'gvariant-integer-array.svg',
-+ 'gvariant-string-array.svg',
-+ )
-
-- custom_target('gvariant-specification-1.0',
-- input: 'gvariant-specification-1.0.rst',
-- output: 'gvariant-specification-1.0.html',
-- command: [
-- rst2html5,
-- '@INPUT@',
-- ],
-- capture: true,
-- install: true,
-- install_dir: spec_path,
-- install_tag: 'doc',
-- depend_files: figures,
-- )
-+ custom_target('gvariant-specification-1.0',
-+ input: 'gvariant-specification-1.0.rst',
-+ output: 'gvariant-specification-1.0.html',
-+ command: [
-+ rst2html5,
-+ '@INPUT@',
-+ ],
-+ capture: true,
-+ install: true,
-+ install_dir: spec_path,
-+ install_tag: 'doc',
-+ depend_files: figures,
-+ )
-
-- install_data(figures,
-- install_dir : spec_path,
-- install_tag : 'doc',
-- )
--endif
-\ No newline at end of file
-+ install_data(figures,
-+ install_dir : spec_path,
-+ install_tag : 'doc',
-+ )
-+ endif
-+endif
---
-2.25.1
-
deleted file mode 100644
@@ -1,53 +0,0 @@
-From 2ca9f53327308e85e376bcbef7f8259a6331a453 Mon Sep 17 00:00:00 2001
-From: Nirbheek Chauhan <nirbheek@centricular.com>
-Date: Thu, 8 Sep 2022 02:36:33 +0530
-Subject: [PATCH] meson: Fix detection of a system-provided proxy-libintl
-
-proxy-libintl defines ngettext() as a define in the header that points
-to the actual symbol in the library which is g_libintl_ngettext().
-Same with bind_textdomain_codeset().
-
-Upstream: https://gitlab.gnome.org/GNOME/glib/-/commit/32249a22fc39319651e7c23442d37ec837f05764
-Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
----
- meson.build | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 0cbc9689f..de0bee5a3 100644
---- a/meson.build
-+++ b/meson.build
-@@ -2089,6 +2089,7 @@ libz_dep = dependency('zlib')
- # FIXME: glib-gettext.m4 has much more checks to detect broken/uncompatible
- # implementations. This could be extended if issues are found in some platforms.
- libintl_deps = []
-+libintl_prefix = '#include <libintl.h>'
- libintl = dependency('intl', required: false, allow_fallback: false)
- if libintl.found()
- # libintl supports different threading APIs, which may not
-@@ -2100,11 +2101,11 @@ if libintl.found()
- #
- # Meson's builtin dependency lookup as of 0.60.0 doesn't check for
- # pthread, so we do this manually here.
-- if cc.has_function('ngettext', dependencies : libintl)
-+ if cc.has_function('ngettext', dependencies : libintl, prefix: libintl_prefix)
- libintl_deps += [libintl]
- else
- libintl_pthread = cc.find_library('pthread', required : false)
-- if libintl_pthread.found() and cc.has_function('ngettext', dependencies : [libintl, libintl_pthread])
-+ if libintl_pthread.found() and cc.has_function('ngettext', dependencies : [libintl, libintl_pthread], prefix: libintl_prefix)
- libintl_deps += [libintl, libintl_pthread]
- else
- libintl = disabler()
-@@ -2113,7 +2114,7 @@ if libintl.found()
- endif
-
- if libintl.found()
-- have_bind_textdomain_codeset = cc.has_function('bind_textdomain_codeset', dependencies: libintl_deps)
-+ have_bind_textdomain_codeset = cc.has_function('bind_textdomain_codeset', dependencies: libintl_deps, prefix: libintl_prefix)
- else
- libintl = dependency('intl', allow_fallback: true)
- assert(libintl.type_name() == 'internal')
---
-2.34.1
-
deleted file mode 100644
@@ -1,53 +0,0 @@
-From fe7f54d4f339b7948c961b60729f620f2eaec716 Mon Sep 17 00:00:00 2001
-From: Jan200101 <sentrycraft123@gmail.com>
-Date: Tue, 23 May 2023 23:42:37 +0200
-Subject: [PATCH] meson: try iconv in libintl lookup
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This was originally removed in !2734 but still appears to be required for
-some MinGW setups, such as the `x86_64-w64-mingw32.static` target in
-[mxe](https://github.com/mxe/mxe).
-
-Currently, this configuration fails the libintl internal assert on line
-2128, as on this platform `ngettext()` is only found inside libiconv.
-
-This commit will look up iconv potentially twice, once as `libiconv` and
-potentially once as `libintl_iconv`. This is what the code did before
-!2734 landed, so it’s known to work reliably on a number of platforms.
-
-Upstream: https://gitlab.gnome.org/GNOME/glib/-/commit/a497d5be122f193dcf8679334308333bbbc14a71
-Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
----
- meson.build | 13 +++++++++----
- 1 file changed, 9 insertions(+), 4 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index de0bee5a3..653f9eddf 100644
---- a/meson.build
-+++ b/meson.build
-@@ -2104,11 +2104,16 @@ if libintl.found()
- if cc.has_function('ngettext', dependencies : libintl, prefix: libintl_prefix)
- libintl_deps += [libintl]
- else
-- libintl_pthread = cc.find_library('pthread', required : false)
-- if libintl_pthread.found() and cc.has_function('ngettext', dependencies : [libintl, libintl_pthread], prefix: libintl_prefix)
-- libintl_deps += [libintl, libintl_pthread]
-+ libintl_iconv = cc.find_library('iconv', required : false)
-+ if libintl_iconv.found() and cc.has_function('ngettext', dependencies : [libintl, libintl_iconv])
-+ libintl_deps += [libintl, libintl_iconv]
- else
-- libintl = disabler()
-+ libintl_pthread = cc.find_library('pthread', required : false)
-+ if libintl_pthread.found() and cc.has_function('ngettext', dependencies : [libintl, libintl_pthread], prefix: libintl_prefix)
-+ libintl_deps += [libintl, libintl_pthread]
-+ else
-+ libintl = disabler()
-+ endif
- endif
- endif
- endif
---
-2.34.1
-
deleted file mode 100644
@@ -1,52 +0,0 @@
-From 4e6dc4dee0e1c6407113597180d9616b4f275f94 Mon Sep 17 00:00:00 2001
-From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
-Date: Thu, 2 May 2024 14:02:17 +0200
-Subject: [PATCH] link with -latomic when needed
-
-Some architecture such as sparc and some flavors of arm needs -latomic
-to avoid the following build failure:
-
-gthread-posix.c:(.text+0xda8): undefined reference to `__atomic_compare_exchange_4'
-
-Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
-Upstream: https://gitlab.gnome.org/GNOME/glib/-/commit/4e6dc4dee0e1c6407113597180d9616b4f275f94
----
- glib/meson.build | 1 +
- meson.build | 9 +++++++++
- 2 files changed, 10 insertions(+)
-
-diff --git a/glib/meson.build b/glib/meson.build
-index 24cbb664d4..b2dd569e1e 100644
---- a/glib/meson.build
-+++ b/glib/meson.build
-@@ -419,6 +419,7 @@ libglib = library('glib-2.0',
- include_directories : configinc,
- link_with: [charset_lib, gnulib_lib],
- dependencies : [
-+ atomic_dep,
- gnulib_libm_dependency,
- libiconv,
- libintl_deps,
-diff --git a/meson.build b/meson.build
-index 46c5aa200a..8b42940558 100644
---- a/meson.build
-+++ b/meson.build
-@@ -2233,6 +2233,15 @@ libffi_dep = dependency('libffi', version : '>= 3.0.0')
-
- libz_dep = dependency('zlib')
-
-+libatomic_test_code = '''
-+ int main (int argc, char ** argv) {
-+ return 0;
-+ }'''
-+atomic_dep = []
-+if cc.links(libatomic_test_code, args : '-latomic', name : 'check for -latomic')
-+ atomic_dep = cc.find_library('atomic')
-+endif
-+
- # First check in libc, fallback to libintl, and as last chance build
- # proxy-libintl subproject.
- # FIXME: glib-gettext.m4 has much more checks to detect broken/uncompatible
---
-2.44.0
-
@@ -3,6 +3,8 @@ config BR2_PACKAGE_LIBGLIB2
depends on BR2_USE_WCHAR # gettext
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_USE_MMU # fork()
+ select BR2_PACKAGE_HOST_QEMU if BR2_PACKAGE_GOBJECT_INTROSPECTION
+ select BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE if BR2_PACKAGE_GOBJECT_INTROSPECTION
select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
select BR2_PACKAGE_LIBFFI
select BR2_PACKAGE_PCRE2
new file mode 120000
@@ -0,0 +1 @@
+../0001-meson.build-add-girdir-to-gio-2.0.pc-and-glib-2.0.pc.patch
\ No newline at end of file
new file mode 120000
@@ -0,0 +1 @@
+../libglib2.hash
\ No newline at end of file
new file mode 100644
@@ -0,0 +1,47 @@
+################################################################################
+#
+# libglib2-bootstrap
+#
+################################################################################
+
+# Since version 2.79.0 libglib2 needs gobject-introspection to build
+# with introspection support. As gobject-introspection requires
+# libglib2 to build this means a bootstrap process is needed, as
+# described in the NEWS entry:
+#
+# 1. build libglib2 without introspection (this bootstrap package)
+# 2. build build gobject-introspection
+# 3. build libglib2 with introspection (the main libglib2 package).
+#
+# The bootstrap package is an implementation detail that nothing
+# except gobject-introspection should depend on.
+
+LIBGLIB2_BOOTSTRAP_VERSION_MAJOR = $(LIBGLIB2_VERSION_MAJOR)
+LIBGLIB2_BOOTSTRAP_VERSION = $(LIBGLIB2_VERSION)
+LIBGLIB2_BOOTSTRAP_SOURCE = $(LIBGLIB2_SOURCE)
+LIBGLIB2_BOOTSTRAP_SITE = $(LIBGLIB2_SITE)
+LIBGLIB2_BOOTSTRAP_LICENSE = $(LIBGLIB2_LICENSE)
+LIBGLIB2_BOOTSTRAP_LICENSE_FILES = $(LIBGLIB2_LICENSE_FILES)
+LIBGLIB2_BOOTSTRAP_CPE_ID_VENDOR = $(LIBGLIB2_CPE_ID_VENDOR)
+LIBGLIB2_BOOTSTRAP_CPE_ID_PRODUCT = $(LIBGLIB2_CPE_ID_PRODUCT)
+LIBGLIB2_BOOTSTRAP_INSTALL_STAGING = YES
+LIBGLIB2_BOOTSTRAP_DL_SUBDIR = libglib2
+
+LIBGLIB2_BOOTSTRAP_CFLAGS = $(LIBGLIB2_CFLAGS)
+LIBGLIB2_BOOTSTRAP_LDFLAGS = $(LIBGLIB2_LDFLAGS)
+
+LIBGLIB2_BOOTSTRAP_DEPENDENCIES = $(filter-out gobject-introspection,$(LIBGLIB2_DEPENDENCIES))
+LIBGLIB2_BOOTSTRAP_CONF_OPTS = $(patsubst -Dintrospection=%,-Dintrospection=disabled,$(LIBGLIB2_CONF_OPTS))
+
+HOST_LIBGLIB2_BOOTSTRAP_DEPENDENCIES = $(filter-out host-gobject-introspection,$(HOST_LIBGLIB2_DEPENDENCIES))
+HOST_LIBGLIB2_BOOTSTRAP_CONF_OPTS = $(patsubst -Dintrospection=%,-Dintrospection=disabled,$(HOST_LIBGLIB2_CONF_OPTS))
+
+LIBGLIB2_BOOTSTRAP_MESON_EXTRA_PROPERTIES = $(LIBGLIB2_MESON_EXTRA_PROPERTIES)
+
+LIBGLIB2_BOOTSTRAP_POST_INSTALL_TARGET_HOOKS = $(LIBGLIB2_POST_INSTALL_TARGET_HOOKS)
+
+# Finalize hooks aren't necessary for the bootstrap package, the full
+# libglib2 will take care of that.
+
+$(eval $(meson-package))
+$(eval $(host-meson-package))
@@ -1,4 +1,4 @@
-# https://download.gnome.org/sources/glib/2.76/glib-2.76.1.sha256sum
-sha256 43dc0f6a126958f5b454136c4398eab420249c16171a769784486e25f2fda19f glib-2.76.1.tar.xz
+# https://download.gnome.org/sources/glib/2.80/glib-2.80.4.sha256sum
+sha256 f4c82ada51366bddace49d7ba54b33b4e4d6067afa3008e4847f41cb9b5c38d3 glib-2.82.0.tar.xz
# License files, locally calculated
sha256 fa6f36630bb1e0c571d34b2bbdf188d08495c9dbf58f28cac112f303fc1f58fb COPYING
@@ -4,8 +4,8 @@
#
################################################################################
-LIBGLIB2_VERSION_MAJOR = 2.76
-LIBGLIB2_VERSION = $(LIBGLIB2_VERSION_MAJOR).1
+LIBGLIB2_VERSION_MAJOR = 2.82
+LIBGLIB2_VERSION = $(LIBGLIB2_VERSION_MAJOR).0
LIBGLIB2_SOURCE = glib-$(LIBGLIB2_VERSION).tar.xz
LIBGLIB2_SITE = https://download.gnome.org/sources/glib/$(LIBGLIB2_VERSION_MAJOR)
LIBGLIB2_LICENSE = LGPL-2.1+
@@ -25,6 +25,7 @@ endif
HOST_LIBGLIB2_CONF_OPTS = \
-Ddtrace=false \
-Dglib_debug=disabled \
+ -Dintrospection=enabled \
-Dlibelf=disabled \
-Dselinux=disabled \
-Dsystemtap=false \
@@ -38,6 +39,7 @@ LIBGLIB2_DEPENDENCIES = \
HOST_LIBGLIB2_DEPENDENCIES = \
host-gettext \
+ host-gobject-introspection \
host-libffi \
host-pcre2 \
host-pkgconf \
@@ -60,6 +62,15 @@ LIBGLIB2_MESON_EXTRA_PROPERTIES = \
have_c99_snprintf=true \
have_unix98_printf=true
+ifeq ($(BR2_PACKAGE_GOBJECT_INTROSPECTION),y)
+LIBGLIB2_CONF_OPTS += -Dintrospection=enabled
+LIBGLIB2_DEPENDENCIES += gobject-introspection host-qemu
+LIBGLIB2_MESON_EXTRA_BINARIES = \
+ exe_wrapper='$(QEMU_USER)'
+else
+LIBGLIB2_CONF_OPTS += -Dintrospection=disabled
+endif
+
ifeq ($(BR2_PACKAGE_ELFUTILS),y)
LIBGLIB2_DEPENDENCIES += elfutils
endif
@@ -138,3 +149,9 @@ $(eval $(meson-package))
$(eval $(host-meson-package))
LIBGLIB2_HOST_BINARY = $(HOST_DIR)/bin/glib-genmarshal
+
+# Bootstrap is only needed if building with introspection. However
+# introspection is unconditionally enabled for host-libglib2, so the
+# include must happen for the host package even if target libglib2 is
+# built without introspection.
+include package/libglib2/libglib2-bootstrap/libglib2-bootstrap.mk