diff options
-rw-r--r-- | lib/spack/spack/directory_layout.py | 2 | ||||
-rw-r--r-- | lib/spack/spack/package.py | 5 | ||||
-rw-r--r-- | var/spack/packages/python/package.py | 4 |
3 files changed, 8 insertions, 3 deletions
diff --git a/lib/spack/spack/directory_layout.py b/lib/spack/spack/directory_layout.py index c2e2ea4deb..fe02fff3b0 100644 --- a/lib/spack/spack/directory_layout.py +++ b/lib/spack/spack/directory_layout.py @@ -182,7 +182,7 @@ class YamlDirectoryLayout(DirectoryLayout): @property def hidden_file_paths(self): - return (self.metadata_dir) + return (self.metadata_dir,) def relative_path_for_spec(self, spec): diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py index b0bb1fb7bc..9ddd55f5c0 100644 --- a/lib/spack/spack/package.py +++ b/lib/spack/spack/package.py @@ -984,8 +984,10 @@ class Package(object): self._sanity_check_extension() force = kwargs.get('force', False) - spack.install_layout.check_extension_conflict(self.extendee_spec, self.spec) + spack.install_layout.check_extension_conflict( + self.extendee_spec, self.spec) + # Activate any package dependencies that are also extensions. if not force: for spec in self.spec.traverse(root=False): if spec.package.extends(self.extendee_spec): @@ -1016,6 +1018,7 @@ class Package(object): conflict = tree.find_conflict(self.prefix, ignore=ignore) if conflict: raise ExtensionConflictError(conflict) + tree.merge(self.prefix, ignore=ignore) diff --git a/var/spack/packages/python/package.py b/var/spack/packages/python/package.py index 31a12ea653..797900527d 100644 --- a/var/spack/packages/python/package.py +++ b/var/spack/packages/python/package.py @@ -139,7 +139,9 @@ class Python(Package): def activate(self, ext_pkg, **args): - args.update(ignore=self.python_ignore(ext_pkg, args)) + ignore=self.python_ignore(ext_pkg, args) + args.update(ignore=ignore) + super(Python, self).activate(ext_pkg, **args) exts = spack.install_layout.extension_map(self.spec) |