diff options
Diffstat (limited to 'external/poky/meta/recipes-core/glib-2.0')
25 files changed, 507 insertions, 878 deletions
diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch new file mode 100644 index 00000000..8dd959b7 --- /dev/null +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch @@ -0,0 +1,61 @@ +From 60b36289ac314ad972cf81c1acd19f6f2e58ff25 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 71e88c4..8ce3987 100644 +--- a/gio/meson.build ++++ b/gio/meson.build +@@ -831,14 +831,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 91a48f1..978fb73 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/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch new file mode 100644 index 00000000..d8cf269b --- /dev/null +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch @@ -0,0 +1,34 @@ +From 15f807481de53942525b48952c5b6bbb9fb66542 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 + +%% original patch: uclibc_musl_translation.patch +--- + 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 +-- +2.17.1 + diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch index 97d0aff5..a3d71f2b 100644 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch @@ -1,4 +1,4 @@ -From 856045927b9ab391165c0ebabf401835f8439eab Mon Sep 17 00:00:00 2001 +From d29dfba67b1808eea6d428085f95b6e42cf2d1e4 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 @@ -10,20 +10,18 @@ Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> Upstream-Status: Inappropriate [OE specific] --- - gio/Makefile.am | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) + gio/meson.build | 1 + + 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:$@ +diff --git a/gio/meson.build b/gio/meson.build +index 4e5e021..90a741a 100644 +--- a/gio/meson.build ++++ b/gio/meson.build +@@ -940,6 +940,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, ++ install_dir: glib_libexecdir, + dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep]) --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 \ + glib_compile_schemas = executable('glib-compile-schemas', diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch new file mode 100644 index 00000000..b02169e0 --- /dev/null +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch @@ -0,0 +1,95 @@ +From cfff734af6bff6a30a649f784ecf698658c01884 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 95aafc1..9025eb2 100644 +--- a/gio/tests/meson.build ++++ b/gio/tests/meson.build +@@ -13,7 +13,7 @@ test_c_args = [ + '-UG_DISABLE_ASSERT', + ] + +-if host_machine.system() == 'windows' ++if host_system == 'windows' + common_gio_tests_deps += [iphlpapi_dep, winsock2, cc.find_library ('secur32')] + endif + +@@ -120,7 +120,7 @@ if dbus1_dep.found() + endif + + # Test programs buildable on UNIX only +-if host_machine.system() != 'windows' ++if host_system != 'windows' + gio_tests += { + 'file' : {}, + 'gdbus-peer' : { +@@ -332,7 +332,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 + +@@ -397,7 +397,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 c47133f..cad975f 100644 +--- a/glib/tests/meson.build ++++ b/glib/tests/meson.build +@@ -132,7 +132,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 717d1bc..2a3beb8 100644 +--- a/meson.build ++++ b/meson.build +@@ -32,6 +32,9 @@ else + endif + + host_system = host_machine.system() ++if host_system == 'mingw32' ++ 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 ce30442..5710f2c 100644 +--- a/tests/meson.build ++++ b/tests/meson.build +@@ -66,7 +66,7 @@ test_extra_programs = { + 'unicode-collate' : {}, + } + +-if host_machine.system() != 'windows' ++if host_system != 'windows' + tests += { + 'timeloop' : {}, + 'iochannel-test' : {}, diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch b/external/poky/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 00000000..3dfef176 --- /dev/null +++ b/external/poky/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 730803f2bc3f2f1a74f4db809a224066e7eae114 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 c44d214..e289a01 100644 +--- a/gio/tests/resources.c ++++ b/gio/tests/resources.c +@@ -993,7 +993,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/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch new file mode 100644 index 00000000..833ad254 --- /dev/null +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch @@ -0,0 +1,31 @@ +From cce617bec254e327ed7bcad60f58208024c6dc42 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 9731de4..c678931 100644 +--- a/meson.build ++++ b/meson.build +@@ -1634,7 +1634,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 +-- +2.23.0 + diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch index 697d63d5..872340df 100644 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch @@ -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 100644 +index 8050981..e693ef3 100755 --- a/gio/gdbus-2.0/codegen/gdbus-codegen.in +++ b/gio/gdbus-2.0/codegen/gdbus-codegen.in @@ -1,4 +1,4 @@ diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-12450.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-12450.patch deleted file mode 100644 index 37ad5808..00000000 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-12450.patch +++ /dev/null @@ -1,59 +0,0 @@ -From d8f8f4d637ce43f8699ba94c9b7648beda0ca174 Mon Sep 17 00:00:00 2001 -From: Ondrej Holy <oholy@redhat.com> -Date: Thu, 23 May 2019 10:41:53 +0200 -Subject: [PATCH] gfile: Limit access to files when copying - -file_copy_fallback creates new files with default permissions and -set the correct permissions after the operation is finished. This -might cause that the files can be accessible by more users during -the operation than expected. Use G_FILE_CREATE_PRIVATE for the new -files to limit access to those files. - -Upstream-Status: Backport -https://gitlab.gnome.org/GNOME/glib/commit/d8f8f4d637ce43f8699ba94c9b7648beda0ca174 -CVE: CVE-2019-12450 -Signed-off-by: Armin kuster <akuster@mvista.com> - ---- - gio/gfile.c | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) - -diff --git a/gio/gfile.c b/gio/gfile.c -index 24b136d..74b5804 100644 ---- a/gio/gfile.c -+++ b/gio/gfile.c -@@ -3284,12 +3284,12 @@ file_copy_fallback (GFile *source, - out = (GOutputStream*)_g_local_file_output_stream_replace (_g_local_file_get_filename (G_LOCAL_FILE (destination)), - FALSE, NULL, - flags & G_FILE_COPY_BACKUP, -- G_FILE_CREATE_REPLACE_DESTINATION, -- info, -+ G_FILE_CREATE_REPLACE_DESTINATION | -+ G_FILE_CREATE_PRIVATE, info, - cancellable, error); - else - out = (GOutputStream*)_g_local_file_output_stream_create (_g_local_file_get_filename (G_LOCAL_FILE (destination)), -- FALSE, 0, info, -+ FALSE, G_FILE_CREATE_PRIVATE, info, - cancellable, error); - } - else if (flags & G_FILE_COPY_OVERWRITE) -@@ -3297,12 +3297,13 @@ file_copy_fallback (GFile *source, - out = (GOutputStream *)g_file_replace (destination, - NULL, - flags & G_FILE_COPY_BACKUP, -- G_FILE_CREATE_REPLACE_DESTINATION, -+ G_FILE_CREATE_REPLACE_DESTINATION | -+ G_FILE_CREATE_PRIVATE, - cancellable, error); - } - else - { -- out = (GOutputStream *)g_file_create (destination, 0, cancellable, error); -+ out = (GOutputStream *)g_file_create (destination, G_FILE_CREATE_PRIVATE, cancellable, error); - } - - if (!out) --- -2.7.4 - diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-13012.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-13012.patch deleted file mode 100644 index 29c5d984..00000000 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-13012.patch +++ /dev/null @@ -1,47 +0,0 @@ -From c7f7fd53780f8caebccc903d61ffc21632b46a6c Mon Sep 17 00:00:00 2001 -From: Matthias Clasen <mclasen@redhat.com> -Date: Tue, 22 Jan 2019 13:26:31 -0500 -Subject: [PATCH] keyfile settings: Use tighter permissions - -When creating directories, create them with 700 permissions, -instead of 777. - -Closes: #1658 - -Upstream-Status: Backport -[https://gitlab.gnome.org/GNOME/glib/commit -/5e4da714f00f6bfb2ccd6d73d61329c6f3a08429] - -CVE: CVE-2019-13012 - -Signed-off-by: Kevin Weng <t-keweng@microsoft.com> ---- - gio/gkeyfilesettingsbackend.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/gio/gkeyfilesettingsbackend.c b/gio/gkeyfilesettingsbackend.c -index a37978e83..580a0b0a1 100644 ---- a/gio/gkeyfilesettingsbackend.c -+++ b/gio/gkeyfilesettingsbackend.c -@@ -89,7 +89,8 @@ g_keyfile_settings_backend_keyfile_write (GKeyfileSettingsBackend *kfsb) - - contents = g_key_file_to_data (kfsb->keyfile, &length, NULL); - g_file_replace_contents (kfsb->file, contents, length, NULL, FALSE, -- G_FILE_CREATE_REPLACE_DESTINATION, -+ G_FILE_CREATE_REPLACE_DESTINATION | -+ G_FILE_CREATE_PRIVATE, - NULL, NULL, NULL); - - compute_checksum (kfsb->digest, contents, length); -@@ -640,7 +641,7 @@ g_keyfile_settings_backend_new (const gchar *filename, - - kfsb->file = g_file_new_for_path (filename); - kfsb->dir = g_file_get_parent (kfsb->file); -- g_file_make_directory_with_parents (kfsb->dir, NULL, NULL); -+ g_mkdir_with_parents (g_file_peek_path (kfsb->dir), 0700); - - kfsb->file_monitor = g_file_monitor (kfsb->file, 0, NULL, NULL); - kfsb->dir_monitor = g_file_monitor (kfsb->dir, 0, NULL, NULL); --- -2.22.0 - diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-9633_p1.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-9633_p1.patch deleted file mode 100644 index f95716ae..00000000 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-9633_p1.patch +++ /dev/null @@ -1,316 +0,0 @@ -From c1e32b90576af11556c8a9178e43902f3394a4b0 Mon Sep 17 00:00:00 2001 -From: Patrick Griffis <pgriffis@igalia.com> -Date: Mon, 29 Oct 2018 09:53:07 -0400 -Subject: [PATCH] gsocketclient: Improve handling of slow initial connections - -Currently a new connection will not be attempted until the previous -one has timed out and as the current API only exposes a single -timeout value in practice it often means that it will wait 30 seconds -(or forever with 0 (the default)) on each connection. - -This is unacceptable so we are now trying to follow the behavior -RFC 8305 recommends by making multiple connection attempts if -the connection takes longer than 250ms. The first connection -to make it to completion then wins. - -Upstream-Status: Backport -CVE: CVE-2019-9633 patch 1 -Affects: < 2.59.2 -Signed-off-by: Armin Kuster <akuster@mvista.com> - ---- - gio/gsocketclient.c | 176 ++++++++++++++++++++++++++++++++++++++++++++-------- - 1 file changed, 151 insertions(+), 25 deletions(-) - -diff --git a/gio/gsocketclient.c b/gio/gsocketclient.c -index ddd1497..5c6513c 100644 ---- a/gio/gsocketclient.c -+++ b/gio/gsocketclient.c -@@ -2,6 +2,7 @@ - * - * Copyright © 2008, 2009 codethink - * Copyright © 2009 Red Hat, Inc -+ * Copyright © 2018 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public -@@ -49,6 +50,10 @@ - #include <gio/ginetaddress.h> - #include "glibintl.h" - -+/* As recommended by RFC 8305 this is the time it waits -+ * on a connection before starting another concurrent attempt. -+ */ -+#define HAPPY_EYEBALLS_CONNECTION_ATTEMPT_TIMEOUT_MS 250 - - /** - * SECTION:gsocketclient -@@ -1328,28 +1333,82 @@ typedef struct - GSocketConnectable *connectable; - GSocketAddressEnumerator *enumerator; - GProxyAddress *proxy_addr; -- GSocketAddress *current_addr; -- GSocket *current_socket; -+ GSocket *socket; - GIOStream *connection; - -+ GSList *connection_attempts; - GError *last_error; - } GSocketClientAsyncConnectData; - -+static void connection_attempt_unref (gpointer attempt); -+ - static void - g_socket_client_async_connect_data_free (GSocketClientAsyncConnectData *data) - { - g_clear_object (&data->connectable); - g_clear_object (&data->enumerator); - g_clear_object (&data->proxy_addr); -- g_clear_object (&data->current_addr); -- g_clear_object (&data->current_socket); -+ g_clear_object (&data->socket); - g_clear_object (&data->connection); -+ g_slist_free_full (data->connection_attempts, connection_attempt_unref); - - g_clear_error (&data->last_error); - - g_slice_free (GSocketClientAsyncConnectData, data); - } - -+typedef struct -+{ -+ GSocketAddress *address; -+ GSocket *socket; -+ GIOStream *connection; -+ GSocketClientAsyncConnectData *data; /* unowned */ -+ GSource *timeout_source; -+ GCancellable *cancellable; -+ grefcount ref; -+} ConnectionAttempt; -+ -+static ConnectionAttempt * -+connection_attempt_new (void) -+{ -+ ConnectionAttempt *attempt = g_new0 (ConnectionAttempt, 1); -+ g_ref_count_init (&attempt->ref); -+ return attempt; -+} -+ -+static ConnectionAttempt * -+connection_attempt_ref (ConnectionAttempt *attempt) -+{ -+ g_ref_count_inc (&attempt->ref); -+ return attempt; -+} -+ -+static void -+connection_attempt_unref (gpointer pointer) -+{ -+ ConnectionAttempt *attempt = pointer; -+ if (g_ref_count_dec (&attempt->ref)) -+ { -+ g_clear_object (&attempt->address); -+ g_clear_object (&attempt->socket); -+ g_clear_object (&attempt->connection); -+ g_clear_object (&attempt->cancellable); -+ if (attempt->timeout_source) -+ { -+ g_source_destroy (attempt->timeout_source); -+ g_source_unref (attempt->timeout_source); -+ } -+ g_free (attempt); -+ } -+} -+ -+static void -+connection_attempt_remove (ConnectionAttempt *attempt) -+{ -+ attempt->data->connection_attempts = g_slist_remove (attempt->data->connection_attempts, attempt); -+ connection_attempt_unref (attempt); -+} -+ - static void - g_socket_client_async_connect_complete (GSocketClientAsyncConnectData *data) - { -@@ -1359,8 +1418,7 @@ g_socket_client_async_connect_complete (GSocketClientAsyncConnectData *data) - { - GSocketConnection *wrapper_connection; - -- wrapper_connection = g_tcp_wrapper_connection_new (data->connection, -- data->current_socket); -+ wrapper_connection = g_tcp_wrapper_connection_new (data->connection, data->socket); - g_object_unref (data->connection); - data->connection = (GIOStream *)wrapper_connection; - } -@@ -1389,8 +1447,7 @@ static void - enumerator_next_async (GSocketClientAsyncConnectData *data) - { - /* We need to cleanup the state */ -- g_clear_object (&data->current_socket); -- g_clear_object (&data->current_addr); -+ g_clear_object (&data->socket); - g_clear_object (&data->proxy_addr); - g_clear_object (&data->connection); - -@@ -1485,34 +1542,68 @@ g_socket_client_connected_callback (GObject *source, - GAsyncResult *result, - gpointer user_data) - { -- GSocketClientAsyncConnectData *data = user_data; -+ ConnectionAttempt *attempt = user_data; -+ GSocketClientAsyncConnectData *data = attempt->data; -+ GSList *l; - GError *error = NULL; - GProxy *proxy; - const gchar *protocol; - -- if (g_task_return_error_if_cancelled (data->task)) -+ /* data is NULL once the task is completed */ -+ if (data && g_task_return_error_if_cancelled (data->task)) - { - g_object_unref (data->task); -+ connection_attempt_unref (attempt); - return; - } - -+ if (attempt->timeout_source) -+ { -+ g_source_destroy (attempt->timeout_source); -+ g_clear_pointer (&attempt->timeout_source, g_source_unref); -+ } -+ - if (!g_socket_connection_connect_finish (G_SOCKET_CONNECTION (source), - result, &error)) - { -- clarify_connect_error (error, data->connectable, -- data->current_addr); -- set_last_error (data, error); -+ if (!g_cancellable_is_cancelled (attempt->cancellable)) -+ { -+ clarify_connect_error (error, data->connectable, attempt->address); -+ set_last_error (data, error); -+ } -+ else -+ g_clear_error (&error); -+ -+ if (data) -+ { -+ connection_attempt_remove (attempt); -+ enumerator_next_async (data); -+ } -+ else -+ connection_attempt_unref (attempt); - -- /* try next one */ -- enumerator_next_async (data); - return; - } - -+ data->socket = g_steal_pointer (&attempt->socket); -+ data->connection = g_steal_pointer (&attempt->connection); -+ -+ for (l = data->connection_attempts; l; l = g_slist_next (l)) -+ { -+ ConnectionAttempt *attempt_entry = l->data; -+ g_cancellable_cancel (attempt_entry->cancellable); -+ attempt_entry->data = NULL; -+ connection_attempt_unref (attempt_entry); -+ } -+ g_slist_free (data->connection_attempts); -+ data->connection_attempts = NULL; -+ connection_attempt_unref (attempt); -+ - g_socket_connection_set_cached_remote_address ((GSocketConnection*)data->connection, NULL); - g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_CONNECTED, data->connectable, data->connection); - - /* wrong, but backward compatible */ -- g_socket_set_blocking (data->current_socket, TRUE); -+ g_socket_set_blocking (data->socket, TRUE); - - if (!data->proxy_addr) - { -@@ -1565,6 +1656,26 @@ g_socket_client_connected_callback (GObject *source, - } - } - -+static gboolean -+on_connection_attempt_timeout (gpointer data) -+{ -+ ConnectionAttempt *attempt = data; -+ -+ enumerator_next_async (attempt->data); -+ -+ g_clear_pointer (&attempt->timeout_source, g_source_unref); -+ return G_SOURCE_REMOVE; -+} -+ -+static void -+on_connection_cancelled (GCancellable *cancellable, -+ gpointer data) -+{ -+ GCancellable *attempt_cancellable = data; -+ -+ g_cancellable_cancel (attempt_cancellable); -+} -+ - static void - g_socket_client_enumerator_callback (GObject *object, - GAsyncResult *result, -@@ -1573,6 +1684,7 @@ g_socket_client_enumerator_callback (GObject *object, - GSocketClientAsyncConnectData *data = user_data; - GSocketAddress *address = NULL; - GSocket *socket; -+ ConnectionAttempt *attempt; - GError *error = NULL; - - if (g_task_return_error_if_cancelled (data->task)) -@@ -1585,6 +1697,9 @@ g_socket_client_enumerator_callback (GObject *object, - result, &error); - if (address == NULL) - { -+ if (data->connection_attempts) -+ return; -+ - g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_COMPLETE, data->connectable, NULL); - if (!error) - { -@@ -1621,16 +1736,27 @@ g_socket_client_enumerator_callback (GObject *object, - return; - } - -- data->current_socket = socket; -- data->current_addr = address; -- data->connection = (GIOStream *) g_socket_connection_factory_create_connection (socket); -- -- g_socket_connection_set_cached_remote_address ((GSocketConnection*)data->connection, address); -- g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_CONNECTING, data->connectable, data->connection); -- g_socket_connection_connect_async (G_SOCKET_CONNECTION (data->connection), -+ attempt = connection_attempt_new (); -+ attempt->data = data; -+ attempt->socket = socket; -+ attempt->address = address; -+ attempt->cancellable = g_cancellable_new (); -+ attempt->connection = (GIOStream *)g_socket_connection_factory_create_connection (socket); -+ attempt->timeout_source = g_timeout_source_new (HAPPY_EYEBALLS_CONNECTION_ATTEMPT_TIMEOUT_MS); -+ g_source_set_callback (attempt->timeout_source, on_connection_attempt_timeout, attempt, NULL); -+ g_source_attach (attempt->timeout_source, g_main_context_get_thread_default ()); -+ data->connection_attempts = g_slist_append (data->connection_attempts, attempt); -+ -+ if (g_task_get_cancellable (data->task)) -+ g_cancellable_connect (g_task_get_cancellable (data->task), G_CALLBACK (on_connection_cancelled), -+ g_object_ref (attempt->cancellable), g_object_unref); -+ -+ g_socket_connection_set_cached_remote_address ((GSocketConnection *)attempt->connection, address); -+ g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_CONNECTING, data->connectable, attempt->connection); -+ g_socket_connection_connect_async (G_SOCKET_CONNECTION (attempt->connection), - address, -- g_task_get_cancellable (data->task), -- g_socket_client_connected_callback, data); -+ attempt->cancellable, -+ g_socket_client_connected_callback, connection_attempt_ref (attempt)); - } - - /** --- -2.7.4 - diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-9633_p2.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-9633_p2.patch deleted file mode 100644 index 3bb2f5d9..00000000 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-9633_p2.patch +++ /dev/null @@ -1,231 +0,0 @@ -From d553d92d6e9f53cbe5a34166fcb919ba652c6a8e Mon Sep 17 00:00:00 2001 -From: Patrick Griffis <pgriffis@igalia.com> -Date: Tue, 29 Jan 2019 10:07:06 -0500 -Subject: [PATCH] gsocketclient: Fix criticals - -This ensures the parent GTask is kept alive as long as an enumeration -is running and trying to connect. - -Closes #1646 -Closes #1649 - -Upstream-Status: Backport -CVE: CVE-2019-9633 patch 2 -Affects: < 2.59.2 -Signed-off-by: Armin Kuster <akuster@mvista.com> - ---- - gio/gsocketclient.c | 74 +++++++++++++++++++++++++++++------------- - gio/tests/gsocketclient-slow.c | 55 ++++++++++++++++++++++++++++++- - 2 files changed, 106 insertions(+), 23 deletions(-) - -Index: glib-2.58.0/gio/gsocketclient.c -=================================================================== ---- glib-2.58.0.orig/gio/gsocketclient.c -+++ glib-2.58.0/gio/gsocketclient.c -@@ -1327,7 +1327,7 @@ g_socket_client_connect_to_uri (GSocketC - - typedef struct - { -- GTask *task; -+ GTask *task; /* unowned */ - GSocketClient *client; - - GSocketConnectable *connectable; -@@ -1345,6 +1345,7 @@ static void connection_attempt_unref (gp - static void - g_socket_client_async_connect_data_free (GSocketClientAsyncConnectData *data) - { -+ data->task = NULL; - g_clear_object (&data->connectable); - g_clear_object (&data->enumerator); - g_clear_object (&data->proxy_addr); -@@ -1444,13 +1445,19 @@ set_last_error (GSocketClientAsyncConnec - } - - static void --enumerator_next_async (GSocketClientAsyncConnectData *data) -+enumerator_next_async (GSocketClientAsyncConnectData *data, -+ gboolean add_task_ref) - { - /* We need to cleanup the state */ - g_clear_object (&data->socket); - g_clear_object (&data->proxy_addr); - g_clear_object (&data->connection); - -+ /* Each enumeration takes a ref. This arg just avoids repeated unrefs when -+ an enumeration starts another enumeration */ -+ if (add_task_ref) -+ g_object_ref (data->task); -+ - g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_RESOLVING, data->connectable, NULL); - g_socket_address_enumerator_next_async (data->enumerator, - g_task_get_cancellable (data->task), -@@ -1478,7 +1485,7 @@ g_socket_client_tls_handshake_callback ( - else - { - g_object_unref (object); -- enumerator_next_async (data); -+ enumerator_next_async (data, FALSE); - } - } - -@@ -1509,7 +1516,7 @@ g_socket_client_tls_handshake (GSocketCl - } - else - { -- enumerator_next_async (data); -+ enumerator_next_async (data, FALSE); - } - } - -@@ -1530,13 +1537,24 @@ g_socket_client_proxy_connect_callback ( - } - else - { -- enumerator_next_async (data); -+ enumerator_next_async (data, FALSE); - return; - } - - g_socket_client_tls_handshake (data); - } - -+static gboolean -+task_completed_or_cancelled (GTask *task) -+{ -+ if (g_task_get_completed (task)) -+ return TRUE; -+ else if (g_task_return_error_if_cancelled (task)) -+ return TRUE; -+ else -+ return FALSE; -+} -+ - static void - g_socket_client_connected_callback (GObject *source, - GAsyncResult *result, -@@ -1549,8 +1567,7 @@ g_socket_client_connected_callback (GObj - GProxy *proxy; - const gchar *protocol; - -- /* data is NULL once the task is completed */ -- if (data && g_task_return_error_if_cancelled (data->task)) -+ if (g_cancellable_is_cancelled (attempt->cancellable) || task_completed_or_cancelled (data->task)) - { - g_object_unref (data->task); - connection_attempt_unref (attempt); -@@ -1570,17 +1587,15 @@ g_socket_client_connected_callback (GObj - { - clarify_connect_error (error, data->connectable, attempt->address); - set_last_error (data, error); -+ connection_attempt_remove (attempt); -+ enumerator_next_async (data, FALSE); - } - else -- g_clear_error (&error); -- -- if (data) - { -- connection_attempt_remove (attempt); -- enumerator_next_async (data); -+ g_clear_error (&error); -+ g_object_unref (data->task); -+ connection_attempt_unref (attempt); - } -- else -- connection_attempt_unref (attempt); - - return; - } -@@ -1592,7 +1607,6 @@ g_socket_client_connected_callback (GObj - { - ConnectionAttempt *attempt_entry = l->data; - g_cancellable_cancel (attempt_entry->cancellable); -- attempt_entry->data = NULL; - connection_attempt_unref (attempt_entry); - } - g_slist_free (data->connection_attempts); -@@ -1625,7 +1639,7 @@ g_socket_client_connected_callback (GObj - G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED, - _("Proxying over a non-TCP connection is not supported.")); - -- enumerator_next_async (data); -+ enumerator_next_async (data, FALSE); - } - else if (g_hash_table_contains (data->client->priv->app_proxies, protocol)) - { -@@ -1652,7 +1666,7 @@ g_socket_client_connected_callback (GObj - _("Proxy protocol “%s” is not supported."), - protocol); - -- enumerator_next_async (data); -+ enumerator_next_async (data, FALSE); - } - } - -@@ -1661,7 +1675,7 @@ on_connection_attempt_timeout (gpointer - { - ConnectionAttempt *attempt = data; - -- enumerator_next_async (attempt->data); -+ enumerator_next_async (attempt->data, TRUE); - - g_clear_pointer (&attempt->timeout_source, g_source_unref); - return G_SOURCE_REMOVE; -@@ -1687,7 +1701,7 @@ g_socket_client_enumerator_callback (GOb - ConnectionAttempt *attempt; - GError *error = NULL; - -- if (g_task_return_error_if_cancelled (data->task)) -+ if (task_completed_or_cancelled (data->task)) - { - g_object_unref (data->task); - return; -@@ -1698,7 +1712,10 @@ g_socket_client_enumerator_callback (GOb - if (address == NULL) - { - if (data->connection_attempts) -- return; -+ { -+ g_object_unref (data->task); -+ return; -+ } - - g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_COMPLETE, data->connectable, NULL); - if (!error) -@@ -1732,7 +1749,7 @@ g_socket_client_enumerator_callback (GOb - if (socket == NULL) - { - g_object_unref (address); -- enumerator_next_async (data); -+ enumerator_next_async (data, FALSE); - return; - } - -@@ -1804,11 +1821,24 @@ g_socket_client_connect_async (GSocketCl - else - data->enumerator = g_socket_connectable_enumerate (connectable); - -+ /* The flow and ownership here isn't quite obvious: -+ - The task starts an async attempt to connect. -+ - Each attempt holds a single ref on task. -+ - Each attempt may create new attempts by timing out (not a failure) so -+ there are multiple attempts happening in parallel. -+ - Upon failure an attempt will start a new attempt that steals its ref -+ until there are no more attempts left and it drops its ref. -+ - Upon success it will cancel all other attempts and continue on -+ to the rest of the connection (tls, proxies, etc) which do not -+ happen in parallel and at the very end drop its ref. -+ - Upon cancellation an attempt drops its ref. -+ */ -+ - data->task = g_task_new (client, cancellable, callback, user_data); - g_task_set_source_tag (data->task, g_socket_client_connect_async); - g_task_set_task_data (data->task, data, (GDestroyNotify)g_socket_client_async_connect_data_free); - -- enumerator_next_async (data); -+ enumerator_next_async (data, FALSE); - } - - /** diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch index 50781e78..48899ce8 100644 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch @@ -1,4 +1,4 @@ -From 4b1a6d247c78125096a6ea5ab3cab8a1f000dc23 Mon Sep 17 00:00:00 2001 +From 0061d66057dfd7e7267772df60b36474fb180eed 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 @@ -11,70 +11,111 @@ Upstream-Status: Inappropriate [OE specific] Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> --- - gio/tests/Makefile.am | 10 ++++++---- - tests/gobject/Makefile.am | 8 +++++--- - 2 files changed, 11 insertions(+), 7 deletions(-) + gio/tests/meson.build | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) -diff --git a/gio/tests/Makefile.am b/gio/tests/Makefile.am -index 1f0bed7..8295deb 100644 ---- a/gio/tests/Makefile.am -+++ b/gio/tests/Makefile.am -@@ -550,10 +550,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 +diff --git a/gio/tests/meson.build b/gio/tests/meson.build +index 382dfcc..c171717 100644 +--- a/gio/tests/meson.build ++++ b/gio/tests/meson.build +@@ -191,7 +191,7 @@ if host_machine.system() != 'windows' --if !CROSS_COMPILING - test_programs += resources - resources_SOURCES = resources.c - nodist_resources_SOURCES = test_resources.c test_resources2.c test_resources2.h -@@ -578,7 +577,11 @@ if !ENABLE_INSTALLED_TESTS - libresourceplugin_la_LDFLAGS += -rpath / + # 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', +@@ -465,12 +465,12 @@ if installed_tests_enabled + install_data('static-link.py', install_dir : installed_tests_execdir) 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" > $@ && \ -@@ -599,7 +602,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/tests/gobject/Makefile.am b/tests/gobject/Makefile.am -index 0e60987..927d13a 100644 ---- a/tests/gobject/Makefile.am -+++ b/tests/gobject/Makefile.am -@@ -51,10 +51,13 @@ if ENABLE_TIMELOOP - installed_test_programs += timeloop-closure - endif +-if not meson.is_cross_build() or meson.has_exe_wrapper() ++if meson.is_cross_build() --# The marshal test requires running a binary, which means we cannot --# build it when cross-compiling -+# 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 + 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', +@@ -494,7 +494,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(), +@@ -505,7 +505,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', +@@ -516,7 +516,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', +@@ -528,7 +528,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', + '--target=@OUTPUT@', + '--sourcedir=' + meson.current_source_dir(), + '--sourcedir=' + meson.current_build_dir(), +@@ -539,7 +539,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', + '--target=@OUTPUT@', + '--sourcedir=' + meson.current_source_dir(), + '--sourcedir=' + meson.current_build_dir(), +@@ -550,7 +550,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', + '--target=@OUTPUT@', + '--sourcedir=' + meson.current_source_dir(), + '--generate', +@@ -579,11 +579,11 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() + # LLVM once that support is in a stable release. + objcopy = find_program('objcopy', required : false) - testmarshal.h: stamp-testmarshal.h - @true -@@ -71,4 +74,3 @@ testmarshal.c: testmarshal.h testmarshal.list $(glib_genmarshal) - BUILT_SOURCES += testmarshal.h testmarshal.c - CLEANFILES += stamp-testmarshal.h testmarshal.h testmarshal.c - EXTRA_DIST += testcommon.h testmarshal.list --endif # !CROSS_COMPILING -\ No newline at end of file +- if build_machine.system() == 'linux' and cc.get_id() == 'gcc' and objcopy.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', + '--target=@OUTPUT@', + '--sourcedir=' + meson.current_source_dir(), + '--sourcedir=' + meson.current_build_dir(), +@@ -595,7 +595,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', + '--target=@OUTPUT@', + '--sourcedir=' + meson.current_source_dir(), + '--sourcedir=' + meson.current_build_dir(), diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/configure-libtool.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/configure-libtool.patch deleted file mode 100644 index 59b89134..00000000 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/configure-libtool.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 1dd1e6ddca5deada049bac2e1ee1fe4ecc5342c5 Mon Sep 17 00:00:00 2001 -From: Martin Jansa <Martin.Jansa@gmail.com> -Date: Sat, 28 Apr 2012 18:24:50 +0200 -Subject: [PATCH 01/10] configure: use $host_alias-libtool instead of libtool - directly - -Poky renames libtool to $host_alias-libtool. -./$host_alias-libtool isn't created until after configure runs with -libtool >= 2.2.2 -so we can't call # it at this point. We can safely assume a version is -available -from PATH though - -Rebased to glib-2.27.3 by Dongxiao Xu <dongxiao.xu@intel.com> -Rebased to glib-2.32.1 by Martin Jansa <Martin.Jansa@gmail.com> -Rebased to glib-2.31.20+ by Andre McCurdy <armccurdy@gmail.com> - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> - ---- - configure.ac | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 6fa6eb0..b6f78a6 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1428,9 +1428,9 @@ AS_IF([ test "$G_MODULE_IMPL" = "G_MODULE_IMPL_DL" ], [ - LDFLAGS="$LDFLAGS $G_MODULE_LDFLAGS" - dnl *** check for OSF1/5.0 RTLD_GLOBAL brokenness - echo "void glib_plugin_test(void) { }" > plugin.c -- ${SHELL} ./libtool --mode=compile --tag=CC ${CC} ${CFLAGS} \ -+ ${SHELL} ./$host_alias-libtool --mode=compile --tag=CC ${CC} ${CFLAGS} \ - ${CPPFLAGS} -c -o plugin.lo plugin.c >/dev/null 2>&1 -- ${SHELL} ./libtool --mode=link --tag=CC ${CC} ${CFLAGS} \ -+ ${SHELL} ./$host_alias-libtool --mode=link --tag=CC ${CC} ${CFLAGS} \ - ${LDFLAGS} -module -o plugin.la -export-dynamic \ - -shrext ".o" -avoid-version plugin.lo \ - -rpath /dont/care >/dev/null 2>&1 --- -2.14.1 - diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/date-lt.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/date-lt.patch deleted file mode 100644 index dd0aff72..00000000 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/date-lt.patch +++ /dev/null @@ -1,20 +0,0 @@ -Update Lithuanian month names in the test suite as glibc changed the translations. - -Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/glib/merge_requests/373] -Signed-off-by: Ross Burton <ross.burton@intel.com> - -diff --git a/glib/tests/date.c b/glib/tests/date.c -index b801ca704..6646c227c 100644 ---- a/glib/tests/date.c -+++ b/glib/tests/date.c -@@ -365,8 +365,8 @@ test_month_names (void) - TEST_DATE ( 1, 4, 2018, "%Y m. %OB", "2018 m. balandis"); - TEST_DATE ( 1, 5, 2018, "%Y m. %OB", "2018 m. gegužė"); - TEST_DATE ( 1, 6, 2018, "%Y m. %OB", "2018 m. birželis"); -- TEST_DATE (17, 7, 2018, "%Y m. %b %e d.", "2018 m. Lie 17 d."); -- TEST_DATE ( 1, 8, 2018, "%Y m. %Ob", "2018 m. Rgp"); -+ TEST_DATE (17, 7, 2018, "%Y m. %b %e d.", "2018 m. Liep. 17 d."); -+ TEST_DATE ( 1, 8, 2018, "%Y m. %Ob", "2018 m. rugp."); - } - else - g_test_skip ("locale lt_LT not available, skipping Lithuanian month names test"); diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common new file mode 100644 index 00000000..0d7c5fa3 --- /dev/null +++ b/external/poky/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/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-glibc b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-glibc new file mode 100644 index 00000000..c4648f58 --- /dev/null +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-glibc @@ -0,0 +1,5 @@ +[properties] +have_c99_vsnprintf = true +have_c99_snprintf = true +have_unix98_printf = true +va_val_copy = true diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux new file mode 100644 index 00000000..83596e0e --- /dev/null +++ b/external/poky/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/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-mingw b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-mingw new file mode 100644 index 00000000..75f911ba --- /dev/null +++ b/external/poky/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/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-musl b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-musl new file mode 100644 index 00000000..3049e511 --- /dev/null +++ b/external/poky/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/external/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch index f9794d3d..36d32506 100644 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch @@ -1,4 +1,4 @@ -From 8326961841f4d16c7239e747de11e3817c35cfd2 Mon Sep 17 00:00:00 2001 +From 8c623acdbea3ecc2812bbaafcfc892758fa978da 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 @@ -19,10 +19,10 @@ Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gio/giomodule.c b/gio/giomodule.c -index 36c0cef..912e490 100644 +index 1007abd..5380982 100644 --- a/gio/giomodule.c +++ b/gio/giomodule.c -@@ -40,6 +40,8 @@ +@@ -44,6 +44,8 @@ #include "gnetworkmonitor.h" #ifdef G_OS_WIN32 #include "gregistrysettingsbackend.h" @@ -31,8 +31,8 @@ index 36c0cef..912e490 100644 #endif #include <glib/gstdio.h> -@@ -1099,7 +1101,15 @@ get_gio_module_dir (void) - #endif +@@ -1149,7 +1151,15 @@ get_gio_module_dir (void) + NULL); g_free (install_dir); #else - module_dir = g_strdup (GIO_MODULE_DIR); diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/run-ptest b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/run-ptest index 8f082d34..7a231b51 100644 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/run-ptest +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/run-ptest @@ -1,6 +1,9 @@ #! /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 +su glib2-test -c 'gnome-desktop-testing-runner glib' userdel glib2-test diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/uclibc_musl_translation.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/uclibc_musl_translation.patch deleted file mode 100644 index 7aa6217d..00000000 --- a/external/poky/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 diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0_2.58.0.bb b/external/poky/meta/recipes-core/glib-2.0/glib-2.0_2.58.0.bb deleted file mode 100644 index 611abd8e..00000000 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0_2.58.0.bb +++ /dev/null @@ -1,26 +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://configure-libtool.patch \ - file://run-ptest \ - file://uclibc_musl_translation.patch \ - file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \ - file://Enable-more-tests-while-cross-compiling.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://date-lt.patch \ - file://CVE-2019-12450.patch \ - file://CVE-2019-9633_p1.patch \ - file://CVE-2019-9633_p2.patch \ - file://CVE-2019-13012.patch \ - " - -SRC_URI_append_class-native = " file://relocate-modules.patch" - -SRC_URI[md5sum] = "9b5d21c802f55bf37171c4fbfe7d32d1" -SRC_URI[sha256sum] = "c0f4ce0730b4f95c47b711613b5406a887c2ee13ea6d25930d72a4fa7fdb77f6" diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0_2.62.6.bb b/external/poky/meta/recipes-core/glib-2.0/glib-2.0_2.62.6.bb new file mode 100644 index 00000000..911152dd --- /dev/null +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0_2.62.6.bb @@ -0,0 +1,50 @@ +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[md5sum] = "46bba5410ad4e75f65e4b2cc61a1afc8" +SRC_URI[sha256sum] = "104fa26fbefae8024ff898330c671ec23ad075c1c0bce45c325c6d5657d58b9c" + +# 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 "" + + corebase = d.getVar("COREBASE") + 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)) + files[filename.replace(corebase, "${COREBASE}")] = 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/external/poky/meta/recipes-core/glib-2.0/glib.inc b/external/poky/meta/recipes-core/glib-2.0/glib.inc index e8215da5..7ebed0e5 100644 --- a/external/poky/meta/recipes-core/glib-2.0/glib.inc +++ b/external/poky/meta/recipes-core/glib-2.0/glib.inc @@ -22,34 +22,33 @@ DEPENDS = "glib-2.0-native \ virtual/libintl \ virtual/libiconv \ libffi \ - zlib \ - ${@bb.utils.contains('PTEST_ENABLED', '1', 'dbus', '', d)}" + zlib" PACKAGES += "${PN}-codegen ${PN}-utils" LEAD_SONAME = "libglib-2.0.*" -inherit autotools gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages +inherit meson gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages features_check -S = "${WORKDIR}/glib-${PV}" +GTKDOC_MESON_OPTION = "gtk_doc" -PACKAGECONFIG ??= "system-pcre libmount" -# To use the system pcre it must be configured with --enable-unicode-properties -PACKAGECONFIG[system-pcre] = "--with-pcre=system,--with-pcre=internal,libpcre" -PACKAGECONFIG[libmount] = "--enable-libmount,--disable-libmount,util-linux" -PACKAGECONFIG[manpages] = "--enable-man --with-xml-catalog=${STAGING_ETCDIR_NATIVE}/xml/catalog.xml, --disable-man, libxslt-native xmlto-native" -PACKAGECONFIG[libelf] = "--enable-libelf,--disable-libelf,elfutils" +# This avoids the need to depend on target python3, which in case of mingw is not even possible. +# meson's python configuration pokes into python3 configuration, so this provides the native config to it. +unset _PYTHON_SYSCONFIGDATA_NAME -CORECONF = "--disable-dtrace --disable-fam --disable-systemtap" +S = "${WORKDIR}/glib-${PV}" -PRINTF = "--enable-included-printf=no" -PRINTF_darwin = "--enable-included-printf=yes" -PRINTF_mingw32 = "--enable-included-printf=yes" -EXTRA_OECONF = "${PRINTF} ${CORECONF}" -EXTRA_OECONF_class-native = "${CORECONF} --disable-selinux" +PACKAGECONFIG ??= "system-pcre libmount \ + ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" +# To use the system pcre it must be configured with --enable-unicode-properties +PACKAGECONFIG[system-pcre] = "-Dinternal_pcre=false,-Dinternal_pcre=true,libpcre" +PACKAGECONFIG[libmount] = "-Dlibmount=true,-Dlibmount=false,util-linux" +PACKAGECONFIG[manpages] = "-Dman=true, -Dman=false, libxslt-native xmlto-native" +# libelf is auto-detected without a configuration option +PACKAGECONFIG[libelf] = ",,elfutils" +PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false,dbus" -# Tell configure that we'll have dbus-daemon on the target for the tests -EXTRA_OECONF_append_class-target = " ${@bb.utils.contains('PTEST_ENABLED', '1', ' ac_cv_prog_DBUS_DAEMON=dbus-daemon', '', d)}" +EXTRA_OEMESON = "-Ddtrace=false -Dfam=false -Dsystemtap=false -Dselinux=disabled" do_configure_prepend() { sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in @@ -59,13 +58,15 @@ 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" + FILES_${PN}-dev += "${libdir}/glib-2.0/include \ ${libdir}/gio/modules/lib*${SOLIBSDEV} \ ${libdir}/gio/modules/*.la \ - ${bindir}/glib-genmarshal \ - ${bindir}/glib-gettextize \ - ${bindir}/glib-mkenums \ - ${bindir}/glib-compile-resources \ ${datadir}/glib-2.0/gettext/po/Makefile.in.in \ ${datadir}/glib-2.0/schemas/gschema.dtd \ ${datadir}/glib-2.0/valgrind/glib.supp \ @@ -75,9 +76,12 @@ FILES_${PN}-codegen = "${datadir}/glib-2.0/codegen/*.py \ ${bindir}/gdbus-codegen" FILES_${PN}-utils = "${bindir}/*" -RRECOMMENDS_${PN} += "shared-mime-info" +SHAREDMIMEDEP = "shared-mime-info" +SHAREDMIMEDEP_class-native = "" # When cross compiling for Windows we don't want to include this -RRECOMMENDS_${PN}_remove_mingw32 = "shared-mime-info" +SHAREDMIMEDEP_mingw32 = "" + +RRECOMMENDS_${PN} += "${SHAREDMIMEDEP}" ARM_INSTRUCTION_SET_armv4 = "arm" ARM_INSTRUCTION_SET_armv5 = "arm" @@ -112,6 +116,8 @@ do_install_append () { if test "x${MLPREFIX}" != "x"; then mv ${D}${libexecdir}/gio-querymodules${EXEEXT} ${D}${libexecdir}/${MLPREFIX}gio-querymodules${EXEEXT} fi + # Autotools does this, meson does not + mkdir -p ${D}${libdir}/gio/modules } do_install_append_class-target () { @@ -122,6 +128,16 @@ do_install_append_class-target () { rm ${D}${datadir}/installed-tests/glib/gdbus-serialization.test fi fi + if [ -f ${D}${datadir}/installed-tests/glib/static-link.test ]; then + if test "x${MLPREFIX}" != "x"; then + mv ${D}${datadir}/installed-tests/glib/static-link.test ${D}${datadir}/installed-tests/glib/${MLPREFIX}static-link.test + fi + fi +} + +# 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" @@ -129,7 +145,11 @@ CODEGEN_PYTHON_RDEPENDS_mingw32 = "" RDEPENDS_${PN}-codegen += "${CODEGEN_PYTHON_RDEPENDS}" +RDEPENDS_${PN}-ptest += "${PN}-utils" + RDEPENDS_${PN}-ptest += "\ + coreutils \ + libgcc \ dbus \ gnome-desktop-testing \ tzdata \ @@ -138,10 +158,18 @@ RDEPENDS_${PN}-ptest += "\ tzdata-europe \ tzdata-posix \ shared-mime-info \ + ${PN}-locale-ja \ + ${PN}-locale-fr \ + ${PN}-locale-el \ + ${PN}-locale-hr \ + ${PN}-locale-lt \ + ${PN}-locale-pl \ + ${PN}-locale-ru \ + ${PN}-locale-th \ + python3-core \ + python3-modules \ " -# When https://gitlab.gnome.org/GNOME/glib/issues/1343 is -# fixed add locale-base-pl-pl RDEPENDS_${PN}-ptest_append_libc-glibc = "\ glibc-gconv-utf-16 \ glibc-charmap-utf-8 \ @@ -165,6 +193,7 @@ RDEPENDS_${PN}-ptest_append_libc-glibc = "\ 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 \ " - -INSANE_SKIP_${PN}-ptest += "libdir" |