summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Becker <becker33@llnl.gov>2022-11-11 09:59:23 -0800
committerGitHub <noreply@github.com>2022-11-11 10:59:23 -0700
commit2d2c5916337099431a9efca0c4594fc36fc3a609 (patch)
treeb90aac5a65da315664451b46e9ba5bcc416982a3
parentd49c992b230f544deeed13fb193d779a53f2f201 (diff)
downloadspack-2d2c5916337099431a9efca0c4594fc36fc3a609.tar.gz
spack-2d2c5916337099431a9efca0c4594fc36fc3a609.tar.bz2
spack-2d2c5916337099431a9efca0c4594fc36fc3a609.tar.xz
spack-2d2c5916337099431a9efca0c4594fc36fc3a609.zip
ensure view projections for extensions always point to extendee (#33848)
-rw-r--r--lib/spack/spack/filesystem_view.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/spack/spack/filesystem_view.py b/lib/spack/spack/filesystem_view.py
index f8cc382ef7..553d0b4108 100644
--- a/lib/spack/spack/filesystem_view.py
+++ b/lib/spack/spack/filesystem_view.py
@@ -493,9 +493,14 @@ class YamlFilesystemView(FilesystemView):
Relies on the ordering of projections to avoid ambiguity.
"""
spec = spack.spec.Spec(spec)
- proj = spack.projections.get_projection(self.projections, spec)
+ locator_spec = spec
+
+ if spec.package.extendee_spec:
+ locator_spec = spec.package.extendee_spec
+
+ proj = spack.projections.get_projection(self.projections, locator_spec)
if proj:
- return os.path.join(self._root, spec.format(proj))
+ return os.path.join(self._root, locator_spec.format(proj))
return self._root
def get_all_specs(self):
@@ -743,6 +748,10 @@ class SimpleFilesystemView(FilesystemView):
Relies on the ordering of projections to avoid ambiguity.
"""
spec = spack.spec.Spec(spec)
+
+ if spec.package.extendee_spec:
+ spec = spec.package.extendee_spec
+
proj = spack.projections.get_projection(self.projections, spec)
if proj:
return os.path.join(self._root, spec.format(proj))