ompss broken spec
viniciusvgp opened this issue · 6 comments
The spec of the ompss package seems to be broken.
Expected Result
ompss and dependencies properly installed
Actual Result
multiple conflicts in dependencies
==> Error: An unsatisfiable version constraint has been detected for spec:
hwloc@2.0.1%gcc@7.3.0~cairo~cuda+libxml2+pci+shared arch=linux-ubuntu18.04-x86_64
^libpciaccess
^libtool
^m4@1.4.18%gcc@7.3.0+sigsegv arch=linux-ubuntu18.04-x86_64
^libsigsegv
^pkgconf@1.4.0%gcc@7.3.0 arch=linux-ubuntu18.04-x86_64
^util-macros
^libxml2@2.9.4%gcc@7.3.0~python arch=linux-ubuntu18.04-x86_64
^xz@5.2.3%gcc@7.3.0 arch=linux-ubuntu18.04-x86_64
^zlib@1.2.11%gcc@7.3.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
while trying to concretize the partial spec:
openmpi@3.0.1%gcc@7.3.0~cuda fabrics= ~java~memchecker~pmi schedulers= ~sqlite3~thread_multiple+vt arch=linux-ubuntu18.04-x86_64
openmpi requires hwloc version :1.999, but spec asked for 2.0.1
Steps to reproduce the issue
$ spack install -v ompss
Information on your system
I have tried with gcc 7.3.0, gcc 6.4.0 and clang 6.0.0 on ubuntu 18.04, 17.10 and 16.04.
This is a known bug in the concretizer. The problem is that ompss
claims to work with any version of hwloc
and mpi
, but openmpi
doesn't work with hwloc@2
. Spack eagerly decides to use the latest version of hwloc
before realizing that openmpi
can't handle it.
To workaround this bug, you can be more explicit about what version of hwloc
you want to use:
$ spack install ompss ^hwloc@1.11.9
In the long run, this bug should be fixed by the new concretizer that @tgamblin is working on.
thank you @adamjstewart
with spack install ompss ^hwloc@1.11.9
I can start the install, but other dependencies (e.g., flex, elfutils) are also broken. I will open another issue since that issues are not related to the concretization step.
I got this error for hwloc 1.999 instead:
==> Warning: Spack will not check SSL certificates. You need to update your Python to enable certificate verification.
==> Cannot find version 1.999 in url_list
==> Error: FetchError: All fetchers failed for spack-stage-hwloc-1.999-cej27e2n5nthw3m7gjisqbnmqjmgk6sb
/data/gpfs/Projects/CSE_hpda/condall/spack/lib/spack/spack/package.py:1110, in do_fetch:
1107 raise FetchError("Will not fetch %s" %
1108 self.spec.format('{name}{@version}'), ck_msg)
1109
>> 1110 self.stage.create()
1111 self.stage.fetch(mirror_only)
1112 self._fetch_time = time.time() - start_time
1113
OpenMPI requires this hwloc version:
openmpi requires hwloc version :1.999, but spec asked for 2.1.0
cc @bvanessen
hwloc 1.999 does not exist, this line has to be modified:
In your local spack repo you can modify the line to see if it corrects the problem. You would want it to read depends_on('hwloc@:1.999', when='@:3.0.0')
That worked for me. I was attempting to install VTK when this issue occurred.
spack install vtk@8.1.2 build_type=Release -opengl2 +osmesa +python
<trimmed>
openmpi requires hwloc version :1.999, but spec asked for 2.2.0
Applying your change solved my issue:
--- a/var/spack/repos/builtin/packages/openmpi/package.py
+++ b/var/spack/repos/builtin/packages/openmpi/package.py
@@ -262,7 +262,7 @@ class Openmpi(AutotoolsPackage):
# "configure: error: OMPI does not currently support hwloc v2 API"
# Future ompi releases may support it, needs to be verified.
# See #7483 for context.
- depends_on('hwloc@:1.999')
+ depends_on('hwloc@:1.999', when='@:3.0.0')
depends_on('hwloc +cuda', when='+cuda')
depends_on('java', when='+java')