[Buildroot] [PATCH v2 1/1] package/meson: bump version to 1.3.0

Antoine Coutant antoine.coutant at smile.fr
Thu Dec 21 13:16:47 UTC 2023


The meson upgrade from 1.1.1 to 1.2.0 have been reverted
because host-qemu (version v8.0.3) was searching
libraries in the build machine instead of buildroot host
directory [1].
$ grep -r LINK_ARGS  * | grep "\-L/usr"
build.ninja: LINK_ARGS =
    -L/usr/lib/gcc/x86_64-linux-gnu/10 \
    -L/usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu \
    -L/usr/lib/gcc/x86_64-linux-gnu/10/../../../../lib -L/usr/lib \
    -L/lib/x86_64-linux-gnu \
    -L/lib/../lib \
    -L/usr/lib/../lib \
    -L/usr/lib/gcc/x86_64-linux-gnu/10/../../.. \
    -L/lib \
    -I/[...]/host/include \
    -L/[...]/host/lib \
    -I/[...]/host/include/libfdt \
    ...

Upgrading qemu to version v8.1.0 solves the problem:
$ grep -r LINK_ARGS  * | grep "\-L/usr"
build.ninja: LINK_ARGS =
    -I/[...]/host/include \
    -L/[...]/host/lib \
    -I/[...]/host/include/libfdt \
    ...

Those two tests were done with the same buildroot version
(2023.08) on the same machine were the bug appeared. Using,
git bisect, in this environment, it was found that the
problem was fixed in qemu by the commit [2].

Thus, it is possible that the problem was introduced by
improper use of meson by qemu <= v8.0.3. Also, meson has
been updated to version 1.2.0 and 1.3.0 in yocto and it
doesn't seem to create any issue. [3]

The original problem is no longer present and some
projects require meson >= 1.3.0 (e.g. mesa3d with
rusticl).

"pkgconfig" field is deprecated by meson 1.3.0 and
replaced by "pkg-config". See: [4]

The patch that adds the pkg_config_static property has
been rebased.

[1] https://gitlab.com/buildroot.org/buildroot/-/commit/acfdf21f0b752e844a33c70a0fd2f82f4534a5a0
[2] https://gitlab.com/qemu-project/qemu/-/commit/Fc9a809e0d28417fa1e7f7efc19f845bda4c1be9
[3] https://github.com/yoctoproject/poky/commits/master/meta/recipes-devtools/meson
[4] https://mesonbuild.com/Release-notes-for-1-3-0.html#machine-files-pkgconfig-field-deprecated-and-replaced-by-pkgconfig

Signed-off-by: Antoine Coutant <antoine.coutant at smile.fr>
---
Changes v1 -> v2:
	- Explain why cross-compilation.conf.in is changed.
	- Correct the buildroot version
	  (2028.08) -> (2023.08)
---
 ...dencies-base.py-add-pkg_config_stati.patch | 29 ++++++++++---------
 package/meson/meson.hash                      |  4 +--
 package/meson/meson.mk                        |  2 +-
 support/misc/cross-compilation.conf.in        |  2 +-
 4 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/package/meson/0002-mesonbuild-dependencies-base.py-add-pkg_config_stati.patch b/package/meson/0002-mesonbuild-dependencies-base.py-add-pkg_config_stati.patch
index 8e15d3210c..49a0ef93dc 100644
--- a/package/meson/0002-mesonbuild-dependencies-base.py-add-pkg_config_stati.patch
+++ b/package/meson/0002-mesonbuild-dependencies-base.py-add-pkg_config_stati.patch
@@ -1,4 +1,4 @@
-From 3d6a2db2270346236dd6247e0648ea0c949ba468 Mon Sep 17 00:00:00 2001
+From 59934e2116e025ecfe23baf6febc4a0eb85f60cd Mon Sep 17 00:00:00 2001
 From: Fabrice Fontaine <fontaine.fabrice at gmail.com>
 Date: Sat, 15 Feb 2020 15:13:59 +0100
 Subject: [PATCH] mesonbuild/dependencies/base.py: add pkg_config_static
@@ -20,24 +20,25 @@ Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
 Signed-off-by: Romain Naour <romain.naour at gmail.com>
 [Rebased on 0.57.1]
 Signed-off-by: Peter Seiderer <ps.report at gmx.net>
+[rebased on 1.3.0]
+Signed-off-by: Antoine Coutant <antoine.coutant at smile.fr>
 ---
- mesonbuild/dependencies/pkgconfig.py | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
+ mesonbuild/dependencies/pkgconfig.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/mesonbuild/dependencies/pkgconfig.py b/mesonbuild/dependencies/pkgconfig.py
-index 1e8d9132e..d902ba215 100644
+index e86206b88..94888657d 100644
 --- a/mesonbuild/dependencies/pkgconfig.py
 +++ b/mesonbuild/dependencies/pkgconfig.py
-@@ -338,7 +338,8 @@ class PkgConfigDependency(ExternalDependency):
-         env = None
-         libcmd = ['--libs']
- 
--        if self.static:
-+        if self.static or \
-+            (self.env.properties[self.for_machine].get('pkg_config_static', None) == 'true'):
-             libcmd.append('--static')
- 
-         libcmd.append(self.name)
+@@ -169,7 +169,7 @@ class PkgConfigCLI(PkgConfigInterface):
+             env['PKG_CONFIG_ALLOW_SYSTEM_LIBS'] = '1'
+         args: T.List[str] = []
+         args += self._define_variable_args(define_variable)
+-        if static:
++        if static or (self.env.properties[self.for_machine].get('pkg_config_static', None) == 'true'):
+             args.append('--static')
+         args += ['--libs', name]
+         ret, out, err = self._call_pkgbin(args, env=env)
 -- 
 2.25.1
 
diff --git a/package/meson/meson.hash b/package/meson/meson.hash
index cb36b674fa..8678ba5985 100644
--- a/package/meson/meson.hash
+++ b/package/meson/meson.hash
@@ -1,4 +1,4 @@
 # Locally calculated after checking pgp signature
-# https://github.com/mesonbuild/meson/releases/download/1.1.1/meson-1.1.1.tar.gz.asc
-sha256  d04b541f97ca439fb82fab7d0d480988be4bd4e62563a5ca35fadb5400727b1c  meson-1.1.1.tar.gz
+# https://github.com/mesonbuild/meson/releases/download/1.3.0/meson-1.3.0.tar.gz.asc
+sha256  4ba253ef60e454e23234696119cbafa082a0aead0bd3bbf6991295054795f5dc  meson-1.3.0.tar.gz
 sha256  cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30  COPYING
diff --git a/package/meson/meson.mk b/package/meson/meson.mk
index 503aca8c25..eec4c908f6 100644
--- a/package/meson/meson.mk
+++ b/package/meson/meson.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-MESON_VERSION = 1.1.1
+MESON_VERSION = 1.3.0
 MESON_SITE = https://github.com/mesonbuild/meson/releases/download/$(MESON_VERSION)
 MESON_LICENSE = Apache-2.0
 MESON_LICENSE_FILES = COPYING
diff --git a/support/misc/cross-compilation.conf.in b/support/misc/cross-compilation.conf.in
index 3c5812b131..21cec10b82 100644
--- a/support/misc/cross-compilation.conf.in
+++ b/support/misc/cross-compilation.conf.in
@@ -10,7 +10,7 @@ ar = '@TARGET_AR@'
 strip = '@TARGET_STRIP@'
 cmake = '@BR2_CMAKE@'
 fortran = '@TARGET_FC@'
-pkgconfig = '@PKGCONF_HOST_BINARY@'
+pkg-config = '@PKGCONF_HOST_BINARY@'
 g-ir-compiler = '@STAGING_DIR@/usr/bin/g-ir-compiler'
 g-ir-scanner = '@STAGING_DIR@/usr/bin/g-ir-scanner'
 rust = ['@TARGET_RUSTC@', '--target', '@RUSTC_TARGET_NAME@' ]
-- 
2.25.1




More information about the buildroot mailing list