In working on a new unittest for the checking spec install status, I discovered that when clingo concretizes a spec with an
external_path defined that information is lost. This appears to happen because the spec objects generated by the Clingo solver don't maintain that information, and the original spec has those attributes overwritten by the concretized Spec via the ._dup() method. It's likely that other crucial information from the original Spec isn't preserved as well.
Steps to reproduce the issue
While using the clingo concretizer:
spec = Spec("myspec", external_path='/foo/bar')
print(spec.external_path, spec.external)
spec.concretize()
print(spec.external_path, spec.external)
Error Message
N/A
Information on your system
Clingo doesn't bootstrap on my system, so I ended up debugging this slowly through github unittests.
Additional information
In working on a new unittest for the checking spec install status, I discovered that when clingo concretizes a spec with an
external_path defined that information is lost. This appears to happen because the spec objects generated by the Clingo solver don't maintain that information, and the original spec has those attributes overwritten by the concretized Spec via the
._dup()method. It's likely that other crucial information from the original Spec isn't preserved as well.Steps to reproduce the issue
While using the clingo concretizer:
Error Message
N/A
Information on your system
Clingo doesn't bootstrap on my system, so I ended up debugging this slowly through github unittests.
Additional information
spack debug reportand reported the version of Spack/Python/Platform