If one diffs the concretized specs of spack spec dealii@develop and spack spec dealii@develop~python+mpi ^boost+python there is a zero difference apart from the python variant of the root node (dealii) -- this is expected and a desired behaviour. In other words dags should be identical and so their hashes.
However after successfully installing
$ spack install dealii@develop
==> dealii is already installed in /Users/davydden/spack/opt/spack/darwin-elcapitan-x86_64/clang-7.3.0-apple/dealii-develop-if6ztag7fopoe7vcppk2sidqe44j7u7b
the second build actually starts with re-installing hwloc and then, supposedly, openmpi and the rest:
$ spack install dealii@develop~python+mpi ^boost+python
==> Installing dealii
==> metis is already installed in /Users/davydden/spack/opt/spack/darwin-elcapitan-x86_64/clang-7.3.0-apple/metis-5.1.0-sawhq7id7lig7enw7qhexuj423xk6eq7
==> Installing trilinos
==> Installing superlu-dist
==> Installing openmpi
==> Installing hwloc
==> libpciaccess is already installed in /Users/davydden/spack/opt/spack/darwin-elcapitan-x86_64/clang-7.3.0-apple/libpciaccess-0.13.4-plgdrjeje7tk63kv65wuhptmi5rhbugr
==> Can not find version 1.11.3 in url_list
==> Already downloaded /Users/davydden/spack/var/spack/stage/hwloc-1.11.3-jtkwa4li2oxkedg6j4fc2p2in2tlf3hb/hwloc-1.11.3.tar.gz
==> Already staged hwloc-1.11.3-jtkwa4li2oxkedg6j4fc2p2in2tlf3hb in /Users/davydden/spack/var/spack/stage/hwloc-1.11.3-jtkwa4li2oxkedg6j4fc2p2in2tlf3hb
==> No patches needed for hwloc
==> Building hwloc
Something is certainly wrong here.
Could it be that hashes are dependent on normalized specs, which are different here:
Input spec
------------------------------
dealii@develop+mpi~python
^boost+python
Normalized
------------------------------
dealii@develop+mpi~python
^astyle@2.04
^blas
^boost@1.59.0:+iostreams+mpi+python+serialization+system+thread
^bzip2
^mpi
^python
^ncurses
^openssl
^zlib
^readline
^sqlite
^cmake
^lapack
^muparser
^numdiff
^gettext
^suite-sparse
^tbb
vs
Input spec
------------------------------
dealii@develop
Normalized
------------------------------
dealii@develop
^astyle@2.04
^blas
^bzip2
^cmake
^lapack
^muparser
^numdiff
^gettext
^suite-sparse
^tbb
^zlib
Below is the Conretized specs (again, the only difference between the two is ~python vs +python of the root node):
Concretized
------------------------------
dealii@develop%clang@7.3.0-apple+arpack~doc+gsl+hdf5+metis+mpi+netcdf+oce+p4est+petsc~python+slepc+trilinos arch=darwin-elcapitan-x86_64
^arpack-ng@3.4.0%clang@7.3.0-apple+mpi+shared arch=darwin-elcapitan-x86_64
^cmake@3.6.0%clang@7.3.0-apple~doc+ncurses+openssl~qt arch=darwin-elcapitan-x86_64
^ncurses@6.0%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^openssl@1.0.2h%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^zlib@1.2.8%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^openblas@0.2.18%clang@7.3.0-apple+fpic~openmp+shared arch=darwin-elcapitan-x86_64
^openmpi@2.0.0%clang@7.3.0-apple~mxm~pmi~psm~psm2~slurm~sqlite3~thread_multiple~tm~verbs+vt arch=darwin-elcapitan-x86_64
^hwloc@1.11.3%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^libpciaccess@0.13.4%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^libtool@2.4.6%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^m4@1.4.17%clang@7.3.0-apple+sigsegv arch=darwin-elcapitan-x86_64
^libsigsegv@2.10%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^astyle@2.04%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^boost@1.61.0%clang@7.3.0-apple+atomic+chrono+date_time~debug+filesystem~graph~icu_support+iostreams+locale+log+math+mpi+multithreaded+program_options+python+random+regex+serialization+shared+signals+singlethreaded+system+test+thread+timer+wave arch=darwin-elcapitan-x86_64
^bzip2@1.0.6%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^python@2.7.12%clang@7.3.0-apple~tk~ucs4 arch=darwin-elcapitan-x86_64
^readline@6.3%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^sqlite@3.8.5%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^gsl@2.1%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^hdf5@1.10.0-patch1%clang@7.3.0-apple+cxx~debug+fortran+mpi+shared~szip~threadsafe arch=darwin-elcapitan-x86_64
^metis@5.1.0%clang@7.3.0-apple~debug~gdb~idx64~real64+shared arch=darwin-elcapitan-x86_64
^muparser@2.2.5%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^netcdf@4.4.1%clang@7.3.0-apple~hdf4+mpi arch=darwin-elcapitan-x86_64
^curl@7.49.1%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^netcdf-cxx@4.2%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^numdiff@5.8.1%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^gettext@0.19.8.1%clang@7.3.0-apple+bzip2+curses+git~libunistring+libxml2+tar+xz arch=darwin-elcapitan-x86_64
^libxml2@2.9.2%clang@7.3.0-apple~python arch=darwin-elcapitan-x86_64
^xz@5.2.2%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^tar@1.28%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^oce@0.17.2%clang@7.3.0-apple+tbb arch=darwin-elcapitan-x86_64
^tbb@4.4.4%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^p4est@1.1%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^autoconf@2.69%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^automake@1.15%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^lua@5.3.2%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^petsc@3.7.2%clang@7.3.0-apple+boost~complex~debug+double+hdf5+hypre+metis+mpi+mumps+shared+superlu-dist arch=darwin-elcapitan-x86_64
^hypre@2.10.1%clang@7.3.0-apple~internal-superlu~shared arch=darwin-elcapitan-x86_64
^mumps@5.0.1%clang@7.3.0-apple+complex+double+float~idx64~metis+mpi~parmetis~ptscotch~scotch+shared arch=darwin-elcapitan-x86_64
^netlib-scalapack@2.0.2%clang@7.3.0-apple~fpic+shared arch=darwin-elcapitan-x86_64
^parmetis@4.0.3%clang@7.3.0-apple~debug~gdb+shared arch=darwin-elcapitan-x86_64
^superlu-dist@5.0.0%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^slepc@3.7.1%clang@7.3.0-apple+arpack arch=darwin-elcapitan-x86_64
^suite-sparse@4.5.3%clang@7.3.0-apple+tbb arch=darwin-elcapitan-x86_64
^trilinos@12.6.4%clang@7.3.0-apple+boost~debug+hdf5+hypre+metis+mumps~python+shared+suite-sparse+superlu-dist arch=darwin-elcapitan-x86_64
^glm@0.9.7.1%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^matio@1.5.2%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^swig@3.0.10%clang@7.3.0-apple arch=darwin-elcapitan-x86_64
^pcre@8.38%clang@7.3.0-apple+utf arch=darwin-elcapitan-x86_64
If one diffs the concretized specs of
spack spec dealii@developandspack spec dealii@develop~python+mpi ^boost+pythonthere is a zero difference apart from thepythonvariant of the root node (dealii) -- this is expected and a desired behaviour. In other words dags should be identical and so their hashes.However after successfully installing
the second build actually starts with re-installing
hwlocand then, supposedly,openmpiand the rest:Something is certainly wrong here.
Could it be that hashes are dependent on normalized specs, which are different here:
vs
Below is the Conretized specs (again, the only difference between the two is
~pythonvs+pythonof the root node):