diff options
Diffstat (limited to 'meta/recipes-core/glib-2.0')
26 files changed, 378 insertions, 476 deletions
diff --git a/meta/recipes-core/glib-2.0/files/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 new file mode 100644 index 0000000000..10568b7c9f --- /dev/null +++ b/meta/recipes-core/glib-2.0/files/0001-Do-not-write-bindir-into-pkg-config-files.patch @@ -0,0 +1,65 @@ +From 10b08af6c7dcb03f954da29b6c4f9636b8796f30 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 prefix executables with $bindir in pkg-config files + +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 | 17 +++++++++-------- + glib/meson.build | 7 ++++--- + 2 files changed, 13 insertions(+), 11 deletions(-) + +diff --git a/gio/meson.build b/gio/meson.build +index 77cba7b..25d709e 100644 +--- a/gio/meson.build ++++ b/gio/meson.build +@@ -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, + '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, +diff --git a/glib/meson.build b/glib/meson.build +index d2efeba..5f5841d 100644 +--- a/glib/meson.build ++++ b/glib/meson.build +@@ -447,9 +447,10 @@ pkg.generate(libglib, + subdirs : ['glib-2.0'], + extra_cflags : ['-I${libdir}/glib-2.0/include'] + win32_cflags, + variables : [ +- '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', + '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/files/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch index 16f2d31496..b9c9706fc4 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 c94e669de98a3892c699bd8d0d2b5164b2de747e Mon Sep 17 00:00:00 2001 +From 55c49c51d8db5af15132653003d2b65a5215eebf 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 @@ -8,8 +8,6 @@ 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/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 index 597864d9ac..bc539fe3e8 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 0015db45cd1bfefc04959dffab5dabeead93136f Mon Sep 17 00:00:00 2001 +From 53333cf3ec787cb7e60585237327390e2ca89f4c 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,16 +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/meson.build | 1 + 1 file changed, 1 insertion(+) diff --git a/gio/meson.build b/gio/meson.build -index 2ef60ed..532b086 100644 +index 59c2b0f..77cba7b 100644 --- a/gio/meson.build +++ b/gio/meson.build -@@ -936,6 +936,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 index 6fd93526ce..5e543339d8 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 4f47b8a8d650d185aa61aec2f56a283522a723c4 Mon Sep 17 00:00:00 2001 +From 3db055ce8029372096be534c5cfc385f068bab17 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 @@ -9,13 +9,12 @@ 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 7888120..7acbd5b 100644 +index 04ef404..e791ce2 100644 --- a/gio/glib-compile-schemas.c +++ b/gio/glib-compile-schemas.c @@ -1232,19 +1232,6 @@ parse_state_start_schema (ParseState *state, 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 index d33fdd4d8b..aa7127b65b 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 92de6c7eb30b961b24a2dce812d5276487b7d23d Mon Sep 17 00:00:00 2001 +From 97b4f18c65c52c9e6412ecf8affc22f6f42d3465 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 @@ -8,16 +8,15 @@ 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 c44d214..e289a01 100644 +index f7dc039..f708876 100644 --- a/gio/tests/resources.c +++ b/gio/tests/resources.c -@@ -993,7 +993,7 @@ main (int argc, +@@ -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); 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 0000000000..7be9cd8b84 --- /dev/null +++ b/meta/recipes-core/glib-2.0/files/0001-girepository-introspection-correctly-install-.gir-fi.patch @@ -0,0 +1,88 @@ +From f1beef5c2d09fae3a5e5a314f984cb3f20abe732 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 index 44482dd2b7..3a8d3596b0 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 4b97f457b7b44117e27d2a218c4b68e7fe3fe4ce Mon Sep 17 00:00:00 2001 +From f04ea29f9f96892ada81bd0acfcef70183138229 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 @@ -9,16 +9,15 @@ Fixes 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 afb6eaa..6aa70f5 100644 +index 257afb5..5caa6e6 100644 --- a/meson.build +++ b/meson.build -@@ -1692,7 +1692,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/files/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 new file mode 100644 index 0000000000..9be04960aa --- /dev/null +++ b/meta/recipes-core/glib-2.0/files/0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch @@ -0,0 +1,29 @@ +From a63c865aa9a24f3230e8e2bcb5bce88f179c7e2b 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 5caa6e6..688f214 100644 +--- a/meson.build ++++ b/meson.build +@@ -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') +- 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/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 index 1c645f3a9a..4dec252c1f 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,11 +1,10 @@ -From 79ce7e545dd3a93f77d2146d50b6fa061fbceed9 Mon Sep 17 00:00:00 2001 +From dc7f09c4f52638a70768c528d186da6f83dedc97 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 Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> - --- gio/gdbus-2.0/codegen/gdbus-codegen.in | 2 +- gobject/glib-genmarshal.in | 2 +- @@ -23,7 +22,7 @@ index 67d3675..4e92a7a 100755 # GDBus - GLib D-Bus Library # diff --git a/gobject/glib-genmarshal.in b/gobject/glib-genmarshal.in -index 7380f24..c8abeaa 100755 +index aa5af43..56e8e2e 100755 --- a/gobject/glib-genmarshal.in +++ b/gobject/glib-genmarshal.in @@ -1,4 +1,4 @@ @@ -33,7 +32,7 @@ index 7380f24..c8abeaa 100755 # pylint: disable=too-many-lines, missing-docstring, invalid-name diff --git a/gobject/glib-mkenums.in b/gobject/glib-mkenums.in -index 91ad779..3ebef62 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 index 0d7c5fa3f8..0d7c5fa3f8 100644 --- 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 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-glibc index 3049e5116e..3049e5116e 100644 --- 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-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 index adad7e62ee..adad7e62ee 100644 --- 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 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 index 75f911ba1e..75f911ba1e 100644 --- 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 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-musl index c4648f58c7..3049e5116e 100644 --- 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-musl @@ -3,3 +3,4 @@ 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/files/relocate-modules.patch b/meta/recipes-core/glib-2.0/files/relocate-modules.patch new file mode 100644 index 0000000000..a1ff198aa6 --- /dev/null +++ b/meta/recipes-core/glib-2.0/files/relocate-modules.patch @@ -0,0 +1,44 @@ +From 0133aeabd37a9137722abd86039d7d0797b5896f 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 + +Instead of hard-coding GIO_MODULE_PATH when glib is built, use dladdr() to +determine where libglib.so is and use that path to calculate GIO_MODULES_DIR. + +This solves relocation problems with GIOModule for native builds of glib. + +Upstream-Status: Inappropriate +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 | 7 ------- + 1 file changed, 7 deletions(-) + +diff --git a/gio/giomodule.c b/gio/giomodule.c +index 1e14955..3c09bb5 100644 +--- a/gio/giomodule.c ++++ b/gio/giomodule.c +@@ -1259,11 +1259,6 @@ get_gio_module_dir (void) + g_free (install_dir); + #else + 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; +@@ -1282,8 +1277,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/files/run-ptest index 7a231b514b..831bc3b91f 100644 --- a/meta/recipes-core/glib-2.0/glib-2.0/run-ptest +++ b/meta/recipes-core/glib-2.0/files/run-ptest @@ -5,5 +5,6 @@ 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/files/skip-timeout.patch b/meta/recipes-core/glib-2.0/files/skip-timeout.patch new file mode 100644 index 0000000000..0f8b51294b --- /dev/null +++ b/meta/recipes-core/glib-2.0/files/skip-timeout.patch @@ -0,0 +1,29 @@ +From ac75f5d9206e52eec64fef0db4cd91b58a764c99 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 1ae3f3a..85a715b 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 (); + } diff --git a/meta/recipes-core/glib-2.0/glib-2.0-initial_2.80.2.bb b/meta/recipes-core/glib-2.0/glib-2.0-initial_2.80.2.bb new file mode 100644 index 0000000000..7da2838265 --- /dev/null +++ b/meta/recipes-core/glib-2.0/glib-2.0-initial_2.80.2.bb @@ -0,0 +1,5 @@ +require glib.inc +PACKAGES = "" +PACKAGECONFIG = "" + + 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 f3a0069633..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 658c034d92027dc8af5f784cae852123fac79b19 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 7639d06..f941141 100644 ---- a/glib/tests/unix.c -+++ b/glib/tests/unix.c -@@ -33,14 +33,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 deleted file mode 100644 index 5fe3aa898e..0000000000 --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 0797a40627a4cb5439a24b872edc65356dceaaf0 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 - -This would otherwise break when using the files 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(-) - -diff --git a/gio/meson.build b/gio/meson.build -index 532b086..98468a3 100644 ---- a/gio/meson.build -+++ b/gio/meson.build -@@ -820,14 +820,14 @@ pkg.generate(libgio, - 'schemasdir=' + join_paths('${datadir}', schemas_subdir), - 'bindir=' + join_paths('${prefix}', get_option('bindir')), - 'giomoduledir=' + pkgconfig_giomodulesdir, -- 'gio=' + join_paths('${bindir}', 'gio'), -- 'gio_querymodules=' + join_paths('${bindir}', 'gio-querymodules'), -- 'glib_compile_schemas=' + join_paths('${bindir}', 'glib-compile-schemas'), -- 'glib_compile_resources=' + join_paths('${bindir}', 'glib-compile-resources'), -- 'gdbus=' + join_paths('${bindir}', 'gdbus'), -- 'gdbus_codegen=' + join_paths('${bindir}', 'gdbus-codegen'), -- 'gresource=' + join_paths('${bindir}', 'gresource'), -- 'gsettings=' + join_paths('${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 aaf5f00..1e0992b 100644 ---- a/glib/meson.build -+++ b/glib/meson.build -@@ -375,9 +375,9 @@ pkg.generate(libglib, - subdirs : ['glib-2.0'], - extra_cflags : ['-I${libdir}/glib-2.0/include'] + win32_cflags, - variables : ['bindir=' + join_paths('${prefix}', get_option('bindir')), -- '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', 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 deleted file mode 100644 index 59de3fa969..0000000000 --- a/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 4f327be49fd6ac5a77da6e48459b37f37a601977 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 | 2 +- - meson.build | 3 +++ - tests/meson.build | 2 +- - 4 files changed, 9 insertions(+), 6 deletions(-) - -diff --git a/gio/tests/meson.build b/gio/tests/meson.build -index abe676767c60..34b347815308 100644 ---- a/gio/tests/meson.build -+++ b/gio/tests/meson.build -@@ -27,7 +27,7 @@ if build_machine.system() == 'linux' - endif # libutil.length() > 0 - endif # build_machine.system() == 'linux' - --if host_machine.system() == 'windows' -+if host_system == 'windows' - common_gio_tests_deps += [iphlpapi_dep, winsock2, cc.find_library ('secur32')] - endif - -@@ -176,7 +176,7 @@ else - endif - - # Test programs buildable on UNIX only --if host_machine.system() != 'windows' -+if host_system != 'windows' - gio_tests += { - 'file' : {}, - 'gdbus-peer' : { -@@ -434,7 +434,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' : {}} - endif - -@@ -504,7 +504,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 += { - 'gdbus-example-unix-fd-client' : { - 'install' : false, -diff --git a/glib/tests/meson.build b/glib/tests/meson.build -index a0c64afe6ae9..48407f99569c 100644 ---- a/glib/tests/meson.build -+++ b/glib/tests/meson.build -@@ -151,7 +151,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 e0b14319fb58..f6756a3c7dfb 100644 ---- a/meson.build -+++ b/meson.build -@@ -54,6 +54,9 @@ else - endif - - host_system = host_machine.system() -+if host_system == 'mingw32' -+ host_system = 'windows' -+endif - - if host_system == 'darwin' - ios_test_code = '''#include <TargetConditionals.h> -diff --git a/tests/meson.build b/tests/meson.build -index 5ff99a4a8258..8a4dad0ccae7 100644 ---- a/tests/meson.build -+++ b/tests/meson.build -@@ -53,7 +53,7 @@ test_extra_programs = { - 'assert-msg-test' : {}, - } - --if host_machine.system() != 'windows' -+if host_system != 'windows' - tests += { - 'timeloop' : {}, - } --- -2.34.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 f5c161fe04..0000000000 --- a/meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch +++ /dev/null @@ -1,123 +0,0 @@ -From 1f3c05529c0c9032ae0a289fb1f088b7541fc9b0 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/meson.build | 24 ++++++++++++------------ - 1 file changed, 12 insertions(+), 12 deletions(-) - -diff --git a/gio/tests/meson.build b/gio/tests/meson.build -index 3ed23a5..5df932a 100644 ---- a/gio/tests/meson.build -+++ b/gio/tests/meson.build -@@ -253,7 +253,7 @@ if host_machine.system() != 'windows' - } - endif - -- if have_dbus_daemon -+ if true - annotate_args = [ - '--annotate', 'org.project.Bar', 'Key1', 'Value1', - '--annotate', 'org.project.Bar', 'org.gtk.GDBus.Internal', 'Value2', -@@ -603,14 +603,14 @@ if installed_tests_enabled - endforeach - endif - --if not meson.is_cross_build() or meson.has_exe_wrapper() -+if meson.is_cross_build() - - compiler_type = '--compiler=@0@'.format(cc.get_id()) - - plugin_resources_c = custom_target('plugin-resources.c', - input : 'test4.gresource.xml', - output : 'plugin-resources.c', -- command : [glib_compile_resources, -+ command : ['glib-compile-resources', - compiler_type, - '--target=@OUTPUT@', - '--sourcedir=' + meson.current_source_dir(), -@@ -636,7 +636,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', - compiler_type, - '--target=@OUTPUT@', - '--sourcedir=' + meson.current_source_dir(), -@@ -649,7 +649,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', - compiler_type, - '--target=@OUTPUT@', - '--sourcedir=' + meson.current_source_dir(), -@@ -662,7 +662,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', - compiler_type, - '--target=@OUTPUT@', - '--sourcedir=' + meson.current_source_dir(), -@@ -676,7 +676,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() - input : 'test2.gresource.xml', - depends : big_test_resource, - output : 'test_resources.c', -- command : [glib_compile_resources, -+ command : ['glib-compile-resources', - compiler_type, - '--target=@OUTPUT@', - '--sourcedir=' + meson.current_source_dir(), -@@ -689,7 +689,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() - digit_test_resources_c = custom_target('digit_test_resources.c', - input : '111_digit_test.gresource.xml', - output : 'digit_test_resources.c', -- command : [glib_compile_resources, -+ command : ['glib-compile-resources', - compiler_type, - '--target=@OUTPUT@', - '--sourcedir=' + meson.current_source_dir(), -@@ -702,7 +702,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() - digit_test_resources_h = custom_target('digit_test_resources.h', - input : '111_digit_test.gresource.xml', - output : 'digit_test_resources.h', -- command : [glib_compile_resources, -+ command : ['glib-compile-resources', - compiler_type, - '--target=@OUTPUT@', - '--sourcedir=' + meson.current_source_dir(), -@@ -744,11 +744,11 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() - - ld = find_program('ld', required : false) - -- if build_machine.system() == 'linux' and objcopy.found() and objcopy_supports_add_symbol and ld.found() -+ if not meson.is_cross_build() - test_gresource_binary = custom_target('test5.gresource', - input : 'test5.gresource.xml', - output : 'test5.gresource', -- command : [glib_compile_resources, -+ command : ['glib-compile-resources', - compiler_type, - '--target=@OUTPUT@', - '--sourcedir=' + meson.current_source_dir(), -@@ -762,7 +762,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() - test_resources_binary_c = custom_target('test_resources_binary.c', - input : 'test5.gresource.xml', - output : 'test_resources_binary.c', -- command : [glib_compile_resources, -+ command : ['glib-compile-resources', - compiler_type, - '--target=@OUTPUT@', - '--sourcedir=' + meson.current_source_dir(), 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 deleted file mode 100644 index c0114397d8..0000000000 --- a/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 9a66887179d28d696562dcac43ad05d67580cfdb 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 - -Instead of hard-coding GIO_MODULE_PATH when glib is built, use dladdr() to -determine where libglib.so is and use that path to calculate GIO_MODULES_DIR. - -This solves relocation problems with GIOModule for native builds of glib. - -Upstream-Status: Inappropriate -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(-) - -diff --git a/gio/giomodule.c b/gio/giomodule.c -index 2a043cc..e2d2310 100644 ---- a/gio/giomodule.c -+++ b/gio/giomodule.c -@@ -56,6 +56,8 @@ - #ifdef G_OS_WIN32 - #include "gregistrysettingsbackend.h" - #include "giowin32-priv.h" -+#else -+#include <dlfcn.h> - #endif - #include <glib/gstdio.h> - -@@ -1267,7 +1269,15 @@ get_gio_module_dir (void) - NULL); - 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); -+ } - #endif - } - diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.72.3.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.72.3.bb deleted file mode 100644 index dd1ea508d2..0000000000 --- a/meta/recipes-core/glib-2.0/glib-2.0_2.72.3.bb +++ /dev/null @@ -1,53 +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://Enable-more-tests-while-cross-compiling.patch \ - file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \ - file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \ - file://0001-Do-not-ignore-return-value-of-write.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 \ - " -SRC_URI:append:class-native = " file://relocate-modules.patch" - -SRC_URI[sha256sum] = "4a39a2f624b8512d500d5840173eda7fa85f51c109052eae806acece85d345f0" - -# 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.2.bb b/meta/recipes-core/glib-2.0/glib-2.0_2.80.2.bb new file mode 100644 index 0000000000..ef80cc47cf --- /dev/null +++ b/meta/recipes-core/glib-2.0/glib-2.0_2.80.2.bb @@ -0,0 +1,2 @@ +require glib.inc + diff --git a/meta/recipes-core/glib-2.0/glib.inc b/meta/recipes-core/glib-2.0/glib.inc index ffddefe22e..690d1c162c 100644 --- a/meta/recipes-core/glib-2.0/glib.inc +++ b/meta/recipes-core/glib-2.0/glib.inc @@ -5,10 +5,10 @@ HOMEPAGE = "https://developer.gnome.org/glib/" # pcre is under BSD; # docs/reference/COPYING is with a 'public domain'-like license! LICENSE = "LGPL-2.1-or-later & BSD-3-Clause & PD" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ - file://glib/glib.h;beginline=4;endline=17;md5=b88abb7f3ad09607e71cb9d530155906 \ - file://gmodule/COPYING;md5=4fbd65380cdd255951079008b364516c \ - file://gmodule/gmodule.h;beginline=4;endline=17;md5=b88abb7f3ad09607e71cb9d530155906 \ +LIC_FILES_CHKSUM = "file://COPYING;md5=41890f71f740302b785c27661123bff5 \ + file://glib/glib.h;beginline=4;endline=17;md5=72f7cc2847407f65d8981ef112e4e630 \ + file://LICENSES/LGPL-2.1-or-later.txt;md5=41890f71f740302b785c27661123bff5 \ + file://gmodule/gmodule.h;beginline=4;endline=17;md5=72f7cc2847407f65d8981ef112e4e630 \ file://docs/reference/COPYING;md5=f51a5100c17af6bae00735cd791e1fcc" BUGTRACKER = "http://bugzilla.gnome.org" SECTION = "libs" @@ -21,31 +21,33 @@ DEPENDS = "glib-2.0-native \ virtual/libintl \ virtual/libiconv \ libffi \ - libpcre \ + libpcre2 \ zlib" 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 - -DEPENDS:append:class-target = "${@' gtk-doc' if d.getVar('GTKDOC_ENABLED') == 'True' else ''}" - -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}" +GIDOCGEN_MESON_OPTION = "documentation" + 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" -# libelf is auto-detected without a configuration option -PACKAGECONFIG[libelf] = ",,elfutils" +PACKAGECONFIG[manpages] = "-Dman-pages=enabled, -Dman-pages=disabled, 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 -Dfam=false -Dsystemtap=false" +EXTRA_OEMESON = "-Ddtrace=false -Dsystemtap=false" +EXTRA_OEMESON:append:class-target = " ${@'-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 @@ -54,19 +56,18 @@ do_configure:prepend() { FILES:${PN} = "${libdir}/lib*${SOLIBS} \ ${libdir}/gio \ ${libexecdir}/*gio-querymodules \ - ${datadir}/glib-2.0/schemas" - -FILES:${PN}-utils += "${bindir}/glib-genmarshal \ - ${bindir}/glib-gettextize \ - ${bindir}/glib-mkenums \ - ${bindir}/glib-compile-resources" - + ${libexecdir}/*gio-launch-desktop \ + ${datadir}/glib-2.0/dtds \ + ${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 \ @@ -117,6 +118,11 @@ do_install:append () { mkdir -p ${D}${libdir}/gio/modules } +do_install:append:class-native () { + # Link gio-querymodules into ${bindir} as otherwise tools like meson won't find it + ln -rs ${D}${libexecdir}/gio-querymodules ${D}${bindir} +} + do_install:append:class-target () { # Tests are only installed on targets, not native builds. Separating this out # keeps glib-2.0-native from depending on DISTRO_FEATURES @@ -130,14 +136,22 @@ do_install:append:class-target () { mv ${D}${datadir}/installed-tests/glib/static-link.test ${D}${datadir}/installed-tests/glib/${MLPREFIX}static-link.test fi fi + # https://gitlab.gnome.org/GNOME/glib/-/issues/2810 + rm -f ${D}${datadir}/installed-tests/glib/thread-pool-slow.test +} +do_install:append:class-target:libc-musl () { + # Remove failing tests on musl libc systems, this helps set baseline for musl testing + # they remain to be rootcaused and fixed but marked known failures here. + for t in convert.test collate.test gdatetime.test date.test converter-stream.test option-context.test; do + rm -rf ${D}${datadir}/installed-tests/glib/$t + done } - # As we do not build python3 for windows, makes no sense to ship the script that's using it do_install:append:mingw32() { rm -f ${D}${bindir}/gtester-report } -CODEGEN_PYTHON_RDEPENDS = "python3 python3-distutils python3-xml" +CODEGEN_PYTHON_RDEPENDS = "python3 python3-packaging python3-xml" CODEGEN_PYTHON_RDEPENDS:mingw32 = "" RDEPENDS:${PN}-codegen += "${CODEGEN_PYTHON_RDEPENDS}" @@ -148,6 +162,7 @@ RDEPENDS:${PN}-ptest += "\ coreutils \ libgcc \ dbus \ + desktop-file-utils \ gnome-desktop-testing \ tzdata \ tzdata-americas \ @@ -167,6 +182,12 @@ RDEPENDS:${PN}-ptest += "\ python3-modules \ ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'python3-dbusmock', '', d)} \ ${PN}-codegen \ + locale-base-de-de \ + locale-base-es-es \ + locale-base-en-gb \ + locale-base-en-us \ + locale-base-fr-fr \ + locale-base-ru-ru \ " RDEPENDS:${PN}-ptest:append:libc-glibc = "\ @@ -181,18 +202,65 @@ RDEPENDS:${PN}-ptest:append:libc-glibc = "\ glibc-gconv-iso8859-15 \ glibc-charmap-invariant \ glibc-localedata-translit-cjk-variants \ - locale-base-tr-tr \ locale-base-lt-lt \ locale-base-ja-jp.euc-jp \ locale-base-fa-ir \ - locale-base-ru-ru \ - locale-base-de-de \ locale-base-hr-hr \ locale-base-el-gr \ - locale-base-fr-fr \ - locale-base-es-es \ - locale-base-en-gb \ - locale-base-en-us \ locale-base-pl-pl \ 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-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] = "b9cfb6f7a5bd5b31238fd5d56df226b2dda5ea37611475bf89f6a0f9400fe8bd" + +# 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) +} |