openembedded-core.lists.openembedded.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] libical: disable introspection in -native
@ 2024-04-23 11:41 Alexander Kanavin
  2024-04-23 11:41 ` [PATCH 2/2] glib/gobject-introspection: update 2.78.4 -> 2.80.0, 1.78.1 -> 1.80.0 Alexander Kanavin
  0 siblings, 1 reply; 5+ messages in thread
From: Alexander Kanavin @ 2024-04-23 11:41 UTC (permalink / raw)
  To: openembedded-core; +Cc: Alexander Kanavin

From: Alexander Kanavin <alex@linutronix.de>

libical has a custom cmake introspection support,
and so native provisions by g-i class aren't effective
(it has only standard autoconf/meson options).

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
 meta/recipes-support/libical/libical_3.0.18.bb | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/meta/recipes-support/libical/libical_3.0.18.bb b/meta/recipes-support/libical/libical_3.0.18.bb
index 040d23b69d0..052ca57cfb0 100644
--- a/meta/recipes-support/libical/libical_3.0.18.bb
+++ b/meta/recipes-support/libical/libical_3.0.18.bb
@@ -37,7 +37,8 @@ EXTRA_OECMAKE += "-DICAL_BUILD_DOCS=false"
 EXTRA_OECMAKE:append:class-target = " -DGObjectIntrospection_COMPILER=${STAGING_BINDIR}/g-ir-compiler-wrapper"
 EXTRA_OECMAKE:append:class-target = " -DGObjectIntrospection_SCANNER=${STAGING_BINDIR}/g-ir-scanner-wrapper"
 EXTRA_OECMAKE += "-DVAPIGEN=${STAGING_BINDIR_NATIVE}/vapigen"
-EXTRA_OECMAKE += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DGOBJECT_INTROSPECTION=ON -DICAL_GLIB_VAPI=ON', '-DGOBJECT_INTROSPECTION=OFF', d)}"
+EXTRA_OECMAKE += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DGOBJECT_INTROSPECTION=ON -DICAL_GLIB_VAPI=ON', '-DGOBJECT_INTROSPECTION=OFF -DICAL_GLIB_VAPI=OFF', d)}"
+EXTRA_OECMAKE:append:class-native = " -DGOBJECT_INTROSPECTION=OFF -DICAL_GLIB_VAPI=OFF"
 
 # Tell the cross-libical where the tool it needs to build is
 EXTRA_OECMAKE:append:class-target = " -DIMPORT_ICAL_GLIB_SRC_GENERATOR=${STAGING_LIBDIR_NATIVE}/cmake/LibIcal/IcalGlibSrcGenerator.cmake"
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] glib/gobject-introspection: update 2.78.4 -> 2.80.0, 1.78.1 -> 1.80.0
  2024-04-23 11:41 [PATCH 1/2] libical: disable introspection in -native Alexander Kanavin
@ 2024-04-23 11:41 ` Alexander Kanavin
  2024-04-27 17:31   ` [OE-core] " Khem Raj
  2024-05-01  6:37   ` Richard Purdie
  0 siblings, 2 replies; 5+ messages in thread
From: Alexander Kanavin @ 2024-04-23 11:41 UTC (permalink / raw)
  To: openembedded-core; +Cc: Alexander Kanavin

From: Alexander Kanavin <alex@linutronix.de>

With these versions, which need to be updated in lockstep, upstream has
relocated glib introspection data from g-i tree to glib tree and made
its generation a part of the overall glib build. This creates a circular
dependency, where g-i tools are linked with glib, but glib needs the tools
to build its g-i data. (I don't know why the two source trees
couldn't be simply merged into one, or g-i data for glib couldn't be generated
inside g-i build against sysroot glib).

Upstream is suggesting building glib twice, first without building g-i data,
then building g-i and linking it with that version, then building
the final glib, and that's what is being done here (via the new
glib-initial recipe, which is sysroot-only, and is not pulled in
via indirect dependencies either).

Other glib changes:
0001-Do-not-write-bindir-into-pkg-config-files.patch restores
writing bindir variable into glib.pc file (meson only writes
it out if other variables depend on it, and this custom patch
removes that dependency).

0001-girepository-introspection-correctly-install-.gir-fi.patch
ensures correct installation of .gir into something else
than $datadir (useful in multilib).

Merge previous glib .bb into .inc, so that glib and glib-initial
recipes could be cleanly separated with no duplication.

Convert from gtk-doc to gi-docgen, and manpages from xmlto to
docutils.

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
 meta/conf/distro/include/maintainers.inc      |   1 +
 ...t-write-bindir-into-pkg-config-files.patch |  31 +-
 ...0001-Fix-DATADIRNAME-on-uclibc-Linux.patch |   2 +-
 ...-gio-querymodules-as-libexec_PROGRAM.patch |   6 +-
 ...ng-about-deprecated-paths-in-schemas.patch |   2 +-
 ...-correctly-when-building-with-mingw3.patch |  20 +-
 ...ces.c-comment-out-a-build-host-only-.patch |   4 +-
 ...rospection-correctly-install-.gir-fi.patch |  88 +++++
 ...on-Run-atomics-test-on-clang-as-well.patch |   6 +-
 ...ot-enable-pidfd-features-on-native-g.patch |   6 +-
 ...dcode-python-path-into-various-tools.patch |   4 +-
 .../{glib-2.0 => files}/meson.cross.d/common  |   0
 .../meson.cross.d/common-glibc                |   0
 .../meson.cross.d/common-linux                |   0
 .../meson.cross.d/common-mingw                |   0
 .../meson.cross.d/common-musl                 |   0
 .../relocate-modules.patch                    |   8 +-
 .../glib-2.0/{glib-2.0 => files}/run-ptest    |   0
 .../{glib-2.0 => files}/skip-timeout.patch    |   7 +-
 .../glib-2.0/glib-2.0-initial_2.80.0.bb       |   5 +
 ...deprecated-distutils-module-to-the-p.patch |  34 --
 .../glib-2.0/glib-2.0/fix-regex.patch         |  54 ---
 .../glib-2.0/glib-2.0/memory-monitor.patch    | 361 ------------------
 meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb |  57 ---
 meta/recipes-core/glib-2.0/glib-2.0_2.80.0.bb |   1 +
 meta/recipes-core/glib-2.0/glib.inc           |  74 +++-
 ...pository-directory-for-native-builds.patch |  11 +-
 ...8.1.bb => gobject-introspection_1.80.1.bb} |   8 +-
 28 files changed, 221 insertions(+), 569 deletions(-)
 rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-Do-not-write-bindir-into-pkg-config-files.patch (68%)
 rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch (92%)
 rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch (84%)
 rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch (95%)
 rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-Set-host_machine-correctly-when-building-with-mingw3.patch (80%)
 rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch (92%)
 create mode 100644 meta/recipes-core/glib-2.0/files/0001-girepository-introspection-correctly-install-.gir-fi.patch
 rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-meson-Run-atomics-test-on-clang-as-well.patch (88%)
 rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch (84%)
 rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0010-Do-not-hardcode-python-path-into-various-tools.patch (93%)
 rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/meson.cross.d/common (100%)
 rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/meson.cross.d/common-glibc (100%)
 rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/meson.cross.d/common-linux (100%)
 rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/meson.cross.d/common-mingw (100%)
 rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/meson.cross.d/common-musl (100%)
 rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/relocate-modules.patch (86%)
 rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/run-ptest (100%)
 rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/skip-timeout.patch (90%)
 create mode 100644 meta/recipes-core/glib-2.0/glib-2.0-initial_2.80.0.bb
 delete mode 100644 meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch
 delete mode 100644 meta/recipes-core/glib-2.0/glib-2.0/fix-regex.patch
 delete mode 100644 meta/recipes-core/glib-2.0/glib-2.0/memory-monitor.patch
 delete mode 100644 meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb
 create mode 100644 meta/recipes-core/glib-2.0/glib-2.0_2.80.0.bb
 rename meta/recipes-gnome/gobject-introspection/{gobject-introspection_1.78.1.bb => gobject-introspection_1.80.1.bb} (96%)

diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
index 20eb3a04468..fbf2d4cc816 100644
--- a/meta/conf/distro/include/maintainers.inc
+++ b/meta/conf/distro/include/maintainers.inc
@@ -205,6 +205,7 @@ RECIPE_MAINTAINER:pn-gi-docgen = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-git = "Robert Yang <liezhi.yang@windriver.com>"
 RECIPE_MAINTAINER:pn-glew = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-glib-2.0 = "Anuj Mittal <anuj.mittal@intel.com>"
+RECIPE_MAINTAINER:pn-glib-2.0-initial = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-glib-networking = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER:pn-glibc = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER:pn-glibc-locale = "Khem Raj <raj.khem@gmail.com>"
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch b/meta/recipes-core/glib-2.0/files/0001-Do-not-write-bindir-into-pkg-config-files.patch
similarity index 68%
rename from meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch
rename to meta/recipes-core/glib-2.0/files/0001-Do-not-write-bindir-into-pkg-config-files.patch
index 8e6598fbef8..f6eba04fd4c 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch
+++ b/meta/recipes-core/glib-2.0/files/0001-Do-not-write-bindir-into-pkg-config-files.patch
@@ -1,26 +1,30 @@
-From e7077aa23bfcd31a8e72e39dc93ce4f854678376 Mon Sep 17 00:00:00 2001
+From 0561dcbf0918631d8106c3f6c2d8e92a5ec4b887 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Fri, 15 Feb 2019 11:17:27 +0100
-Subject: [PATCH] Do not write $bindir into pkg-config files
+Subject: [PATCH] Do not prefix executables with $bindir in pkg-config files
 
-This would otherwise break when using the files to build other target
+This would otherwise break when using the executables to build other target
 components (we need to rely on PATH containing the paths to utilities,
 rather than use target paths).
 
 Upstream-Status: Inappropriate [upstream wants the paths in .pc files]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
 ---
- gio/meson.build  | 16 ++++++++--------
- glib/meson.build |  6 +++---
- 2 files changed, 11 insertions(+), 11 deletions(-)
+ gio/meson.build  | 17 +++++++++--------
+ glib/meson.build |  7 ++++---
+ 2 files changed, 13 insertions(+), 11 deletions(-)
 
 diff --git a/gio/meson.build b/gio/meson.build
-index 5f91586..1a95f4f 100644
+index 77cba7b..25d709e 100644
 --- a/gio/meson.build
 +++ b/gio/meson.build
-@@ -884,14 +884,14 @@ pkg.generate(libgio,
+@@ -883,17 +883,18 @@ libgio_dep = declare_dependency(link_with : libgio,
+ pkg.generate(libgio,
+   requires : ['glib-2.0', 'gobject-2.0'],
+   variables : [
++    'bindir=' + '${prefix}' / get_option('bindir'),
+     'schemasdir=' + '${datadir}' / schemas_subdir,
      'dtdsdir=' + '${datadir}' / dtds_subdir,
-     'bindir=' + '${prefix}' / get_option('bindir'),
      'giomoduledir=' + pkgconfig_giomodulesdir,
 -    'gio=' + '${bindir}' / 'gio',
 -    'gio_querymodules=' + pkgconfig_multiarch_bindir / 'gio-querymodules',
@@ -42,16 +46,17 @@ index 5f91586..1a95f4f 100644
    version : glib_version,
    install_dir : glib_pkgconfigreldir,
 diff --git a/glib/meson.build b/glib/meson.build
-index c26a35e..1d8ca6b 100644
+index d2efeba..5f5841d 100644
 --- a/glib/meson.build
 +++ b/glib/meson.build
-@@ -447,9 +447,9 @@ pkg.generate(libglib,
+@@ -447,9 +447,10 @@ pkg.generate(libglib,
+   subdirs : ['glib-2.0'],
+   extra_cflags : ['-I${libdir}/glib-2.0/include'] + win32_cflags,
    variables : [
-     'bindir=' + '${prefix}' / get_option('bindir'),
-     'datadir=' + '${prefix}' / get_option('datadir'),
 -    'glib_genmarshal=' + '${bindir}' / 'glib-genmarshal',
 -    'gobject_query=' + '${bindir}' / 'gobject-query',
 -    'glib_mkenums=' + '${bindir}' / 'glib-mkenums',
++    'bindir=' + '${prefix}' / get_option('bindir'),
 +    'glib_genmarshal=glib-genmarshal',
 +    'gobject_query=gobject-query',
 +    'glib_mkenums=glib-mkenums',
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch b/meta/recipes-core/glib-2.0/files/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
similarity index 92%
rename from meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
rename to meta/recipes-core/glib-2.0/files/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
index eb9dfdbcf99..129bc7f8aee 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
+++ b/meta/recipes-core/glib-2.0/files/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
@@ -1,4 +1,4 @@
-From 9a5d4bf65b658d744d610ee27ecd2ae65b14b158 Mon Sep 17 00:00:00 2001
+From ccb25e8c0bab54eac8ba0e9d7083ce81461ab72a Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sat, 15 Mar 2014 22:42:29 -0700
 Subject: [PATCH] Fix DATADIRNAME on uclibc/Linux
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch b/meta/recipes-core/glib-2.0/files/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
similarity index 84%
rename from meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
rename to meta/recipes-core/glib-2.0/files/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
index ad69f7ec655..3e12f8abbeb 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
+++ b/meta/recipes-core/glib-2.0/files/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
@@ -1,4 +1,4 @@
-From 4933aef791857a5aac650b60af800778658b875b Mon Sep 17 00:00:00 2001
+From caab40411d8520dae77a4b7933ebaffbb00559fe Mon Sep 17 00:00:00 2001
 From: Jussi Kukkonen <jussi.kukkonen@intel.com>
 Date: Tue, 22 Mar 2016 15:14:58 +0200
 Subject: [PATCH] Install gio-querymodules as libexec_PROGRAM
@@ -13,10 +13,10 @@ Upstream-Status: Inappropriate [OE specific]
  1 file changed, 1 insertion(+)
 
 diff --git a/gio/meson.build b/gio/meson.build
-index f9fdf6e..5f91586 100644
+index 59c2b0f..77cba7b 100644
 --- a/gio/meson.build
 +++ b/gio/meson.build
-@@ -1005,6 +1005,7 @@ gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodu
+@@ -1007,6 +1007,7 @@ gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodu
    c_args : gio_c_args,
    # intl.lib is not compatible with SAFESEH
    link_args : noseh_link_args,
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch b/meta/recipes-core/glib-2.0/files/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
similarity index 95%
rename from meta/recipes-core/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
rename to meta/recipes-core/glib-2.0/files/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
index 0e3a62af6a6..9b0b83afa44 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
+++ b/meta/recipes-core/glib-2.0/files/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
@@ -1,4 +1,4 @@
-From 8ae2e9c2a04e089306693a021149dc6b7d1bd679 Mon Sep 17 00:00:00 2001
+From 65c036b1ede453e89893076f4ece21c946505096 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Fri, 12 Jun 2015 17:08:46 +0300
 Subject: [PATCH] Remove the warning about deprecated paths in schemas
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch b/meta/recipes-core/glib-2.0/files/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
similarity index 80%
rename from meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
rename to meta/recipes-core/glib-2.0/files/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
index 32b4cea409c..a2f9dd9672f 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
+++ b/meta/recipes-core/glib-2.0/files/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
@@ -1,4 +1,4 @@
-From c0733f7a91dfe13152abc60c5a3064456b3e9d63 Mon Sep 17 00:00:00 2001
+From 01810df82fae752428d3756c85edb2eb7bbf3c15 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Wed, 13 Feb 2019 15:32:05 +0100
 Subject: [PATCH] Set host_machine correctly when building with mingw32
@@ -12,7 +12,7 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
  3 files changed, 8 insertions(+), 5 deletions(-)
 
 diff --git a/gio/tests/meson.build b/gio/tests/meson.build
-index 4ef3343..e498e7e 100644
+index 232ecca..563298b 100644
 --- a/gio/tests/meson.build
 +++ b/gio/tests/meson.build
 @@ -29,7 +29,7 @@ endif
@@ -24,16 +24,16 @@ index 4ef3343..e498e7e 100644
    common_gio_tests_deps += [iphlpapi_dep, winsock2, cc.find_library ('secur32')]
  endif
  
-@@ -230,7 +230,7 @@ if have_dbus_daemon
+@@ -244,7 +244,7 @@ if have_dbus_daemon
  endif
  
  #  Test programs buildable on UNIX only
 -if host_machine.system() != 'windows'
 +if host_system != 'windows'
    gio_tests += {
-     'file' : {},
-     'gdbus-peer-object-manager' : {},
-@@ -562,7 +562,7 @@ if host_machine.system() != 'windows'
+     'file' : {
+       # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/3148
+@@ -593,7 +593,7 @@ if host_machine.system() != 'windows'
  endif # unix
  
  #  Test programs buildable on Windows only
@@ -42,7 +42,7 @@ index 4ef3343..e498e7e 100644
    gio_tests += {'win32-streams' : {}}
  endif
  
-@@ -632,7 +632,7 @@ if cc.get_id() != 'msvc' and cc.get_id() != 'clang-cl'
+@@ -663,7 +663,7 @@ if cc.get_id() != 'msvc' and cc.get_id() != 'clang-cl'
    }
  endif
  
@@ -52,10 +52,10 @@ index 4ef3343..e498e7e 100644
      'gdbus-example-unix-fd-client' : {
        'install' : false,
 diff --git a/glib/tests/meson.build b/glib/tests/meson.build
-index d80c86e..5329cda 100644
+index f6efc59..83eb5a5 100644
 --- a/glib/tests/meson.build
 +++ b/glib/tests/meson.build
-@@ -216,7 +216,7 @@ if glib_conf.has('HAVE_EVENTFD')
+@@ -226,7 +226,7 @@ if glib_conf.has('HAVE_EVENTFD')
    }
  endif
  
@@ -65,7 +65,7 @@ index d80c86e..5329cda 100644
      glib_tests += {
        'gpoll' : {
 diff --git a/meson.build b/meson.build
-index 813c9b7..6ee775e 100644
+index 7534542..2560686 100644
 --- a/meson.build
 +++ b/meson.build
 @@ -54,6 +54,9 @@ else
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch b/meta/recipes-core/glib-2.0/files/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
similarity index 92%
rename from meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
rename to meta/recipes-core/glib-2.0/files/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
index aee29860332..bb84f3969e4 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
+++ b/meta/recipes-core/glib-2.0/files/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
@@ -1,4 +1,4 @@
-From 878e51f82100c698236fda0e069e14ea9249350c Mon Sep 17 00:00:00 2001
+From e8b4f53b567339aad90b585673d55a5c6176535a Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Wed, 8 Jan 2020 18:22:46 +0100
 Subject: [PATCH] gio/tests/resources.c: comment out a build host-only test
@@ -13,7 +13,7 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/gio/tests/resources.c b/gio/tests/resources.c
-index f567914..b21b616 100644
+index f7dc039..f708876 100644
 --- a/gio/tests/resources.c
 +++ b/gio/tests/resources.c
 @@ -1068,7 +1068,7 @@ main (int   argc,
diff --git a/meta/recipes-core/glib-2.0/files/0001-girepository-introspection-correctly-install-.gir-fi.patch b/meta/recipes-core/glib-2.0/files/0001-girepository-introspection-correctly-install-.gir-fi.patch
new file mode 100644
index 00000000000..76e5f587480
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/files/0001-girepository-introspection-correctly-install-.gir-fi.patch
@@ -0,0 +1,88 @@
+From 4e6be5d15e5d2f8e494d22a3d49b623064f9c1a5 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Tue, 23 Apr 2024 11:24:34 +0200
+Subject: [PATCH] girepository/introspection: correctly install .gir files into
+ custom locations provided via meson option
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4020]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ girepository/introspection/meson.build | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/girepository/introspection/meson.build b/girepository/introspection/meson.build
+index 9405686..862ca61 100644
+--- a/girepository/introspection/meson.build
++++ b/girepository/introspection/meson.build
+@@ -49,6 +49,7 @@ glib_gir = gnome.generate_gir(libglib,
+   export_packages: 'glib-2.0',
+   header: 'glib.h',
+   install: true,
++  install_dir_gir: glib_girdir,
+   dependencies: [
+     libgobject_dep,
+   ],
+@@ -76,6 +77,7 @@ if host_system == 'windows'
+     header: 'glib.h',
+     includes: [ glib_gir[0] ],
+     install: true,
++    install_dir_gir: glib_girdir,
+     dependencies: [
+       libgobject_dep,
+     ],
+@@ -104,6 +106,7 @@ else
+     header: 'glib.h',
+     includes: [ glib_gir[0] ],
+     install: true,
++    install_dir_gir: glib_girdir,
+     dependencies: [
+       libgobject_dep,
+     ],
+@@ -137,6 +140,7 @@ gobject_gir = gnome.generate_gir(libgobject,
+   header: 'glib-object.h',
+   includes: [ glib_gir[0] ],
+   install: true,
++  install_dir_gir: glib_girdir,
+   env: gi_gen_env_variables,
+   extra_args: gir_args + [
+       '-DGOBJECT_COMPILATION',
+@@ -162,6 +166,7 @@ gmodule_gir = gnome.generate_gir(libgmodule,
+   header: 'gmodule.h',
+   includes: [ glib_gir[0] ],
+   install: true,
++  install_dir_gir: glib_girdir,
+   dependencies: [
+     libglib_dep,
+   ],
+@@ -224,6 +229,7 @@ gio_gir = gnome.generate_gir(libgio,
+   header: 'gio/gio.h',
+   includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0] ],
+   install: true,
++  install_dir_gir: glib_girdir,
+   dependencies: [
+     libglib_dep,
+     libgobject_dep,
+@@ -249,6 +255,7 @@ if host_system == 'windows'
+     header: 'gio/gio.h',
+     includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0], gio_gir[0] ],
+     install: true,
++    install_dir_gir: glib_girdir,
+     dependencies: [
+       libglib_dep,
+       libgobject_dep,
+@@ -277,6 +284,7 @@ else
+     header: 'gio/gio.h',
+     includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0], gio_gir[0] ],
+     install: true,
++    install_dir_gir: glib_girdir,
+     dependencies: [
+       libglib_dep,
+       libgobject_dep,
+@@ -314,6 +322,7 @@ girepository_gir = gnome.generate_gir(libgirepository,
+   header: 'girepository/girepository.h',
+   includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0], gio_gir[0] ],
+   install: true,
++  install_dir_gir: glib_girdir,
+   dependencies: [ libglib_dep, libgobject_dep, libgmodule_dep, libgio_dep ],
+   extra_args: gir_args + libgirepository_gir_args,
+ )
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch b/meta/recipes-core/glib-2.0/files/0001-meson-Run-atomics-test-on-clang-as-well.patch
similarity index 88%
rename from meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch
rename to meta/recipes-core/glib-2.0/files/0001-meson-Run-atomics-test-on-clang-as-well.patch
index 0b102691141..2f805299874 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch
+++ b/meta/recipes-core/glib-2.0/files/0001-meson-Run-atomics-test-on-clang-as-well.patch
@@ -1,4 +1,4 @@
-From b4b523160ef550a53705fcc45ac6e10d086ce491 Mon Sep 17 00:00:00 2001
+From 3dc2e741e18ccb740e98eb4e808ff83153b70e83 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sat, 12 Oct 2019 17:46:26 -0700
 Subject: [PATCH] meson: Run atomics test on clang as well
@@ -14,10 +14,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/meson.build b/meson.build
-index 6ee775e..8bc5fa7 100644
+index 2560686..5c46d0b 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -1938,7 +1938,7 @@ atomicdefine = '''
+@@ -2024,7 +2024,7 @@ atomicdefine = '''
  # We know that we can always use real ("lock free") atomic operations with MSVC
  if cc.get_id() == 'msvc' or cc.get_id() == 'clang-cl' or cc.links(atomictest, name : 'atomic ops')
    have_atomic_lock_free = true
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch b/meta/recipes-core/glib-2.0/files/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
similarity index 84%
rename from meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
rename to meta/recipes-core/glib-2.0/files/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
index 14dcb278e05..82955de6715 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
+++ b/meta/recipes-core/glib-2.0/files/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
@@ -1,4 +1,4 @@
-From 294f3e6e9a0a9f4733e85ed6810d1b743055370b Mon Sep 17 00:00:00 2001
+From 59525eedfbbfe4a16fdd0b340bc3f2479431c7d5 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex@linutronix.de>
 Date: Sat, 16 Sep 2023 22:28:27 +0200
 Subject: [PATCH] meson.build: do not enable pidfd features on native glib
@@ -14,10 +14,10 @@ Signed-off-by: Alexander Kanavin <alex@linutronix.de>
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/meson.build b/meson.build
-index 8bc5fa7..df1fa60 100644
+index 5c46d0b..222c1a1 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -981,7 +981,8 @@ if cc.links('''#include <sys/syscall.h>
+@@ -1022,7 +1022,8 @@ if cc.links('''#include <sys/syscall.h>
                   waitid (P_PIDFD, 0, &child_info, WEXITED | WNOHANG);
                   return 0;
                 }''', name : 'pidfd_open(2) system call')
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch b/meta/recipes-core/glib-2.0/files/0010-Do-not-hardcode-python-path-into-various-tools.patch
similarity index 93%
rename from meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch
rename to meta/recipes-core/glib-2.0/files/0010-Do-not-hardcode-python-path-into-various-tools.patch
index 6dff5179c71..a51c186b004 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch
+++ b/meta/recipes-core/glib-2.0/files/0010-Do-not-hardcode-python-path-into-various-tools.patch
@@ -1,4 +1,4 @@
-From 50636758c73e5e61212a8f801c6c602b8aab5ba7 Mon Sep 17 00:00:00 2001
+From e6784ba43af83e22556921786c8f15e4cd246298 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Tue, 3 Oct 2017 10:45:55 +0300
 Subject: [PATCH] Do not hardcode python path into various tools
@@ -32,7 +32,7 @@ index aa5af43..56e8e2e 100755
  # pylint: disable=too-many-lines, missing-docstring, invalid-name
  
 diff --git a/gobject/glib-mkenums.in b/gobject/glib-mkenums.in
-index 353e53a..8ed6c39 100755
+index e10b910..4b619f8 100755
 --- a/gobject/glib-mkenums.in
 +++ b/gobject/glib-mkenums.in
 @@ -1,4 +1,4 @@
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common b/meta/recipes-core/glib-2.0/files/meson.cross.d/common
similarity index 100%
rename from meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common
rename to meta/recipes-core/glib-2.0/files/meson.cross.d/common
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-glibc b/meta/recipes-core/glib-2.0/files/meson.cross.d/common-glibc
similarity index 100%
rename from meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-glibc
rename to meta/recipes-core/glib-2.0/files/meson.cross.d/common-glibc
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux b/meta/recipes-core/glib-2.0/files/meson.cross.d/common-linux
similarity index 100%
rename from meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux
rename to meta/recipes-core/glib-2.0/files/meson.cross.d/common-linux
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-mingw b/meta/recipes-core/glib-2.0/files/meson.cross.d/common-mingw
similarity index 100%
rename from meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-mingw
rename to meta/recipes-core/glib-2.0/files/meson.cross.d/common-mingw
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-musl b/meta/recipes-core/glib-2.0/files/meson.cross.d/common-musl
similarity index 100%
rename from meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-musl
rename to meta/recipes-core/glib-2.0/files/meson.cross.d/common-musl
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch b/meta/recipes-core/glib-2.0/files/relocate-modules.patch
similarity index 86%
rename from meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
rename to meta/recipes-core/glib-2.0/files/relocate-modules.patch
index 3e79bbf6796..d6e9019f396 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
+++ b/meta/recipes-core/glib-2.0/files/relocate-modules.patch
@@ -1,4 +1,4 @@
-From f40e89b3852df37959606ee13b1a14ade81fa886 Mon Sep 17 00:00:00 2001
+From 47ea2576a13d5bc86692b4ba8cb4a8f2fd38c6ca Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@intel.com>
 Date: Fri, 11 Mar 2016 15:35:55 +0000
 Subject: [PATCH] glib-2.0: relocate the GIO module directory for native builds
@@ -18,10 +18,10 @@ Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
  1 file changed, 7 deletions(-)
 
 diff --git a/gio/giomodule.c b/gio/giomodule.c
-index 17fabe6..8021208 100644
+index 1e14955..3c09bb5 100644
 --- a/gio/giomodule.c
 +++ b/gio/giomodule.c
-@@ -1271,11 +1271,6 @@ get_gio_module_dir (void)
+@@ -1259,11 +1259,6 @@ get_gio_module_dir (void)
        g_free (install_dir);
  #else
        module_dir = g_strdup (GIO_MODULE_DIR);
@@ -33,7 +33,7 @@ index 17fabe6..8021208 100644
  #include <dlfcn.h>
        {
          g_autofree gchar *path = NULL;
-@@ -1294,8 +1289,6 @@ get_gio_module_dir (void)
+@@ -1282,8 +1277,6 @@ get_gio_module_dir (void)
                }
            }
        }
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/run-ptest b/meta/recipes-core/glib-2.0/files/run-ptest
similarity index 100%
rename from meta/recipes-core/glib-2.0/glib-2.0/run-ptest
rename to meta/recipes-core/glib-2.0/files/run-ptest
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/skip-timeout.patch b/meta/recipes-core/glib-2.0/files/skip-timeout.patch
similarity index 90%
rename from meta/recipes-core/glib-2.0/glib-2.0/skip-timeout.patch
rename to meta/recipes-core/glib-2.0/files/skip-timeout.patch
index cd5ac287c3f..b1c62cc39c8 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0/skip-timeout.patch
+++ b/meta/recipes-core/glib-2.0/files/skip-timeout.patch
@@ -1,4 +1,4 @@
-From bb11d1a4ae77d93ec0743e54077cf0f990243fa6 Mon Sep 17 00:00:00 2001
+From 682d8a616ca111c0e45c8a9cb02e992e63c69586 Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@arm.com>
 Date: Thu, 28 Mar 2024 16:27:09 +0000
 Subject: [PATCH] Skip /timeout/rounding test
@@ -16,7 +16,7 @@ Signed-off-by: Ross Burton <ross.burton@arm.com>
  1 file changed, 1 deletion(-)
 
 diff --git a/glib/tests/timeout.c b/glib/tests/timeout.c
-index 1ae3f3a34..85a715b0f 100644
+index 1ae3f3a..85a715b 100644
 --- a/glib/tests/timeout.c
 +++ b/glib/tests/timeout.c
 @@ -214,7 +214,6 @@ main (int argc, char *argv[])
@@ -27,6 +27,3 @@ index 1ae3f3a34..85a715b0f 100644
  
    return g_test_run ();
  }
--- 
-2.34.1
-
diff --git a/meta/recipes-core/glib-2.0/glib-2.0-initial_2.80.0.bb b/meta/recipes-core/glib-2.0/glib-2.0-initial_2.80.0.bb
new file mode 100644
index 00000000000..7da28382650
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0-initial_2.80.0.bb
@@ -0,0 +1,5 @@
+require glib.inc
+PACKAGES = ""
+PACKAGECONFIG = ""
+
+
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch
deleted file mode 100644
index b11c283e6d7..00000000000
--- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From a8eb944a10353403241608a084787f6efcbb2eb7 Mon Sep 17 00:00:00 2001
-From: Jordan Williams <jordan@jwillikers.com>
-Date: Fri, 1 Dec 2023 09:53:50 -0600
-Subject: [PATCH] Switch from the deprecated distutils module to the packaging
- module
-
-The distutils module was removed in Python 3.12.
-
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/6ef967a0f930ce37a8c9b5aff969693b34714291]
-
-Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
----
- gio/gdbus-2.0/codegen/utils.py | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/gio/gdbus-2.0/codegen/utils.py b/gio/gdbus-2.0/codegen/utils.py
-index 0204610..08f1ba9 100644
---- a/gio/gdbus-2.0/codegen/utils.py
-+++ b/gio/gdbus-2.0/codegen/utils.py
-@@ -19,7 +19,7 @@
- #
- # Author: David Zeuthen <davidz@redhat.com>
- 
--import distutils.version
-+import packaging.version
- import os
- import sys
- 
-@@ -166,4 +166,4 @@ def version_cmp_key(key):
-         v = str(key[0])
-     else:
-         v = "0"
--    return (distutils.version.LooseVersion(v), key[1])
-+    return (packaging.version.Version(v), key[1])
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/fix-regex.patch b/meta/recipes-core/glib-2.0/glib-2.0/fix-regex.patch
deleted file mode 100644
index bdfbd558999..00000000000
--- a/meta/recipes-core/glib-2.0/glib-2.0/fix-regex.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From cce3ae98a2c1966719daabff5a4ec6cf94a846f6 Mon Sep 17 00:00:00 2001
-From: Philip Withnall <pwithnall@gnome.org>
-Date: Mon, 26 Feb 2024 16:55:44 +0000
-Subject: [PATCH] tests: Remove variable-length lookbehind tests for GRegex
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-PCRE2 10.43 has now introduced support for variable-length lookbehind,
-so these tests now fail if GLib is built against PCRE2 10.43 or higher.
-
-See
-https://github.com/PCRE2Project/pcre2/blob/e8db6fa7137f4c6f66cb87e0a3c9467252ec1ef7/ChangeLog#L94.
-
-Rather than making the tests conditional on the version of PCRE2 in use,
-just remove them. They are mostly testing the PCRE2 code rather than
-any code in GLib, so don’t have much value.
-
-This should fix CI runs on msys2-mingw32, which updated to PCRE2 10.43 2
-days ago.
-
-Signed-off-by: Philip Withnall <pwithnall@gnome.org>
-
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/cce3ae98a2c1966719daabff5a4ec6cf94a846f6]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- glib/tests/regex.c | 10 ----------
- 1 file changed, 10 deletions(-)
-
-diff --git a/glib/tests/regex.c b/glib/tests/regex.c
-index 1082526292..d7a698ec67 100644
---- a/glib/tests/regex.c
-+++ b/glib/tests/regex.c
-@@ -1885,16 +1885,6 @@ test_lookbehind (void)
-   g_match_info_free (match);
-   g_regex_unref (regex);
- 
--  regex = g_regex_new ("(?<!dogs?|cats?) x", G_REGEX_OPTIMIZE, G_REGEX_MATCH_DEFAULT, &error);
--  g_assert (regex == NULL);
--  g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND);
--  g_clear_error (&error);
--
--  regex = g_regex_new ("(?<=ab(c|de)) foo", G_REGEX_OPTIMIZE, G_REGEX_MATCH_DEFAULT, &error);
--  g_assert (regex == NULL);
--  g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND);
--  g_clear_error (&error);
--
-   regex = g_regex_new ("(?<=abc|abde)foo", G_REGEX_OPTIMIZE, G_REGEX_MATCH_DEFAULT, &error);
-   g_assert (regex);
-   g_assert_no_error (error);
--- 
-GitLab
-
-
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/memory-monitor.patch b/meta/recipes-core/glib-2.0/glib-2.0/memory-monitor.patch
deleted file mode 100644
index 4f38509da6f..00000000000
--- a/meta/recipes-core/glib-2.0/glib-2.0/memory-monitor.patch
+++ /dev/null
@@ -1,361 +0,0 @@
-From ce840b6b111e1e109e511f6833d6aa419e2b723a Mon Sep 17 00:00:00 2001
-From: Philip Withnall <philip@tecnocode.co.uk>
-Date: Tue, 23 Jan 2024 11:16:52 +0000
-Subject: [PATCH] Merge branch '2887-memory-monitor-tests' into 'main'
-
-tests: Fix race condition in memory-monitor-dbus.test
-
-Closes #2887
-
-See merge request GNOME/glib!3844
-
-Hopefully these commits fix the occasional failures we've been seeing:
-https://bugzilla.yoctoproject.org/show_bug.cgi?id=15362
-
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@arm.com>
----
- gio/tests/memory-monitor-dbus.py.in          | 64 +++++++++++++-------
- gio/tests/memory-monitor-portal.py.in        | 54 ++++++++++-------
- gio/tests/power-profile-monitor-dbus.py.in   | 35 ++++++-----
- gio/tests/power-profile-monitor-portal.py.in | 34 ++++++-----
- 4 files changed, 113 insertions(+), 74 deletions(-)
-
-diff --git a/gio/tests/memory-monitor-dbus.py.in b/gio/tests/memory-monitor-dbus.py.in
-index bf32918..7aae01e 100755
---- a/gio/tests/memory-monitor-dbus.py.in
-+++ b/gio/tests/memory-monitor-dbus.py.in
-@@ -16,7 +16,6 @@ import sys
- import subprocess
- import fcntl
- import os
--import time
- 
- import taptestrunner
- 
-@@ -57,53 +56,74 @@ try:
-             fcntl.fcntl(self.p_mock.stdout, fcntl.F_SETFL, flags | os.O_NONBLOCK)
-             self.last_warning = -1
-             self.dbusmock = dbus.Interface(self.obj_lmm, dbusmock.MOCK_IFACE)
-+
-+            try:
-+                self.wait_for_bus_object('org.freedesktop.LowMemoryMonitor',
-+                                        '/org/freedesktop/LowMemoryMonitor',
-+                                        system_bus=True)
-+            except:
-+                raise
-+
-             self.memory_monitor = Gio.MemoryMonitor.dup_default()
-+            assert("GMemoryMonitorDBus" in str(self.memory_monitor))
-             self.memory_monitor.connect("low-memory-warning", self.memory_warning_cb)
-             self.mainloop = GLib.MainLoop()
-             self.main_context = self.mainloop.get_context()
- 
-+            # The LowMemoryMonitor API is stateless: it doesn’t expose any
-+            # properties, just a warning signal. Emit the signal in a loop until
-+            # the GMemoryMonitor instance has initialised and synchronised to
-+            # the right state.
-+            def emit_warning(level):
-+                self.dbusmock.EmitWarning(level)
-+                return GLib.SOURCE_CONTINUE
-+
-+            idle_id = GLib.idle_add(emit_warning, 0)
-+            while self.last_warning != 0:
-+                self.main_context.iteration(True)
-+            GLib.source_remove(idle_id)
-+
-         def tearDown(self):
-             self.p_mock.terminate()
-             self.p_mock.wait()
- 
--        def assertEventually(self, condition, message=None, timeout=50):
-+        def assertEventually(self, condition, message=None, timeout=5):
-             '''Assert that condition function eventually returns True.
- 
--            Timeout is in deciseconds, defaulting to 50 (5 seconds). message is
-+            Timeout is in seconds, defaulting to 5 seconds. message is
-             printed on failure.
-             '''
--            while timeout >= 0:
--                context = GLib.MainContext.default()
--                while context.iteration(False):
--                    pass
--                if condition():
--                    break
--                timeout -= 1
--                time.sleep(0.1)
--            else:
--                self.fail(message or 'timed out waiting for ' + str(condition))
-+            if not message:
-+                message = 'timed out waiting for ' + str(condition)
-+
-+            def timed_out_cb(message):
-+                self.fail(message)
-+                return GLib.SOURCE_REMOVE
-+
-+            timeout_source = GLib.timeout_source_new_seconds(timeout)
-+            timeout_source.set_callback(timed_out_cb, message)
-+            timeout_source.attach(self.main_context)
-+
-+            while not condition():
-+                self.main_context.iteration(True)
-+
-+            timeout_source.destroy()
- 
-         def memory_warning_cb(self, monitor, level):
-+            print("Received memory warning signal, level", level)
-             self.last_warning = level
-             self.main_context.wakeup()
- 
-         def test_low_memory_warning_signal(self):
-             '''LowMemoryWarning signal'''
- 
--            # Wait 2 seconds
--            timeout = 2
--            while timeout > 0:
--                time.sleep(0.5)
--                timeout -= 0.5
--                self.main_context.iteration(False)
--
-             self.dbusmock.EmitWarning(100)
-             # Wait 2 seconds or until warning
--            self.assertEventually(lambda: self.last_warning == 100, "'100' low-memory warning not received", 20)
-+            self.assertEventually(lambda: self.last_warning == 100, "'100' low-memory warning not received", 2)
- 
-             self.dbusmock.EmitWarning(255)
-             # Wait 2 seconds or until warning
--            self.assertEventually(lambda: self.last_warning == 255, "'255' low-memory warning not received", 20)
-+            self.assertEventually(lambda: self.last_warning == 255, "'255' low-memory warning not received", 2)
- 
- except ImportError as e:
-     @unittest.skip("Cannot import %s" % e.name)
-diff --git a/gio/tests/memory-monitor-portal.py.in b/gio/tests/memory-monitor-portal.py.in
-index 748cee8..f570508 100755
---- a/gio/tests/memory-monitor-portal.py.in
-+++ b/gio/tests/memory-monitor-portal.py.in
-@@ -16,7 +16,6 @@ import sys
- import subprocess
- import fcntl
- import os
--import time
- 
- import taptestrunner
- 
-@@ -80,26 +79,44 @@ try:
-             self.mainloop = GLib.MainLoop()
-             self.main_context = self.mainloop.get_context()
- 
-+            # The LowMemoryMonitor API is stateless: it doesn’t expose any
-+            # properties, just a warning signal. Emit the signal in a loop until
-+            # the GMemoryMonitor instance has initialised and synchronised to
-+            # the right state.
-+            def emit_warning(level):
-+                self.dbusmock.EmitWarning(level)
-+                return GLib.SOURCE_CONTINUE
-+
-+            idle_id = GLib.idle_add(self.emit_warning, 0)
-+            while self.last_warning != 0:
-+                self.main_context.iteration(True)
-+            GLib.source_remove(idle_id)
-+
-         def tearDown(self):
-             self.p_mock.terminate()
-             self.p_mock.wait()
- 
--        def assertEventually(self, condition, message=None, timeout=50):
-+        def assertEventually(self, condition, message=None, timeout=5):
-             '''Assert that condition function eventually returns True.
- 
--            Timeout is in deciseconds, defaulting to 50 (5 seconds). message is
-+            Timeout is in seconds, defaulting to 5 seconds. message is
-             printed on failure.
-             '''
--            while timeout >= 0:
--                context = GLib.MainContext.default()
--                while context.iteration(False):
--                    pass
--                if condition():
--                    break
--                timeout -= 1
--                time.sleep(0.1)
--            else:
--                self.fail(message or 'timed out waiting for ' + str(condition))
-+            if not message:
-+                message = 'timed out waiting for ' + str(condition)
-+
-+            def timed_out_cb(message):
-+                self.fail(message)
-+                return GLib.SOURCE_REMOVE
-+
-+            timeout_source = GLib.timeout_source_new_seconds(timeout)
-+            timeout_source.set_callback(timed_out_cb, message)
-+            timeout_source.attach(self.main_context)
-+
-+            while not condition():
-+                self.main_context.iteration(True)
-+
-+            timeout_source.destroy()
- 
-         def portal_memory_warning_cb(self, monitor, level):
-             self.last_warning = level
-@@ -108,20 +125,13 @@ try:
-         def test_low_memory_warning_portal_signal(self):
-             '''LowMemoryWarning signal'''
- 
--            # Wait 2 seconds
--            timeout = 2
--            while timeout > 0:
--                time.sleep(0.5)
--                timeout -= 0.5
--                self.main_context.iteration(False)
--
-             self.dbusmock.EmitWarning(100)
-             # Wait 2 seconds or until warning
--            self.assertEventually(lambda: self.last_warning == 100, "'100' low-memory warning not received", 20)
-+            self.assertEventually(lambda: self.last_warning == 100, "'100' low-memory warning not received", 2)
- 
-             self.dbusmock.EmitWarning(255)
-             # Wait 2 seconds or until warning
--            self.assertEventually(lambda: self.last_warning == 255, "'255' low-memory warning not received", 20)
-+            self.assertEventually(lambda: self.last_warning == 255, "'255' low-memory warning not received", 2)
- 
- except ImportError as e:
-     @unittest.skip("Cannot import %s" % e.name)
-diff --git a/gio/tests/power-profile-monitor-dbus.py.in b/gio/tests/power-profile-monitor-dbus.py.in
-index 06e594f..f955afc 100755
---- a/gio/tests/power-profile-monitor-dbus.py.in
-+++ b/gio/tests/power-profile-monitor-dbus.py.in
-@@ -16,7 +16,6 @@ import sys
- import subprocess
- import fcntl
- import os
--import time
- 
- import taptestrunner
- 
-@@ -58,6 +57,7 @@ try:
-             self.power_saver_enabled = False
-             self.dbus_props = dbus.Interface(self.obj_ppd, dbus.PROPERTIES_IFACE)
-             self.power_profile_monitor = Gio.PowerProfileMonitor.dup_default()
-+            assert("GPowerProfileMonitorDBus" in str(self.power_profile_monitor))
-             self.power_profile_monitor.connect("notify::power-saver-enabled", self.power_saver_enabled_cb)
-             self.mainloop = GLib.MainLoop()
-             self.main_context = self.mainloop.get_context()
-@@ -66,22 +66,27 @@ try:
-             self.p_mock.terminate()
-             self.p_mock.wait()
- 
--        def assertEventually(self, condition, message=None, timeout=50):
-+        def assertEventually(self, condition, message=None, timeout=5):
-             '''Assert that condition function eventually returns True.
- 
--            Timeout is in deciseconds, defaulting to 50 (5 seconds). message is
-+            Timeout is in seconds, defaulting to 5 seconds. message is
-             printed on failure.
-             '''
--            while timeout >= 0:
--                context = GLib.MainContext.default()
--                while context.iteration(False):
--                    pass
--                if condition():
--                    break
--                timeout -= 1
--                time.sleep(0.1)
--            else:
--                self.fail(message or 'timed out waiting for ' + str(condition))
-+            if not message:
-+                message = 'timed out waiting for ' + str(condition)
-+
-+            def timed_out_cb(message):
-+                self.fail(message)
-+                return GLib.SOURCE_REMOVE
-+
-+            timeout_source = GLib.timeout_source_new_seconds(timeout)
-+            timeout_source.set_callback(timed_out_cb, message)
-+            timeout_source.attach(self.main_context)
-+
-+            while not condition():
-+                self.main_context.iteration(True)
-+
-+            timeout_source.destroy()
- 
-         def power_saver_enabled_cb(self, spec, data):
-             self.power_saver_enabled = self.power_profile_monitor.get_power_saver_enabled()
-@@ -92,10 +97,10 @@ try:
- 
-             self.assertEqual(self.power_profile_monitor.get_power_saver_enabled(), False)
-             self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('power-saver', variant_level=1))
--            self.assertEventually(lambda: self.power_saver_enabled == True, "power-saver didn't become enabled", 10)
-+            self.assertEventually(lambda: self.power_saver_enabled == True, "power-saver didn't become enabled", 1)
- 
-             self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('balanced', variant_level=1))
--            self.assertEventually(lambda: self.power_saver_enabled == False, "power-saver didn't become disabled", 10)
-+            self.assertEventually(lambda: self.power_saver_enabled == False, "power-saver didn't become disabled", 1)
- 
- except ImportError as e:
-     @unittest.skip("Cannot import %s" % e.name)
-diff --git a/gio/tests/power-profile-monitor-portal.py.in b/gio/tests/power-profile-monitor-portal.py.in
-index 09e9a45..ad2abf6 100755
---- a/gio/tests/power-profile-monitor-portal.py.in
-+++ b/gio/tests/power-profile-monitor-portal.py.in
-@@ -16,7 +16,6 @@ import sys
- import subprocess
- import fcntl
- import os
--import time
- 
- import taptestrunner
- 
-@@ -90,22 +89,27 @@ try:
-             self.p_mock.terminate()
-             self.p_mock.wait()
- 
--        def assertEventually(self, condition, message=None, timeout=50):
-+        def assertEventually(self, condition, message=None, timeout=5):
-             '''Assert that condition function eventually returns True.
- 
--            Timeout is in deciseconds, defaulting to 50 (5 seconds). message is
-+            Timeout is in seconds, defaulting to 5 seconds. message is
-             printed on failure.
-             '''
--            while timeout >= 0:
--                context = GLib.MainContext.default()
--                while context.iteration(False):
--                    pass
--                if condition():
--                    break
--                timeout -= 1
--                time.sleep(0.1)
--            else:
--                self.fail(message or 'timed out waiting for ' + str(condition))
-+            if not message:
-+                message = 'timed out waiting for ' + str(condition)
-+
-+            def timed_out_cb(message):
-+                self.fail(message)
-+                return GLib.SOURCE_REMOVE
-+
-+            timeout_source = GLib.timeout_source_new_seconds(timeout)
-+            timeout_source.set_callback(timed_out_cb, message)
-+            timeout_source.attach(self.main_context)
-+
-+            while not condition():
-+                self.main_context.iteration(True)
-+
-+            timeout_source.destroy()
- 
-         def power_saver_enabled_cb(self, spec, data):
-             self.power_saver_enabled = self.power_profile_monitor.get_power_saver_enabled()
-@@ -116,10 +120,10 @@ try:
- 
-             self.assertEqual(self.power_profile_monitor.get_power_saver_enabled(), False)
-             self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('power-saver', variant_level=1))
--            self.assertEventually(lambda: self.power_saver_enabled == True, "power-saver didn't become enabled", 10)
-+            self.assertEventually(lambda: self.power_saver_enabled == True, "power-saver didn't become enabled", 1)
- 
-             self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('balanced', variant_level=1))
--            self.assertEventually(lambda: self.power_saver_enabled == False, "power-saver didn't become disabled", 10)
-+            self.assertEventually(lambda: self.power_saver_enabled == False, "power-saver didn't become disabled", 1)
- 
-         def test_power_profile_power_saver_enabled_portal_default(self):
-             '''power-saver-enabled property default value'''
diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb
deleted file mode 100644
index b1669ead75e..00000000000
--- a/meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb
+++ /dev/null
@@ -1,57 +0,0 @@
-require glib.inc
-
-PE = "1"
-
-SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
-
-SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
-           file://run-ptest \
-           file://0001-Fix-DATADIRNAME-on-uclibc-Linux.patch \
-           file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \
-           file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \
-           file://0010-Do-not-hardcode-python-path-into-various-tools.patch \
-           file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \
-           file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
-           file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
-           file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
-           file://0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch \
-           file://memory-monitor.patch \
-           file://fix-regex.patch \
-           file://skip-timeout.patch \
-           "
-SRC_URI:append:class-native = " file://relocate-modules.patch \ 
-                                file://0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch \
-                              "
-
-SRC_URI[sha256sum] = "24b8e0672dca120cc32d394bccb85844e732e04fe75d18bb0573b2dbc7548f63"
-
-# Find any meson cross files in FILESPATH that are relevant for the current
-# build (using siteinfo) and add them to EXTRA_OEMESON.
-inherit siteinfo
-def find_meson_cross_files(d):
-    if bb.data.inherits_class('native', d):
-        return ""
-
-    thisdir = os.path.normpath(d.getVar("THISDIR"))
-    import collections
-    sitedata = siteinfo_data(d)
-    # filename -> found
-    files = collections.OrderedDict()
-    for path in d.getVar("FILESPATH").split(":"):
-        for element in sitedata:
-            filename = os.path.normpath(os.path.join(path, "meson.cross.d", element))
-            sanitized_path = filename.replace(thisdir, "${THISDIR}")
-            if sanitized_path == filename:
-                if os.path.exists(filename):
-                    bb.error("Cannot add '%s' to --cross-file, because it's not relative to THISDIR '%s' and sstate signature would contain this full path" % (filename, thisdir))
-                continue
-            files[filename.replace(thisdir, "${THISDIR}")] = os.path.exists(filename)
-
-    items = ["--cross-file=" + k for k,v in files.items() if v]
-    d.appendVar("EXTRA_OEMESON", " " + " ".join(items))
-    items = ["%s:%s" % (k, "True" if v else "False") for k,v in files.items()]
-    d.appendVarFlag("do_configure", "file-checksums", " " + " ".join(items))
-
-python () {
-    find_meson_cross_files(d)
-}
diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.80.0.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.80.0.bb
new file mode 100644
index 00000000000..e22810a55bc
--- /dev/null
+++ b/meta/recipes-core/glib-2.0/glib-2.0_2.80.0.bb
@@ -0,0 +1 @@
+require glib.inc
diff --git a/meta/recipes-core/glib-2.0/glib.inc b/meta/recipes-core/glib-2.0/glib.inc
index fac8875d844..692857892ff 100644
--- a/meta/recipes-core/glib-2.0/glib.inc
+++ b/meta/recipes-core/glib-2.0/glib.inc
@@ -28,21 +28,25 @@ PACKAGES += "${PN}-codegen ${PN}-utils"
 
 LEAD_SONAME = "libglib-2.0.*"
 
-inherit meson gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages gobject-introspection-data
-
-GTKDOC_MESON_OPTION = "gtk_doc"
+inherit meson gettext gi-docgen pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages gobject-introspection-data
 
 S = "${WORKDIR}/glib-${PV}"
 
 PACKAGECONFIG ??= "libmount \
+                   ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'introspection', '', d)} \
                    ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
+PACKAGECONFIG:class-native = ""
+
 PACKAGECONFIG[libmount] = "-Dlibmount=enabled,-Dlibmount=disabled,util-linux"
-PACKAGECONFIG[manpages] = "-Dman=true, -Dman=false, libxslt-native xmlto-native"
+PACKAGECONFIG[manpages] = "-Dman=true, -Dman=false, python3-docutils-native"
 PACKAGECONFIG[libelf] = "-Dlibelf=enabled,-Dlibelf=disabled,elfutils"
 PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false,"
 PACKAGECONFIG[selinux] = "-Dselinux=enabled,-Dselinux=disabled,libselinux"
+PACKAGECONFIG[introspection] = "-Dintrospection=enabled,-Dintrospection=disabled,gobject-introspection-native gobject-introspection glib-2.0-initial"
 
-EXTRA_OEMESON = "-Ddtrace=false -Dsystemtap=false"
+EXTRA_OEMESON = "-Ddtrace=false -Dsystemtap=false \
+    ${@'-Dgir_dir_prefix=${libdir}' if d.getVar('MULTILIBS') else ''} \
+"
 
 do_configure:prepend() {
 	sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in
@@ -53,14 +57,16 @@ FILES:${PN} = "${libdir}/lib*${SOLIBS} \
                ${libexecdir}/*gio-querymodules \
                ${libexecdir}/*gio-launch-desktop \
                ${datadir}/glib-2.0/dtds \
-               ${datadir}/glib-2.0/schemas"
-
+               ${datadir}/glib-2.0/schemas \
+               ${libdir}/girepository-*/*.typelib \
+"
 FILES:${PN}-dev += "${libdir}/glib-2.0/include \
                     ${libdir}/gio/modules/lib*${SOLIBSDEV} \
                     ${libdir}/gio/modules/*.la \
                     ${datadir}/glib-2.0/gettext/po/Makefile.in.in \
                     ${datadir}/glib-2.0/schemas/gschema.dtd \
                     ${datadir}/glib-2.0/valgrind/glib.supp \
+                    ${datadir}/gir-*/*.gir ${libdir}/gir-*/*.gir \
                     ${datadir}/gettext/its"
 FILES:${PN}-dbg += "${datadir}/glib-2.0/gdb ${datadir}/gdb"
 FILES:${PN}-codegen = "${datadir}/glib-2.0/codegen/*.py \
@@ -204,3 +210,57 @@ RDEPENDS:${PN}-ptest:append:libc-glibc = "\
             locale-base-pl-pl.iso-8859-2 \
             locale-base-tr-tr \
            "
+
+PE = "1"
+
+SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
+
+SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
+           file://run-ptest \
+           file://0001-Fix-DATADIRNAME-on-uclibc-Linux.patch \
+           file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \
+           file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \
+           file://0010-Do-not-hardcode-python-path-into-various-tools.patch \
+           file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \
+           file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
+           file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
+           file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
+           file://skip-timeout.patch \
+           file://0001-girepository-introspection-correctly-install-.gir-fi.patch \
+           "
+SRC_URI:append:class-native = " file://relocate-modules.patch \ 
+                                file://0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch \
+                              "
+
+SRC_URI[sha256sum] = "8228a92f92a412160b139ae68b6345bd28f24434a7b5af150ebe21ff587a561d"
+
+# Find any meson cross files in FILESPATH that are relevant for the current
+# build (using siteinfo) and add them to EXTRA_OEMESON.
+inherit siteinfo
+def find_meson_cross_files(d):
+    if bb.data.inherits_class('native', d):
+        return ""
+
+    thisdir = os.path.normpath(d.getVar("THISDIR"))
+    import collections
+    sitedata = siteinfo_data(d)
+    # filename -> found
+    files = collections.OrderedDict()
+    for path in d.getVar("FILESPATH").split(":"):
+        for element in sitedata:
+            filename = os.path.normpath(os.path.join(path, "meson.cross.d", element))
+            sanitized_path = filename.replace(thisdir, "${THISDIR}")
+            if sanitized_path == filename:
+                if os.path.exists(filename):
+                    bb.error("Cannot add '%s' to --cross-file, because it's not relative to THISDIR '%s' and sstate signature would contain this full path" % (filename, thisdir))
+                continue
+            files[filename.replace(thisdir, "${THISDIR}")] = os.path.exists(filename)
+
+    items = ["--cross-file=" + k for k,v in files.items() if v]
+    d.appendVar("EXTRA_OEMESON", " " + " ".join(items))
+    items = ["%s:%s" % (k, "True" if v else "False") for k,v in files.items()]
+    d.appendVarFlag("do_configure", "file-checksums", " " + " ".join(items))
+
+python () {
+    find_meson_cross_files(d)
+}
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
index c9e1afffd0f..510bc426d1b 100644
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
+++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
@@ -1,4 +1,4 @@
-From aeb5532f8be42d42f4e8725ca42e239b36983a4d Mon Sep 17 00:00:00 2001
+From 4e1aa0ddbc43403ff24f644b4c4912b737290c41 Mon Sep 17 00:00:00 2001
 From: Sascha Silbe <x-yo17@se-silbe.de>
 Date: Fri, 8 Jun 2018 13:55:10 +0200
 Subject: [PATCH] Relocate the repository directory for native builds
@@ -14,14 +14,13 @@ cache or sstate mirror).
 
 Upstream-Status: Inappropriate
 Signed-off-by: Sascha Silbe <x-yo17@se-silbe.de>
-
 ---
  girepository/girepository.c | 15 +++++++++++++--
  girepository/meson.build    |  2 +-
  2 files changed, 14 insertions(+), 3 deletions(-)
 
 diff --git a/girepository/girepository.c b/girepository/girepository.c
-index a0754f4..2d456f9 100644
+index 12eaf36..876382c 100644
 --- a/girepository/girepository.c
 +++ b/girepository/girepository.c
 @@ -21,6 +21,8 @@
@@ -42,7 +41,7 @@ index a0754f4..2d456f9 100644
  /**
   * SECTION:girepository
   * @short_description: GObject Introspection repository manager
-@@ -215,9 +219,16 @@ init_globals (void)
+@@ -222,9 +226,16 @@ init_globals (void)
            g_free (custom_dirs);
          }
  
@@ -62,10 +61,10 @@ index a0754f4..2d456f9 100644
        typelib_search_path = g_slist_prepend (typelib_search_path, typelib_dir);
  
 diff --git a/girepository/meson.build b/girepository/meson.build
-index 786749a..15cf2a9 100644
+index 5ced59e..a580d9b 100644
 --- a/girepository/meson.build
 +++ b/girepository/meson.build
-@@ -45,7 +45,7 @@ girepo_internals_lib = static_library('girepository-internals',
+@@ -47,7 +47,7 @@ girepo_internals_lib = static_library('girepository-internals',
    ],
    c_args: gi_hidden_visibility_cflags + custom_c_args,
    include_directories : configinc,
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.78.1.bb b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.80.1.bb
similarity index 96%
rename from meta/recipes-gnome/gobject-introspection/gobject-introspection_1.78.1.bb
rename to meta/recipes-gnome/gobject-introspection/gobject-introspection_1.80.1.bb
index 05a08a50e08..582ac248fda 100644
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.78.1.bb
+++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.80.1.bb
@@ -16,7 +16,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c434e8128a68bedd59b80b2ac1eb1c4a \
 SRC_URI = "${GNOME_MIRROR}/${BPN}/${@oe.utils.trim_version("${PV}", 2)}/${BPN}-${PV}.tar.xz \
            "
 
-SRC_URI[sha256sum] = "bd7babd99af7258e76819e45ba4a6bc399608fe762d83fde3cac033c50841bb4"
+SRC_URI[sha256sum] = "a1df7c424e15bda1ab639c00e9051b9adf5cea1a9e512f8a603b53cd199bc6d8"
 
 SRC_URI:append:class-native = " file://0001-Relocate-the-repository-directory-for-native-builds.patch"
 
@@ -26,7 +26,9 @@ GTKDOC_MESON_OPTION = "gtk_doc"
 
 MULTILIB_SCRIPTS = "${PN}:${bindir}/g-ir-annotation-tool ${PN}:${bindir}/g-ir-scanner"
 
-DEPENDS += " libffi zlib glib-2.0 python3 flex-native bison-native"
+DEPENDS += " libffi zlib python3 flex-native bison-native"
+DEPENDS:append:class-native = " glib-2.0"
+DEPENDS:append:class-target = " glib-2.0-initial"
 
 # target build needs qemu to run temporary introspection binaries created
 # on the fly by g-ir-scanner and a native version of itself to run
@@ -189,6 +191,6 @@ FILES:${PN}-dbg += "${libdir}/gobject-introspection/giscanner/.debug/"
 FILES:${PN}-staticdev += "${libdir}/gobject-introspection/giscanner/*.a"
 
 # setuptools can be removed when upstream removes all uses of distutils
-RDEPENDS:${PN} = "python3-pickle python3-xml python3-setuptools"
+RDEPENDS:${PN} = "python3-pickle python3-xml python3-setuptools glib-2.0"
 
 BBCLASSEXTEND = "native"
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [OE-core] [PATCH 2/2] glib/gobject-introspection: update 2.78.4 -> 2.80.0, 1.78.1 -> 1.80.0
  2024-04-23 11:41 ` [PATCH 2/2] glib/gobject-introspection: update 2.78.4 -> 2.80.0, 1.78.1 -> 1.80.0 Alexander Kanavin
@ 2024-04-27 17:31   ` Khem Raj
  2024-04-29 11:53     ` Alexander Kanavin
  2024-05-01  6:37   ` Richard Purdie
  1 sibling, 1 reply; 5+ messages in thread
From: Khem Raj @ 2024-04-27 17:31 UTC (permalink / raw)
  To: alex.kanavin; +Cc: openembedded-core, Alexander Kanavin

this could be the reason for breaking build for gweather4
https://errors.yoctoproject.org/Errors/Details/763702/

On Tue, Apr 23, 2024 at 4:41 AM Alexander Kanavin via
lists.openembedded.org <alex.kanavin=gmail.com@lists.openembedded.org>
wrote:
>
> From: Alexander Kanavin <alex@linutronix.de>
>
> With these versions, which need to be updated in lockstep, upstream has
> relocated glib introspection data from g-i tree to glib tree and made
> its generation a part of the overall glib build. This creates a circular
> dependency, where g-i tools are linked with glib, but glib needs the tools
> to build its g-i data. (I don't know why the two source trees
> couldn't be simply merged into one, or g-i data for glib couldn't be generated
> inside g-i build against sysroot glib).
>
> Upstream is suggesting building glib twice, first without building g-i data,
> then building g-i and linking it with that version, then building
> the final glib, and that's what is being done here (via the new
> glib-initial recipe, which is sysroot-only, and is not pulled in
> via indirect dependencies either).
>
> Other glib changes:
> 0001-Do-not-write-bindir-into-pkg-config-files.patch restores
> writing bindir variable into glib.pc file (meson only writes
> it out if other variables depend on it, and this custom patch
> removes that dependency).
>
> 0001-girepository-introspection-correctly-install-.gir-fi.patch
> ensures correct installation of .gir into something else
> than $datadir (useful in multilib).
>
> Merge previous glib .bb into .inc, so that glib and glib-initial
> recipes could be cleanly separated with no duplication.
>
> Convert from gtk-doc to gi-docgen, and manpages from xmlto to
> docutils.
>
> Signed-off-by: Alexander Kanavin <alex@linutronix.de>
> ---
>  meta/conf/distro/include/maintainers.inc      |   1 +
>  ...t-write-bindir-into-pkg-config-files.patch |  31 +-
>  ...0001-Fix-DATADIRNAME-on-uclibc-Linux.patch |   2 +-
>  ...-gio-querymodules-as-libexec_PROGRAM.patch |   6 +-
>  ...ng-about-deprecated-paths-in-schemas.patch |   2 +-
>  ...-correctly-when-building-with-mingw3.patch |  20 +-
>  ...ces.c-comment-out-a-build-host-only-.patch |   4 +-
>  ...rospection-correctly-install-.gir-fi.patch |  88 +++++
>  ...on-Run-atomics-test-on-clang-as-well.patch |   6 +-
>  ...ot-enable-pidfd-features-on-native-g.patch |   6 +-
>  ...dcode-python-path-into-various-tools.patch |   4 +-
>  .../{glib-2.0 => files}/meson.cross.d/common  |   0
>  .../meson.cross.d/common-glibc                |   0
>  .../meson.cross.d/common-linux                |   0
>  .../meson.cross.d/common-mingw                |   0
>  .../meson.cross.d/common-musl                 |   0
>  .../relocate-modules.patch                    |   8 +-
>  .../glib-2.0/{glib-2.0 => files}/run-ptest    |   0
>  .../{glib-2.0 => files}/skip-timeout.patch    |   7 +-
>  .../glib-2.0/glib-2.0-initial_2.80.0.bb       |   5 +
>  ...deprecated-distutils-module-to-the-p.patch |  34 --
>  .../glib-2.0/glib-2.0/fix-regex.patch         |  54 ---
>  .../glib-2.0/glib-2.0/memory-monitor.patch    | 361 ------------------
>  meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb |  57 ---
>  meta/recipes-core/glib-2.0/glib-2.0_2.80.0.bb |   1 +
>  meta/recipes-core/glib-2.0/glib.inc           |  74 +++-
>  ...pository-directory-for-native-builds.patch |  11 +-
>  ...8.1.bb => gobject-introspection_1.80.1.bb} |   8 +-
>  28 files changed, 221 insertions(+), 569 deletions(-)
>  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-Do-not-write-bindir-into-pkg-config-files.patch (68%)
>  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch (92%)
>  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch (84%)
>  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch (95%)
>  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-Set-host_machine-correctly-when-building-with-mingw3.patch (80%)
>  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch (92%)
>  create mode 100644 meta/recipes-core/glib-2.0/files/0001-girepository-introspection-correctly-install-.gir-fi.patch
>  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-meson-Run-atomics-test-on-clang-as-well.patch (88%)
>  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch (84%)
>  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0010-Do-not-hardcode-python-path-into-various-tools.patch (93%)
>  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/meson.cross.d/common (100%)
>  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/meson.cross.d/common-glibc (100%)
>  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/meson.cross.d/common-linux (100%)
>  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/meson.cross.d/common-mingw (100%)
>  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/meson.cross.d/common-musl (100%)
>  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/relocate-modules.patch (86%)
>  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/run-ptest (100%)
>  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/skip-timeout.patch (90%)
>  create mode 100644 meta/recipes-core/glib-2.0/glib-2.0-initial_2.80.0.bb
>  delete mode 100644 meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch
>  delete mode 100644 meta/recipes-core/glib-2.0/glib-2.0/fix-regex.patch
>  delete mode 100644 meta/recipes-core/glib-2.0/glib-2.0/memory-monitor.patch
>  delete mode 100644 meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb
>  create mode 100644 meta/recipes-core/glib-2.0/glib-2.0_2.80.0.bb
>  rename meta/recipes-gnome/gobject-introspection/{gobject-introspection_1.78.1.bb => gobject-introspection_1.80.1.bb} (96%)
>
> diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
> index 20eb3a04468..fbf2d4cc816 100644
> --- a/meta/conf/distro/include/maintainers.inc
> +++ b/meta/conf/distro/include/maintainers.inc
> @@ -205,6 +205,7 @@ RECIPE_MAINTAINER:pn-gi-docgen = "Alexander Kanavin <alex.kanavin@gmail.com>"
>  RECIPE_MAINTAINER:pn-git = "Robert Yang <liezhi.yang@windriver.com>"
>  RECIPE_MAINTAINER:pn-glew = "Anuj Mittal <anuj.mittal@intel.com>"
>  RECIPE_MAINTAINER:pn-glib-2.0 = "Anuj Mittal <anuj.mittal@intel.com>"
> +RECIPE_MAINTAINER:pn-glib-2.0-initial = "Anuj Mittal <anuj.mittal@intel.com>"
>  RECIPE_MAINTAINER:pn-glib-networking = "Anuj Mittal <anuj.mittal@intel.com>"
>  RECIPE_MAINTAINER:pn-glibc = "Khem Raj <raj.khem@gmail.com>"
>  RECIPE_MAINTAINER:pn-glibc-locale = "Khem Raj <raj.khem@gmail.com>"
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch b/meta/recipes-core/glib-2.0/files/0001-Do-not-write-bindir-into-pkg-config-files.patch
> similarity index 68%
> rename from meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch
> rename to meta/recipes-core/glib-2.0/files/0001-Do-not-write-bindir-into-pkg-config-files.patch
> index 8e6598fbef8..f6eba04fd4c 100644
> --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch
> +++ b/meta/recipes-core/glib-2.0/files/0001-Do-not-write-bindir-into-pkg-config-files.patch
> @@ -1,26 +1,30 @@
> -From e7077aa23bfcd31a8e72e39dc93ce4f854678376 Mon Sep 17 00:00:00 2001
> +From 0561dcbf0918631d8106c3f6c2d8e92a5ec4b887 Mon Sep 17 00:00:00 2001
>  From: Alexander Kanavin <alex.kanavin@gmail.com>
>  Date: Fri, 15 Feb 2019 11:17:27 +0100
> -Subject: [PATCH] Do not write $bindir into pkg-config files
> +Subject: [PATCH] Do not prefix executables with $bindir in pkg-config files
>
> -This would otherwise break when using the files to build other target
> +This would otherwise break when using the executables to build other target
>  components (we need to rely on PATH containing the paths to utilities,
>  rather than use target paths).
>
>  Upstream-Status: Inappropriate [upstream wants the paths in .pc files]
>  Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
>  ---
> - gio/meson.build  | 16 ++++++++--------
> - glib/meson.build |  6 +++---
> - 2 files changed, 11 insertions(+), 11 deletions(-)
> + gio/meson.build  | 17 +++++++++--------
> + glib/meson.build |  7 ++++---
> + 2 files changed, 13 insertions(+), 11 deletions(-)
>
>  diff --git a/gio/meson.build b/gio/meson.build
> -index 5f91586..1a95f4f 100644
> +index 77cba7b..25d709e 100644
>  --- a/gio/meson.build
>  +++ b/gio/meson.build
> -@@ -884,14 +884,14 @@ pkg.generate(libgio,
> +@@ -883,17 +883,18 @@ libgio_dep = declare_dependency(link_with : libgio,
> + pkg.generate(libgio,
> +   requires : ['glib-2.0', 'gobject-2.0'],
> +   variables : [
> ++    'bindir=' + '${prefix}' / get_option('bindir'),
> +     'schemasdir=' + '${datadir}' / schemas_subdir,
>       'dtdsdir=' + '${datadir}' / dtds_subdir,
> -     'bindir=' + '${prefix}' / get_option('bindir'),
>       'giomoduledir=' + pkgconfig_giomodulesdir,
>  -    'gio=' + '${bindir}' / 'gio',
>  -    'gio_querymodules=' + pkgconfig_multiarch_bindir / 'gio-querymodules',
> @@ -42,16 +46,17 @@ index 5f91586..1a95f4f 100644
>     version : glib_version,
>     install_dir : glib_pkgconfigreldir,
>  diff --git a/glib/meson.build b/glib/meson.build
> -index c26a35e..1d8ca6b 100644
> +index d2efeba..5f5841d 100644
>  --- a/glib/meson.build
>  +++ b/glib/meson.build
> -@@ -447,9 +447,9 @@ pkg.generate(libglib,
> +@@ -447,9 +447,10 @@ pkg.generate(libglib,
> +   subdirs : ['glib-2.0'],
> +   extra_cflags : ['-I${libdir}/glib-2.0/include'] + win32_cflags,
>     variables : [
> -     'bindir=' + '${prefix}' / get_option('bindir'),
> -     'datadir=' + '${prefix}' / get_option('datadir'),
>  -    'glib_genmarshal=' + '${bindir}' / 'glib-genmarshal',
>  -    'gobject_query=' + '${bindir}' / 'gobject-query',
>  -    'glib_mkenums=' + '${bindir}' / 'glib-mkenums',
> ++    'bindir=' + '${prefix}' / get_option('bindir'),
>  +    'glib_genmarshal=glib-genmarshal',
>  +    'gobject_query=gobject-query',
>  +    'glib_mkenums=glib-mkenums',
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch b/meta/recipes-core/glib-2.0/files/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
> similarity index 92%
> rename from meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
> rename to meta/recipes-core/glib-2.0/files/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
> index eb9dfdbcf99..129bc7f8aee 100644
> --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
> +++ b/meta/recipes-core/glib-2.0/files/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
> @@ -1,4 +1,4 @@
> -From 9a5d4bf65b658d744d610ee27ecd2ae65b14b158 Mon Sep 17 00:00:00 2001
> +From ccb25e8c0bab54eac8ba0e9d7083ce81461ab72a Mon Sep 17 00:00:00 2001
>  From: Khem Raj <raj.khem@gmail.com>
>  Date: Sat, 15 Mar 2014 22:42:29 -0700
>  Subject: [PATCH] Fix DATADIRNAME on uclibc/Linux
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch b/meta/recipes-core/glib-2.0/files/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
> similarity index 84%
> rename from meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
> rename to meta/recipes-core/glib-2.0/files/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
> index ad69f7ec655..3e12f8abbeb 100644
> --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
> +++ b/meta/recipes-core/glib-2.0/files/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
> @@ -1,4 +1,4 @@
> -From 4933aef791857a5aac650b60af800778658b875b Mon Sep 17 00:00:00 2001
> +From caab40411d8520dae77a4b7933ebaffbb00559fe Mon Sep 17 00:00:00 2001
>  From: Jussi Kukkonen <jussi.kukkonen@intel.com>
>  Date: Tue, 22 Mar 2016 15:14:58 +0200
>  Subject: [PATCH] Install gio-querymodules as libexec_PROGRAM
> @@ -13,10 +13,10 @@ Upstream-Status: Inappropriate [OE specific]
>   1 file changed, 1 insertion(+)
>
>  diff --git a/gio/meson.build b/gio/meson.build
> -index f9fdf6e..5f91586 100644
> +index 59c2b0f..77cba7b 100644
>  --- a/gio/meson.build
>  +++ b/gio/meson.build
> -@@ -1005,6 +1005,7 @@ gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodu
> +@@ -1007,6 +1007,7 @@ gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodu
>     c_args : gio_c_args,
>     # intl.lib is not compatible with SAFESEH
>     link_args : noseh_link_args,
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch b/meta/recipes-core/glib-2.0/files/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
> similarity index 95%
> rename from meta/recipes-core/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
> rename to meta/recipes-core/glib-2.0/files/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
> index 0e3a62af6a6..9b0b83afa44 100644
> --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
> +++ b/meta/recipes-core/glib-2.0/files/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
> @@ -1,4 +1,4 @@
> -From 8ae2e9c2a04e089306693a021149dc6b7d1bd679 Mon Sep 17 00:00:00 2001
> +From 65c036b1ede453e89893076f4ece21c946505096 Mon Sep 17 00:00:00 2001
>  From: Alexander Kanavin <alex.kanavin@gmail.com>
>  Date: Fri, 12 Jun 2015 17:08:46 +0300
>  Subject: [PATCH] Remove the warning about deprecated paths in schemas
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch b/meta/recipes-core/glib-2.0/files/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
> similarity index 80%
> rename from meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
> rename to meta/recipes-core/glib-2.0/files/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
> index 32b4cea409c..a2f9dd9672f 100644
> --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
> +++ b/meta/recipes-core/glib-2.0/files/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
> @@ -1,4 +1,4 @@
> -From c0733f7a91dfe13152abc60c5a3064456b3e9d63 Mon Sep 17 00:00:00 2001
> +From 01810df82fae752428d3756c85edb2eb7bbf3c15 Mon Sep 17 00:00:00 2001
>  From: Alexander Kanavin <alex.kanavin@gmail.com>
>  Date: Wed, 13 Feb 2019 15:32:05 +0100
>  Subject: [PATCH] Set host_machine correctly when building with mingw32
> @@ -12,7 +12,7 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
>   3 files changed, 8 insertions(+), 5 deletions(-)
>
>  diff --git a/gio/tests/meson.build b/gio/tests/meson.build
> -index 4ef3343..e498e7e 100644
> +index 232ecca..563298b 100644
>  --- a/gio/tests/meson.build
>  +++ b/gio/tests/meson.build
>  @@ -29,7 +29,7 @@ endif
> @@ -24,16 +24,16 @@ index 4ef3343..e498e7e 100644
>     common_gio_tests_deps += [iphlpapi_dep, winsock2, cc.find_library ('secur32')]
>   endif
>
> -@@ -230,7 +230,7 @@ if have_dbus_daemon
> +@@ -244,7 +244,7 @@ if have_dbus_daemon
>   endif
>
>   #  Test programs buildable on UNIX only
>  -if host_machine.system() != 'windows'
>  +if host_system != 'windows'
>     gio_tests += {
> -     'file' : {},
> -     'gdbus-peer-object-manager' : {},
> -@@ -562,7 +562,7 @@ if host_machine.system() != 'windows'
> +     'file' : {
> +       # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/3148
> +@@ -593,7 +593,7 @@ if host_machine.system() != 'windows'
>   endif # unix
>
>   #  Test programs buildable on Windows only
> @@ -42,7 +42,7 @@ index 4ef3343..e498e7e 100644
>     gio_tests += {'win32-streams' : {}}
>   endif
>
> -@@ -632,7 +632,7 @@ if cc.get_id() != 'msvc' and cc.get_id() != 'clang-cl'
> +@@ -663,7 +663,7 @@ if cc.get_id() != 'msvc' and cc.get_id() != 'clang-cl'
>     }
>   endif
>
> @@ -52,10 +52,10 @@ index 4ef3343..e498e7e 100644
>       'gdbus-example-unix-fd-client' : {
>         'install' : false,
>  diff --git a/glib/tests/meson.build b/glib/tests/meson.build
> -index d80c86e..5329cda 100644
> +index f6efc59..83eb5a5 100644
>  --- a/glib/tests/meson.build
>  +++ b/glib/tests/meson.build
> -@@ -216,7 +216,7 @@ if glib_conf.has('HAVE_EVENTFD')
> +@@ -226,7 +226,7 @@ if glib_conf.has('HAVE_EVENTFD')
>     }
>   endif
>
> @@ -65,7 +65,7 @@ index d80c86e..5329cda 100644
>       glib_tests += {
>         'gpoll' : {
>  diff --git a/meson.build b/meson.build
> -index 813c9b7..6ee775e 100644
> +index 7534542..2560686 100644
>  --- a/meson.build
>  +++ b/meson.build
>  @@ -54,6 +54,9 @@ else
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch b/meta/recipes-core/glib-2.0/files/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
> similarity index 92%
> rename from meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
> rename to meta/recipes-core/glib-2.0/files/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
> index aee29860332..bb84f3969e4 100644
> --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
> +++ b/meta/recipes-core/glib-2.0/files/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
> @@ -1,4 +1,4 @@
> -From 878e51f82100c698236fda0e069e14ea9249350c Mon Sep 17 00:00:00 2001
> +From e8b4f53b567339aad90b585673d55a5c6176535a Mon Sep 17 00:00:00 2001
>  From: Alexander Kanavin <alex.kanavin@gmail.com>
>  Date: Wed, 8 Jan 2020 18:22:46 +0100
>  Subject: [PATCH] gio/tests/resources.c: comment out a build host-only test
> @@ -13,7 +13,7 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
>  diff --git a/gio/tests/resources.c b/gio/tests/resources.c
> -index f567914..b21b616 100644
> +index f7dc039..f708876 100644
>  --- a/gio/tests/resources.c
>  +++ b/gio/tests/resources.c
>  @@ -1068,7 +1068,7 @@ main (int   argc,
> diff --git a/meta/recipes-core/glib-2.0/files/0001-girepository-introspection-correctly-install-.gir-fi.patch b/meta/recipes-core/glib-2.0/files/0001-girepository-introspection-correctly-install-.gir-fi.patch
> new file mode 100644
> index 00000000000..76e5f587480
> --- /dev/null
> +++ b/meta/recipes-core/glib-2.0/files/0001-girepository-introspection-correctly-install-.gir-fi.patch
> @@ -0,0 +1,88 @@
> +From 4e6be5d15e5d2f8e494d22a3d49b623064f9c1a5 Mon Sep 17 00:00:00 2001
> +From: Alexander Kanavin <alex@linutronix.de>
> +Date: Tue, 23 Apr 2024 11:24:34 +0200
> +Subject: [PATCH] girepository/introspection: correctly install .gir files into
> + custom locations provided via meson option
> +
> +Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4020]
> +Signed-off-by: Alexander Kanavin <alex@linutronix.de>
> +---
> + girepository/introspection/meson.build | 9 +++++++++
> + 1 file changed, 9 insertions(+)
> +
> +diff --git a/girepository/introspection/meson.build b/girepository/introspection/meson.build
> +index 9405686..862ca61 100644
> +--- a/girepository/introspection/meson.build
> ++++ b/girepository/introspection/meson.build
> +@@ -49,6 +49,7 @@ glib_gir = gnome.generate_gir(libglib,
> +   export_packages: 'glib-2.0',
> +   header: 'glib.h',
> +   install: true,
> ++  install_dir_gir: glib_girdir,
> +   dependencies: [
> +     libgobject_dep,
> +   ],
> +@@ -76,6 +77,7 @@ if host_system == 'windows'
> +     header: 'glib.h',
> +     includes: [ glib_gir[0] ],
> +     install: true,
> ++    install_dir_gir: glib_girdir,
> +     dependencies: [
> +       libgobject_dep,
> +     ],
> +@@ -104,6 +106,7 @@ else
> +     header: 'glib.h',
> +     includes: [ glib_gir[0] ],
> +     install: true,
> ++    install_dir_gir: glib_girdir,
> +     dependencies: [
> +       libgobject_dep,
> +     ],
> +@@ -137,6 +140,7 @@ gobject_gir = gnome.generate_gir(libgobject,
> +   header: 'glib-object.h',
> +   includes: [ glib_gir[0] ],
> +   install: true,
> ++  install_dir_gir: glib_girdir,
> +   env: gi_gen_env_variables,
> +   extra_args: gir_args + [
> +       '-DGOBJECT_COMPILATION',
> +@@ -162,6 +166,7 @@ gmodule_gir = gnome.generate_gir(libgmodule,
> +   header: 'gmodule.h',
> +   includes: [ glib_gir[0] ],
> +   install: true,
> ++  install_dir_gir: glib_girdir,
> +   dependencies: [
> +     libglib_dep,
> +   ],
> +@@ -224,6 +229,7 @@ gio_gir = gnome.generate_gir(libgio,
> +   header: 'gio/gio.h',
> +   includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0] ],
> +   install: true,
> ++  install_dir_gir: glib_girdir,
> +   dependencies: [
> +     libglib_dep,
> +     libgobject_dep,
> +@@ -249,6 +255,7 @@ if host_system == 'windows'
> +     header: 'gio/gio.h',
> +     includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0], gio_gir[0] ],
> +     install: true,
> ++    install_dir_gir: glib_girdir,
> +     dependencies: [
> +       libglib_dep,
> +       libgobject_dep,
> +@@ -277,6 +284,7 @@ else
> +     header: 'gio/gio.h',
> +     includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0], gio_gir[0] ],
> +     install: true,
> ++    install_dir_gir: glib_girdir,
> +     dependencies: [
> +       libglib_dep,
> +       libgobject_dep,
> +@@ -314,6 +322,7 @@ girepository_gir = gnome.generate_gir(libgirepository,
> +   header: 'girepository/girepository.h',
> +   includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0], gio_gir[0] ],
> +   install: true,
> ++  install_dir_gir: glib_girdir,
> +   dependencies: [ libglib_dep, libgobject_dep, libgmodule_dep, libgio_dep ],
> +   extra_args: gir_args + libgirepository_gir_args,
> + )
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch b/meta/recipes-core/glib-2.0/files/0001-meson-Run-atomics-test-on-clang-as-well.patch
> similarity index 88%
> rename from meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch
> rename to meta/recipes-core/glib-2.0/files/0001-meson-Run-atomics-test-on-clang-as-well.patch
> index 0b102691141..2f805299874 100644
> --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch
> +++ b/meta/recipes-core/glib-2.0/files/0001-meson-Run-atomics-test-on-clang-as-well.patch
> @@ -1,4 +1,4 @@
> -From b4b523160ef550a53705fcc45ac6e10d086ce491 Mon Sep 17 00:00:00 2001
> +From 3dc2e741e18ccb740e98eb4e808ff83153b70e83 Mon Sep 17 00:00:00 2001
>  From: Khem Raj <raj.khem@gmail.com>
>  Date: Sat, 12 Oct 2019 17:46:26 -0700
>  Subject: [PATCH] meson: Run atomics test on clang as well
> @@ -14,10 +14,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
>  diff --git a/meson.build b/meson.build
> -index 6ee775e..8bc5fa7 100644
> +index 2560686..5c46d0b 100644
>  --- a/meson.build
>  +++ b/meson.build
> -@@ -1938,7 +1938,7 @@ atomicdefine = '''
> +@@ -2024,7 +2024,7 @@ atomicdefine = '''
>   # We know that we can always use real ("lock free") atomic operations with MSVC
>   if cc.get_id() == 'msvc' or cc.get_id() == 'clang-cl' or cc.links(atomictest, name : 'atomic ops')
>     have_atomic_lock_free = true
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch b/meta/recipes-core/glib-2.0/files/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
> similarity index 84%
> rename from meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
> rename to meta/recipes-core/glib-2.0/files/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
> index 14dcb278e05..82955de6715 100644
> --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
> +++ b/meta/recipes-core/glib-2.0/files/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
> @@ -1,4 +1,4 @@
> -From 294f3e6e9a0a9f4733e85ed6810d1b743055370b Mon Sep 17 00:00:00 2001
> +From 59525eedfbbfe4a16fdd0b340bc3f2479431c7d5 Mon Sep 17 00:00:00 2001
>  From: Alexander Kanavin <alex@linutronix.de>
>  Date: Sat, 16 Sep 2023 22:28:27 +0200
>  Subject: [PATCH] meson.build: do not enable pidfd features on native glib
> @@ -14,10 +14,10 @@ Signed-off-by: Alexander Kanavin <alex@linutronix.de>
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
>  diff --git a/meson.build b/meson.build
> -index 8bc5fa7..df1fa60 100644
> +index 5c46d0b..222c1a1 100644
>  --- a/meson.build
>  +++ b/meson.build
> -@@ -981,7 +981,8 @@ if cc.links('''#include <sys/syscall.h>
> +@@ -1022,7 +1022,8 @@ if cc.links('''#include <sys/syscall.h>
>                    waitid (P_PIDFD, 0, &child_info, WEXITED | WNOHANG);
>                    return 0;
>                  }''', name : 'pidfd_open(2) system call')
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch b/meta/recipes-core/glib-2.0/files/0010-Do-not-hardcode-python-path-into-various-tools.patch
> similarity index 93%
> rename from meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch
> rename to meta/recipes-core/glib-2.0/files/0010-Do-not-hardcode-python-path-into-various-tools.patch
> index 6dff5179c71..a51c186b004 100644
> --- a/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch
> +++ b/meta/recipes-core/glib-2.0/files/0010-Do-not-hardcode-python-path-into-various-tools.patch
> @@ -1,4 +1,4 @@
> -From 50636758c73e5e61212a8f801c6c602b8aab5ba7 Mon Sep 17 00:00:00 2001
> +From e6784ba43af83e22556921786c8f15e4cd246298 Mon Sep 17 00:00:00 2001
>  From: Alexander Kanavin <alex.kanavin@gmail.com>
>  Date: Tue, 3 Oct 2017 10:45:55 +0300
>  Subject: [PATCH] Do not hardcode python path into various tools
> @@ -32,7 +32,7 @@ index aa5af43..56e8e2e 100755
>   # pylint: disable=too-many-lines, missing-docstring, invalid-name
>
>  diff --git a/gobject/glib-mkenums.in b/gobject/glib-mkenums.in
> -index 353e53a..8ed6c39 100755
> +index e10b910..4b619f8 100755
>  --- a/gobject/glib-mkenums.in
>  +++ b/gobject/glib-mkenums.in
>  @@ -1,4 +1,4 @@
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common b/meta/recipes-core/glib-2.0/files/meson.cross.d/common
> similarity index 100%
> rename from meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common
> rename to meta/recipes-core/glib-2.0/files/meson.cross.d/common
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-glibc b/meta/recipes-core/glib-2.0/files/meson.cross.d/common-glibc
> similarity index 100%
> rename from meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-glibc
> rename to meta/recipes-core/glib-2.0/files/meson.cross.d/common-glibc
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux b/meta/recipes-core/glib-2.0/files/meson.cross.d/common-linux
> similarity index 100%
> rename from meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux
> rename to meta/recipes-core/glib-2.0/files/meson.cross.d/common-linux
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-mingw b/meta/recipes-core/glib-2.0/files/meson.cross.d/common-mingw
> similarity index 100%
> rename from meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-mingw
> rename to meta/recipes-core/glib-2.0/files/meson.cross.d/common-mingw
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-musl b/meta/recipes-core/glib-2.0/files/meson.cross.d/common-musl
> similarity index 100%
> rename from meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-musl
> rename to meta/recipes-core/glib-2.0/files/meson.cross.d/common-musl
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch b/meta/recipes-core/glib-2.0/files/relocate-modules.patch
> similarity index 86%
> rename from meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
> rename to meta/recipes-core/glib-2.0/files/relocate-modules.patch
> index 3e79bbf6796..d6e9019f396 100644
> --- a/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
> +++ b/meta/recipes-core/glib-2.0/files/relocate-modules.patch
> @@ -1,4 +1,4 @@
> -From f40e89b3852df37959606ee13b1a14ade81fa886 Mon Sep 17 00:00:00 2001
> +From 47ea2576a13d5bc86692b4ba8cb4a8f2fd38c6ca Mon Sep 17 00:00:00 2001
>  From: Ross Burton <ross.burton@intel.com>
>  Date: Fri, 11 Mar 2016 15:35:55 +0000
>  Subject: [PATCH] glib-2.0: relocate the GIO module directory for native builds
> @@ -18,10 +18,10 @@ Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
>   1 file changed, 7 deletions(-)
>
>  diff --git a/gio/giomodule.c b/gio/giomodule.c
> -index 17fabe6..8021208 100644
> +index 1e14955..3c09bb5 100644
>  --- a/gio/giomodule.c
>  +++ b/gio/giomodule.c
> -@@ -1271,11 +1271,6 @@ get_gio_module_dir (void)
> +@@ -1259,11 +1259,6 @@ get_gio_module_dir (void)
>         g_free (install_dir);
>   #else
>         module_dir = g_strdup (GIO_MODULE_DIR);
> @@ -33,7 +33,7 @@ index 17fabe6..8021208 100644
>   #include <dlfcn.h>
>         {
>           g_autofree gchar *path = NULL;
> -@@ -1294,8 +1289,6 @@ get_gio_module_dir (void)
> +@@ -1282,8 +1277,6 @@ get_gio_module_dir (void)
>                 }
>             }
>         }
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/run-ptest b/meta/recipes-core/glib-2.0/files/run-ptest
> similarity index 100%
> rename from meta/recipes-core/glib-2.0/glib-2.0/run-ptest
> rename to meta/recipes-core/glib-2.0/files/run-ptest
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/skip-timeout.patch b/meta/recipes-core/glib-2.0/files/skip-timeout.patch
> similarity index 90%
> rename from meta/recipes-core/glib-2.0/glib-2.0/skip-timeout.patch
> rename to meta/recipes-core/glib-2.0/files/skip-timeout.patch
> index cd5ac287c3f..b1c62cc39c8 100644
> --- a/meta/recipes-core/glib-2.0/glib-2.0/skip-timeout.patch
> +++ b/meta/recipes-core/glib-2.0/files/skip-timeout.patch
> @@ -1,4 +1,4 @@
> -From bb11d1a4ae77d93ec0743e54077cf0f990243fa6 Mon Sep 17 00:00:00 2001
> +From 682d8a616ca111c0e45c8a9cb02e992e63c69586 Mon Sep 17 00:00:00 2001
>  From: Ross Burton <ross.burton@arm.com>
>  Date: Thu, 28 Mar 2024 16:27:09 +0000
>  Subject: [PATCH] Skip /timeout/rounding test
> @@ -16,7 +16,7 @@ Signed-off-by: Ross Burton <ross.burton@arm.com>
>   1 file changed, 1 deletion(-)
>
>  diff --git a/glib/tests/timeout.c b/glib/tests/timeout.c
> -index 1ae3f3a34..85a715b0f 100644
> +index 1ae3f3a..85a715b 100644
>  --- a/glib/tests/timeout.c
>  +++ b/glib/tests/timeout.c
>  @@ -214,7 +214,6 @@ main (int argc, char *argv[])
> @@ -27,6 +27,3 @@ index 1ae3f3a34..85a715b0f 100644
>
>     return g_test_run ();
>   }
> ---
> -2.34.1
> -
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0-initial_2.80.0.bb b/meta/recipes-core/glib-2.0/glib-2.0-initial_2.80.0.bb
> new file mode 100644
> index 00000000000..7da28382650
> --- /dev/null
> +++ b/meta/recipes-core/glib-2.0/glib-2.0-initial_2.80.0.bb
> @@ -0,0 +1,5 @@
> +require glib.inc
> +PACKAGES = ""
> +PACKAGECONFIG = ""
> +
> +
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch
> deleted file mode 100644
> index b11c283e6d7..00000000000
> --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch
> +++ /dev/null
> @@ -1,34 +0,0 @@
> -From a8eb944a10353403241608a084787f6efcbb2eb7 Mon Sep 17 00:00:00 2001
> -From: Jordan Williams <jordan@jwillikers.com>
> -Date: Fri, 1 Dec 2023 09:53:50 -0600
> -Subject: [PATCH] Switch from the deprecated distutils module to the packaging
> - module
> -
> -The distutils module was removed in Python 3.12.
> -
> -Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/6ef967a0f930ce37a8c9b5aff969693b34714291]
> -
> -Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
> ----
> - gio/gdbus-2.0/codegen/utils.py | 4 ++--
> - 1 file changed, 2 insertions(+), 2 deletions(-)
> -
> -diff --git a/gio/gdbus-2.0/codegen/utils.py b/gio/gdbus-2.0/codegen/utils.py
> -index 0204610..08f1ba9 100644
> ---- a/gio/gdbus-2.0/codegen/utils.py
> -+++ b/gio/gdbus-2.0/codegen/utils.py
> -@@ -19,7 +19,7 @@
> - #
> - # Author: David Zeuthen <davidz@redhat.com>
> -
> --import distutils.version
> -+import packaging.version
> - import os
> - import sys
> -
> -@@ -166,4 +166,4 @@ def version_cmp_key(key):
> -         v = str(key[0])
> -     else:
> -         v = "0"
> --    return (distutils.version.LooseVersion(v), key[1])
> -+    return (packaging.version.Version(v), key[1])
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/fix-regex.patch b/meta/recipes-core/glib-2.0/glib-2.0/fix-regex.patch
> deleted file mode 100644
> index bdfbd558999..00000000000
> --- a/meta/recipes-core/glib-2.0/glib-2.0/fix-regex.patch
> +++ /dev/null
> @@ -1,54 +0,0 @@
> -From cce3ae98a2c1966719daabff5a4ec6cf94a846f6 Mon Sep 17 00:00:00 2001
> -From: Philip Withnall <pwithnall@gnome.org>
> -Date: Mon, 26 Feb 2024 16:55:44 +0000
> -Subject: [PATCH] tests: Remove variable-length lookbehind tests for GRegex
> -MIME-Version: 1.0
> -Content-Type: text/plain; charset=UTF-8
> -Content-Transfer-Encoding: 8bit
> -
> -PCRE2 10.43 has now introduced support for variable-length lookbehind,
> -so these tests now fail if GLib is built against PCRE2 10.43 or higher.
> -
> -See
> -https://github.com/PCRE2Project/pcre2/blob/e8db6fa7137f4c6f66cb87e0a3c9467252ec1ef7/ChangeLog#L94.
> -
> -Rather than making the tests conditional on the version of PCRE2 in use,
> -just remove them. They are mostly testing the PCRE2 code rather than
> -any code in GLib, so don’t have much value.
> -
> -This should fix CI runs on msys2-mingw32, which updated to PCRE2 10.43 2
> -days ago.
> -
> -Signed-off-by: Philip Withnall <pwithnall@gnome.org>
> -
> -Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/cce3ae98a2c1966719daabff5a4ec6cf94a846f6]
> -Signed-off-by: Alexander Kanavin <alex@linutronix.de>
> ----
> - glib/tests/regex.c | 10 ----------
> - 1 file changed, 10 deletions(-)
> -
> -diff --git a/glib/tests/regex.c b/glib/tests/regex.c
> -index 1082526292..d7a698ec67 100644
> ---- a/glib/tests/regex.c
> -+++ b/glib/tests/regex.c
> -@@ -1885,16 +1885,6 @@ test_lookbehind (void)
> -   g_match_info_free (match);
> -   g_regex_unref (regex);
> -
> --  regex = g_regex_new ("(?<!dogs?|cats?) x", G_REGEX_OPTIMIZE, G_REGEX_MATCH_DEFAULT, &error);
> --  g_assert (regex == NULL);
> --  g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND);
> --  g_clear_error (&error);
> --
> --  regex = g_regex_new ("(?<=ab(c|de)) foo", G_REGEX_OPTIMIZE, G_REGEX_MATCH_DEFAULT, &error);
> --  g_assert (regex == NULL);
> --  g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND);
> --  g_clear_error (&error);
> --
> -   regex = g_regex_new ("(?<=abc|abde)foo", G_REGEX_OPTIMIZE, G_REGEX_MATCH_DEFAULT, &error);
> -   g_assert (regex);
> -   g_assert_no_error (error);
> ---
> -GitLab
> -
> -
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0/memory-monitor.patch b/meta/recipes-core/glib-2.0/glib-2.0/memory-monitor.patch
> deleted file mode 100644
> index 4f38509da6f..00000000000
> --- a/meta/recipes-core/glib-2.0/glib-2.0/memory-monitor.patch
> +++ /dev/null
> @@ -1,361 +0,0 @@
> -From ce840b6b111e1e109e511f6833d6aa419e2b723a Mon Sep 17 00:00:00 2001
> -From: Philip Withnall <philip@tecnocode.co.uk>
> -Date: Tue, 23 Jan 2024 11:16:52 +0000
> -Subject: [PATCH] Merge branch '2887-memory-monitor-tests' into 'main'
> -
> -tests: Fix race condition in memory-monitor-dbus.test
> -
> -Closes #2887
> -
> -See merge request GNOME/glib!3844
> -
> -Hopefully these commits fix the occasional failures we've been seeing:
> -https://bugzilla.yoctoproject.org/show_bug.cgi?id=15362
> -
> -Upstream-Status: Backport
> -Signed-off-by: Ross Burton <ross.burton@arm.com>
> ----
> - gio/tests/memory-monitor-dbus.py.in          | 64 +++++++++++++-------
> - gio/tests/memory-monitor-portal.py.in        | 54 ++++++++++-------
> - gio/tests/power-profile-monitor-dbus.py.in   | 35 ++++++-----
> - gio/tests/power-profile-monitor-portal.py.in | 34 ++++++-----
> - 4 files changed, 113 insertions(+), 74 deletions(-)
> -
> -diff --git a/gio/tests/memory-monitor-dbus.py.in b/gio/tests/memory-monitor-dbus.py.in
> -index bf32918..7aae01e 100755
> ---- a/gio/tests/memory-monitor-dbus.py.in
> -+++ b/gio/tests/memory-monitor-dbus.py.in
> -@@ -16,7 +16,6 @@ import sys
> - import subprocess
> - import fcntl
> - import os
> --import time
> -
> - import taptestrunner
> -
> -@@ -57,53 +56,74 @@ try:
> -             fcntl.fcntl(self.p_mock.stdout, fcntl.F_SETFL, flags | os.O_NONBLOCK)
> -             self.last_warning = -1
> -             self.dbusmock = dbus.Interface(self.obj_lmm, dbusmock.MOCK_IFACE)
> -+
> -+            try:
> -+                self.wait_for_bus_object('org.freedesktop.LowMemoryMonitor',
> -+                                        '/org/freedesktop/LowMemoryMonitor',
> -+                                        system_bus=True)
> -+            except:
> -+                raise
> -+
> -             self.memory_monitor = Gio.MemoryMonitor.dup_default()
> -+            assert("GMemoryMonitorDBus" in str(self.memory_monitor))
> -             self.memory_monitor.connect("low-memory-warning", self.memory_warning_cb)
> -             self.mainloop = GLib.MainLoop()
> -             self.main_context = self.mainloop.get_context()
> -
> -+            # The LowMemoryMonitor API is stateless: it doesn’t expose any
> -+            # properties, just a warning signal. Emit the signal in a loop until
> -+            # the GMemoryMonitor instance has initialised and synchronised to
> -+            # the right state.
> -+            def emit_warning(level):
> -+                self.dbusmock.EmitWarning(level)
> -+                return GLib.SOURCE_CONTINUE
> -+
> -+            idle_id = GLib.idle_add(emit_warning, 0)
> -+            while self.last_warning != 0:
> -+                self.main_context.iteration(True)
> -+            GLib.source_remove(idle_id)
> -+
> -         def tearDown(self):
> -             self.p_mock.terminate()
> -             self.p_mock.wait()
> -
> --        def assertEventually(self, condition, message=None, timeout=50):
> -+        def assertEventually(self, condition, message=None, timeout=5):
> -             '''Assert that condition function eventually returns True.
> -
> --            Timeout is in deciseconds, defaulting to 50 (5 seconds). message is
> -+            Timeout is in seconds, defaulting to 5 seconds. message is
> -             printed on failure.
> -             '''
> --            while timeout >= 0:
> --                context = GLib.MainContext.default()
> --                while context.iteration(False):
> --                    pass
> --                if condition():
> --                    break
> --                timeout -= 1
> --                time.sleep(0.1)
> --            else:
> --                self.fail(message or 'timed out waiting for ' + str(condition))
> -+            if not message:
> -+                message = 'timed out waiting for ' + str(condition)
> -+
> -+            def timed_out_cb(message):
> -+                self.fail(message)
> -+                return GLib.SOURCE_REMOVE
> -+
> -+            timeout_source = GLib.timeout_source_new_seconds(timeout)
> -+            timeout_source.set_callback(timed_out_cb, message)
> -+            timeout_source.attach(self.main_context)
> -+
> -+            while not condition():
> -+                self.main_context.iteration(True)
> -+
> -+            timeout_source.destroy()
> -
> -         def memory_warning_cb(self, monitor, level):
> -+            print("Received memory warning signal, level", level)
> -             self.last_warning = level
> -             self.main_context.wakeup()
> -
> -         def test_low_memory_warning_signal(self):
> -             '''LowMemoryWarning signal'''
> -
> --            # Wait 2 seconds
> --            timeout = 2
> --            while timeout > 0:
> --                time.sleep(0.5)
> --                timeout -= 0.5
> --                self.main_context.iteration(False)
> --
> -             self.dbusmock.EmitWarning(100)
> -             # Wait 2 seconds or until warning
> --            self.assertEventually(lambda: self.last_warning == 100, "'100' low-memory warning not received", 20)
> -+            self.assertEventually(lambda: self.last_warning == 100, "'100' low-memory warning not received", 2)
> -
> -             self.dbusmock.EmitWarning(255)
> -             # Wait 2 seconds or until warning
> --            self.assertEventually(lambda: self.last_warning == 255, "'255' low-memory warning not received", 20)
> -+            self.assertEventually(lambda: self.last_warning == 255, "'255' low-memory warning not received", 2)
> -
> - except ImportError as e:
> -     @unittest.skip("Cannot import %s" % e.name)
> -diff --git a/gio/tests/memory-monitor-portal.py.in b/gio/tests/memory-monitor-portal.py.in
> -index 748cee8..f570508 100755
> ---- a/gio/tests/memory-monitor-portal.py.in
> -+++ b/gio/tests/memory-monitor-portal.py.in
> -@@ -16,7 +16,6 @@ import sys
> - import subprocess
> - import fcntl
> - import os
> --import time
> -
> - import taptestrunner
> -
> -@@ -80,26 +79,44 @@ try:
> -             self.mainloop = GLib.MainLoop()
> -             self.main_context = self.mainloop.get_context()
> -
> -+            # The LowMemoryMonitor API is stateless: it doesn’t expose any
> -+            # properties, just a warning signal. Emit the signal in a loop until
> -+            # the GMemoryMonitor instance has initialised and synchronised to
> -+            # the right state.
> -+            def emit_warning(level):
> -+                self.dbusmock.EmitWarning(level)
> -+                return GLib.SOURCE_CONTINUE
> -+
> -+            idle_id = GLib.idle_add(self.emit_warning, 0)
> -+            while self.last_warning != 0:
> -+                self.main_context.iteration(True)
> -+            GLib.source_remove(idle_id)
> -+
> -         def tearDown(self):
> -             self.p_mock.terminate()
> -             self.p_mock.wait()
> -
> --        def assertEventually(self, condition, message=None, timeout=50):
> -+        def assertEventually(self, condition, message=None, timeout=5):
> -             '''Assert that condition function eventually returns True.
> -
> --            Timeout is in deciseconds, defaulting to 50 (5 seconds). message is
> -+            Timeout is in seconds, defaulting to 5 seconds. message is
> -             printed on failure.
> -             '''
> --            while timeout >= 0:
> --                context = GLib.MainContext.default()
> --                while context.iteration(False):
> --                    pass
> --                if condition():
> --                    break
> --                timeout -= 1
> --                time.sleep(0.1)
> --            else:
> --                self.fail(message or 'timed out waiting for ' + str(condition))
> -+            if not message:
> -+                message = 'timed out waiting for ' + str(condition)
> -+
> -+            def timed_out_cb(message):
> -+                self.fail(message)
> -+                return GLib.SOURCE_REMOVE
> -+
> -+            timeout_source = GLib.timeout_source_new_seconds(timeout)
> -+            timeout_source.set_callback(timed_out_cb, message)
> -+            timeout_source.attach(self.main_context)
> -+
> -+            while not condition():
> -+                self.main_context.iteration(True)
> -+
> -+            timeout_source.destroy()
> -
> -         def portal_memory_warning_cb(self, monitor, level):
> -             self.last_warning = level
> -@@ -108,20 +125,13 @@ try:
> -         def test_low_memory_warning_portal_signal(self):
> -             '''LowMemoryWarning signal'''
> -
> --            # Wait 2 seconds
> --            timeout = 2
> --            while timeout > 0:
> --                time.sleep(0.5)
> --                timeout -= 0.5
> --                self.main_context.iteration(False)
> --
> -             self.dbusmock.EmitWarning(100)
> -             # Wait 2 seconds or until warning
> --            self.assertEventually(lambda: self.last_warning == 100, "'100' low-memory warning not received", 20)
> -+            self.assertEventually(lambda: self.last_warning == 100, "'100' low-memory warning not received", 2)
> -
> -             self.dbusmock.EmitWarning(255)
> -             # Wait 2 seconds or until warning
> --            self.assertEventually(lambda: self.last_warning == 255, "'255' low-memory warning not received", 20)
> -+            self.assertEventually(lambda: self.last_warning == 255, "'255' low-memory warning not received", 2)
> -
> - except ImportError as e:
> -     @unittest.skip("Cannot import %s" % e.name)
> -diff --git a/gio/tests/power-profile-monitor-dbus.py.in b/gio/tests/power-profile-monitor-dbus.py.in
> -index 06e594f..f955afc 100755
> ---- a/gio/tests/power-profile-monitor-dbus.py.in
> -+++ b/gio/tests/power-profile-monitor-dbus.py.in
> -@@ -16,7 +16,6 @@ import sys
> - import subprocess
> - import fcntl
> - import os
> --import time
> -
> - import taptestrunner
> -
> -@@ -58,6 +57,7 @@ try:
> -             self.power_saver_enabled = False
> -             self.dbus_props = dbus.Interface(self.obj_ppd, dbus.PROPERTIES_IFACE)
> -             self.power_profile_monitor = Gio.PowerProfileMonitor.dup_default()
> -+            assert("GPowerProfileMonitorDBus" in str(self.power_profile_monitor))
> -             self.power_profile_monitor.connect("notify::power-saver-enabled", self.power_saver_enabled_cb)
> -             self.mainloop = GLib.MainLoop()
> -             self.main_context = self.mainloop.get_context()
> -@@ -66,22 +66,27 @@ try:
> -             self.p_mock.terminate()
> -             self.p_mock.wait()
> -
> --        def assertEventually(self, condition, message=None, timeout=50):
> -+        def assertEventually(self, condition, message=None, timeout=5):
> -             '''Assert that condition function eventually returns True.
> -
> --            Timeout is in deciseconds, defaulting to 50 (5 seconds). message is
> -+            Timeout is in seconds, defaulting to 5 seconds. message is
> -             printed on failure.
> -             '''
> --            while timeout >= 0:
> --                context = GLib.MainContext.default()
> --                while context.iteration(False):
> --                    pass
> --                if condition():
> --                    break
> --                timeout -= 1
> --                time.sleep(0.1)
> --            else:
> --                self.fail(message or 'timed out waiting for ' + str(condition))
> -+            if not message:
> -+                message = 'timed out waiting for ' + str(condition)
> -+
> -+            def timed_out_cb(message):
> -+                self.fail(message)
> -+                return GLib.SOURCE_REMOVE
> -+
> -+            timeout_source = GLib.timeout_source_new_seconds(timeout)
> -+            timeout_source.set_callback(timed_out_cb, message)
> -+            timeout_source.attach(self.main_context)
> -+
> -+            while not condition():
> -+                self.main_context.iteration(True)
> -+
> -+            timeout_source.destroy()
> -
> -         def power_saver_enabled_cb(self, spec, data):
> -             self.power_saver_enabled = self.power_profile_monitor.get_power_saver_enabled()
> -@@ -92,10 +97,10 @@ try:
> -
> -             self.assertEqual(self.power_profile_monitor.get_power_saver_enabled(), False)
> -             self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('power-saver', variant_level=1))
> --            self.assertEventually(lambda: self.power_saver_enabled == True, "power-saver didn't become enabled", 10)
> -+            self.assertEventually(lambda: self.power_saver_enabled == True, "power-saver didn't become enabled", 1)
> -
> -             self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('balanced', variant_level=1))
> --            self.assertEventually(lambda: self.power_saver_enabled == False, "power-saver didn't become disabled", 10)
> -+            self.assertEventually(lambda: self.power_saver_enabled == False, "power-saver didn't become disabled", 1)
> -
> - except ImportError as e:
> -     @unittest.skip("Cannot import %s" % e.name)
> -diff --git a/gio/tests/power-profile-monitor-portal.py.in b/gio/tests/power-profile-monitor-portal.py.in
> -index 09e9a45..ad2abf6 100755
> ---- a/gio/tests/power-profile-monitor-portal.py.in
> -+++ b/gio/tests/power-profile-monitor-portal.py.in
> -@@ -16,7 +16,6 @@ import sys
> - import subprocess
> - import fcntl
> - import os
> --import time
> -
> - import taptestrunner
> -
> -@@ -90,22 +89,27 @@ try:
> -             self.p_mock.terminate()
> -             self.p_mock.wait()
> -
> --        def assertEventually(self, condition, message=None, timeout=50):
> -+        def assertEventually(self, condition, message=None, timeout=5):
> -             '''Assert that condition function eventually returns True.
> -
> --            Timeout is in deciseconds, defaulting to 50 (5 seconds). message is
> -+            Timeout is in seconds, defaulting to 5 seconds. message is
> -             printed on failure.
> -             '''
> --            while timeout >= 0:
> --                context = GLib.MainContext.default()
> --                while context.iteration(False):
> --                    pass
> --                if condition():
> --                    break
> --                timeout -= 1
> --                time.sleep(0.1)
> --            else:
> --                self.fail(message or 'timed out waiting for ' + str(condition))
> -+            if not message:
> -+                message = 'timed out waiting for ' + str(condition)
> -+
> -+            def timed_out_cb(message):
> -+                self.fail(message)
> -+                return GLib.SOURCE_REMOVE
> -+
> -+            timeout_source = GLib.timeout_source_new_seconds(timeout)
> -+            timeout_source.set_callback(timed_out_cb, message)
> -+            timeout_source.attach(self.main_context)
> -+
> -+            while not condition():
> -+                self.main_context.iteration(True)
> -+
> -+            timeout_source.destroy()
> -
> -         def power_saver_enabled_cb(self, spec, data):
> -             self.power_saver_enabled = self.power_profile_monitor.get_power_saver_enabled()
> -@@ -116,10 +120,10 @@ try:
> -
> -             self.assertEqual(self.power_profile_monitor.get_power_saver_enabled(), False)
> -             self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('power-saver', variant_level=1))
> --            self.assertEventually(lambda: self.power_saver_enabled == True, "power-saver didn't become enabled", 10)
> -+            self.assertEventually(lambda: self.power_saver_enabled == True, "power-saver didn't become enabled", 1)
> -
> -             self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('balanced', variant_level=1))
> --            self.assertEventually(lambda: self.power_saver_enabled == False, "power-saver didn't become disabled", 10)
> -+            self.assertEventually(lambda: self.power_saver_enabled == False, "power-saver didn't become disabled", 1)
> -
> -         def test_power_profile_power_saver_enabled_portal_default(self):
> -             '''power-saver-enabled property default value'''
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb
> deleted file mode 100644
> index b1669ead75e..00000000000
> --- a/meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb
> +++ /dev/null
> @@ -1,57 +0,0 @@
> -require glib.inc
> -
> -PE = "1"
> -
> -SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
> -
> -SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
> -           file://run-ptest \
> -           file://0001-Fix-DATADIRNAME-on-uclibc-Linux.patch \
> -           file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \
> -           file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \
> -           file://0010-Do-not-hardcode-python-path-into-various-tools.patch \
> -           file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \
> -           file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
> -           file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
> -           file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
> -           file://0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch \
> -           file://memory-monitor.patch \
> -           file://fix-regex.patch \
> -           file://skip-timeout.patch \
> -           "
> -SRC_URI:append:class-native = " file://relocate-modules.patch \
> -                                file://0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch \
> -                              "
> -
> -SRC_URI[sha256sum] = "24b8e0672dca120cc32d394bccb85844e732e04fe75d18bb0573b2dbc7548f63"
> -
> -# Find any meson cross files in FILESPATH that are relevant for the current
> -# build (using siteinfo) and add them to EXTRA_OEMESON.
> -inherit siteinfo
> -def find_meson_cross_files(d):
> -    if bb.data.inherits_class('native', d):
> -        return ""
> -
> -    thisdir = os.path.normpath(d.getVar("THISDIR"))
> -    import collections
> -    sitedata = siteinfo_data(d)
> -    # filename -> found
> -    files = collections.OrderedDict()
> -    for path in d.getVar("FILESPATH").split(":"):
> -        for element in sitedata:
> -            filename = os.path.normpath(os.path.join(path, "meson.cross.d", element))
> -            sanitized_path = filename.replace(thisdir, "${THISDIR}")
> -            if sanitized_path == filename:
> -                if os.path.exists(filename):
> -                    bb.error("Cannot add '%s' to --cross-file, because it's not relative to THISDIR '%s' and sstate signature would contain this full path" % (filename, thisdir))
> -                continue
> -            files[filename.replace(thisdir, "${THISDIR}")] = os.path.exists(filename)
> -
> -    items = ["--cross-file=" + k for k,v in files.items() if v]
> -    d.appendVar("EXTRA_OEMESON", " " + " ".join(items))
> -    items = ["%s:%s" % (k, "True" if v else "False") for k,v in files.items()]
> -    d.appendVarFlag("do_configure", "file-checksums", " " + " ".join(items))
> -
> -python () {
> -    find_meson_cross_files(d)
> -}
> diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.80.0.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.80.0.bb
> new file mode 100644
> index 00000000000..e22810a55bc
> --- /dev/null
> +++ b/meta/recipes-core/glib-2.0/glib-2.0_2.80.0.bb
> @@ -0,0 +1 @@
> +require glib.inc
> diff --git a/meta/recipes-core/glib-2.0/glib.inc b/meta/recipes-core/glib-2.0/glib.inc
> index fac8875d844..692857892ff 100644
> --- a/meta/recipes-core/glib-2.0/glib.inc
> +++ b/meta/recipes-core/glib-2.0/glib.inc
> @@ -28,21 +28,25 @@ PACKAGES += "${PN}-codegen ${PN}-utils"
>
>  LEAD_SONAME = "libglib-2.0.*"
>
> -inherit meson gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages gobject-introspection-data
> -
> -GTKDOC_MESON_OPTION = "gtk_doc"
> +inherit meson gettext gi-docgen pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages gobject-introspection-data
>
>  S = "${WORKDIR}/glib-${PV}"
>
>  PACKAGECONFIG ??= "libmount \
> +                   ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'introspection', '', d)} \
>                     ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
> +PACKAGECONFIG:class-native = ""
> +
>  PACKAGECONFIG[libmount] = "-Dlibmount=enabled,-Dlibmount=disabled,util-linux"
> -PACKAGECONFIG[manpages] = "-Dman=true, -Dman=false, libxslt-native xmlto-native"
> +PACKAGECONFIG[manpages] = "-Dman=true, -Dman=false, python3-docutils-native"
>  PACKAGECONFIG[libelf] = "-Dlibelf=enabled,-Dlibelf=disabled,elfutils"
>  PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false,"
>  PACKAGECONFIG[selinux] = "-Dselinux=enabled,-Dselinux=disabled,libselinux"
> +PACKAGECONFIG[introspection] = "-Dintrospection=enabled,-Dintrospection=disabled,gobject-introspection-native gobject-introspection glib-2.0-initial"
>
> -EXTRA_OEMESON = "-Ddtrace=false -Dsystemtap=false"
> +EXTRA_OEMESON = "-Ddtrace=false -Dsystemtap=false \
> +    ${@'-Dgir_dir_prefix=${libdir}' if d.getVar('MULTILIBS') else ''} \
> +"
>
>  do_configure:prepend() {
>         sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in
> @@ -53,14 +57,16 @@ FILES:${PN} = "${libdir}/lib*${SOLIBS} \
>                 ${libexecdir}/*gio-querymodules \
>                 ${libexecdir}/*gio-launch-desktop \
>                 ${datadir}/glib-2.0/dtds \
> -               ${datadir}/glib-2.0/schemas"
> -
> +               ${datadir}/glib-2.0/schemas \
> +               ${libdir}/girepository-*/*.typelib \
> +"
>  FILES:${PN}-dev += "${libdir}/glib-2.0/include \
>                      ${libdir}/gio/modules/lib*${SOLIBSDEV} \
>                      ${libdir}/gio/modules/*.la \
>                      ${datadir}/glib-2.0/gettext/po/Makefile.in.in \
>                      ${datadir}/glib-2.0/schemas/gschema.dtd \
>                      ${datadir}/glib-2.0/valgrind/glib.supp \
> +                    ${datadir}/gir-*/*.gir ${libdir}/gir-*/*.gir \
>                      ${datadir}/gettext/its"
>  FILES:${PN}-dbg += "${datadir}/glib-2.0/gdb ${datadir}/gdb"
>  FILES:${PN}-codegen = "${datadir}/glib-2.0/codegen/*.py \
> @@ -204,3 +210,57 @@ RDEPENDS:${PN}-ptest:append:libc-glibc = "\
>              locale-base-pl-pl.iso-8859-2 \
>              locale-base-tr-tr \
>             "
> +
> +PE = "1"
> +
> +SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
> +
> +SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
> +           file://run-ptest \
> +           file://0001-Fix-DATADIRNAME-on-uclibc-Linux.patch \
> +           file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \
> +           file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \
> +           file://0010-Do-not-hardcode-python-path-into-various-tools.patch \
> +           file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \
> +           file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
> +           file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
> +           file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
> +           file://skip-timeout.patch \
> +           file://0001-girepository-introspection-correctly-install-.gir-fi.patch \
> +           "
> +SRC_URI:append:class-native = " file://relocate-modules.patch \
> +                                file://0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch \
> +                              "
> +
> +SRC_URI[sha256sum] = "8228a92f92a412160b139ae68b6345bd28f24434a7b5af150ebe21ff587a561d"
> +
> +# Find any meson cross files in FILESPATH that are relevant for the current
> +# build (using siteinfo) and add them to EXTRA_OEMESON.
> +inherit siteinfo
> +def find_meson_cross_files(d):
> +    if bb.data.inherits_class('native', d):
> +        return ""
> +
> +    thisdir = os.path.normpath(d.getVar("THISDIR"))
> +    import collections
> +    sitedata = siteinfo_data(d)
> +    # filename -> found
> +    files = collections.OrderedDict()
> +    for path in d.getVar("FILESPATH").split(":"):
> +        for element in sitedata:
> +            filename = os.path.normpath(os.path.join(path, "meson.cross.d", element))
> +            sanitized_path = filename.replace(thisdir, "${THISDIR}")
> +            if sanitized_path == filename:
> +                if os.path.exists(filename):
> +                    bb.error("Cannot add '%s' to --cross-file, because it's not relative to THISDIR '%s' and sstate signature would contain this full path" % (filename, thisdir))
> +                continue
> +            files[filename.replace(thisdir, "${THISDIR}")] = os.path.exists(filename)
> +
> +    items = ["--cross-file=" + k for k,v in files.items() if v]
> +    d.appendVar("EXTRA_OEMESON", " " + " ".join(items))
> +    items = ["%s:%s" % (k, "True" if v else "False") for k,v in files.items()]
> +    d.appendVarFlag("do_configure", "file-checksums", " " + " ".join(items))
> +
> +python () {
> +    find_meson_cross_files(d)
> +}
> diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
> index c9e1afffd0f..510bc426d1b 100644
> --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
> +++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
> @@ -1,4 +1,4 @@
> -From aeb5532f8be42d42f4e8725ca42e239b36983a4d Mon Sep 17 00:00:00 2001
> +From 4e1aa0ddbc43403ff24f644b4c4912b737290c41 Mon Sep 17 00:00:00 2001
>  From: Sascha Silbe <x-yo17@se-silbe.de>
>  Date: Fri, 8 Jun 2018 13:55:10 +0200
>  Subject: [PATCH] Relocate the repository directory for native builds
> @@ -14,14 +14,13 @@ cache or sstate mirror).
>
>  Upstream-Status: Inappropriate
>  Signed-off-by: Sascha Silbe <x-yo17@se-silbe.de>
> -
>  ---
>   girepository/girepository.c | 15 +++++++++++++--
>   girepository/meson.build    |  2 +-
>   2 files changed, 14 insertions(+), 3 deletions(-)
>
>  diff --git a/girepository/girepository.c b/girepository/girepository.c
> -index a0754f4..2d456f9 100644
> +index 12eaf36..876382c 100644
>  --- a/girepository/girepository.c
>  +++ b/girepository/girepository.c
>  @@ -21,6 +21,8 @@
> @@ -42,7 +41,7 @@ index a0754f4..2d456f9 100644
>   /**
>    * SECTION:girepository
>    * @short_description: GObject Introspection repository manager
> -@@ -215,9 +219,16 @@ init_globals (void)
> +@@ -222,9 +226,16 @@ init_globals (void)
>             g_free (custom_dirs);
>           }
>
> @@ -62,10 +61,10 @@ index a0754f4..2d456f9 100644
>         typelib_search_path = g_slist_prepend (typelib_search_path, typelib_dir);
>
>  diff --git a/girepository/meson.build b/girepository/meson.build
> -index 786749a..15cf2a9 100644
> +index 5ced59e..a580d9b 100644
>  --- a/girepository/meson.build
>  +++ b/girepository/meson.build
> -@@ -45,7 +45,7 @@ girepo_internals_lib = static_library('girepository-internals',
> +@@ -47,7 +47,7 @@ girepo_internals_lib = static_library('girepository-internals',
>     ],
>     c_args: gi_hidden_visibility_cflags + custom_c_args,
>     include_directories : configinc,
> diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.78.1.bb b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.80.1.bb
> similarity index 96%
> rename from meta/recipes-gnome/gobject-introspection/gobject-introspection_1.78.1.bb
> rename to meta/recipes-gnome/gobject-introspection/gobject-introspection_1.80.1.bb
> index 05a08a50e08..582ac248fda 100644
> --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.78.1.bb
> +++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.80.1.bb
> @@ -16,7 +16,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c434e8128a68bedd59b80b2ac1eb1c4a \
>  SRC_URI = "${GNOME_MIRROR}/${BPN}/${@oe.utils.trim_version("${PV}", 2)}/${BPN}-${PV}.tar.xz \
>             "
>
> -SRC_URI[sha256sum] = "bd7babd99af7258e76819e45ba4a6bc399608fe762d83fde3cac033c50841bb4"
> +SRC_URI[sha256sum] = "a1df7c424e15bda1ab639c00e9051b9adf5cea1a9e512f8a603b53cd199bc6d8"
>
>  SRC_URI:append:class-native = " file://0001-Relocate-the-repository-directory-for-native-builds.patch"
>
> @@ -26,7 +26,9 @@ GTKDOC_MESON_OPTION = "gtk_doc"
>
>  MULTILIB_SCRIPTS = "${PN}:${bindir}/g-ir-annotation-tool ${PN}:${bindir}/g-ir-scanner"
>
> -DEPENDS += " libffi zlib glib-2.0 python3 flex-native bison-native"
> +DEPENDS += " libffi zlib python3 flex-native bison-native"
> +DEPENDS:append:class-native = " glib-2.0"
> +DEPENDS:append:class-target = " glib-2.0-initial"
>
>  # target build needs qemu to run temporary introspection binaries created
>  # on the fly by g-ir-scanner and a native version of itself to run
> @@ -189,6 +191,6 @@ FILES:${PN}-dbg += "${libdir}/gobject-introspection/giscanner/.debug/"
>  FILES:${PN}-staticdev += "${libdir}/gobject-introspection/giscanner/*.a"
>
>  # setuptools can be removed when upstream removes all uses of distutils
> -RDEPENDS:${PN} = "python3-pickle python3-xml python3-setuptools"
> +RDEPENDS:${PN} = "python3-pickle python3-xml python3-setuptools glib-2.0"
>
>  BBCLASSEXTEND = "native"
> --
> 2.39.2
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#198616): https://lists.openembedded.org/g/openembedded-core/message/198616
> Mute This Topic: https://lists.openembedded.org/mt/105687645/1997914
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [OE-core] [PATCH 2/2] glib/gobject-introspection: update 2.78.4 -> 2.80.0, 1.78.1 -> 1.80.0
  2024-04-27 17:31   ` [OE-core] " Khem Raj
@ 2024-04-29 11:53     ` Alexander Kanavin
  0 siblings, 0 replies; 5+ messages in thread
From: Alexander Kanavin @ 2024-04-29 11:53 UTC (permalink / raw)
  To: Khem Raj; +Cc: openembedded-core, Alexander Kanavin

I sent a fix for it.

Alex

On Sat, 27 Apr 2024 at 19:32, Khem Raj <raj.khem@gmail.com> wrote:
>
> this could be the reason for breaking build for gweather4
> https://errors.yoctoproject.org/Errors/Details/763702/
>
> On Tue, Apr 23, 2024 at 4:41 AM Alexander Kanavin via
> lists.openembedded.org <alex.kanavin=gmail.com@lists.openembedded.org>
> wrote:
> >
> > From: Alexander Kanavin <alex@linutronix.de>
> >
> > With these versions, which need to be updated in lockstep, upstream has
> > relocated glib introspection data from g-i tree to glib tree and made
> > its generation a part of the overall glib build. This creates a circular
> > dependency, where g-i tools are linked with glib, but glib needs the tools
> > to build its g-i data. (I don't know why the two source trees
> > couldn't be simply merged into one, or g-i data for glib couldn't be generated
> > inside g-i build against sysroot glib).
> >
> > Upstream is suggesting building glib twice, first without building g-i data,
> > then building g-i and linking it with that version, then building
> > the final glib, and that's what is being done here (via the new
> > glib-initial recipe, which is sysroot-only, and is not pulled in
> > via indirect dependencies either).
> >
> > Other glib changes:
> > 0001-Do-not-write-bindir-into-pkg-config-files.patch restores
> > writing bindir variable into glib.pc file (meson only writes
> > it out if other variables depend on it, and this custom patch
> > removes that dependency).
> >
> > 0001-girepository-introspection-correctly-install-.gir-fi.patch
> > ensures correct installation of .gir into something else
> > than $datadir (useful in multilib).
> >
> > Merge previous glib .bb into .inc, so that glib and glib-initial
> > recipes could be cleanly separated with no duplication.
> >
> > Convert from gtk-doc to gi-docgen, and manpages from xmlto to
> > docutils.
> >
> > Signed-off-by: Alexander Kanavin <alex@linutronix.de>
> > ---
> >  meta/conf/distro/include/maintainers.inc      |   1 +
> >  ...t-write-bindir-into-pkg-config-files.patch |  31 +-
> >  ...0001-Fix-DATADIRNAME-on-uclibc-Linux.patch |   2 +-
> >  ...-gio-querymodules-as-libexec_PROGRAM.patch |   6 +-
> >  ...ng-about-deprecated-paths-in-schemas.patch |   2 +-
> >  ...-correctly-when-building-with-mingw3.patch |  20 +-
> >  ...ces.c-comment-out-a-build-host-only-.patch |   4 +-
> >  ...rospection-correctly-install-.gir-fi.patch |  88 +++++
> >  ...on-Run-atomics-test-on-clang-as-well.patch |   6 +-
> >  ...ot-enable-pidfd-features-on-native-g.patch |   6 +-
> >  ...dcode-python-path-into-various-tools.patch |   4 +-
> >  .../{glib-2.0 => files}/meson.cross.d/common  |   0
> >  .../meson.cross.d/common-glibc                |   0
> >  .../meson.cross.d/common-linux                |   0
> >  .../meson.cross.d/common-mingw                |   0
> >  .../meson.cross.d/common-musl                 |   0
> >  .../relocate-modules.patch                    |   8 +-
> >  .../glib-2.0/{glib-2.0 => files}/run-ptest    |   0
> >  .../{glib-2.0 => files}/skip-timeout.patch    |   7 +-
> >  .../glib-2.0/glib-2.0-initial_2.80.0.bb       |   5 +
> >  ...deprecated-distutils-module-to-the-p.patch |  34 --
> >  .../glib-2.0/glib-2.0/fix-regex.patch         |  54 ---
> >  .../glib-2.0/glib-2.0/memory-monitor.patch    | 361 ------------------
> >  meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb |  57 ---
> >  meta/recipes-core/glib-2.0/glib-2.0_2.80.0.bb |   1 +
> >  meta/recipes-core/glib-2.0/glib.inc           |  74 +++-
> >  ...pository-directory-for-native-builds.patch |  11 +-
> >  ...8.1.bb => gobject-introspection_1.80.1.bb} |   8 +-
> >  28 files changed, 221 insertions(+), 569 deletions(-)
> >  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-Do-not-write-bindir-into-pkg-config-files.patch (68%)
> >  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch (92%)
> >  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch (84%)
> >  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch (95%)
> >  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-Set-host_machine-correctly-when-building-with-mingw3.patch (80%)
> >  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch (92%)
> >  create mode 100644 meta/recipes-core/glib-2.0/files/0001-girepository-introspection-correctly-install-.gir-fi.patch
> >  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-meson-Run-atomics-test-on-clang-as-well.patch (88%)
> >  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch (84%)
> >  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/0010-Do-not-hardcode-python-path-into-various-tools.patch (93%)
> >  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/meson.cross.d/common (100%)
> >  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/meson.cross.d/common-glibc (100%)
> >  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/meson.cross.d/common-linux (100%)
> >  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/meson.cross.d/common-mingw (100%)
> >  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/meson.cross.d/common-musl (100%)
> >  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/relocate-modules.patch (86%)
> >  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/run-ptest (100%)
> >  rename meta/recipes-core/glib-2.0/{glib-2.0 => files}/skip-timeout.patch (90%)
> >  create mode 100644 meta/recipes-core/glib-2.0/glib-2.0-initial_2.80.0.bb
> >  delete mode 100644 meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch
> >  delete mode 100644 meta/recipes-core/glib-2.0/glib-2.0/fix-regex.patch
> >  delete mode 100644 meta/recipes-core/glib-2.0/glib-2.0/memory-monitor.patch
> >  delete mode 100644 meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb
> >  create mode 100644 meta/recipes-core/glib-2.0/glib-2.0_2.80.0.bb
> >  rename meta/recipes-gnome/gobject-introspection/{gobject-introspection_1.78.1.bb => gobject-introspection_1.80.1.bb} (96%)
> >
> > diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
> > index 20eb3a04468..fbf2d4cc816 100644
> > --- a/meta/conf/distro/include/maintainers.inc
> > +++ b/meta/conf/distro/include/maintainers.inc
> > @@ -205,6 +205,7 @@ RECIPE_MAINTAINER:pn-gi-docgen = "Alexander Kanavin <alex.kanavin@gmail.com>"
> >  RECIPE_MAINTAINER:pn-git = "Robert Yang <liezhi.yang@windriver.com>"
> >  RECIPE_MAINTAINER:pn-glew = "Anuj Mittal <anuj.mittal@intel.com>"
> >  RECIPE_MAINTAINER:pn-glib-2.0 = "Anuj Mittal <anuj.mittal@intel.com>"
> > +RECIPE_MAINTAINER:pn-glib-2.0-initial = "Anuj Mittal <anuj.mittal@intel.com>"
> >  RECIPE_MAINTAINER:pn-glib-networking = "Anuj Mittal <anuj.mittal@intel.com>"
> >  RECIPE_MAINTAINER:pn-glibc = "Khem Raj <raj.khem@gmail.com>"
> >  RECIPE_MAINTAINER:pn-glibc-locale = "Khem Raj <raj.khem@gmail.com>"
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch b/meta/recipes-core/glib-2.0/files/0001-Do-not-write-bindir-into-pkg-config-files.patch
> > similarity index 68%
> > rename from meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch
> > rename to meta/recipes-core/glib-2.0/files/0001-Do-not-write-bindir-into-pkg-config-files.patch
> > index 8e6598fbef8..f6eba04fd4c 100644
> > --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch
> > +++ b/meta/recipes-core/glib-2.0/files/0001-Do-not-write-bindir-into-pkg-config-files.patch
> > @@ -1,26 +1,30 @@
> > -From e7077aa23bfcd31a8e72e39dc93ce4f854678376 Mon Sep 17 00:00:00 2001
> > +From 0561dcbf0918631d8106c3f6c2d8e92a5ec4b887 Mon Sep 17 00:00:00 2001
> >  From: Alexander Kanavin <alex.kanavin@gmail.com>
> >  Date: Fri, 15 Feb 2019 11:17:27 +0100
> > -Subject: [PATCH] Do not write $bindir into pkg-config files
> > +Subject: [PATCH] Do not prefix executables with $bindir in pkg-config files
> >
> > -This would otherwise break when using the files to build other target
> > +This would otherwise break when using the executables to build other target
> >  components (we need to rely on PATH containing the paths to utilities,
> >  rather than use target paths).
> >
> >  Upstream-Status: Inappropriate [upstream wants the paths in .pc files]
> >  Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> >  ---
> > - gio/meson.build  | 16 ++++++++--------
> > - glib/meson.build |  6 +++---
> > - 2 files changed, 11 insertions(+), 11 deletions(-)
> > + gio/meson.build  | 17 +++++++++--------
> > + glib/meson.build |  7 ++++---
> > + 2 files changed, 13 insertions(+), 11 deletions(-)
> >
> >  diff --git a/gio/meson.build b/gio/meson.build
> > -index 5f91586..1a95f4f 100644
> > +index 77cba7b..25d709e 100644
> >  --- a/gio/meson.build
> >  +++ b/gio/meson.build
> > -@@ -884,14 +884,14 @@ pkg.generate(libgio,
> > +@@ -883,17 +883,18 @@ libgio_dep = declare_dependency(link_with : libgio,
> > + pkg.generate(libgio,
> > +   requires : ['glib-2.0', 'gobject-2.0'],
> > +   variables : [
> > ++    'bindir=' + '${prefix}' / get_option('bindir'),
> > +     'schemasdir=' + '${datadir}' / schemas_subdir,
> >       'dtdsdir=' + '${datadir}' / dtds_subdir,
> > -     'bindir=' + '${prefix}' / get_option('bindir'),
> >       'giomoduledir=' + pkgconfig_giomodulesdir,
> >  -    'gio=' + '${bindir}' / 'gio',
> >  -    'gio_querymodules=' + pkgconfig_multiarch_bindir / 'gio-querymodules',
> > @@ -42,16 +46,17 @@ index 5f91586..1a95f4f 100644
> >     version : glib_version,
> >     install_dir : glib_pkgconfigreldir,
> >  diff --git a/glib/meson.build b/glib/meson.build
> > -index c26a35e..1d8ca6b 100644
> > +index d2efeba..5f5841d 100644
> >  --- a/glib/meson.build
> >  +++ b/glib/meson.build
> > -@@ -447,9 +447,9 @@ pkg.generate(libglib,
> > +@@ -447,9 +447,10 @@ pkg.generate(libglib,
> > +   subdirs : ['glib-2.0'],
> > +   extra_cflags : ['-I${libdir}/glib-2.0/include'] + win32_cflags,
> >     variables : [
> > -     'bindir=' + '${prefix}' / get_option('bindir'),
> > -     'datadir=' + '${prefix}' / get_option('datadir'),
> >  -    'glib_genmarshal=' + '${bindir}' / 'glib-genmarshal',
> >  -    'gobject_query=' + '${bindir}' / 'gobject-query',
> >  -    'glib_mkenums=' + '${bindir}' / 'glib-mkenums',
> > ++    'bindir=' + '${prefix}' / get_option('bindir'),
> >  +    'glib_genmarshal=glib-genmarshal',
> >  +    'gobject_query=gobject-query',
> >  +    'glib_mkenums=glib-mkenums',
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch b/meta/recipes-core/glib-2.0/files/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
> > similarity index 92%
> > rename from meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
> > rename to meta/recipes-core/glib-2.0/files/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
> > index eb9dfdbcf99..129bc7f8aee 100644
> > --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
> > +++ b/meta/recipes-core/glib-2.0/files/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch
> > @@ -1,4 +1,4 @@
> > -From 9a5d4bf65b658d744d610ee27ecd2ae65b14b158 Mon Sep 17 00:00:00 2001
> > +From ccb25e8c0bab54eac8ba0e9d7083ce81461ab72a Mon Sep 17 00:00:00 2001
> >  From: Khem Raj <raj.khem@gmail.com>
> >  Date: Sat, 15 Mar 2014 22:42:29 -0700
> >  Subject: [PATCH] Fix DATADIRNAME on uclibc/Linux
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch b/meta/recipes-core/glib-2.0/files/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
> > similarity index 84%
> > rename from meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
> > rename to meta/recipes-core/glib-2.0/files/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
> > index ad69f7ec655..3e12f8abbeb 100644
> > --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
> > +++ b/meta/recipes-core/glib-2.0/files/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch
> > @@ -1,4 +1,4 @@
> > -From 4933aef791857a5aac650b60af800778658b875b Mon Sep 17 00:00:00 2001
> > +From caab40411d8520dae77a4b7933ebaffbb00559fe Mon Sep 17 00:00:00 2001
> >  From: Jussi Kukkonen <jussi.kukkonen@intel.com>
> >  Date: Tue, 22 Mar 2016 15:14:58 +0200
> >  Subject: [PATCH] Install gio-querymodules as libexec_PROGRAM
> > @@ -13,10 +13,10 @@ Upstream-Status: Inappropriate [OE specific]
> >   1 file changed, 1 insertion(+)
> >
> >  diff --git a/gio/meson.build b/gio/meson.build
> > -index f9fdf6e..5f91586 100644
> > +index 59c2b0f..77cba7b 100644
> >  --- a/gio/meson.build
> >  +++ b/gio/meson.build
> > -@@ -1005,6 +1005,7 @@ gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodu
> > +@@ -1007,6 +1007,7 @@ gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodu
> >     c_args : gio_c_args,
> >     # intl.lib is not compatible with SAFESEH
> >     link_args : noseh_link_args,
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch b/meta/recipes-core/glib-2.0/files/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
> > similarity index 95%
> > rename from meta/recipes-core/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
> > rename to meta/recipes-core/glib-2.0/files/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
> > index 0e3a62af6a6..9b0b83afa44 100644
> > --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
> > +++ b/meta/recipes-core/glib-2.0/files/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch
> > @@ -1,4 +1,4 @@
> > -From 8ae2e9c2a04e089306693a021149dc6b7d1bd679 Mon Sep 17 00:00:00 2001
> > +From 65c036b1ede453e89893076f4ece21c946505096 Mon Sep 17 00:00:00 2001
> >  From: Alexander Kanavin <alex.kanavin@gmail.com>
> >  Date: Fri, 12 Jun 2015 17:08:46 +0300
> >  Subject: [PATCH] Remove the warning about deprecated paths in schemas
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch b/meta/recipes-core/glib-2.0/files/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
> > similarity index 80%
> > rename from meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
> > rename to meta/recipes-core/glib-2.0/files/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
> > index 32b4cea409c..a2f9dd9672f 100644
> > --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
> > +++ b/meta/recipes-core/glib-2.0/files/0001-Set-host_machine-correctly-when-building-with-mingw3.patch
> > @@ -1,4 +1,4 @@
> > -From c0733f7a91dfe13152abc60c5a3064456b3e9d63 Mon Sep 17 00:00:00 2001
> > +From 01810df82fae752428d3756c85edb2eb7bbf3c15 Mon Sep 17 00:00:00 2001
> >  From: Alexander Kanavin <alex.kanavin@gmail.com>
> >  Date: Wed, 13 Feb 2019 15:32:05 +0100
> >  Subject: [PATCH] Set host_machine correctly when building with mingw32
> > @@ -12,7 +12,7 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> >   3 files changed, 8 insertions(+), 5 deletions(-)
> >
> >  diff --git a/gio/tests/meson.build b/gio/tests/meson.build
> > -index 4ef3343..e498e7e 100644
> > +index 232ecca..563298b 100644
> >  --- a/gio/tests/meson.build
> >  +++ b/gio/tests/meson.build
> >  @@ -29,7 +29,7 @@ endif
> > @@ -24,16 +24,16 @@ index 4ef3343..e498e7e 100644
> >     common_gio_tests_deps += [iphlpapi_dep, winsock2, cc.find_library ('secur32')]
> >   endif
> >
> > -@@ -230,7 +230,7 @@ if have_dbus_daemon
> > +@@ -244,7 +244,7 @@ if have_dbus_daemon
> >   endif
> >
> >   #  Test programs buildable on UNIX only
> >  -if host_machine.system() != 'windows'
> >  +if host_system != 'windows'
> >     gio_tests += {
> > -     'file' : {},
> > -     'gdbus-peer-object-manager' : {},
> > -@@ -562,7 +562,7 @@ if host_machine.system() != 'windows'
> > +     'file' : {
> > +       # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/3148
> > +@@ -593,7 +593,7 @@ if host_machine.system() != 'windows'
> >   endif # unix
> >
> >   #  Test programs buildable on Windows only
> > @@ -42,7 +42,7 @@ index 4ef3343..e498e7e 100644
> >     gio_tests += {'win32-streams' : {}}
> >   endif
> >
> > -@@ -632,7 +632,7 @@ if cc.get_id() != 'msvc' and cc.get_id() != 'clang-cl'
> > +@@ -663,7 +663,7 @@ if cc.get_id() != 'msvc' and cc.get_id() != 'clang-cl'
> >     }
> >   endif
> >
> > @@ -52,10 +52,10 @@ index 4ef3343..e498e7e 100644
> >       'gdbus-example-unix-fd-client' : {
> >         'install' : false,
> >  diff --git a/glib/tests/meson.build b/glib/tests/meson.build
> > -index d80c86e..5329cda 100644
> > +index f6efc59..83eb5a5 100644
> >  --- a/glib/tests/meson.build
> >  +++ b/glib/tests/meson.build
> > -@@ -216,7 +216,7 @@ if glib_conf.has('HAVE_EVENTFD')
> > +@@ -226,7 +226,7 @@ if glib_conf.has('HAVE_EVENTFD')
> >     }
> >   endif
> >
> > @@ -65,7 +65,7 @@ index d80c86e..5329cda 100644
> >       glib_tests += {
> >         'gpoll' : {
> >  diff --git a/meson.build b/meson.build
> > -index 813c9b7..6ee775e 100644
> > +index 7534542..2560686 100644
> >  --- a/meson.build
> >  +++ b/meson.build
> >  @@ -54,6 +54,9 @@ else
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch b/meta/recipes-core/glib-2.0/files/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
> > similarity index 92%
> > rename from meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
> > rename to meta/recipes-core/glib-2.0/files/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
> > index aee29860332..bb84f3969e4 100644
> > --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
> > +++ b/meta/recipes-core/glib-2.0/files/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch
> > @@ -1,4 +1,4 @@
> > -From 878e51f82100c698236fda0e069e14ea9249350c Mon Sep 17 00:00:00 2001
> > +From e8b4f53b567339aad90b585673d55a5c6176535a Mon Sep 17 00:00:00 2001
> >  From: Alexander Kanavin <alex.kanavin@gmail.com>
> >  Date: Wed, 8 Jan 2020 18:22:46 +0100
> >  Subject: [PATCH] gio/tests/resources.c: comment out a build host-only test
> > @@ -13,7 +13,7 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> >  diff --git a/gio/tests/resources.c b/gio/tests/resources.c
> > -index f567914..b21b616 100644
> > +index f7dc039..f708876 100644
> >  --- a/gio/tests/resources.c
> >  +++ b/gio/tests/resources.c
> >  @@ -1068,7 +1068,7 @@ main (int   argc,
> > diff --git a/meta/recipes-core/glib-2.0/files/0001-girepository-introspection-correctly-install-.gir-fi.patch b/meta/recipes-core/glib-2.0/files/0001-girepository-introspection-correctly-install-.gir-fi.patch
> > new file mode 100644
> > index 00000000000..76e5f587480
> > --- /dev/null
> > +++ b/meta/recipes-core/glib-2.0/files/0001-girepository-introspection-correctly-install-.gir-fi.patch
> > @@ -0,0 +1,88 @@
> > +From 4e6be5d15e5d2f8e494d22a3d49b623064f9c1a5 Mon Sep 17 00:00:00 2001
> > +From: Alexander Kanavin <alex@linutronix.de>
> > +Date: Tue, 23 Apr 2024 11:24:34 +0200
> > +Subject: [PATCH] girepository/introspection: correctly install .gir files into
> > + custom locations provided via meson option
> > +
> > +Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4020]
> > +Signed-off-by: Alexander Kanavin <alex@linutronix.de>
> > +---
> > + girepository/introspection/meson.build | 9 +++++++++
> > + 1 file changed, 9 insertions(+)
> > +
> > +diff --git a/girepository/introspection/meson.build b/girepository/introspection/meson.build
> > +index 9405686..862ca61 100644
> > +--- a/girepository/introspection/meson.build
> > ++++ b/girepository/introspection/meson.build
> > +@@ -49,6 +49,7 @@ glib_gir = gnome.generate_gir(libglib,
> > +   export_packages: 'glib-2.0',
> > +   header: 'glib.h',
> > +   install: true,
> > ++  install_dir_gir: glib_girdir,
> > +   dependencies: [
> > +     libgobject_dep,
> > +   ],
> > +@@ -76,6 +77,7 @@ if host_system == 'windows'
> > +     header: 'glib.h',
> > +     includes: [ glib_gir[0] ],
> > +     install: true,
> > ++    install_dir_gir: glib_girdir,
> > +     dependencies: [
> > +       libgobject_dep,
> > +     ],
> > +@@ -104,6 +106,7 @@ else
> > +     header: 'glib.h',
> > +     includes: [ glib_gir[0] ],
> > +     install: true,
> > ++    install_dir_gir: glib_girdir,
> > +     dependencies: [
> > +       libgobject_dep,
> > +     ],
> > +@@ -137,6 +140,7 @@ gobject_gir = gnome.generate_gir(libgobject,
> > +   header: 'glib-object.h',
> > +   includes: [ glib_gir[0] ],
> > +   install: true,
> > ++  install_dir_gir: glib_girdir,
> > +   env: gi_gen_env_variables,
> > +   extra_args: gir_args + [
> > +       '-DGOBJECT_COMPILATION',
> > +@@ -162,6 +166,7 @@ gmodule_gir = gnome.generate_gir(libgmodule,
> > +   header: 'gmodule.h',
> > +   includes: [ glib_gir[0] ],
> > +   install: true,
> > ++  install_dir_gir: glib_girdir,
> > +   dependencies: [
> > +     libglib_dep,
> > +   ],
> > +@@ -224,6 +229,7 @@ gio_gir = gnome.generate_gir(libgio,
> > +   header: 'gio/gio.h',
> > +   includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0] ],
> > +   install: true,
> > ++  install_dir_gir: glib_girdir,
> > +   dependencies: [
> > +     libglib_dep,
> > +     libgobject_dep,
> > +@@ -249,6 +255,7 @@ if host_system == 'windows'
> > +     header: 'gio/gio.h',
> > +     includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0], gio_gir[0] ],
> > +     install: true,
> > ++    install_dir_gir: glib_girdir,
> > +     dependencies: [
> > +       libglib_dep,
> > +       libgobject_dep,
> > +@@ -277,6 +284,7 @@ else
> > +     header: 'gio/gio.h',
> > +     includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0], gio_gir[0] ],
> > +     install: true,
> > ++    install_dir_gir: glib_girdir,
> > +     dependencies: [
> > +       libglib_dep,
> > +       libgobject_dep,
> > +@@ -314,6 +322,7 @@ girepository_gir = gnome.generate_gir(libgirepository,
> > +   header: 'girepository/girepository.h',
> > +   includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0], gio_gir[0] ],
> > +   install: true,
> > ++  install_dir_gir: glib_girdir,
> > +   dependencies: [ libglib_dep, libgobject_dep, libgmodule_dep, libgio_dep ],
> > +   extra_args: gir_args + libgirepository_gir_args,
> > + )
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch b/meta/recipes-core/glib-2.0/files/0001-meson-Run-atomics-test-on-clang-as-well.patch
> > similarity index 88%
> > rename from meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch
> > rename to meta/recipes-core/glib-2.0/files/0001-meson-Run-atomics-test-on-clang-as-well.patch
> > index 0b102691141..2f805299874 100644
> > --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch
> > +++ b/meta/recipes-core/glib-2.0/files/0001-meson-Run-atomics-test-on-clang-as-well.patch
> > @@ -1,4 +1,4 @@
> > -From b4b523160ef550a53705fcc45ac6e10d086ce491 Mon Sep 17 00:00:00 2001
> > +From 3dc2e741e18ccb740e98eb4e808ff83153b70e83 Mon Sep 17 00:00:00 2001
> >  From: Khem Raj <raj.khem@gmail.com>
> >  Date: Sat, 12 Oct 2019 17:46:26 -0700
> >  Subject: [PATCH] meson: Run atomics test on clang as well
> > @@ -14,10 +14,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> >  diff --git a/meson.build b/meson.build
> > -index 6ee775e..8bc5fa7 100644
> > +index 2560686..5c46d0b 100644
> >  --- a/meson.build
> >  +++ b/meson.build
> > -@@ -1938,7 +1938,7 @@ atomicdefine = '''
> > +@@ -2024,7 +2024,7 @@ atomicdefine = '''
> >   # We know that we can always use real ("lock free") atomic operations with MSVC
> >   if cc.get_id() == 'msvc' or cc.get_id() == 'clang-cl' or cc.links(atomictest, name : 'atomic ops')
> >     have_atomic_lock_free = true
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch b/meta/recipes-core/glib-2.0/files/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
> > similarity index 84%
> > rename from meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
> > rename to meta/recipes-core/glib-2.0/files/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
> > index 14dcb278e05..82955de6715 100644
> > --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
> > +++ b/meta/recipes-core/glib-2.0/files/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch
> > @@ -1,4 +1,4 @@
> > -From 294f3e6e9a0a9f4733e85ed6810d1b743055370b Mon Sep 17 00:00:00 2001
> > +From 59525eedfbbfe4a16fdd0b340bc3f2479431c7d5 Mon Sep 17 00:00:00 2001
> >  From: Alexander Kanavin <alex@linutronix.de>
> >  Date: Sat, 16 Sep 2023 22:28:27 +0200
> >  Subject: [PATCH] meson.build: do not enable pidfd features on native glib
> > @@ -14,10 +14,10 @@ Signed-off-by: Alexander Kanavin <alex@linutronix.de>
> >   1 file changed, 2 insertions(+), 1 deletion(-)
> >
> >  diff --git a/meson.build b/meson.build
> > -index 8bc5fa7..df1fa60 100644
> > +index 5c46d0b..222c1a1 100644
> >  --- a/meson.build
> >  +++ b/meson.build
> > -@@ -981,7 +981,8 @@ if cc.links('''#include <sys/syscall.h>
> > +@@ -1022,7 +1022,8 @@ if cc.links('''#include <sys/syscall.h>
> >                    waitid (P_PIDFD, 0, &child_info, WEXITED | WNOHANG);
> >                    return 0;
> >                  }''', name : 'pidfd_open(2) system call')
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch b/meta/recipes-core/glib-2.0/files/0010-Do-not-hardcode-python-path-into-various-tools.patch
> > similarity index 93%
> > rename from meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch
> > rename to meta/recipes-core/glib-2.0/files/0010-Do-not-hardcode-python-path-into-various-tools.patch
> > index 6dff5179c71..a51c186b004 100644
> > --- a/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch
> > +++ b/meta/recipes-core/glib-2.0/files/0010-Do-not-hardcode-python-path-into-various-tools.patch
> > @@ -1,4 +1,4 @@
> > -From 50636758c73e5e61212a8f801c6c602b8aab5ba7 Mon Sep 17 00:00:00 2001
> > +From e6784ba43af83e22556921786c8f15e4cd246298 Mon Sep 17 00:00:00 2001
> >  From: Alexander Kanavin <alex.kanavin@gmail.com>
> >  Date: Tue, 3 Oct 2017 10:45:55 +0300
> >  Subject: [PATCH] Do not hardcode python path into various tools
> > @@ -32,7 +32,7 @@ index aa5af43..56e8e2e 100755
> >   # pylint: disable=too-many-lines, missing-docstring, invalid-name
> >
> >  diff --git a/gobject/glib-mkenums.in b/gobject/glib-mkenums.in
> > -index 353e53a..8ed6c39 100755
> > +index e10b910..4b619f8 100755
> >  --- a/gobject/glib-mkenums.in
> >  +++ b/gobject/glib-mkenums.in
> >  @@ -1,4 +1,4 @@
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common b/meta/recipes-core/glib-2.0/files/meson.cross.d/common
> > similarity index 100%
> > rename from meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common
> > rename to meta/recipes-core/glib-2.0/files/meson.cross.d/common
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-glibc b/meta/recipes-core/glib-2.0/files/meson.cross.d/common-glibc
> > similarity index 100%
> > rename from meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-glibc
> > rename to meta/recipes-core/glib-2.0/files/meson.cross.d/common-glibc
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux b/meta/recipes-core/glib-2.0/files/meson.cross.d/common-linux
> > similarity index 100%
> > rename from meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux
> > rename to meta/recipes-core/glib-2.0/files/meson.cross.d/common-linux
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-mingw b/meta/recipes-core/glib-2.0/files/meson.cross.d/common-mingw
> > similarity index 100%
> > rename from meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-mingw
> > rename to meta/recipes-core/glib-2.0/files/meson.cross.d/common-mingw
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-musl b/meta/recipes-core/glib-2.0/files/meson.cross.d/common-musl
> > similarity index 100%
> > rename from meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-musl
> > rename to meta/recipes-core/glib-2.0/files/meson.cross.d/common-musl
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch b/meta/recipes-core/glib-2.0/files/relocate-modules.patch
> > similarity index 86%
> > rename from meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
> > rename to meta/recipes-core/glib-2.0/files/relocate-modules.patch
> > index 3e79bbf6796..d6e9019f396 100644
> > --- a/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
> > +++ b/meta/recipes-core/glib-2.0/files/relocate-modules.patch
> > @@ -1,4 +1,4 @@
> > -From f40e89b3852df37959606ee13b1a14ade81fa886 Mon Sep 17 00:00:00 2001
> > +From 47ea2576a13d5bc86692b4ba8cb4a8f2fd38c6ca Mon Sep 17 00:00:00 2001
> >  From: Ross Burton <ross.burton@intel.com>
> >  Date: Fri, 11 Mar 2016 15:35:55 +0000
> >  Subject: [PATCH] glib-2.0: relocate the GIO module directory for native builds
> > @@ -18,10 +18,10 @@ Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
> >   1 file changed, 7 deletions(-)
> >
> >  diff --git a/gio/giomodule.c b/gio/giomodule.c
> > -index 17fabe6..8021208 100644
> > +index 1e14955..3c09bb5 100644
> >  --- a/gio/giomodule.c
> >  +++ b/gio/giomodule.c
> > -@@ -1271,11 +1271,6 @@ get_gio_module_dir (void)
> > +@@ -1259,11 +1259,6 @@ get_gio_module_dir (void)
> >         g_free (install_dir);
> >   #else
> >         module_dir = g_strdup (GIO_MODULE_DIR);
> > @@ -33,7 +33,7 @@ index 17fabe6..8021208 100644
> >   #include <dlfcn.h>
> >         {
> >           g_autofree gchar *path = NULL;
> > -@@ -1294,8 +1289,6 @@ get_gio_module_dir (void)
> > +@@ -1282,8 +1277,6 @@ get_gio_module_dir (void)
> >                 }
> >             }
> >         }
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/run-ptest b/meta/recipes-core/glib-2.0/files/run-ptest
> > similarity index 100%
> > rename from meta/recipes-core/glib-2.0/glib-2.0/run-ptest
> > rename to meta/recipes-core/glib-2.0/files/run-ptest
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/skip-timeout.patch b/meta/recipes-core/glib-2.0/files/skip-timeout.patch
> > similarity index 90%
> > rename from meta/recipes-core/glib-2.0/glib-2.0/skip-timeout.patch
> > rename to meta/recipes-core/glib-2.0/files/skip-timeout.patch
> > index cd5ac287c3f..b1c62cc39c8 100644
> > --- a/meta/recipes-core/glib-2.0/glib-2.0/skip-timeout.patch
> > +++ b/meta/recipes-core/glib-2.0/files/skip-timeout.patch
> > @@ -1,4 +1,4 @@
> > -From bb11d1a4ae77d93ec0743e54077cf0f990243fa6 Mon Sep 17 00:00:00 2001
> > +From 682d8a616ca111c0e45c8a9cb02e992e63c69586 Mon Sep 17 00:00:00 2001
> >  From: Ross Burton <ross.burton@arm.com>
> >  Date: Thu, 28 Mar 2024 16:27:09 +0000
> >  Subject: [PATCH] Skip /timeout/rounding test
> > @@ -16,7 +16,7 @@ Signed-off-by: Ross Burton <ross.burton@arm.com>
> >   1 file changed, 1 deletion(-)
> >
> >  diff --git a/glib/tests/timeout.c b/glib/tests/timeout.c
> > -index 1ae3f3a34..85a715b0f 100644
> > +index 1ae3f3a..85a715b 100644
> >  --- a/glib/tests/timeout.c
> >  +++ b/glib/tests/timeout.c
> >  @@ -214,7 +214,6 @@ main (int argc, char *argv[])
> > @@ -27,6 +27,3 @@ index 1ae3f3a34..85a715b0f 100644
> >
> >     return g_test_run ();
> >   }
> > ---
> > -2.34.1
> > -
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0-initial_2.80.0.bb b/meta/recipes-core/glib-2.0/glib-2.0-initial_2.80.0.bb
> > new file mode 100644
> > index 00000000000..7da28382650
> > --- /dev/null
> > +++ b/meta/recipes-core/glib-2.0/glib-2.0-initial_2.80.0.bb
> > @@ -0,0 +1,5 @@
> > +require glib.inc
> > +PACKAGES = ""
> > +PACKAGECONFIG = ""
> > +
> > +
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch
> > deleted file mode 100644
> > index b11c283e6d7..00000000000
> > --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch
> > +++ /dev/null
> > @@ -1,34 +0,0 @@
> > -From a8eb944a10353403241608a084787f6efcbb2eb7 Mon Sep 17 00:00:00 2001
> > -From: Jordan Williams <jordan@jwillikers.com>
> > -Date: Fri, 1 Dec 2023 09:53:50 -0600
> > -Subject: [PATCH] Switch from the deprecated distutils module to the packaging
> > - module
> > -
> > -The distutils module was removed in Python 3.12.
> > -
> > -Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/6ef967a0f930ce37a8c9b5aff969693b34714291]
> > -
> > -Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
> > ----
> > - gio/gdbus-2.0/codegen/utils.py | 4 ++--
> > - 1 file changed, 2 insertions(+), 2 deletions(-)
> > -
> > -diff --git a/gio/gdbus-2.0/codegen/utils.py b/gio/gdbus-2.0/codegen/utils.py
> > -index 0204610..08f1ba9 100644
> > ---- a/gio/gdbus-2.0/codegen/utils.py
> > -+++ b/gio/gdbus-2.0/codegen/utils.py
> > -@@ -19,7 +19,7 @@
> > - #
> > - # Author: David Zeuthen <davidz@redhat.com>
> > -
> > --import distutils.version
> > -+import packaging.version
> > - import os
> > - import sys
> > -
> > -@@ -166,4 +166,4 @@ def version_cmp_key(key):
> > -         v = str(key[0])
> > -     else:
> > -         v = "0"
> > --    return (distutils.version.LooseVersion(v), key[1])
> > -+    return (packaging.version.Version(v), key[1])
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/fix-regex.patch b/meta/recipes-core/glib-2.0/glib-2.0/fix-regex.patch
> > deleted file mode 100644
> > index bdfbd558999..00000000000
> > --- a/meta/recipes-core/glib-2.0/glib-2.0/fix-regex.patch
> > +++ /dev/null
> > @@ -1,54 +0,0 @@
> > -From cce3ae98a2c1966719daabff5a4ec6cf94a846f6 Mon Sep 17 00:00:00 2001
> > -From: Philip Withnall <pwithnall@gnome.org>
> > -Date: Mon, 26 Feb 2024 16:55:44 +0000
> > -Subject: [PATCH] tests: Remove variable-length lookbehind tests for GRegex
> > -MIME-Version: 1.0
> > -Content-Type: text/plain; charset=UTF-8
> > -Content-Transfer-Encoding: 8bit
> > -
> > -PCRE2 10.43 has now introduced support for variable-length lookbehind,
> > -so these tests now fail if GLib is built against PCRE2 10.43 or higher.
> > -
> > -See
> > -https://github.com/PCRE2Project/pcre2/blob/e8db6fa7137f4c6f66cb87e0a3c9467252ec1ef7/ChangeLog#L94.
> > -
> > -Rather than making the tests conditional on the version of PCRE2 in use,
> > -just remove them. They are mostly testing the PCRE2 code rather than
> > -any code in GLib, so don’t have much value.
> > -
> > -This should fix CI runs on msys2-mingw32, which updated to PCRE2 10.43 2
> > -days ago.
> > -
> > -Signed-off-by: Philip Withnall <pwithnall@gnome.org>
> > -
> > -Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/cce3ae98a2c1966719daabff5a4ec6cf94a846f6]
> > -Signed-off-by: Alexander Kanavin <alex@linutronix.de>
> > ----
> > - glib/tests/regex.c | 10 ----------
> > - 1 file changed, 10 deletions(-)
> > -
> > -diff --git a/glib/tests/regex.c b/glib/tests/regex.c
> > -index 1082526292..d7a698ec67 100644
> > ---- a/glib/tests/regex.c
> > -+++ b/glib/tests/regex.c
> > -@@ -1885,16 +1885,6 @@ test_lookbehind (void)
> > -   g_match_info_free (match);
> > -   g_regex_unref (regex);
> > -
> > --  regex = g_regex_new ("(?<!dogs?|cats?) x", G_REGEX_OPTIMIZE, G_REGEX_MATCH_DEFAULT, &error);
> > --  g_assert (regex == NULL);
> > --  g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND);
> > --  g_clear_error (&error);
> > --
> > --  regex = g_regex_new ("(?<=ab(c|de)) foo", G_REGEX_OPTIMIZE, G_REGEX_MATCH_DEFAULT, &error);
> > --  g_assert (regex == NULL);
> > --  g_assert_error (error, G_REGEX_ERROR, G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND);
> > --  g_clear_error (&error);
> > --
> > -   regex = g_regex_new ("(?<=abc|abde)foo", G_REGEX_OPTIMIZE, G_REGEX_MATCH_DEFAULT, &error);
> > -   g_assert (regex);
> > -   g_assert_no_error (error);
> > ---
> > -GitLab
> > -
> > -
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0/memory-monitor.patch b/meta/recipes-core/glib-2.0/glib-2.0/memory-monitor.patch
> > deleted file mode 100644
> > index 4f38509da6f..00000000000
> > --- a/meta/recipes-core/glib-2.0/glib-2.0/memory-monitor.patch
> > +++ /dev/null
> > @@ -1,361 +0,0 @@
> > -From ce840b6b111e1e109e511f6833d6aa419e2b723a Mon Sep 17 00:00:00 2001
> > -From: Philip Withnall <philip@tecnocode.co.uk>
> > -Date: Tue, 23 Jan 2024 11:16:52 +0000
> > -Subject: [PATCH] Merge branch '2887-memory-monitor-tests' into 'main'
> > -
> > -tests: Fix race condition in memory-monitor-dbus.test
> > -
> > -Closes #2887
> > -
> > -See merge request GNOME/glib!3844
> > -
> > -Hopefully these commits fix the occasional failures we've been seeing:
> > -https://bugzilla.yoctoproject.org/show_bug.cgi?id=15362
> > -
> > -Upstream-Status: Backport
> > -Signed-off-by: Ross Burton <ross.burton@arm.com>
> > ----
> > - gio/tests/memory-monitor-dbus.py.in          | 64 +++++++++++++-------
> > - gio/tests/memory-monitor-portal.py.in        | 54 ++++++++++-------
> > - gio/tests/power-profile-monitor-dbus.py.in   | 35 ++++++-----
> > - gio/tests/power-profile-monitor-portal.py.in | 34 ++++++-----
> > - 4 files changed, 113 insertions(+), 74 deletions(-)
> > -
> > -diff --git a/gio/tests/memory-monitor-dbus.py.in b/gio/tests/memory-monitor-dbus.py.in
> > -index bf32918..7aae01e 100755
> > ---- a/gio/tests/memory-monitor-dbus.py.in
> > -+++ b/gio/tests/memory-monitor-dbus.py.in
> > -@@ -16,7 +16,6 @@ import sys
> > - import subprocess
> > - import fcntl
> > - import os
> > --import time
> > -
> > - import taptestrunner
> > -
> > -@@ -57,53 +56,74 @@ try:
> > -             fcntl.fcntl(self.p_mock.stdout, fcntl.F_SETFL, flags | os.O_NONBLOCK)
> > -             self.last_warning = -1
> > -             self.dbusmock = dbus.Interface(self.obj_lmm, dbusmock.MOCK_IFACE)
> > -+
> > -+            try:
> > -+                self.wait_for_bus_object('org.freedesktop.LowMemoryMonitor',
> > -+                                        '/org/freedesktop/LowMemoryMonitor',
> > -+                                        system_bus=True)
> > -+            except:
> > -+                raise
> > -+
> > -             self.memory_monitor = Gio.MemoryMonitor.dup_default()
> > -+            assert("GMemoryMonitorDBus" in str(self.memory_monitor))
> > -             self.memory_monitor.connect("low-memory-warning", self.memory_warning_cb)
> > -             self.mainloop = GLib.MainLoop()
> > -             self.main_context = self.mainloop.get_context()
> > -
> > -+            # The LowMemoryMonitor API is stateless: it doesn’t expose any
> > -+            # properties, just a warning signal. Emit the signal in a loop until
> > -+            # the GMemoryMonitor instance has initialised and synchronised to
> > -+            # the right state.
> > -+            def emit_warning(level):
> > -+                self.dbusmock.EmitWarning(level)
> > -+                return GLib.SOURCE_CONTINUE
> > -+
> > -+            idle_id = GLib.idle_add(emit_warning, 0)
> > -+            while self.last_warning != 0:
> > -+                self.main_context.iteration(True)
> > -+            GLib.source_remove(idle_id)
> > -+
> > -         def tearDown(self):
> > -             self.p_mock.terminate()
> > -             self.p_mock.wait()
> > -
> > --        def assertEventually(self, condition, message=None, timeout=50):
> > -+        def assertEventually(self, condition, message=None, timeout=5):
> > -             '''Assert that condition function eventually returns True.
> > -
> > --            Timeout is in deciseconds, defaulting to 50 (5 seconds). message is
> > -+            Timeout is in seconds, defaulting to 5 seconds. message is
> > -             printed on failure.
> > -             '''
> > --            while timeout >= 0:
> > --                context = GLib.MainContext.default()
> > --                while context.iteration(False):
> > --                    pass
> > --                if condition():
> > --                    break
> > --                timeout -= 1
> > --                time.sleep(0.1)
> > --            else:
> > --                self.fail(message or 'timed out waiting for ' + str(condition))
> > -+            if not message:
> > -+                message = 'timed out waiting for ' + str(condition)
> > -+
> > -+            def timed_out_cb(message):
> > -+                self.fail(message)
> > -+                return GLib.SOURCE_REMOVE
> > -+
> > -+            timeout_source = GLib.timeout_source_new_seconds(timeout)
> > -+            timeout_source.set_callback(timed_out_cb, message)
> > -+            timeout_source.attach(self.main_context)
> > -+
> > -+            while not condition():
> > -+                self.main_context.iteration(True)
> > -+
> > -+            timeout_source.destroy()
> > -
> > -         def memory_warning_cb(self, monitor, level):
> > -+            print("Received memory warning signal, level", level)
> > -             self.last_warning = level
> > -             self.main_context.wakeup()
> > -
> > -         def test_low_memory_warning_signal(self):
> > -             '''LowMemoryWarning signal'''
> > -
> > --            # Wait 2 seconds
> > --            timeout = 2
> > --            while timeout > 0:
> > --                time.sleep(0.5)
> > --                timeout -= 0.5
> > --                self.main_context.iteration(False)
> > --
> > -             self.dbusmock.EmitWarning(100)
> > -             # Wait 2 seconds or until warning
> > --            self.assertEventually(lambda: self.last_warning == 100, "'100' low-memory warning not received", 20)
> > -+            self.assertEventually(lambda: self.last_warning == 100, "'100' low-memory warning not received", 2)
> > -
> > -             self.dbusmock.EmitWarning(255)
> > -             # Wait 2 seconds or until warning
> > --            self.assertEventually(lambda: self.last_warning == 255, "'255' low-memory warning not received", 20)
> > -+            self.assertEventually(lambda: self.last_warning == 255, "'255' low-memory warning not received", 2)
> > -
> > - except ImportError as e:
> > -     @unittest.skip("Cannot import %s" % e.name)
> > -diff --git a/gio/tests/memory-monitor-portal.py.in b/gio/tests/memory-monitor-portal.py.in
> > -index 748cee8..f570508 100755
> > ---- a/gio/tests/memory-monitor-portal.py.in
> > -+++ b/gio/tests/memory-monitor-portal.py.in
> > -@@ -16,7 +16,6 @@ import sys
> > - import subprocess
> > - import fcntl
> > - import os
> > --import time
> > -
> > - import taptestrunner
> > -
> > -@@ -80,26 +79,44 @@ try:
> > -             self.mainloop = GLib.MainLoop()
> > -             self.main_context = self.mainloop.get_context()
> > -
> > -+            # The LowMemoryMonitor API is stateless: it doesn’t expose any
> > -+            # properties, just a warning signal. Emit the signal in a loop until
> > -+            # the GMemoryMonitor instance has initialised and synchronised to
> > -+            # the right state.
> > -+            def emit_warning(level):
> > -+                self.dbusmock.EmitWarning(level)
> > -+                return GLib.SOURCE_CONTINUE
> > -+
> > -+            idle_id = GLib.idle_add(self.emit_warning, 0)
> > -+            while self.last_warning != 0:
> > -+                self.main_context.iteration(True)
> > -+            GLib.source_remove(idle_id)
> > -+
> > -         def tearDown(self):
> > -             self.p_mock.terminate()
> > -             self.p_mock.wait()
> > -
> > --        def assertEventually(self, condition, message=None, timeout=50):
> > -+        def assertEventually(self, condition, message=None, timeout=5):
> > -             '''Assert that condition function eventually returns True.
> > -
> > --            Timeout is in deciseconds, defaulting to 50 (5 seconds). message is
> > -+            Timeout is in seconds, defaulting to 5 seconds. message is
> > -             printed on failure.
> > -             '''
> > --            while timeout >= 0:
> > --                context = GLib.MainContext.default()
> > --                while context.iteration(False):
> > --                    pass
> > --                if condition():
> > --                    break
> > --                timeout -= 1
> > --                time.sleep(0.1)
> > --            else:
> > --                self.fail(message or 'timed out waiting for ' + str(condition))
> > -+            if not message:
> > -+                message = 'timed out waiting for ' + str(condition)
> > -+
> > -+            def timed_out_cb(message):
> > -+                self.fail(message)
> > -+                return GLib.SOURCE_REMOVE
> > -+
> > -+            timeout_source = GLib.timeout_source_new_seconds(timeout)
> > -+            timeout_source.set_callback(timed_out_cb, message)
> > -+            timeout_source.attach(self.main_context)
> > -+
> > -+            while not condition():
> > -+                self.main_context.iteration(True)
> > -+
> > -+            timeout_source.destroy()
> > -
> > -         def portal_memory_warning_cb(self, monitor, level):
> > -             self.last_warning = level
> > -@@ -108,20 +125,13 @@ try:
> > -         def test_low_memory_warning_portal_signal(self):
> > -             '''LowMemoryWarning signal'''
> > -
> > --            # Wait 2 seconds
> > --            timeout = 2
> > --            while timeout > 0:
> > --                time.sleep(0.5)
> > --                timeout -= 0.5
> > --                self.main_context.iteration(False)
> > --
> > -             self.dbusmock.EmitWarning(100)
> > -             # Wait 2 seconds or until warning
> > --            self.assertEventually(lambda: self.last_warning == 100, "'100' low-memory warning not received", 20)
> > -+            self.assertEventually(lambda: self.last_warning == 100, "'100' low-memory warning not received", 2)
> > -
> > -             self.dbusmock.EmitWarning(255)
> > -             # Wait 2 seconds or until warning
> > --            self.assertEventually(lambda: self.last_warning == 255, "'255' low-memory warning not received", 20)
> > -+            self.assertEventually(lambda: self.last_warning == 255, "'255' low-memory warning not received", 2)
> > -
> > - except ImportError as e:
> > -     @unittest.skip("Cannot import %s" % e.name)
> > -diff --git a/gio/tests/power-profile-monitor-dbus.py.in b/gio/tests/power-profile-monitor-dbus.py.in
> > -index 06e594f..f955afc 100755
> > ---- a/gio/tests/power-profile-monitor-dbus.py.in
> > -+++ b/gio/tests/power-profile-monitor-dbus.py.in
> > -@@ -16,7 +16,6 @@ import sys
> > - import subprocess
> > - import fcntl
> > - import os
> > --import time
> > -
> > - import taptestrunner
> > -
> > -@@ -58,6 +57,7 @@ try:
> > -             self.power_saver_enabled = False
> > -             self.dbus_props = dbus.Interface(self.obj_ppd, dbus.PROPERTIES_IFACE)
> > -             self.power_profile_monitor = Gio.PowerProfileMonitor.dup_default()
> > -+            assert("GPowerProfileMonitorDBus" in str(self.power_profile_monitor))
> > -             self.power_profile_monitor.connect("notify::power-saver-enabled", self.power_saver_enabled_cb)
> > -             self.mainloop = GLib.MainLoop()
> > -             self.main_context = self.mainloop.get_context()
> > -@@ -66,22 +66,27 @@ try:
> > -             self.p_mock.terminate()
> > -             self.p_mock.wait()
> > -
> > --        def assertEventually(self, condition, message=None, timeout=50):
> > -+        def assertEventually(self, condition, message=None, timeout=5):
> > -             '''Assert that condition function eventually returns True.
> > -
> > --            Timeout is in deciseconds, defaulting to 50 (5 seconds). message is
> > -+            Timeout is in seconds, defaulting to 5 seconds. message is
> > -             printed on failure.
> > -             '''
> > --            while timeout >= 0:
> > --                context = GLib.MainContext.default()
> > --                while context.iteration(False):
> > --                    pass
> > --                if condition():
> > --                    break
> > --                timeout -= 1
> > --                time.sleep(0.1)
> > --            else:
> > --                self.fail(message or 'timed out waiting for ' + str(condition))
> > -+            if not message:
> > -+                message = 'timed out waiting for ' + str(condition)
> > -+
> > -+            def timed_out_cb(message):
> > -+                self.fail(message)
> > -+                return GLib.SOURCE_REMOVE
> > -+
> > -+            timeout_source = GLib.timeout_source_new_seconds(timeout)
> > -+            timeout_source.set_callback(timed_out_cb, message)
> > -+            timeout_source.attach(self.main_context)
> > -+
> > -+            while not condition():
> > -+                self.main_context.iteration(True)
> > -+
> > -+            timeout_source.destroy()
> > -
> > -         def power_saver_enabled_cb(self, spec, data):
> > -             self.power_saver_enabled = self.power_profile_monitor.get_power_saver_enabled()
> > -@@ -92,10 +97,10 @@ try:
> > -
> > -             self.assertEqual(self.power_profile_monitor.get_power_saver_enabled(), False)
> > -             self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('power-saver', variant_level=1))
> > --            self.assertEventually(lambda: self.power_saver_enabled == True, "power-saver didn't become enabled", 10)
> > -+            self.assertEventually(lambda: self.power_saver_enabled == True, "power-saver didn't become enabled", 1)
> > -
> > -             self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('balanced', variant_level=1))
> > --            self.assertEventually(lambda: self.power_saver_enabled == False, "power-saver didn't become disabled", 10)
> > -+            self.assertEventually(lambda: self.power_saver_enabled == False, "power-saver didn't become disabled", 1)
> > -
> > - except ImportError as e:
> > -     @unittest.skip("Cannot import %s" % e.name)
> > -diff --git a/gio/tests/power-profile-monitor-portal.py.in b/gio/tests/power-profile-monitor-portal.py.in
> > -index 09e9a45..ad2abf6 100755
> > ---- a/gio/tests/power-profile-monitor-portal.py.in
> > -+++ b/gio/tests/power-profile-monitor-portal.py.in
> > -@@ -16,7 +16,6 @@ import sys
> > - import subprocess
> > - import fcntl
> > - import os
> > --import time
> > -
> > - import taptestrunner
> > -
> > -@@ -90,22 +89,27 @@ try:
> > -             self.p_mock.terminate()
> > -             self.p_mock.wait()
> > -
> > --        def assertEventually(self, condition, message=None, timeout=50):
> > -+        def assertEventually(self, condition, message=None, timeout=5):
> > -             '''Assert that condition function eventually returns True.
> > -
> > --            Timeout is in deciseconds, defaulting to 50 (5 seconds). message is
> > -+            Timeout is in seconds, defaulting to 5 seconds. message is
> > -             printed on failure.
> > -             '''
> > --            while timeout >= 0:
> > --                context = GLib.MainContext.default()
> > --                while context.iteration(False):
> > --                    pass
> > --                if condition():
> > --                    break
> > --                timeout -= 1
> > --                time.sleep(0.1)
> > --            else:
> > --                self.fail(message or 'timed out waiting for ' + str(condition))
> > -+            if not message:
> > -+                message = 'timed out waiting for ' + str(condition)
> > -+
> > -+            def timed_out_cb(message):
> > -+                self.fail(message)
> > -+                return GLib.SOURCE_REMOVE
> > -+
> > -+            timeout_source = GLib.timeout_source_new_seconds(timeout)
> > -+            timeout_source.set_callback(timed_out_cb, message)
> > -+            timeout_source.attach(self.main_context)
> > -+
> > -+            while not condition():
> > -+                self.main_context.iteration(True)
> > -+
> > -+            timeout_source.destroy()
> > -
> > -         def power_saver_enabled_cb(self, spec, data):
> > -             self.power_saver_enabled = self.power_profile_monitor.get_power_saver_enabled()
> > -@@ -116,10 +120,10 @@ try:
> > -
> > -             self.assertEqual(self.power_profile_monitor.get_power_saver_enabled(), False)
> > -             self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('power-saver', variant_level=1))
> > --            self.assertEventually(lambda: self.power_saver_enabled == True, "power-saver didn't become enabled", 10)
> > -+            self.assertEventually(lambda: self.power_saver_enabled == True, "power-saver didn't become enabled", 1)
> > -
> > -             self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('balanced', variant_level=1))
> > --            self.assertEventually(lambda: self.power_saver_enabled == False, "power-saver didn't become disabled", 10)
> > -+            self.assertEventually(lambda: self.power_saver_enabled == False, "power-saver didn't become disabled", 1)
> > -
> > -         def test_power_profile_power_saver_enabled_portal_default(self):
> > -             '''power-saver-enabled property default value'''
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb
> > deleted file mode 100644
> > index b1669ead75e..00000000000
> > --- a/meta/recipes-core/glib-2.0/glib-2.0_2.78.4.bb
> > +++ /dev/null
> > @@ -1,57 +0,0 @@
> > -require glib.inc
> > -
> > -PE = "1"
> > -
> > -SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
> > -
> > -SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
> > -           file://run-ptest \
> > -           file://0001-Fix-DATADIRNAME-on-uclibc-Linux.patch \
> > -           file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \
> > -           file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \
> > -           file://0010-Do-not-hardcode-python-path-into-various-tools.patch \
> > -           file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \
> > -           file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
> > -           file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
> > -           file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
> > -           file://0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch \
> > -           file://memory-monitor.patch \
> > -           file://fix-regex.patch \
> > -           file://skip-timeout.patch \
> > -           "
> > -SRC_URI:append:class-native = " file://relocate-modules.patch \
> > -                                file://0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch \
> > -                              "
> > -
> > -SRC_URI[sha256sum] = "24b8e0672dca120cc32d394bccb85844e732e04fe75d18bb0573b2dbc7548f63"
> > -
> > -# Find any meson cross files in FILESPATH that are relevant for the current
> > -# build (using siteinfo) and add them to EXTRA_OEMESON.
> > -inherit siteinfo
> > -def find_meson_cross_files(d):
> > -    if bb.data.inherits_class('native', d):
> > -        return ""
> > -
> > -    thisdir = os.path.normpath(d.getVar("THISDIR"))
> > -    import collections
> > -    sitedata = siteinfo_data(d)
> > -    # filename -> found
> > -    files = collections.OrderedDict()
> > -    for path in d.getVar("FILESPATH").split(":"):
> > -        for element in sitedata:
> > -            filename = os.path.normpath(os.path.join(path, "meson.cross.d", element))
> > -            sanitized_path = filename.replace(thisdir, "${THISDIR}")
> > -            if sanitized_path == filename:
> > -                if os.path.exists(filename):
> > -                    bb.error("Cannot add '%s' to --cross-file, because it's not relative to THISDIR '%s' and sstate signature would contain this full path" % (filename, thisdir))
> > -                continue
> > -            files[filename.replace(thisdir, "${THISDIR}")] = os.path.exists(filename)
> > -
> > -    items = ["--cross-file=" + k for k,v in files.items() if v]
> > -    d.appendVar("EXTRA_OEMESON", " " + " ".join(items))
> > -    items = ["%s:%s" % (k, "True" if v else "False") for k,v in files.items()]
> > -    d.appendVarFlag("do_configure", "file-checksums", " " + " ".join(items))
> > -
> > -python () {
> > -    find_meson_cross_files(d)
> > -}
> > diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.80.0.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.80.0.bb
> > new file mode 100644
> > index 00000000000..e22810a55bc
> > --- /dev/null
> > +++ b/meta/recipes-core/glib-2.0/glib-2.0_2.80.0.bb
> > @@ -0,0 +1 @@
> > +require glib.inc
> > diff --git a/meta/recipes-core/glib-2.0/glib.inc b/meta/recipes-core/glib-2.0/glib.inc
> > index fac8875d844..692857892ff 100644
> > --- a/meta/recipes-core/glib-2.0/glib.inc
> > +++ b/meta/recipes-core/glib-2.0/glib.inc
> > @@ -28,21 +28,25 @@ PACKAGES += "${PN}-codegen ${PN}-utils"
> >
> >  LEAD_SONAME = "libglib-2.0.*"
> >
> > -inherit meson gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages gobject-introspection-data
> > -
> > -GTKDOC_MESON_OPTION = "gtk_doc"
> > +inherit meson gettext gi-docgen pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages gobject-introspection-data
> >
> >  S = "${WORKDIR}/glib-${PV}"
> >
> >  PACKAGECONFIG ??= "libmount \
> > +                   ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'introspection', '', d)} \
> >                     ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}"
> > +PACKAGECONFIG:class-native = ""
> > +
> >  PACKAGECONFIG[libmount] = "-Dlibmount=enabled,-Dlibmount=disabled,util-linux"
> > -PACKAGECONFIG[manpages] = "-Dman=true, -Dman=false, libxslt-native xmlto-native"
> > +PACKAGECONFIG[manpages] = "-Dman=true, -Dman=false, python3-docutils-native"
> >  PACKAGECONFIG[libelf] = "-Dlibelf=enabled,-Dlibelf=disabled,elfutils"
> >  PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false,"
> >  PACKAGECONFIG[selinux] = "-Dselinux=enabled,-Dselinux=disabled,libselinux"
> > +PACKAGECONFIG[introspection] = "-Dintrospection=enabled,-Dintrospection=disabled,gobject-introspection-native gobject-introspection glib-2.0-initial"
> >
> > -EXTRA_OEMESON = "-Ddtrace=false -Dsystemtap=false"
> > +EXTRA_OEMESON = "-Ddtrace=false -Dsystemtap=false \
> > +    ${@'-Dgir_dir_prefix=${libdir}' if d.getVar('MULTILIBS') else ''} \
> > +"
> >
> >  do_configure:prepend() {
> >         sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in
> > @@ -53,14 +57,16 @@ FILES:${PN} = "${libdir}/lib*${SOLIBS} \
> >                 ${libexecdir}/*gio-querymodules \
> >                 ${libexecdir}/*gio-launch-desktop \
> >                 ${datadir}/glib-2.0/dtds \
> > -               ${datadir}/glib-2.0/schemas"
> > -
> > +               ${datadir}/glib-2.0/schemas \
> > +               ${libdir}/girepository-*/*.typelib \
> > +"
> >  FILES:${PN}-dev += "${libdir}/glib-2.0/include \
> >                      ${libdir}/gio/modules/lib*${SOLIBSDEV} \
> >                      ${libdir}/gio/modules/*.la \
> >                      ${datadir}/glib-2.0/gettext/po/Makefile.in.in \
> >                      ${datadir}/glib-2.0/schemas/gschema.dtd \
> >                      ${datadir}/glib-2.0/valgrind/glib.supp \
> > +                    ${datadir}/gir-*/*.gir ${libdir}/gir-*/*.gir \
> >                      ${datadir}/gettext/its"
> >  FILES:${PN}-dbg += "${datadir}/glib-2.0/gdb ${datadir}/gdb"
> >  FILES:${PN}-codegen = "${datadir}/glib-2.0/codegen/*.py \
> > @@ -204,3 +210,57 @@ RDEPENDS:${PN}-ptest:append:libc-glibc = "\
> >              locale-base-pl-pl.iso-8859-2 \
> >              locale-base-tr-tr \
> >             "
> > +
> > +PE = "1"
> > +
> > +SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
> > +
> > +SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
> > +           file://run-ptest \
> > +           file://0001-Fix-DATADIRNAME-on-uclibc-Linux.patch \
> > +           file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \
> > +           file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \
> > +           file://0010-Do-not-hardcode-python-path-into-various-tools.patch \
> > +           file://0001-Set-host_machine-correctly-when-building-with-mingw3.patch \
> > +           file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
> > +           file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
> > +           file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
> > +           file://skip-timeout.patch \
> > +           file://0001-girepository-introspection-correctly-install-.gir-fi.patch \
> > +           "
> > +SRC_URI:append:class-native = " file://relocate-modules.patch \
> > +                                file://0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch \
> > +                              "
> > +
> > +SRC_URI[sha256sum] = "8228a92f92a412160b139ae68b6345bd28f24434a7b5af150ebe21ff587a561d"
> > +
> > +# Find any meson cross files in FILESPATH that are relevant for the current
> > +# build (using siteinfo) and add them to EXTRA_OEMESON.
> > +inherit siteinfo
> > +def find_meson_cross_files(d):
> > +    if bb.data.inherits_class('native', d):
> > +        return ""
> > +
> > +    thisdir = os.path.normpath(d.getVar("THISDIR"))
> > +    import collections
> > +    sitedata = siteinfo_data(d)
> > +    # filename -> found
> > +    files = collections.OrderedDict()
> > +    for path in d.getVar("FILESPATH").split(":"):
> > +        for element in sitedata:
> > +            filename = os.path.normpath(os.path.join(path, "meson.cross.d", element))
> > +            sanitized_path = filename.replace(thisdir, "${THISDIR}")
> > +            if sanitized_path == filename:
> > +                if os.path.exists(filename):
> > +                    bb.error("Cannot add '%s' to --cross-file, because it's not relative to THISDIR '%s' and sstate signature would contain this full path" % (filename, thisdir))
> > +                continue
> > +            files[filename.replace(thisdir, "${THISDIR}")] = os.path.exists(filename)
> > +
> > +    items = ["--cross-file=" + k for k,v in files.items() if v]
> > +    d.appendVar("EXTRA_OEMESON", " " + " ".join(items))
> > +    items = ["%s:%s" % (k, "True" if v else "False") for k,v in files.items()]
> > +    d.appendVarFlag("do_configure", "file-checksums", " " + " ".join(items))
> > +
> > +python () {
> > +    find_meson_cross_files(d)
> > +}
> > diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
> > index c9e1afffd0f..510bc426d1b 100644
> > --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
> > +++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
> > @@ -1,4 +1,4 @@
> > -From aeb5532f8be42d42f4e8725ca42e239b36983a4d Mon Sep 17 00:00:00 2001
> > +From 4e1aa0ddbc43403ff24f644b4c4912b737290c41 Mon Sep 17 00:00:00 2001
> >  From: Sascha Silbe <x-yo17@se-silbe.de>
> >  Date: Fri, 8 Jun 2018 13:55:10 +0200
> >  Subject: [PATCH] Relocate the repository directory for native builds
> > @@ -14,14 +14,13 @@ cache or sstate mirror).
> >
> >  Upstream-Status: Inappropriate
> >  Signed-off-by: Sascha Silbe <x-yo17@se-silbe.de>
> > -
> >  ---
> >   girepository/girepository.c | 15 +++++++++++++--
> >   girepository/meson.build    |  2 +-
> >   2 files changed, 14 insertions(+), 3 deletions(-)
> >
> >  diff --git a/girepository/girepository.c b/girepository/girepository.c
> > -index a0754f4..2d456f9 100644
> > +index 12eaf36..876382c 100644
> >  --- a/girepository/girepository.c
> >  +++ b/girepository/girepository.c
> >  @@ -21,6 +21,8 @@
> > @@ -42,7 +41,7 @@ index a0754f4..2d456f9 100644
> >   /**
> >    * SECTION:girepository
> >    * @short_description: GObject Introspection repository manager
> > -@@ -215,9 +219,16 @@ init_globals (void)
> > +@@ -222,9 +226,16 @@ init_globals (void)
> >             g_free (custom_dirs);
> >           }
> >
> > @@ -62,10 +61,10 @@ index a0754f4..2d456f9 100644
> >         typelib_search_path = g_slist_prepend (typelib_search_path, typelib_dir);
> >
> >  diff --git a/girepository/meson.build b/girepository/meson.build
> > -index 786749a..15cf2a9 100644
> > +index 5ced59e..a580d9b 100644
> >  --- a/girepository/meson.build
> >  +++ b/girepository/meson.build
> > -@@ -45,7 +45,7 @@ girepo_internals_lib = static_library('girepository-internals',
> > +@@ -47,7 +47,7 @@ girepo_internals_lib = static_library('girepository-internals',
> >     ],
> >     c_args: gi_hidden_visibility_cflags + custom_c_args,
> >     include_directories : configinc,
> > diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.78.1.bb b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.80.1.bb
> > similarity index 96%
> > rename from meta/recipes-gnome/gobject-introspection/gobject-introspection_1.78.1.bb
> > rename to meta/recipes-gnome/gobject-introspection/gobject-introspection_1.80.1.bb
> > index 05a08a50e08..582ac248fda 100644
> > --- a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.78.1.bb
> > +++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.80.1.bb
> > @@ -16,7 +16,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c434e8128a68bedd59b80b2ac1eb1c4a \
> >  SRC_URI = "${GNOME_MIRROR}/${BPN}/${@oe.utils.trim_version("${PV}", 2)}/${BPN}-${PV}.tar.xz \
> >             "
> >
> > -SRC_URI[sha256sum] = "bd7babd99af7258e76819e45ba4a6bc399608fe762d83fde3cac033c50841bb4"
> > +SRC_URI[sha256sum] = "a1df7c424e15bda1ab639c00e9051b9adf5cea1a9e512f8a603b53cd199bc6d8"
> >
> >  SRC_URI:append:class-native = " file://0001-Relocate-the-repository-directory-for-native-builds.patch"
> >
> > @@ -26,7 +26,9 @@ GTKDOC_MESON_OPTION = "gtk_doc"
> >
> >  MULTILIB_SCRIPTS = "${PN}:${bindir}/g-ir-annotation-tool ${PN}:${bindir}/g-ir-scanner"
> >
> > -DEPENDS += " libffi zlib glib-2.0 python3 flex-native bison-native"
> > +DEPENDS += " libffi zlib python3 flex-native bison-native"
> > +DEPENDS:append:class-native = " glib-2.0"
> > +DEPENDS:append:class-target = " glib-2.0-initial"
> >
> >  # target build needs qemu to run temporary introspection binaries created
> >  # on the fly by g-ir-scanner and a native version of itself to run
> > @@ -189,6 +191,6 @@ FILES:${PN}-dbg += "${libdir}/gobject-introspection/giscanner/.debug/"
> >  FILES:${PN}-staticdev += "${libdir}/gobject-introspection/giscanner/*.a"
> >
> >  # setuptools can be removed when upstream removes all uses of distutils
> > -RDEPENDS:${PN} = "python3-pickle python3-xml python3-setuptools"
> > +RDEPENDS:${PN} = "python3-pickle python3-xml python3-setuptools glib-2.0"
> >
> >  BBCLASSEXTEND = "native"
> > --
> > 2.39.2
> >
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#198616): https://lists.openembedded.org/g/openembedded-core/message/198616
> > Mute This Topic: https://lists.openembedded.org/mt/105687645/1997914
> > Group Owner: openembedded-core+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [OE-core] [PATCH 2/2] glib/gobject-introspection: update 2.78.4 -> 2.80.0, 1.78.1 -> 1.80.0
  2024-04-23 11:41 ` [PATCH 2/2] glib/gobject-introspection: update 2.78.4 -> 2.80.0, 1.78.1 -> 1.80.0 Alexander Kanavin
  2024-04-27 17:31   ` [OE-core] " Khem Raj
@ 2024-05-01  6:37   ` Richard Purdie
  1 sibling, 0 replies; 5+ messages in thread
From: Richard Purdie @ 2024-05-01  6:37 UTC (permalink / raw)
  To: alex.kanavin, openembedded-core; +Cc: Alexander Kanavin

On Tue, 2024-04-23 at 13:41 +0200, Alexander Kanavin via lists.openembedded.org wrote:
> From: Alexander Kanavin <alex@linutronix.de>
> 
> With these versions, which need to be updated in lockstep, upstream has
> relocated glib introspection data from g-i tree to glib tree and made
> its generation a part of the overall glib build. This creates a circular
> dependency, where g-i tools are linked with glib, but glib needs the tools
> to build its g-i data. (I don't know why the two source trees
> couldn't be simply merged into one, or g-i data for glib couldn't be generated
> inside g-i build against sysroot glib).
> 
> Upstream is suggesting building glib twice, first without building g-i data,
> then building g-i and linking it with that version, then building
> the final glib, and that's what is being done here (via the new
> glib-initial recipe, which is sysroot-only, and is not pulled in
> via indirect dependencies either).
> 
> Other glib changes:
> 0001-Do-not-write-bindir-into-pkg-config-files.patch restores
> writing bindir variable into glib.pc file (meson only writes
> it out if other variables depend on it, and this custom patch
> removes that dependency).
> 
> 0001-girepository-introspection-correctly-install-.gir-fi.patch
> ensures correct installation of .gir into something else
> than $datadir (useful in multilib).
> 
> Merge previous glib .bb into .inc, so that glib and glib-initial
> recipes could be cleanly separated with no duplication.
> 
> Convert from gtk-doc to gi-docgen, and manpages from xmlto to
> docutils.

This is causing a selftest failure for:

"oe-selftest -r sstatetests.SStateHashSameSigs2.test_sstate_nativesdk_samesigs_multilib"

e.g.

https://autobuilder.yoctoproject.org/typhoon/#/builders/80/builds/6644/steps/14/logs/stdio

(other failures there are my fault but I confirmed the sstate one is from this patch)

Cheers,

Richard


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-05-01  6:37 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-23 11:41 [PATCH 1/2] libical: disable introspection in -native Alexander Kanavin
2024-04-23 11:41 ` [PATCH 2/2] glib/gobject-introspection: update 2.78.4 -> 2.80.0, 1.78.1 -> 1.80.0 Alexander Kanavin
2024-04-27 17:31   ` [OE-core] " Khem Raj
2024-04-29 11:53     ` Alexander Kanavin
2024-05-01  6:37   ` Richard Purdie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).