commit: d204ecea25a36d9a052468ef78db0f526e8085dd Author: Fabian Groffen <grobian <AT> gentoo <DOT> org> AuthorDate: Sun Apr 27 07:36:11 2025 +0000 Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org> CommitDate: Sun Apr 27 07:36:11 2025 +0000 URL: https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=d204ecea
dev-build/meson: drop in favour of gx86 version Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org> dev-build/meson/Manifest | 3 - .../meson/files/meson-1.2.1-python-path.patch | 26 --- .../meson/files/meson-1.4.0-darwin-rpath.patch | 101 ------------ dev-build/meson/meson-1.4.0-r1.ebuild | 181 --------------------- 4 files changed, 311 deletions(-) diff --git a/dev-build/meson/Manifest b/dev-build/meson/Manifest deleted file mode 100644 index d7742feeed..0000000000 --- a/dev-build/meson/Manifest +++ /dev/null @@ -1,3 +0,0 @@ -DIST meson-1.4.0.tar.gz 2224663 BLAKE2B 7f742ef870c182e552c1ff3508d65f251009d610def6a08e01fddb6c6a4ed6d608ead0d52cf8ca7d66b5bd7a4732dccd7ab5d98f141a4a61e275398885f79486 SHA512 2787941fbc77d5ad95011753df52fe39812929a06d84dbce8bdc965c9c1e62fd6bfa819712eb1f5934c2ebe6919a65f7874ecac2caf40d111ea024343108cfbd -DIST meson-1.4.0.tar.gz.asc 833 BLAKE2B 6e4002303da16bcaa3d1d3c76a3485b23174074de2d29bd34347a4671d7fb0f1c0767559ed9267e0f0b52c02638b85a11a5980f4ee188e7e4d35c733b0821c62 SHA512 ea73e72d929bf30d28c033f103fd1d26bac7cef175aabbf9b3a24c7b336682c28f5aae184e04d2189731cf80dd7571939cb02de642bb5b412cea996ca30dfdad -DIST meson-reference-1.4.0.3 339324 BLAKE2B 8ad24592c1a9100832dead97a55d4cb358892fc1cd6aee641f9610cb6a5df211831e6cfc42e047d5e835ed53de1bb9c7d711dd1a0a8cfe18a0f85e92a1a3f925 SHA512 8df06f63db6db01a6c8c0a5b4a8b26c868bb027f26580d290288b1067429a526fb654fae01a45085c1f20ee8dab1b5325e8b2fd285faf175d2fcfc2c704b4768 diff --git a/dev-build/meson/files/meson-1.2.1-python-path.patch b/dev-build/meson/files/meson-1.2.1-python-path.patch deleted file mode 100644 index d6151881f8..0000000000 --- a/dev-build/meson/files/meson-1.2.1-python-path.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 2b33c94e6315e9a397dd48a58a5becb0df3b8aba Mon Sep 17 00:00:00 2001 -From: James Le Cuirot <[email protected]> -Date: Sat, 12 Aug 2023 09:56:44 +0100 -Subject: [PATCH 2/2] python module: Respect PATH when python is not given in - machine file - -We should only fall back to the Python interpreter running Meson itself -if `python3` is not found in the PATH. - -https://github.com/mesonbuild/meson/pull/12116 - -diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py -index 5654e4231..2b2395a9b 100644 ---- a/mesonbuild/modules/python.py -+++ b/mesonbuild/modules/python.py -@@ -381,7 +381,9 @@ class PythonModule(ExtensionModule): - - def _find_installation_impl(self, state: 'ModuleState', display_name: str, name_or_path: str, required: bool) -> MaybePythonProg: - if not name_or_path: -- python = PythonExternalProgram('python3', mesonlib.python_command) -+ python = PythonExternalProgram('python3') -+ if not python.found(): -+ python = PythonExternalProgram('python3', mesonlib.python_command) - else: - tmp_python = ExternalProgram.from_entry(display_name, name_or_path) - python = PythonExternalProgram(display_name, ext_prog=tmp_python) diff --git a/dev-build/meson/files/meson-1.4.0-darwin-rpath.patch b/dev-build/meson/files/meson-1.4.0-darwin-rpath.patch deleted file mode 100644 index abcb9be6bb..0000000000 --- a/dev-build/meson/files/meson-1.4.0-darwin-rpath.patch +++ /dev/null @@ -1,101 +0,0 @@ -From c9565bd44149041d613046d02be4cb9a5bd9ee2b Mon Sep 17 00:00:00 2001 -From: Fabian Groffen <[email protected]> -Date: Wed, 27 Mar 2024 17:20:16 +0000 -Subject: [PATCH] depfixer: change fix_darwin to act like fix_rpathtype_entry - -This somewhat aligns "darwin" (Mach-O) with how ELF RPATHs are treated. -Instead of blindly removing all RPATHs, only remove the ones that are in -the rpath_dirs_to_remove set. This way, RPATHs that were added by the -toolchain or user are left untouched. - -It is important not to remove RPATHs as they may be vital for the -executable at runtime. Issues #12045 and #12288 are examples of this. - -Issue: https://github.com/mesonbuild/meson/issues/12045 -Signed-off-by: Fabian Groffen <[email protected]> ---- - mesonbuild/scripts/depfixer.py | 53 ++++++++++++++-------------------- - 1 file changed, 21 insertions(+), 32 deletions(-) - -diff --git a/mesonbuild/scripts/depfixer.py b/mesonbuild/scripts/depfixer.py -index 61b7ffa642f1..71599f784e73 100644 ---- a/mesonbuild/scripts/depfixer.py -+++ b/mesonbuild/scripts/depfixer.py -@@ -379,7 +379,7 @@ def fix_elf(fname: str, rpath_dirs_to_remove: T.Set[bytes], new_rpath: T.Optiona - # note: e.get_rpath() and e.get_runpath() may be useful - e.fix_rpath(fname, rpath_dirs_to_remove, new_rpath) - --def get_darwin_rpaths_to_remove(fname: str) -> T.List[str]: -+def get_darwin_rpaths(fname: str) -> T.List[str]: - p, out, _ = Popen_safe(['otool', '-l', fname], stderr=subprocess.DEVNULL) - if p.returncode != 0: - raise subprocess.CalledProcessError(p.returncode, p.args, out) -@@ -397,43 +397,32 @@ def get_darwin_rpaths_to_remove(fname: str) -> T.List[str]: - result.append(rp) - return result - --def fix_darwin(fname: str, new_rpath: str, final_path: str, install_name_mappings: T.Dict[str, str]) -> None: -+def fix_darwin(fname: str, rpath_dirs_to_remove: T.Set[bytes], new_rpath: str, final_path: str, install_name_mappings: T.Dict[str, str]) -> None: - try: -- rpaths = get_darwin_rpaths_to_remove(fname) -+ old_rpaths = get_darwin_rpaths(fname) - except subprocess.CalledProcessError: - # Otool failed, which happens when invoked on a - # non-executable target. Just return. - return -+ new_rpaths: OrderedSet[str] = OrderedSet() -+ if new_rpath: -+ new_rpaths.update(new_rpath) -+ # filter out build-only rpath entries, like in -+ # fix_rpathtype_entry -+ remove_rpaths = [x.decode('utf8') for x in rpath_dirs_to_remove] -+ for rpath_dir in old_rpaths: -+ if rpath_dir and rpath_dir not in remove_rpaths: -+ new_rpaths.add(rpath_dir) - try: - args = [] -- if rpaths: -- # TODO: fix this properly, not totally clear how -- # -- # removing rpaths from binaries on macOS has tons of -- # weird edge cases. For instance, if the user provided -- # a '-Wl,-rpath' argument in LDFLAGS that happens to -- # coincide with an rpath generated from a dependency, -- # this would cause installation failures, as meson would -- # generate install_name_tool calls with two identical -- # '-delete_rpath' arguments, which install_name_tool -- # fails on. Because meson itself ensures that it never -- # adds duplicate rpaths, duplicate rpaths necessarily -- # come from user variables. The idea of using OrderedSet -- # is to remove *at most one* duplicate RPATH entry. This -- # is not optimal, as it only respects the user's choice -- # partially: if they provided a non-duplicate '-Wl,-rpath' -- # argument, it gets removed, if they provided a duplicate -- # one, it remains in the final binary. A potentially optimal -- # solution would split all user '-Wl,-rpath' arguments from -- # LDFLAGS, and later add them back with '-add_rpath'. -- for rp in OrderedSet(rpaths): -- args += ['-delete_rpath', rp] -- subprocess.check_call(['install_name_tool', fname] + args, -- stdout=subprocess.DEVNULL, -- stderr=subprocess.DEVNULL) -- args = [] -- if new_rpath: -- args += ['-add_rpath', new_rpath] -+ # compute diff, translate it into -delete_rpath and -add_rpath -+ # calls -+ for path in new_rpaths: -+ if path not in old_rpaths: -+ args += ['-add_rpath', path] -+ for path in old_rpaths: -+ if path not in new_rpaths: -+ args += ['-delete_rpath', path] - # Rewrite -install_name @rpath/libfoo.dylib to /path/to/libfoo.dylib - if fname.endswith('dylib'): - args += ['-id', final_path] -@@ -492,4 +481,4 @@ def fix_rpath(fname: str, rpath_dirs_to_remove: T.Set[bytes], new_rpath: T.Union - if INSTALL_NAME_TOOL: - if isinstance(new_rpath, bytes): - new_rpath = new_rpath.decode('utf8') -- fix_darwin(fname, new_rpath, final_path, install_name_mappings) -+ fix_darwin(fname, rpath_dirs_to_remove, new_rpath, final_path, install_name_mappings) diff --git a/dev-build/meson/meson-1.4.0-r1.ebuild b/dev-build/meson/meson-1.4.0-r1.ebuild deleted file mode 100644 index e29322ee47..0000000000 --- a/dev-build/meson/meson-1.4.0-r1.ebuild +++ /dev/null @@ -1,181 +0,0 @@ -# Copyright 2016-2024 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 - -inherit bash-completion-r1 edo distutils-r1 flag-o-matic toolchain-funcs - -if [[ ${PV} = *9999* ]]; then - EGIT_REPO_URI="https://github.com/mesonbuild/meson" - inherit ninja-utils git-r3 - - BDEPEND=" - ${NINJA_DEPEND} - $(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]') - " - -else - inherit verify-sig - - MY_PV=${PV/_/} - MY_P=${P/_/} - S=${WORKDIR}/${MY_P} - - SRC_URI=" - https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz - verify-sig? ( https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz.asc ) - https://github.com/mesonbuild/meson/releases/download/${MY_PV}/meson-reference.3 -> meson-reference-${MY_PV}.3 - " - BDEPEND="verify-sig? ( sec-keys/openpgp-keys-jpakkane )" - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/jpakkane.gpg - - 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 - -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 - app-alternatives/ninja - dev-vcs/git - sys-libs/zlib[static-libs(+)] - virtual/pkgconfig - ) -" -RDEPEND=" - !<dev-build/muon-0.2.0-r2[man(-)] - virtual/pkgconfig -" - -PATCHES=( - "${FILESDIR}"/${PN}-1.2.1-python-path.patch - "${FILESDIR}"/${PN}-1.4.0-darwin-rpath.patch -) - -src_unpack() { - if [[ ${PV} = *9999* ]]; then - git-r3_src_unpack - else - default - use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.gz{,.asc} - fi -} - -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/_&/' - ) - - 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 -} - -python_check_deps() { - if [[ ${PV} = *9999* ]]; then - python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]" - fi -} - -python_configure_all() { - if [[ ${PV} = *9999* ]]; then - # We use the unsafe_yaml loader because strictyaml is not packaged. In - # theory they produce the same results, but pyyaml is faster and - # without safety checks. - edo ./meson.py setup \ - --prefix "${EPREFIX}/usr" \ - -Dhtml=false \ - -Dunsafe_yaml=true \ - docs/ docs/builddir - fi -} - -python_compile_all() { - if [[ ${PV} = *9999* ]]; then - eninja -C docs/builddir - fi -} - -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() { - ( - # meson has its own tests for LTO support. We don't need to verify that - # all tests work when they happen to use it. And in particular, this - # breaks rust. - filter-lto - - # remove unwanted python_wrapper_setup contents - # We actually do want to non-error if python2 is installed and tested. - remove="${T}/${EPYTHON}/bin:" - PATH=${PATH/${remove}/} - - # 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) - - ${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 - - dobashcomp data/shell-completions/bash/meson - - if [[ ${PV} = *9999* ]]; then - DESTDIR="${ED}" eninja -C docs/builddir install - else - newman "${DISTDIR}"/meson-reference-${PV}.3 meson-reference.3 - fi -}
