All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/8] gdk-pixbuf: rewrite the cross-build support for tests
@ 2021-05-13 20:56 Alexander Kanavin
  2021-05-13 20:56 ` [PATCH 2/8] gnome: drop upstream even condition from a few recipes Alexander Kanavin
                   ` (6 more replies)
  0 siblings, 7 replies; 12+ messages in thread
From: Alexander Kanavin @ 2021-05-13 20:56 UTC (permalink / raw)
  To: openembedded-core; +Cc: Alexander Kanavin

It was scattered over four different patches, and wasn't guarded
by a configuration option. Hopefully the new patch is acceptable
to upstream.

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 .../0001-Add-use_prebuilt_tools-option.patch  | 171 ++++++++++++++++++
 ...f-decisions-around-cross-compilation.patch |  38 ----
 ...bnailer-and-pixdata-cross-compile-fa.patch |  95 ----------
 ...nd-thumbnailer-cross-compile-failure.patch |  28 ---
 ...ailer-and-tests-also-in-cross-builds.patch |  29 ---
 .../gdk-pixbuf/gdk-pixbuf_2.42.6.bb           |   9 +-
 6 files changed, 176 insertions(+), 194 deletions(-)
 create mode 100644 meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Add-use_prebuilt_tools-option.patch
 delete mode 100644 meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Fix-a-couple-of-decisions-around-cross-compilation.patch
 delete mode 100644 meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-and-pixdata-cross-compile-fa.patch
 delete mode 100644 meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-cross-compile-failure.patch
 delete mode 100644 meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch

diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Add-use_prebuilt_tools-option.patch b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Add-use_prebuilt_tools-option.patch
new file mode 100644
index 0000000000..dc8d6ce724
--- /dev/null
+++ b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Add-use_prebuilt_tools-option.patch
@@ -0,0 +1,171 @@
+From ba73bb0f3d2023839bc3b681c49b7ec1192cceb4 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Sat, 8 May 2021 21:58:54 +0200
+Subject: [PATCH] Add use_prebuilt_tools option
+
+This allows using the gdk-pixbuf tools from the host to
+build and install tests in a cross-compile scenarion.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ gdk-pixbuf/meson.build  | 11 +++++++++--
+ meson.build             |  6 +++---
+ meson_options.txt       |  4 ++++
+ tests/meson.build       | 16 ++++++++--------
+ thumbnailer/meson.build | 24 ++++++++++++++++++------
+ 5 files changed, 42 insertions(+), 19 deletions(-)
+
+diff --git a/gdk-pixbuf/meson.build b/gdk-pixbuf/meson.build
+index 8b0590b..7331491 100644
+--- a/gdk-pixbuf/meson.build
++++ b/gdk-pixbuf/meson.build
+@@ -342,13 +342,20 @@ foreach bin: gdkpixbuf_bin
+                    include_directories: [ root_inc, gdk_pixbuf_inc ],
+                    c_args: common_cflags + gdk_pixbuf_cflags,
+                    install: true)
+-  meson.override_find_program(bin_name, bin)
++  if not get_option('use_prebuilt_tools')
++      meson.override_find_program(bin_name, bin)
++  endif
+ 
+   # Used in tests
+   set_variable(bin_name.underscorify(), bin)
+ endforeach
+ 
+-if not meson.is_cross_build()
++if get_option('use_prebuilt_tools')
++    gdk_pixbuf_query_loaders = find_program('gdk-pixbuf-query-loaders', required: true)
++    gdk_pixbuf_pixdata = find_program('gdk-pixbuf-pixdata', required: true)
++endif
++
++if not meson.is_cross_build() or get_option('use_prebuilt_tools')
+   # The 'loaders.cache' used for testing, so we don't accidentally
+   # load the installed cache; we always build it by default
+   loaders_cache = custom_target('loaders.cache',
+diff --git a/meson.build b/meson.build
+index 7a1409b..0bc73eb 100644
+--- a/meson.build
++++ b/meson.build
+@@ -403,16 +403,16 @@ subdir('gdk-pixbuf')
+ # i18n
+ subdir('po')
+ 
+-if not meson.is_cross_build()
++if not meson.is_cross_build() or get_option('use_prebuilt_tools')
+   subdir('tests')
+-  subdir('thumbnailer')
+ endif
++subdir('thumbnailer')
+ 
+ # Documentation
+ build_docs = get_option('gtk_doc') or get_option('docs')
+ subdir('docs')
+ 
+-if not meson.is_cross_build()
++if not meson.is_cross_build() or get_option('use_prebuilt_tools')
+   meson.add_install_script('build-aux/post-install.py',
+     gdk_pixbuf_bindir,
+     gdk_pixbuf_libdir,
+diff --git a/meson_options.txt b/meson_options.txt
+index 0ee6718..cc29855 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -49,4 +49,8 @@ option('gio_sniffing',
+        description: 'Perform file type detection using GIO (Unused on MacOS and Windows)',
+        type: 'boolean',
+        value: true)
++option('use_prebuilt_tools',
++       description: 'Use prebuilt gdk-pixbuf tools from the host for cross-compilation',
++       type: 'boolean',
++       value: false)
+ 
+diff --git a/tests/meson.build b/tests/meson.build
+index 7c6cb11..1029e6a 100644
+--- a/tests/meson.build
++++ b/tests/meson.build
+@@ -5,6 +5,12 @@
+ # $PATH. Ideally we should use gnome.compile_resources() and let Meson deal with
+ # this problem: See https://github.com/mesonbuild/meson/issues/8266.
+ if enabled_loaders.contains('png') and host_system != 'windows'
++
++  resources_deps = [loaders_cache,]
++  if not get_option('use_prebuilt_tools')
++    resources_deps += [gdk_pixbuf_pixdata,]
++  endif
++
+   # Resources; we cannot use gnome.compile_resources() here, because we need to
+   # override the environment in order to use the utilities we just built instead
+   # of the system ones
+@@ -21,10 +27,7 @@ if enabled_loaders.contains('png') and host_system != 'windows'
+       '@INPUT@',
+       '@OUTPUT@',
+     ],
+-    depends: [
+-      gdk_pixbuf_pixdata,
+-      loaders_cache,
+-    ],
++    depends: resources_deps,
+   )
+ 
+   resources_h = custom_target('resources.h',
+@@ -40,10 +43,7 @@ if enabled_loaders.contains('png') and host_system != 'windows'
+       '@INPUT@',
+       '@OUTPUT@',
+     ],
+-    depends: [
+-      gdk_pixbuf_pixdata,
+-      loaders_cache,
+-    ],
++    depends: resources_deps,
+   )
+   no_resources = false
+ else
+diff --git a/thumbnailer/meson.build b/thumbnailer/meson.build
+index b6a206d..9336c21 100644
+--- a/thumbnailer/meson.build
++++ b/thumbnailer/meson.build
+@@ -6,13 +6,29 @@ bin = executable('gdk-pixbuf-thumbnailer',
+            ],
+            dependencies: gdk_pixbuf_deps + [ gdkpixbuf_dep ],
+            install: true)
+-meson.override_find_program('gdk-pixbuf-thumbnailer', bin)
++if not get_option('use_prebuilt_tools')
++    meson.override_find_program('gdk-pixbuf-thumbnailer', bin)
++endif
+ 
+ gdk_pixbuf_print_mime_types = executable('gdk-pixbuf-print-mime-types',
+                                          'gdk-pixbuf-print-mime-types.c',
++                                         install: true,
+                                          c_args: common_cflags,
+                                          dependencies: gdk_pixbuf_deps + [ gdkpixbuf_dep ])
+ 
++if get_option('use_prebuilt_tools')
++    gdk_pixbuf_print_mime_types = find_program('gdk-pixbuf-print-mime-types', required: true)
++endif
++
++thumbnailer_deps = [loaders_cache,]
++
++if not get_option('use_prebuilt_tools')
++    thumbnailer_deps += [
++        gdk_pixbuf_print_mime_types,
++        gdk_pixbuf_pixdata,
++    ]
++endif
++
+ custom_target('thumbnailer',
+               input: 'gdk-pixbuf-thumbnailer.thumbnailer.in',
+               output: 'gdk-pixbuf-thumbnailer.thumbnailer',
+@@ -25,10 +41,6 @@ custom_target('thumbnailer',
+                 '@INPUT@',
+                 '@OUTPUT@',
+               ],
+-              depends: [
+-                gdk_pixbuf_print_mime_types,
+-                gdk_pixbuf_pixdata,
+-                loaders_cache,
+-              ],
++              depends: thumbnailer_deps,
+               install: true,
+               install_dir: join_paths(gdk_pixbuf_datadir, 'thumbnailers'))
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Fix-a-couple-of-decisions-around-cross-compilation.patch b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Fix-a-couple-of-decisions-around-cross-compilation.patch
deleted file mode 100644
index e461404918..0000000000
--- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Fix-a-couple-of-decisions-around-cross-compilation.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From be8a47e0c21e5577d4f5669d339dfec6299b25be Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 14 Feb 2019 18:06:25 +0100
-Subject: [PATCH] Generate loaders.cache using a native tool when
- cross-compiling
-
-Otherwise meson would attempt to run a target binary.
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- gdk-pixbuf/meson.build | 12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/gdk-pixbuf/meson.build b/gdk-pixbuf/meson.build
-index 5cddbec..78c8bd3 100644
---- a/gdk-pixbuf/meson.build
-+++ b/gdk-pixbuf/meson.build
-@@ -324,8 +324,16 @@ if not meson.is_cross_build()
-                                 build_by_default: true)
-   loaders_dep = declare_dependency(sources: [ loaders_cache ])
- else
--  loaders_cache = []
--  loaders_dep = declare_dependency()
-+  loaders_cache = custom_target('loaders.cache',
-+                                output: 'loaders.cache',
-+                                capture: true,
-+                                command: [
-+                                  'gdk-pixbuf-query-loaders',
-+                                  dynamic_loaders,
-+                                ],
-+                                depends: dynamic_loaders_dep,
-+                                build_by_default: true)
-+  loaders_dep = declare_dependency(sources: [ loaders_cache ])
- endif
- 
- pkgconfig = import('pkgconfig')
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-and-pixdata-cross-compile-fa.patch b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-and-pixdata-cross-compile-fa.patch
deleted file mode 100644
index 2aa9164750..0000000000
--- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-and-pixdata-cross-compile-fa.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From dcaf3106e2cca27f728a8bd26127430500a1136e Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 22 Feb 2019 13:22:06 +0100
-Subject: [PATCH] Work-around thumbnailer and pixdata cross-compile failure
-
-Use native gdk-pixbuf-print-mime-types and gdk-pixbuf-pixdata
-when generating the thumbnail metadata and resources.
-
-This works but the mime types will come from native
-loader.cache (which will only contain in-tree loaders), not from the
-target loader.cache.
-
-The upstream issue is https://bugzilla.gnome.org/show_bug.cgi?id=779057
-
-Upstream-Status: Inappropriate [workaround]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- tests/meson.build       | 11 +++++++++--
- thumbnailer/meson.build | 23 ++++++++++++++++++++++-
- 2 files changed, 31 insertions(+), 3 deletions(-)
-
-diff --git a/tests/meson.build b/tests/meson.build
-index 7c6cb11..07121f1 100644
---- a/tests/meson.build
-+++ b/tests/meson.build
-@@ -8,13 +8,20 @@ if enabled_loaders.contains('png') and host_system != 'windows'
-   # Resources; we cannot use gnome.compile_resources() here, because we need to
-   # override the environment in order to use the utilities we just built instead
-   # of the system ones
-+
-+  if not meson.is_cross_build()
-+  pixdata_binary = gdk_pixbuf_pixdata.full_path()
-+  else
-+  pixdata_binary = 'gdk-pixbuf-pixdata'
-+  endif
-+
-   resources_c = custom_target('resources.c',
-     input: 'resources.gresource.xml',
-     output: 'resources.c',
-     command: [
-       gen_resources,
-       '--glib-compile-resources=@0@'.format(glib_compile_resources.full_path()),
--      '--pixdata=@0@'.format(gdk_pixbuf_pixdata.full_path()),
-+      '--pixdata=@0@'.format(pixdata_binary),
-       '--loaders=@0@'.format(loaders_cache.full_path()),
-       '--sourcedir=@0@'.format(meson.current_source_dir()),
-       '--source',
-@@ -33,7 +40,7 @@ if enabled_loaders.contains('png') and host_system != 'windows'
-     command: [
-       gen_resources,
-       '--glib-compile-resources=@0@'.format(glib_compile_resources.full_path()),
--      '--pixdata=@0@'.format(gdk_pixbuf_pixdata.full_path()),
-+      '--pixdata=@0@'.format(pixdata_binary),
-       '--loaders=@0@'.format(loaders_cache.full_path()),
-       '--sourcedir=@0@'.format(meson.current_source_dir()),
-       '--header',
-diff --git a/thumbnailer/meson.build b/thumbnailer/meson.build
-index 8c741e0..5a3b52a 100644
---- a/thumbnailer/meson.build
-+++ b/thumbnailer/meson.build
-@@ -14,7 +14,27 @@ gdk_pixbuf_print_mime_types = executable('gdk-pixbuf-print-mime-types',
-                                          install: true,
-                                          dependencies: gdk_pixbuf_deps + [ gdkpixbuf_dep ])
- 
--custom_target('thumbnailer',
-+if meson.is_cross_build()
-+    custom_target('thumbnailer',
-+              input: 'gdk-pixbuf-thumbnailer.thumbnailer.in',
-+              output: 'gdk-pixbuf-thumbnailer.thumbnailer',
-+              command: [
-+                gen_thumbnailer,
-+                '--printer=gdk-pixbuf-print-mime-types',
-+                '--pixdata=@0@'.format(gdk_pixbuf_pixdata.full_path()),
-+                '--loaders=@0@'.format(loaders_cache.full_path()),
-+                '--bindir=@0@'.format(gdk_pixbuf_bindir),
-+                '@INPUT@',
-+                '@OUTPUT@',
-+              ],
-+              depends: [
-+                gdk_pixbuf_print_mime_types,
-+                gdk_pixbuf_pixdata,
-+              ],
-+              install: true,
-+              install_dir: join_paths(gdk_pixbuf_datadir, 'thumbnailers'))
-+else
-+    custom_target('thumbnailer',
-               input: 'gdk-pixbuf-thumbnailer.thumbnailer.in',
-               output: 'gdk-pixbuf-thumbnailer.thumbnailer',
-               command: [
-@@ -33,3 +53,4 @@ custom_target('thumbnailer',
-               ],
-               install: true,
-               install_dir: join_paths(gdk_pixbuf_datadir, 'thumbnailers'))
-+endif
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-cross-compile-failure.patch b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-cross-compile-failure.patch
deleted file mode 100644
index 110b32a490..0000000000
--- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-cross-compile-failure.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 8c7ced988def52654946458a3779e383b27f14f7 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 14 Feb 2019 17:56:10 +0100
-Subject: [PATCH] Work-around thumbnailer cross-compile failure
-
-Install gdk-pixbuf-print-mime-types that's needed for thumbnail
-metadata generation.
-
-The upstream issue is https://bugzilla.gnome.org/show_bug.cgi?id=779057
-
-Upstream-Status: Inappropriate [workaround]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- thumbnailer/meson.build | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/thumbnailer/meson.build b/thumbnailer/meson.build
-index e801144..aaafec8 100644
---- a/thumbnailer/meson.build
-+++ b/thumbnailer/meson.build
-@@ -10,6 +10,7 @@ executable('gdk-pixbuf-thumbnailer',
- gdk_pixbuf_print_mime_types = executable('gdk-pixbuf-print-mime-types',
-                                          'gdk-pixbuf-print-mime-types.c',
-                                          c_args: common_cflags,
-+                                         install: true,
-                                          dependencies: gdk_pixbuf_deps + [ gdkpixbuf_dep ])
- 
- custom_target('thumbnailer',
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch
deleted file mode 100644
index cd9f88befc..0000000000
--- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From d02a8e202d2fe5caf3449683e0ccdf84a482a325 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 5 Jun 2019 14:17:55 +0200
-Subject: [PATCH] Build thumbnailer and tests also in cross builds.
-
-Upstream-Status: Inappropriate [relies on oe-core specific hacks]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- meson.build | 6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 73034d1..d114016 100644
---- a/meson.build
-+++ b/meson.build
-@@ -378,10 +378,8 @@ subdir('gdk-pixbuf')
- # i18n
- subdir('po')
- 
--if not meson.is_cross_build()
--  subdir('tests')
--  subdir('thumbnailer')
--endif
-+subdir('tests')
-+subdir('thumbnailer')
- 
- # Documentation
- build_docs = get_option('gtk_doc') or get_option('docs')
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.6.bb b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.6.bb
index e28423efd9..f171464f4d 100644
--- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.6.bb
+++ b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.6.bb
@@ -20,10 +20,7 @@ MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
 SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
            file://run-ptest \
            file://fatal-loader.patch \
-           file://0001-Work-around-thumbnailer-cross-compile-failure.patch \
-           file://0001-Fix-a-couple-of-decisions-around-cross-compilation.patch \
-           file://0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch \
-           file://0001-Work-around-thumbnailer-and-pixdata-cross-compile-fa.patch \
+           file://0001-Add-use_prebuilt_tools-option.patch \
            "
 
 SRC_URI[sha256sum] = "c4a6b75b7ed8f58ca48da830b9fa00ed96d668d3ab4b1f723dcf902f78bde77f"
@@ -47,6 +44,10 @@ PACKAGECONFIG[jpeg] = "-Djpeg=true,-Djpeg=false,jpeg"
 PACKAGECONFIG[tiff] = "-Dtiff=true,-Dtiff=false,tiff"
 PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false"
 
+EXTRA_OEMESON_class-target = " \
+    -Duse_prebuilt_tools=true \
+"
+
 PACKAGES =+ "${PN}-xlib"
 
 # For GIO image type sniffing
-- 
2.31.1


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

* [PATCH 2/8] gnome: drop upstream even condition from a few recipes
  2021-05-13 20:56 [PATCH 1/8] gdk-pixbuf: rewrite the cross-build support for tests Alexander Kanavin
@ 2021-05-13 20:56 ` Alexander Kanavin
  2021-05-13 20:56 ` [PATCH 3/8] expat: upgrade 2.2.10 -> 2.3.0 Alexander Kanavin
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 12+ messages in thread
From: Alexander Kanavin @ 2021-05-13 20:56 UTC (permalink / raw)
  To: openembedded-core; +Cc: Alexander Kanavin

They have adopted the new gnome version scheme where the distinction
is no longer:
https://lwn.net/Articles/831746/

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 meta/recipes-gnome/epiphany/epiphany_40.1.bb                    | 2 +-
 meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.3.bb           | 2 +-
 meta/recipes-gnome/gnome/adwaita-icon-theme_3.38.0.bb           | 2 +-
 .../gsettings-desktop-schemas_3.38.0.bb                         | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/meta/recipes-gnome/epiphany/epiphany_40.1.bb b/meta/recipes-gnome/epiphany/epiphany_40.1.bb
index e1e3ad7868..2242e9d010 100644
--- a/meta/recipes-gnome/epiphany/epiphany_40.1.bb
+++ b/meta/recipes-gnome/epiphany/epiphany_40.1.bb
@@ -12,7 +12,7 @@ DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes avahi libnotify gcr gnutls \
 	   libarchive"
 
 GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase gsettings features_check upstream-version-is-even gettext mime-xdg
+inherit gnomebase gsettings features_check gettext mime-xdg
 REQUIRED_DISTRO_FEATURES = "x11 opengl"
 
 SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@oe.utils.trim_version("${PV}", 1)}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
diff --git a/meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.3.bb b/meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.3.bb
index 6cde6fffa3..61927c0dd1 100644
--- a/meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.3.bb
+++ b/meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.3.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c \
                     file://COPYING_CCBYSA3;md5=96143d33de3a79321b1006c4e8ed07e7 \
                     file://COPYING_LGPL;md5=e6a600fd5e1d9cbde2d983680233ad02"
 
-inherit allarch autotools pkgconfig gettext gtk-icon-cache upstream-version-is-even
+inherit allarch autotools pkgconfig gettext gtk-icon-cache
 
 MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
 SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
diff --git a/meta/recipes-gnome/gnome/adwaita-icon-theme_3.38.0.bb b/meta/recipes-gnome/gnome/adwaita-icon-theme_3.38.0.bb
index a36a2b113c..672fbd2b07 100644
--- a/meta/recipes-gnome/gnome/adwaita-icon-theme_3.38.0.bb
+++ b/meta/recipes-gnome/gnome/adwaita-icon-theme_3.38.0.bb
@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c \
                     file://COPYING_CCBYSA3;md5=96143d33de3a79321b1006c4e8ed07e7 \
                     file://COPYING_LGPL;md5=e6a600fd5e1d9cbde2d983680233ad02"
 
-inherit allarch autotools pkgconfig gettext gtk-icon-cache upstream-version-is-even
+inherit allarch autotools pkgconfig gettext gtk-icon-cache
 
 MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
 SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
diff --git a/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.38.0.bb b/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.38.0.bb
index 34681197d8..cf06af57d6 100644
--- a/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.38.0.bb
+++ b/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.38.0.bb
@@ -11,6 +11,6 @@ DEPENDS = "glib-2.0"
 
 GNOMEBASEBUILDCLASS = "meson"
 
-inherit gnomebase gsettings gobject-introspection gettext upstream-version-is-even
+inherit gnomebase gsettings gobject-introspection gettext
 
 SRC_URI[archive.sha256sum] = "5704c8266004b296036671f223c705dc046aa694a1b1abb87c67e7d2747a8c67"
-- 
2.31.1


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

* [PATCH 3/8] expat: upgrade 2.2.10 -> 2.3.0
  2021-05-13 20:56 [PATCH 1/8] gdk-pixbuf: rewrite the cross-build support for tests Alexander Kanavin
  2021-05-13 20:56 ` [PATCH 2/8] gnome: drop upstream even condition from a few recipes Alexander Kanavin
@ 2021-05-13 20:56 ` Alexander Kanavin
  2021-05-13 20:56 ` [PATCH 4/8] meson: update 0.57.2 -> 0.58.0 Alexander Kanavin
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 12+ messages in thread
From: Alexander Kanavin @ 2021-05-13 20:56 UTC (permalink / raw)
  To: openembedded-core; +Cc: Alexander Kanavin

Drop 0001-Add-output-of-tests-result.patch
(difficult to rebase). I have verified that ptests
still pass, and print PASS for every test. If they
start failing we can revisit what kind of output would
be beneficial.

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 .../0001-Add-output-of-tests-result.patch     | 83 -------------------
 meta/recipes-core/expat/expat/run-ptest       |  4 +-
 .../expat/{expat_2.2.10.bb => expat_2.3.0.bb} |  7 +-
 3 files changed, 5 insertions(+), 89 deletions(-)
 delete mode 100644 meta/recipes-core/expat/expat/0001-Add-output-of-tests-result.patch
 rename meta/recipes-core/expat/{expat_2.2.10.bb => expat_2.3.0.bb} (81%)

diff --git a/meta/recipes-core/expat/expat/0001-Add-output-of-tests-result.patch b/meta/recipes-core/expat/expat/0001-Add-output-of-tests-result.patch
deleted file mode 100644
index c5c18ead74..0000000000
--- a/meta/recipes-core/expat/expat/0001-Add-output-of-tests-result.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From aa84835a00bfd65e784d58411e76f60658e939dc Mon Sep 17 00:00:00 2001
-From: Oleksandr Popovych <oleksandr.s.popovych@globallogic.com>
-Date: Tue, 18 Feb 2020 19:04:55 +0200
-Subject: [PATCH] Add output of tests result
-
-Added console output of testing results in form 'RESULT: TEST_NAME'.
-
-Changed verbose mode of test application set by '-v' ('--verbose')
-argument to CK_NORMAL.
-Added new supported argument '-vv' ('--extra-verbose') that changes
-verbose mode of test application to CK_VERBOSE. Results of each test
-are shown in output only if this mode is set.
-
-Upstream-Status: Denied
-
-This patch changes potentially deprecated feature that shoud be changed
-in upstream. [https://github.com/libexpat/libexpat/issues/382]
-
-Signed-off-by: Oleksandr Popovych <oleksandr.s.popovych@globallogic.com>
----
- tests/minicheck.c | 10 +++++++++-
- tests/runtests.c  |  4 +++-
- 2 files changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/expat/tests/minicheck.c b/expat/tests/minicheck.c
-index a5a1efb..94fa412 100644
---- a/tests/minicheck.c
-+++ b/tests/minicheck.c
-@@ -164,6 +164,8 @@ srunner_run_all(SRunner *runner, int verbosity) {
-       if (tc->setup != NULL) {
-         /* setup */
-         if (setjmp(env)) {
-+          if (verbosity >= CK_VERBOSE)
-+            printf("SKIP: %s\n", _check_current_function);
-           add_failure(runner, verbosity);
-           continue;
-         }
-@@ -171,6 +173,8 @@ srunner_run_all(SRunner *runner, int verbosity) {
-       }
-       /* test */
-       if (setjmp(env)) {
-+        if (verbosity >= CK_VERBOSE)
-+          printf("FAIL: %s\n", _check_current_function);
-         add_failure(runner, verbosity);
-         continue;
-       }
-@@ -178,12 +182,16 @@ srunner_run_all(SRunner *runner, int verbosity) {
-
-       /* teardown */
-       if (tc->teardown != NULL) {
--        if (setjmp(env)) {
-+        if (setjmp(env)) {
-+          if (verbosity >= CK_VERBOSE)
-+           printf("PASS: %s\n", _check_current_function);
-           add_failure(runner, verbosity);
-           continue;
-         }
-         tc->teardown();
-       }
-+      if (verbosity >= CK_VERBOSE)
-+        printf("PASS: %s\n", _check_current_function);
-     }
-     tc = tc->next_tcase;
-   }
-diff --git a/tests/runtests.c b/expat/tests/runtests.c
-index 7791fe0..75724e5 100644
---- a/tests/runtests.c
-+++ b/tests/runtests.c
-@@ -11619,9 +11619,11 @@ main(int argc, char *argv[]) {
-   for (i = 1; i < argc; ++i) {
-     char *opt = argv[i];
-     if (strcmp(opt, "-v") == 0 || strcmp(opt, "--verbose") == 0)
--      verbosity = CK_VERBOSE;
-+      verbosity = CK_NORMAL;
-     else if (strcmp(opt, "-q") == 0 || strcmp(opt, "--quiet") == 0)
-       verbosity = CK_SILENT;
-+    else if (strcmp(opt, "-vv") == 0 || strcmp(opt, "--extra-verbose") == 0)
-+	verbosity = CK_VERBOSE;
-     else {
-       fprintf(stderr, "runtests: unknown option '%s'\n", opt);
-       return 2;
---
-2.17.1
diff --git a/meta/recipes-core/expat/expat/run-ptest b/meta/recipes-core/expat/expat/run-ptest
index 1b39cec8e5..59d8ab57e3 100644
--- a/meta/recipes-core/expat/expat/run-ptest
+++ b/meta/recipes-core/expat/expat/run-ptest
@@ -18,6 +18,6 @@ TIME=$(which time)
 
 echo "Architecture: $(uname -m)" > ${output}
 echo "Image: $(uname -sr)" >> ${output}
-${TIME} -f 'Execution time: %e s' bash -c "testCheck runtests -vv" |& tee -a ${output}
-${TIME} -f 'Execution time: %e s' bash -c "testCheck runtestspp -vv" |& tee -a ${output}
+${TIME} -f 'Execution time: %e s' bash -c "testCheck runtests -v" |& tee -a ${output}
+${TIME} -f 'Execution time: %e s' bash -c "testCheck runtestspp -v" |& tee -a ${output}
 echo
diff --git a/meta/recipes-core/expat/expat_2.2.10.bb b/meta/recipes-core/expat/expat_2.3.0.bb
similarity index 81%
rename from meta/recipes-core/expat/expat_2.2.10.bb
rename to meta/recipes-core/expat/expat_2.3.0.bb
index fa263775b3..14d2855df3 100644
--- a/meta/recipes-core/expat/expat_2.2.10.bb
+++ b/meta/recipes-core/expat/expat_2.3.0.bb
@@ -8,11 +8,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=9e2ce3b3c4c0f2670883a23bbd7c37a9"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/expat/expat-${PV}.tar.bz2 \
            file://libtool-tag.patch \
-	   file://run-ptest \
-	   file://0001-Add-output-of-tests-result.patch \
-	  "
+           file://run-ptest \
+           "
 
-SRC_URI[sha256sum] = "b2c160f1b60e92da69de8e12333096aeb0c3bf692d41c60794de278af72135a5"
+SRC_URI[sha256sum] = "f122a20eada303f904d5e0513326c5b821248f2d4d2afbf5c6f1339e511c0586"
 
 EXTRA_OECMAKE_class-native += "-DEXPAT_BUILD_DOCS=OFF"
 
-- 
2.31.1


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

* [PATCH 4/8] meson: update 0.57.2 -> 0.58.0
  2021-05-13 20:56 [PATCH 1/8] gdk-pixbuf: rewrite the cross-build support for tests Alexander Kanavin
  2021-05-13 20:56 ` [PATCH 2/8] gnome: drop upstream even condition from a few recipes Alexander Kanavin
  2021-05-13 20:56 ` [PATCH 3/8] expat: upgrade 2.2.10 -> 2.3.0 Alexander Kanavin
@ 2021-05-13 20:56 ` Alexander Kanavin
  2021-05-14 13:45   ` [OE-core] " Khem Raj
  2021-05-13 20:56 ` [PATCH 5/8] meson.bbclass: split python routines into a separate class Alexander Kanavin
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 12+ messages in thread
From: Alexander Kanavin @ 2021-05-13 20:56 UTC (permalink / raw)
  To: openembedded-core; +Cc: Alexander Kanavin

Rebase patches; dropped chunks (and cross-prop-default.patch)
have been removed upstream.

Move native-only patches to all-patches, as they're a pain to rebase
separately.

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 meta/recipes-devtools/meson/meson.inc         |  11 +-
 .../0001-Make-CPU-family-warnings-fatal.patch |  18 +-
 ...sues-that-arise-when-cross-compiling.patch |   8 +-
 ...-not-manipulate-the-environment-when.patch |  14 +-
 ...pport-building-allarch-recipes-again.patch |  10 +-
 .../meson/meson/0003-native_bindir.patch      |  58 +--
 ...2c19e693a69b0650ce6c8a8903163c959996.patch | 412 ++++++++++++++++++
 .../meson/meson/cross-prop-default.patch      |  23 -
 .../{meson_0.57.2.bb => meson_0.58.0.bb}      |   0
 ...on_0.57.2.bb => nativesdk-meson_0.58.0.bb} |   0
 10 files changed, 456 insertions(+), 98 deletions(-)
 create mode 100644 meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch
 delete mode 100644 meta/recipes-devtools/meson/meson/cross-prop-default.patch
 rename meta/recipes-devtools/meson/{meson_0.57.2.bb => meson_0.58.0.bb} (100%)
 rename meta/recipes-devtools/meson/{nativesdk-meson_0.57.2.bb => nativesdk-meson_0.58.0.bb} (100%)

diff --git a/meta/recipes-devtools/meson/meson.inc b/meta/recipes-devtools/meson/meson.inc
index 10e7d8a1ce..f60381453b 100644
--- a/meta/recipes-devtools/meson/meson.inc
+++ b/meta/recipes-devtools/meson/meson.inc
@@ -12,16 +12,13 @@ SRC_URI = "https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${P
            file://0003-native_bindir.patch \
            file://0001-python-module-do-not-manipulate-the-environment-when.patch \
            file://disable-rpath-handling.patch \
-           file://cross-prop-default.patch \
            file://0001-modules-python.py-do-not-substitute-python-s-install.patch \
            file://gi-target-dep.patch \
+           file://0001-Make-CPU-family-warnings-fatal.patch \
+           file://0002-Support-building-allarch-recipes-again.patch \
+           file://4e312c19e693a69b0650ce6c8a8903163c959996.patch \
            "
-SRC_URI[sha256sum] = "3a83e7b1c5de94fa991ec34d9b198d94f38ed699d3524cb0fdf3b99fd23d4cc5"
-
-SRC_URI_append_class-native = " \
-    file://0001-Make-CPU-family-warnings-fatal.patch \
-    file://0002-Support-building-allarch-recipes-again.patch \
-"
+SRC_URI[sha256sum] = "f4820df0bc969c99019fd4af8ca5f136ee94c63d8a5ad67e7eb73bdbc9182fdd"
 
 UPSTREAM_CHECK_URI = "https://github.com/mesonbuild/meson/releases"
 UPSTREAM_CHECK_REGEX = "meson-(?P<pver>\d+(\.\d+)+)\.tar"
diff --git a/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch b/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
index 300797f9ee..bcccfabd17 100644
--- a/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
+++ b/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
@@ -1,34 +1,33 @@
-From 198e2de24adf5845e3ba389b533cf43440ee8acb Mon Sep 17 00:00:00 2001
+From b64032a2eb1fb760f4ffd5b4b666e2433cf80d39 Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@intel.com>
 Date: Tue, 3 Jul 2018 13:59:09 +0100
-Subject: [PATCH] Make CPU family warnings fatal
+Subject: [PATCH 1/2] Make CPU family warnings fatal
 
 Upstream-Status: Inappropriate [OE specific]
 Signed-off-by: Ross Burton <ross.burton@intel.com>
-
 ---
  mesonbuild/envconfig.py   | 2 +-
  mesonbuild/environment.py | 4 +---
  2 files changed, 2 insertions(+), 4 deletions(-)
 
 diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
-index ba35d16..2d3c34c 100644
+index c6a4df3..4d58c91 100644
 --- a/mesonbuild/envconfig.py
 +++ b/mesonbuild/envconfig.py
-@@ -262,7 +262,7 @@ class MachineInfo:
+@@ -266,7 +266,7 @@ class MachineInfo:
  
          cpu_family = literal['cpu_family']
          if cpu_family not in known_cpu_families:
--            mlog.warning('Unknown CPU family {}, please report this at https://github.com/mesonbuild/meson/issues/new'.format(cpu_family))
+-            mlog.warning(f'Unknown CPU family {cpu_family}, please report this at https://github.com/mesonbuild/meson/issues/new')
 +            raise EnvironmentException('Unknown CPU family {}, see https://wiki.yoctoproject.org/wiki/Meson/UnknownCPU for directions.'.format(cpu_family))
  
          endian = literal['endian']
          if endian not in ('little', 'big'):
 diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
-index 756dd81..4d2c2b6 100644
+index fc9b703..eea8345 100644
 --- a/mesonbuild/environment.py
 +++ b/mesonbuild/environment.py
-@@ -434,9 +434,7 @@ def detect_cpu_family(compilers: CompilersDict) -> str:
+@@ -436,9 +436,7 @@ def detect_cpu_family(compilers: CompilersDict) -> str:
              trial = 'ppc64'
  
      if trial not in known_cpu_families:
@@ -39,3 +38,6 @@ index 756dd81..4d2c2b6 100644
  
      return trial
  
+-- 
+2.24.0
+
diff --git a/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch b/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
index 471f1500da..ce90e515da 100644
--- a/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
+++ b/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
@@ -1,4 +1,4 @@
-From d3ef01a4208a801acad380a4aaceb6a21f8fa603 Mon Sep 17 00:00:00 2001
+From 2f9c59e0489e569c5382404667c10f5c200a72ad Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Fri, 4 Aug 2017 16:16:41 +0300
 Subject: [PATCH] gtkdoc: fix issues that arise when cross-compiling
@@ -20,11 +20,11 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
  1 file changed, 4 insertions(+)
 
 diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
-index bcf77b9..6a4b472 100644
+index dc2979e..c9ff9bd 100644
 --- a/mesonbuild/modules/gnome.py
 +++ b/mesonbuild/modules/gnome.py
-@@ -974,6 +974,10 @@ This will become a hard error in the future.''')
-             args.append('--{}={}'.format(program_name, path))
+@@ -1053,6 +1053,10 @@ class GnomeModule(ExtensionModule):
+             args.append(f'--{program_name}={path}')
          if namespace:
              args.append('--namespace=' + namespace)
 +        gtkdoc_exe_wrapper = state.environment.properties.host.get('gtkdoc_exe_wrapper', None)
diff --git a/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch b/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
index eb0e90dbdd..fdadc6869b 100644
--- a/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
+++ b/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
@@ -1,4 +1,4 @@
-From 689e28c49b85311f93f39df70cbee702fc44afb6 Mon Sep 17 00:00:00 2001
+From 2264e67d7c2c22ca634fd26ea8ada6f0344ab280 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Mon, 19 Nov 2018 14:24:26 +0100
 Subject: [PATCH] python module: do not manipulate the environment when calling
@@ -12,10 +12,10 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
  1 file changed, 12 deletions(-)
 
 diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py
-index 07be318..b770603 100644
+index 422155b..aaf5844 100644
 --- a/mesonbuild/modules/python.py
 +++ b/mesonbuild/modules/python.py
-@@ -71,11 +71,6 @@ class PythonDependency(ExternalDependency):
+@@ -70,11 +70,6 @@ class PythonDependency(ExternalDependency):
                  old_pkg_libdir = os.environ.get('PKG_CONFIG_LIBDIR')
                  old_pkg_path = os.environ.get('PKG_CONFIG_PATH')
  
@@ -26,9 +26,9 @@ index 07be318..b770603 100644
 -
                  try:
                      self.pkgdep = PkgConfigDependency(pkg_name, environment, kwargs)
-                     mlog.debug('Found "{}" via pkgconfig lookup in LIBPC ({})'.format(pkg_name, pkg_libdir))
-@@ -84,13 +79,6 @@ class PythonDependency(ExternalDependency):
-                     mlog.debug('"{}" could not be found in LIBPC ({})'.format(pkg_name, pkg_libdir))
+                     mlog.debug(f'Found "{pkg_name}" via pkgconfig lookup in LIBPC ({pkg_libdir})')
+@@ -83,13 +78,6 @@ class PythonDependency(ExternalDependency):
+                     mlog.debug(f'"{pkg_name}" could not be found in LIBPC ({pkg_libdir})')
                      mlog.debug(e)
  
 -                if old_pkg_path is not None:
@@ -39,5 +39,5 @@ index 07be318..b770603 100644
 -                else:
 -                    os.environ.pop('PKG_CONFIG_LIBDIR', None)
              else:
-                 mlog.debug('"{}" could not be found in LIBPC ({}), this is likely due to a relocated python installation'.format(pkg_name, pkg_libdir))
+                 mlog.debug(f'"{pkg_name}" could not be found in LIBPC ({pkg_libdir}), this is likely due to a relocated python installation')
  
diff --git a/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch b/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
index f6175a194c..dcc1ce9c27 100644
--- a/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
+++ b/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
@@ -1,19 +1,18 @@
-From ac1021a3abf612e8be9b19eecb97062e0c314701 Mon Sep 17 00:00:00 2001
+From 656bf55fed01df2d2e2ad6d9d9887173cb16b85c Mon Sep 17 00:00:00 2001
 From: Peter Kjellerstedt <pkj@axis.com>
 Date: Thu, 26 Jul 2018 16:32:49 +0200
-Subject: [PATCH] Support building allarch recipes again
+Subject: [PATCH 2/2] Support building allarch recipes again
 
 This registers "allarch" as a known CPU family.
 
 Upstream-Status: Inappropriate [OE specific]
 Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
-
 ---
  mesonbuild/envconfig.py | 1 +
  1 file changed, 1 insertion(+)
 
 diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
-index 2d3c34c..b9e7908 100644
+index 4d58c91..ff01ad1 100644
 --- a/mesonbuild/envconfig.py
 +++ b/mesonbuild/envconfig.py
 @@ -36,6 +36,7 @@ from pathlib import Path
@@ -24,3 +23,6 @@ index 2d3c34c..b9e7908 100644
      'aarch64',
      'alpha',
      'arc',
+-- 
+2.24.0
+
diff --git a/meta/recipes-devtools/meson/meson/0003-native_bindir.patch b/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
index ed85116c4f..89257b9e05 100644
--- a/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
+++ b/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
@@ -1,4 +1,4 @@
-From 1546e1f95a119175b7a4e4272a26dd85505e5ede Mon Sep 17 00:00:00 2001
+From 30e97d4090a3d3f5b7ddcaf27cfa17f3c8c1d462 Mon Sep 17 00:00:00 2001
 From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
 Date: Wed, 15 Nov 2017 15:05:01 +0100
 Subject: [PATCH] native_bindir
@@ -18,23 +18,22 @@ Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
 
 ---
  mesonbuild/dependencies/base.py | 19 +++++++++++--------
- mesonbuild/dependencies/ui.py   |  6 +++---
- 2 files changed, 14 insertions(+), 11 deletions(-)
+ 1 file changed, 11 insertions(+), 8 deletions(-)
 
 diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py
-index cd77b4b..7e3f338 100644
+index 14380d4..d0c443f 100644
 --- a/mesonbuild/dependencies/base.py
 +++ b/mesonbuild/dependencies/base.py
-@@ -192,7 +192,7 @@ class Dependency:
+@@ -179,7 +179,7 @@ class Dependency:
      def get_exe_args(self, compiler):
          return []
  
 -    def get_pkgconfig_variable(self, variable_name: str, kwargs: T.Dict[str, T.Any]) -> str:
 +    def get_pkgconfig_variable(self, variable_name: str, kwargs: T.Dict[str, T.Any], use_native=False) -> str:
-         raise DependencyException('{!r} is not a pkgconfig dependency'.format(self.name))
+         raise DependencyException(f'{self.name!r} is not a pkgconfig dependency')
  
      def get_configtool_variable(self, variable_name):
-@@ -280,7 +280,7 @@ class InternalDependency(Dependency):
+@@ -267,7 +267,7 @@ class InternalDependency(Dependency):
              return True
          return any(d.is_built() for d in self.ext_deps)
  
@@ -43,7 +42,7 @@ index cd77b4b..7e3f338 100644
          raise DependencyException('Method "get_pkgconfig_variable()" is '
                                    'invalid for an internal dependency')
  
-@@ -658,8 +658,11 @@ class PkgConfigDependency(ExternalDependency):
+@@ -645,8 +645,11 @@ class PkgConfigDependency(ExternalDependency):
          return s.format(self.__class__.__name__, self.name, self.is_found,
                          self.version_reqs)
  
@@ -57,16 +56,16 @@ index cd77b4b..7e3f338 100644
          p, out, err = Popen_safe(cmd, env=env)
          rc, out, err = p.returncode, out.strip(), err.strip()
          call = ' '.join(cmd)
-@@ -685,7 +688,7 @@ class PkgConfigDependency(ExternalDependency):
-             env['PKG_CONFIG_LIBDIR'] = new_pkg_config_libdir
-             mlog.debug('PKG_CONFIG_LIBDIR: ' + new_pkg_config_libdir)
+@@ -674,7 +677,7 @@ class PkgConfigDependency(ExternalDependency):
+             if key.startswith('PKG_'):
+                 mlog.debug(f'env[{key}]: {value}')
  
 -    def _call_pkgbin(self, args, env=None):
 +    def _call_pkgbin(self, args, env=None, use_native=False):
          # Always copy the environment since we're going to modify it
          # with pkg-config variables
          if env is None:
-@@ -699,7 +702,7 @@ class PkgConfigDependency(ExternalDependency):
+@@ -688,7 +691,7 @@ class PkgConfigDependency(ExternalDependency):
          targs = tuple(args)
          cache = PkgConfigDependency.pkgbin_cache
          if (self.pkgbin, targs, fenv) not in cache:
@@ -75,7 +74,7 @@ index cd77b4b..7e3f338 100644
          return cache[(self.pkgbin, targs, fenv)]
  
      def _convert_mingw_paths(self, args: T.List[str]) -> T.List[str]:
-@@ -905,7 +908,7 @@ class PkgConfigDependency(ExternalDependency):
+@@ -894,7 +897,7 @@ class PkgConfigDependency(ExternalDependency):
                                        (self.name, out_raw))
          self.link_args, self.raw_link_args = self._search_libs(out, out_raw)
  
@@ -84,7 +83,7 @@ index cd77b4b..7e3f338 100644
          options = ['--variable=' + variable_name, self.name]
  
          if 'define_variable' in kwargs:
-@@ -918,7 +921,7 @@ class PkgConfigDependency(ExternalDependency):
+@@ -907,7 +910,7 @@ class PkgConfigDependency(ExternalDependency):
  
              options = ['--define-variable=' + '='.join(definition)] + options
  
@@ -93,34 +92,3 @@ index cd77b4b..7e3f338 100644
          variable = ''
          if ret != 0:
              if self.required:
-diff --git a/mesonbuild/dependencies/ui.py b/mesonbuild/dependencies/ui.py
-index d897d76..a598d2e 100644
---- a/mesonbuild/dependencies/ui.py
-+++ b/mesonbuild/dependencies/ui.py
-@@ -325,7 +325,7 @@ class QtBaseDependency(ExternalDependency):
-         self.bindir = self.get_pkgconfig_host_bins(core)
-         if not self.bindir:
-             # If exec_prefix is not defined, the pkg-config file is broken
--            prefix = core.get_pkgconfig_variable('exec_prefix', {})
-+            prefix = core.get_pkgconfig_variable('exec_prefix', {}, use_native=True)
-             if prefix:
-                 self.bindir = os.path.join(prefix, 'bin')
- 
-@@ -528,7 +528,7 @@ class Qt4Dependency(QtBaseDependency):
-         applications = ['moc', 'uic', 'rcc', 'lupdate', 'lrelease']
-         for application in applications:
-             try:
--                return os.path.dirname(core.get_pkgconfig_variable('%s_location' % application, {}))
-+                return os.path.dirname(core.get_pkgconfig_variable('%s_location' % application, {}, use_native=True))
-             except MesonException:
-                 pass
- 
-@@ -538,7 +538,7 @@ class Qt5Dependency(QtBaseDependency):
-         QtBaseDependency.__init__(self, 'qt5', env, kwargs)
- 
-     def get_pkgconfig_host_bins(self, core):
--        return core.get_pkgconfig_variable('host_bins', {})
-+        return core.get_pkgconfig_variable('host_bins', {}, use_native=True)
- 
-     def get_private_includes(self, mod_inc_dir, module):
-         return _qt_get_private_includes(mod_inc_dir, module, self.version)
diff --git a/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch b/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch
new file mode 100644
index 0000000000..76daf019b0
--- /dev/null
+++ b/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch
@@ -0,0 +1,412 @@
+From 4e312c19e693a69b0650ce6c8a8903163c959996 Mon Sep 17 00:00:00 2001
+From: Xavier Claessens <xavier.claessens@collabora.com>
+Date: Tue, 11 May 2021 09:18:47 -0400
+Subject: [PATCH] gnome: Fix gtkdoc generation
+
+install_scripts used to replace @BUILD_ROOT@ and @SOURCE_ROOT@ but it
+was not documented and got removed in Meson 0.58.0. gnome.gtkdoc() was
+relying on that behaviour, but it has always been broken in the case the
+source or build directory contains spaces.
+
+Fix this by changing get_include_args() to substitue paths directly
+which will then get escaped correctly.
+
+Add a unit test that builds GObject documentation which is where this
+issue has been spotted.
+
+Fixes: #8744
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ mesonbuild/modules/__init__.py                | 54 +++++++++----------
+ mesonbuild/modules/gnome.py                   | 15 +++---
+ mesonbuild/modules/hotdoc.py                  |  3 +-
+ mesonbuild/modules/qt.py                      |  4 +-
+ mesonbuild/modules/windows.py                 |  5 +-
+ .../10 gtk-doc/doc/foobar1/foobar-docs.sgml   |  2 +-
+ .../doc/foobar1/foobar-sections.txt           | 16 ++++++
+ .../10 gtk-doc/doc/foobar1/foobar.types       |  4 ++
+ .../10 gtk-doc/doc/foobar1/meson.build        |  6 ++-
+ test cases/frameworks/10 gtk-doc/foo.c        | 30 +++++++++++
+ .../frameworks/10 gtk-doc/include/foo.h       | 18 +++++++
+ test cases/frameworks/10 gtk-doc/meson.build  | 12 +++++
+ test cases/frameworks/10 gtk-doc/test.json    |  4 +-
+ 13 files changed, 127 insertions(+), 46 deletions(-)
+ create mode 100644 test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt
+ create mode 100644 test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types
+ create mode 100644 test cases/frameworks/10 gtk-doc/foo.c
+
+diff --git a/mesonbuild/modules/__init__.py b/mesonbuild/modules/__init__.py
+index ddb5e3e6cf3..c0970294c34 100644
+--- a/mesonbuild/modules/__init__.py
++++ b/mesonbuild/modules/__init__.py
+@@ -56,6 +56,33 @@ def __init__(self, interpreter: 'Interpreter') -> None:
+         self.target_machine = interpreter.builtin['target_machine'].held_object
+         self.current_node = interpreter.current_node
+ 
++    def get_include_args(self, include_dirs, prefix='-I'):
++        if not include_dirs:
++            return []
++
++        srcdir = self.environment.get_source_dir()
++        builddir = self.environment.get_build_dir()
++
++        dirs_str = []
++        for dirs in unholder(include_dirs):
++            if isinstance(dirs, str):
++                dirs_str += [f'{prefix}{dirs}']
++                continue
++
++            # Should be build.IncludeDirs object.
++            basedir = dirs.get_curdir()
++            for d in dirs.get_incdirs():
++                expdir = os.path.join(basedir, d)
++                srctreedir = os.path.join(srcdir, expdir)
++                buildtreedir = os.path.join(builddir, expdir)
++                dirs_str += [f'{prefix}{buildtreedir}',
++                             f'{prefix}{srctreedir}']
++            for d in dirs.get_extra_build_dirs():
++                dirs_str += [f'{prefix}{d}']
++
++        return dirs_str
++
++
+ class ModuleObject:
+     """Base class for all objects returned by modules
+     """
+@@ -71,33 +98,6 @@ def __init__(self, interpreter: T.Optional['Interpreter'] = None) -> None:
+ class ExtensionModule(ModuleObject):
+     pass
+ 
+-def get_include_args(include_dirs, prefix='-I'):
+-    '''
+-    Expand include arguments to refer to the source and build dirs
+-    by using @SOURCE_ROOT@ and @BUILD_ROOT@ for later substitution
+-    '''
+-    if not include_dirs:
+-        return []
+-
+-    dirs_str = []
+-    for dirs in unholder(include_dirs):
+-        if isinstance(dirs, str):
+-            dirs_str += [f'{prefix}{dirs}']
+-            continue
+-
+-        # Should be build.IncludeDirs object.
+-        basedir = dirs.get_curdir()
+-        for d in dirs.get_incdirs():
+-            expdir = os.path.join(basedir, d)
+-            srctreedir = os.path.join('@SOURCE_ROOT@', expdir)
+-            buildtreedir = os.path.join('@BUILD_ROOT@', expdir)
+-            dirs_str += [f'{prefix}{buildtreedir}',
+-                         f'{prefix}{srctreedir}']
+-        for d in dirs.get_extra_build_dirs():
+-            dirs_str += [f'{prefix}{d}']
+-
+-    return dirs_str
+-
+ def is_module_library(fname):
+     '''
+     Check if the file is a library-like file generated by a module-specific
+diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
+index d0b053d4f76..c91cda66f8b 100644
+--- a/mesonbuild/modules/gnome.py
++++ b/mesonbuild/modules/gnome.py
+@@ -26,7 +26,6 @@
+ from .. import mesonlib
+ from .. import interpreter
+ from . import GResourceTarget, GResourceHeaderTarget, GirTarget, TypelibTarget, VapiTarget
+-from . import get_include_args
+ from . import ExtensionModule
+ from . import ModuleReturnValue
+ from ..mesonlib import (
+@@ -394,7 +393,7 @@ def _get_dependencies_flags(self, deps, state, depends, include_rpath=False,
+                     gi_includes.update([girdir])
+             if isinstance(dep, InternalDependency):
+                 cflags.update(dep.get_compile_args())
+-                cflags.update(get_include_args(dep.include_directories))
++                cflags.update(state.get_include_args(dep.include_directories))
+                 for lib in unholder(dep.libraries):
+                     if isinstance(lib, build.SharedLibrary):
+                         internal_ldflags.update(self._get_link_args(state, lib, depends, include_rpath))
+@@ -443,7 +442,7 @@ def _get_dependencies_flags(self, deps, state, depends, include_rpath=False,
+                     else:
+                         external_ldflags.update([lib])
+             elif isinstance(dep, (build.StaticLibrary, build.SharedLibrary)):
+-                cflags.update(get_include_args(dep.get_include_dirs()))
++                cflags.update(state.get_include_args(dep.get_include_dirs()))
+                 depends.append(dep)
+             else:
+                 mlog.log(f'dependency {dep!r} not handled to build gir files')
+@@ -853,7 +852,7 @@ def generate_gir(self, state, args, kwargs):
+         scan_command += self._scan_header(kwargs)
+         scan_command += self._scan_extra_args(kwargs)
+         scan_command += ['-I' + srcdir, '-I' + builddir]
+-        scan_command += get_include_args(girtargets_inc_dirs)
++        scan_command += state.get_include_args(girtargets_inc_dirs)
+         scan_command += ['--filelist=' + self._make_gir_filelist(state, srcdir, ns, nsversion, girtargets, libsources)]
+         scan_command += self._scan_link_withs(state, depends, kwargs)
+         scan_command += self._scan_include(state, depends, gir_inc_dirs, kwargs)
+@@ -863,8 +862,8 @@ def generate_gir(self, state, args, kwargs):
+         scan_command += ['--cflags-begin']
+         scan_command += cflags
+         scan_command += ['--cflags-end']
+-        scan_command += get_include_args(inc_dirs)
+-        scan_command += get_include_args(list(gi_includes) + gir_inc_dirs + inc_dirs, prefix='--add-include-path=')
++        scan_command += state.get_include_args(inc_dirs)
++        scan_command += state.get_include_args(list(gi_includes) + gir_inc_dirs + inc_dirs, prefix='--add-include-path=')
+         scan_command += list(internal_ldflags)
+         scan_command += self._scan_gir_targets(state, girtargets)
+         scan_command += self._scan_langs(state, [lc[0] for lc in langs_compilers])
+@@ -886,7 +885,7 @@ def generate_gir(self, state, args, kwargs):
+ 
+         typelib_output = f'{ns}-{nsversion}.typelib'
+         typelib_cmd = [gicompiler, scan_target, '--output', '@OUTPUT@']
+-        typelib_cmd += get_include_args(gir_inc_dirs, prefix='--includedir=')
++        typelib_cmd += state.get_include_args(gir_inc_dirs, prefix='--includedir=')
+ 
+         for incdir in typelib_includes:
+             typelib_cmd += ["--includedir=" + incdir]
+@@ -1127,7 +1126,7 @@ def _get_build_args(self, kwargs, state, depends):
+                     'Gir include dirs should be include_directories().')
+ 
+         cflags.extend(deps_cflags)
+-        cflags.extend(get_include_args(inc_dirs))
++        cflags.extend(state.get_include_args(inc_dirs))
+         ldflags = []
+         ldflags.extend(internal_ldflags)
+         ldflags.extend(external_ldflags)
+diff --git a/mesonbuild/modules/hotdoc.py b/mesonbuild/modules/hotdoc.py
+index bf8cd229c0d..89a5d938ea7 100644
+--- a/mesonbuild/modules/hotdoc.py
++++ b/mesonbuild/modules/hotdoc.py
+@@ -22,7 +22,6 @@
+ from mesonbuild.coredata import MesonException
+ from . import ModuleReturnValue
+ from . import ExtensionModule
+-from . import get_include_args
+ from ..dependencies import Dependency, InternalDependency
+ from ..interpreterbase import FeatureNew, InvalidArguments, noPosargs, noKwargs
+ from ..interpreter import CustomTargetHolder
+@@ -191,7 +190,7 @@ def process_dependencies(self, deps):
+         for dep in mesonlib.listify(ensure_list(deps)):
+             dep = getattr(dep, "held_object", dep)
+             if isinstance(dep, InternalDependency):
+-                inc_args = get_include_args(dep.include_directories)
++                inc_args = self.state.get_include_args(dep.include_directories)
+                 cflags.update([self.replace_dirs_in_string(x)
+                                for x in inc_args])
+                 cflags.update(self.process_dependencies(dep.libraries))
+diff --git a/mesonbuild/modules/qt.py b/mesonbuild/modules/qt.py
+index b7389bd59af..1bf0099d1df 100644
+--- a/mesonbuild/modules/qt.py
++++ b/mesonbuild/modules/qt.py
+@@ -23,7 +23,7 @@
+ from ..mesonlib import MesonException, extract_as_list, File, unholder, version_compare
+ from ..dependencies import Dependency
+ import xml.etree.ElementTree as ET
+-from . import ModuleReturnValue, get_include_args, ExtensionModule
++from . import ModuleReturnValue, ExtensionModule
+ from ..interpreterbase import noPosargs, permittedKwargs, FeatureNew, FeatureNewKwargs
+ from ..interpreter import extract_required_kwarg
+ from ..programs import NonExistingExternalProgram
+@@ -239,7 +239,7 @@ def preprocess(self, state, args, kwargs):
+             ui_gen = build.Generator([self.uic], ui_kwargs)
+             ui_output = ui_gen.process_files(f'Qt{self.qt_version} ui', ui_files, state)
+             sources.append(ui_output)
+-        inc = get_include_args(include_dirs=include_directories)
++        inc = state.get_include_args(include_dirs=include_directories)
+         compile_args = []
+         for dep in unholder(dependencies):
+             if isinstance(dep, Dependency):
+diff --git a/mesonbuild/modules/windows.py b/mesonbuild/modules/windows.py
+index d7a86380885..c4fdc196681 100644
+--- a/mesonbuild/modules/windows.py
++++ b/mesonbuild/modules/windows.py
+@@ -19,7 +19,6 @@
+ from .. import mlog
+ from .. import mesonlib, build
+ from ..mesonlib import MachineChoice, MesonException, extract_as_list, unholder
+-from . import get_include_args
+ from . import ModuleReturnValue
+ from . import ExtensionModule
+ from ..interpreter import CustomTargetHolder
+@@ -83,12 +82,12 @@ def compile_resources(self, state, args, kwargs):
+         wrc_depends = extract_as_list(kwargs, 'depends', pop = True)
+         for d in wrc_depends:
+             if isinstance(d, CustomTargetHolder):
+-                extra_args += get_include_args([d.outdir_include()])
++                extra_args += state.get_include_args([d.outdir_include()])
+         inc_dirs = extract_as_list(kwargs, 'include_directories', pop = True)
+         for incd in inc_dirs:
+             if not isinstance(incd.held_object, (str, build.IncludeDirs)):
+                 raise MesonException('Resource include dirs should be include_directories().')
+-        extra_args += get_include_args(inc_dirs)
++        extra_args += state.get_include_args(inc_dirs)
+ 
+         rescomp, rescomp_type = self._find_resource_compiler(state)
+         if rescomp_type == ResourceCompilerType.rc:
+diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml
+index 95f73efdf45..6ccd087dc18 100644
+--- a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml	
++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml	
+@@ -35,7 +35,7 @@
+     </partintro>
+     <xi:include href="xml/foo.xml"/>
+     <xi:include href="../../include/bar.xml"/>
+-    <xi:include href="xml/foo-version.xml"/>
++    <xi:include href="xml/version.xml"/>
+   </reference>
+ 
+ </book>
+diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt
+new file mode 100644
+index 00000000000..d14c8dab010
+--- /dev/null
++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt	
+@@ -0,0 +1,16 @@
++<SECTION>
++<FILE>foo</FILE>
++<TITLE>FooObj</TITLE>
++FooObj
++FooObjClass
++foo_do_something
++</SECTION>
++
++<SECTION>
++<FILE>version</FILE>
++<TITLE>version</TITLE>
++FOO_MAJOR_VERSION
++FOO_MINOR_VERSION
++FOO_MICRO_VERSION
++</SECTION>
++
+diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types
+new file mode 100644
+index 00000000000..0a9c046f3ed
+--- /dev/null
++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types	
+@@ -0,0 +1,4 @@
++% This include is useless it's a regression test for https://github.com/mesonbuild/meson/issues/8744
++#include <foo.h>
++
++foo_obj_get_type
+diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build b/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build
+index 149c6e956aa..f4b3724dbae 100644
+--- a/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build	
++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build	
+@@ -1,5 +1,9 @@
+ gnome.gtkdoc('foobar',
+-  src_dir : inc,
++  src_dir : [inc, '.'],
+   main_sgml : 'foobar-docs.sgml',
+   content_files : [docbook, version_xml],
++  dependencies: foo_dep,
++  # Manually written types file for regression test:
++  # https://github.com/mesonbuild/meson/issues/8744
++  gobject_typesfile: 'foobar.types',
+   install : true)
+diff --git a/test cases/frameworks/10 gtk-doc/foo.c b/test cases/frameworks/10 gtk-doc/foo.c
+new file mode 100644
+index 00000000000..36c0639ec08
+--- /dev/null
++++ b/test cases/frameworks/10 gtk-doc/foo.c	
+@@ -0,0 +1,30 @@
++#include <foo.h>
++
++
++struct _FooObj {
++  GObject parent;
++  int dummy;
++};
++
++G_DEFINE_TYPE(FooObj, foo_obj, G_TYPE_OBJECT)
++
++static void foo_obj_init (FooObj *self)
++{
++}
++
++static void foo_obj_class_init (FooObjClass *klass)
++{
++}
++
++/**
++ * foo_do_something:
++ * @self: self
++ *
++ * Useless function.
++ *
++ * Returns: 0.
++ */
++int foo_do_something(FooObj *self)
++{
++  return 0;
++}
+diff --git a/test cases/frameworks/10 gtk-doc/include/foo.h b/test cases/frameworks/10 gtk-doc/include/foo.h
+index 7b8946b6a86..510f3d1ecb5 100644
+--- a/test cases/frameworks/10 gtk-doc/include/foo.h	
++++ b/test cases/frameworks/10 gtk-doc/include/foo.h	
+@@ -1,5 +1,7 @@
+ #pragma once
+ 
++#include <glib-object.h>
++
+ /**
+  * FooIndecision:
+  * @FOO_MAYBE:     Something maybe
+@@ -13,3 +15,19 @@ typedef enum {
+     FOO_POSSIBLY,
+ } FooIndecision;
+ 
++/**
++ * FooObjClass:
++ *
++ * The class
++ */
++
++/**
++ * FooObj:
++ *
++ * The instance
++ */
++
++#define FOO_TYPE_OBJ foo_obj_get_type()
++G_DECLARE_FINAL_TYPE(FooObj, foo_obj, FOO, OBJ, GObject)
++
++int foo_do_something(FooObj *self);
+diff --git a/test cases/frameworks/10 gtk-doc/meson.build b/test cases/frameworks/10 gtk-doc/meson.build
+index 5c22ad0afa4..292980fafa7 100644
+--- a/test cases/frameworks/10 gtk-doc/meson.build	
++++ b/test cases/frameworks/10 gtk-doc/meson.build	
+@@ -24,4 +24,16 @@ if gtkdoc_ver.version_compare('<1.26')
+   error('MESON_SKIP_TEST gtk-doc test requires gtkdoc >= 1.26.')
+ endif
+ 
++gobject = dependency('gobject-2.0')
++
++libfoo = library('foo', 'foo.c',
++  include_directories: inc,
++  dependencies: gobject,
++)
++
++foo_dep = declare_dependency(
++  link_with: libfoo,
++  include_directories: inc,
++)
++
+ subdir('doc')
+diff --git a/test cases/frameworks/10 gtk-doc/test.json b/test cases/frameworks/10 gtk-doc/test.json
+index c44126cc741..03ad0595817 100644
+--- a/test cases/frameworks/10 gtk-doc/test.json	
++++ b/test cases/frameworks/10 gtk-doc/test.json	
+@@ -4,8 +4,8 @@
+     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/BAR.html"},
+     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar.devhelp2"},
+     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar.html"},
+-    {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar-foo.html"},
+-    {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar-foo-version.html"},
++    {"type": "file", "file": "usr/share/gtk-doc/html/foobar/FooObj.html"},
++    {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foo-version.html"},
+     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/home.png"},
+     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/index.html"},
+     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/left.png"},
diff --git a/meta/recipes-devtools/meson/meson/cross-prop-default.patch b/meta/recipes-devtools/meson/meson/cross-prop-default.patch
deleted file mode 100644
index 772395e879..0000000000
--- a/meta/recipes-devtools/meson/meson/cross-prop-default.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-meson.build files that use cc.run() in native builds can silently fallback to
-meson.get_cross_property() in cross builds without an exe-wrapper, but there's
-no way to know that this is happening.
-
-As the defaults may be pessimistic (for example, disabling the support for a
-feature that should be enabled) emit a warning when the default is used, so that
-the recipe can explicitly set the cross property as relevant.
-
-Upstream-Status: Submitted [https://github.com/mesonbuild/meson/pull/5071]
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
-index 3c3cfae0..10e741ae 100644
---- a/mesonbuild/interpreter.py
-+++ b/mesonbuild/interpreter.py
-@@ -1890,6 +1890,7 @@ class MesonMain(InterpreterObject):
-             return props[propname]
-         except Exception:
-             if len(args) == 2:
-+                mlog.warning('Cross property %s is using default value %s' % (propname, args[1]))
-                 return args[1]
-             raise InterpreterException('Unknown cross property: %s.' % propname)
- 
diff --git a/meta/recipes-devtools/meson/meson_0.57.2.bb b/meta/recipes-devtools/meson/meson_0.58.0.bb
similarity index 100%
rename from meta/recipes-devtools/meson/meson_0.57.2.bb
rename to meta/recipes-devtools/meson/meson_0.58.0.bb
diff --git a/meta/recipes-devtools/meson/nativesdk-meson_0.57.2.bb b/meta/recipes-devtools/meson/nativesdk-meson_0.58.0.bb
similarity index 100%
rename from meta/recipes-devtools/meson/nativesdk-meson_0.57.2.bb
rename to meta/recipes-devtools/meson/nativesdk-meson_0.58.0.bb
-- 
2.31.1


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

* [PATCH 5/8] meson.bbclass: split python routines into a separate class
  2021-05-13 20:56 [PATCH 1/8] gdk-pixbuf: rewrite the cross-build support for tests Alexander Kanavin
                   ` (2 preceding siblings ...)
  2021-05-13 20:56 ` [PATCH 4/8] meson: update 0.57.2 -> 0.58.0 Alexander Kanavin
@ 2021-05-13 20:56 ` Alexander Kanavin
  2021-05-13 20:56 ` [PATCH 6/8] nativesdk-meson: correctly set cpu_family Alexander Kanavin
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 12+ messages in thread
From: Alexander Kanavin @ 2021-05-13 20:56 UTC (permalink / raw)
  To: openembedded-core; +Cc: Alexander Kanavin

This allows reusing them in nativesdk-meson without copy-pasting code.

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 meta/classes/meson-routines.bbclass | 51 ++++++++++++++++++++++++++++
 meta/classes/meson.bbclass          | 52 +----------------------------
 2 files changed, 52 insertions(+), 51 deletions(-)
 create mode 100644 meta/classes/meson-routines.bbclass

diff --git a/meta/classes/meson-routines.bbclass b/meta/classes/meson-routines.bbclass
new file mode 100644
index 0000000000..be3aeedeba
--- /dev/null
+++ b/meta/classes/meson-routines.bbclass
@@ -0,0 +1,51 @@
+inherit siteinfo
+
+def meson_array(var, d):
+    items = d.getVar(var).split()
+    return repr(items[0] if len(items) == 1 else items)
+
+# Map our ARCH values to what Meson expects:
+# http://mesonbuild.com/Reference-tables.html#cpu-families
+def meson_cpu_family(var, d):
+    import re
+    arch = d.getVar(var)
+    if arch == 'powerpc':
+        return 'ppc'
+    elif arch == 'powerpc64' or arch == 'powerpc64le':
+        return 'ppc64'
+    elif arch == 'armeb':
+        return 'arm'
+    elif arch == 'aarch64_be':
+        return 'aarch64'
+    elif arch == 'mipsel':
+        return 'mips'
+    elif arch == 'mips64el':
+        return 'mips64'
+    elif re.match(r"i[3-6]86", arch):
+        return "x86"
+    elif arch == "microblazeel":
+        return "microblaze"
+    else:
+        return arch
+
+# Map our OS values to what Meson expects:
+# https://mesonbuild.com/Reference-tables.html#operating-system-names
+def meson_operating_system(var, d):
+    os = d.getVar(var)
+    if "mingw" in os:
+        return "windows"
+    # avoid e.g 'linux-gnueabi'
+    elif "linux" in os:
+        return "linux"
+    else:
+        return os
+
+def meson_endian(prefix, d):
+    arch, os = d.getVar(prefix + "_ARCH"), d.getVar(prefix + "_OS")
+    sitedata = siteinfo_data_for_machine(arch, os, d)
+    if "endian-little" in sitedata:
+        return "little"
+    elif "endian-big" in sitedata:
+        return "big"
+    else:
+        bb.fatal("Cannot determine endianism for %s-%s" % (arch, os))
diff --git a/meta/classes/meson.bbclass b/meta/classes/meson.bbclass
index bf9b02e06e..8ae0285f72 100644
--- a/meta/classes/meson.bbclass
+++ b/meta/classes/meson.bbclass
@@ -1,4 +1,4 @@
-inherit siteinfo python3native
+inherit python3native meson-routines
 
 DEPENDS_append = " meson-native ninja-native"
 
@@ -35,56 +35,6 @@ MESON_CROSS_FILE = ""
 MESON_CROSS_FILE_class-target = "--cross-file ${WORKDIR}/meson.cross"
 MESON_CROSS_FILE_class-nativesdk = "--cross-file ${WORKDIR}/meson.cross"
 
-def meson_array(var, d):
-    items = d.getVar(var).split()
-    return repr(items[0] if len(items) == 1 else items)
-
-# Map our ARCH values to what Meson expects:
-# http://mesonbuild.com/Reference-tables.html#cpu-families
-def meson_cpu_family(var, d):
-    import re
-    arch = d.getVar(var)
-    if arch == 'powerpc':
-        return 'ppc'
-    elif arch == 'powerpc64' or arch == 'powerpc64le':
-        return 'ppc64'
-    elif arch == 'armeb':
-        return 'arm'
-    elif arch == 'aarch64_be':
-        return 'aarch64'
-    elif arch == 'mipsel':
-        return 'mips'
-    elif arch == 'mips64el':
-        return 'mips64'
-    elif re.match(r"i[3-6]86", arch):
-        return "x86"
-    elif arch == "microblazeel":
-        return "microblaze"
-    else:
-        return arch
-
-# Map our OS values to what Meson expects:
-# https://mesonbuild.com/Reference-tables.html#operating-system-names
-def meson_operating_system(var, d):
-    os = d.getVar(var)
-    if "mingw" in os:
-        return "windows"
-    # avoid e.g 'linux-gnueabi'
-    elif "linux" in os:
-        return "linux"
-    else:
-        return os
-
-def meson_endian(prefix, d):
-    arch, os = d.getVar(prefix + "_ARCH"), d.getVar(prefix + "_OS")
-    sitedata = siteinfo_data_for_machine(arch, os, d)
-    if "endian-little" in sitedata:
-        return "little"
-    elif "endian-big" in sitedata:
-        return "big"
-    else:
-        bb.fatal("Cannot determine endianism for %s-%s" % (arch, os))
-
 addtask write_config before do_configure
 do_write_config[vardeps] += "CC CXX LD AR NM STRIP READELF CFLAGS CXXFLAGS LDFLAGS"
 do_write_config() {
-- 
2.31.1


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

* [PATCH 6/8] nativesdk-meson: correctly set cpu_family
  2021-05-13 20:56 [PATCH 1/8] gdk-pixbuf: rewrite the cross-build support for tests Alexander Kanavin
                   ` (3 preceding siblings ...)
  2021-05-13 20:56 ` [PATCH 5/8] meson.bbclass: split python routines into a separate class Alexander Kanavin
@ 2021-05-13 20:56 ` Alexander Kanavin
  2021-05-13 20:56 ` [PATCH 7/8] gstreamer1.0-plugins-base: backport a patch to fix meson 0.58 builds Alexander Kanavin
  2021-05-13 20:56 ` [PATCH 8/8] qemu: " Alexander Kanavin
  6 siblings, 0 replies; 12+ messages in thread
From: Alexander Kanavin @ 2021-05-13 20:56 UTC (permalink / raw)
  To: openembedded-core; +Cc: Alexander Kanavin

This was a warning before, but with the patch
that turns it into an error, it needs to be properly addressed.

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 .../meson/nativesdk-meson_0.58.0.bb                | 14 ++------------
 1 file changed, 2 insertions(+), 12 deletions(-)

diff --git a/meta/recipes-devtools/meson/nativesdk-meson_0.58.0.bb b/meta/recipes-devtools/meson/nativesdk-meson_0.58.0.bb
index 8778cab124..74e1a7104a 100644
--- a/meta/recipes-devtools/meson/nativesdk-meson_0.58.0.bb
+++ b/meta/recipes-devtools/meson/nativesdk-meson_0.58.0.bb
@@ -1,21 +1,11 @@
 include meson.inc
 
-inherit siteinfo
+inherit meson-routines
 inherit nativesdk
 
 SRC_URI += "file://meson-setup.py \
             file://meson-wrapper"
 
-def meson_endian(prefix, d):
-    arch, os = d.getVar(prefix + "_ARCH"), d.getVar(prefix + "_OS")
-    sitedata = siteinfo_data_for_machine(arch, os, d)
-    if "endian-little" in sitedata:
-        return "little"
-    elif "endian-big" in sitedata:
-        return "big"
-    else:
-        bb.fatal("Cannot determine endianism for %s-%s" % (arch, os))
-
 # The cross file logic is similar but not identical to that in meson.bbclass,
 # since it's generating for an SDK rather than a cross-compile. Important
 # differences are:
@@ -44,7 +34,7 @@ sys_root = @OECORE_TARGET_SYSROOT
 
 [host_machine]
 system = '${SDK_OS}'
-cpu_family = '${SDK_ARCH}'
+cpu_family = '${@meson_cpu_family("SDK_ARCH", d)}'
 cpu = '${SDK_ARCH}'
 endian = '${@meson_endian("SDK", d)}'
 EOF
-- 
2.31.1


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

* [PATCH 7/8] gstreamer1.0-plugins-base: backport a patch to fix meson 0.58 builds
  2021-05-13 20:56 [PATCH 1/8] gdk-pixbuf: rewrite the cross-build support for tests Alexander Kanavin
                   ` (4 preceding siblings ...)
  2021-05-13 20:56 ` [PATCH 6/8] nativesdk-meson: correctly set cpu_family Alexander Kanavin
@ 2021-05-13 20:56 ` Alexander Kanavin
  2021-05-13 20:56 ` [PATCH 8/8] qemu: " Alexander Kanavin
  6 siblings, 0 replies; 12+ messages in thread
From: Alexander Kanavin @ 2021-05-13 20:56 UTC (permalink / raw)
  To: openembedded-core; +Cc: Alexander Kanavin

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 ...c91697a141fea7317aff7f0f28e5a861db99.patch | 50 +++++++++++++++++++
 .../gstreamer1.0-plugins-base_1.18.4.bb       |  1 +
 2 files changed, 51 insertions(+)
 create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/4ef5c91697a141fea7317aff7f0f28e5a861db99.patch

diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/4ef5c91697a141fea7317aff7f0f28e5a861db99.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/4ef5c91697a141fea7317aff7f0f28e5a861db99.patch
new file mode 100644
index 0000000000..a2f5dff5e9
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/4ef5c91697a141fea7317aff7f0f28e5a861db99.patch
@@ -0,0 +1,50 @@
+From 4ef5c91697a141fea7317aff7f0f28e5a861db99 Mon Sep 17 00:00:00 2001
+From: Xavier Claessens <xavier.claessens@collabora.com>
+Date: Mon, 26 Apr 2021 14:25:03 -0400
+Subject: [PATCH] gstgl: Fix build when Meson >= 0.58.0rc1
+
+"implicit_include_directories: false" now also means that current build
+directory is not added to include paths by default any more. We have to
+add it manually because we have some custom_target() that generate
+headers in current build directory.
+
+See https://github.com/mesonbuild/meson/issues/8700.
+
+Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1125>
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ gst-libs/gst/gl/meson.build | 15 ++++++++++++---
+ 1 file changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/gst-libs/gst/gl/meson.build b/gst-libs/gst/gl/meson.build
+index 66668644e..53891625a 100644
+--- a/gst-libs/gst/gl/meson.build
++++ b/gst-libs/gst/gl/meson.build
+@@ -1004,11 +1004,20 @@ if build_gstgl
+     command : [mkenums, glib_mkenums, '@OUTPUT@', '@INPUT@'])
+   gen_sources = [gl_enumtypes_h]
+ 
++  common_args = gst_plugins_base_args + gl_cpp_args + ['-DBUILDING_GST_GL']
++
++  # We have custom_target() that generate headers in the current build dir,
++  # but with implicit_include_directories: false, meson >= 0.58.0 won't include
++  # it by default. We cannot use include_directories('.') here because it would
++  # also include current source dir which is what we want to avoid because
++  # case-insensitive FS would include gst-libs/gl/egl/egl.h as EGL/egl.h.
++  common_args += '-I@0@'.format(meson.current_build_dir())
++
+   gstgl = library('gstgl-' + api_version,
+     gl_sources, gl_egl_sources, gl_x11_sources, gl_wayland_sources, gl_priv_sources, gl_enumtypes_c, gl_enumtypes_h,
+-    c_args : gst_plugins_base_args + gl_cpp_args + ['-DBUILDING_GST_GL'],
+-    cpp_args : gst_plugins_base_args + gl_cpp_args + ['-DBUILDING_GST_GL'],
+-    objc_args : gst_plugins_base_args + gl_cpp_args + gl_objc_args + ['-DBUILDING_GST_GL'],
++    c_args : common_args,
++    cpp_args : common_args,
++    objc_args : common_args + gl_objc_args,
+     include_directories : [configinc, libsinc, gl_includes],
+     version : libversion,
+     soversion : soversion,
+-- 
+GitLab
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.4.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.4.bb
index beddfb0386..73b433ab91 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.4.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.4.bb
@@ -11,6 +11,7 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-ba
            file://0003-viv-fb-Make-sure-config.h-is-included.patch \
            file://0002-ssaparse-enhance-SSA-text-lines-parsing.patch \
            file://0004-glimagesink-Downrank-to-marginal.patch \
+           file://4ef5c91697a141fea7317aff7f0f28e5a861db99.patch \
            "
 SRC_URI[sha256sum] = "29e53229a84d01d722f6f6db13087231cdf6113dd85c25746b9b58c3d68e8323"
 
-- 
2.31.1


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

* [PATCH 8/8] qemu: backport a patch to fix meson 0.58 builds
  2021-05-13 20:56 [PATCH 1/8] gdk-pixbuf: rewrite the cross-build support for tests Alexander Kanavin
                   ` (5 preceding siblings ...)
  2021-05-13 20:56 ` [PATCH 7/8] gstreamer1.0-plugins-base: backport a patch to fix meson 0.58 builds Alexander Kanavin
@ 2021-05-13 20:56 ` Alexander Kanavin
  6 siblings, 0 replies; 12+ messages in thread
From: Alexander Kanavin @ 2021-05-13 20:56 UTC (permalink / raw)
  To: openembedded-core; +Cc: Alexander Kanavin

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 meta/recipes-devtools/qemu/qemu.inc           |  1 +
 ...igure-fix-detection-of-gdbus-codegen.patch | 53 +++++++++++++++++++
 2 files changed, 54 insertions(+)
 create mode 100644 meta/recipes-devtools/qemu/qemu/0001-configure-fix-detection-of-gdbus-codegen.patch

diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
index 82d1cb5566..74c53c6309 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -57,6 +57,7 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \
            file://CVE-2020-27821.patch \
            file://CVE-2021-20263.patch \
            file://CVE-2021-3392.patch \
+           file://0001-configure-fix-detection-of-gdbus-codegen.patch \
            "
 UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
 
diff --git a/meta/recipes-devtools/qemu/qemu/0001-configure-fix-detection-of-gdbus-codegen.patch b/meta/recipes-devtools/qemu/qemu/0001-configure-fix-detection-of-gdbus-codegen.patch
new file mode 100644
index 0000000000..1f20077883
--- /dev/null
+++ b/meta/recipes-devtools/qemu/qemu/0001-configure-fix-detection-of-gdbus-codegen.patch
@@ -0,0 +1,53 @@
+From 464cfc64201b21386030b8f353fe9724a3413a85 Mon Sep 17 00:00:00 2001
+From: Paolo Bonzini <pbonzini@redhat.com>
+Date: Wed, 5 May 2021 10:15:34 -0400
+Subject: [PATCH] configure: fix detection of gdbus-codegen
+
+"pkg-config --variable=gdbus_codegen gio-2.0" returns "gdbus-codegen",
+and it does not pass test -x (which does not walk the path).
+
+Meson 0.58.0 notices that something is iffy, as the dbus_vmstate1
+assignment in tests/qtest/meson.build uses an empty string as the
+command, and fails very eloquently:
+
+../tests/qtest/meson.build:92:2: ERROR: No program name specified.
+
+Use the "has" function instead of test -x, and fix the generation
+of config-host.mak since meson.build expects that GDBUS_CODEGEN
+is absent, rather than empty, if the tool is unavailable.
+
+Reported-by: Sebastian Mitterle <smitterl@redhat.com>
+Fixes: #178
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+Upstream-Status: Backport [https://git.qemu.org/?p=qemu.git;a=commitdiff;h=5ecfb76ccc056eb6127e44268e475827ae73b9e0]
+(not in 6.0.0, should be kept when upgrading)
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ configure | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/configure b/configure
+index 18c26e0389..4c36e221d3 100755
+--- a/configure
++++ b/configure
+@@ -3496,7 +3496,7 @@ if $pkg_config --atleast-version=$glib_req_ver gio-2.0; then
+     gio_cflags=$($pkg_config --cflags gio-2.0)
+     gio_libs=$($pkg_config --libs gio-2.0)
+     gdbus_codegen=$($pkg_config --variable=gdbus_codegen gio-2.0)
+-    if [ ! -x "$gdbus_codegen" ]; then
++    if ! has "$gdbus_codegen"; then
+         gdbus_codegen=
+     fi
+     # Check that the libraries actually work -- Ubuntu 18.04 ships
+@@ -6172,6 +6172,8 @@ if test "$gio" = "yes" ; then
+     echo "CONFIG_GIO=y" >> $config_host_mak
+     echo "GIO_CFLAGS=$gio_cflags" >> $config_host_mak
+     echo "GIO_LIBS=$gio_libs" >> $config_host_mak
++fi
++if test "$gdbus_codegen" != "" ; then
+     echo "GDBUS_CODEGEN=$gdbus_codegen" >> $config_host_mak
+ fi
+ echo "CONFIG_TLS_PRIORITY=\"$tls_priority\"" >> $config_host_mak
+-- 
+2.24.0
+
-- 
2.31.1


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

* Re: [OE-core] [PATCH 4/8] meson: update 0.57.2 -> 0.58.0
  2021-05-13 20:56 ` [PATCH 4/8] meson: update 0.57.2 -> 0.58.0 Alexander Kanavin
@ 2021-05-14 13:45   ` Khem Raj
  2021-05-14 13:59     ` Alexander Kanavin
  0 siblings, 1 reply; 12+ messages in thread
From: Khem Raj @ 2021-05-14 13:45 UTC (permalink / raw)
  To: Alexander Kanavin; +Cc: Patches and discussions about the oe-core layer

breaks nautilus   https://errors.yoctoproject.org/Errors/Details/581184/

On Thu, May 13, 2021 at 1:56 PM Alexander Kanavin
<alex.kanavin@gmail.com> wrote:
>
> Rebase patches; dropped chunks (and cross-prop-default.patch)
> have been removed upstream.
>
> Move native-only patches to all-patches, as they're a pain to rebase
> separately.
>
> Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> ---
>  meta/recipes-devtools/meson/meson.inc         |  11 +-
>  .../0001-Make-CPU-family-warnings-fatal.patch |  18 +-
>  ...sues-that-arise-when-cross-compiling.patch |   8 +-
>  ...-not-manipulate-the-environment-when.patch |  14 +-
>  ...pport-building-allarch-recipes-again.patch |  10 +-
>  .../meson/meson/0003-native_bindir.patch      |  58 +--
>  ...2c19e693a69b0650ce6c8a8903163c959996.patch | 412 ++++++++++++++++++
>  .../meson/meson/cross-prop-default.patch      |  23 -
>  .../{meson_0.57.2.bb => meson_0.58.0.bb}      |   0
>  ...on_0.57.2.bb => nativesdk-meson_0.58.0.bb} |   0
>  10 files changed, 456 insertions(+), 98 deletions(-)
>  create mode 100644 meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch
>  delete mode 100644 meta/recipes-devtools/meson/meson/cross-prop-default.patch
>  rename meta/recipes-devtools/meson/{meson_0.57.2.bb => meson_0.58.0.bb} (100%)
>  rename meta/recipes-devtools/meson/{nativesdk-meson_0.57.2.bb => nativesdk-meson_0.58.0.bb} (100%)
>
> diff --git a/meta/recipes-devtools/meson/meson.inc b/meta/recipes-devtools/meson/meson.inc
> index 10e7d8a1ce..f60381453b 100644
> --- a/meta/recipes-devtools/meson/meson.inc
> +++ b/meta/recipes-devtools/meson/meson.inc
> @@ -12,16 +12,13 @@ SRC_URI = "https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${P
>             file://0003-native_bindir.patch \
>             file://0001-python-module-do-not-manipulate-the-environment-when.patch \
>             file://disable-rpath-handling.patch \
> -           file://cross-prop-default.patch \
>             file://0001-modules-python.py-do-not-substitute-python-s-install.patch \
>             file://gi-target-dep.patch \
> +           file://0001-Make-CPU-family-warnings-fatal.patch \
> +           file://0002-Support-building-allarch-recipes-again.patch \
> +           file://4e312c19e693a69b0650ce6c8a8903163c959996.patch \
>             "
> -SRC_URI[sha256sum] = "3a83e7b1c5de94fa991ec34d9b198d94f38ed699d3524cb0fdf3b99fd23d4cc5"
> -
> -SRC_URI_append_class-native = " \
> -    file://0001-Make-CPU-family-warnings-fatal.patch \
> -    file://0002-Support-building-allarch-recipes-again.patch \
> -"
> +SRC_URI[sha256sum] = "f4820df0bc969c99019fd4af8ca5f136ee94c63d8a5ad67e7eb73bdbc9182fdd"
>
>  UPSTREAM_CHECK_URI = "https://github.com/mesonbuild/meson/releases"
>  UPSTREAM_CHECK_REGEX = "meson-(?P<pver>\d+(\.\d+)+)\.tar"
> diff --git a/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch b/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
> index 300797f9ee..bcccfabd17 100644
> --- a/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
> +++ b/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
> @@ -1,34 +1,33 @@
> -From 198e2de24adf5845e3ba389b533cf43440ee8acb Mon Sep 17 00:00:00 2001
> +From b64032a2eb1fb760f4ffd5b4b666e2433cf80d39 Mon Sep 17 00:00:00 2001
>  From: Ross Burton <ross.burton@intel.com>
>  Date: Tue, 3 Jul 2018 13:59:09 +0100
> -Subject: [PATCH] Make CPU family warnings fatal
> +Subject: [PATCH 1/2] Make CPU family warnings fatal
>
>  Upstream-Status: Inappropriate [OE specific]
>  Signed-off-by: Ross Burton <ross.burton@intel.com>
> -
>  ---
>   mesonbuild/envconfig.py   | 2 +-
>   mesonbuild/environment.py | 4 +---
>   2 files changed, 2 insertions(+), 4 deletions(-)
>
>  diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
> -index ba35d16..2d3c34c 100644
> +index c6a4df3..4d58c91 100644
>  --- a/mesonbuild/envconfig.py
>  +++ b/mesonbuild/envconfig.py
> -@@ -262,7 +262,7 @@ class MachineInfo:
> +@@ -266,7 +266,7 @@ class MachineInfo:
>
>           cpu_family = literal['cpu_family']
>           if cpu_family not in known_cpu_families:
> --            mlog.warning('Unknown CPU family {}, please report this at https://github.com/mesonbuild/meson/issues/new'.format(cpu_family))
> +-            mlog.warning(f'Unknown CPU family {cpu_family}, please report this at https://github.com/mesonbuild/meson/issues/new')
>  +            raise EnvironmentException('Unknown CPU family {}, see https://wiki.yoctoproject.org/wiki/Meson/UnknownCPU for directions.'.format(cpu_family))
>
>           endian = literal['endian']
>           if endian not in ('little', 'big'):
>  diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
> -index 756dd81..4d2c2b6 100644
> +index fc9b703..eea8345 100644
>  --- a/mesonbuild/environment.py
>  +++ b/mesonbuild/environment.py
> -@@ -434,9 +434,7 @@ def detect_cpu_family(compilers: CompilersDict) -> str:
> +@@ -436,9 +436,7 @@ def detect_cpu_family(compilers: CompilersDict) -> str:
>               trial = 'ppc64'
>
>       if trial not in known_cpu_families:
> @@ -39,3 +38,6 @@ index 756dd81..4d2c2b6 100644
>
>       return trial
>
> +--
> +2.24.0
> +
> diff --git a/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch b/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
> index 471f1500da..ce90e515da 100644
> --- a/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
> +++ b/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
> @@ -1,4 +1,4 @@
> -From d3ef01a4208a801acad380a4aaceb6a21f8fa603 Mon Sep 17 00:00:00 2001
> +From 2f9c59e0489e569c5382404667c10f5c200a72ad Mon Sep 17 00:00:00 2001
>  From: Alexander Kanavin <alex.kanavin@gmail.com>
>  Date: Fri, 4 Aug 2017 16:16:41 +0300
>  Subject: [PATCH] gtkdoc: fix issues that arise when cross-compiling
> @@ -20,11 +20,11 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
>   1 file changed, 4 insertions(+)
>
>  diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
> -index bcf77b9..6a4b472 100644
> +index dc2979e..c9ff9bd 100644
>  --- a/mesonbuild/modules/gnome.py
>  +++ b/mesonbuild/modules/gnome.py
> -@@ -974,6 +974,10 @@ This will become a hard error in the future.''')
> -             args.append('--{}={}'.format(program_name, path))
> +@@ -1053,6 +1053,10 @@ class GnomeModule(ExtensionModule):
> +             args.append(f'--{program_name}={path}')
>           if namespace:
>               args.append('--namespace=' + namespace)
>  +        gtkdoc_exe_wrapper = state.environment.properties.host.get('gtkdoc_exe_wrapper', None)
> diff --git a/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch b/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
> index eb0e90dbdd..fdadc6869b 100644
> --- a/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
> +++ b/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
> @@ -1,4 +1,4 @@
> -From 689e28c49b85311f93f39df70cbee702fc44afb6 Mon Sep 17 00:00:00 2001
> +From 2264e67d7c2c22ca634fd26ea8ada6f0344ab280 Mon Sep 17 00:00:00 2001
>  From: Alexander Kanavin <alex.kanavin@gmail.com>
>  Date: Mon, 19 Nov 2018 14:24:26 +0100
>  Subject: [PATCH] python module: do not manipulate the environment when calling
> @@ -12,10 +12,10 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
>   1 file changed, 12 deletions(-)
>
>  diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py
> -index 07be318..b770603 100644
> +index 422155b..aaf5844 100644
>  --- a/mesonbuild/modules/python.py
>  +++ b/mesonbuild/modules/python.py
> -@@ -71,11 +71,6 @@ class PythonDependency(ExternalDependency):
> +@@ -70,11 +70,6 @@ class PythonDependency(ExternalDependency):
>                   old_pkg_libdir = os.environ.get('PKG_CONFIG_LIBDIR')
>                   old_pkg_path = os.environ.get('PKG_CONFIG_PATH')
>
> @@ -26,9 +26,9 @@ index 07be318..b770603 100644
>  -
>                   try:
>                       self.pkgdep = PkgConfigDependency(pkg_name, environment, kwargs)
> -                     mlog.debug('Found "{}" via pkgconfig lookup in LIBPC ({})'.format(pkg_name, pkg_libdir))
> -@@ -84,13 +79,6 @@ class PythonDependency(ExternalDependency):
> -                     mlog.debug('"{}" could not be found in LIBPC ({})'.format(pkg_name, pkg_libdir))
> +                     mlog.debug(f'Found "{pkg_name}" via pkgconfig lookup in LIBPC ({pkg_libdir})')
> +@@ -83,13 +78,6 @@ class PythonDependency(ExternalDependency):
> +                     mlog.debug(f'"{pkg_name}" could not be found in LIBPC ({pkg_libdir})')
>                       mlog.debug(e)
>
>  -                if old_pkg_path is not None:
> @@ -39,5 +39,5 @@ index 07be318..b770603 100644
>  -                else:
>  -                    os.environ.pop('PKG_CONFIG_LIBDIR', None)
>               else:
> -                 mlog.debug('"{}" could not be found in LIBPC ({}), this is likely due to a relocated python installation'.format(pkg_name, pkg_libdir))
> +                 mlog.debug(f'"{pkg_name}" could not be found in LIBPC ({pkg_libdir}), this is likely due to a relocated python installation')
>
> diff --git a/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch b/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
> index f6175a194c..dcc1ce9c27 100644
> --- a/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
> +++ b/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
> @@ -1,19 +1,18 @@
> -From ac1021a3abf612e8be9b19eecb97062e0c314701 Mon Sep 17 00:00:00 2001
> +From 656bf55fed01df2d2e2ad6d9d9887173cb16b85c Mon Sep 17 00:00:00 2001
>  From: Peter Kjellerstedt <pkj@axis.com>
>  Date: Thu, 26 Jul 2018 16:32:49 +0200
> -Subject: [PATCH] Support building allarch recipes again
> +Subject: [PATCH 2/2] Support building allarch recipes again
>
>  This registers "allarch" as a known CPU family.
>
>  Upstream-Status: Inappropriate [OE specific]
>  Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
> -
>  ---
>   mesonbuild/envconfig.py | 1 +
>   1 file changed, 1 insertion(+)
>
>  diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
> -index 2d3c34c..b9e7908 100644
> +index 4d58c91..ff01ad1 100644
>  --- a/mesonbuild/envconfig.py
>  +++ b/mesonbuild/envconfig.py
>  @@ -36,6 +36,7 @@ from pathlib import Path
> @@ -24,3 +23,6 @@ index 2d3c34c..b9e7908 100644
>       'aarch64',
>       'alpha',
>       'arc',
> +--
> +2.24.0
> +
> diff --git a/meta/recipes-devtools/meson/meson/0003-native_bindir.patch b/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
> index ed85116c4f..89257b9e05 100644
> --- a/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
> +++ b/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
> @@ -1,4 +1,4 @@
> -From 1546e1f95a119175b7a4e4272a26dd85505e5ede Mon Sep 17 00:00:00 2001
> +From 30e97d4090a3d3f5b7ddcaf27cfa17f3c8c1d462 Mon Sep 17 00:00:00 2001
>  From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
>  Date: Wed, 15 Nov 2017 15:05:01 +0100
>  Subject: [PATCH] native_bindir
> @@ -18,23 +18,22 @@ Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
>
>  ---
>   mesonbuild/dependencies/base.py | 19 +++++++++++--------
> - mesonbuild/dependencies/ui.py   |  6 +++---
> - 2 files changed, 14 insertions(+), 11 deletions(-)
> + 1 file changed, 11 insertions(+), 8 deletions(-)
>
>  diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py
> -index cd77b4b..7e3f338 100644
> +index 14380d4..d0c443f 100644
>  --- a/mesonbuild/dependencies/base.py
>  +++ b/mesonbuild/dependencies/base.py
> -@@ -192,7 +192,7 @@ class Dependency:
> +@@ -179,7 +179,7 @@ class Dependency:
>       def get_exe_args(self, compiler):
>           return []
>
>  -    def get_pkgconfig_variable(self, variable_name: str, kwargs: T.Dict[str, T.Any]) -> str:
>  +    def get_pkgconfig_variable(self, variable_name: str, kwargs: T.Dict[str, T.Any], use_native=False) -> str:
> -         raise DependencyException('{!r} is not a pkgconfig dependency'.format(self.name))
> +         raise DependencyException(f'{self.name!r} is not a pkgconfig dependency')
>
>       def get_configtool_variable(self, variable_name):
> -@@ -280,7 +280,7 @@ class InternalDependency(Dependency):
> +@@ -267,7 +267,7 @@ class InternalDependency(Dependency):
>               return True
>           return any(d.is_built() for d in self.ext_deps)
>
> @@ -43,7 +42,7 @@ index cd77b4b..7e3f338 100644
>           raise DependencyException('Method "get_pkgconfig_variable()" is '
>                                     'invalid for an internal dependency')
>
> -@@ -658,8 +658,11 @@ class PkgConfigDependency(ExternalDependency):
> +@@ -645,8 +645,11 @@ class PkgConfigDependency(ExternalDependency):
>           return s.format(self.__class__.__name__, self.name, self.is_found,
>                           self.version_reqs)
>
> @@ -57,16 +56,16 @@ index cd77b4b..7e3f338 100644
>           p, out, err = Popen_safe(cmd, env=env)
>           rc, out, err = p.returncode, out.strip(), err.strip()
>           call = ' '.join(cmd)
> -@@ -685,7 +688,7 @@ class PkgConfigDependency(ExternalDependency):
> -             env['PKG_CONFIG_LIBDIR'] = new_pkg_config_libdir
> -             mlog.debug('PKG_CONFIG_LIBDIR: ' + new_pkg_config_libdir)
> +@@ -674,7 +677,7 @@ class PkgConfigDependency(ExternalDependency):
> +             if key.startswith('PKG_'):
> +                 mlog.debug(f'env[{key}]: {value}')
>
>  -    def _call_pkgbin(self, args, env=None):
>  +    def _call_pkgbin(self, args, env=None, use_native=False):
>           # Always copy the environment since we're going to modify it
>           # with pkg-config variables
>           if env is None:
> -@@ -699,7 +702,7 @@ class PkgConfigDependency(ExternalDependency):
> +@@ -688,7 +691,7 @@ class PkgConfigDependency(ExternalDependency):
>           targs = tuple(args)
>           cache = PkgConfigDependency.pkgbin_cache
>           if (self.pkgbin, targs, fenv) not in cache:
> @@ -75,7 +74,7 @@ index cd77b4b..7e3f338 100644
>           return cache[(self.pkgbin, targs, fenv)]
>
>       def _convert_mingw_paths(self, args: T.List[str]) -> T.List[str]:
> -@@ -905,7 +908,7 @@ class PkgConfigDependency(ExternalDependency):
> +@@ -894,7 +897,7 @@ class PkgConfigDependency(ExternalDependency):
>                                         (self.name, out_raw))
>           self.link_args, self.raw_link_args = self._search_libs(out, out_raw)
>
> @@ -84,7 +83,7 @@ index cd77b4b..7e3f338 100644
>           options = ['--variable=' + variable_name, self.name]
>
>           if 'define_variable' in kwargs:
> -@@ -918,7 +921,7 @@ class PkgConfigDependency(ExternalDependency):
> +@@ -907,7 +910,7 @@ class PkgConfigDependency(ExternalDependency):
>
>               options = ['--define-variable=' + '='.join(definition)] + options
>
> @@ -93,34 +92,3 @@ index cd77b4b..7e3f338 100644
>           variable = ''
>           if ret != 0:
>               if self.required:
> -diff --git a/mesonbuild/dependencies/ui.py b/mesonbuild/dependencies/ui.py
> -index d897d76..a598d2e 100644
> ---- a/mesonbuild/dependencies/ui.py
> -+++ b/mesonbuild/dependencies/ui.py
> -@@ -325,7 +325,7 @@ class QtBaseDependency(ExternalDependency):
> -         self.bindir = self.get_pkgconfig_host_bins(core)
> -         if not self.bindir:
> -             # If exec_prefix is not defined, the pkg-config file is broken
> --            prefix = core.get_pkgconfig_variable('exec_prefix', {})
> -+            prefix = core.get_pkgconfig_variable('exec_prefix', {}, use_native=True)
> -             if prefix:
> -                 self.bindir = os.path.join(prefix, 'bin')
> -
> -@@ -528,7 +528,7 @@ class Qt4Dependency(QtBaseDependency):
> -         applications = ['moc', 'uic', 'rcc', 'lupdate', 'lrelease']
> -         for application in applications:
> -             try:
> --                return os.path.dirname(core.get_pkgconfig_variable('%s_location' % application, {}))
> -+                return os.path.dirname(core.get_pkgconfig_variable('%s_location' % application, {}, use_native=True))
> -             except MesonException:
> -                 pass
> -
> -@@ -538,7 +538,7 @@ class Qt5Dependency(QtBaseDependency):
> -         QtBaseDependency.__init__(self, 'qt5', env, kwargs)
> -
> -     def get_pkgconfig_host_bins(self, core):
> --        return core.get_pkgconfig_variable('host_bins', {})
> -+        return core.get_pkgconfig_variable('host_bins', {}, use_native=True)
> -
> -     def get_private_includes(self, mod_inc_dir, module):
> -         return _qt_get_private_includes(mod_inc_dir, module, self.version)
> diff --git a/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch b/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch
> new file mode 100644
> index 0000000000..76daf019b0
> --- /dev/null
> +++ b/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch
> @@ -0,0 +1,412 @@
> +From 4e312c19e693a69b0650ce6c8a8903163c959996 Mon Sep 17 00:00:00 2001
> +From: Xavier Claessens <xavier.claessens@collabora.com>
> +Date: Tue, 11 May 2021 09:18:47 -0400
> +Subject: [PATCH] gnome: Fix gtkdoc generation
> +
> +install_scripts used to replace @BUILD_ROOT@ and @SOURCE_ROOT@ but it
> +was not documented and got removed in Meson 0.58.0. gnome.gtkdoc() was
> +relying on that behaviour, but it has always been broken in the case the
> +source or build directory contains spaces.
> +
> +Fix this by changing get_include_args() to substitue paths directly
> +which will then get escaped correctly.
> +
> +Add a unit test that builds GObject documentation which is where this
> +issue has been spotted.
> +
> +Fixes: #8744
> +Upstream-Status: Backport
> +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> +---
> + mesonbuild/modules/__init__.py                | 54 +++++++++----------
> + mesonbuild/modules/gnome.py                   | 15 +++---
> + mesonbuild/modules/hotdoc.py                  |  3 +-
> + mesonbuild/modules/qt.py                      |  4 +-
> + mesonbuild/modules/windows.py                 |  5 +-
> + .../10 gtk-doc/doc/foobar1/foobar-docs.sgml   |  2 +-
> + .../doc/foobar1/foobar-sections.txt           | 16 ++++++
> + .../10 gtk-doc/doc/foobar1/foobar.types       |  4 ++
> + .../10 gtk-doc/doc/foobar1/meson.build        |  6 ++-
> + test cases/frameworks/10 gtk-doc/foo.c        | 30 +++++++++++
> + .../frameworks/10 gtk-doc/include/foo.h       | 18 +++++++
> + test cases/frameworks/10 gtk-doc/meson.build  | 12 +++++
> + test cases/frameworks/10 gtk-doc/test.json    |  4 +-
> + 13 files changed, 127 insertions(+), 46 deletions(-)
> + create mode 100644 test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt
> + create mode 100644 test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types
> + create mode 100644 test cases/frameworks/10 gtk-doc/foo.c
> +
> +diff --git a/mesonbuild/modules/__init__.py b/mesonbuild/modules/__init__.py
> +index ddb5e3e6cf3..c0970294c34 100644
> +--- a/mesonbuild/modules/__init__.py
> ++++ b/mesonbuild/modules/__init__.py
> +@@ -56,6 +56,33 @@ def __init__(self, interpreter: 'Interpreter') -> None:
> +         self.target_machine = interpreter.builtin['target_machine'].held_object
> +         self.current_node = interpreter.current_node
> +
> ++    def get_include_args(self, include_dirs, prefix='-I'):
> ++        if not include_dirs:
> ++            return []
> ++
> ++        srcdir = self.environment.get_source_dir()
> ++        builddir = self.environment.get_build_dir()
> ++
> ++        dirs_str = []
> ++        for dirs in unholder(include_dirs):
> ++            if isinstance(dirs, str):
> ++                dirs_str += [f'{prefix}{dirs}']
> ++                continue
> ++
> ++            # Should be build.IncludeDirs object.
> ++            basedir = dirs.get_curdir()
> ++            for d in dirs.get_incdirs():
> ++                expdir = os.path.join(basedir, d)
> ++                srctreedir = os.path.join(srcdir, expdir)
> ++                buildtreedir = os.path.join(builddir, expdir)
> ++                dirs_str += [f'{prefix}{buildtreedir}',
> ++                             f'{prefix}{srctreedir}']
> ++            for d in dirs.get_extra_build_dirs():
> ++                dirs_str += [f'{prefix}{d}']
> ++
> ++        return dirs_str
> ++
> ++
> + class ModuleObject:
> +     """Base class for all objects returned by modules
> +     """
> +@@ -71,33 +98,6 @@ def __init__(self, interpreter: T.Optional['Interpreter'] = None) -> None:
> + class ExtensionModule(ModuleObject):
> +     pass
> +
> +-def get_include_args(include_dirs, prefix='-I'):
> +-    '''
> +-    Expand include arguments to refer to the source and build dirs
> +-    by using @SOURCE_ROOT@ and @BUILD_ROOT@ for later substitution
> +-    '''
> +-    if not include_dirs:
> +-        return []
> +-
> +-    dirs_str = []
> +-    for dirs in unholder(include_dirs):
> +-        if isinstance(dirs, str):
> +-            dirs_str += [f'{prefix}{dirs}']
> +-            continue
> +-
> +-        # Should be build.IncludeDirs object.
> +-        basedir = dirs.get_curdir()
> +-        for d in dirs.get_incdirs():
> +-            expdir = os.path.join(basedir, d)
> +-            srctreedir = os.path.join('@SOURCE_ROOT@', expdir)
> +-            buildtreedir = os.path.join('@BUILD_ROOT@', expdir)
> +-            dirs_str += [f'{prefix}{buildtreedir}',
> +-                         f'{prefix}{srctreedir}']
> +-        for d in dirs.get_extra_build_dirs():
> +-            dirs_str += [f'{prefix}{d}']
> +-
> +-    return dirs_str
> +-
> + def is_module_library(fname):
> +     '''
> +     Check if the file is a library-like file generated by a module-specific
> +diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
> +index d0b053d4f76..c91cda66f8b 100644
> +--- a/mesonbuild/modules/gnome.py
> ++++ b/mesonbuild/modules/gnome.py
> +@@ -26,7 +26,6 @@
> + from .. import mesonlib
> + from .. import interpreter
> + from . import GResourceTarget, GResourceHeaderTarget, GirTarget, TypelibTarget, VapiTarget
> +-from . import get_include_args
> + from . import ExtensionModule
> + from . import ModuleReturnValue
> + from ..mesonlib import (
> +@@ -394,7 +393,7 @@ def _get_dependencies_flags(self, deps, state, depends, include_rpath=False,
> +                     gi_includes.update([girdir])
> +             if isinstance(dep, InternalDependency):
> +                 cflags.update(dep.get_compile_args())
> +-                cflags.update(get_include_args(dep.include_directories))
> ++                cflags.update(state.get_include_args(dep.include_directories))
> +                 for lib in unholder(dep.libraries):
> +                     if isinstance(lib, build.SharedLibrary):
> +                         internal_ldflags.update(self._get_link_args(state, lib, depends, include_rpath))
> +@@ -443,7 +442,7 @@ def _get_dependencies_flags(self, deps, state, depends, include_rpath=False,
> +                     else:
> +                         external_ldflags.update([lib])
> +             elif isinstance(dep, (build.StaticLibrary, build.SharedLibrary)):
> +-                cflags.update(get_include_args(dep.get_include_dirs()))
> ++                cflags.update(state.get_include_args(dep.get_include_dirs()))
> +                 depends.append(dep)
> +             else:
> +                 mlog.log(f'dependency {dep!r} not handled to build gir files')
> +@@ -853,7 +852,7 @@ def generate_gir(self, state, args, kwargs):
> +         scan_command += self._scan_header(kwargs)
> +         scan_command += self._scan_extra_args(kwargs)
> +         scan_command += ['-I' + srcdir, '-I' + builddir]
> +-        scan_command += get_include_args(girtargets_inc_dirs)
> ++        scan_command += state.get_include_args(girtargets_inc_dirs)
> +         scan_command += ['--filelist=' + self._make_gir_filelist(state, srcdir, ns, nsversion, girtargets, libsources)]
> +         scan_command += self._scan_link_withs(state, depends, kwargs)
> +         scan_command += self._scan_include(state, depends, gir_inc_dirs, kwargs)
> +@@ -863,8 +862,8 @@ def generate_gir(self, state, args, kwargs):
> +         scan_command += ['--cflags-begin']
> +         scan_command += cflags
> +         scan_command += ['--cflags-end']
> +-        scan_command += get_include_args(inc_dirs)
> +-        scan_command += get_include_args(list(gi_includes) + gir_inc_dirs + inc_dirs, prefix='--add-include-path=')
> ++        scan_command += state.get_include_args(inc_dirs)
> ++        scan_command += state.get_include_args(list(gi_includes) + gir_inc_dirs + inc_dirs, prefix='--add-include-path=')
> +         scan_command += list(internal_ldflags)
> +         scan_command += self._scan_gir_targets(state, girtargets)
> +         scan_command += self._scan_langs(state, [lc[0] for lc in langs_compilers])
> +@@ -886,7 +885,7 @@ def generate_gir(self, state, args, kwargs):
> +
> +         typelib_output = f'{ns}-{nsversion}.typelib'
> +         typelib_cmd = [gicompiler, scan_target, '--output', '@OUTPUT@']
> +-        typelib_cmd += get_include_args(gir_inc_dirs, prefix='--includedir=')
> ++        typelib_cmd += state.get_include_args(gir_inc_dirs, prefix='--includedir=')
> +
> +         for incdir in typelib_includes:
> +             typelib_cmd += ["--includedir=" + incdir]
> +@@ -1127,7 +1126,7 @@ def _get_build_args(self, kwargs, state, depends):
> +                     'Gir include dirs should be include_directories().')
> +
> +         cflags.extend(deps_cflags)
> +-        cflags.extend(get_include_args(inc_dirs))
> ++        cflags.extend(state.get_include_args(inc_dirs))
> +         ldflags = []
> +         ldflags.extend(internal_ldflags)
> +         ldflags.extend(external_ldflags)
> +diff --git a/mesonbuild/modules/hotdoc.py b/mesonbuild/modules/hotdoc.py
> +index bf8cd229c0d..89a5d938ea7 100644
> +--- a/mesonbuild/modules/hotdoc.py
> ++++ b/mesonbuild/modules/hotdoc.py
> +@@ -22,7 +22,6 @@
> + from mesonbuild.coredata import MesonException
> + from . import ModuleReturnValue
> + from . import ExtensionModule
> +-from . import get_include_args
> + from ..dependencies import Dependency, InternalDependency
> + from ..interpreterbase import FeatureNew, InvalidArguments, noPosargs, noKwargs
> + from ..interpreter import CustomTargetHolder
> +@@ -191,7 +190,7 @@ def process_dependencies(self, deps):
> +         for dep in mesonlib.listify(ensure_list(deps)):
> +             dep = getattr(dep, "held_object", dep)
> +             if isinstance(dep, InternalDependency):
> +-                inc_args = get_include_args(dep.include_directories)
> ++                inc_args = self.state.get_include_args(dep.include_directories)
> +                 cflags.update([self.replace_dirs_in_string(x)
> +                                for x in inc_args])
> +                 cflags.update(self.process_dependencies(dep.libraries))
> +diff --git a/mesonbuild/modules/qt.py b/mesonbuild/modules/qt.py
> +index b7389bd59af..1bf0099d1df 100644
> +--- a/mesonbuild/modules/qt.py
> ++++ b/mesonbuild/modules/qt.py
> +@@ -23,7 +23,7 @@
> + from ..mesonlib import MesonException, extract_as_list, File, unholder, version_compare
> + from ..dependencies import Dependency
> + import xml.etree.ElementTree as ET
> +-from . import ModuleReturnValue, get_include_args, ExtensionModule
> ++from . import ModuleReturnValue, ExtensionModule
> + from ..interpreterbase import noPosargs, permittedKwargs, FeatureNew, FeatureNewKwargs
> + from ..interpreter import extract_required_kwarg
> + from ..programs import NonExistingExternalProgram
> +@@ -239,7 +239,7 @@ def preprocess(self, state, args, kwargs):
> +             ui_gen = build.Generator([self.uic], ui_kwargs)
> +             ui_output = ui_gen.process_files(f'Qt{self.qt_version} ui', ui_files, state)
> +             sources.append(ui_output)
> +-        inc = get_include_args(include_dirs=include_directories)
> ++        inc = state.get_include_args(include_dirs=include_directories)
> +         compile_args = []
> +         for dep in unholder(dependencies):
> +             if isinstance(dep, Dependency):
> +diff --git a/mesonbuild/modules/windows.py b/mesonbuild/modules/windows.py
> +index d7a86380885..c4fdc196681 100644
> +--- a/mesonbuild/modules/windows.py
> ++++ b/mesonbuild/modules/windows.py
> +@@ -19,7 +19,6 @@
> + from .. import mlog
> + from .. import mesonlib, build
> + from ..mesonlib import MachineChoice, MesonException, extract_as_list, unholder
> +-from . import get_include_args
> + from . import ModuleReturnValue
> + from . import ExtensionModule
> + from ..interpreter import CustomTargetHolder
> +@@ -83,12 +82,12 @@ def compile_resources(self, state, args, kwargs):
> +         wrc_depends = extract_as_list(kwargs, 'depends', pop = True)
> +         for d in wrc_depends:
> +             if isinstance(d, CustomTargetHolder):
> +-                extra_args += get_include_args([d.outdir_include()])
> ++                extra_args += state.get_include_args([d.outdir_include()])
> +         inc_dirs = extract_as_list(kwargs, 'include_directories', pop = True)
> +         for incd in inc_dirs:
> +             if not isinstance(incd.held_object, (str, build.IncludeDirs)):
> +                 raise MesonException('Resource include dirs should be include_directories().')
> +-        extra_args += get_include_args(inc_dirs)
> ++        extra_args += state.get_include_args(inc_dirs)
> +
> +         rescomp, rescomp_type = self._find_resource_compiler(state)
> +         if rescomp_type == ResourceCompilerType.rc:
> +diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml
> +index 95f73efdf45..6ccd087dc18 100644
> +--- a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml
> ++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml
> +@@ -35,7 +35,7 @@
> +     </partintro>
> +     <xi:include href="xml/foo.xml"/>
> +     <xi:include href="../../include/bar.xml"/>
> +-    <xi:include href="xml/foo-version.xml"/>
> ++    <xi:include href="xml/version.xml"/>
> +   </reference>
> +
> + </book>
> +diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt
> +new file mode 100644
> +index 00000000000..d14c8dab010
> +--- /dev/null
> ++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt
> +@@ -0,0 +1,16 @@
> ++<SECTION>
> ++<FILE>foo</FILE>
> ++<TITLE>FooObj</TITLE>
> ++FooObj
> ++FooObjClass
> ++foo_do_something
> ++</SECTION>
> ++
> ++<SECTION>
> ++<FILE>version</FILE>
> ++<TITLE>version</TITLE>
> ++FOO_MAJOR_VERSION
> ++FOO_MINOR_VERSION
> ++FOO_MICRO_VERSION
> ++</SECTION>
> ++
> +diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types
> +new file mode 100644
> +index 00000000000..0a9c046f3ed
> +--- /dev/null
> ++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types
> +@@ -0,0 +1,4 @@
> ++% This include is useless it's a regression test for https://github.com/mesonbuild/meson/issues/8744
> ++#include <foo.h>
> ++
> ++foo_obj_get_type
> +diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build b/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build
> +index 149c6e956aa..f4b3724dbae 100644
> +--- a/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build
> ++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build
> +@@ -1,5 +1,9 @@
> + gnome.gtkdoc('foobar',
> +-  src_dir : inc,
> ++  src_dir : [inc, '.'],
> +   main_sgml : 'foobar-docs.sgml',
> +   content_files : [docbook, version_xml],
> ++  dependencies: foo_dep,
> ++  # Manually written types file for regression test:
> ++  # https://github.com/mesonbuild/meson/issues/8744
> ++  gobject_typesfile: 'foobar.types',
> +   install : true)
> +diff --git a/test cases/frameworks/10 gtk-doc/foo.c b/test cases/frameworks/10 gtk-doc/foo.c
> +new file mode 100644
> +index 00000000000..36c0639ec08
> +--- /dev/null
> ++++ b/test cases/frameworks/10 gtk-doc/foo.c
> +@@ -0,0 +1,30 @@
> ++#include <foo.h>
> ++
> ++
> ++struct _FooObj {
> ++  GObject parent;
> ++  int dummy;
> ++};
> ++
> ++G_DEFINE_TYPE(FooObj, foo_obj, G_TYPE_OBJECT)
> ++
> ++static void foo_obj_init (FooObj *self)
> ++{
> ++}
> ++
> ++static void foo_obj_class_init (FooObjClass *klass)
> ++{
> ++}
> ++
> ++/**
> ++ * foo_do_something:
> ++ * @self: self
> ++ *
> ++ * Useless function.
> ++ *
> ++ * Returns: 0.
> ++ */
> ++int foo_do_something(FooObj *self)
> ++{
> ++  return 0;
> ++}
> +diff --git a/test cases/frameworks/10 gtk-doc/include/foo.h b/test cases/frameworks/10 gtk-doc/include/foo.h
> +index 7b8946b6a86..510f3d1ecb5 100644
> +--- a/test cases/frameworks/10 gtk-doc/include/foo.h
> ++++ b/test cases/frameworks/10 gtk-doc/include/foo.h
> +@@ -1,5 +1,7 @@
> + #pragma once
> +
> ++#include <glib-object.h>
> ++
> + /**
> +  * FooIndecision:
> +  * @FOO_MAYBE:     Something maybe
> +@@ -13,3 +15,19 @@ typedef enum {
> +     FOO_POSSIBLY,
> + } FooIndecision;
> +
> ++/**
> ++ * FooObjClass:
> ++ *
> ++ * The class
> ++ */
> ++
> ++/**
> ++ * FooObj:
> ++ *
> ++ * The instance
> ++ */
> ++
> ++#define FOO_TYPE_OBJ foo_obj_get_type()
> ++G_DECLARE_FINAL_TYPE(FooObj, foo_obj, FOO, OBJ, GObject)
> ++
> ++int foo_do_something(FooObj *self);
> +diff --git a/test cases/frameworks/10 gtk-doc/meson.build b/test cases/frameworks/10 gtk-doc/meson.build
> +index 5c22ad0afa4..292980fafa7 100644
> +--- a/test cases/frameworks/10 gtk-doc/meson.build
> ++++ b/test cases/frameworks/10 gtk-doc/meson.build
> +@@ -24,4 +24,16 @@ if gtkdoc_ver.version_compare('<1.26')
> +   error('MESON_SKIP_TEST gtk-doc test requires gtkdoc >= 1.26.')
> + endif
> +
> ++gobject = dependency('gobject-2.0')
> ++
> ++libfoo = library('foo', 'foo.c',
> ++  include_directories: inc,
> ++  dependencies: gobject,
> ++)
> ++
> ++foo_dep = declare_dependency(
> ++  link_with: libfoo,
> ++  include_directories: inc,
> ++)
> ++
> + subdir('doc')
> +diff --git a/test cases/frameworks/10 gtk-doc/test.json b/test cases/frameworks/10 gtk-doc/test.json
> +index c44126cc741..03ad0595817 100644
> +--- a/test cases/frameworks/10 gtk-doc/test.json
> ++++ b/test cases/frameworks/10 gtk-doc/test.json
> +@@ -4,8 +4,8 @@
> +     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/BAR.html"},
> +     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar.devhelp2"},
> +     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar.html"},
> +-    {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar-foo.html"},
> +-    {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar-foo-version.html"},
> ++    {"type": "file", "file": "usr/share/gtk-doc/html/foobar/FooObj.html"},
> ++    {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foo-version.html"},
> +     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/home.png"},
> +     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/index.html"},
> +     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/left.png"},
> diff --git a/meta/recipes-devtools/meson/meson/cross-prop-default.patch b/meta/recipes-devtools/meson/meson/cross-prop-default.patch
> deleted file mode 100644
> index 772395e879..0000000000
> --- a/meta/recipes-devtools/meson/meson/cross-prop-default.patch
> +++ /dev/null
> @@ -1,23 +0,0 @@
> -meson.build files that use cc.run() in native builds can silently fallback to
> -meson.get_cross_property() in cross builds without an exe-wrapper, but there's
> -no way to know that this is happening.
> -
> -As the defaults may be pessimistic (for example, disabling the support for a
> -feature that should be enabled) emit a warning when the default is used, so that
> -the recipe can explicitly set the cross property as relevant.
> -
> -Upstream-Status: Submitted [https://github.com/mesonbuild/meson/pull/5071]
> -Signed-off-by: Ross Burton <ross.burton@intel.com>
> -
> -diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
> -index 3c3cfae0..10e741ae 100644
> ---- a/mesonbuild/interpreter.py
> -+++ b/mesonbuild/interpreter.py
> -@@ -1890,6 +1890,7 @@ class MesonMain(InterpreterObject):
> -             return props[propname]
> -         except Exception:
> -             if len(args) == 2:
> -+                mlog.warning('Cross property %s is using default value %s' % (propname, args[1]))
> -                 return args[1]
> -             raise InterpreterException('Unknown cross property: %s.' % propname)
> -
> diff --git a/meta/recipes-devtools/meson/meson_0.57.2.bb b/meta/recipes-devtools/meson/meson_0.58.0.bb
> similarity index 100%
> rename from meta/recipes-devtools/meson/meson_0.57.2.bb
> rename to meta/recipes-devtools/meson/meson_0.58.0.bb
> diff --git a/meta/recipes-devtools/meson/nativesdk-meson_0.57.2.bb b/meta/recipes-devtools/meson/nativesdk-meson_0.58.0.bb
> similarity index 100%
> rename from meta/recipes-devtools/meson/nativesdk-meson_0.57.2.bb
> rename to meta/recipes-devtools/meson/nativesdk-meson_0.58.0.bb
> --
> 2.31.1
>
>
> 
>

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

* Re: [OE-core] [PATCH 4/8] meson: update 0.57.2 -> 0.58.0
  2021-05-14 13:45   ` [OE-core] " Khem Raj
@ 2021-05-14 13:59     ` Alexander Kanavin
  2021-05-14 15:20       ` Khem Raj
  0 siblings, 1 reply; 12+ messages in thread
From: Alexander Kanavin @ 2021-05-14 13:59 UTC (permalink / raw)
  To: Khem Raj; +Cc: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 40495 bytes --]

Probably resolved by updating to 40.1?
https://gitlab.gnome.org/GNOME/nautilus/-/tags

Alex

On Fri, 14 May 2021 at 15:46, Khem Raj <raj.khem@gmail.com> wrote:

> breaks nautilus   https://errors.yoctoproject.org/Errors/Details/581184/
>
> On Thu, May 13, 2021 at 1:56 PM Alexander Kanavin
> <alex.kanavin@gmail.com> wrote:
> >
> > Rebase patches; dropped chunks (and cross-prop-default.patch)
> > have been removed upstream.
> >
> > Move native-only patches to all-patches, as they're a pain to rebase
> > separately.
> >
> > Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> > ---
> >  meta/recipes-devtools/meson/meson.inc         |  11 +-
> >  .../0001-Make-CPU-family-warnings-fatal.patch |  18 +-
> >  ...sues-that-arise-when-cross-compiling.patch |   8 +-
> >  ...-not-manipulate-the-environment-when.patch |  14 +-
> >  ...pport-building-allarch-recipes-again.patch |  10 +-
> >  .../meson/meson/0003-native_bindir.patch      |  58 +--
> >  ...2c19e693a69b0650ce6c8a8903163c959996.patch | 412 ++++++++++++++++++
> >  .../meson/meson/cross-prop-default.patch      |  23 -
> >  .../{meson_0.57.2.bb => meson_0.58.0.bb}      |   0
> >  ...on_0.57.2.bb => nativesdk-meson_0.58.0.bb} |   0
> >  10 files changed, 456 insertions(+), 98 deletions(-)
> >  create mode 100644
> meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch
> >  delete mode 100644
> meta/recipes-devtools/meson/meson/cross-prop-default.patch
> >  rename meta/recipes-devtools/meson/{meson_0.57.2.bb => meson_0.58.0.bb}
> (100%)
> >  rename meta/recipes-devtools/meson/{nativesdk-meson_0.57.2.bb =>
> nativesdk-meson_0.58.0.bb} (100%)
> >
> > diff --git a/meta/recipes-devtools/meson/meson.inc
> b/meta/recipes-devtools/meson/meson.inc
> > index 10e7d8a1ce..f60381453b 100644
> > --- a/meta/recipes-devtools/meson/meson.inc
> > +++ b/meta/recipes-devtools/meson/meson.inc
> > @@ -12,16 +12,13 @@ SRC_URI = "
> https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${P
> >             file://0003-native_bindir.patch \
> >
>  file://0001-python-module-do-not-manipulate-the-environment-when.patch \
> >             file://disable-rpath-handling.patch \
> > -           file://cross-prop-default.patch \
> >
>  file://0001-modules-python.py-do-not-substitute-python-s-install.patch \
> >             file://gi-target-dep.patch \
> > +           file://0001-Make-CPU-family-warnings-fatal.patch \
> > +           file://0002-Support-building-allarch-recipes-again.patch \
> > +           file://4e312c19e693a69b0650ce6c8a8903163c959996.patch \
> >             "
> > -SRC_URI[sha256sum] =
> "3a83e7b1c5de94fa991ec34d9b198d94f38ed699d3524cb0fdf3b99fd23d4cc5"
> > -
> > -SRC_URI_append_class-native = " \
> > -    file://0001-Make-CPU-family-warnings-fatal.patch \
> > -    file://0002-Support-building-allarch-recipes-again.patch \
> > -"
> > +SRC_URI[sha256sum] =
> "f4820df0bc969c99019fd4af8ca5f136ee94c63d8a5ad67e7eb73bdbc9182fdd"
> >
> >  UPSTREAM_CHECK_URI = "https://github.com/mesonbuild/meson/releases"
> >  UPSTREAM_CHECK_REGEX = "meson-(?P<pver>\d+(\.\d+)+)\.tar"
> > diff --git
> a/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
> b/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
> > index 300797f9ee..bcccfabd17 100644
> > ---
> a/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
> > +++
> b/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
> > @@ -1,34 +1,33 @@
> > -From 198e2de24adf5845e3ba389b533cf43440ee8acb Mon Sep 17 00:00:00 2001
> > +From b64032a2eb1fb760f4ffd5b4b666e2433cf80d39 Mon Sep 17 00:00:00 2001
> >  From: Ross Burton <ross.burton@intel.com>
> >  Date: Tue, 3 Jul 2018 13:59:09 +0100
> > -Subject: [PATCH] Make CPU family warnings fatal
> > +Subject: [PATCH 1/2] Make CPU family warnings fatal
> >
> >  Upstream-Status: Inappropriate [OE specific]
> >  Signed-off-by: Ross Burton <ross.burton@intel.com>
> > -
> >  ---
> >   mesonbuild/envconfig.py   | 2 +-
> >   mesonbuild/environment.py | 4 +---
> >   2 files changed, 2 insertions(+), 4 deletions(-)
> >
> >  diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
> > -index ba35d16..2d3c34c 100644
> > +index c6a4df3..4d58c91 100644
> >  --- a/mesonbuild/envconfig.py
> >  +++ b/mesonbuild/envconfig.py
> > -@@ -262,7 +262,7 @@ class MachineInfo:
> > +@@ -266,7 +266,7 @@ class MachineInfo:
> >
> >           cpu_family = literal['cpu_family']
> >           if cpu_family not in known_cpu_families:
> > --            mlog.warning('Unknown CPU family {}, please report this at
> https://github.com/mesonbuild/meson/issues/new'.format(cpu_family))
> > +-            mlog.warning(f'Unknown CPU family {cpu_family}, please
> report this at https://github.com/mesonbuild/meson/issues/new')
> >  +            raise EnvironmentException('Unknown CPU family {}, see
> https://wiki.yoctoproject.org/wiki/Meson/UnknownCPU for
> directions.'.format(cpu_family))
> >
> >           endian = literal['endian']
> >           if endian not in ('little', 'big'):
> >  diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
> > -index 756dd81..4d2c2b6 100644
> > +index fc9b703..eea8345 100644
> >  --- a/mesonbuild/environment.py
> >  +++ b/mesonbuild/environment.py
> > -@@ -434,9 +434,7 @@ def detect_cpu_family(compilers: CompilersDict) ->
> str:
> > +@@ -436,9 +436,7 @@ def detect_cpu_family(compilers: CompilersDict) ->
> str:
> >               trial = 'ppc64'
> >
> >       if trial not in known_cpu_families:
> > @@ -39,3 +38,6 @@ index 756dd81..4d2c2b6 100644
> >
> >       return trial
> >
> > +--
> > +2.24.0
> > +
> > diff --git
> a/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
> b/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
> > index 471f1500da..ce90e515da 100644
> > ---
> a/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
> > +++
> b/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
> > @@ -1,4 +1,4 @@
> > -From d3ef01a4208a801acad380a4aaceb6a21f8fa603 Mon Sep 17 00:00:00 2001
> > +From 2f9c59e0489e569c5382404667c10f5c200a72ad Mon Sep 17 00:00:00 2001
> >  From: Alexander Kanavin <alex.kanavin@gmail.com>
> >  Date: Fri, 4 Aug 2017 16:16:41 +0300
> >  Subject: [PATCH] gtkdoc: fix issues that arise when cross-compiling
> > @@ -20,11 +20,11 @@ Signed-off-by: Alexander Kanavin <
> alex.kanavin@gmail.com>
> >   1 file changed, 4 insertions(+)
> >
> >  diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
> > -index bcf77b9..6a4b472 100644
> > +index dc2979e..c9ff9bd 100644
> >  --- a/mesonbuild/modules/gnome.py
> >  +++ b/mesonbuild/modules/gnome.py
> > -@@ -974,6 +974,10 @@ This will become a hard error in the future.''')
> > -             args.append('--{}={}'.format(program_name, path))
> > +@@ -1053,6 +1053,10 @@ class GnomeModule(ExtensionModule):
> > +             args.append(f'--{program_name}={path}')
> >           if namespace:
> >               args.append('--namespace=' + namespace)
> >  +        gtkdoc_exe_wrapper =
> state.environment.properties.host.get('gtkdoc_exe_wrapper', None)
> > diff --git
> a/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
> b/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
> > index eb0e90dbdd..fdadc6869b 100644
> > ---
> a/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
> > +++
> b/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
> > @@ -1,4 +1,4 @@
> > -From 689e28c49b85311f93f39df70cbee702fc44afb6 Mon Sep 17 00:00:00 2001
> > +From 2264e67d7c2c22ca634fd26ea8ada6f0344ab280 Mon Sep 17 00:00:00 2001
> >  From: Alexander Kanavin <alex.kanavin@gmail.com>
> >  Date: Mon, 19 Nov 2018 14:24:26 +0100
> >  Subject: [PATCH] python module: do not manipulate the environment when
> calling
> > @@ -12,10 +12,10 @@ Signed-off-by: Alexander Kanavin <
> alex.kanavin@gmail.com>
> >   1 file changed, 12 deletions(-)
> >
> >  diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py
> > -index 07be318..b770603 100644
> > +index 422155b..aaf5844 100644
> >  --- a/mesonbuild/modules/python.py
> >  +++ b/mesonbuild/modules/python.py
> > -@@ -71,11 +71,6 @@ class PythonDependency(ExternalDependency):
> > +@@ -70,11 +70,6 @@ class PythonDependency(ExternalDependency):
> >                   old_pkg_libdir = os.environ.get('PKG_CONFIG_LIBDIR')
> >                   old_pkg_path = os.environ.get('PKG_CONFIG_PATH')
> >
> > @@ -26,9 +26,9 @@ index 07be318..b770603 100644
> >  -
> >                   try:
> >                       self.pkgdep = PkgConfigDependency(pkg_name,
> environment, kwargs)
> > -                     mlog.debug('Found "{}" via pkgconfig lookup in
> LIBPC ({})'.format(pkg_name, pkg_libdir))
> > -@@ -84,13 +79,6 @@ class PythonDependency(ExternalDependency):
> > -                     mlog.debug('"{}" could not be found in LIBPC
> ({})'.format(pkg_name, pkg_libdir))
> > +                     mlog.debug(f'Found "{pkg_name}" via pkgconfig
> lookup in LIBPC ({pkg_libdir})')
> > +@@ -83,13 +78,6 @@ class PythonDependency(ExternalDependency):
> > +                     mlog.debug(f'"{pkg_name}" could not be found in
> LIBPC ({pkg_libdir})')
> >                       mlog.debug(e)
> >
> >  -                if old_pkg_path is not None:
> > @@ -39,5 +39,5 @@ index 07be318..b770603 100644
> >  -                else:
> >  -                    os.environ.pop('PKG_CONFIG_LIBDIR', None)
> >               else:
> > -                 mlog.debug('"{}" could not be found in LIBPC ({}),
> this is likely due to a relocated python installation'.format(pkg_name,
> pkg_libdir))
> > +                 mlog.debug(f'"{pkg_name}" could not be found in LIBPC
> ({pkg_libdir}), this is likely due to a relocated python installation')
> >
> > diff --git
> a/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
> b/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
> > index f6175a194c..dcc1ce9c27 100644
> > ---
> a/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
> > +++
> b/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
> > @@ -1,19 +1,18 @@
> > -From ac1021a3abf612e8be9b19eecb97062e0c314701 Mon Sep 17 00:00:00 2001
> > +From 656bf55fed01df2d2e2ad6d9d9887173cb16b85c Mon Sep 17 00:00:00 2001
> >  From: Peter Kjellerstedt <pkj@axis.com>
> >  Date: Thu, 26 Jul 2018 16:32:49 +0200
> > -Subject: [PATCH] Support building allarch recipes again
> > +Subject: [PATCH 2/2] Support building allarch recipes again
> >
> >  This registers "allarch" as a known CPU family.
> >
> >  Upstream-Status: Inappropriate [OE specific]
> >  Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
> > -
> >  ---
> >   mesonbuild/envconfig.py | 1 +
> >   1 file changed, 1 insertion(+)
> >
> >  diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
> > -index 2d3c34c..b9e7908 100644
> > +index 4d58c91..ff01ad1 100644
> >  --- a/mesonbuild/envconfig.py
> >  +++ b/mesonbuild/envconfig.py
> >  @@ -36,6 +36,7 @@ from pathlib import Path
> > @@ -24,3 +23,6 @@ index 2d3c34c..b9e7908 100644
> >       'aarch64',
> >       'alpha',
> >       'arc',
> > +--
> > +2.24.0
> > +
> > diff --git a/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
> b/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
> > index ed85116c4f..89257b9e05 100644
> > --- a/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
> > +++ b/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
> > @@ -1,4 +1,4 @@
> > -From 1546e1f95a119175b7a4e4272a26dd85505e5ede Mon Sep 17 00:00:00 2001
> > +From 30e97d4090a3d3f5b7ddcaf27cfa17f3c8c1d462 Mon Sep 17 00:00:00 2001
> >  From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
> >  Date: Wed, 15 Nov 2017 15:05:01 +0100
> >  Subject: [PATCH] native_bindir
> > @@ -18,23 +18,22 @@ Signed-off-by: Ricardo Ribalda Delgado <
> ricardo.ribalda@gmail.com>
> >
> >  ---
> >   mesonbuild/dependencies/base.py | 19 +++++++++++--------
> > - mesonbuild/dependencies/ui.py   |  6 +++---
> > - 2 files changed, 14 insertions(+), 11 deletions(-)
> > + 1 file changed, 11 insertions(+), 8 deletions(-)
> >
> >  diff --git a/mesonbuild/dependencies/base.py
> b/mesonbuild/dependencies/base.py
> > -index cd77b4b..7e3f338 100644
> > +index 14380d4..d0c443f 100644
> >  --- a/mesonbuild/dependencies/base.py
> >  +++ b/mesonbuild/dependencies/base.py
> > -@@ -192,7 +192,7 @@ class Dependency:
> > +@@ -179,7 +179,7 @@ class Dependency:
> >       def get_exe_args(self, compiler):
> >           return []
> >
> >  -    def get_pkgconfig_variable(self, variable_name: str, kwargs:
> T.Dict[str, T.Any]) -> str:
> >  +    def get_pkgconfig_variable(self, variable_name: str, kwargs:
> T.Dict[str, T.Any], use_native=False) -> str:
> > -         raise DependencyException('{!r} is not a pkgconfig
> dependency'.format(self.name))
> > +         raise DependencyException(f'{self.name!r} is not a pkgconfig
> dependency')
> >
> >       def get_configtool_variable(self, variable_name):
> > -@@ -280,7 +280,7 @@ class InternalDependency(Dependency):
> > +@@ -267,7 +267,7 @@ class InternalDependency(Dependency):
> >               return True
> >           return any(d.is_built() for d in self.ext_deps)
> >
> > @@ -43,7 +42,7 @@ index cd77b4b..7e3f338 100644
> >           raise DependencyException('Method "get_pkgconfig_variable()"
> is '
> >                                     'invalid for an internal dependency')
> >
> > -@@ -658,8 +658,11 @@ class PkgConfigDependency(ExternalDependency):
> > +@@ -645,8 +645,11 @@ class PkgConfigDependency(ExternalDependency):
> >           return s.format(self.__class__.__name__, self.name,
> self.is_found,
> >                           self.version_reqs)
> >
> > @@ -57,16 +56,16 @@ index cd77b4b..7e3f338 100644
> >           p, out, err = Popen_safe(cmd, env=env)
> >           rc, out, err = p.returncode, out.strip(), err.strip()
> >           call = ' '.join(cmd)
> > -@@ -685,7 +688,7 @@ class PkgConfigDependency(ExternalDependency):
> > -             env['PKG_CONFIG_LIBDIR'] = new_pkg_config_libdir
> > -             mlog.debug('PKG_CONFIG_LIBDIR: ' + new_pkg_config_libdir)
> > +@@ -674,7 +677,7 @@ class PkgConfigDependency(ExternalDependency):
> > +             if key.startswith('PKG_'):
> > +                 mlog.debug(f'env[{key}]: {value}')
> >
> >  -    def _call_pkgbin(self, args, env=None):
> >  +    def _call_pkgbin(self, args, env=None, use_native=False):
> >           # Always copy the environment since we're going to modify it
> >           # with pkg-config variables
> >           if env is None:
> > -@@ -699,7 +702,7 @@ class PkgConfigDependency(ExternalDependency):
> > +@@ -688,7 +691,7 @@ class PkgConfigDependency(ExternalDependency):
> >           targs = tuple(args)
> >           cache = PkgConfigDependency.pkgbin_cache
> >           if (self.pkgbin, targs, fenv) not in cache:
> > @@ -75,7 +74,7 @@ index cd77b4b..7e3f338 100644
> >           return cache[(self.pkgbin, targs, fenv)]
> >
> >       def _convert_mingw_paths(self, args: T.List[str]) -> T.List[str]:
> > -@@ -905,7 +908,7 @@ class PkgConfigDependency(ExternalDependency):
> > +@@ -894,7 +897,7 @@ class PkgConfigDependency(ExternalDependency):
> >                                         (self.name, out_raw))
> >           self.link_args, self.raw_link_args = self._search_libs(out,
> out_raw)
> >
> > @@ -84,7 +83,7 @@ index cd77b4b..7e3f338 100644
> >           options = ['--variable=' + variable_name, self.name]
> >
> >           if 'define_variable' in kwargs:
> > -@@ -918,7 +921,7 @@ class PkgConfigDependency(ExternalDependency):
> > +@@ -907,7 +910,7 @@ class PkgConfigDependency(ExternalDependency):
> >
> >               options = ['--define-variable=' + '='.join(definition)] +
> options
> >
> > @@ -93,34 +92,3 @@ index cd77b4b..7e3f338 100644
> >           variable = ''
> >           if ret != 0:
> >               if self.required:
> > -diff --git a/mesonbuild/dependencies/ui.py
> b/mesonbuild/dependencies/ui.py
> > -index d897d76..a598d2e 100644
> > ---- a/mesonbuild/dependencies/ui.py
> > -+++ b/mesonbuild/dependencies/ui.py
> > -@@ -325,7 +325,7 @@ class QtBaseDependency(ExternalDependency):
> > -         self.bindir = self.get_pkgconfig_host_bins(core)
> > -         if not self.bindir:
> > -             # If exec_prefix is not defined, the pkg-config file is
> broken
> > --            prefix = core.get_pkgconfig_variable('exec_prefix', {})
> > -+            prefix = core.get_pkgconfig_variable('exec_prefix', {},
> use_native=True)
> > -             if prefix:
> > -                 self.bindir = os.path.join(prefix, 'bin')
> > -
> > -@@ -528,7 +528,7 @@ class Qt4Dependency(QtBaseDependency):
> > -         applications = ['moc', 'uic', 'rcc', 'lupdate', 'lrelease']
> > -         for application in applications:
> > -             try:
> > --                return
> os.path.dirname(core.get_pkgconfig_variable('%s_location' % application,
> {}))
> > -+                return
> os.path.dirname(core.get_pkgconfig_variable('%s_location' % application,
> {}, use_native=True))
> > -             except MesonException:
> > -                 pass
> > -
> > -@@ -538,7 +538,7 @@ class Qt5Dependency(QtBaseDependency):
> > -         QtBaseDependency.__init__(self, 'qt5', env, kwargs)
> > -
> > -     def get_pkgconfig_host_bins(self, core):
> > --        return core.get_pkgconfig_variable('host_bins', {})
> > -+        return core.get_pkgconfig_variable('host_bins', {},
> use_native=True)
> > -
> > -     def get_private_includes(self, mod_inc_dir, module):
> > -         return _qt_get_private_includes(mod_inc_dir, module,
> self.version)
> > diff --git
> a/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch
> b/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch
> > new file mode 100644
> > index 0000000000..76daf019b0
> > --- /dev/null
> > +++
> b/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch
> > @@ -0,0 +1,412 @@
> > +From 4e312c19e693a69b0650ce6c8a8903163c959996 Mon Sep 17 00:00:00 2001
> > +From: Xavier Claessens <xavier.claessens@collabora.com>
> > +Date: Tue, 11 May 2021 09:18:47 -0400
> > +Subject: [PATCH] gnome: Fix gtkdoc generation
> > +
> > +install_scripts used to replace @BUILD_ROOT@ and @SOURCE_ROOT@ but it
> > +was not documented and got removed in Meson 0.58.0. gnome.gtkdoc() was
> > +relying on that behaviour, but it has always been broken in the case the
> > +source or build directory contains spaces.
> > +
> > +Fix this by changing get_include_args() to substitue paths directly
> > +which will then get escaped correctly.
> > +
> > +Add a unit test that builds GObject documentation which is where this
> > +issue has been spotted.
> > +
> > +Fixes: #8744
> > +Upstream-Status: Backport
> > +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> > +---
> > + mesonbuild/modules/__init__.py                | 54 +++++++++----------
> > + mesonbuild/modules/gnome.py                   | 15 +++---
> > + mesonbuild/modules/hotdoc.py                  |  3 +-
> > + mesonbuild/modules/qt.py                      |  4 +-
> > + mesonbuild/modules/windows.py                 |  5 +-
> > + .../10 gtk-doc/doc/foobar1/foobar-docs.sgml   |  2 +-
> > + .../doc/foobar1/foobar-sections.txt           | 16 ++++++
> > + .../10 gtk-doc/doc/foobar1/foobar.types       |  4 ++
> > + .../10 gtk-doc/doc/foobar1/meson.build        |  6 ++-
> > + test cases/frameworks/10 gtk-doc/foo.c        | 30 +++++++++++
> > + .../frameworks/10 gtk-doc/include/foo.h       | 18 +++++++
> > + test cases/frameworks/10 gtk-doc/meson.build  | 12 +++++
> > + test cases/frameworks/10 gtk-doc/test.json    |  4 +-
> > + 13 files changed, 127 insertions(+), 46 deletions(-)
> > + create mode 100644 test cases/frameworks/10
> gtk-doc/doc/foobar1/foobar-sections.txt
> > + create mode 100644 test cases/frameworks/10
> gtk-doc/doc/foobar1/foobar.types
> > + create mode 100644 test cases/frameworks/10 gtk-doc/foo.c
> > +
> > +diff --git a/mesonbuild/modules/__init__.py
> b/mesonbuild/modules/__init__.py
> > +index ddb5e3e6cf3..c0970294c34 100644
> > +--- a/mesonbuild/modules/__init__.py
> > ++++ b/mesonbuild/modules/__init__.py
> > +@@ -56,6 +56,33 @@ def __init__(self, interpreter: 'Interpreter') ->
> None:
> > +         self.target_machine =
> interpreter.builtin['target_machine'].held_object
> > +         self.current_node = interpreter.current_node
> > +
> > ++    def get_include_args(self, include_dirs, prefix='-I'):
> > ++        if not include_dirs:
> > ++            return []
> > ++
> > ++        srcdir = self.environment.get_source_dir()
> > ++        builddir = self.environment.get_build_dir()
> > ++
> > ++        dirs_str = []
> > ++        for dirs in unholder(include_dirs):
> > ++            if isinstance(dirs, str):
> > ++                dirs_str += [f'{prefix}{dirs}']
> > ++                continue
> > ++
> > ++            # Should be build.IncludeDirs object.
> > ++            basedir = dirs.get_curdir()
> > ++            for d in dirs.get_incdirs():
> > ++                expdir = os.path.join(basedir, d)
> > ++                srctreedir = os.path.join(srcdir, expdir)
> > ++                buildtreedir = os.path.join(builddir, expdir)
> > ++                dirs_str += [f'{prefix}{buildtreedir}',
> > ++                             f'{prefix}{srctreedir}']
> > ++            for d in dirs.get_extra_build_dirs():
> > ++                dirs_str += [f'{prefix}{d}']
> > ++
> > ++        return dirs_str
> > ++
> > ++
> > + class ModuleObject:
> > +     """Base class for all objects returned by modules
> > +     """
> > +@@ -71,33 +98,6 @@ def __init__(self, interpreter:
> T.Optional['Interpreter'] = None) -> None:
> > + class ExtensionModule(ModuleObject):
> > +     pass
> > +
> > +-def get_include_args(include_dirs, prefix='-I'):
> > +-    '''
> > +-    Expand include arguments to refer to the source and build dirs
> > +-    by using @SOURCE_ROOT@ and @BUILD_ROOT@ for later substitution
> > +-    '''
> > +-    if not include_dirs:
> > +-        return []
> > +-
> > +-    dirs_str = []
> > +-    for dirs in unholder(include_dirs):
> > +-        if isinstance(dirs, str):
> > +-            dirs_str += [f'{prefix}{dirs}']
> > +-            continue
> > +-
> > +-        # Should be build.IncludeDirs object.
> > +-        basedir = dirs.get_curdir()
> > +-        for d in dirs.get_incdirs():
> > +-            expdir = os.path.join(basedir, d)
> > +-            srctreedir = os.path.join('@SOURCE_ROOT@', expdir)
> > +-            buildtreedir = os.path.join('@BUILD_ROOT@', expdir)
> > +-            dirs_str += [f'{prefix}{buildtreedir}',
> > +-                         f'{prefix}{srctreedir}']
> > +-        for d in dirs.get_extra_build_dirs():
> > +-            dirs_str += [f'{prefix}{d}']
> > +-
> > +-    return dirs_str
> > +-
> > + def is_module_library(fname):
> > +     '''
> > +     Check if the file is a library-like file generated by a
> module-specific
> > +diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
> > +index d0b053d4f76..c91cda66f8b 100644
> > +--- a/mesonbuild/modules/gnome.py
> > ++++ b/mesonbuild/modules/gnome.py
> > +@@ -26,7 +26,6 @@
> > + from .. import mesonlib
> > + from .. import interpreter
> > + from . import GResourceTarget, GResourceHeaderTarget, GirTarget,
> TypelibTarget, VapiTarget
> > +-from . import get_include_args
> > + from . import ExtensionModule
> > + from . import ModuleReturnValue
> > + from ..mesonlib import (
> > +@@ -394,7 +393,7 @@ def _get_dependencies_flags(self, deps, state,
> depends, include_rpath=False,
> > +                     gi_includes.update([girdir])
> > +             if isinstance(dep, InternalDependency):
> > +                 cflags.update(dep.get_compile_args())
> > +-
> cflags.update(get_include_args(dep.include_directories))
> > ++
> cflags.update(state.get_include_args(dep.include_directories))
> > +                 for lib in unholder(dep.libraries):
> > +                     if isinstance(lib, build.SharedLibrary):
> > +
>  internal_ldflags.update(self._get_link_args(state, lib, depends,
> include_rpath))
> > +@@ -443,7 +442,7 @@ def _get_dependencies_flags(self, deps, state,
> depends, include_rpath=False,
> > +                     else:
> > +                         external_ldflags.update([lib])
> > +             elif isinstance(dep, (build.StaticLibrary,
> build.SharedLibrary)):
> > +-                cflags.update(get_include_args(dep.get_include_dirs()))
> > ++
> cflags.update(state.get_include_args(dep.get_include_dirs()))
> > +                 depends.append(dep)
> > +             else:
> > +                 mlog.log(f'dependency {dep!r} not handled to build gir
> files')
> > +@@ -853,7 +852,7 @@ def generate_gir(self, state, args, kwargs):
> > +         scan_command += self._scan_header(kwargs)
> > +         scan_command += self._scan_extra_args(kwargs)
> > +         scan_command += ['-I' + srcdir, '-I' + builddir]
> > +-        scan_command += get_include_args(girtargets_inc_dirs)
> > ++        scan_command += state.get_include_args(girtargets_inc_dirs)
> > +         scan_command += ['--filelist=' +
> self._make_gir_filelist(state, srcdir, ns, nsversion, girtargets,
> libsources)]
> > +         scan_command += self._scan_link_withs(state, depends, kwargs)
> > +         scan_command += self._scan_include(state, depends,
> gir_inc_dirs, kwargs)
> > +@@ -863,8 +862,8 @@ def generate_gir(self, state, args, kwargs):
> > +         scan_command += ['--cflags-begin']
> > +         scan_command += cflags
> > +         scan_command += ['--cflags-end']
> > +-        scan_command += get_include_args(inc_dirs)
> > +-        scan_command += get_include_args(list(gi_includes) +
> gir_inc_dirs + inc_dirs, prefix='--add-include-path=')
> > ++        scan_command += state.get_include_args(inc_dirs)
> > ++        scan_command += state.get_include_args(list(gi_includes) +
> gir_inc_dirs + inc_dirs, prefix='--add-include-path=')
> > +         scan_command += list(internal_ldflags)
> > +         scan_command += self._scan_gir_targets(state, girtargets)
> > +         scan_command += self._scan_langs(state, [lc[0] for lc in
> langs_compilers])
> > +@@ -886,7 +885,7 @@ def generate_gir(self, state, args, kwargs):
> > +
> > +         typelib_output = f'{ns}-{nsversion}.typelib'
> > +         typelib_cmd = [gicompiler, scan_target, '--output', '@OUTPUT@
> ']
> > +-        typelib_cmd += get_include_args(gir_inc_dirs,
> prefix='--includedir=')
> > ++        typelib_cmd += state.get_include_args(gir_inc_dirs,
> prefix='--includedir=')
> > +
> > +         for incdir in typelib_includes:
> > +             typelib_cmd += ["--includedir=" + incdir]
> > +@@ -1127,7 +1126,7 @@ def _get_build_args(self, kwargs, state, depends):
> > +                     'Gir include dirs should be
> include_directories().')
> > +
> > +         cflags.extend(deps_cflags)
> > +-        cflags.extend(get_include_args(inc_dirs))
> > ++        cflags.extend(state.get_include_args(inc_dirs))
> > +         ldflags = []
> > +         ldflags.extend(internal_ldflags)
> > +         ldflags.extend(external_ldflags)
> > +diff --git a/mesonbuild/modules/hotdoc.py b/mesonbuild/modules/hotdoc.py
> > +index bf8cd229c0d..89a5d938ea7 100644
> > +--- a/mesonbuild/modules/hotdoc.py
> > ++++ b/mesonbuild/modules/hotdoc.py
> > +@@ -22,7 +22,6 @@
> > + from mesonbuild.coredata import MesonException
> > + from . import ModuleReturnValue
> > + from . import ExtensionModule
> > +-from . import get_include_args
> > + from ..dependencies import Dependency, InternalDependency
> > + from ..interpreterbase import FeatureNew, InvalidArguments, noPosargs,
> noKwargs
> > + from ..interpreter import CustomTargetHolder
> > +@@ -191,7 +190,7 @@ def process_dependencies(self, deps):
> > +         for dep in mesonlib.listify(ensure_list(deps)):
> > +             dep = getattr(dep, "held_object", dep)
> > +             if isinstance(dep, InternalDependency):
> > +-                inc_args = get_include_args(dep.include_directories)
> > ++                inc_args =
> self.state.get_include_args(dep.include_directories)
> > +                 cflags.update([self.replace_dirs_in_string(x)
> > +                                for x in inc_args])
> > +                 cflags.update(self.process_dependencies(dep.libraries))
> > +diff --git a/mesonbuild/modules/qt.py b/mesonbuild/modules/qt.py
> > +index b7389bd59af..1bf0099d1df 100644
> > +--- a/mesonbuild/modules/qt.py
> > ++++ b/mesonbuild/modules/qt.py
> > +@@ -23,7 +23,7 @@
> > + from ..mesonlib import MesonException, extract_as_list, File,
> unholder, version_compare
> > + from ..dependencies import Dependency
> > + import xml.etree.ElementTree as ET
> > +-from . import ModuleReturnValue, get_include_args, ExtensionModule
> > ++from . import ModuleReturnValue, ExtensionModule
> > + from ..interpreterbase import noPosargs, permittedKwargs, FeatureNew,
> FeatureNewKwargs
> > + from ..interpreter import extract_required_kwarg
> > + from ..programs import NonExistingExternalProgram
> > +@@ -239,7 +239,7 @@ def preprocess(self, state, args, kwargs):
> > +             ui_gen = build.Generator([self.uic], ui_kwargs)
> > +             ui_output = ui_gen.process_files(f'Qt{self.qt_version}
> ui', ui_files, state)
> > +             sources.append(ui_output)
> > +-        inc = get_include_args(include_dirs=include_directories)
> > ++        inc = state.get_include_args(include_dirs=include_directories)
> > +         compile_args = []
> > +         for dep in unholder(dependencies):
> > +             if isinstance(dep, Dependency):
> > +diff --git a/mesonbuild/modules/windows.py
> b/mesonbuild/modules/windows.py
> > +index d7a86380885..c4fdc196681 100644
> > +--- a/mesonbuild/modules/windows.py
> > ++++ b/mesonbuild/modules/windows.py
> > +@@ -19,7 +19,6 @@
> > + from .. import mlog
> > + from .. import mesonlib, build
> > + from ..mesonlib import MachineChoice, MesonException, extract_as_list,
> unholder
> > +-from . import get_include_args
> > + from . import ModuleReturnValue
> > + from . import ExtensionModule
> > + from ..interpreter import CustomTargetHolder
> > +@@ -83,12 +82,12 @@ def compile_resources(self, state, args, kwargs):
> > +         wrc_depends = extract_as_list(kwargs, 'depends', pop = True)
> > +         for d in wrc_depends:
> > +             if isinstance(d, CustomTargetHolder):
> > +-                extra_args += get_include_args([d.outdir_include()])
> > ++                extra_args +=
> state.get_include_args([d.outdir_include()])
> > +         inc_dirs = extract_as_list(kwargs, 'include_directories', pop
> = True)
> > +         for incd in inc_dirs:
> > +             if not isinstance(incd.held_object, (str,
> build.IncludeDirs)):
> > +                 raise MesonException('Resource include dirs should be
> include_directories().')
> > +-        extra_args += get_include_args(inc_dirs)
> > ++        extra_args += state.get_include_args(inc_dirs)
> > +
> > +         rescomp, rescomp_type = self._find_resource_compiler(state)
> > +         if rescomp_type == ResourceCompilerType.rc:
> > +diff --git a/test cases/frameworks/10
> gtk-doc/doc/foobar1/foobar-docs.sgml b/test cases/frameworks/10
> gtk-doc/doc/foobar1/foobar-docs.sgml
> > +index 95f73efdf45..6ccd087dc18 100644
> > +--- a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml
> > ++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml
> > +@@ -35,7 +35,7 @@
> > +     </partintro>
> > +     <xi:include href="xml/foo.xml"/>
> > +     <xi:include href="../../include/bar.xml"/>
> > +-    <xi:include href="xml/foo-version.xml"/>
> > ++    <xi:include href="xml/version.xml"/>
> > +   </reference>
> > +
> > + </book>
> > +diff --git a/test cases/frameworks/10
> gtk-doc/doc/foobar1/foobar-sections.txt b/test cases/frameworks/10
> gtk-doc/doc/foobar1/foobar-sections.txt
> > +new file mode 100644
> > +index 00000000000..d14c8dab010
> > +--- /dev/null
> > ++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt
> > +@@ -0,0 +1,16 @@
> > ++<SECTION>
> > ++<FILE>foo</FILE>
> > ++<TITLE>FooObj</TITLE>
> > ++FooObj
> > ++FooObjClass
> > ++foo_do_something
> > ++</SECTION>
> > ++
> > ++<SECTION>
> > ++<FILE>version</FILE>
> > ++<TITLE>version</TITLE>
> > ++FOO_MAJOR_VERSION
> > ++FOO_MINOR_VERSION
> > ++FOO_MICRO_VERSION
> > ++</SECTION>
> > ++
> > +diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types
> b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types
> > +new file mode 100644
> > +index 00000000000..0a9c046f3ed
> > +--- /dev/null
> > ++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types
> > +@@ -0,0 +1,4 @@
> > ++% This include is useless it's a regression test for
> https://github.com/mesonbuild/meson/issues/8744
> > ++#include <foo.h>
> > ++
> > ++foo_obj_get_type
> > +diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build
> b/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build
> > +index 149c6e956aa..f4b3724dbae 100644
> > +--- a/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build
> > ++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build
> > +@@ -1,5 +1,9 @@
> > + gnome.gtkdoc('foobar',
> > +-  src_dir : inc,
> > ++  src_dir : [inc, '.'],
> > +   main_sgml : 'foobar-docs.sgml',
> > +   content_files : [docbook, version_xml],
> > ++  dependencies: foo_dep,
> > ++  # Manually written types file for regression test:
> > ++  # https://github.com/mesonbuild/meson/issues/8744
> > ++  gobject_typesfile: 'foobar.types',
> > +   install : true)
> > +diff --git a/test cases/frameworks/10 gtk-doc/foo.c b/test
> cases/frameworks/10 gtk-doc/foo.c
> > +new file mode 100644
> > +index 00000000000..36c0639ec08
> > +--- /dev/null
> > ++++ b/test cases/frameworks/10 gtk-doc/foo.c
> > +@@ -0,0 +1,30 @@
> > ++#include <foo.h>
> > ++
> > ++
> > ++struct _FooObj {
> > ++  GObject parent;
> > ++  int dummy;
> > ++};
> > ++
> > ++G_DEFINE_TYPE(FooObj, foo_obj, G_TYPE_OBJECT)
> > ++
> > ++static void foo_obj_init (FooObj *self)
> > ++{
> > ++}
> > ++
> > ++static void foo_obj_class_init (FooObjClass *klass)
> > ++{
> > ++}
> > ++
> > ++/**
> > ++ * foo_do_something:
> > ++ * @self: self
> > ++ *
> > ++ * Useless function.
> > ++ *
> > ++ * Returns: 0.
> > ++ */
> > ++int foo_do_something(FooObj *self)
> > ++{
> > ++  return 0;
> > ++}
> > +diff --git a/test cases/frameworks/10 gtk-doc/include/foo.h b/test
> cases/frameworks/10 gtk-doc/include/foo.h
> > +index 7b8946b6a86..510f3d1ecb5 100644
> > +--- a/test cases/frameworks/10 gtk-doc/include/foo.h
> > ++++ b/test cases/frameworks/10 gtk-doc/include/foo.h
> > +@@ -1,5 +1,7 @@
> > + #pragma once
> > +
> > ++#include <glib-object.h>
> > ++
> > + /**
> > +  * FooIndecision:
> > +  * @FOO_MAYBE:     Something maybe
> > +@@ -13,3 +15,19 @@ typedef enum {
> > +     FOO_POSSIBLY,
> > + } FooIndecision;
> > +
> > ++/**
> > ++ * FooObjClass:
> > ++ *
> > ++ * The class
> > ++ */
> > ++
> > ++/**
> > ++ * FooObj:
> > ++ *
> > ++ * The instance
> > ++ */
> > ++
> > ++#define FOO_TYPE_OBJ foo_obj_get_type()
> > ++G_DECLARE_FINAL_TYPE(FooObj, foo_obj, FOO, OBJ, GObject)
> > ++
> > ++int foo_do_something(FooObj *self);
> > +diff --git a/test cases/frameworks/10 gtk-doc/meson.build b/test
> cases/frameworks/10 gtk-doc/meson.build
> > +index 5c22ad0afa4..292980fafa7 100644
> > +--- a/test cases/frameworks/10 gtk-doc/meson.build
> > ++++ b/test cases/frameworks/10 gtk-doc/meson.build
> > +@@ -24,4 +24,16 @@ if gtkdoc_ver.version_compare('<1.26')
> > +   error('MESON_SKIP_TEST gtk-doc test requires gtkdoc >= 1.26.')
> > + endif
> > +
> > ++gobject = dependency('gobject-2.0')
> > ++
> > ++libfoo = library('foo', 'foo.c',
> > ++  include_directories: inc,
> > ++  dependencies: gobject,
> > ++)
> > ++
> > ++foo_dep = declare_dependency(
> > ++  link_with: libfoo,
> > ++  include_directories: inc,
> > ++)
> > ++
> > + subdir('doc')
> > +diff --git a/test cases/frameworks/10 gtk-doc/test.json b/test
> cases/frameworks/10 gtk-doc/test.json
> > +index c44126cc741..03ad0595817 100644
> > +--- a/test cases/frameworks/10 gtk-doc/test.json
> > ++++ b/test cases/frameworks/10 gtk-doc/test.json
> > +@@ -4,8 +4,8 @@
> > +     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/BAR.html"},
> > +     {"type": "file", "file":
> "usr/share/gtk-doc/html/foobar/foobar.devhelp2"},
> > +     {"type": "file", "file":
> "usr/share/gtk-doc/html/foobar/foobar.html"},
> > +-    {"type": "file", "file":
> "usr/share/gtk-doc/html/foobar/foobar-foo.html"},
> > +-    {"type": "file", "file":
> "usr/share/gtk-doc/html/foobar/foobar-foo-version.html"},
> > ++    {"type": "file", "file":
> "usr/share/gtk-doc/html/foobar/FooObj.html"},
> > ++    {"type": "file", "file":
> "usr/share/gtk-doc/html/foobar/foo-version.html"},
> > +     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/home.png"},
> > +     {"type": "file", "file":
> "usr/share/gtk-doc/html/foobar/index.html"},
> > +     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/left.png"},
> > diff --git a/meta/recipes-devtools/meson/meson/cross-prop-default.patch
> b/meta/recipes-devtools/meson/meson/cross-prop-default.patch
> > deleted file mode 100644
> > index 772395e879..0000000000
> > --- a/meta/recipes-devtools/meson/meson/cross-prop-default.patch
> > +++ /dev/null
> > @@ -1,23 +0,0 @@
> > -meson.build files that use cc.run() in native builds can silently
> fallback to
> > -meson.get_cross_property() in cross builds without an exe-wrapper, but
> there's
> > -no way to know that this is happening.
> > -
> > -As the defaults may be pessimistic (for example, disabling the support
> for a
> > -feature that should be enabled) emit a warning when the default is
> used, so that
> > -the recipe can explicitly set the cross property as relevant.
> > -
> > -Upstream-Status: Submitted [
> https://github.com/mesonbuild/meson/pull/5071]
> > -Signed-off-by: Ross Burton <ross.burton@intel.com>
> > -
> > -diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
> > -index 3c3cfae0..10e741ae 100644
> > ---- a/mesonbuild/interpreter.py
> > -+++ b/mesonbuild/interpreter.py
> > -@@ -1890,6 +1890,7 @@ class MesonMain(InterpreterObject):
> > -             return props[propname]
> > -         except Exception:
> > -             if len(args) == 2:
> > -+                mlog.warning('Cross property %s is using default value
> %s' % (propname, args[1]))
> > -                 return args[1]
> > -             raise InterpreterException('Unknown cross property: %s.' %
> propname)
> > -
> > diff --git a/meta/recipes-devtools/meson/meson_0.57.2.bb
> b/meta/recipes-devtools/meson/meson_0.58.0.bb
> > similarity index 100%
> > rename from meta/recipes-devtools/meson/meson_0.57.2.bb
> > rename to meta/recipes-devtools/meson/meson_0.58.0.bb
> > diff --git a/meta/recipes-devtools/meson/nativesdk-meson_0.57.2.bb
> b/meta/recipes-devtools/meson/nativesdk-meson_0.58.0.bb
> > similarity index 100%
> > rename from meta/recipes-devtools/meson/nativesdk-meson_0.57.2.bb
> > rename to meta/recipes-devtools/meson/nativesdk-meson_0.58.0.bb
> > --
> > 2.31.1
> >
> >
> > 
> >
>

[-- Attachment #2: Type: text/html, Size: 51308 bytes --]

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

* Re: [OE-core] [PATCH 4/8] meson: update 0.57.2 -> 0.58.0
  2021-05-14 13:59     ` Alexander Kanavin
@ 2021-05-14 15:20       ` Khem Raj
  2021-05-14 18:12         ` Andreas Müller
  0 siblings, 1 reply; 12+ messages in thread
From: Khem Raj @ 2021-05-14 15:20 UTC (permalink / raw)
  To: Alexander Kanavin, Andreas Müller
  Cc: Patches and discussions about the oe-core layer

On Fri, May 14, 2021 at 6:59 AM Alexander Kanavin
<alex.kanavin@gmail.com> wrote:
>
> Probably resolved by updating to 40.1?
> https://gitlab.gnome.org/GNOME/nautilus/-/tags
>

easier said than done.  Sadly these are complex apps and I don't have
time to fix the  long list of dependencies it will ensue
therefore I will leave it broken and exclude them from my distro
builds from, Andreas might be
interested

> Alex
>
> On Fri, 14 May 2021 at 15:46, Khem Raj <raj.khem@gmail.com> wrote:
>>
>> breaks nautilus   https://errors.yoctoproject.org/Errors/Details/581184/
>>
>> On Thu, May 13, 2021 at 1:56 PM Alexander Kanavin
>> <alex.kanavin@gmail.com> wrote:
>> >
>> > Rebase patches; dropped chunks (and cross-prop-default.patch)
>> > have been removed upstream.
>> >
>> > Move native-only patches to all-patches, as they're a pain to rebase
>> > separately.
>> >
>> > Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
>> > ---
>> >  meta/recipes-devtools/meson/meson.inc         |  11 +-
>> >  .../0001-Make-CPU-family-warnings-fatal.patch |  18 +-
>> >  ...sues-that-arise-when-cross-compiling.patch |   8 +-
>> >  ...-not-manipulate-the-environment-when.patch |  14 +-
>> >  ...pport-building-allarch-recipes-again.patch |  10 +-
>> >  .../meson/meson/0003-native_bindir.patch      |  58 +--
>> >  ...2c19e693a69b0650ce6c8a8903163c959996.patch | 412 ++++++++++++++++++
>> >  .../meson/meson/cross-prop-default.patch      |  23 -
>> >  .../{meson_0.57.2.bb => meson_0.58.0.bb}      |   0
>> >  ...on_0.57.2.bb => nativesdk-meson_0.58.0.bb} |   0
>> >  10 files changed, 456 insertions(+), 98 deletions(-)
>> >  create mode 100644 meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch
>> >  delete mode 100644 meta/recipes-devtools/meson/meson/cross-prop-default.patch
>> >  rename meta/recipes-devtools/meson/{meson_0.57.2.bb => meson_0.58.0.bb} (100%)
>> >  rename meta/recipes-devtools/meson/{nativesdk-meson_0.57.2.bb => nativesdk-meson_0.58.0.bb} (100%)
>> >
>> > diff --git a/meta/recipes-devtools/meson/meson.inc b/meta/recipes-devtools/meson/meson.inc
>> > index 10e7d8a1ce..f60381453b 100644
>> > --- a/meta/recipes-devtools/meson/meson.inc
>> > +++ b/meta/recipes-devtools/meson/meson.inc
>> > @@ -12,16 +12,13 @@ SRC_URI = "https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${P
>> >             file://0003-native_bindir.patch \
>> >             file://0001-python-module-do-not-manipulate-the-environment-when.patch \
>> >             file://disable-rpath-handling.patch \
>> > -           file://cross-prop-default.patch \
>> >             file://0001-modules-python.py-do-not-substitute-python-s-install.patch \
>> >             file://gi-target-dep.patch \
>> > +           file://0001-Make-CPU-family-warnings-fatal.patch \
>> > +           file://0002-Support-building-allarch-recipes-again.patch \
>> > +           file://4e312c19e693a69b0650ce6c8a8903163c959996.patch \
>> >             "
>> > -SRC_URI[sha256sum] = "3a83e7b1c5de94fa991ec34d9b198d94f38ed699d3524cb0fdf3b99fd23d4cc5"
>> > -
>> > -SRC_URI_append_class-native = " \
>> > -    file://0001-Make-CPU-family-warnings-fatal.patch \
>> > -    file://0002-Support-building-allarch-recipes-again.patch \
>> > -"
>> > +SRC_URI[sha256sum] = "f4820df0bc969c99019fd4af8ca5f136ee94c63d8a5ad67e7eb73bdbc9182fdd"
>> >
>> >  UPSTREAM_CHECK_URI = "https://github.com/mesonbuild/meson/releases"
>> >  UPSTREAM_CHECK_REGEX = "meson-(?P<pver>\d+(\.\d+)+)\.tar"
>> > diff --git a/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch b/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
>> > index 300797f9ee..bcccfabd17 100644
>> > --- a/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
>> > +++ b/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
>> > @@ -1,34 +1,33 @@
>> > -From 198e2de24adf5845e3ba389b533cf43440ee8acb Mon Sep 17 00:00:00 2001
>> > +From b64032a2eb1fb760f4ffd5b4b666e2433cf80d39 Mon Sep 17 00:00:00 2001
>> >  From: Ross Burton <ross.burton@intel.com>
>> >  Date: Tue, 3 Jul 2018 13:59:09 +0100
>> > -Subject: [PATCH] Make CPU family warnings fatal
>> > +Subject: [PATCH 1/2] Make CPU family warnings fatal
>> >
>> >  Upstream-Status: Inappropriate [OE specific]
>> >  Signed-off-by: Ross Burton <ross.burton@intel.com>
>> > -
>> >  ---
>> >   mesonbuild/envconfig.py   | 2 +-
>> >   mesonbuild/environment.py | 4 +---
>> >   2 files changed, 2 insertions(+), 4 deletions(-)
>> >
>> >  diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
>> > -index ba35d16..2d3c34c 100644
>> > +index c6a4df3..4d58c91 100644
>> >  --- a/mesonbuild/envconfig.py
>> >  +++ b/mesonbuild/envconfig.py
>> > -@@ -262,7 +262,7 @@ class MachineInfo:
>> > +@@ -266,7 +266,7 @@ class MachineInfo:
>> >
>> >           cpu_family = literal['cpu_family']
>> >           if cpu_family not in known_cpu_families:
>> > --            mlog.warning('Unknown CPU family {}, please report this at https://github.com/mesonbuild/meson/issues/new'.format(cpu_family))
>> > +-            mlog.warning(f'Unknown CPU family {cpu_family}, please report this at https://github.com/mesonbuild/meson/issues/new')
>> >  +            raise EnvironmentException('Unknown CPU family {}, see https://wiki.yoctoproject.org/wiki/Meson/UnknownCPU for directions.'.format(cpu_family))
>> >
>> >           endian = literal['endian']
>> >           if endian not in ('little', 'big'):
>> >  diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
>> > -index 756dd81..4d2c2b6 100644
>> > +index fc9b703..eea8345 100644
>> >  --- a/mesonbuild/environment.py
>> >  +++ b/mesonbuild/environment.py
>> > -@@ -434,9 +434,7 @@ def detect_cpu_family(compilers: CompilersDict) -> str:
>> > +@@ -436,9 +436,7 @@ def detect_cpu_family(compilers: CompilersDict) -> str:
>> >               trial = 'ppc64'
>> >
>> >       if trial not in known_cpu_families:
>> > @@ -39,3 +38,6 @@ index 756dd81..4d2c2b6 100644
>> >
>> >       return trial
>> >
>> > +--
>> > +2.24.0
>> > +
>> > diff --git a/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch b/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
>> > index 471f1500da..ce90e515da 100644
>> > --- a/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
>> > +++ b/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
>> > @@ -1,4 +1,4 @@
>> > -From d3ef01a4208a801acad380a4aaceb6a21f8fa603 Mon Sep 17 00:00:00 2001
>> > +From 2f9c59e0489e569c5382404667c10f5c200a72ad Mon Sep 17 00:00:00 2001
>> >  From: Alexander Kanavin <alex.kanavin@gmail.com>
>> >  Date: Fri, 4 Aug 2017 16:16:41 +0300
>> >  Subject: [PATCH] gtkdoc: fix issues that arise when cross-compiling
>> > @@ -20,11 +20,11 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
>> >   1 file changed, 4 insertions(+)
>> >
>> >  diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
>> > -index bcf77b9..6a4b472 100644
>> > +index dc2979e..c9ff9bd 100644
>> >  --- a/mesonbuild/modules/gnome.py
>> >  +++ b/mesonbuild/modules/gnome.py
>> > -@@ -974,6 +974,10 @@ This will become a hard error in the future.''')
>> > -             args.append('--{}={}'.format(program_name, path))
>> > +@@ -1053,6 +1053,10 @@ class GnomeModule(ExtensionModule):
>> > +             args.append(f'--{program_name}={path}')
>> >           if namespace:
>> >               args.append('--namespace=' + namespace)
>> >  +        gtkdoc_exe_wrapper = state.environment.properties.host.get('gtkdoc_exe_wrapper', None)
>> > diff --git a/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch b/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
>> > index eb0e90dbdd..fdadc6869b 100644
>> > --- a/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
>> > +++ b/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
>> > @@ -1,4 +1,4 @@
>> > -From 689e28c49b85311f93f39df70cbee702fc44afb6 Mon Sep 17 00:00:00 2001
>> > +From 2264e67d7c2c22ca634fd26ea8ada6f0344ab280 Mon Sep 17 00:00:00 2001
>> >  From: Alexander Kanavin <alex.kanavin@gmail.com>
>> >  Date: Mon, 19 Nov 2018 14:24:26 +0100
>> >  Subject: [PATCH] python module: do not manipulate the environment when calling
>> > @@ -12,10 +12,10 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
>> >   1 file changed, 12 deletions(-)
>> >
>> >  diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py
>> > -index 07be318..b770603 100644
>> > +index 422155b..aaf5844 100644
>> >  --- a/mesonbuild/modules/python.py
>> >  +++ b/mesonbuild/modules/python.py
>> > -@@ -71,11 +71,6 @@ class PythonDependency(ExternalDependency):
>> > +@@ -70,11 +70,6 @@ class PythonDependency(ExternalDependency):
>> >                   old_pkg_libdir = os.environ.get('PKG_CONFIG_LIBDIR')
>> >                   old_pkg_path = os.environ.get('PKG_CONFIG_PATH')
>> >
>> > @@ -26,9 +26,9 @@ index 07be318..b770603 100644
>> >  -
>> >                   try:
>> >                       self.pkgdep = PkgConfigDependency(pkg_name, environment, kwargs)
>> > -                     mlog.debug('Found "{}" via pkgconfig lookup in LIBPC ({})'.format(pkg_name, pkg_libdir))
>> > -@@ -84,13 +79,6 @@ class PythonDependency(ExternalDependency):
>> > -                     mlog.debug('"{}" could not be found in LIBPC ({})'.format(pkg_name, pkg_libdir))
>> > +                     mlog.debug(f'Found "{pkg_name}" via pkgconfig lookup in LIBPC ({pkg_libdir})')
>> > +@@ -83,13 +78,6 @@ class PythonDependency(ExternalDependency):
>> > +                     mlog.debug(f'"{pkg_name}" could not be found in LIBPC ({pkg_libdir})')
>> >                       mlog.debug(e)
>> >
>> >  -                if old_pkg_path is not None:
>> > @@ -39,5 +39,5 @@ index 07be318..b770603 100644
>> >  -                else:
>> >  -                    os.environ.pop('PKG_CONFIG_LIBDIR', None)
>> >               else:
>> > -                 mlog.debug('"{}" could not be found in LIBPC ({}), this is likely due to a relocated python installation'.format(pkg_name, pkg_libdir))
>> > +                 mlog.debug(f'"{pkg_name}" could not be found in LIBPC ({pkg_libdir}), this is likely due to a relocated python installation')
>> >
>> > diff --git a/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch b/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
>> > index f6175a194c..dcc1ce9c27 100644
>> > --- a/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
>> > +++ b/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
>> > @@ -1,19 +1,18 @@
>> > -From ac1021a3abf612e8be9b19eecb97062e0c314701 Mon Sep 17 00:00:00 2001
>> > +From 656bf55fed01df2d2e2ad6d9d9887173cb16b85c Mon Sep 17 00:00:00 2001
>> >  From: Peter Kjellerstedt <pkj@axis.com>
>> >  Date: Thu, 26 Jul 2018 16:32:49 +0200
>> > -Subject: [PATCH] Support building allarch recipes again
>> > +Subject: [PATCH 2/2] Support building allarch recipes again
>> >
>> >  This registers "allarch" as a known CPU family.
>> >
>> >  Upstream-Status: Inappropriate [OE specific]
>> >  Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
>> > -
>> >  ---
>> >   mesonbuild/envconfig.py | 1 +
>> >   1 file changed, 1 insertion(+)
>> >
>> >  diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
>> > -index 2d3c34c..b9e7908 100644
>> > +index 4d58c91..ff01ad1 100644
>> >  --- a/mesonbuild/envconfig.py
>> >  +++ b/mesonbuild/envconfig.py
>> >  @@ -36,6 +36,7 @@ from pathlib import Path
>> > @@ -24,3 +23,6 @@ index 2d3c34c..b9e7908 100644
>> >       'aarch64',
>> >       'alpha',
>> >       'arc',
>> > +--
>> > +2.24.0
>> > +
>> > diff --git a/meta/recipes-devtools/meson/meson/0003-native_bindir.patch b/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
>> > index ed85116c4f..89257b9e05 100644
>> > --- a/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
>> > +++ b/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
>> > @@ -1,4 +1,4 @@
>> > -From 1546e1f95a119175b7a4e4272a26dd85505e5ede Mon Sep 17 00:00:00 2001
>> > +From 30e97d4090a3d3f5b7ddcaf27cfa17f3c8c1d462 Mon Sep 17 00:00:00 2001
>> >  From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
>> >  Date: Wed, 15 Nov 2017 15:05:01 +0100
>> >  Subject: [PATCH] native_bindir
>> > @@ -18,23 +18,22 @@ Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
>> >
>> >  ---
>> >   mesonbuild/dependencies/base.py | 19 +++++++++++--------
>> > - mesonbuild/dependencies/ui.py   |  6 +++---
>> > - 2 files changed, 14 insertions(+), 11 deletions(-)
>> > + 1 file changed, 11 insertions(+), 8 deletions(-)
>> >
>> >  diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py
>> > -index cd77b4b..7e3f338 100644
>> > +index 14380d4..d0c443f 100644
>> >  --- a/mesonbuild/dependencies/base.py
>> >  +++ b/mesonbuild/dependencies/base.py
>> > -@@ -192,7 +192,7 @@ class Dependency:
>> > +@@ -179,7 +179,7 @@ class Dependency:
>> >       def get_exe_args(self, compiler):
>> >           return []
>> >
>> >  -    def get_pkgconfig_variable(self, variable_name: str, kwargs: T.Dict[str, T.Any]) -> str:
>> >  +    def get_pkgconfig_variable(self, variable_name: str, kwargs: T.Dict[str, T.Any], use_native=False) -> str:
>> > -         raise DependencyException('{!r} is not a pkgconfig dependency'.format(self.name))
>> > +         raise DependencyException(f'{self.name!r} is not a pkgconfig dependency')
>> >
>> >       def get_configtool_variable(self, variable_name):
>> > -@@ -280,7 +280,7 @@ class InternalDependency(Dependency):
>> > +@@ -267,7 +267,7 @@ class InternalDependency(Dependency):
>> >               return True
>> >           return any(d.is_built() for d in self.ext_deps)
>> >
>> > @@ -43,7 +42,7 @@ index cd77b4b..7e3f338 100644
>> >           raise DependencyException('Method "get_pkgconfig_variable()" is '
>> >                                     'invalid for an internal dependency')
>> >
>> > -@@ -658,8 +658,11 @@ class PkgConfigDependency(ExternalDependency):
>> > +@@ -645,8 +645,11 @@ class PkgConfigDependency(ExternalDependency):
>> >           return s.format(self.__class__.__name__, self.name, self.is_found,
>> >                           self.version_reqs)
>> >
>> > @@ -57,16 +56,16 @@ index cd77b4b..7e3f338 100644
>> >           p, out, err = Popen_safe(cmd, env=env)
>> >           rc, out, err = p.returncode, out.strip(), err.strip()
>> >           call = ' '.join(cmd)
>> > -@@ -685,7 +688,7 @@ class PkgConfigDependency(ExternalDependency):
>> > -             env['PKG_CONFIG_LIBDIR'] = new_pkg_config_libdir
>> > -             mlog.debug('PKG_CONFIG_LIBDIR: ' + new_pkg_config_libdir)
>> > +@@ -674,7 +677,7 @@ class PkgConfigDependency(ExternalDependency):
>> > +             if key.startswith('PKG_'):
>> > +                 mlog.debug(f'env[{key}]: {value}')
>> >
>> >  -    def _call_pkgbin(self, args, env=None):
>> >  +    def _call_pkgbin(self, args, env=None, use_native=False):
>> >           # Always copy the environment since we're going to modify it
>> >           # with pkg-config variables
>> >           if env is None:
>> > -@@ -699,7 +702,7 @@ class PkgConfigDependency(ExternalDependency):
>> > +@@ -688,7 +691,7 @@ class PkgConfigDependency(ExternalDependency):
>> >           targs = tuple(args)
>> >           cache = PkgConfigDependency.pkgbin_cache
>> >           if (self.pkgbin, targs, fenv) not in cache:
>> > @@ -75,7 +74,7 @@ index cd77b4b..7e3f338 100644
>> >           return cache[(self.pkgbin, targs, fenv)]
>> >
>> >       def _convert_mingw_paths(self, args: T.List[str]) -> T.List[str]:
>> > -@@ -905,7 +908,7 @@ class PkgConfigDependency(ExternalDependency):
>> > +@@ -894,7 +897,7 @@ class PkgConfigDependency(ExternalDependency):
>> >                                         (self.name, out_raw))
>> >           self.link_args, self.raw_link_args = self._search_libs(out, out_raw)
>> >
>> > @@ -84,7 +83,7 @@ index cd77b4b..7e3f338 100644
>> >           options = ['--variable=' + variable_name, self.name]
>> >
>> >           if 'define_variable' in kwargs:
>> > -@@ -918,7 +921,7 @@ class PkgConfigDependency(ExternalDependency):
>> > +@@ -907,7 +910,7 @@ class PkgConfigDependency(ExternalDependency):
>> >
>> >               options = ['--define-variable=' + '='.join(definition)] + options
>> >
>> > @@ -93,34 +92,3 @@ index cd77b4b..7e3f338 100644
>> >           variable = ''
>> >           if ret != 0:
>> >               if self.required:
>> > -diff --git a/mesonbuild/dependencies/ui.py b/mesonbuild/dependencies/ui.py
>> > -index d897d76..a598d2e 100644
>> > ---- a/mesonbuild/dependencies/ui.py
>> > -+++ b/mesonbuild/dependencies/ui.py
>> > -@@ -325,7 +325,7 @@ class QtBaseDependency(ExternalDependency):
>> > -         self.bindir = self.get_pkgconfig_host_bins(core)
>> > -         if not self.bindir:
>> > -             # If exec_prefix is not defined, the pkg-config file is broken
>> > --            prefix = core.get_pkgconfig_variable('exec_prefix', {})
>> > -+            prefix = core.get_pkgconfig_variable('exec_prefix', {}, use_native=True)
>> > -             if prefix:
>> > -                 self.bindir = os.path.join(prefix, 'bin')
>> > -
>> > -@@ -528,7 +528,7 @@ class Qt4Dependency(QtBaseDependency):
>> > -         applications = ['moc', 'uic', 'rcc', 'lupdate', 'lrelease']
>> > -         for application in applications:
>> > -             try:
>> > --                return os.path.dirname(core.get_pkgconfig_variable('%s_location' % application, {}))
>> > -+                return os.path.dirname(core.get_pkgconfig_variable('%s_location' % application, {}, use_native=True))
>> > -             except MesonException:
>> > -                 pass
>> > -
>> > -@@ -538,7 +538,7 @@ class Qt5Dependency(QtBaseDependency):
>> > -         QtBaseDependency.__init__(self, 'qt5', env, kwargs)
>> > -
>> > -     def get_pkgconfig_host_bins(self, core):
>> > --        return core.get_pkgconfig_variable('host_bins', {})
>> > -+        return core.get_pkgconfig_variable('host_bins', {}, use_native=True)
>> > -
>> > -     def get_private_includes(self, mod_inc_dir, module):
>> > -         return _qt_get_private_includes(mod_inc_dir, module, self.version)
>> > diff --git a/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch b/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch
>> > new file mode 100644
>> > index 0000000000..76daf019b0
>> > --- /dev/null
>> > +++ b/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch
>> > @@ -0,0 +1,412 @@
>> > +From 4e312c19e693a69b0650ce6c8a8903163c959996 Mon Sep 17 00:00:00 2001
>> > +From: Xavier Claessens <xavier.claessens@collabora.com>
>> > +Date: Tue, 11 May 2021 09:18:47 -0400
>> > +Subject: [PATCH] gnome: Fix gtkdoc generation
>> > +
>> > +install_scripts used to replace @BUILD_ROOT@ and @SOURCE_ROOT@ but it
>> > +was not documented and got removed in Meson 0.58.0. gnome.gtkdoc() was
>> > +relying on that behaviour, but it has always been broken in the case the
>> > +source or build directory contains spaces.
>> > +
>> > +Fix this by changing get_include_args() to substitue paths directly
>> > +which will then get escaped correctly.
>> > +
>> > +Add a unit test that builds GObject documentation which is where this
>> > +issue has been spotted.
>> > +
>> > +Fixes: #8744
>> > +Upstream-Status: Backport
>> > +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
>> > +---
>> > + mesonbuild/modules/__init__.py                | 54 +++++++++----------
>> > + mesonbuild/modules/gnome.py                   | 15 +++---
>> > + mesonbuild/modules/hotdoc.py                  |  3 +-
>> > + mesonbuild/modules/qt.py                      |  4 +-
>> > + mesonbuild/modules/windows.py                 |  5 +-
>> > + .../10 gtk-doc/doc/foobar1/foobar-docs.sgml   |  2 +-
>> > + .../doc/foobar1/foobar-sections.txt           | 16 ++++++
>> > + .../10 gtk-doc/doc/foobar1/foobar.types       |  4 ++
>> > + .../10 gtk-doc/doc/foobar1/meson.build        |  6 ++-
>> > + test cases/frameworks/10 gtk-doc/foo.c        | 30 +++++++++++
>> > + .../frameworks/10 gtk-doc/include/foo.h       | 18 +++++++
>> > + test cases/frameworks/10 gtk-doc/meson.build  | 12 +++++
>> > + test cases/frameworks/10 gtk-doc/test.json    |  4 +-
>> > + 13 files changed, 127 insertions(+), 46 deletions(-)
>> > + create mode 100644 test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt
>> > + create mode 100644 test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types
>> > + create mode 100644 test cases/frameworks/10 gtk-doc/foo.c
>> > +
>> > +diff --git a/mesonbuild/modules/__init__.py b/mesonbuild/modules/__init__.py
>> > +index ddb5e3e6cf3..c0970294c34 100644
>> > +--- a/mesonbuild/modules/__init__.py
>> > ++++ b/mesonbuild/modules/__init__.py
>> > +@@ -56,6 +56,33 @@ def __init__(self, interpreter: 'Interpreter') -> None:
>> > +         self.target_machine = interpreter.builtin['target_machine'].held_object
>> > +         self.current_node = interpreter.current_node
>> > +
>> > ++    def get_include_args(self, include_dirs, prefix='-I'):
>> > ++        if not include_dirs:
>> > ++            return []
>> > ++
>> > ++        srcdir = self.environment.get_source_dir()
>> > ++        builddir = self.environment.get_build_dir()
>> > ++
>> > ++        dirs_str = []
>> > ++        for dirs in unholder(include_dirs):
>> > ++            if isinstance(dirs, str):
>> > ++                dirs_str += [f'{prefix}{dirs}']
>> > ++                continue
>> > ++
>> > ++            # Should be build.IncludeDirs object.
>> > ++            basedir = dirs.get_curdir()
>> > ++            for d in dirs.get_incdirs():
>> > ++                expdir = os.path.join(basedir, d)
>> > ++                srctreedir = os.path.join(srcdir, expdir)
>> > ++                buildtreedir = os.path.join(builddir, expdir)
>> > ++                dirs_str += [f'{prefix}{buildtreedir}',
>> > ++                             f'{prefix}{srctreedir}']
>> > ++            for d in dirs.get_extra_build_dirs():
>> > ++                dirs_str += [f'{prefix}{d}']
>> > ++
>> > ++        return dirs_str
>> > ++
>> > ++
>> > + class ModuleObject:
>> > +     """Base class for all objects returned by modules
>> > +     """
>> > +@@ -71,33 +98,6 @@ def __init__(self, interpreter: T.Optional['Interpreter'] = None) -> None:
>> > + class ExtensionModule(ModuleObject):
>> > +     pass
>> > +
>> > +-def get_include_args(include_dirs, prefix='-I'):
>> > +-    '''
>> > +-    Expand include arguments to refer to the source and build dirs
>> > +-    by using @SOURCE_ROOT@ and @BUILD_ROOT@ for later substitution
>> > +-    '''
>> > +-    if not include_dirs:
>> > +-        return []
>> > +-
>> > +-    dirs_str = []
>> > +-    for dirs in unholder(include_dirs):
>> > +-        if isinstance(dirs, str):
>> > +-            dirs_str += [f'{prefix}{dirs}']
>> > +-            continue
>> > +-
>> > +-        # Should be build.IncludeDirs object.
>> > +-        basedir = dirs.get_curdir()
>> > +-        for d in dirs.get_incdirs():
>> > +-            expdir = os.path.join(basedir, d)
>> > +-            srctreedir = os.path.join('@SOURCE_ROOT@', expdir)
>> > +-            buildtreedir = os.path.join('@BUILD_ROOT@', expdir)
>> > +-            dirs_str += [f'{prefix}{buildtreedir}',
>> > +-                         f'{prefix}{srctreedir}']
>> > +-        for d in dirs.get_extra_build_dirs():
>> > +-            dirs_str += [f'{prefix}{d}']
>> > +-
>> > +-    return dirs_str
>> > +-
>> > + def is_module_library(fname):
>> > +     '''
>> > +     Check if the file is a library-like file generated by a module-specific
>> > +diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
>> > +index d0b053d4f76..c91cda66f8b 100644
>> > +--- a/mesonbuild/modules/gnome.py
>> > ++++ b/mesonbuild/modules/gnome.py
>> > +@@ -26,7 +26,6 @@
>> > + from .. import mesonlib
>> > + from .. import interpreter
>> > + from . import GResourceTarget, GResourceHeaderTarget, GirTarget, TypelibTarget, VapiTarget
>> > +-from . import get_include_args
>> > + from . import ExtensionModule
>> > + from . import ModuleReturnValue
>> > + from ..mesonlib import (
>> > +@@ -394,7 +393,7 @@ def _get_dependencies_flags(self, deps, state, depends, include_rpath=False,
>> > +                     gi_includes.update([girdir])
>> > +             if isinstance(dep, InternalDependency):
>> > +                 cflags.update(dep.get_compile_args())
>> > +-                cflags.update(get_include_args(dep.include_directories))
>> > ++                cflags.update(state.get_include_args(dep.include_directories))
>> > +                 for lib in unholder(dep.libraries):
>> > +                     if isinstance(lib, build.SharedLibrary):
>> > +                         internal_ldflags.update(self._get_link_args(state, lib, depends, include_rpath))
>> > +@@ -443,7 +442,7 @@ def _get_dependencies_flags(self, deps, state, depends, include_rpath=False,
>> > +                     else:
>> > +                         external_ldflags.update([lib])
>> > +             elif isinstance(dep, (build.StaticLibrary, build.SharedLibrary)):
>> > +-                cflags.update(get_include_args(dep.get_include_dirs()))
>> > ++                cflags.update(state.get_include_args(dep.get_include_dirs()))
>> > +                 depends.append(dep)
>> > +             else:
>> > +                 mlog.log(f'dependency {dep!r} not handled to build gir files')
>> > +@@ -853,7 +852,7 @@ def generate_gir(self, state, args, kwargs):
>> > +         scan_command += self._scan_header(kwargs)
>> > +         scan_command += self._scan_extra_args(kwargs)
>> > +         scan_command += ['-I' + srcdir, '-I' + builddir]
>> > +-        scan_command += get_include_args(girtargets_inc_dirs)
>> > ++        scan_command += state.get_include_args(girtargets_inc_dirs)
>> > +         scan_command += ['--filelist=' + self._make_gir_filelist(state, srcdir, ns, nsversion, girtargets, libsources)]
>> > +         scan_command += self._scan_link_withs(state, depends, kwargs)
>> > +         scan_command += self._scan_include(state, depends, gir_inc_dirs, kwargs)
>> > +@@ -863,8 +862,8 @@ def generate_gir(self, state, args, kwargs):
>> > +         scan_command += ['--cflags-begin']
>> > +         scan_command += cflags
>> > +         scan_command += ['--cflags-end']
>> > +-        scan_command += get_include_args(inc_dirs)
>> > +-        scan_command += get_include_args(list(gi_includes) + gir_inc_dirs + inc_dirs, prefix='--add-include-path=')
>> > ++        scan_command += state.get_include_args(inc_dirs)
>> > ++        scan_command += state.get_include_args(list(gi_includes) + gir_inc_dirs + inc_dirs, prefix='--add-include-path=')
>> > +         scan_command += list(internal_ldflags)
>> > +         scan_command += self._scan_gir_targets(state, girtargets)
>> > +         scan_command += self._scan_langs(state, [lc[0] for lc in langs_compilers])
>> > +@@ -886,7 +885,7 @@ def generate_gir(self, state, args, kwargs):
>> > +
>> > +         typelib_output = f'{ns}-{nsversion}.typelib'
>> > +         typelib_cmd = [gicompiler, scan_target, '--output', '@OUTPUT@']
>> > +-        typelib_cmd += get_include_args(gir_inc_dirs, prefix='--includedir=')
>> > ++        typelib_cmd += state.get_include_args(gir_inc_dirs, prefix='--includedir=')
>> > +
>> > +         for incdir in typelib_includes:
>> > +             typelib_cmd += ["--includedir=" + incdir]
>> > +@@ -1127,7 +1126,7 @@ def _get_build_args(self, kwargs, state, depends):
>> > +                     'Gir include dirs should be include_directories().')
>> > +
>> > +         cflags.extend(deps_cflags)
>> > +-        cflags.extend(get_include_args(inc_dirs))
>> > ++        cflags.extend(state.get_include_args(inc_dirs))
>> > +         ldflags = []
>> > +         ldflags.extend(internal_ldflags)
>> > +         ldflags.extend(external_ldflags)
>> > +diff --git a/mesonbuild/modules/hotdoc.py b/mesonbuild/modules/hotdoc.py
>> > +index bf8cd229c0d..89a5d938ea7 100644
>> > +--- a/mesonbuild/modules/hotdoc.py
>> > ++++ b/mesonbuild/modules/hotdoc.py
>> > +@@ -22,7 +22,6 @@
>> > + from mesonbuild.coredata import MesonException
>> > + from . import ModuleReturnValue
>> > + from . import ExtensionModule
>> > +-from . import get_include_args
>> > + from ..dependencies import Dependency, InternalDependency
>> > + from ..interpreterbase import FeatureNew, InvalidArguments, noPosargs, noKwargs
>> > + from ..interpreter import CustomTargetHolder
>> > +@@ -191,7 +190,7 @@ def process_dependencies(self, deps):
>> > +         for dep in mesonlib.listify(ensure_list(deps)):
>> > +             dep = getattr(dep, "held_object", dep)
>> > +             if isinstance(dep, InternalDependency):
>> > +-                inc_args = get_include_args(dep.include_directories)
>> > ++                inc_args = self.state.get_include_args(dep.include_directories)
>> > +                 cflags.update([self.replace_dirs_in_string(x)
>> > +                                for x in inc_args])
>> > +                 cflags.update(self.process_dependencies(dep.libraries))
>> > +diff --git a/mesonbuild/modules/qt.py b/mesonbuild/modules/qt.py
>> > +index b7389bd59af..1bf0099d1df 100644
>> > +--- a/mesonbuild/modules/qt.py
>> > ++++ b/mesonbuild/modules/qt.py
>> > +@@ -23,7 +23,7 @@
>> > + from ..mesonlib import MesonException, extract_as_list, File, unholder, version_compare
>> > + from ..dependencies import Dependency
>> > + import xml.etree.ElementTree as ET
>> > +-from . import ModuleReturnValue, get_include_args, ExtensionModule
>> > ++from . import ModuleReturnValue, ExtensionModule
>> > + from ..interpreterbase import noPosargs, permittedKwargs, FeatureNew, FeatureNewKwargs
>> > + from ..interpreter import extract_required_kwarg
>> > + from ..programs import NonExistingExternalProgram
>> > +@@ -239,7 +239,7 @@ def preprocess(self, state, args, kwargs):
>> > +             ui_gen = build.Generator([self.uic], ui_kwargs)
>> > +             ui_output = ui_gen.process_files(f'Qt{self.qt_version} ui', ui_files, state)
>> > +             sources.append(ui_output)
>> > +-        inc = get_include_args(include_dirs=include_directories)
>> > ++        inc = state.get_include_args(include_dirs=include_directories)
>> > +         compile_args = []
>> > +         for dep in unholder(dependencies):
>> > +             if isinstance(dep, Dependency):
>> > +diff --git a/mesonbuild/modules/windows.py b/mesonbuild/modules/windows.py
>> > +index d7a86380885..c4fdc196681 100644
>> > +--- a/mesonbuild/modules/windows.py
>> > ++++ b/mesonbuild/modules/windows.py
>> > +@@ -19,7 +19,6 @@
>> > + from .. import mlog
>> > + from .. import mesonlib, build
>> > + from ..mesonlib import MachineChoice, MesonException, extract_as_list, unholder
>> > +-from . import get_include_args
>> > + from . import ModuleReturnValue
>> > + from . import ExtensionModule
>> > + from ..interpreter import CustomTargetHolder
>> > +@@ -83,12 +82,12 @@ def compile_resources(self, state, args, kwargs):
>> > +         wrc_depends = extract_as_list(kwargs, 'depends', pop = True)
>> > +         for d in wrc_depends:
>> > +             if isinstance(d, CustomTargetHolder):
>> > +-                extra_args += get_include_args([d.outdir_include()])
>> > ++                extra_args += state.get_include_args([d.outdir_include()])
>> > +         inc_dirs = extract_as_list(kwargs, 'include_directories', pop = True)
>> > +         for incd in inc_dirs:
>> > +             if not isinstance(incd.held_object, (str, build.IncludeDirs)):
>> > +                 raise MesonException('Resource include dirs should be include_directories().')
>> > +-        extra_args += get_include_args(inc_dirs)
>> > ++        extra_args += state.get_include_args(inc_dirs)
>> > +
>> > +         rescomp, rescomp_type = self._find_resource_compiler(state)
>> > +         if rescomp_type == ResourceCompilerType.rc:
>> > +diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml
>> > +index 95f73efdf45..6ccd087dc18 100644
>> > +--- a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml
>> > ++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml
>> > +@@ -35,7 +35,7 @@
>> > +     </partintro>
>> > +     <xi:include href="xml/foo.xml"/>
>> > +     <xi:include href="../../include/bar.xml"/>
>> > +-    <xi:include href="xml/foo-version.xml"/>
>> > ++    <xi:include href="xml/version.xml"/>
>> > +   </reference>
>> > +
>> > + </book>
>> > +diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt
>> > +new file mode 100644
>> > +index 00000000000..d14c8dab010
>> > +--- /dev/null
>> > ++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt
>> > +@@ -0,0 +1,16 @@
>> > ++<SECTION>
>> > ++<FILE>foo</FILE>
>> > ++<TITLE>FooObj</TITLE>
>> > ++FooObj
>> > ++FooObjClass
>> > ++foo_do_something
>> > ++</SECTION>
>> > ++
>> > ++<SECTION>
>> > ++<FILE>version</FILE>
>> > ++<TITLE>version</TITLE>
>> > ++FOO_MAJOR_VERSION
>> > ++FOO_MINOR_VERSION
>> > ++FOO_MICRO_VERSION
>> > ++</SECTION>
>> > ++
>> > +diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types
>> > +new file mode 100644
>> > +index 00000000000..0a9c046f3ed
>> > +--- /dev/null
>> > ++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types
>> > +@@ -0,0 +1,4 @@
>> > ++% This include is useless it's a regression test for https://github.com/mesonbuild/meson/issues/8744
>> > ++#include <foo.h>
>> > ++
>> > ++foo_obj_get_type
>> > +diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build b/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build
>> > +index 149c6e956aa..f4b3724dbae 100644
>> > +--- a/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build
>> > ++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build
>> > +@@ -1,5 +1,9 @@
>> > + gnome.gtkdoc('foobar',
>> > +-  src_dir : inc,
>> > ++  src_dir : [inc, '.'],
>> > +   main_sgml : 'foobar-docs.sgml',
>> > +   content_files : [docbook, version_xml],
>> > ++  dependencies: foo_dep,
>> > ++  # Manually written types file for regression test:
>> > ++  # https://github.com/mesonbuild/meson/issues/8744
>> > ++  gobject_typesfile: 'foobar.types',
>> > +   install : true)
>> > +diff --git a/test cases/frameworks/10 gtk-doc/foo.c b/test cases/frameworks/10 gtk-doc/foo.c
>> > +new file mode 100644
>> > +index 00000000000..36c0639ec08
>> > +--- /dev/null
>> > ++++ b/test cases/frameworks/10 gtk-doc/foo.c
>> > +@@ -0,0 +1,30 @@
>> > ++#include <foo.h>
>> > ++
>> > ++
>> > ++struct _FooObj {
>> > ++  GObject parent;
>> > ++  int dummy;
>> > ++};
>> > ++
>> > ++G_DEFINE_TYPE(FooObj, foo_obj, G_TYPE_OBJECT)
>> > ++
>> > ++static void foo_obj_init (FooObj *self)
>> > ++{
>> > ++}
>> > ++
>> > ++static void foo_obj_class_init (FooObjClass *klass)
>> > ++{
>> > ++}
>> > ++
>> > ++/**
>> > ++ * foo_do_something:
>> > ++ * @self: self
>> > ++ *
>> > ++ * Useless function.
>> > ++ *
>> > ++ * Returns: 0.
>> > ++ */
>> > ++int foo_do_something(FooObj *self)
>> > ++{
>> > ++  return 0;
>> > ++}
>> > +diff --git a/test cases/frameworks/10 gtk-doc/include/foo.h b/test cases/frameworks/10 gtk-doc/include/foo.h
>> > +index 7b8946b6a86..510f3d1ecb5 100644
>> > +--- a/test cases/frameworks/10 gtk-doc/include/foo.h
>> > ++++ b/test cases/frameworks/10 gtk-doc/include/foo.h
>> > +@@ -1,5 +1,7 @@
>> > + #pragma once
>> > +
>> > ++#include <glib-object.h>
>> > ++
>> > + /**
>> > +  * FooIndecision:
>> > +  * @FOO_MAYBE:     Something maybe
>> > +@@ -13,3 +15,19 @@ typedef enum {
>> > +     FOO_POSSIBLY,
>> > + } FooIndecision;
>> > +
>> > ++/**
>> > ++ * FooObjClass:
>> > ++ *
>> > ++ * The class
>> > ++ */
>> > ++
>> > ++/**
>> > ++ * FooObj:
>> > ++ *
>> > ++ * The instance
>> > ++ */
>> > ++
>> > ++#define FOO_TYPE_OBJ foo_obj_get_type()
>> > ++G_DECLARE_FINAL_TYPE(FooObj, foo_obj, FOO, OBJ, GObject)
>> > ++
>> > ++int foo_do_something(FooObj *self);
>> > +diff --git a/test cases/frameworks/10 gtk-doc/meson.build b/test cases/frameworks/10 gtk-doc/meson.build
>> > +index 5c22ad0afa4..292980fafa7 100644
>> > +--- a/test cases/frameworks/10 gtk-doc/meson.build
>> > ++++ b/test cases/frameworks/10 gtk-doc/meson.build
>> > +@@ -24,4 +24,16 @@ if gtkdoc_ver.version_compare('<1.26')
>> > +   error('MESON_SKIP_TEST gtk-doc test requires gtkdoc >= 1.26.')
>> > + endif
>> > +
>> > ++gobject = dependency('gobject-2.0')
>> > ++
>> > ++libfoo = library('foo', 'foo.c',
>> > ++  include_directories: inc,
>> > ++  dependencies: gobject,
>> > ++)
>> > ++
>> > ++foo_dep = declare_dependency(
>> > ++  link_with: libfoo,
>> > ++  include_directories: inc,
>> > ++)
>> > ++
>> > + subdir('doc')
>> > +diff --git a/test cases/frameworks/10 gtk-doc/test.json b/test cases/frameworks/10 gtk-doc/test.json
>> > +index c44126cc741..03ad0595817 100644
>> > +--- a/test cases/frameworks/10 gtk-doc/test.json
>> > ++++ b/test cases/frameworks/10 gtk-doc/test.json
>> > +@@ -4,8 +4,8 @@
>> > +     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/BAR.html"},
>> > +     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar.devhelp2"},
>> > +     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar.html"},
>> > +-    {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar-foo.html"},
>> > +-    {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar-foo-version.html"},
>> > ++    {"type": "file", "file": "usr/share/gtk-doc/html/foobar/FooObj.html"},
>> > ++    {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foo-version.html"},
>> > +     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/home.png"},
>> > +     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/index.html"},
>> > +     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/left.png"},
>> > diff --git a/meta/recipes-devtools/meson/meson/cross-prop-default.patch b/meta/recipes-devtools/meson/meson/cross-prop-default.patch
>> > deleted file mode 100644
>> > index 772395e879..0000000000
>> > --- a/meta/recipes-devtools/meson/meson/cross-prop-default.patch
>> > +++ /dev/null
>> > @@ -1,23 +0,0 @@
>> > -meson.build files that use cc.run() in native builds can silently fallback to
>> > -meson.get_cross_property() in cross builds without an exe-wrapper, but there's
>> > -no way to know that this is happening.
>> > -
>> > -As the defaults may be pessimistic (for example, disabling the support for a
>> > -feature that should be enabled) emit a warning when the default is used, so that
>> > -the recipe can explicitly set the cross property as relevant.
>> > -
>> > -Upstream-Status: Submitted [https://github.com/mesonbuild/meson/pull/5071]
>> > -Signed-off-by: Ross Burton <ross.burton@intel.com>
>> > -
>> > -diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
>> > -index 3c3cfae0..10e741ae 100644
>> > ---- a/mesonbuild/interpreter.py
>> > -+++ b/mesonbuild/interpreter.py
>> > -@@ -1890,6 +1890,7 @@ class MesonMain(InterpreterObject):
>> > -             return props[propname]
>> > -         except Exception:
>> > -             if len(args) == 2:
>> > -+                mlog.warning('Cross property %s is using default value %s' % (propname, args[1]))
>> > -                 return args[1]
>> > -             raise InterpreterException('Unknown cross property: %s.' % propname)
>> > -
>> > diff --git a/meta/recipes-devtools/meson/meson_0.57.2.bb b/meta/recipes-devtools/meson/meson_0.58.0.bb
>> > similarity index 100%
>> > rename from meta/recipes-devtools/meson/meson_0.57.2.bb
>> > rename to meta/recipes-devtools/meson/meson_0.58.0.bb
>> > diff --git a/meta/recipes-devtools/meson/nativesdk-meson_0.57.2.bb b/meta/recipes-devtools/meson/nativesdk-meson_0.58.0.bb
>> > similarity index 100%
>> > rename from meta/recipes-devtools/meson/nativesdk-meson_0.57.2.bb
>> > rename to meta/recipes-devtools/meson/nativesdk-meson_0.58.0.bb
>> > --
>> > 2.31.1
>> >
>> >
>> > 
>> >

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

* Re: [OE-core] [PATCH 4/8] meson: update 0.57.2 -> 0.58.0
  2021-05-14 15:20       ` Khem Raj
@ 2021-05-14 18:12         ` Andreas Müller
  0 siblings, 0 replies; 12+ messages in thread
From: Andreas Müller @ 2021-05-14 18:12 UTC (permalink / raw)
  To: Khem Raj
  Cc: Alexander Kanavin, Patches and discussions about the oe-core layer

On Fri, May 14, 2021 at 5:20 PM Khem Raj <raj.khem@gmail.com> wrote:
>
> On Fri, May 14, 2021 at 6:59 AM Alexander Kanavin
> <alex.kanavin@gmail.com> wrote:
> >
> > Probably resolved by updating to 40.1?
> > https://gitlab.gnome.org/GNOME/nautilus/-/tags
> >
>
> easier said than done.  Sadly these are complex apps and I don't have
> time to fix the  long list of dependencies it will ensue
> therefore I will leave it broken and exclude them from my distro
> builds from, Andreas might be
> interested
>
Will look into

Cheers

Andreas

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

end of thread, other threads:[~2021-05-14 18:12 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-13 20:56 [PATCH 1/8] gdk-pixbuf: rewrite the cross-build support for tests Alexander Kanavin
2021-05-13 20:56 ` [PATCH 2/8] gnome: drop upstream even condition from a few recipes Alexander Kanavin
2021-05-13 20:56 ` [PATCH 3/8] expat: upgrade 2.2.10 -> 2.3.0 Alexander Kanavin
2021-05-13 20:56 ` [PATCH 4/8] meson: update 0.57.2 -> 0.58.0 Alexander Kanavin
2021-05-14 13:45   ` [OE-core] " Khem Raj
2021-05-14 13:59     ` Alexander Kanavin
2021-05-14 15:20       ` Khem Raj
2021-05-14 18:12         ` Andreas Müller
2021-05-13 20:56 ` [PATCH 5/8] meson.bbclass: split python routines into a separate class Alexander Kanavin
2021-05-13 20:56 ` [PATCH 6/8] nativesdk-meson: correctly set cpu_family Alexander Kanavin
2021-05-13 20:56 ` [PATCH 7/8] gstreamer1.0-plugins-base: backport a patch to fix meson 0.58 builds Alexander Kanavin
2021-05-13 20:56 ` [PATCH 8/8] qemu: " Alexander Kanavin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.