From 35c4f614c4255dbd5c8d5ab7ac93c7bd79b5e397 Mon Sep 17 00:00:00 2001 From: Michael Kuhn Date: Fri, 10 Apr 2020 00:11:52 +0200 Subject: meson: Add 0.54.0 (#15952) * meson: Add 0.54.0 This change also improves the rpath patch we are using. Instead of never removing the rpath, we now only keep it if running within Spack to guarantee consistent behavior of Meson. * meson: Make ninja a hard dependency --- var/spack/repos/builtin/packages/meson/package.py | 10 +++++----- .../repos/builtin/packages/meson/rpath-0.49.patch | 20 ++++++++++++++++++++ .../repos/builtin/packages/meson/rpath-0.54.patch | 20 ++++++++++++++++++++ var/spack/repos/builtin/packages/meson/rpath.patch | 11 ----------- 4 files changed, 45 insertions(+), 16 deletions(-) create mode 100644 var/spack/repos/builtin/packages/meson/rpath-0.49.patch create mode 100644 var/spack/repos/builtin/packages/meson/rpath-0.54.patch delete mode 100644 var/spack/repos/builtin/packages/meson/rpath.patch (limited to 'var') diff --git a/var/spack/repos/builtin/packages/meson/package.py b/var/spack/repos/builtin/packages/meson/package.py index 59edec8167..dbda0f5e78 100644 --- a/var/spack/repos/builtin/packages/meson/package.py +++ b/var/spack/repos/builtin/packages/meson/package.py @@ -14,6 +14,7 @@ class Meson(PythonPackage): homepage = "http://mesonbuild.com/" url = "https://github.com/mesonbuild/meson/archive/0.49.0.tar.gz" + version('0.54.0', sha256='95efdbaa7cb3e915ab9a7b26b1412475398fdc3e834842a780f1646c7764f2d9') version('0.53.2', sha256='eab4f5d5dde12d002b7ddd958a9a0658589b63622b6cea2715e0235b95917888') version('0.49.1', sha256='a944e7f25a2bc8e4ba3502ab5835d8a8b8f2530415c9d6fcffb53e0abaea2ced') version('0.49.0', sha256='11bc959e7173e714e4a4e85dd2bd9d0149b0a51c8ba82d5f44cc63735f603c74') @@ -21,13 +22,12 @@ class Meson(PythonPackage): version('0.41.2', sha256='2daf448d3f2479d60e30617451f09bf02d26304dd1bd12ee1de936a53e42c7a4') version('0.41.1', sha256='a48901f02ffeb9ff5cf5361d71b1fca202f9cd72998043ad011fc5de0294cf8b') - variant('ninjabuild', default=True) - - depends_on('python@3:', type=('build', 'run')) + depends_on('python@3.5:', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'run')) - depends_on('ninja', when='+ninjabuild', type=('build', 'run')) + depends_on('ninja', type='run') # By default, Meson strips the rpath on installation. This patch disables # rpath modification completely to make sure that Spack's rpath changes # are not reverted. - patch('rpath.patch', when='@0.49:') + patch('rpath-0.49.patch', when='@0.49:0.53') + patch('rpath-0.54.patch', when='@0.54:') diff --git a/var/spack/repos/builtin/packages/meson/rpath-0.49.patch b/var/spack/repos/builtin/packages/meson/rpath-0.49.patch new file mode 100644 index 0000000000..05b4d142f5 --- /dev/null +++ b/var/spack/repos/builtin/packages/meson/rpath-0.49.patch @@ -0,0 +1,20 @@ +--- a/mesonbuild/scripts/depfixer.py ++++ b/mesonbuild/scripts/depfixer.py +@@ -15,6 +15,7 @@ + + import sys, struct + import shutil, subprocess ++import os + + from ..mesonlib import OrderedSet + +@@ -429,6 +430,9 @@ def fix_jar(fname): + subprocess.check_call(['jar', 'ufm', fname, 'META-INF/MANIFEST.MF']) + + def fix_rpath(fname, new_rpath, final_path, install_name_mappings, verbose=True): ++ # Do not strip rpath when run from within Spack ++ if 'SPACK_RPATH_DIRS' in os.environ: ++ return + # Static libraries never have rpaths + if fname.endswith('.a'): + return diff --git a/var/spack/repos/builtin/packages/meson/rpath-0.54.patch b/var/spack/repos/builtin/packages/meson/rpath-0.54.patch new file mode 100644 index 0000000000..110e9106dd --- /dev/null +++ b/var/spack/repos/builtin/packages/meson/rpath-0.54.patch @@ -0,0 +1,20 @@ +--- a/mesonbuild/scripts/depfixer.py ++++ b/mesonbuild/scripts/depfixer.py +@@ -15,6 +15,7 @@ + + import sys, struct + import shutil, subprocess ++import os + + from ..mesonlib import OrderedSet + +@@ -432,6 +433,9 @@ def fix_jar(fname): + + def fix_rpath(fname, new_rpath, final_path, install_name_mappings, verbose=True): + global INSTALL_NAME_TOOL ++ # Do not strip rpath when run from within Spack ++ if 'SPACK_RPATH_DIRS' in os.environ: ++ return + # Static libraries, import libraries, debug information, headers, etc + # never have rpaths + # DLLs and EXE currently do not need runtime path fixing diff --git a/var/spack/repos/builtin/packages/meson/rpath.patch b/var/spack/repos/builtin/packages/meson/rpath.patch deleted file mode 100644 index 3290c7e824..0000000000 --- a/var/spack/repos/builtin/packages/meson/rpath.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -ru meson-0.49.1.orig/mesonbuild/scripts/depfixer.py meson-0.49.1/mesonbuild/scripts/depfixer.py ---- meson-0.49.1.orig/mesonbuild/scripts/depfixer.py 2019-01-23 17:46:50.000000000 +0100 -+++ meson-0.49.1/mesonbuild/scripts/depfixer.py 2019-01-29 14:38:45.590583458 +0100 -@@ -429,6 +429,7 @@ - subprocess.check_call(['jar', 'ufm', fname, 'META-INF/MANIFEST.MF']) - - def fix_rpath(fname, new_rpath, final_path, install_name_mappings, verbose=True): -+ return - # Static libraries never have rpaths - if fname.endswith('.a'): - return -- cgit v1.2.3-70-g09d2