concretizer: call inject_patches_variants() on the roots of the specs (#20203)
As was done in the old concretizer. Fixes an issue where conditionally patched dependencies did not show up in spec (gdal+jasper)
This commit is contained in:
parent
b78cc5b43d
commit
92de484228
@ -1827,8 +1827,8 @@ def build_specs(self, function_tuples):
|
||||
# fix flags after all specs are constructed
|
||||
self.reorder_flags()
|
||||
|
||||
for s in self._specs.values():
|
||||
spack.spec.Spec.inject_patches_variant(s)
|
||||
for root in set([spec.root for spec in self._specs.values()]):
|
||||
spack.spec.Spec.inject_patches_variant(root)
|
||||
|
||||
# Add external paths to specs with just external modules
|
||||
for s in self._specs.values():
|
||||
|
@ -23,7 +23,8 @@ def test_immediate_dependents(mock_packages):
|
||||
'libdwarf',
|
||||
'patch-a-dependency',
|
||||
'patch-several-dependencies',
|
||||
'quantum-espresso'
|
||||
'quantum-espresso',
|
||||
'conditionally-patch-dependency'
|
||||
])
|
||||
|
||||
|
||||
@ -38,7 +39,8 @@ def test_transitive_dependents(mock_packages):
|
||||
'multivalue-variant',
|
||||
'singlevalue-variant-dependent',
|
||||
'patch-a-dependency', 'patch-several-dependencies',
|
||||
'quantum-espresso'
|
||||
'quantum-espresso',
|
||||
'conditionally-patch-dependency'
|
||||
])
|
||||
|
||||
|
||||
|
@ -967,3 +967,11 @@ def test_custom_compiler_version(self):
|
||||
|
||||
s = Spec('a %gcc@foo os=redhat6').concretized()
|
||||
assert '%gcc@foo' in s
|
||||
|
||||
def test_all_patches_applied(self):
|
||||
uuidpatch = 'a60a42b73e03f207433c5579de207c6ed61d58e4d12dd3b5142eb525728d89ea'
|
||||
localpatch = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
|
||||
spec = spack.spec.Spec('conditionally-patch-dependency+jasper')
|
||||
spec.concretize()
|
||||
assert ((uuidpatch, localpatch) ==
|
||||
spec['libelf'].variants['patches'].value)
|
||||
|
@ -0,0 +1,16 @@
|
||||
# Copyright 2013-2020 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)
|
||||
|
||||
|
||||
class ConditionallyPatchDependency(Package):
|
||||
"""Package that conditionally requries a patched version
|
||||
of a dependency."""
|
||||
|
||||
homepage = "http://www.example.com"
|
||||
url = "http://www.example.com/patch-a-dependency-1.0.tar.gz"
|
||||
|
||||
version('1.0', '0123456789abcdef0123456789abcdef')
|
||||
variant('jasper', default=False)
|
||||
depends_on('libelf@0.8.10', patches=[patch('uuid.patch')], when='+jasper')
|
@ -0,0 +1 @@
|
||||
patchadep
|
Loading…
Reference in New Issue
Block a user