diff options
Diffstat (limited to 'var/spack/repos/builtin/packages/rust/package.py')
-rw-r--r-- | var/spack/repos/builtin/packages/rust/package.py | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/var/spack/repos/builtin/packages/rust/package.py b/var/spack/repos/builtin/packages/rust/package.py index 60e1bec023..b13a5057f1 100644 --- a/var/spack/repos/builtin/packages/rust/package.py +++ b/var/spack/repos/builtin/packages/rust/package.py @@ -1,4 +1,4 @@ -# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other +# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) @@ -62,6 +62,7 @@ class Rust(Package): depends_on('python@2.7:2.8', when='@:1.43', type='build') depends_on('gmake@3.81:', type='build') depends_on('cmake@3.4.3:', type='build') + depends_on('ninja', when='@1.48.0:', type='build') depends_on('pkgconfig', type='build') depends_on('openssl') depends_on('libssh2') @@ -87,6 +88,8 @@ class Rust(Package): # The `x.py` bootstrapping script did not exist prior to Rust 1.17. It # would be possible to support both, but for simplicitly, we only support # Rust 1.17 and newer + version('1.51.0', sha256='7a6b9bafc8b3d81bbc566e7c0d1f17c9f499fd22b95142f7ea3a8e4d1f9eb847') + version('1.48.0', sha256='0e763e6db47d5d6f91583284d2f989eacc49b84794d1443355b85c58d67ae43b') version('1.47.0', sha256='3185df064c4747f2c8b9bb8c4468edd58ff4ad6d07880c879ac1b173b768d81d') version('1.46.0', sha256='2d6a3b7196db474ba3f37b8f5d50a1ecedff00738d7846840605b42bfc922728') version('1.45.1', sha256='ea53e6424e3d1fe56c6d77a00e72c5d594b509ec920c5a779a7b8e1dbd74219b') @@ -133,6 +136,18 @@ class Rust(Package): # This dictionary contains a version: hash dictionary for each supported # Rust target. rust_releases = { + '1.51.0': { + 'x86_64-unknown-linux-gnu': '9e125977aa13f012a68fdc6663629c685745091ae244f0587dd55ea4e3a3e42f', + 'powerpc64le-unknown-linux-gnu': '7362f561104d7be4836507d3a53cd39444efcdf065813d559beb1f54ce9f7680', + 'aarch64-unknown-linux-gnu': 'fd31c78fffad52c03cac5a7c1ee5db3f34b2a77d7bc862707c0f71e209180a84', + 'x86_64-apple-darwin': '765212098a415996b767d1e372ce266caf94027402b269fec33291fffc085ca4' + }, + '1.48.0': { + 'x86_64-unknown-linux-gnu': '950420a35b2dd9091f1b93a9ccd5abc026ca7112e667f246b1deb79204e2038b', + 'powerpc64le-unknown-linux-gnu': 'e6457a0214f3b1b04bd5b2618bba7e3826e254216420dede2971b571a1c13bb1', + 'aarch64-unknown-linux-gnu': 'c4769418d8d89f432e4a3a21ad60f99629e4b13bbfc29aef7d9d51c4e8ee8a8a', + 'x86_64-apple-darwin': 'f30ce0162b39dc7cf877020cec64d4826cad50467af493d180b5b28cf5eb50b3' + }, '1.47.0': { 'x86_64-unknown-linux-gnu': 'd0e11e1756a072e8e246b05d54593402813d047d12e44df281fbabda91035d96', 'powerpc64le-unknown-linux-gnu': '5760c3b1897ea70791320c2565f3eef700a3d54059027b84bbe6b8d6157f81c8', @@ -437,9 +452,8 @@ class Rust(Package): ), sha256=rust_sha256, destination='spack_bootstrap_stage', - when='@{version} platform={platform} target={target}'\ - .format( - version=rust_version, + when='@{ver} platform={platform} target={target}'.format( + ver=rust_version, platform=rust_arch['platform'], target=rust_arch['target'] ) @@ -469,6 +483,14 @@ class Rust(Package): return '@{0}:'.format(version) in self.spec + def patch(self): + if self.spec.satisfies('@1.51.0'): + # see 31c93397bde7 upstream + filter_file('panic!(out);', + 'panic!("{}", out);', + 'src/bootstrap/builder.rs', + string=True) + def configure(self, spec, prefix): target = self.get_rust_target() @@ -513,7 +535,7 @@ class Rust(Package): ar = which('ar', required=True) extra_targets = [] - if self.spec.variants['extra_targets'].value != 'none': + if not self.spec.satisfies('extra_targets=none'): extra_targets = list(self.spec.variants['extra_targets'].value) targets = [self.get_rust_target()] + extra_targets |