diff --git a/CHANGELOG.rst b/CHANGELOG.rst index f3192d90c..e279d9e05 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -11,6 +11,19 @@ Changelog +++++++++ +0.22.0 +====== + +- Add support for adding RPATH entries specified with ``install_rpath`` + argument to Meson functions that accept it. +- Add support for removing build RPATH entries added by Meson to allow + executing parts of the project from the build directory. +- Fix corner cases in handling RPATH entries and relocation of shared + libraries distributed as part of Python packages. + +Daniele Nicolodi, Mike Taves, Nathan Goldbaum, Ralf Gommers --- 25-09-2026. + + 0.21.1 ====== diff --git a/mesonpy/__init__.py b/mesonpy/__init__.py index a397db8a1..928d8acb0 100644 --- a/mesonpy/__init__.py +++ b/mesonpy/__init__.py @@ -85,7 +85,7 @@ class InvalidLicenseExpression(Exception): # type: ignore[no-redef] Path = Union[str, os.PathLike[str]] -__version__ = '0.22.0.dev0' +__version__ = '0.23.0.dev0' _PYPROJECT_METADATA_VERSION = tuple(map(int, pyproject_metadata.__version__.split('.')[:2])) diff --git a/mesonpy/_rpath.py b/mesonpy/_rpath.py index 662b99b8a..65039c665 100644 --- a/mesonpy/_rpath.py +++ b/mesonpy/_rpath.py @@ -104,6 +104,10 @@ def set_rpath(filepath: Path, old: list[str], rpath: list[str]) -> None: add = rpath[keep:] if delete: + # ``install_name_tool`` does not accept repeated ``-delete_rpath`` + # arguments. There should not be duplicated in the existing RPATH, + # but the assert should make this occurrence easier to debug. + assert unique(delete) == delete args = [a for p in delete for a in ('-delete_rpath', p)] subprocess.run(['install_name_tool', *args, os.fspath(filepath)], check=True) diff --git a/pyproject.toml b/pyproject.toml index df598d8fc..bffd83490 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,7 @@ requires = [ [project] name = 'meson-python' -version = '0.22.0.dev0' +version = '0.23.0.dev0' description = 'The Python build backend for Meson projects' readme = 'README.rst' requires-python = '>= 3.10'