-
Notifications
You must be signed in to change notification settings - Fork 2.4k
File conflicts can occur in views if the conflicting packages do not cause concretization errors #12482
Description
I've noticed some unexpected behavior if an environment (or rather its view) contains two packages that have file conflicts, but do not conflict themselves. More specifically, metis and scotch^+metis both provide include/metis.h but do not conflict otherwise - it's perfectly possible to add both to an environment and install it, without Spack complaining at all.
However, the files are not directly compatible and while METIS' metis.h should be useable with scotchmetis (that's the recommended way by Scotch), the converse is not true and SCOTCH's metis.h does not contain all functions METIS offers, rendering METIS impaired.
Additionally, if you remove scotch from the environment afterwards, the conflicting files will be deleted and any install command afterwards will error like this:
===> Error: /mypathtospack/var/spack/environments/myenv/.spack-env/include/metis.h is not a link tree!
This seems to be a result of spack assuming that these files should exist if metis were installed properly. The situation is identical between parmetis and spack with their respective overlap.
Repro:
spack env create myenv
spack env activate myenv
spack add metis parmetis scotch
spack install
Metadata
Metadata
Assignees
Labels
Type
Projects
Status