diff --git a/pkgs/by-name/me/meson/005-boost-Do-not-add-system-paths-on-nix.patch b/pkgs/by-name/me/meson/005-boost-Do-not-add-system-paths-on-nix.patch index 0a2eda9de9ac6..bfc55b3c0ffbc 100644 --- a/pkgs/by-name/me/meson/005-boost-Do-not-add-system-paths-on-nix.patch +++ b/pkgs/by-name/me/meson/005-boost-Do-not-add-system-paths-on-nix.patch @@ -1,13 +1,18 @@ -diff -Naur meson-0.60.2-old/mesonbuild/dependencies/boost.py meson-0.60.2-new/mesonbuild/dependencies/boost.py ---- meson-0.60.2-old/mesonbuild/dependencies/boost.py 2021-11-02 16:58:07.000000000 -0300 -+++ meson-0.60.2-new/mesonbuild/dependencies/boost.py 2021-12-12 19:21:27.895705897 -0300 -@@ -682,16 +682,7 @@ +diff --git a/mesonbuild/dependencies/boost.py b/mesonbuild/dependencies/boost.py +index 11cf0beca..80f950866 100644 +--- a/mesonbuild/dependencies/boost.py ++++ b/mesonbuild/dependencies/boost.py +@@ -687,20 +687,7 @@ class BoostDependency(SystemDependency): else: - tmp = [] # type: T.List[Path] + tmp: T.List[Path] = [] - # Add some default system paths +- if m.is_darwin(): +- tmp.extend([ +- Path('/opt/homebrew/'), # for Apple Silicon MacOS +- Path('/usr/local/opt/boost'), # for Intel Silicon MacOS +- ]) - tmp += [Path('/opt/local')] -- tmp += [Path('/usr/local/opt/boost')] - tmp += [Path('/usr/local')] - tmp += [Path('/usr')] - diff --git a/pkgs/by-name/me/meson/007-Allow-building-via-ninja-12.patch b/pkgs/by-name/me/meson/007-Allow-building-via-ninja-12.patch deleted file mode 100644 index 009d826aab036..0000000000000 --- a/pkgs/by-name/me/meson/007-Allow-building-via-ninja-12.patch +++ /dev/null @@ -1,190 +0,0 @@ -From 8e46d3e37f81bf13f3f62a14fb603feb2e37229d Mon Sep 17 00:00:00 2001 -From: John Titor <50095635+JohnRTitor@users.noreply.github.com> -Date: Fri, 10 May 2024 23:25:58 +0530 -Subject: [PATCH] Fix builds with Ninja 12 and remove a 5 year old workaround. - -Co-authored-by: Jussi Pakkanen -Co-authored-by: Masum Reza ---- - run_project_tests.py | 3 +-- - run_tests.py | 35 ++++++++++------------------------ - unittests/baseplatformtests.py | 34 +++++++++++++++++++++++++++------ - 3 files changed, 39 insertions(+), 33 deletions(-) - -diff --git a/run_project_tests.py b/run_project_tests.py -index a14741364..222e12f74 100755 ---- a/run_project_tests.py -+++ b/run_project_tests.py -@@ -45,7 +45,7 @@ from mesonbuild.coredata import backendlist, version as meson_version - from mesonbuild.modules.python import PythonExternalProgram - from run_tests import ( - get_fake_options, run_configure, get_meson_script, get_backend_commands, -- get_backend_args_for_dir, Backend, ensure_backend_detects_changes, -+ get_backend_args_for_dir, Backend, - guess_backend, handle_meson_skip_test, - ) - -@@ -720,7 +720,6 @@ def _run_test(test: TestDef, - - # Touch the meson.build file to force a regenerate - def force_regenerate() -> None: -- ensure_backend_detects_changes(backend) - os.utime(str(test.path / 'meson.build')) - - # just test building -diff --git a/run_tests.py b/run_tests.py -index 207653219..0c51f3d69 100755 ---- a/run_tests.py -+++ b/run_tests.py -@@ -39,29 +39,27 @@ from mesonbuild.mesonlib import OptionKey, setup_vsenv - if T.TYPE_CHECKING: - from mesonbuild.coredata import SharedCMDOptions - --NINJA_1_9_OR_NEWER = False -+NINJA_1_12_OR_NEWER = False - NINJA_CMD = None - # If we're on CI, detecting ninja for every subprocess unit test that we run is slow - # Optimize this by respecting $NINJA and skipping detection, then exporting it on - # first run. - try: -- NINJA_1_9_OR_NEWER = bool(int(os.environ['NINJA_1_9_OR_NEWER'])) -+ NINJA_1_12_OR_NEWER = bool(int(os.environ['NINJA_1_12_OR_NEWER'])) - NINJA_CMD = [os.environ['NINJA']] - except (KeyError, ValueError): -- # Look for 1.9 to see if https://github.com/ninja-build/ninja/issues/1219 -- # is fixed -- NINJA_CMD = detect_ninja('1.9') -+ # Look for 1.12, which removes -w dupbuild=err -+ NINJA_CMD = detect_ninja('1.12') - if NINJA_CMD is not None: -- NINJA_1_9_OR_NEWER = True -+ NINJA_1_12_OR_NEWER = True - else: -- mlog.warning('Found ninja <1.9, tests will run slower', once=True) - NINJA_CMD = detect_ninja() - - if NINJA_CMD is not None: -- os.environ['NINJA_1_9_OR_NEWER'] = str(int(NINJA_1_9_OR_NEWER)) -+ os.environ['NINJA_1_12_OR_NEWER'] = str(int(NINJA_1_12_OR_NEWER)) - os.environ['NINJA'] = NINJA_CMD[0] - else: -- raise RuntimeError('Could not find Ninja v1.7 or newer') -+ raise RuntimeError('Could not find Ninja.') - - # Emulate running meson with -X utf8 by making sure all open() calls have a - # sane encoding. This should be a python default, but PEP 540 considered it not -@@ -271,7 +269,9 @@ def get_backend_commands(backend: Backend, debug: bool = False) -> \ - test_cmd = cmd + ['-target', 'RUN_TESTS'] - elif backend is Backend.ninja: - global NINJA_CMD -- cmd = NINJA_CMD + ['-w', 'dupbuild=err', '-d', 'explain'] -+ cmd = NINJA_CMD + ['-d', 'explain'] -+ if not NINJA_1_12_OR_NEWER: -+ cmd += ['-w', 'dupbuild=err'] - if debug: - cmd += ['-v'] - clean_cmd = cmd + ['clean'] -@@ -282,21 +282,6 @@ def get_backend_commands(backend: Backend, debug: bool = False) -> \ - raise AssertionError(f'Unknown backend: {backend!r}') - return cmd, clean_cmd, test_cmd, install_cmd, uninstall_cmd - --def ensure_backend_detects_changes(backend: Backend) -> None: -- global NINJA_1_9_OR_NEWER -- if backend is not Backend.ninja: -- return -- need_workaround = False -- # We're using ninja >= 1.9 which has QuLogic's patch for sub-1s resolution -- # timestamps -- if not NINJA_1_9_OR_NEWER: -- mlog.warning('Don\'t have ninja >= 1.9, enabling timestamp resolution workaround', once=True) -- need_workaround = True -- # Increase the difference between build.ninja's timestamp and the timestamp -- # of whatever you changed: https://github.com/ninja-build/ninja/issues/371 -- if need_workaround: -- time.sleep(1) -- - def run_mtest_inprocess(commandlist: T.List[str]) -> T.Tuple[int, str, str]: - out = StringIO() - with mock.patch.object(sys, 'stdout', out), mock.patch.object(sys, 'stderr', out): -diff --git a/unittests/baseplatformtests.py b/unittests/baseplatformtests.py -index 6125ed933..226b2e11e 100644 ---- a/unittests/baseplatformtests.py -+++ b/unittests/baseplatformtests.py -@@ -1,6 +1,8 @@ - # SPDX-License-Identifier: Apache-2.0 - # Copyright 2016-2021 The Meson development team -+# Copyright © 2024 Intel Corporation - -+from __future__ import annotations - from pathlib import PurePath - from unittest import mock, TestCase, SkipTest - import json -@@ -9,6 +11,7 @@ import os - import re - import subprocess - import sys -+import shutil - import tempfile - import typing as T - -@@ -28,7 +31,7 @@ import mesonbuild.modules.pkgconfig - - - from run_tests import ( -- Backend, ensure_backend_detects_changes, get_backend_commands, -+ Backend, get_backend_commands, - get_builddir_target_args, get_meson_script, run_configure_inprocess, - run_mtest_inprocess, handle_meson_skip_test, - ) -@@ -286,11 +289,11 @@ class BasePlatformTests(TestCase): - ''' - return self.build(target=target, override_envvars=override_envvars) - -- def setconf(self, arg, will_build=True): -- if not isinstance(arg, list): -+ def setconf(self, arg: T.Sequence[str], will_build: bool = True) -> None: -+ if isinstance(arg, str): - arg = [arg] -- if will_build: -- ensure_backend_detects_changes(self.backend) -+ else: -+ arg = list(arg) - self._run(self.mconf_command + arg + [self.builddir]) - - def getconf(self, optname: str): -@@ -304,7 +307,6 @@ class BasePlatformTests(TestCase): - windows_proof_rmtree(self.builddir) - - def utime(self, f): -- ensure_backend_detects_changes(self.backend) - os.utime(f) - - def get_compdb(self): -@@ -492,3 +494,23 @@ class BasePlatformTests(TestCase): - - def assertLength(self, val, length): - assert len(val) == length, f'{val} is not length {length}' -+ -+ def copy_srcdir(self, srcdir: str) -> str: -+ """Copies a source tree and returns that copy. -+ -+ ensures that the copied tree is deleted after running. -+ -+ :param srcdir: The locaiton of the source tree to copy -+ :return: The location of the copy -+ """ -+ dest = tempfile.mkdtemp() -+ self.addCleanup(windows_proof_rmtree, dest) -+ -+ # shutil.copytree expects the destinatin directory to not exist, Once -+ # python 3.8 is required the `dirs_exist_ok` parameter negates the need -+ # for this -+ dest = os.path.join(dest, 'subdir') -+ -+ shutil.copytree(srcdir, dest) -+ -+ return dest -\ No newline at end of file --- -2.44.0 - diff --git a/pkgs/by-name/me/meson/package.nix b/pkgs/by-name/me/meson/package.nix index 5598baeb81ef4..d7cb78bff0a37 100644 --- a/pkgs/by-name/me/meson/package.nix +++ b/pkgs/by-name/me/meson/package.nix @@ -18,13 +18,13 @@ let in python3.pkgs.buildPythonApplication rec { pname = "meson"; - version = "1.4.0"; + version = "1.4.1"; src = fetchFromGitHub { owner = "mesonbuild"; repo = "meson"; rev = "refs/tags/${version}"; - hash = "sha256-hRTmKO2E6SIdvAhO7OJtV8dcsGm39c51H+2ZGEkdcFY="; + hash = "sha256-RBE4AUF5fymUA87JEDWtpUFXmVPFzdhZgDI7/kscTx4="; }; patches = [ @@ -68,14 +68,6 @@ python3.pkgs.buildPythonApplication rec { # This edge case is explicitly part of meson but is wrong for nix ./007-freebsd-pkgconfig-path.patch - - # Fix cross-compilation of proc-macro (and mesa) - # https://github.com/mesonbuild/meson/issues/12973 - ./0001-Revert-rust-recursively-pull-proc-macro-dependencies.patch - - # Fix compilation of Meson using Ninja 1.12 - # FIXME: remove in the next point release - ./007-Allow-building-via-ninja-12.patch ]; buildInputs = lib.optionals (python3.pythonOlder "3.9") [