commit:     41f439c2e9964de598ac976e41dc68924b338bc5
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 24 04:12:53 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Sep 24 04:13:35 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=41f439c2

dev-util/meson: backport LLVM 17 fixes

1.2.2 is hopefully coming Real Soon Now but Eli already pointed out precisely
which PR it is and meson "rebuilds" are extremely cheap so there's no real
reason to not throw it in now.

Closes: https://bugs.gentoo.org/914576
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-util/meson/files/meson-1.2.1-llvm-17.patch |  41 +++++++++
 dev-util/meson/meson-1.2.1-r2.ebuild           | 122 +++++++++++++++++++++++++
 2 files changed, 163 insertions(+)

diff --git a/dev-util/meson/files/meson-1.2.1-llvm-17.patch 
b/dev-util/meson/files/meson-1.2.1-llvm-17.patch
new file mode 100644
index 000000000000..ceee1dcd292b
--- /dev/null
+++ b/dev-util/meson/files/meson-1.2.1-llvm-17.patch
@@ -0,0 +1,41 @@
+https://bugs.gentoo.org/914576
+https://github.com/mesonbuild/meson/commit/d0b09898c703f6c10ec5a6b2aeace0df2e3570aa
+https://github.com/mesonbuild/meson/commit/9c74c73bc7107c794e7f9896cc4220e50ad32bba
+
+From d0b09898c703f6c10ec5a6b2aeace0df2e3570aa Mon Sep 17 00:00:00 2001
+From: Christoph Reiter <[email protected]>
+Date: Sat, 23 Sep 2023 17:21:43 +0200
+Subject: [PATCH] get_llvm_tool_names: add llvm 17
+
+this fixes the "frameworks: 15 llvm" tests with llvm 17
+--- a/mesonbuild/environment.py
++++ b/mesonbuild/environment.py
+@@ -157,6 +157,7 @@ def get_llvm_tool_names(tool: str) -> T.List[str]:
+     # unless it becomes a stable release.
+     suffixes = [
+         '', # base (no suffix)
++        '-17',  '17',
+         '-16',  '16',
+         '-15',  '15',
+         '-14',  '14',
+
+From 9c74c73bc7107c794e7f9896cc4220e50ad32bba Mon Sep 17 00:00:00 2001
+From: Christoph Reiter <[email protected]>
+Date: Sat, 23 Sep 2023 14:10:29 +0200
+Subject: [PATCH] openmp: add 5.1/5.2, fixes openmp with llvm v17
+
+llvm v17 defaults to 5.1 and without this meson fails to find
+openmp: 'ERROR: Dependency "openmp" not found, tried system'
+
+Add 5.2 as well while at it.
+--- a/mesonbuild/dependencies/misc.py
++++ b/mesonbuild/dependencies/misc.py
+@@ -85,6 +85,8 @@ def __init__(self, name: str, env: 'Environment', kwargs: 
T.Dict[str, T.Any]):
+ class OpenMPDependency(SystemDependency):
+     # Map date of specification release (which is the macro value) to a 
version.
+     VERSIONS = {
++        '202111': '5.2',
++        '202011': '5.1',
+         '201811': '5.0',
+         '201611': '5.0-revision1',  # This is supported by ICC 19.x
+         '201511': '4.5',

diff --git a/dev-util/meson/meson-1.2.1-r2.ebuild 
b/dev-util/meson/meson-1.2.1-r2.ebuild
new file mode 100644
index 000000000000..48e351394586
--- /dev/null
+++ b/dev-util/meson/meson-1.2.1-r2.ebuild
@@ -0,0 +1,122 @@
+# Copyright 2016-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} pypy3 )
+DISTUTILS_USE_PEP517=setuptools
+
+if [[ ${PV} = *9999* ]]; then
+       EGIT_REPO_URI="https://github.com/mesonbuild/meson";
+       inherit git-r3
+else
+       inherit pypi
+
+       MY_P=${P/_/}
+       S=${WORKDIR}/${MY_P}
+
+       if [[ ${PV} != *_rc* ]] ; then
+               KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k 
~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos 
~ppc-macos ~x64-macos ~x64-solaris"
+       fi
+fi
+
+inherit bash-completion-r1 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
+       )
+"
+RDEPEND="
+       virtual/pkgconfig
+"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-python-path.patch
+       "${FILESDIR}"/${P}-llvm-17.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[@]}" 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
+               distutils-r1_src_test
+       fi
+}
+
+python_test() {
+       (
+               # test_meson_installed
+               unset PYTHONDONTWRITEBYTECODE
+
+               # https://bugs.gentoo.org/687792
+               unset PKG_CONFIG
+
+               # test_cross_file_system_paths
+               unset XDG_DATA_HOME
+
+               # 'test cases/unit/73 summary' expects 80 columns
+               export COLUMNS=80
+
+               # If JAVA_HOME is not set, meson looks for javac in PATH.
+               # If javac is in /usr/bin, meson assumes /usr/include is a valid
+               # JDK include path. Setting JAVA_HOME works around this broken
+               # autodetection. If no JDK is installed, we should end up with 
an empty
+               # value in JAVA_HOME, and the tests should get skipped.
+               export JAVA_HOME=$(java-config -O 2>/dev/null)
+
+               # Call python3 instead of EPYTHON to satisfy 
test_meson_uninstalled.
+               python3 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
+
+       dobashcomp data/shell-completions/bash/meson
+}

Reply via email to