summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/spec.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py
index af282e4425..7ab0ffa5fd 100644
--- a/lib/spack/spack/spec.py
+++ b/lib/spack/spack/spec.py
@@ -1019,7 +1019,9 @@ class SpecBuildInterface(lang.ObjectWrapper):
def __init__(self, spec, name, query_parameters):
super(SpecBuildInterface, self).__init__(spec)
-
+ # Adding new attributes goes after super() call since the ObjectWrapper
+ # resets __dict__ to behave like the passed object
+ self.token = spec, name, query_parameters
is_virtual = spack.repo.path.is_virtual(name)
self.last_query = QueryState(
name=name,
@@ -1027,6 +1029,9 @@ class SpecBuildInterface(lang.ObjectWrapper):
isvirtual=is_virtual
)
+ def __reduce__(self):
+ return SpecBuildInterface, self.token
+
@lang.lazy_lexicographic_ordering(set_hash=False)
class Spec(object):