meson: upgraded package to upstream

Upgraded dev-util/meson to version 0.54.2 on amd64, arm

BUG=b:145579089, chromium:1091506
TEST=Validate that uprev'ed mesa-freedreno builds, json-glib builds

Cq-Depend: chromium:2231704, chromium:2234194, chromium:2235918
Change-Id: I69c5fa42e71c1bb258f0c3e35b69534051fe20e3
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/overlays/portage-stable/+/2227152
Tested-by: Douglas Anderson <dianders@chromium.org>
Commit-Queue: Douglas Anderson <dianders@chromium.org>
Auto-Submit: Kristian H. Kristensen <hoegsberg@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/dev-util/meson/Manifest b/dev-util/meson/Manifest
index 5f493e1..1b49d21 100644
--- a/dev-util/meson/Manifest
+++ b/dev-util/meson/Manifest
@@ -1 +1 @@
-DIST meson-0.44.1.tar.gz 1136337 SHA256 b060d8115be24d89675b9e0ab7278b970088c48c12a450b30d0d3005d58bc13c SHA512 3c350d1752ae4463ec47060e051d79cc0855385e9552deff34fad8431175fb5d0f04b51a242f8f8f737726d06e504339d6b02a5aa9558ee673fb867dbb4e5b2d WHIRLPOOL 168cef7d8ec202397347e34197dba01e65e12a1fb013df9a5213be3cc934ad9b4049113767d7b7ccd1e876419891986a72ae5106c902d1696f49c5b0da0f6ede
+DIST meson-0.54.2.tar.gz 1691270 BLAKE2B c1ba552b5d56e0b6b73de46ec6bc90fb520665688d2f5c809baf84749d3bb1dec1fe0131136e1539369fa666ae2427c8fccd5928cbda0b8e3e1edb4a5dc8abbc SHA512 ad5ec826879d3d85088ca40d768599a4c8e66983f2a6a7ebe8ab12051cad18b4ade9a2afd30fe543b0a75900822992c8ef7161d369489e2211dd7a1a8ccc32ed
diff --git a/dev-util/meson/files/0.54.2-multilib-clang.patch b/dev-util/meson/files/0.54.2-multilib-clang.patch
new file mode 100644
index 0000000..b3aa369
--- /dev/null
+++ b/dev-util/meson/files/0.54.2-multilib-clang.patch
@@ -0,0 +1,181 @@
+From 9dc3ca2c1c9fbb47e731551c6432df144f725261 Mon Sep 17 00:00:00 2001
+From: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com>
+Date: Thu, 21 May 2020 18:58:47 +0300
+Subject: [PATCH] compilers: add fetching of define list for clang
+
+Simmilar to gcc, the list of pre-processor defines can be fetched with
+`-dM -E` option. The way cpu_family is determined on linux relies on
+this list.
+
+Fixes incorrect value of cpu_family on linux, when crosscompiling:
+
+```
+CC="clang -m32" meson ./build
+```
+
+Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com>
+Co-authored-by: Dylan Baker <dylan@pnwbakers.com>
+---
+ mesonbuild/compilers/c.py            |  5 +++--
+ mesonbuild/compilers/cpp.py          |  5 +++--
+ mesonbuild/compilers/fortran.py      |  2 +-
+ mesonbuild/compilers/mixins/clang.py |  9 ++++++++-
+ mesonbuild/compilers/objc.py         |  2 +-
+ mesonbuild/compilers/objcpp.py       |  2 +-
+ mesonbuild/environment.py            | 26 +++++++++++++++++++++++++-
+ 7 files changed, 42 insertions(+), 9 deletions(-)
+
+diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py
+index 1bc9e84998..aac99b4269 100644
+--- a/mesonbuild/compilers/c.py
++++ b/mesonbuild/compilers/c.py
+@@ -86,9 +86,10 @@ class ClangCCompiler(ClangCompiler, CCompiler):
+     _C18_VERSION = '>=8.0.0'
+ 
+     def __init__(self, exelist, version, for_machine: MachineChoice,
+-                 is_cross, info: 'MachineInfo', exe_wrapper=None, **kwargs):
++                 is_cross, info: 'MachineInfo', exe_wrapper=None,
++                 defines: T.Optional[T.List[str]] = None, **kwargs):
+         CCompiler.__init__(self, exelist, version, for_machine, is_cross, info, exe_wrapper, **kwargs)
+-        ClangCompiler.__init__(self)
++        ClangCompiler.__init__(self, defines)
+         default_warn_args = ['-Wall', '-Winvalid-pch']
+         self.warn_args = {'0': [],
+                           '1': default_warn_args,
+diff --git a/mesonbuild/compilers/cpp.py b/mesonbuild/compilers/cpp.py
+index f4bcfa9f89..478a68c13c 100644
+--- a/mesonbuild/compilers/cpp.py
++++ b/mesonbuild/compilers/cpp.py
+@@ -155,10 +155,11 @@ def _find_best_cpp_std(self, cpp_std):
+ 
+ class ClangCPPCompiler(ClangCompiler, CPPCompiler):
+     def __init__(self, exelist, version, for_machine: MachineChoice,
+-                 is_cross, info: 'MachineInfo', exe_wrapper=None, **kwargs):
++                 is_cross, info: 'MachineInfo', exe_wrapper=None,
++                 defines : T.Optional[T.List[str]] = None, **kwargs):
+         CPPCompiler.__init__(self, exelist, version, for_machine, is_cross,
+                              info, exe_wrapper, **kwargs)
+-        ClangCompiler.__init__(self)
++        ClangCompiler.__init__(self, defines)
+         default_warn_args = ['-Wall', '-Winvalid-pch', '-Wnon-virtual-dtor']
+         self.warn_args = {'0': [],
+                           '1': default_warn_args,
+diff --git a/mesonbuild/compilers/fortran.py b/mesonbuild/compilers/fortran.py
+index c155b5b4f3..af83c0e564 100644
+--- a/mesonbuild/compilers/fortran.py
++++ b/mesonbuild/compilers/fortran.py
+@@ -424,7 +424,7 @@ def __init__(self, exelist, version, for_machine: MachineChoice,
+                  **kwargs):
+         FortranCompiler.__init__(self, exelist, version, for_machine,
+                                  is_cross, info, exe_wrapper, **kwargs)
+-        ClangCompiler.__init__(self)
++        ClangCompiler.__init__(self, [])
+         self.id = 'flang'
+         default_warn_args = ['-Minform=inform']
+         self.warn_args = {'0': [],
+diff --git a/mesonbuild/compilers/mixins/clang.py b/mesonbuild/compilers/mixins/clang.py
+index 1c0ee452f4..0ee10ad5d5 100644
+--- a/mesonbuild/compilers/mixins/clang.py
++++ b/mesonbuild/compilers/mixins/clang.py
+@@ -42,9 +42,10 @@
+ }  # type: T.Dict[str, T.List[str]]
+ 
+ class ClangCompiler(GnuLikeCompiler):
+-    def __init__(self):
++    def __init__(self, defines: T.Optional[T.Dict[str, str]]):
+         super().__init__()
+         self.id = 'clang'
++        self.defines = defines or {}
+         self.base_options.append('b_colorout')
+         # TODO: this really should be part of the linker base_options, but
+         # linkers don't have base_options.
+@@ -56,6 +57,12 @@ def __init__(self):
+     def get_colorout_args(self, colortype: str) -> T.List[str]:
+         return clang_color_args[colortype][:]
+ 
++    def has_builtin_define(self, define: str) -> bool:
++        return define in self.defines
++
++    def get_builtin_define(self, define: str) -> T.Optional[str]:
++        return self.defines.get(define)
++
+     def get_optimization_args(self, optimization_level: str) -> T.List[str]:
+         return clang_optimization_args[optimization_level]
+ 
+diff --git a/mesonbuild/compilers/objc.py b/mesonbuild/compilers/objc.py
+index 52d258dcdb..d351c8826a 100644
+--- a/mesonbuild/compilers/objc.py
++++ b/mesonbuild/compilers/objc.py
+@@ -86,7 +86,7 @@ def __init__(self, exelist, version, for_machine: MachineChoice,
+                  **kwargs):
+         ObjCCompiler.__init__(self, exelist, version, for_machine, is_cross,
+                               info, exe_wrapper, **kwargs)
+-        ClangCompiler.__init__(self)
++        ClangCompiler.__init__(self, [])
+         default_warn_args = ['-Wall', '-Winvalid-pch']
+         self.warn_args = {'0': [],
+                           '1': default_warn_args,
+diff --git a/mesonbuild/compilers/objcpp.py b/mesonbuild/compilers/objcpp.py
+index c8b422b35d..10555b4551 100644
+--- a/mesonbuild/compilers/objcpp.py
++++ b/mesonbuild/compilers/objcpp.py
+@@ -84,7 +84,7 @@ def __init__(self, exelist, version, for_machine: MachineChoice,
+                  is_cross, info: 'MachineInfo', exe_wrapper=None,
+                  **kwargs):
+         ObjCPPCompiler.__init__(self, exelist, version, for_machine, is_cross, info, exe_wrapper, **kwargs)
+-        ClangCompiler.__init__(self)
++        ClangCompiler.__init__(self, [])
+         default_warn_args = ['-Wall', '-Winvalid-pch', '-Wnon-virtual-dtor']
+         self.warn_args = {'0': [],
+                           '1': default_warn_args,
+diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
+index 8fad6288b1..cb6ae7d514 100644
+--- a/mesonbuild/environment.py
++++ b/mesonbuild/environment.py
+@@ -726,6 +726,28 @@ def get_lcc_version_from_defines(defines):
+         minor = defines.get('__LCC_MINOR__', '0')
+         return dot.join((generation, major, minor))
+ 
++    @staticmethod
++    def get_clang_compiler_defines(compiler):
++        """
++        Get the list of Clang pre-processor defines
++        """
++        args = compiler + ['-E', '-dM', '-']
++        p, output, error = Popen_safe(args, write='', stdin=subprocess.PIPE)
++        if p.returncode != 0:
++            raise EnvironmentException('Unable to get clang pre-processor defines:\n' + output + error)
++        defines = {}
++        for line in output.split('\n'):
++            if not line:
++                continue
++            d, *rest = line.split(' ', 2)
++            if d != '#define':
++                continue
++            if len(rest) == 1:
++                defines[rest] = True
++            if len(rest) == 2:
++                defines[rest[0]] = rest[1]
++        return defines
++
+     def _get_compilers(self, lang, for_machine):
+         '''
+         The list of compilers is detected in the exact same way for
+@@ -1043,6 +1065,8 @@ def sanitize(p):
+             if 'clang' in out:
+                 linker = None
+ 
++                defines = self.get_clang_compiler_defines(compiler)
++
+                 # Even if the for_machine is darwin, we could be using vanilla
+                 # clang.
+                 if 'Apple' in out:
+@@ -1063,7 +1087,7 @@ def sanitize(p):
+ 
+                 return cls(
+                     ccache + compiler, version, for_machine, is_cross, info,
+-                    exe_wrap, full_version=full_version, linker=linker)
++                    exe_wrap, defines, full_version=full_version, linker=linker)
+ 
+             if 'Intel(R) C++ Intel(R)' in err:
+                 version = search_version(err)
diff --git a/dev-util/meson/meson-0.44.1.ebuild b/dev-util/meson/meson-0.44.1.ebuild
deleted file mode 100644
index 2598179..0000000
--- a/dev-util/meson/meson-0.44.1.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-PYTHON_COMPAT=( python3_{4,5,6} )
-
-if [[ ${PV} = *9999* ]]; then
-	EGIT_REPO_URI="https://github.com/mesonbuild/meson"
-	inherit git-r3
-else
-	SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
-	KEYWORDS="*"
-fi
-
-inherit distutils-r1
-
-DESCRIPTION="Open source build system"
-HOMEPAGE="http://mesonbuild.com/"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE=""
-RESTRICT="test"
-
-DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
-RDEPEND=""
-
-python_test() {
-	${EPYTHON} run_tests.py || die
-}
-
-python_install_all() {
-	distutils-r1_python_install_all
-
-	insinto /usr/share/vim/vimfiles
-	doins -r data/syntax-highlighting/vim/{ftdetect,indent,syntax}
-	insinto /usr/share/zsh/site-functions
-	doins data/shell-completions/zsh/_meson
-}
diff --git a/dev-util/meson/meson-0.54.2.ebuild b/dev-util/meson/meson-0.54.2.ebuild
new file mode 100644
index 0000000..f4fcf8e
--- /dev/null
+++ b/dev-util/meson/meson-0.54.2.ebuild
@@ -0,0 +1,96 @@
+# Copyright 2016-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{6,7,8} )
+DISTUTILS_USE_SETUPTOOLS="rdepend"
+
+if [[ ${PV} = *9999* ]]; then
+	EGIT_REPO_URI="https://github.com/mesonbuild/meson"
+	inherit git-r3
+else
+	SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+	KEYWORDS="*"
+fi
+
+inherit distutils-r1 toolchain-funcs
+
+DESCRIPTION="Open source build system"
+HOMEPAGE="https://mesonbuild.com/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+	test? (
+		dev-libs/glib:2
+		dev-libs/gobject-introspection
+		dev-util/ninja
+		dev-vcs/git
+		sys-libs/zlib[static-libs(+)]
+		virtual/pkgconfig
+	)
+"
+
+PATCHES=(
+	"${FILESDIR}"/0.54.2-multilib-clang.patch
+)
+
+python_prepare_all() {
+	local disable_unittests=(
+		# ASAN and sandbox both want control over LD_PRELOAD
+		# https://bugs.gentoo.org/673016
+		-e 's/test_generate_gir_with_address_sanitizer/_&/'
+
+		# ASAN is unsupported on some targets
+		# https://bugs.gentoo.org/692822
+		-e 's/test_pch_with_address_sanitizer/_&/'
+
+		# https://github.com/mesonbuild/meson/issues/7203
+		-e 's/test_templates/_&/'
+
+		# Broken due to python2 wrapper
+		-e 's/test_python_module/_&/'
+	)
+
+	sed -i "${disable_unittests[@]}" run_unittests.py || die
+
+	# Broken due to python2 script created by python_wrapper_setup
+	rm -r "test cases/frameworks/1 boost" || die
+
+	distutils-r1_python_prepare_all
+}
+
+src_test() {
+	tc-export PKG_CONFIG
+	if ${PKG_CONFIG} --exists Qt5Core && ! ${PKG_CONFIG} --exists Qt5Gui; then
+		ewarn "Found Qt5Core but not Qt5Gui; skipping tests"
+	else
+		# https://bugs.gentoo.org/687792
+		unset PKG_CONFIG
+		distutils-r1_src_test
+	fi
+}
+
+python_test() {
+	(
+		# test_meson_installed
+		unset PYTHONDONTWRITEBYTECODE
+
+		# test_cross_file_system_paths
+		unset XDG_DATA_HOME
+
+		${EPYTHON} -u run_tests.py
+	) || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+	distutils-r1_python_install_all
+
+	insinto /usr/share/vim/vimfiles
+	doins -r data/syntax-highlighting/vim/{ftdetect,indent,syntax}
+	insinto /usr/share/zsh/site-functions
+	doins data/shell-completions/zsh/_meson
+}
diff --git a/dev-util/meson/metadata.xml b/dev-util/meson/metadata.xml
index 301e400..d762c3a 100644
--- a/dev-util/meson/metadata.xml
+++ b/dev-util/meson/metadata.xml
@@ -2,13 +2,13 @@
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
 	<maintainer type="person">
-		<email>williamh@gentoo.org</email>
-		<name>William Hubbs</name>
-	</maintainer>
-	<maintainer type="person">
 		<email>floppym@gentoo.org</email>
 		<name>Mike Gilbert</name>
 	</maintainer>
+	<maintainer type="person">
+		<email>williamh@gentoo.org</email>
+		<name>William Hubbs</name>
+	</maintainer>
 	<upstream>
 		<remote-id type="pypi">meson</remote-id>
 	</upstream>
diff --git a/metadata/md5-cache/dev-util/meson-0.44.1 b/metadata/md5-cache/dev-util/meson-0.44.1
deleted file mode 100644
index 4596606..0000000
--- a/metadata/md5-cache/dev-util/meson-0.44.1
+++ /dev/null
@@ -1,15 +0,0 @@
-DEFINED_PHASES=compile configure install prepare test
-DEPEND=dev-python/setuptools[python_targets_python3_6(-)?,-python_single_target_python3_6(-)] python_targets_python3_6? ( dev-lang/python:3.6 ) >=dev-lang/python-exec-2:=[python_targets_python3_6(-)?,-python_single_target_python3_6(-)] dev-python/setuptools[python_targets_python3_6(-)?,-python_single_target_python3_6(-)]
-DESCRIPTION=Open source build system
-EAPI=6
-HOMEPAGE=http://mesonbuild.com/
-IUSE=python_targets_python3_6
-KEYWORDS=*
-LICENSE=Apache-2.0
-RDEPEND=python_targets_python3_6? ( dev-lang/python:3.6 ) >=dev-lang/python-exec-2:=[python_targets_python3_6(-)?,-python_single_target_python3_6(-)]
-REQUIRED_USE=|| ( python_targets_python3_6 )
-RESTRICT=test
-SLOT=0
-SRC_URI=mirror://pypi/m/meson/meson-0.44.1.tar.gz
-_eclasses_=distutils-r1	198e3b9ddb55ae36b2a50b07ca2877ef	eutils	06133990e861be0fe60c2b428fd025d9	multibuild	40fe59465edacd730c644ec2bc197809	multilib	b2f01ad412baf81650c23fcf0975fa33	multiprocessing	e32940a7b2a9992ad217eccddb84d548	python-r1	ce1cd23cfdc1848e8e32743efe34f299	python-utils-r1	931c328767d245c08a16a3f87be9ce9c	toolchain-funcs	209edad4a5c4812e7b2f8021650974f0	xdg-utils	ff2ff954e6b17929574eee4efc5152ba
-_md5_=1bd34eb933febec4ee29ba7e41816574
diff --git a/metadata/md5-cache/dev-util/meson-0.54.2 b/metadata/md5-cache/dev-util/meson-0.54.2
new file mode 100644
index 0000000..50dd58b
--- /dev/null
+++ b/metadata/md5-cache/dev-util/meson-0.54.2
@@ -0,0 +1,16 @@
+BDEPEND=python_targets_python3_6? ( dev-lang/python:3.6 ) python_targets_python3_7? ( dev-lang/python:3.7 ) python_targets_python3_8? ( dev-lang/python:3.8 ) >=dev-lang/python-exec-2:=[python_targets_python3_6(-)?,python_targets_python3_7(-)?,python_targets_python3_8(-)?,-python_single_target_python3_6(-),-python_single_target_python3_7(-),-python_single_target_python3_8(-)] dev-python/setuptools[python_targets_python3_6(-)?,python_targets_python3_7(-)?,python_targets_python3_8(-)?,-python_single_target_python3_6(-),-python_single_target_python3_7(-),-python_single_target_python3_8(-)]
+DEFINED_PHASES=compile configure install prepare test
+DEPEND=test? ( dev-libs/glib:2 dev-libs/gobject-introspection dev-util/ninja dev-vcs/git sys-libs/zlib[static-libs(+)] virtual/pkgconfig )
+DESCRIPTION=Open source build system
+EAPI=7
+HOMEPAGE=https://mesonbuild.com/
+IUSE=test python_targets_python3_6 python_targets_python3_7 python_targets_python3_8
+KEYWORDS=*
+LICENSE=Apache-2.0
+RDEPEND=python_targets_python3_6? ( dev-lang/python:3.6 ) python_targets_python3_7? ( dev-lang/python:3.7 ) python_targets_python3_8? ( dev-lang/python:3.8 ) >=dev-lang/python-exec-2:=[python_targets_python3_6(-)?,python_targets_python3_7(-)?,python_targets_python3_8(-)?,-python_single_target_python3_6(-),-python_single_target_python3_7(-),-python_single_target_python3_8(-)] dev-python/setuptools[python_targets_python3_6(-)?,python_targets_python3_7(-)?,python_targets_python3_8(-)?,-python_single_target_python3_6(-),-python_single_target_python3_7(-),-python_single_target_python3_8(-)]
+REQUIRED_USE=|| ( python_targets_python3_6 python_targets_python3_7 python_targets_python3_8 )
+RESTRICT=!test? ( test )
+SLOT=0
+SRC_URI=mirror://pypi/m/meson/meson-0.54.2.tar.gz
+_eclasses_=distutils-r1	198e3b9ddb55ae36b2a50b07ca2877ef	multibuild	40fe59465edacd730c644ec2bc197809	multilib	b2f01ad412baf81650c23fcf0975fa33	multiprocessing	e32940a7b2a9992ad217eccddb84d548	python-r1	ce1cd23cfdc1848e8e32743efe34f299	python-utils-r1	931c328767d245c08a16a3f87be9ce9c	toolchain-funcs	209edad4a5c4812e7b2f8021650974f0
+_md5_=67d8692bd5fc0284749ed4b9b961034f