diff options
Diffstat (limited to 'meta/recipes-core/glib-2.0/glib-2.0')
26 files changed, 722 insertions, 498 deletions
diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-ignore-return-value-of-write.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-ignore-return-value-of-write.patch deleted file mode 100644 index 0ebf138d60..0000000000 --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-ignore-return-value-of-write.patch +++ /dev/null @@ -1,39 +0,0 @@ -From d250652782b65b071b7cc8f01f2db833df104e0e Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 16 Apr 2016 13:28:59 -0700 -Subject: [PATCH] Do not ignore return value of write() - -gcc warns about ignoring return value when compiling -with fortify turned on. - -assert when write() fails - -Upstream-Status: Submitted -Signed-off-by: Khem Raj <raj.khem@gmail.com> - ---- - glib/tests/unix.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/glib/tests/unix.c b/glib/tests/unix.c -index 9d55a6c..a07f945 100644 ---- a/glib/tests/unix.c -+++ b/glib/tests/unix.c -@@ -32,14 +32,15 @@ test_pipe (void) - GError *error = NULL; - int pipefd[2]; - char buf[1024]; -- gssize bytes_read; -+ gssize bytes_read, bytes_written; - gboolean res; - - res = g_unix_open_pipe (pipefd, FD_CLOEXEC, &error); - g_assert (res); - g_assert_no_error (error); - -- write (pipefd[1], "hello", sizeof ("hello")); -+ bytes_written = write (pipefd[1], "hello", sizeof ("hello")); -+ g_assert (bytes_written != -1 && "write() failed"); - memset (buf, 0, sizeof (buf)); - bytes_read = read (pipefd[0], buf, sizeof(buf) - 1); - g_assert_cmpint (bytes_read, >, 0); 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/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch index ede29c90ba..8e6598fbef 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/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch @@ -1,4 +1,4 @@ -From 474e59abec88de0c455836c1f53152bf2aa26c34 Mon Sep 17 00:00:00 2001 +From e7077aa23bfcd31a8e72e39dc93ce4f854678376 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 @@ -10,41 +10,51 @@ 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 | 6 +++--- - glib/meson.build | 6 +++--- - 2 files changed, 6 insertions(+), 6 deletions(-) + gio/meson.build | 16 ++++++++-------- + glib/meson.build | 6 +++--- + 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/gio/meson.build b/gio/meson.build -index 85d8b14..657720a 100644 +index 5f91586..1a95f4f 100644 --- a/gio/meson.build +++ b/gio/meson.build -@@ -813,9 +813,9 @@ pkg.generate(libraries : libgio, - 'schemasdir=' + join_paths('${datadir}', schemas_subdir), - 'bindir=' + join_paths('${prefix}', get_option('bindir')), - 'giomoduledir=' + giomodulesdir, -- 'glib_compile_schemas=' + join_paths('${bindir}', 'glib-compile-schemas'), -- 'glib_compile_resources=' + join_paths('${bindir}', 'glib-compile-resources'), -- 'gdbus_codegen=' + join_paths('${bindir}', 'gdbus-codegen')], -+ 'glib_compile_schemas=glib-compile-schemas', -+ 'glib_compile_resources=glib-compile-resources', -+ 'gdbus_codegen=gdbus-codegen'], +@@ -884,14 +884,14 @@ pkg.generate(libgio, + 'dtdsdir=' + '${datadir}' / dtds_subdir, + 'bindir=' + '${prefix}' / get_option('bindir'), + 'giomoduledir=' + pkgconfig_giomodulesdir, +- 'gio=' + '${bindir}' / 'gio', +- 'gio_querymodules=' + pkgconfig_multiarch_bindir / 'gio-querymodules', +- 'glib_compile_schemas=' + pkgconfig_multiarch_bindir / 'glib-compile-schemas', +- 'glib_compile_resources=' + '${bindir}' / 'glib-compile-resources', +- 'gdbus=' + '${bindir}' /'gdbus', +- 'gdbus_codegen=' + '${bindir}' / 'gdbus-codegen', +- 'gresource=' + '${bindir}' / 'gresource', +- 'gsettings=' + '${bindir}' / 'gsettings', ++ 'gio=gio', ++ 'gio_querymodules=gio-querymodules', ++ 'glib_compile_schemas=glib-compile-schemas', ++ 'glib_compile_resources=glib-compile-resources', ++ 'gdbus=gdbus', ++ 'gdbus_codegen=gdbus-codegen', ++ 'gresource=gresource', ++ 'gsettings=gsettings', + ], version : glib_version, install_dir : glib_pkgconfigreldir, - filebase : 'gio-2.0', diff --git a/glib/meson.build b/glib/meson.build -index c05c694..434e8b1 100644 +index c26a35e..1d8ca6b 100644 --- a/glib/meson.build +++ b/glib/meson.build -@@ -261,9 +261,9 @@ pkg.generate(libraries : [libglib, libintl], - subdirs : ['glib-2.0'], - extra_cflags : ['-I${libdir}/glib-2.0/include'] + win32_cflags, - variables : ['bindir=' + join_paths('${prefix}', get_option('bindir')), -- 'glib_genmarshal=' + join_paths('${bindir}', 'glib-genmarshal'), -- 'gobject_query=' + join_paths('${bindir}', 'gobject-query'), -- 'glib_mkenums=' + join_paths('${bindir}', 'glib-mkenums')], -+ 'glib_genmarshal=glib-genmarshal', -+ 'gobject_query=gobject-query', -+ 'glib_mkenums=glib-mkenums'], - version : glib_version, - install_dir : glib_pkgconfigreldir, - filebase : 'glib-2.0', +@@ -447,9 +447,9 @@ pkg.generate(libglib, + 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', ++ 'glib_genmarshal=glib-genmarshal', ++ 'gobject_query=gobject-query', ++ 'glib_mkenums=glib-mkenums', + 'glib_valgrind_suppressions=' + '${datadir}' / + valgrind_suppression_file_install_subdir / + fs.name(valgrind_suppression_file), 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/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch new file mode 100644 index 0000000000..eb9dfdbcf9 --- /dev/null +++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch @@ -0,0 +1,29 @@ +From 9a5d4bf65b658d744d610ee27ecd2ae65b14b158 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 + +translation files are always installed under PREFIX/share/locale in uclibc +based systems therefore lets set DATADIRNAME to "share". + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending +--- + m4macros/glib-gettext.m4 | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/m4macros/glib-gettext.m4 b/m4macros/glib-gettext.m4 +index df6fbf0..47db864 100644 +--- a/m4macros/glib-gettext.m4 ++++ b/m4macros/glib-gettext.m4 +@@ -293,6 +293,10 @@ msgstr "" + CATOBJEXT=.mo + DATADIRNAME=share + ;; ++ *-*-musl* | *-*-linux-uclibc*) ++ CATOBJEXT=.gmo ++ DATADIRNAME=share ++ ;; + *) + CATOBJEXT=.mo + DATADIRNAME=lib 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/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch index f246254942..ad69f7ec65 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/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch @@ -1,4 +1,4 @@ -From 17fc9230fb932432d8faaaabf8c56fdc4845495e Mon Sep 17 00:00:00 2001 +From 4933aef791857a5aac650b60af800778658b875b 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 @@ -8,31 +8,15 @@ renamer does not cope with library packages with files in ${bindir} Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> Upstream-Status: Inappropriate [OE specific] - --- - gio/Makefile.am | 3 ++- gio/meson.build | 1 + - 2 files changed, 3 insertions(+), 1 deletion(-) + 1 file changed, 1 insertion(+) -diff --git a/gio/Makefile.am b/gio/Makefile.am -index e14cad2..bf2bcc7 100644 ---- a/gio/Makefile.am -+++ b/gio/Makefile.am -@@ -835,7 +835,8 @@ gio.def: libgio-2.0.la - gio-2.0.lib: libgio-2.0.la gio.def - $(AM_V_GEN) lib.exe -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgio-2.0-$(LT_CURRENT_MINUS_AGE).dll -def:$(builddir)/gio.def -out:$@ - --bin_PROGRAMS = gio-querymodules glib-compile-schemas glib-compile-resources gsettings gio-launch-desktop -+bin_PROGRAMS = glib-compile-schemas glib-compile-resources gsettings gio-launch-desktop -+libexec_PROGRAMS = gio-querymodules - - glib_compile_resources_LDADD = libgio-2.0.la \ - $(top_builddir)/gobject/libgobject-2.0.la \ diff --git a/gio/meson.build b/gio/meson.build -index b83d8f5..85d8b14 100644 +index f9fdf6e..5f91586 100644 --- a/gio/meson.build +++ b/gio/meson.build -@@ -925,6 +925,7 @@ gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodu +@@ -1005,6 +1005,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/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch index 67ca6240bc..0e3a62af6a 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/glib-2.0/0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch @@ -1,7 +1,7 @@ -From 2acf40361eecd17c6981743dabd06e25a9934258 Mon Sep 17 00:00:00 2001 +From 8ae2e9c2a04e089306693a021149dc6b7d1bd679 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 05/10] Remove the warning about deprecated paths in schemas +Subject: [PATCH] Remove the warning about deprecated paths in schemas Some schemas in gsettings-desktop-schemas (such as proxy and locale) are still using deprecated paths, as of 3.16.1. This causes warning @@ -9,16 +9,15 @@ messages, and meta/lib/oe/rootfs.py complaints about them. Upstream-Status: Inappropriate Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> - --- gio/glib-compile-schemas.c | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/gio/glib-compile-schemas.c b/gio/glib-compile-schemas.c -index b8de090..130f89b 100644 +index 04ef404..e791ce2 100644 --- a/gio/glib-compile-schemas.c +++ b/gio/glib-compile-schemas.c -@@ -1219,19 +1219,6 @@ parse_state_start_schema (ParseState *state, +@@ -1232,19 +1232,6 @@ parse_state_start_schema (ParseState *state, return; } @@ -38,6 +37,3 @@ index b8de090..130f89b 100644 state->schema_state = schema_state_new (path, gettext_domain, extends, extends_name, list_of); --- -2.14.1 - diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-Revert-Use-absolute-paths-in-pkg-config-files.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-Revert-Use-absolute-paths-in-pkg-config-files.patch deleted file mode 100644 index f0c5d84ba7..0000000000 --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Revert-Use-absolute-paths-in-pkg-config-files.patch +++ /dev/null @@ -1,64 +0,0 @@ -From abc26aed7a28678dfcc20b21726a97c7c02ea73b Mon Sep 17 00:00:00 2001 -From: Anuj Mittal <anuj.mittal@intel.com> -Date: Thu, 14 Feb 2019 14:55:15 +0800 -Subject: [PATCH] Revert "Use absolute paths in pkg-config files" - -This reverts commit e7a7c9b97776fa2a638d18ea3a931ba84e778f80. - -The glib pkgconfig files now contain absolute paths, but they're -target paths so when we used them from a sysroot it fails. Upstream -thinks that we should be setting -GLIB_MKENUMS=/path/to/sysroot/usr/bin/glib-mkenums but that really -doesn't scale. - -For now, we just revert the change to put absolute paths into -the sysroot. This should be re-evaluated when we move the recipe to use -meson. - -Upstream-Status: Inappropriate [Revert of an upstream commit] -Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> ---- - gio-2.0.pc.in | 7 +++---- - glib-2.0.pc.in | 7 +++---- - 2 files changed, 6 insertions(+), 8 deletions(-) - -diff --git a/gio-2.0.pc.in b/gio-2.0.pc.in -index d67e80839..526f0daa0 100644 ---- a/gio-2.0.pc.in -+++ b/gio-2.0.pc.in -@@ -5,11 +5,10 @@ includedir=@includedir@ - - datadir=@datadir@ - schemasdir=${datadir}/glib-2.0/schemas --bindir=@bindir@ - giomoduledir=@GIO_MODULE_DIR@ --glib_compile_schemas=${bindir}/glib-compile-schemas --glib_compile_resources=${bindir}/glib-compile-resources --gdbus_codegen=${bindir}/gdbus-codegen -+glib_compile_schemas=glib-compile-schemas -+glib_compile_resources=glib-compile-resources -+gdbus_codegen=gdbus-codegen - - Name: GIO - Description: glib I/O library -diff --git a/glib-2.0.pc.in b/glib-2.0.pc.in -index 3c5ea81dc..275fc0163 100644 ---- a/glib-2.0.pc.in -+++ b/glib-2.0.pc.in -@@ -3,10 +3,9 @@ exec_prefix=@exec_prefix@ - libdir=@libdir@ - includedir=@includedir@ - --bindir=@bindir@ --glib_genmarshal=${bindir}/glib-genmarshal --gobject_query=${bindir}/gobject-query --glib_mkenums=${bindir}/glib-mkenums -+glib_genmarshal=glib-genmarshal -+gobject_query=gobject-query -+glib_mkenums=glib-mkenums - - Name: GLib - Description: C Utility Library --- -2.17.1 - 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/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch index 2b7fab7bde..32b4cea409 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/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch @@ -1,85 +1,74 @@ -From 4169f11beedacfbb8c7934a4c99189d44935a6b9 Mon Sep 17 00:00:00 2001 +From c0733f7a91dfe13152abc60c5a3064456b3e9d63 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 Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> - --- gio/tests/meson.build | 8 ++++---- - glib/tests/meson.build | 4 ++-- + glib/tests/meson.build | 2 +- meson.build | 3 +++ - tests/meson.build | 2 +- - 4 files changed, 10 insertions(+), 7 deletions(-) + 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/gio/tests/meson.build b/gio/tests/meson.build -index 181f5c7..11a1f12 100644 +index 4ef3343..e498e7e 100644 --- a/gio/tests/meson.build +++ b/gio/tests/meson.build -@@ -12,7 +12,7 @@ test_c_args = [ - '-DGLIB_COMPILE_SCHEMAS="@0@"'.format(glib_compile_schemas.full_path()), - ] +@@ -29,7 +29,7 @@ endif + + test_cpp_args = test_c_args -if host_machine.system() == 'windows' +if host_system == 'windows' common_gio_tests_deps += [iphlpapi_dep, winsock2, cc.find_library ('secur32')] endif -@@ -122,7 +122,7 @@ if dbus1_dep.found() +@@ -230,7 +230,7 @@ if have_dbus_daemon endif # Test programs buildable on UNIX only -if host_machine.system() != 'windows' +if host_system != 'windows' - gio_tests += [{ + gio_tests += { 'file' : {}, - 'gdbus-peer' : { -@@ -314,7 +314,7 @@ if host_machine.system() != 'windows' + 'gdbus-peer-object-manager' : {}, +@@ -562,7 +562,7 @@ if host_machine.system() != 'windows' endif # unix # Test programs buildable on Windows only -if host_machine.system() == 'windows' +if host_system == 'windows' - gio_tests += [{'win32-streams' : {}}] + gio_tests += {'win32-streams' : {}} endif -@@ -379,7 +379,7 @@ if cc.get_id() != 'msvc' - }] +@@ -632,7 +632,7 @@ if cc.get_id() != 'msvc' and cc.get_id() != 'clang-cl' + } endif -if host_machine.system() != 'windows' +if host_system != 'windows' - test_extra_programs += [{ + test_extra_programs += { 'gdbus-example-unix-fd-client' : { 'install' : false, diff --git a/glib/tests/meson.build b/glib/tests/meson.build -index d7b6a7a..6678a08 100644 +index d80c86e..5329cda 100644 --- a/glib/tests/meson.build +++ b/glib/tests/meson.build -@@ -45,7 +45,7 @@ glib_tests = { - 'hook' : {}, - 'hostutils' : {}, - 'include' : { -- 'skip' : host_machine.system() == 'windows', -+ 'skip' : host_system == 'windows', - }, - 'keyfile' : {}, - 'list' : {}, -@@ -112,7 +112,7 @@ glib_tests = { - 'utils' : {}, - 'unicode' : {}, - 'unix' : { -- 'skip' : host_machine.system() == 'windows', -+ 'skip' : host_system == 'windows', - }, - 'uri' : {}, - '1bit-mutex' : {}, +@@ -216,7 +216,7 @@ if glib_conf.has('HAVE_EVENTFD') + } + endif + +-if host_machine.system() == 'windows' ++if host_system == 'windows' + if winsock2.found() + glib_tests += { + 'gpoll' : { diff --git a/meson.build b/meson.build -index f7405a2..4348f20 100644 +index 813c9b7..6ee775e 100644 --- a/meson.build +++ b/meson.build -@@ -31,6 +31,9 @@ else +@@ -54,6 +54,9 @@ else endif host_system = host_machine.system() @@ -87,18 +76,5 @@ index f7405a2..4348f20 100644 + host_system = 'windows' +endif - glib_version = meson.project_version() - glib_api_version = '2.0' -diff --git a/tests/meson.build b/tests/meson.build -index 80e45d7..9f3869f 100644 ---- a/tests/meson.build -+++ b/tests/meson.build -@@ -67,7 +67,7 @@ test_extra_programs = { - 'unicode-collate' : {}, - } - --if host_machine.system() != 'windows' -+if host_system != 'windows' - tests += [{ - 'timeloop' : {}, - 'spawn-test' : {}, + if host_system == 'darwin' + ios_test_code = '''#include <TargetConditionals.h> 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 new file mode 100644 index 0000000000..b11c283e6d --- /dev/null +++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-Switch-from-the-deprecated-distutils-module-to-the-p.patch @@ -0,0 +1,34 @@ +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/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch new file mode 100644 index 0000000000..aee2986033 --- /dev/null +++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch @@ -0,0 +1,27 @@ +From 878e51f82100c698236fda0e069e14ea9249350c 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 + +This test requires building resources in a way that is +not cross-compatible (hardcodes ld and objcopy). + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + gio/tests/resources.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gio/tests/resources.c b/gio/tests/resources.c +index f567914..b21b616 100644 +--- a/gio/tests/resources.c ++++ b/gio/tests/resources.c +@@ -1068,7 +1068,7 @@ main (int argc, + g_test_add_func ("/resource/automatic", test_resource_automatic); + /* This only uses automatic resources too, so it tests the constructors and destructors */ + g_test_add_func ("/resource/module", test_resource_module); +- g_test_add_func ("/resource/binary-linked", test_resource_binary_linked); ++ /* g_test_add_func ("/resource/binary-linked", test_resource_binary_linked); */ + #endif + g_test_add_func ("/resource/uri/query-info", test_uri_query_info); + g_test_add_func ("/resource/uri/file", test_uri_file); 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/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch new file mode 100644 index 0000000000..0b10269114 --- /dev/null +++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch @@ -0,0 +1,28 @@ +From b4b523160ef550a53705fcc45ac6e10d086ce491 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 + +Fixes +./glib-2.62.1/glib/gatomic.c:675:2: error: G_ATOMIC_LOCK_FREE defined, but incapable of lock-free atomics. +^ + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 6ee775e..8bc5fa7 100644 +--- a/meson.build ++++ b/meson.build +@@ -1938,7 +1938,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 +- if cc.get_id() == 'gcc' and not cc.compiles(atomicdefine, name : 'atomic ops define') ++ if (cc.get_id() == 'gcc' or cc.get_id() == 'clang') and not cc.compiles(atomicdefine, name : 'atomic ops define') + # Old gcc release may provide + # __sync_bool_compare_and_swap but doesn't define + # __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-do-a-build-time-check-for-strlcpy-before-attem.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-do-a-build-time-check-for-strlcpy-before-attem.patch deleted file mode 100644 index d1ed028759..0000000000 --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-do-a-build-time-check-for-strlcpy-before-attem.patch +++ /dev/null @@ -1,62 +0,0 @@ -Upstream-Status: Backport [fc88e56bfc2b09a8fb2b350e76f6425ab0a056d7] -Signed-off-by: Ross Burton <ross.burton@intel.com> - -From 141acf6a2f3b21d63c9cfe620b8e20a506e78493 Mon Sep 17 00:00:00 2001 -From: Ross Burton <ross.burton@intel.com> -Date: Wed, 13 Mar 2019 16:22:09 +0000 -Subject: [PATCH] meson: do a build-time check for strlcpy before attempting - runtime check - -In cross-compilation environments the runtime check isn't possible so it is up -to the builder to seed the cross file, but we can definitely state that strlcpy -doesn't exist with a build test. ---- - meson.build | 30 ++++++++++++++++-------------- - 1 file changed, 16 insertions(+), 14 deletions(-) - -diff --git a/meson.build b/meson.build -index 15039e448..414f2d9b1 100644 ---- a/meson.build -+++ b/meson.build -@@ -1860,22 +1860,24 @@ endif - - # Test if we have strlcpy/strlcat with a compatible implementation: - # https://bugzilla.gnome.org/show_bug.cgi?id=53933 --if cc_can_run -- rres = cc.run('''#include <stdlib.h> -- #include <string.h> -- int main() { -- char p[10]; -- (void) strlcpy (p, "hi", 10); -- if (strlcat (p, "bye", 0) != 3) -- return 1; -- return 0; -- }''', -- name : 'OpenBSD strlcpy/strlcat') -- if rres.compiled() and rres.returncode() == 0 -+if cc.has_function('strlcpy') -+ if cc_can_run -+ rres = cc.run('''#include <stdlib.h> -+ #include <string.h> -+ int main() { -+ char p[10]; -+ (void) strlcpy (p, "hi", 10); -+ if (strlcat (p, "bye", 0) != 3) -+ return 1; -+ return 0; -+ }''', -+ name : 'OpenBSD strlcpy/strlcat') -+ if rres.compiled() and rres.returncode() == 0 -+ glib_conf.set('HAVE_STRLCPY', 1) -+ endif -+ elif meson.get_cross_property('have_strlcpy', false) - glib_conf.set('HAVE_STRLCPY', 1) - endif --elif meson.get_cross_property('have_strlcpy', false) -- glib_conf.set('HAVE_STRLCPY', 1) - endif - - python = import('python').find_installation('python3') --- -2.11.0 - 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/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch new file mode 100644 index 0000000000..14dcb278e0 --- /dev/null +++ b/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch @@ -0,0 +1,29 @@ +From 294f3e6e9a0a9f4733e85ed6810d1b743055370b 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 + builds + +We still use host distros like alma 8 with kernels older than 5.4, +where these features are not implemented. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin <alex@linutronix.de> +--- + meson.build | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 8bc5fa7..df1fa60 100644 +--- a/meson.build ++++ b/meson.build +@@ -981,7 +981,8 @@ if cc.links('''#include <sys/syscall.h> + waitid (P_PIDFD, 0, &child_info, WEXITED | WNOHANG); + return 0; + }''', name : 'pidfd_open(2) system call') +- glib_conf.set('HAVE_PIDFD', 1) ++ #requires kernel 5.4+ ++ #glib_conf.set('HAVE_PIDFD', 1) + endif + + # Check for __uint128_t (gcc) by checking for 128-bit division diff --git a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-hardcode-linux-as-the-host-system.patch b/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-hardcode-linux-as-the-host-system.patch deleted file mode 100644 index 5a1a589890..0000000000 --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-meson.build-do-not-hardcode-linux-as-the-host-system.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 635fe26af51f20194c8b208e7d01303be1086d68 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex.kanavin@gmail.com> -Date: Tue, 19 Feb 2019 10:31:11 +0100 -Subject: [PATCH] meson.build: do not hardcode 'linux' as the host system - -OE build system can set this to other values that include 'linux', -e.g. 'linux-gnueabi' - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> ---- - meson.build | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/meson.build b/meson.build -index 4348f20..af5ed63 100644 ---- a/meson.build -+++ b/meson.build -@@ -1574,7 +1574,7 @@ atomicdefine = ''' - # We know that we can always use real ("lock free") atomic operations with MSVC - if cc.get_id() == 'msvc' or cc.links(atomictest, name : 'atomic ops') - have_atomic_lock_free = true -- if (host_system == 'android' or host_system == 'linux') and not cc.compiles(atomicdefine, name : 'atomic ops define') -+ if (host_system == 'android' or host_system.contains('linux')) and not cc.compiles(atomicdefine, name : 'atomic ops define') - # When building for armv5 on Linux, gcc provides - # __sync_bool_compare_and_swap but doesn't define - # __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 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/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch index 872340df96..6dff5179c7 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/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch @@ -1,7 +1,7 @@ -From b9160d951b9af647b97766c57295ca4f45cf9521 Mon Sep 17 00:00:00 2001 +From 50636758c73e5e61212a8f801c6c602b8aab5ba7 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 10/10] Do not hardcode python path into various tools +Subject: [PATCH] Do not hardcode python path into various tools Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> @@ -12,7 +12,7 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gio/gdbus-2.0/codegen/gdbus-codegen.in b/gio/gdbus-2.0/codegen/gdbus-codegen.in -index 8050981..e693ef3 100755 +index 67d3675..4e92a7a 100755 --- a/gio/gdbus-2.0/codegen/gdbus-codegen.in +++ b/gio/gdbus-2.0/codegen/gdbus-codegen.in @@ -1,4 +1,4 @@ @@ -22,7 +22,7 @@ index 8050981..e693ef3 100755 # GDBus - GLib D-Bus Library # diff --git a/gobject/glib-genmarshal.in b/gobject/glib-genmarshal.in -index 09e8408..b2f9d99 100755 +index aa5af43..56e8e2e 100755 --- a/gobject/glib-genmarshal.in +++ b/gobject/glib-genmarshal.in @@ -1,4 +1,4 @@ @@ -32,7 +32,7 @@ index 09e8408..b2f9d99 100755 # pylint: disable=too-many-lines, missing-docstring, invalid-name diff --git a/gobject/glib-mkenums.in b/gobject/glib-mkenums.in -index d4bfd11..051fce4 100755 +index 353e53a..8ed6c39 100755 --- a/gobject/glib-mkenums.in +++ b/gobject/glib-mkenums.in @@ -1,4 +1,4 @@ @@ -41,6 +41,3 @@ index d4bfd11..051fce4 100755 # If the code below looks horrible and unpythonic, do not panic. # --- -2.14.1 - diff --git a/meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch b/meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch deleted file mode 100644 index 5ccd3203fb..0000000000 --- a/meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch +++ /dev/null @@ -1,137 +0,0 @@ -From 1481c6d5f08f9dbbe10abc87b372a1f61db36476 Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen <jussi.kukkonen@intel.com> -Date: Mon, 9 Nov 2015 11:07:27 +0200 -Subject: [PATCH] Enable more tests while cross-compiling - -Upstream disables a few tests while cross-compiling because their build requires -running other built binaries. This usually makes sense but in the cross-compile -case we can depend on glib-2.0-native. - -Upstream-Status: Inappropriate [OE specific] -Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> ---- - gio/tests/Makefile.am | 10 ++++++---- - gio/tests/meson.build | 15 ++++++++------- - tests/gobject/Makefile.am | 6 ++++++ - 3 files changed, 20 insertions(+), 11 deletions(-) - -diff --git a/gio/tests/Makefile.am b/gio/tests/Makefile.am -index c4e7a92..633e85c 100644 ---- a/gio/tests/Makefile.am -+++ b/gio/tests/Makefile.am -@@ -583,10 +583,9 @@ test_programs += \ - endif - - # ----------------------------------------------------------------------------- --# The resources test is a bit more complicated, and we cannot build it when --# cross-compiling GIO because it requires running a binary... -+# The resources test is a bit more complicated, and requires glib-native -+# for running a binary - --if !CROSS_COMPILING - test_programs += resources - resources_SOURCES = resources.c - nodist_resources_SOURCES = test_resources.c test_resources2.c test_resources2.h -@@ -611,7 +610,11 @@ if !ENABLE_INSTALLED_TESTS - libresourceplugin_la_LDFLAGS += -rpath / - endif - -+if !CROSS_COMPILING - glib_compile_resources=$(top_builddir)/gio/glib-compile-resources -+else -+glib_compile_resources=glib-compile-resources -+endif - - test-generated.txt: test1.txt - $(AM_V_GEN) echo "Generated" > $@ && \ -@@ -632,7 +635,6 @@ test.gresource: test.gresource.xml Makefile $(shell $(glib_compile_resources) -- - - EXTRA_DIST += test.gresource.xml test1.txt test2.gresource.xml test2.txt test3.gresource.xml test3.txt test4.gresource.xml - CLEANFILES += test-generated.txt test_resources.c test_resources2.[ch] plugin_resources.c test.gresource --endif # !CROSS_COMPILING - - BUILT_SOURCES += giotypefuncs.inc - -diff --git a/gio/tests/meson.build b/gio/tests/meson.build -index dca33bd..181f5c7 100644 ---- a/gio/tests/meson.build -+++ b/gio/tests/meson.build -@@ -173,7 +173,7 @@ if host_machine.system() != 'windows' - - # Test programs that need to bring up a session bus (requires dbus-daemon) - have_dbus_daemon = find_program('dbus-daemon', required : false).found() -- if have_dbus_daemon -+ if true - annotate_args = [ - '--annotate', 'org.project.Bar', 'Key1', 'Value1', - '--annotate', 'org.project.Bar', 'org.gtk.GDBus.Internal', 'Value2', -@@ -406,12 +406,13 @@ if installed_tests_enabled - install_subdir('cert-tests', install_dir : installed_tests_execdir) - endif - --if not meson.is_cross_build() or meson.has_exe_wrapper() -+#if not meson.is_cross_build() or meson.has_exe_wrapper() -+if meson.is_cross_build() - - plugin_resources_c = custom_target('plugin-resources.c', - input : 'test4.gresource.xml', - output : 'plugin-resources.c', -- command : [glib_compile_resources, -+ command : ['glib-compile-resources', - '--target=@OUTPUT@', - '--sourcedir=' + meson.current_source_dir(), - '--generate-source', -@@ -428,7 +429,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() - test_gresource = custom_target('test.gresource', - input : 'test.gresource.xml', - output : 'test.gresource', -- command : [glib_compile_resources, -+ command : ['glib-compile-resources', - '--target=@OUTPUT@', - '--sourcedir=' + meson.current_source_dir(), - '--sourcedir=' + meson.current_build_dir(), -@@ -439,7 +440,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() - test_resources2_c = custom_target('test_resources2.c', - input : 'test3.gresource.xml', - output : 'test_resources2.c', -- command : [glib_compile_resources, -+ command : ['glib-compile-resources', - '--target=@OUTPUT@', - '--sourcedir=' + meson.current_source_dir(), - '--generate', -@@ -450,7 +451,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() - test_resources2_h = custom_target('test_resources2.h', - input : 'test3.gresource.xml', - output : 'test_resources2.h', -- command : [glib_compile_resources, -+ command : ['glib-compile-resources', - '--target=@OUTPUT@', - '--sourcedir=' + meson.current_source_dir(), - '--generate', -@@ -461,7 +462,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() - test_resources_c = custom_target('test_resources.c', - input : 'test2.gresource.xml', - output : 'test_resources.c', -- command : [glib_compile_resources, -+ command : ['glib-compile-resources', - '--target=@OUTPUT@', - '--sourcedir=' + meson.current_source_dir(), - '--generate-source', -diff --git a/tests/gobject/Makefile.am b/tests/gobject/Makefile.am -index 1bcefbe..77e646a 100644 ---- a/tests/gobject/Makefile.am -+++ b/tests/gobject/Makefile.am -@@ -51,7 +51,13 @@ if ENABLE_TIMELOOP - installed_test_programs += timeloop-closure - endif - -+# The marshal test requires running a binary, which means we require -+# glib-native when cross-compiling -+if !CROSS_COMPILING - glib_genmarshal=$(top_builddir)/gobject/glib-genmarshal -+else -+glib_genmarshal=$(shell which glib-genmarshal) -+endif - - testmarshal.h: stamp-testmarshal.h - @true 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 new file mode 100644 index 0000000000..bdfbd55899 --- /dev/null +++ b/meta/recipes-core/glib-2.0/glib-2.0/fix-regex.patch @@ -0,0 +1,54 @@ +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 new file mode 100644 index 0000000000..4f38509da6 --- /dev/null +++ b/meta/recipes-core/glib-2.0/glib-2.0/memory-monitor.patch @@ -0,0 +1,361 @@ +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/meson.cross.d/common b/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common new file mode 100644 index 0000000000..0d7c5fa3f8 --- /dev/null +++ b/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common @@ -0,0 +1,3 @@ +[properties] +# On all known supported architectures the stack grows down +growing_stack = false diff --git a/meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross b/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-glibc index 8420f9874e..3049e5116e 100644 --- a/meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross +++ b/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-glibc @@ -3,4 +3,4 @@ have_c99_vsnprintf = true have_c99_snprintf = true have_unix98_printf = true va_val_copy = true -growing_stack = false +have_strlcpy = true diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux b/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux new file mode 100644 index 0000000000..adad7e62ee --- /dev/null +++ b/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux @@ -0,0 +1,5 @@ +[properties] +have_proc_self_cmdline = true + +[binaries] +env = '/usr/bin/env' diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-mingw b/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-mingw new file mode 100644 index 0000000000..75f911ba1e --- /dev/null +++ b/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-mingw @@ -0,0 +1,6 @@ +[properties] +have_c99_vsnprintf = false +have_c99_snprintf = false +have_unix98_printf = false +va_val_copy = true +have_proc_self_cmdline = false diff --git a/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-musl b/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-musl new file mode 100644 index 0000000000..3049e5116e --- /dev/null +++ b/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-musl @@ -0,0 +1,6 @@ +[properties] +have_c99_vsnprintf = true +have_c99_snprintf = true +have_unix98_printf = true +va_val_copy = true +have_strlcpy = true diff --git a/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch b/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch index a4e0c9201f..3e79bbf679 100644 --- a/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch +++ b/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch @@ -1,4 +1,4 @@ -From 9d985803c50cfb99253c757934985f937da34822 Mon Sep 17 00:00:00 2001 +From f40e89b3852df37959606ee13b1a14ade81fa886 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 @@ -13,38 +13,32 @@ Signed-off-by: Ross Burton <ross.burton@intel.com> Port patch to 2.48 Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> - --- - gio/giomodule.c | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) + gio/giomodule.c | 7 ------- + 1 file changed, 7 deletions(-) diff --git a/gio/giomodule.c b/gio/giomodule.c -index 36c0cef..912e490 100644 +index 17fabe6..8021208 100644 --- a/gio/giomodule.c +++ b/gio/giomodule.c -@@ -40,6 +40,8 @@ - #include "gnetworkmonitor.h" - #ifdef G_OS_WIN32 - #include "gregistrysettingsbackend.h" -+#else -+#include <dlfcn.h> - #endif - #include <glib/gstdio.h> - -@@ -1099,7 +1101,15 @@ get_gio_module_dir (void) - #endif +@@ -1271,11 +1271,6 @@ get_gio_module_dir (void) g_free (install_dir); #else -- module_dir = g_strdup (GIO_MODULE_DIR); -+ Dl_info info; -+ -+ if (dladdr (g_io_module_new, &info)) { -+ char *libdir = g_path_get_dirname (info.dli_fname); -+ module_dir = g_build_filename (libdir, "gio", "modules", NULL); -+ g_free (libdir); -+ } else { -+ module_dir = g_strdup (GIO_MODULE_DIR); -+ } + module_dir = g_strdup (GIO_MODULE_DIR); +-#ifdef __APPLE__ +-#include "TargetConditionals.h" +-/* Only auto-relocate on macOS, not watchOS etc; older macOS SDKs only define TARGET_OS_MAC */ +-#if (defined (TARGET_OS_OSX) && TARGET_OS_OSX) || \ +- (!defined (TARGET_OS_OSX) && defined (TARGET_OS_MAC) && TARGET_OS_MAC) + #include <dlfcn.h> + { + g_autofree gchar *path = NULL; +@@ -1294,8 +1289,6 @@ get_gio_module_dir (void) + } + } + } +-#endif +-#endif #endif } diff --git a/meta/recipes-core/glib-2.0/glib-2.0/run-ptest b/meta/recipes-core/glib-2.0/glib-2.0/run-ptest index 8f082d34f6..831bc3b91f 100644 --- a/meta/recipes-core/glib-2.0/glib-2.0/run-ptest +++ b/meta/recipes-core/glib-2.0/glib-2.0/run-ptest @@ -1,6 +1,10 @@ #! /bin/sh set -eux +if id -u glib2-test; then + userdel glib2-test +fi useradd glib2-test -su glib2-test -c gnome-desktop-testing-runner glib +cd /tmp +su glib2-test -c 'G_TEST_TMPDIR=`readlink -f /tmp` gnome-desktop-testing-runner glib' userdel glib2-test diff --git a/meta/recipes-core/glib-2.0/glib-2.0/skip-timeout.patch b/meta/recipes-core/glib-2.0/glib-2.0/skip-timeout.patch new file mode 100644 index 0000000000..cd5ac287c3 --- /dev/null +++ b/meta/recipes-core/glib-2.0/glib-2.0/skip-timeout.patch @@ -0,0 +1,32 @@ +From bb11d1a4ae77d93ec0743e54077cf0f990243fa6 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 + +This test is sensitive to load because it expects certain timeout operations +to succeed in specific time periods. Whilst these timeouts are fairly large, +they're still exceeded inside a qemu on a loaded system. + +https://bugzilla.yoctoproject.org/show_bug.cgi?id=14464 + +Upstream-Status: Inappropriate [OE-specific] +Signed-off-by: Ross Burton <ross.burton@arm.com> +--- + glib/tests/timeout.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/glib/tests/timeout.c b/glib/tests/timeout.c +index 1ae3f3a34..85a715b0f 100644 +--- a/glib/tests/timeout.c ++++ b/glib/tests/timeout.c +@@ -214,7 +214,6 @@ main (int argc, char *argv[]) + g_test_add_func ("/timeout/seconds-once", test_seconds_once); + g_test_add_func ("/timeout/weeks-overflow", test_weeks_overflow); + g_test_add_func ("/timeout/far-future-ready-time", test_far_future_ready_time); +- g_test_add_func ("/timeout/rounding", test_rounding); + + return g_test_run (); + } +-- +2.34.1 + diff --git a/meta/recipes-core/glib-2.0/glib-2.0/uclibc_musl_translation.patch b/meta/recipes-core/glib-2.0/glib-2.0/uclibc_musl_translation.patch deleted file mode 100644 index 7aa6217d69..0000000000 --- a/meta/recipes-core/glib-2.0/glib-2.0/uclibc_musl_translation.patch +++ /dev/null @@ -1,22 +0,0 @@ -Fix DATADIRNAME on uclibc/Linux - -translation files are always installed under PREFIX/share/locale in uclibc -based systems therefore lets set DATADIRNAME to "share". - -Signed-off-by: Khem Raj <raj.khem@gmail.com> -Upstream-Status: Pending -Index: glib-2.46.1/m4macros/glib-gettext.m4 -=================================================================== ---- glib-2.46.1.orig/m4macros/glib-gettext.m4 -+++ glib-2.46.1/m4macros/glib-gettext.m4 -@@ -243,6 +243,10 @@ msgstr "" - CATOBJEXT=.mo - DATADIRNAME=share - ;; -+ *-*-musl* | *-*-linux-uclibc*) -+ CATOBJEXT=.gmo -+ DATADIRNAME=share -+ ;; - *) - CATOBJEXT=.mo - DATADIRNAME=lib |