Tutorial setup

If you have not done the prior sections, you’ll need to set Spack up like this:

git clone https://github.com/spack/spack
. spack/share/spack/setup-env.sh
spack tutorial

See the Basic Installation Tutorial for full details on setup. For more help join us in the #tutorial channel on Slack – get an invitation at spackpm.herokuapp.com

Stacks Tutorial

So far, we’ve talked about Spack environments in the context of a unified user environment or development environment. But environments in Spack have much broader capabilities. In this tutorial we will consider how to use a specialized sort of Spack environment, that we call a Spack stack, to manage large deployments of software using Spack.

Spec matrices

In a typical Spack environment for a single user, a simple list of specs is sufficient. For software deployment, however, we often have a set of packages we want to install across a wide range of compilers. The simplest way to express this in Spack is through a matrix. Let’s go back to our code directory from the environments tutorial, activate our environment, and edit our spack.yaml file again.

$ cd ~/code
$ spack env activate .
$ spack config edit
# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration setings.
spack:
  # add package specs to the `specs` list
  specs:
    - matrix:
        - [boost, trilinos+hdf5]
        - ['%gcc', '%clang']

  view: False

For now, we’ll avoid the view directive. We’ll come back to this later.

This would lead to a lot of install time, so for the sake of time we’ll just concretize and look at the concrete specs for the rest of this section.

$ spack concretize
==> Starting concretization pool with 4 processes
==> Environment concretized in 14.58 seconds.
==> Concretized boost%gcc
 -   xclvzai  boost@1.77.0%gcc@7.5.0+atomic+chrono~clanglibcpp~container~context~coroutine+date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math~mpi+multithreaded~numpy~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout+wave cxxstd=98 patches=93f4aad8f88d1437e50d95a2d066390ef3753b99ef5de24f7a46bc083bd6df06 visibility=hidden arch=linux-ubuntu18.04-x86_64
[+]  55rtzz4	  ^bzip2@1.0.8%gcc@7.5.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
[+]  kg5jymj	      ^diffutils@3.8%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  qi7dxj6		  ^libiconv@1.16%gcc@7.5.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  3rlgy7y	  ^zlib@1.2.11%gcc@7.5.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64

==> Concretized boost%clang
 -   2ljfhqt  boost@1.77.0%clang@7.0.0+atomic+chrono~clanglibcpp~container~context~coroutine+date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math~mpi+multithreaded~numpy~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout+wave cxxstd=98 patches=93f4aad8f88d1437e50d95a2d066390ef3753b99ef5de24f7a46bc083bd6df06 visibility=hidden arch=linux-ubuntu18.04-x86_64
 -   dskruzj	  ^bzip2@1.0.8%clang@7.0.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
 -   23gano6	      ^diffutils@3.8%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   mgvvs5x		  ^libiconv@1.16%clang@7.0.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  atdrszv	  ^zlib@1.2.11%clang@7.0.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64

==> Concretized trilinos%gcc+hdf5
 -   sl6oq7j  trilinos@13.0.1%gcc@7.5.0~adios2+amesos+amesos2+anasazi+aztec~basker+belos~boost~chaco~complex~cuda~cuda_rdc~debug~dtk+epetra+epetraext~epetraextbtf~epetraextexperimental~epetraextgraphreorderings~exodus+explicit_template_instantiation~float+fortran~gtest+hdf5~hypre+ifpack+ifpack2~intrepid~intrepid2~ipo~isorropia+kokkos~mesquite~minitensor+ml+mpi+muelu~mumps~nox~openmp~phalanx~piro~python~rol~rythmos+sacado~scorec~shards+shared~shylu~stk~stokhos~stratimikos~strumpack~suite-sparse~superlu~superlu-dist~teko~tempus+tpetra~trilinoscouplings~wrapper~x11~zoltan~zoltan2 build_type=RelWithDebInfo cuda_arch=none cxxstd=14 gotype=long_long arch=linux-ubuntu18.04-x86_64
[+]  anj6kcx	  ^cmake@3.21.4%gcc@7.5.0~doc+ncurses+openssl+ownlibs~qt build_type=Release arch=linux-ubuntu18.04-x86_64
[+]  d34lizg	      ^ncurses@6.2%gcc@7.5.0~symlinks+termlib abi=none arch=linux-ubuntu18.04-x86_64
[+]  ucp6vz7		  ^pkgconf@1.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  lygx3cq	      ^openssl@1.1.1l%gcc@7.5.0~docs certs=system arch=linux-ubuntu18.04-x86_64
[+]  672tzld		  ^perl@5.34.0%gcc@7.5.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
[+]  ue5lnfm		      ^berkeley-db@18.1.40%gcc@7.5.0+cxx~docs+stl patches=b231fcc4d5cff05e5c3a4814f6a5af0e9a966428dc2176540d2c05aff41de522 arch=linux-ubuntu18.04-x86_64
[+]  55rtzz4		      ^bzip2@1.0.8%gcc@7.5.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
[+]  kg5jymj			  ^diffutils@3.8%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  qi7dxj6			      ^libiconv@1.16%gcc@7.5.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  oftaepj		      ^gdbm@1.19%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  27u6g7p			  ^readline@8.1%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  3rlgy7y		      ^zlib@1.2.11%gcc@7.5.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
 -   o4l7rdb	  ^hdf5@1.10.7%gcc@7.5.0~cxx~fortran+hl~ipo~java+mpi+shared~szip~threadsafe+tools api=default build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
[+]  p5qicac	      ^openmpi@4.1.1%gcc@7.5.0~atomics~cuda~cxx~cxx_exceptions+gpfs~internal-hwloc~java~legacylaunchers~lustre~memchecker~pmi~pmix~singularity~sqlite3+static~thread_multiple+vt+wrapper-rpath fabrics=none schedulers=none arch=linux-ubuntu18.04-x86_64
[+]  gedgnpg		  ^hwloc@2.6.0%gcc@7.5.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~opencl+pci~rocm+shared arch=linux-ubuntu18.04-x86_64
[+]  ryhmw2g		      ^libpciaccess@0.16%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2kia6gf			  ^libtool@2.4.6%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ybvezwz			      ^m4@1.4.19%gcc@7.5.0+sigsegv patches=9dc5fbd0d5cb1037ab1e6d0ecc74a30df218d0a94bdd5a02759a97f62daca573,bfdffa7c2eb01021d5849b36972c069693654ad826c1a20b53534009a4ec7a89 arch=linux-ubuntu18.04-x86_64
[+]  g2vgcne				  ^libsigsegv@2.13%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  h5cf2g4			  ^util-macros@1.19.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2hw4ddh		      ^libxml2@2.9.12%gcc@7.5.0~python arch=linux-ubuntu18.04-x86_64
[+]  nplaaps			  ^xz@5.2.5%gcc@7.5.0~pic libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  xai6pyc		  ^libevent@2.1.12%gcc@7.5.0+openssl arch=linux-ubuntu18.04-x86_64
[+]  3opot4q		  ^numactl@2.0.14%gcc@7.5.0 patches=4e1d78cbbb85de625bad28705e748856033eaafab92a66dffd383a3d7e00cc94,62fc8a8bf7665a60e8f4c93ebbd535647cebf74198f7afafec4c085a8825c006,ff37630df599cfabf0740518b91ec8daaf18e8f288b19adaae5364dc1f6b2296 arch=linux-ubuntu18.04-x86_64
[+]  7hurwa7		      ^autoconf@2.69%gcc@7.5.0 patches=35c449281546376449766f92d49fc121ca50e330e60fefcfc9be2af3253082c2,7793209b33013dc0f81208718c68440c5aae80e7a1c4b8d336e382525af791a7,a49dd5bac3b62daa0ff688ab4d508d71dbd2f4f8d7e2a02321926346161bf3ee arch=linux-ubuntu18.04-x86_64
[+]  6rqxcsn		      ^automake@1.16.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ux36qlb		  ^openssh@8.7p1%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  3lzuqwn		      ^libedit@3.1-20210216%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  euw6zdu	  ^openblas@0.3.18%gcc@7.5.0~bignuma~consistent_fpcsr~ilp64+locking+pic+shared threads=none arch=linux-ubuntu18.04-x86_64

==> Concretized trilinos%clang+hdf5
 -   3wvgcj7  trilinos@13.0.1%clang@7.0.0~adios2+amesos+amesos2+anasazi+aztec~basker+belos~boost~chaco~complex~cuda~cuda_rdc~debug~dtk+epetra+epetraext~epetraextbtf~epetraextexperimental~epetraextgraphreorderings~exodus+explicit_template_instantiation~float+fortran~gtest+hdf5~hypre+ifpack+ifpack2~intrepid~intrepid2~ipo~isorropia+kokkos~mesquite~minitensor+ml+mpi+muelu~mumps~nox~openmp~phalanx~piro~python~rol~rythmos+sacado~scorec~shards+shared~shylu~stk~stokhos~stratimikos~strumpack~suite-sparse~superlu~superlu-dist~teko~tempus+tpetra~trilinoscouplings~wrapper~x11~zoltan~zoltan2 build_type=RelWithDebInfo cuda_arch=none cxxstd=14 gotype=long_long arch=linux-ubuntu18.04-x86_64
 -   shvszqm	  ^cmake@3.21.4%clang@7.0.0~doc+ncurses+openssl+ownlibs~qt build_type=Release arch=linux-ubuntu18.04-x86_64
 -   z5r77u3	      ^ncurses@6.2%clang@7.0.0~symlinks+termlib abi=none arch=linux-ubuntu18.04-x86_64
 -   qbshn4o		  ^pkgconf@1.8.0%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   juwdmb6	      ^openssl@1.1.1l%clang@7.0.0~docs certs=system arch=linux-ubuntu18.04-x86_64
 -   ib4owzp		  ^perl@5.34.0%clang@7.0.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
 -   mkrgho3		      ^berkeley-db@18.1.40%clang@7.0.0+cxx~docs+stl patches=b231fcc4d5cff05e5c3a4814f6a5af0e9a966428dc2176540d2c05aff41de522 arch=linux-ubuntu18.04-x86_64
 -   dskruzj		      ^bzip2@1.0.8%clang@7.0.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
 -   23gano6			  ^diffutils@3.8%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   mgvvs5x			      ^libiconv@1.16%clang@7.0.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
 -   fsnyyd5		      ^gdbm@1.19%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   mxotfvm			  ^readline@8.1%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
[+]  atdrszv		      ^zlib@1.2.11%clang@7.0.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
 -   b5i56d7	  ^hdf5@1.10.7%clang@7.0.0~cxx~fortran+hl~ipo~java+mpi+shared~szip~threadsafe+tools api=default build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
 -   bmmbcmh	      ^openmpi@4.1.1%clang@7.0.0~atomics~cuda~cxx~cxx_exceptions+gpfs~internal-hwloc~java~legacylaunchers~lustre~memchecker~pmi~pmix~singularity~sqlite3+static~thread_multiple+vt+wrapper-rpath fabrics=none schedulers=none arch=linux-ubuntu18.04-x86_64
 -   zu2prep		  ^hwloc@2.6.0%clang@7.0.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~opencl+pci~rocm+shared arch=linux-ubuntu18.04-x86_64
 -   qc7w5b4		      ^libpciaccess@0.16%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   aopb6i6			  ^libtool@2.4.6%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   qwhwlqn			      ^m4@1.4.19%clang@7.0.0+sigsegv patches=9dc5fbd0d5cb1037ab1e6d0ecc74a30df218d0a94bdd5a02759a97f62daca573,bfdffa7c2eb01021d5849b36972c069693654ad826c1a20b53534009a4ec7a89 arch=linux-ubuntu18.04-x86_64
 -   qymd6m4				  ^libsigsegv@2.13%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   ho4twjl			  ^util-macros@1.19.3%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   u5753la		      ^libxml2@2.9.12%clang@7.0.0~python arch=linux-ubuntu18.04-x86_64
 -   kimktcl			  ^xz@5.2.5%clang@7.0.0~pic libs=shared,static arch=linux-ubuntu18.04-x86_64
 -   hnofd3x		  ^libevent@2.1.12%clang@7.0.0+openssl arch=linux-ubuntu18.04-x86_64
 -   74oetav		  ^numactl@2.0.14%clang@7.0.0 patches=4e1d78cbbb85de625bad28705e748856033eaafab92a66dffd383a3d7e00cc94,62fc8a8bf7665a60e8f4c93ebbd535647cebf74198f7afafec4c085a8825c006,ff37630df599cfabf0740518b91ec8daaf18e8f288b19adaae5364dc1f6b2296 arch=linux-ubuntu18.04-x86_64
 -   53ubokt		      ^autoconf@2.69%clang@7.0.0 patches=35c449281546376449766f92d49fc121ca50e330e60fefcfc9be2af3253082c2,7793209b33013dc0f81208718c68440c5aae80e7a1c4b8d336e382525af791a7,a49dd5bac3b62daa0ff688ab4d508d71dbd2f4f8d7e2a02321926346161bf3ee arch=linux-ubuntu18.04-x86_64
 -   eysqrgt		      ^automake@1.16.3%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   n5g4ezp		  ^openssh@8.7p1%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   xpjifpx		      ^libedit@3.1-20210216%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   u6b2fi4	  ^openblas@0.3.18%clang@7.0.0~bignuma~consistent_fpcsr~ilp64+locking+pic+shared threads=none arch=linux-ubuntu18.04-x86_64

$ spack find -c
==> In environment /home/spack/code
==> Root specs
-- no arch / clang ----------------------------------------------
boost%clang  trilinos%clang +hdf5

-- no arch / gcc ------------------------------------------------
boost%gcc  trilinos%gcc +hdf5

==> Concretized roots
-- linux-ubuntu18.04-x86_64 / clang@7.0.0 -----------------------
boost@1.77.0  trilinos@13.0.1

-- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
boost@1.77.0  trilinos@13.0.1

==> 29 installed packages
-- linux-ubuntu18.04-x86_64 / clang@7.0.0 -----------------------
zlib@1.2.11

-- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
autoconf@2.69	     cmake@3.21.4   libedit@3.1-20210216  libsigsegv@2.13  ncurses@6.2	    openssh@8.7p1   readline@8.1
automake@1.16.3      diffutils@3.8  libevent@2.1.12	  libtool@2.4.6    numactl@2.0.14   openssl@1.1.1l  util-macros@1.19.3
berkeley-db@18.1.40  gdbm@1.19	    libiconv@1.16	  libxml2@2.9.12   openblas@0.3.18  perl@5.34.0     xz@5.2.5
bzip2@1.0.8	     hwloc@2.6.0    libpciaccess@0.16	  m4@1.4.19	   openmpi@4.1.1    pkgconf@1.8.0   zlib@1.2.11

The matrix operation does exactly what it looks like it does. It takes the spec constraints in any number of lists and takes their inner product. Here, we get boost, trilinos, and openmpi, each compiled with both gcc and clang. Note that the compiler constraints are prefaced with the % sigil, as they would be on the command line.

Note

The original concretizer allowed to use dependencies and variants in a matrix regardless of whether they apply to every package in the matrix. This cannot be done yet with clingo, since the algorithm employed previously relied on the iterative construction of the specs in the environment, but will be added back in future releases.

We can also exclude some values from a matrix.

# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration setings.
spack:
  # add package specs to the `specs` list
  specs:
    - matrix:
        - [boost, trilinos+hdf5]
        - [^mpich, ^mvapich2 fabrics=mrail]
        - ['%gcc', '%clang']
      exclude:
        - '%clang ^mvapich2'

  view: False

This will exclude all specs built with clang that depend on mvapich2. We will now see 3 configurations of trilinos.

$ spack concretize -f
==> Starting concretization pool with 6 processes
==> Environment concretized in 17.11 seconds.
==> Concretized boost%gcc ^mpich
 -   bsbioww  boost@1.77.0%gcc@7.5.0+atomic+chrono~clanglibcpp~container~context~coroutine+date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math+mpi+multithreaded~numpy~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout+wave cxxstd=98 patches=93f4aad8f88d1437e50d95a2d066390ef3753b99ef5de24f7a46bc083bd6df06 visibility=hidden arch=linux-ubuntu18.04-x86_64
[+]  55rtzz4	  ^bzip2@1.0.8%gcc@7.5.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
[+]  kg5jymj	      ^diffutils@3.8%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  qi7dxj6		  ^libiconv@1.16%gcc@7.5.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  idedbjn	  ^mpich@3.4.2%gcc@7.5.0~argobots+fortran+hwloc+hydra+libxml2+pci+romio~slurm~verbs+wrapperrpath device=ch4 netmod=ofi pmi=pmi arch=linux-ubuntu18.04-x86_64
[+]  3susxc4	      ^findutils@4.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  gedgnpg	      ^hwloc@2.6.0%gcc@7.5.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~opencl+pci~rocm+shared arch=linux-ubuntu18.04-x86_64
[+]  ryhmw2g		  ^libpciaccess@0.16%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2kia6gf		      ^libtool@2.4.6%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ybvezwz			  ^m4@1.4.19%gcc@7.5.0+sigsegv patches=9dc5fbd0d5cb1037ab1e6d0ecc74a30df218d0a94bdd5a02759a97f62daca573,bfdffa7c2eb01021d5849b36972c069693654ad826c1a20b53534009a4ec7a89 arch=linux-ubuntu18.04-x86_64
[+]  g2vgcne			      ^libsigsegv@2.13%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ucp6vz7		      ^pkgconf@1.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  h5cf2g4		      ^util-macros@1.19.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2hw4ddh		  ^libxml2@2.9.12%gcc@7.5.0~python arch=linux-ubuntu18.04-x86_64
[+]  nplaaps		      ^xz@5.2.5%gcc@7.5.0~pic libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  3rlgy7y		      ^zlib@1.2.11%gcc@7.5.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
[+]  d34lizg		  ^ncurses@6.2%gcc@7.5.0~symlinks+termlib abi=none arch=linux-ubuntu18.04-x86_64
[+]  kwxupt5	      ^libfabric@1.13.2%gcc@7.5.0~debug~kdreg fabrics=sockets,tcp,udp arch=linux-ubuntu18.04-x86_64

==> Concretized boost%clang ^mpich
 -   xdbqyvz  boost@1.77.0%clang@7.0.0+atomic+chrono~clanglibcpp~container~context~coroutine+date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math+mpi+multithreaded~numpy~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout+wave cxxstd=98 patches=93f4aad8f88d1437e50d95a2d066390ef3753b99ef5de24f7a46bc083bd6df06 visibility=hidden arch=linux-ubuntu18.04-x86_64
 -   dskruzj	  ^bzip2@1.0.8%clang@7.0.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
 -   23gano6	      ^diffutils@3.8%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   mgvvs5x		  ^libiconv@1.16%clang@7.0.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
 -   gm23ibl	  ^mpich@3.4.2%clang@7.0.0~argobots+fortran+hwloc+hydra+libxml2+pci+romio~slurm~verbs+wrapperrpath device=ch4 netmod=ofi pmi=pmi arch=linux-ubuntu18.04-x86_64
 -   glvjtkb	      ^findutils@4.8.0%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   zu2prep	      ^hwloc@2.6.0%clang@7.0.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~opencl+pci~rocm+shared arch=linux-ubuntu18.04-x86_64
 -   qc7w5b4		  ^libpciaccess@0.16%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   aopb6i6		      ^libtool@2.4.6%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   qwhwlqn			  ^m4@1.4.19%clang@7.0.0+sigsegv patches=9dc5fbd0d5cb1037ab1e6d0ecc74a30df218d0a94bdd5a02759a97f62daca573,bfdffa7c2eb01021d5849b36972c069693654ad826c1a20b53534009a4ec7a89 arch=linux-ubuntu18.04-x86_64
 -   qymd6m4			      ^libsigsegv@2.13%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   qbshn4o		      ^pkgconf@1.8.0%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   ho4twjl		      ^util-macros@1.19.3%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   u5753la		  ^libxml2@2.9.12%clang@7.0.0~python arch=linux-ubuntu18.04-x86_64
 -   kimktcl		      ^xz@5.2.5%clang@7.0.0~pic libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  atdrszv		      ^zlib@1.2.11%clang@7.0.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
 -   z5r77u3		  ^ncurses@6.2%clang@7.0.0~symlinks+termlib abi=none arch=linux-ubuntu18.04-x86_64
 -   ev6fyzz	      ^libfabric@1.13.2%clang@7.0.0~debug~kdreg fabrics=sockets,tcp,udp arch=linux-ubuntu18.04-x86_64

==> Concretized boost%gcc ^mvapich2 fabrics=mrail
 -   lud3gdo  boost@1.77.0%gcc@7.5.0+atomic+chrono~clanglibcpp~container~context~coroutine+date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math+mpi+multithreaded~numpy~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout+wave cxxstd=98 patches=93f4aad8f88d1437e50d95a2d066390ef3753b99ef5de24f7a46bc083bd6df06,b8569d7d4c3ef0501a39857126a2b0a88519bf256c29f3252a6958916ce82255 visibility=hidden arch=linux-ubuntu18.04-x86_64
[+]  55rtzz4	  ^bzip2@1.0.8%gcc@7.5.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
[+]  kg5jymj	      ^diffutils@3.8%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  qi7dxj6		  ^libiconv@1.16%gcc@7.5.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
 -   2b3wvwv	  ^mvapich2@2.3.6%gcc@7.5.0~alloca~cuda~debug+regcache+wrapperrpath ch3_rank_bits=32 fabrics=mrail file_systems=auto process_managers=auto threads=multiple arch=linux-ubuntu18.04-x86_64
 -   rkij5jf	      ^bison@3.8.2%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ybvezwz		  ^m4@1.4.19%gcc@7.5.0+sigsegv patches=9dc5fbd0d5cb1037ab1e6d0ecc74a30df218d0a94bdd5a02759a97f62daca573,bfdffa7c2eb01021d5849b36972c069693654ad826c1a20b53534009a4ec7a89 arch=linux-ubuntu18.04-x86_64
[+]  g2vgcne		      ^libsigsegv@2.13%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  672tzld		  ^perl@5.34.0%gcc@7.5.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
[+]  ue5lnfm		      ^berkeley-db@18.1.40%gcc@7.5.0+cxx~docs+stl patches=b231fcc4d5cff05e5c3a4814f6a5af0e9a966428dc2176540d2c05aff41de522 arch=linux-ubuntu18.04-x86_64
[+]  oftaepj		      ^gdbm@1.19%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  27u6g7p			  ^readline@8.1%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  d34lizg			      ^ncurses@6.2%gcc@7.5.0~symlinks+termlib abi=none arch=linux-ubuntu18.04-x86_64
[+]  ucp6vz7				  ^pkgconf@1.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  3rlgy7y		      ^zlib@1.2.11%gcc@7.5.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
[+]  3susxc4	      ^findutils@4.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ryhmw2g	      ^libpciaccess@0.16%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2kia6gf		  ^libtool@2.4.6%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  h5cf2g4		  ^util-macros@1.19.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2hw4ddh	      ^libxml2@2.9.12%gcc@7.5.0~python arch=linux-ubuntu18.04-x86_64
[+]  nplaaps		  ^xz@5.2.5%gcc@7.5.0~pic libs=shared,static arch=linux-ubuntu18.04-x86_64
 -   zmmkt77	      ^rdma-core@34.0%gcc@7.5.0~ipo build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
[+]  anj6kcx		  ^cmake@3.21.4%gcc@7.5.0~doc+ncurses+openssl+ownlibs~qt build_type=Release arch=linux-ubuntu18.04-x86_64
[+]  lygx3cq		      ^openssl@1.1.1l%gcc@7.5.0~docs certs=system arch=linux-ubuntu18.04-x86_64
 -   yfocy6o		  ^libnl@3.3.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   dgrntdg		      ^flex@2.6.3%gcc@7.5.0+lex~nls arch=linux-ubuntu18.04-x86_64
 -   hynf7wr		  ^py-docutils@0.18%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   o52ww56		      ^py-setuptools@58.2.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   g2gj6mw			  ^python@3.8.12%gcc@7.5.0+bz2+ctypes+dbm~debug+libxml2+lzma~nis~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tix~tkinter~ucs4+uuid+zlib patches=0d98e93189bc278fbc37a50ed7f183bd8aaf249a8e1670a465f0db6bb4f8cf87,4c2457325f2b608b1b6a2c63087df8c26e07db3e3d493caf36a56f0ecf6fb768,f2fd060afc4b4618fe8104c4c5d771f36dc55b1db5a4623785a4ea707ec72fb4 arch=linux-ubuntu18.04-x86_64
 -   j3i7qne			      ^expat@2.4.1%gcc@7.5.0+libbsd arch=linux-ubuntu18.04-x86_64
 -   j5lylsy				  ^libbsd@0.11.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   aq7ydx6				      ^libmd@1.0.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   2zkxpoq			      ^gettext@0.21%gcc@7.5.0+bzip2+curses+git~libunistring+libxml2+tar+xz arch=linux-ubuntu18.04-x86_64
 -   otlzkgd				  ^tar@1.34%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   4bz34d3			      ^libffi@3.3%gcc@7.5.0 patches=26f26c6f29a7ce9bf370ad3ab2610f99365b4bdd7b82e7c31df41a3370d685c0 arch=linux-ubuntu18.04-x86_64
 -   ckghzv6			      ^sqlite@3.36.0%gcc@7.5.0+column_metadata+fts~functions~rtree arch=linux-ubuntu18.04-x86_64
 -   c23s54s			      ^util-linux-uuid@2.36.2%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64

==> Concretized trilinos%gcc+hdf5 ^mpich
[+]  qeqaxle  trilinos@13.0.1%gcc@7.5.0~adios2+amesos+amesos2+anasazi+aztec~basker+belos~boost~chaco~complex~cuda~cuda_rdc~debug~dtk+epetra+epetraext~epetraextbtf~epetraextexperimental~epetraextgraphreorderings~exodus+explicit_template_instantiation~float+fortran~gtest+hdf5~hypre+ifpack+ifpack2~intrepid~intrepid2~ipo~isorropia+kokkos~mesquite~minitensor+ml+mpi+muelu~mumps~nox~openmp~phalanx~piro~python~rol~rythmos+sacado~scorec~shards+shared~shylu~stk~stokhos~stratimikos~strumpack~suite-sparse~superlu~superlu-dist~teko~tempus+tpetra~trilinoscouplings~wrapper~x11~zoltan~zoltan2 build_type=RelWithDebInfo cuda_arch=none cxxstd=14 gotype=long_long arch=linux-ubuntu18.04-x86_64
[+]  anj6kcx	  ^cmake@3.21.4%gcc@7.5.0~doc+ncurses+openssl+ownlibs~qt build_type=Release arch=linux-ubuntu18.04-x86_64
[+]  d34lizg	      ^ncurses@6.2%gcc@7.5.0~symlinks+termlib abi=none arch=linux-ubuntu18.04-x86_64
[+]  ucp6vz7		  ^pkgconf@1.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  lygx3cq	      ^openssl@1.1.1l%gcc@7.5.0~docs certs=system arch=linux-ubuntu18.04-x86_64
[+]  672tzld		  ^perl@5.34.0%gcc@7.5.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
[+]  ue5lnfm		      ^berkeley-db@18.1.40%gcc@7.5.0+cxx~docs+stl patches=b231fcc4d5cff05e5c3a4814f6a5af0e9a966428dc2176540d2c05aff41de522 arch=linux-ubuntu18.04-x86_64
[+]  55rtzz4		      ^bzip2@1.0.8%gcc@7.5.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
[+]  kg5jymj			  ^diffutils@3.8%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  qi7dxj6			      ^libiconv@1.16%gcc@7.5.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  oftaepj		      ^gdbm@1.19%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  27u6g7p			  ^readline@8.1%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  3rlgy7y		      ^zlib@1.2.11%gcc@7.5.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
[+]  qbip6im	  ^hdf5@1.10.7%gcc@7.5.0~cxx~fortran+hl~ipo~java+mpi+shared~szip~threadsafe+tools api=default build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
[+]  idedbjn	      ^mpich@3.4.2%gcc@7.5.0~argobots+fortran+hwloc+hydra+libxml2+pci+romio~slurm~verbs+wrapperrpath device=ch4 netmod=ofi pmi=pmi arch=linux-ubuntu18.04-x86_64
[+]  3susxc4		  ^findutils@4.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  gedgnpg		  ^hwloc@2.6.0%gcc@7.5.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~opencl+pci~rocm+shared arch=linux-ubuntu18.04-x86_64
[+]  ryhmw2g		      ^libpciaccess@0.16%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2kia6gf			  ^libtool@2.4.6%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ybvezwz			      ^m4@1.4.19%gcc@7.5.0+sigsegv patches=9dc5fbd0d5cb1037ab1e6d0ecc74a30df218d0a94bdd5a02759a97f62daca573,bfdffa7c2eb01021d5849b36972c069693654ad826c1a20b53534009a4ec7a89 arch=linux-ubuntu18.04-x86_64
[+]  g2vgcne				  ^libsigsegv@2.13%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  h5cf2g4			  ^util-macros@1.19.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2hw4ddh		      ^libxml2@2.9.12%gcc@7.5.0~python arch=linux-ubuntu18.04-x86_64
[+]  nplaaps			  ^xz@5.2.5%gcc@7.5.0~pic libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  kwxupt5		  ^libfabric@1.13.2%gcc@7.5.0~debug~kdreg fabrics=sockets,tcp,udp arch=linux-ubuntu18.04-x86_64
[+]  euw6zdu	  ^openblas@0.3.18%gcc@7.5.0~bignuma~consistent_fpcsr~ilp64+locking+pic+shared threads=none arch=linux-ubuntu18.04-x86_64

==> Concretized trilinos%clang+hdf5 ^mpich
 -   db7rxty  trilinos@13.0.1%clang@7.0.0~adios2+amesos+amesos2+anasazi+aztec~basker+belos~boost~chaco~complex~cuda~cuda_rdc~debug~dtk+epetra+epetraext~epetraextbtf~epetraextexperimental~epetraextgraphreorderings~exodus+explicit_template_instantiation~float+fortran~gtest+hdf5~hypre+ifpack+ifpack2~intrepid~intrepid2~ipo~isorropia+kokkos~mesquite~minitensor+ml+mpi+muelu~mumps~nox~openmp~phalanx~piro~python~rol~rythmos+sacado~scorec~shards+shared~shylu~stk~stokhos~stratimikos~strumpack~suite-sparse~superlu~superlu-dist~teko~tempus+tpetra~trilinoscouplings~wrapper~x11~zoltan~zoltan2 build_type=RelWithDebInfo cuda_arch=none cxxstd=14 gotype=long_long arch=linux-ubuntu18.04-x86_64
 -   shvszqm	  ^cmake@3.21.4%clang@7.0.0~doc+ncurses+openssl+ownlibs~qt build_type=Release arch=linux-ubuntu18.04-x86_64
 -   z5r77u3	      ^ncurses@6.2%clang@7.0.0~symlinks+termlib abi=none arch=linux-ubuntu18.04-x86_64
 -   qbshn4o		  ^pkgconf@1.8.0%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   juwdmb6	      ^openssl@1.1.1l%clang@7.0.0~docs certs=system arch=linux-ubuntu18.04-x86_64
 -   ib4owzp		  ^perl@5.34.0%clang@7.0.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
 -   mkrgho3		      ^berkeley-db@18.1.40%clang@7.0.0+cxx~docs+stl patches=b231fcc4d5cff05e5c3a4814f6a5af0e9a966428dc2176540d2c05aff41de522 arch=linux-ubuntu18.04-x86_64
 -   dskruzj		      ^bzip2@1.0.8%clang@7.0.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
 -   23gano6			  ^diffutils@3.8%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   mgvvs5x			      ^libiconv@1.16%clang@7.0.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
 -   fsnyyd5		      ^gdbm@1.19%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   mxotfvm			  ^readline@8.1%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
[+]  atdrszv		      ^zlib@1.2.11%clang@7.0.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
 -   2wfevcd	  ^hdf5@1.10.7%clang@7.0.0~cxx~fortran+hl~ipo~java+mpi+shared~szip~threadsafe+tools api=default build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
 -   gm23ibl	      ^mpich@3.4.2%clang@7.0.0~argobots+fortran+hwloc+hydra+libxml2+pci+romio~slurm~verbs+wrapperrpath device=ch4 netmod=ofi pmi=pmi arch=linux-ubuntu18.04-x86_64
 -   glvjtkb		  ^findutils@4.8.0%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   zu2prep		  ^hwloc@2.6.0%clang@7.0.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~opencl+pci~rocm+shared arch=linux-ubuntu18.04-x86_64
 -   qc7w5b4		      ^libpciaccess@0.16%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   aopb6i6			  ^libtool@2.4.6%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   qwhwlqn			      ^m4@1.4.19%clang@7.0.0+sigsegv patches=9dc5fbd0d5cb1037ab1e6d0ecc74a30df218d0a94bdd5a02759a97f62daca573,bfdffa7c2eb01021d5849b36972c069693654ad826c1a20b53534009a4ec7a89 arch=linux-ubuntu18.04-x86_64
 -   qymd6m4				  ^libsigsegv@2.13%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   ho4twjl			  ^util-macros@1.19.3%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   u5753la		      ^libxml2@2.9.12%clang@7.0.0~python arch=linux-ubuntu18.04-x86_64
 -   kimktcl			  ^xz@5.2.5%clang@7.0.0~pic libs=shared,static arch=linux-ubuntu18.04-x86_64
 -   ev6fyzz		  ^libfabric@1.13.2%clang@7.0.0~debug~kdreg fabrics=sockets,tcp,udp arch=linux-ubuntu18.04-x86_64
 -   u6b2fi4	  ^openblas@0.3.18%clang@7.0.0~bignuma~consistent_fpcsr~ilp64+locking+pic+shared threads=none arch=linux-ubuntu18.04-x86_64

==> Concretized trilinos%gcc+hdf5 ^mvapich2 fabrics=mrail
 -   22csrsr  trilinos@13.0.1%gcc@7.5.0~adios2+amesos+amesos2+anasazi+aztec~basker+belos~boost~chaco~complex~cuda~cuda_rdc~debug~dtk+epetra+epetraext~epetraextbtf~epetraextexperimental~epetraextgraphreorderings~exodus+explicit_template_instantiation~float+fortran~gtest+hdf5~hypre+ifpack+ifpack2~intrepid~intrepid2~ipo~isorropia+kokkos~mesquite~minitensor+ml+mpi+muelu~mumps~nox~openmp~phalanx~piro~python~rol~rythmos+sacado~scorec~shards+shared~shylu~stk~stokhos~stratimikos~strumpack~suite-sparse~superlu~superlu-dist~teko~tempus+tpetra~trilinoscouplings~wrapper~x11~zoltan~zoltan2 build_type=RelWithDebInfo cuda_arch=none cxxstd=14 gotype=long_long arch=linux-ubuntu18.04-x86_64
[+]  anj6kcx	  ^cmake@3.21.4%gcc@7.5.0~doc+ncurses+openssl+ownlibs~qt build_type=Release arch=linux-ubuntu18.04-x86_64
[+]  d34lizg	      ^ncurses@6.2%gcc@7.5.0~symlinks+termlib abi=none arch=linux-ubuntu18.04-x86_64
[+]  ucp6vz7		  ^pkgconf@1.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  lygx3cq	      ^openssl@1.1.1l%gcc@7.5.0~docs certs=system arch=linux-ubuntu18.04-x86_64
[+]  672tzld		  ^perl@5.34.0%gcc@7.5.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
[+]  ue5lnfm		      ^berkeley-db@18.1.40%gcc@7.5.0+cxx~docs+stl patches=b231fcc4d5cff05e5c3a4814f6a5af0e9a966428dc2176540d2c05aff41de522 arch=linux-ubuntu18.04-x86_64
[+]  55rtzz4		      ^bzip2@1.0.8%gcc@7.5.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
[+]  kg5jymj			  ^diffutils@3.8%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  qi7dxj6			      ^libiconv@1.16%gcc@7.5.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  oftaepj		      ^gdbm@1.19%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  27u6g7p			  ^readline@8.1%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  3rlgy7y		      ^zlib@1.2.11%gcc@7.5.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
 -   dhal33w	  ^hdf5@1.10.7%gcc@7.5.0~cxx~fortran+hl~ipo~java+mpi+shared~szip~threadsafe+tools api=default build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
 -   2b3wvwv	      ^mvapich2@2.3.6%gcc@7.5.0~alloca~cuda~debug+regcache+wrapperrpath ch3_rank_bits=32 fabrics=mrail file_systems=auto process_managers=auto threads=multiple arch=linux-ubuntu18.04-x86_64
 -   rkij5jf		  ^bison@3.8.2%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ybvezwz		      ^m4@1.4.19%gcc@7.5.0+sigsegv patches=9dc5fbd0d5cb1037ab1e6d0ecc74a30df218d0a94bdd5a02759a97f62daca573,bfdffa7c2eb01021d5849b36972c069693654ad826c1a20b53534009a4ec7a89 arch=linux-ubuntu18.04-x86_64
[+]  g2vgcne			  ^libsigsegv@2.13%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  3susxc4		  ^findutils@4.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ryhmw2g		  ^libpciaccess@0.16%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2kia6gf		      ^libtool@2.4.6%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  h5cf2g4		      ^util-macros@1.19.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2hw4ddh		  ^libxml2@2.9.12%gcc@7.5.0~python arch=linux-ubuntu18.04-x86_64
[+]  nplaaps		      ^xz@5.2.5%gcc@7.5.0~pic libs=shared,static arch=linux-ubuntu18.04-x86_64
 -   zmmkt77		  ^rdma-core@34.0%gcc@7.5.0~ipo build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
 -   yfocy6o		      ^libnl@3.3.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   dgrntdg			  ^flex@2.6.3%gcc@7.5.0+lex~nls arch=linux-ubuntu18.04-x86_64
 -   hynf7wr		      ^py-docutils@0.18%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   o52ww56			  ^py-setuptools@58.2.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   g2gj6mw			      ^python@3.8.12%gcc@7.5.0+bz2+ctypes+dbm~debug+libxml2+lzma~nis~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tix~tkinter~ucs4+uuid+zlib patches=0d98e93189bc278fbc37a50ed7f183bd8aaf249a8e1670a465f0db6bb4f8cf87,4c2457325f2b608b1b6a2c63087df8c26e07db3e3d493caf36a56f0ecf6fb768,f2fd060afc4b4618fe8104c4c5d771f36dc55b1db5a4623785a4ea707ec72fb4 arch=linux-ubuntu18.04-x86_64
 -   j3i7qne				  ^expat@2.4.1%gcc@7.5.0+libbsd arch=linux-ubuntu18.04-x86_64
 -   j5lylsy				      ^libbsd@0.11.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   aq7ydx6					  ^libmd@1.0.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   2zkxpoq				  ^gettext@0.21%gcc@7.5.0+bzip2+curses+git~libunistring+libxml2+tar+xz arch=linux-ubuntu18.04-x86_64
 -   otlzkgd				      ^tar@1.34%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   4bz34d3				  ^libffi@3.3%gcc@7.5.0 patches=26f26c6f29a7ce9bf370ad3ab2610f99365b4bdd7b82e7c31df41a3370d685c0 arch=linux-ubuntu18.04-x86_64
 -   ckghzv6				  ^sqlite@3.36.0%gcc@7.5.0+column_metadata+fts~functions~rtree arch=linux-ubuntu18.04-x86_64
 -   c23s54s				  ^util-linux-uuid@2.36.2%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  gedgnpg	  ^hwloc@2.6.0%gcc@7.5.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~opencl+pci~rocm+shared arch=linux-ubuntu18.04-x86_64
[+]  euw6zdu	  ^openblas@0.3.18%gcc@7.5.0~bignuma~consistent_fpcsr~ilp64+locking+pic+shared threads=none arch=linux-ubuntu18.04-x86_64

$ spack find -c
==> In environment /home/spack/code
==> Root specs
-- no arch / clang ----------------------------------------------
boost%clang  trilinos%clang +hdf5

-- no arch / gcc ------------------------------------------------
boost%gcc  boost%gcc  trilinos%gcc +hdf5  trilinos%gcc +hdf5

==> Concretized roots
-- linux-ubuntu18.04-x86_64 / clang@7.0.0 -----------------------
boost@1.77.0  trilinos@13.0.1

-- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
boost@1.77.0  boost@1.77.0  trilinos@13.0.1  trilinos@13.0.1

==> 27 installed packages
-- linux-ubuntu18.04-x86_64 / clang@7.0.0 -----------------------
zlib@1.2.11

-- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
berkeley-db@18.1.40  diffutils@3.8    hdf5@1.10.7	libiconv@1.16	   libtool@2.4.6   mpich@3.4.2	    openssl@1.1.1l  readline@8.1	xz@5.2.5
bzip2@1.0.8	     findutils@4.8.0  hwloc@2.6.0	libpciaccess@0.16  libxml2@2.9.12  ncurses@6.2	    perl@5.34.0     trilinos@13.0.1	zlib@1.2.11
cmake@3.21.4	     gdbm@1.19	      libfabric@1.13.2	libsigsegv@2.13    m4@1.4.19	   openblas@0.3.18  pkgconf@1.8.0   util-macros@1.19.3

Named lists in spack environments

Spack also allows for named lists in environments. We can use these lists to clean up our example above. These named lists are defined in the definitions key of the spack.yaml file. Our lists today will be simple lists of packages or constraints, but in more complicated examples the named lists can include matrices as well.

Let’s clean up our file a bit now.

# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration setings.
spack:
  # named lists
  definitions:
    - packages: [boost, trilinos+hdf5]
    - mpis: [mpich, mvapich2 fabrics=mrail]
    - compilers: ['%gcc', '%clang']

  specs:
    - matrix:
        - [$packages]
        - [$^mpis]
        - [$compilers]
      exclude:
        - '%clang ^mvapich2'

  view: false

This syntax may take some getting used to. Specifically, matrices and references to named lists are always “splatted” into their current position, rather than included as a list object in yaml. This may seem counterintuitive, but it becomes important when we look to combine lists. Notice that the mpi constraints can be declared as packages and then applied as dependencies using the $^ syntax. The same is true for compilers (using $%), so we’re showing both syntaxes here.

# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration setings.
spack:
  # named lists
  definitions:
    - packages: [boost, trilinos+hdf5]
    - mpis: [mpich, mvapich2 fabrics=mrail]
    - compilers: ['%gcc', '%clang']
    - singleton_packages: [python, tcl]

  specs:
    - matrix:
        - [$packages]
        - [$^mpis]
        - [$compilers]
      exclude:
        - '%clang ^mvapich2'
    - $singleton_packages

  view: false

Our specs list in this example is still a list of specs, as the environment requires.

This stack is the same as our previous example, with the additions of single configurations of python and tcl.

Conditional definitions

Spec list definitions can also be conditioned on a when clause. The when clause is a python conditional that is evaluated in a restricted environment. The variables available in when clauses are:

variable name value
platform The spack platform name for this machine
os The default spack os name and version string for this machine
target The default spack target string for this machine
architecture The default spack architecture string platform-os-target for this machine
arch Alias for architecture
env A dictionary representing the users environment variables
re The python re module for regex
hostname The hostname of this node

Let’s say we only want to use clang if the SPACK_STACK_USE_CLANG environment variable is set and edit our spack.yaml file accordingly.

# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration setings.
spack:
  # named lists
  definitions:
    - packages: [boost, trilinos+hdf5]
    - mpis: [mpich, mvapich2 fabrics=mrail]
    - compilers: ['%gcc']
    - compilers: ['%clang']
      when: 'env.get("SPACK_STACK_USE_CLANG", "") == "1"'
    - singleton_packages: [python, tcl]

  specs:
    - matrix:
        - [$packages]
        - [$^mpis]
        - [$compilers]
      exclude:
        - '%clang ^mvapich2'
    - $singleton_packages

  view: false

Note that named lists in the Spack stack are concatenated. We can define our compilers list in one place unconditionally, and then conditionally append clang to it when our environment variable is set properly.

$ spack concretize -f
==> Starting concretization pool with 6 processes
==> Environment concretized in 13.08 seconds.
==> Concretized boost%gcc ^mpich
 -   bsbioww  boost@1.77.0%gcc@7.5.0+atomic+chrono~clanglibcpp~container~context~coroutine+date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math+mpi+multithreaded~numpy~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout+wave cxxstd=98 patches=93f4aad8f88d1437e50d95a2d066390ef3753b99ef5de24f7a46bc083bd6df06 visibility=hidden arch=linux-ubuntu18.04-x86_64
[+]  55rtzz4	  ^bzip2@1.0.8%gcc@7.5.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
[+]  kg5jymj	      ^diffutils@3.8%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  qi7dxj6		  ^libiconv@1.16%gcc@7.5.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  idedbjn	  ^mpich@3.4.2%gcc@7.5.0~argobots+fortran+hwloc+hydra+libxml2+pci+romio~slurm~verbs+wrapperrpath device=ch4 netmod=ofi pmi=pmi arch=linux-ubuntu18.04-x86_64
[+]  3susxc4	      ^findutils@4.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  gedgnpg	      ^hwloc@2.6.0%gcc@7.5.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~opencl+pci~rocm+shared arch=linux-ubuntu18.04-x86_64
[+]  ryhmw2g		  ^libpciaccess@0.16%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2kia6gf		      ^libtool@2.4.6%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ybvezwz			  ^m4@1.4.19%gcc@7.5.0+sigsegv patches=9dc5fbd0d5cb1037ab1e6d0ecc74a30df218d0a94bdd5a02759a97f62daca573,bfdffa7c2eb01021d5849b36972c069693654ad826c1a20b53534009a4ec7a89 arch=linux-ubuntu18.04-x86_64
[+]  g2vgcne			      ^libsigsegv@2.13%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ucp6vz7		      ^pkgconf@1.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  h5cf2g4		      ^util-macros@1.19.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2hw4ddh		  ^libxml2@2.9.12%gcc@7.5.0~python arch=linux-ubuntu18.04-x86_64
[+]  nplaaps		      ^xz@5.2.5%gcc@7.5.0~pic libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  3rlgy7y		      ^zlib@1.2.11%gcc@7.5.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
[+]  d34lizg		  ^ncurses@6.2%gcc@7.5.0~symlinks+termlib abi=none arch=linux-ubuntu18.04-x86_64
[+]  kwxupt5	      ^libfabric@1.13.2%gcc@7.5.0~debug~kdreg fabrics=sockets,tcp,udp arch=linux-ubuntu18.04-x86_64

==> Concretized boost%gcc ^mvapich2 fabrics=mrail
 -   lud3gdo  boost@1.77.0%gcc@7.5.0+atomic+chrono~clanglibcpp~container~context~coroutine+date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math+mpi+multithreaded~numpy~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout+wave cxxstd=98 patches=93f4aad8f88d1437e50d95a2d066390ef3753b99ef5de24f7a46bc083bd6df06,b8569d7d4c3ef0501a39857126a2b0a88519bf256c29f3252a6958916ce82255 visibility=hidden arch=linux-ubuntu18.04-x86_64
[+]  55rtzz4	  ^bzip2@1.0.8%gcc@7.5.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
[+]  kg5jymj	      ^diffutils@3.8%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  qi7dxj6		  ^libiconv@1.16%gcc@7.5.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
 -   2b3wvwv	  ^mvapich2@2.3.6%gcc@7.5.0~alloca~cuda~debug+regcache+wrapperrpath ch3_rank_bits=32 fabrics=mrail file_systems=auto process_managers=auto threads=multiple arch=linux-ubuntu18.04-x86_64
 -   rkij5jf	      ^bison@3.8.2%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ybvezwz		  ^m4@1.4.19%gcc@7.5.0+sigsegv patches=9dc5fbd0d5cb1037ab1e6d0ecc74a30df218d0a94bdd5a02759a97f62daca573,bfdffa7c2eb01021d5849b36972c069693654ad826c1a20b53534009a4ec7a89 arch=linux-ubuntu18.04-x86_64
[+]  g2vgcne		      ^libsigsegv@2.13%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  672tzld		  ^perl@5.34.0%gcc@7.5.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
[+]  ue5lnfm		      ^berkeley-db@18.1.40%gcc@7.5.0+cxx~docs+stl patches=b231fcc4d5cff05e5c3a4814f6a5af0e9a966428dc2176540d2c05aff41de522 arch=linux-ubuntu18.04-x86_64
[+]  oftaepj		      ^gdbm@1.19%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  27u6g7p			  ^readline@8.1%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  d34lizg			      ^ncurses@6.2%gcc@7.5.0~symlinks+termlib abi=none arch=linux-ubuntu18.04-x86_64
[+]  ucp6vz7				  ^pkgconf@1.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  3rlgy7y		      ^zlib@1.2.11%gcc@7.5.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
[+]  3susxc4	      ^findutils@4.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ryhmw2g	      ^libpciaccess@0.16%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2kia6gf		  ^libtool@2.4.6%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  h5cf2g4		  ^util-macros@1.19.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2hw4ddh	      ^libxml2@2.9.12%gcc@7.5.0~python arch=linux-ubuntu18.04-x86_64
[+]  nplaaps		  ^xz@5.2.5%gcc@7.5.0~pic libs=shared,static arch=linux-ubuntu18.04-x86_64
 -   zmmkt77	      ^rdma-core@34.0%gcc@7.5.0~ipo build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
[+]  anj6kcx		  ^cmake@3.21.4%gcc@7.5.0~doc+ncurses+openssl+ownlibs~qt build_type=Release arch=linux-ubuntu18.04-x86_64
[+]  lygx3cq		      ^openssl@1.1.1l%gcc@7.5.0~docs certs=system arch=linux-ubuntu18.04-x86_64
 -   yfocy6o		  ^libnl@3.3.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   dgrntdg		      ^flex@2.6.3%gcc@7.5.0+lex~nls arch=linux-ubuntu18.04-x86_64
 -   hynf7wr		  ^py-docutils@0.18%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   o52ww56		      ^py-setuptools@58.2.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   g2gj6mw			  ^python@3.8.12%gcc@7.5.0+bz2+ctypes+dbm~debug+libxml2+lzma~nis~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tix~tkinter~ucs4+uuid+zlib patches=0d98e93189bc278fbc37a50ed7f183bd8aaf249a8e1670a465f0db6bb4f8cf87,4c2457325f2b608b1b6a2c63087df8c26e07db3e3d493caf36a56f0ecf6fb768,f2fd060afc4b4618fe8104c4c5d771f36dc55b1db5a4623785a4ea707ec72fb4 arch=linux-ubuntu18.04-x86_64
 -   j3i7qne			      ^expat@2.4.1%gcc@7.5.0+libbsd arch=linux-ubuntu18.04-x86_64
 -   j5lylsy				  ^libbsd@0.11.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   aq7ydx6				      ^libmd@1.0.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   2zkxpoq			      ^gettext@0.21%gcc@7.5.0+bzip2+curses+git~libunistring+libxml2+tar+xz arch=linux-ubuntu18.04-x86_64
 -   otlzkgd				  ^tar@1.34%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   4bz34d3			      ^libffi@3.3%gcc@7.5.0 patches=26f26c6f29a7ce9bf370ad3ab2610f99365b4bdd7b82e7c31df41a3370d685c0 arch=linux-ubuntu18.04-x86_64
 -   ckghzv6			      ^sqlite@3.36.0%gcc@7.5.0+column_metadata+fts~functions~rtree arch=linux-ubuntu18.04-x86_64
 -   c23s54s			      ^util-linux-uuid@2.36.2%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64

==> Concretized trilinos%gcc+hdf5 ^mpich
[+]  qeqaxle  trilinos@13.0.1%gcc@7.5.0~adios2+amesos+amesos2+anasazi+aztec~basker+belos~boost~chaco~complex~cuda~cuda_rdc~debug~dtk+epetra+epetraext~epetraextbtf~epetraextexperimental~epetraextgraphreorderings~exodus+explicit_template_instantiation~float+fortran~gtest+hdf5~hypre+ifpack+ifpack2~intrepid~intrepid2~ipo~isorropia+kokkos~mesquite~minitensor+ml+mpi+muelu~mumps~nox~openmp~phalanx~piro~python~rol~rythmos+sacado~scorec~shards+shared~shylu~stk~stokhos~stratimikos~strumpack~suite-sparse~superlu~superlu-dist~teko~tempus+tpetra~trilinoscouplings~wrapper~x11~zoltan~zoltan2 build_type=RelWithDebInfo cuda_arch=none cxxstd=14 gotype=long_long arch=linux-ubuntu18.04-x86_64
[+]  anj6kcx	  ^cmake@3.21.4%gcc@7.5.0~doc+ncurses+openssl+ownlibs~qt build_type=Release arch=linux-ubuntu18.04-x86_64
[+]  d34lizg	      ^ncurses@6.2%gcc@7.5.0~symlinks+termlib abi=none arch=linux-ubuntu18.04-x86_64
[+]  ucp6vz7		  ^pkgconf@1.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  lygx3cq	      ^openssl@1.1.1l%gcc@7.5.0~docs certs=system arch=linux-ubuntu18.04-x86_64
[+]  672tzld		  ^perl@5.34.0%gcc@7.5.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
[+]  ue5lnfm		      ^berkeley-db@18.1.40%gcc@7.5.0+cxx~docs+stl patches=b231fcc4d5cff05e5c3a4814f6a5af0e9a966428dc2176540d2c05aff41de522 arch=linux-ubuntu18.04-x86_64
[+]  55rtzz4		      ^bzip2@1.0.8%gcc@7.5.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
[+]  kg5jymj			  ^diffutils@3.8%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  qi7dxj6			      ^libiconv@1.16%gcc@7.5.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  oftaepj		      ^gdbm@1.19%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  27u6g7p			  ^readline@8.1%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  3rlgy7y		      ^zlib@1.2.11%gcc@7.5.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
[+]  qbip6im	  ^hdf5@1.10.7%gcc@7.5.0~cxx~fortran+hl~ipo~java+mpi+shared~szip~threadsafe+tools api=default build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
[+]  idedbjn	      ^mpich@3.4.2%gcc@7.5.0~argobots+fortran+hwloc+hydra+libxml2+pci+romio~slurm~verbs+wrapperrpath device=ch4 netmod=ofi pmi=pmi arch=linux-ubuntu18.04-x86_64
[+]  3susxc4		  ^findutils@4.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  gedgnpg		  ^hwloc@2.6.0%gcc@7.5.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~opencl+pci~rocm+shared arch=linux-ubuntu18.04-x86_64
[+]  ryhmw2g		      ^libpciaccess@0.16%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2kia6gf			  ^libtool@2.4.6%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ybvezwz			      ^m4@1.4.19%gcc@7.5.0+sigsegv patches=9dc5fbd0d5cb1037ab1e6d0ecc74a30df218d0a94bdd5a02759a97f62daca573,bfdffa7c2eb01021d5849b36972c069693654ad826c1a20b53534009a4ec7a89 arch=linux-ubuntu18.04-x86_64
[+]  g2vgcne				  ^libsigsegv@2.13%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  h5cf2g4			  ^util-macros@1.19.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2hw4ddh		      ^libxml2@2.9.12%gcc@7.5.0~python arch=linux-ubuntu18.04-x86_64
[+]  nplaaps			  ^xz@5.2.5%gcc@7.5.0~pic libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  kwxupt5		  ^libfabric@1.13.2%gcc@7.5.0~debug~kdreg fabrics=sockets,tcp,udp arch=linux-ubuntu18.04-x86_64
[+]  euw6zdu	  ^openblas@0.3.18%gcc@7.5.0~bignuma~consistent_fpcsr~ilp64+locking+pic+shared threads=none arch=linux-ubuntu18.04-x86_64

==> Concretized trilinos%gcc+hdf5 ^mvapich2 fabrics=mrail
 -   22csrsr  trilinos@13.0.1%gcc@7.5.0~adios2+amesos+amesos2+anasazi+aztec~basker+belos~boost~chaco~complex~cuda~cuda_rdc~debug~dtk+epetra+epetraext~epetraextbtf~epetraextexperimental~epetraextgraphreorderings~exodus+explicit_template_instantiation~float+fortran~gtest+hdf5~hypre+ifpack+ifpack2~intrepid~intrepid2~ipo~isorropia+kokkos~mesquite~minitensor+ml+mpi+muelu~mumps~nox~openmp~phalanx~piro~python~rol~rythmos+sacado~scorec~shards+shared~shylu~stk~stokhos~stratimikos~strumpack~suite-sparse~superlu~superlu-dist~teko~tempus+tpetra~trilinoscouplings~wrapper~x11~zoltan~zoltan2 build_type=RelWithDebInfo cuda_arch=none cxxstd=14 gotype=long_long arch=linux-ubuntu18.04-x86_64
[+]  anj6kcx	  ^cmake@3.21.4%gcc@7.5.0~doc+ncurses+openssl+ownlibs~qt build_type=Release arch=linux-ubuntu18.04-x86_64
[+]  d34lizg	      ^ncurses@6.2%gcc@7.5.0~symlinks+termlib abi=none arch=linux-ubuntu18.04-x86_64
[+]  ucp6vz7		  ^pkgconf@1.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  lygx3cq	      ^openssl@1.1.1l%gcc@7.5.0~docs certs=system arch=linux-ubuntu18.04-x86_64
[+]  672tzld		  ^perl@5.34.0%gcc@7.5.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
[+]  ue5lnfm		      ^berkeley-db@18.1.40%gcc@7.5.0+cxx~docs+stl patches=b231fcc4d5cff05e5c3a4814f6a5af0e9a966428dc2176540d2c05aff41de522 arch=linux-ubuntu18.04-x86_64
[+]  55rtzz4		      ^bzip2@1.0.8%gcc@7.5.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
[+]  kg5jymj			  ^diffutils@3.8%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  qi7dxj6			      ^libiconv@1.16%gcc@7.5.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  oftaepj		      ^gdbm@1.19%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  27u6g7p			  ^readline@8.1%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  3rlgy7y		      ^zlib@1.2.11%gcc@7.5.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
 -   dhal33w	  ^hdf5@1.10.7%gcc@7.5.0~cxx~fortran+hl~ipo~java+mpi+shared~szip~threadsafe+tools api=default build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
 -   2b3wvwv	      ^mvapich2@2.3.6%gcc@7.5.0~alloca~cuda~debug+regcache+wrapperrpath ch3_rank_bits=32 fabrics=mrail file_systems=auto process_managers=auto threads=multiple arch=linux-ubuntu18.04-x86_64
 -   rkij5jf		  ^bison@3.8.2%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ybvezwz		      ^m4@1.4.19%gcc@7.5.0+sigsegv patches=9dc5fbd0d5cb1037ab1e6d0ecc74a30df218d0a94bdd5a02759a97f62daca573,bfdffa7c2eb01021d5849b36972c069693654ad826c1a20b53534009a4ec7a89 arch=linux-ubuntu18.04-x86_64
[+]  g2vgcne			  ^libsigsegv@2.13%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  3susxc4		  ^findutils@4.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ryhmw2g		  ^libpciaccess@0.16%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2kia6gf		      ^libtool@2.4.6%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  h5cf2g4		      ^util-macros@1.19.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2hw4ddh		  ^libxml2@2.9.12%gcc@7.5.0~python arch=linux-ubuntu18.04-x86_64
[+]  nplaaps		      ^xz@5.2.5%gcc@7.5.0~pic libs=shared,static arch=linux-ubuntu18.04-x86_64
 -   zmmkt77		  ^rdma-core@34.0%gcc@7.5.0~ipo build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
 -   yfocy6o		      ^libnl@3.3.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   dgrntdg			  ^flex@2.6.3%gcc@7.5.0+lex~nls arch=linux-ubuntu18.04-x86_64
 -   hynf7wr		      ^py-docutils@0.18%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   o52ww56			  ^py-setuptools@58.2.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   g2gj6mw			      ^python@3.8.12%gcc@7.5.0+bz2+ctypes+dbm~debug+libxml2+lzma~nis~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tix~tkinter~ucs4+uuid+zlib patches=0d98e93189bc278fbc37a50ed7f183bd8aaf249a8e1670a465f0db6bb4f8cf87,4c2457325f2b608b1b6a2c63087df8c26e07db3e3d493caf36a56f0ecf6fb768,f2fd060afc4b4618fe8104c4c5d771f36dc55b1db5a4623785a4ea707ec72fb4 arch=linux-ubuntu18.04-x86_64
 -   j3i7qne				  ^expat@2.4.1%gcc@7.5.0+libbsd arch=linux-ubuntu18.04-x86_64
 -   j5lylsy				      ^libbsd@0.11.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   aq7ydx6					  ^libmd@1.0.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   2zkxpoq				  ^gettext@0.21%gcc@7.5.0+bzip2+curses+git~libunistring+libxml2+tar+xz arch=linux-ubuntu18.04-x86_64
 -   otlzkgd				      ^tar@1.34%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   4bz34d3				  ^libffi@3.3%gcc@7.5.0 patches=26f26c6f29a7ce9bf370ad3ab2610f99365b4bdd7b82e7c31df41a3370d685c0 arch=linux-ubuntu18.04-x86_64
 -   ckghzv6				  ^sqlite@3.36.0%gcc@7.5.0+column_metadata+fts~functions~rtree arch=linux-ubuntu18.04-x86_64
 -   c23s54s				  ^util-linux-uuid@2.36.2%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  gedgnpg	  ^hwloc@2.6.0%gcc@7.5.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~opencl+pci~rocm+shared arch=linux-ubuntu18.04-x86_64
[+]  euw6zdu	  ^openblas@0.3.18%gcc@7.5.0~bignuma~consistent_fpcsr~ilp64+locking+pic+shared threads=none arch=linux-ubuntu18.04-x86_64

==> Concretized python
 -   g2gj6mw  python@3.8.12%gcc@7.5.0+bz2+ctypes+dbm~debug+libxml2+lzma~nis~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tix~tkinter~ucs4+uuid+zlib patches=0d98e93189bc278fbc37a50ed7f183bd8aaf249a8e1670a465f0db6bb4f8cf87,4c2457325f2b608b1b6a2c63087df8c26e07db3e3d493caf36a56f0ecf6fb768,f2fd060afc4b4618fe8104c4c5d771f36dc55b1db5a4623785a4ea707ec72fb4 arch=linux-ubuntu18.04-x86_64
[+]  55rtzz4	  ^bzip2@1.0.8%gcc@7.5.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
[+]  kg5jymj	      ^diffutils@3.8%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  qi7dxj6		  ^libiconv@1.16%gcc@7.5.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
 -   j3i7qne	  ^expat@2.4.1%gcc@7.5.0+libbsd arch=linux-ubuntu18.04-x86_64
 -   j5lylsy	      ^libbsd@0.11.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   aq7ydx6		  ^libmd@1.0.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  oftaepj	  ^gdbm@1.19%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  27u6g7p	      ^readline@8.1%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  d34lizg		  ^ncurses@6.2%gcc@7.5.0~symlinks+termlib abi=none arch=linux-ubuntu18.04-x86_64
[+]  ucp6vz7		      ^pkgconf@1.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   2zkxpoq	  ^gettext@0.21%gcc@7.5.0+bzip2+curses+git~libunistring+libxml2+tar+xz arch=linux-ubuntu18.04-x86_64
[+]  2hw4ddh	      ^libxml2@2.9.12%gcc@7.5.0~python arch=linux-ubuntu18.04-x86_64
[+]  nplaaps		  ^xz@5.2.5%gcc@7.5.0~pic libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  3rlgy7y		  ^zlib@1.2.11%gcc@7.5.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
 -   otlzkgd	      ^tar@1.34%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   4bz34d3	  ^libffi@3.3%gcc@7.5.0 patches=26f26c6f29a7ce9bf370ad3ab2610f99365b4bdd7b82e7c31df41a3370d685c0 arch=linux-ubuntu18.04-x86_64
[+]  lygx3cq	  ^openssl@1.1.1l%gcc@7.5.0~docs certs=system arch=linux-ubuntu18.04-x86_64
[+]  672tzld	      ^perl@5.34.0%gcc@7.5.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
[+]  ue5lnfm		  ^berkeley-db@18.1.40%gcc@7.5.0+cxx~docs+stl patches=b231fcc4d5cff05e5c3a4814f6a5af0e9a966428dc2176540d2c05aff41de522 arch=linux-ubuntu18.04-x86_64
 -   ckghzv6	  ^sqlite@3.36.0%gcc@7.5.0+column_metadata+fts~functions~rtree arch=linux-ubuntu18.04-x86_64
 -   c23s54s	  ^util-linux-uuid@2.36.2%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64

==> Concretized tcl
 -   oysrbht  tcl@8.6.11%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  3rlgy7y	  ^zlib@1.2.11%gcc@7.5.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64

$ spack find -c
==> In environment /home/spack/code
==> Root specs
python	tcl

-- no arch / gcc ------------------------------------------------
boost%gcc  boost%gcc  trilinos%gcc +hdf5  trilinos%gcc +hdf5

==> Concretized roots
-- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
boost@1.77.0  boost@1.77.0  python@3.8.12  tcl@8.6.11  trilinos@13.0.1	trilinos@13.0.1

==> 26 installed packages
-- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
berkeley-db@18.1.40  diffutils@3.8    hdf5@1.10.7	libiconv@1.16	   libtool@2.4.6   mpich@3.4.2	    openssl@1.1.1l  readline@8.1	xz@5.2.5
bzip2@1.0.8	     findutils@4.8.0  hwloc@2.6.0	libpciaccess@0.16  libxml2@2.9.12  ncurses@6.2	    perl@5.34.0     trilinos@13.0.1	zlib@1.2.11
cmake@3.21.4	     gdbm@1.19	      libfabric@1.13.2	libsigsegv@2.13    m4@1.4.19	   openblas@0.3.18  pkgconf@1.8.0   util-macros@1.19.3
$ export SPACK_STACK_USE_CLANG=1
$ spack concretize -f
==> Starting concretization pool with 8 processes
==> Environment concretized in 17.72 seconds.
==> Concretized boost%gcc ^mpich
 -   bsbioww  boost@1.77.0%gcc@7.5.0+atomic+chrono~clanglibcpp~container~context~coroutine+date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math+mpi+multithreaded~numpy~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout+wave cxxstd=98 patches=93f4aad8f88d1437e50d95a2d066390ef3753b99ef5de24f7a46bc083bd6df06 visibility=hidden arch=linux-ubuntu18.04-x86_64
[+]  55rtzz4	  ^bzip2@1.0.8%gcc@7.5.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
[+]  kg5jymj	      ^diffutils@3.8%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  qi7dxj6		  ^libiconv@1.16%gcc@7.5.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  idedbjn	  ^mpich@3.4.2%gcc@7.5.0~argobots+fortran+hwloc+hydra+libxml2+pci+romio~slurm~verbs+wrapperrpath device=ch4 netmod=ofi pmi=pmi arch=linux-ubuntu18.04-x86_64
[+]  3susxc4	      ^findutils@4.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  gedgnpg	      ^hwloc@2.6.0%gcc@7.5.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~opencl+pci~rocm+shared arch=linux-ubuntu18.04-x86_64
[+]  ryhmw2g		  ^libpciaccess@0.16%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2kia6gf		      ^libtool@2.4.6%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ybvezwz			  ^m4@1.4.19%gcc@7.5.0+sigsegv patches=9dc5fbd0d5cb1037ab1e6d0ecc74a30df218d0a94bdd5a02759a97f62daca573,bfdffa7c2eb01021d5849b36972c069693654ad826c1a20b53534009a4ec7a89 arch=linux-ubuntu18.04-x86_64
[+]  g2vgcne			      ^libsigsegv@2.13%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ucp6vz7		      ^pkgconf@1.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  h5cf2g4		      ^util-macros@1.19.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2hw4ddh		  ^libxml2@2.9.12%gcc@7.5.0~python arch=linux-ubuntu18.04-x86_64
[+]  nplaaps		      ^xz@5.2.5%gcc@7.5.0~pic libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  3rlgy7y		      ^zlib@1.2.11%gcc@7.5.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
[+]  d34lizg		  ^ncurses@6.2%gcc@7.5.0~symlinks+termlib abi=none arch=linux-ubuntu18.04-x86_64
[+]  kwxupt5	      ^libfabric@1.13.2%gcc@7.5.0~debug~kdreg fabrics=sockets,tcp,udp arch=linux-ubuntu18.04-x86_64

==> Concretized boost%clang ^mpich
 -   xdbqyvz  boost@1.77.0%clang@7.0.0+atomic+chrono~clanglibcpp~container~context~coroutine+date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math+mpi+multithreaded~numpy~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout+wave cxxstd=98 patches=93f4aad8f88d1437e50d95a2d066390ef3753b99ef5de24f7a46bc083bd6df06 visibility=hidden arch=linux-ubuntu18.04-x86_64
 -   dskruzj	  ^bzip2@1.0.8%clang@7.0.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
 -   23gano6	      ^diffutils@3.8%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   mgvvs5x		  ^libiconv@1.16%clang@7.0.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
 -   gm23ibl	  ^mpich@3.4.2%clang@7.0.0~argobots+fortran+hwloc+hydra+libxml2+pci+romio~slurm~verbs+wrapperrpath device=ch4 netmod=ofi pmi=pmi arch=linux-ubuntu18.04-x86_64
 -   glvjtkb	      ^findutils@4.8.0%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   zu2prep	      ^hwloc@2.6.0%clang@7.0.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~opencl+pci~rocm+shared arch=linux-ubuntu18.04-x86_64
 -   qc7w5b4		  ^libpciaccess@0.16%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   aopb6i6		      ^libtool@2.4.6%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   qwhwlqn			  ^m4@1.4.19%clang@7.0.0+sigsegv patches=9dc5fbd0d5cb1037ab1e6d0ecc74a30df218d0a94bdd5a02759a97f62daca573,bfdffa7c2eb01021d5849b36972c069693654ad826c1a20b53534009a4ec7a89 arch=linux-ubuntu18.04-x86_64
 -   qymd6m4			      ^libsigsegv@2.13%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   qbshn4o		      ^pkgconf@1.8.0%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   ho4twjl		      ^util-macros@1.19.3%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   u5753la		  ^libxml2@2.9.12%clang@7.0.0~python arch=linux-ubuntu18.04-x86_64
 -   kimktcl		      ^xz@5.2.5%clang@7.0.0~pic libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  atdrszv		      ^zlib@1.2.11%clang@7.0.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
 -   z5r77u3		  ^ncurses@6.2%clang@7.0.0~symlinks+termlib abi=none arch=linux-ubuntu18.04-x86_64
 -   ev6fyzz	      ^libfabric@1.13.2%clang@7.0.0~debug~kdreg fabrics=sockets,tcp,udp arch=linux-ubuntu18.04-x86_64

==> Concretized boost%gcc ^mvapich2 fabrics=mrail
 -   lud3gdo  boost@1.77.0%gcc@7.5.0+atomic+chrono~clanglibcpp~container~context~coroutine+date_time~debug+exception~fiber+filesystem+graph~icu+iostreams+locale+log+math+mpi+multithreaded~numpy~pic+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer~versionedlayout+wave cxxstd=98 patches=93f4aad8f88d1437e50d95a2d066390ef3753b99ef5de24f7a46bc083bd6df06,b8569d7d4c3ef0501a39857126a2b0a88519bf256c29f3252a6958916ce82255 visibility=hidden arch=linux-ubuntu18.04-x86_64
[+]  55rtzz4	  ^bzip2@1.0.8%gcc@7.5.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
[+]  kg5jymj	      ^diffutils@3.8%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  qi7dxj6		  ^libiconv@1.16%gcc@7.5.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
 -   2b3wvwv	  ^mvapich2@2.3.6%gcc@7.5.0~alloca~cuda~debug+regcache+wrapperrpath ch3_rank_bits=32 fabrics=mrail file_systems=auto process_managers=auto threads=multiple arch=linux-ubuntu18.04-x86_64
 -   rkij5jf	      ^bison@3.8.2%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ybvezwz		  ^m4@1.4.19%gcc@7.5.0+sigsegv patches=9dc5fbd0d5cb1037ab1e6d0ecc74a30df218d0a94bdd5a02759a97f62daca573,bfdffa7c2eb01021d5849b36972c069693654ad826c1a20b53534009a4ec7a89 arch=linux-ubuntu18.04-x86_64
[+]  g2vgcne		      ^libsigsegv@2.13%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  672tzld		  ^perl@5.34.0%gcc@7.5.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
[+]  ue5lnfm		      ^berkeley-db@18.1.40%gcc@7.5.0+cxx~docs+stl patches=b231fcc4d5cff05e5c3a4814f6a5af0e9a966428dc2176540d2c05aff41de522 arch=linux-ubuntu18.04-x86_64
[+]  oftaepj		      ^gdbm@1.19%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  27u6g7p			  ^readline@8.1%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  d34lizg			      ^ncurses@6.2%gcc@7.5.0~symlinks+termlib abi=none arch=linux-ubuntu18.04-x86_64
[+]  ucp6vz7				  ^pkgconf@1.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  3rlgy7y		      ^zlib@1.2.11%gcc@7.5.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
[+]  3susxc4	      ^findutils@4.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ryhmw2g	      ^libpciaccess@0.16%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2kia6gf		  ^libtool@2.4.6%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  h5cf2g4		  ^util-macros@1.19.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2hw4ddh	      ^libxml2@2.9.12%gcc@7.5.0~python arch=linux-ubuntu18.04-x86_64
[+]  nplaaps		  ^xz@5.2.5%gcc@7.5.0~pic libs=shared,static arch=linux-ubuntu18.04-x86_64
 -   zmmkt77	      ^rdma-core@34.0%gcc@7.5.0~ipo build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
[+]  anj6kcx		  ^cmake@3.21.4%gcc@7.5.0~doc+ncurses+openssl+ownlibs~qt build_type=Release arch=linux-ubuntu18.04-x86_64
[+]  lygx3cq		      ^openssl@1.1.1l%gcc@7.5.0~docs certs=system arch=linux-ubuntu18.04-x86_64
 -   yfocy6o		  ^libnl@3.3.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   dgrntdg		      ^flex@2.6.3%gcc@7.5.0+lex~nls arch=linux-ubuntu18.04-x86_64
 -   hynf7wr		  ^py-docutils@0.18%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   o52ww56		      ^py-setuptools@58.2.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   g2gj6mw			  ^python@3.8.12%gcc@7.5.0+bz2+ctypes+dbm~debug+libxml2+lzma~nis~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tix~tkinter~ucs4+uuid+zlib patches=0d98e93189bc278fbc37a50ed7f183bd8aaf249a8e1670a465f0db6bb4f8cf87,4c2457325f2b608b1b6a2c63087df8c26e07db3e3d493caf36a56f0ecf6fb768,f2fd060afc4b4618fe8104c4c5d771f36dc55b1db5a4623785a4ea707ec72fb4 arch=linux-ubuntu18.04-x86_64
 -   j3i7qne			      ^expat@2.4.1%gcc@7.5.0+libbsd arch=linux-ubuntu18.04-x86_64
 -   j5lylsy				  ^libbsd@0.11.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   aq7ydx6				      ^libmd@1.0.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   2zkxpoq			      ^gettext@0.21%gcc@7.5.0+bzip2+curses+git~libunistring+libxml2+tar+xz arch=linux-ubuntu18.04-x86_64
 -   otlzkgd				  ^tar@1.34%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   4bz34d3			      ^libffi@3.3%gcc@7.5.0 patches=26f26c6f29a7ce9bf370ad3ab2610f99365b4bdd7b82e7c31df41a3370d685c0 arch=linux-ubuntu18.04-x86_64
 -   ckghzv6			      ^sqlite@3.36.0%gcc@7.5.0+column_metadata+fts~functions~rtree arch=linux-ubuntu18.04-x86_64
 -   c23s54s			      ^util-linux-uuid@2.36.2%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64

==> Concretized trilinos%gcc+hdf5 ^mpich
[+]  qeqaxle  trilinos@13.0.1%gcc@7.5.0~adios2+amesos+amesos2+anasazi+aztec~basker+belos~boost~chaco~complex~cuda~cuda_rdc~debug~dtk+epetra+epetraext~epetraextbtf~epetraextexperimental~epetraextgraphreorderings~exodus+explicit_template_instantiation~float+fortran~gtest+hdf5~hypre+ifpack+ifpack2~intrepid~intrepid2~ipo~isorropia+kokkos~mesquite~minitensor+ml+mpi+muelu~mumps~nox~openmp~phalanx~piro~python~rol~rythmos+sacado~scorec~shards+shared~shylu~stk~stokhos~stratimikos~strumpack~suite-sparse~superlu~superlu-dist~teko~tempus+tpetra~trilinoscouplings~wrapper~x11~zoltan~zoltan2 build_type=RelWithDebInfo cuda_arch=none cxxstd=14 gotype=long_long arch=linux-ubuntu18.04-x86_64
[+]  anj6kcx	  ^cmake@3.21.4%gcc@7.5.0~doc+ncurses+openssl+ownlibs~qt build_type=Release arch=linux-ubuntu18.04-x86_64
[+]  d34lizg	      ^ncurses@6.2%gcc@7.5.0~symlinks+termlib abi=none arch=linux-ubuntu18.04-x86_64
[+]  ucp6vz7		  ^pkgconf@1.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  lygx3cq	      ^openssl@1.1.1l%gcc@7.5.0~docs certs=system arch=linux-ubuntu18.04-x86_64
[+]  672tzld		  ^perl@5.34.0%gcc@7.5.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
[+]  ue5lnfm		      ^berkeley-db@18.1.40%gcc@7.5.0+cxx~docs+stl patches=b231fcc4d5cff05e5c3a4814f6a5af0e9a966428dc2176540d2c05aff41de522 arch=linux-ubuntu18.04-x86_64
[+]  55rtzz4		      ^bzip2@1.0.8%gcc@7.5.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
[+]  kg5jymj			  ^diffutils@3.8%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  qi7dxj6			      ^libiconv@1.16%gcc@7.5.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  oftaepj		      ^gdbm@1.19%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  27u6g7p			  ^readline@8.1%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  3rlgy7y		      ^zlib@1.2.11%gcc@7.5.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
[+]  qbip6im	  ^hdf5@1.10.7%gcc@7.5.0~cxx~fortran+hl~ipo~java+mpi+shared~szip~threadsafe+tools api=default build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
[+]  idedbjn	      ^mpich@3.4.2%gcc@7.5.0~argobots+fortran+hwloc+hydra+libxml2+pci+romio~slurm~verbs+wrapperrpath device=ch4 netmod=ofi pmi=pmi arch=linux-ubuntu18.04-x86_64
[+]  3susxc4		  ^findutils@4.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  gedgnpg		  ^hwloc@2.6.0%gcc@7.5.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~opencl+pci~rocm+shared arch=linux-ubuntu18.04-x86_64
[+]  ryhmw2g		      ^libpciaccess@0.16%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2kia6gf			  ^libtool@2.4.6%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ybvezwz			      ^m4@1.4.19%gcc@7.5.0+sigsegv patches=9dc5fbd0d5cb1037ab1e6d0ecc74a30df218d0a94bdd5a02759a97f62daca573,bfdffa7c2eb01021d5849b36972c069693654ad826c1a20b53534009a4ec7a89 arch=linux-ubuntu18.04-x86_64
[+]  g2vgcne				  ^libsigsegv@2.13%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  h5cf2g4			  ^util-macros@1.19.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2hw4ddh		      ^libxml2@2.9.12%gcc@7.5.0~python arch=linux-ubuntu18.04-x86_64
[+]  nplaaps			  ^xz@5.2.5%gcc@7.5.0~pic libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  kwxupt5		  ^libfabric@1.13.2%gcc@7.5.0~debug~kdreg fabrics=sockets,tcp,udp arch=linux-ubuntu18.04-x86_64
[+]  euw6zdu	  ^openblas@0.3.18%gcc@7.5.0~bignuma~consistent_fpcsr~ilp64+locking+pic+shared threads=none arch=linux-ubuntu18.04-x86_64

==> Concretized trilinos%clang+hdf5 ^mpich
 -   db7rxty  trilinos@13.0.1%clang@7.0.0~adios2+amesos+amesos2+anasazi+aztec~basker+belos~boost~chaco~complex~cuda~cuda_rdc~debug~dtk+epetra+epetraext~epetraextbtf~epetraextexperimental~epetraextgraphreorderings~exodus+explicit_template_instantiation~float+fortran~gtest+hdf5~hypre+ifpack+ifpack2~intrepid~intrepid2~ipo~isorropia+kokkos~mesquite~minitensor+ml+mpi+muelu~mumps~nox~openmp~phalanx~piro~python~rol~rythmos+sacado~scorec~shards+shared~shylu~stk~stokhos~stratimikos~strumpack~suite-sparse~superlu~superlu-dist~teko~tempus+tpetra~trilinoscouplings~wrapper~x11~zoltan~zoltan2 build_type=RelWithDebInfo cuda_arch=none cxxstd=14 gotype=long_long arch=linux-ubuntu18.04-x86_64
 -   shvszqm	  ^cmake@3.21.4%clang@7.0.0~doc+ncurses+openssl+ownlibs~qt build_type=Release arch=linux-ubuntu18.04-x86_64
 -   z5r77u3	      ^ncurses@6.2%clang@7.0.0~symlinks+termlib abi=none arch=linux-ubuntu18.04-x86_64
 -   qbshn4o		  ^pkgconf@1.8.0%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   juwdmb6	      ^openssl@1.1.1l%clang@7.0.0~docs certs=system arch=linux-ubuntu18.04-x86_64
 -   ib4owzp		  ^perl@5.34.0%clang@7.0.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
 -   mkrgho3		      ^berkeley-db@18.1.40%clang@7.0.0+cxx~docs+stl patches=b231fcc4d5cff05e5c3a4814f6a5af0e9a966428dc2176540d2c05aff41de522 arch=linux-ubuntu18.04-x86_64
 -   dskruzj		      ^bzip2@1.0.8%clang@7.0.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
 -   23gano6			  ^diffutils@3.8%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   mgvvs5x			      ^libiconv@1.16%clang@7.0.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
 -   fsnyyd5		      ^gdbm@1.19%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   mxotfvm			  ^readline@8.1%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
[+]  atdrszv		      ^zlib@1.2.11%clang@7.0.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
 -   2wfevcd	  ^hdf5@1.10.7%clang@7.0.0~cxx~fortran+hl~ipo~java+mpi+shared~szip~threadsafe+tools api=default build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
 -   gm23ibl	      ^mpich@3.4.2%clang@7.0.0~argobots+fortran+hwloc+hydra+libxml2+pci+romio~slurm~verbs+wrapperrpath device=ch4 netmod=ofi pmi=pmi arch=linux-ubuntu18.04-x86_64
 -   glvjtkb		  ^findutils@4.8.0%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   zu2prep		  ^hwloc@2.6.0%clang@7.0.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~opencl+pci~rocm+shared arch=linux-ubuntu18.04-x86_64
 -   qc7w5b4		      ^libpciaccess@0.16%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   aopb6i6			  ^libtool@2.4.6%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   qwhwlqn			      ^m4@1.4.19%clang@7.0.0+sigsegv patches=9dc5fbd0d5cb1037ab1e6d0ecc74a30df218d0a94bdd5a02759a97f62daca573,bfdffa7c2eb01021d5849b36972c069693654ad826c1a20b53534009a4ec7a89 arch=linux-ubuntu18.04-x86_64
 -   qymd6m4				  ^libsigsegv@2.13%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   ho4twjl			  ^util-macros@1.19.3%clang@7.0.0 arch=linux-ubuntu18.04-x86_64
 -   u5753la		      ^libxml2@2.9.12%clang@7.0.0~python arch=linux-ubuntu18.04-x86_64
 -   kimktcl			  ^xz@5.2.5%clang@7.0.0~pic libs=shared,static arch=linux-ubuntu18.04-x86_64
 -   ev6fyzz		  ^libfabric@1.13.2%clang@7.0.0~debug~kdreg fabrics=sockets,tcp,udp arch=linux-ubuntu18.04-x86_64
 -   u6b2fi4	  ^openblas@0.3.18%clang@7.0.0~bignuma~consistent_fpcsr~ilp64+locking+pic+shared threads=none arch=linux-ubuntu18.04-x86_64

==> Concretized trilinos%gcc+hdf5 ^mvapich2 fabrics=mrail
 -   22csrsr  trilinos@13.0.1%gcc@7.5.0~adios2+amesos+amesos2+anasazi+aztec~basker+belos~boost~chaco~complex~cuda~cuda_rdc~debug~dtk+epetra+epetraext~epetraextbtf~epetraextexperimental~epetraextgraphreorderings~exodus+explicit_template_instantiation~float+fortran~gtest+hdf5~hypre+ifpack+ifpack2~intrepid~intrepid2~ipo~isorropia+kokkos~mesquite~minitensor+ml+mpi+muelu~mumps~nox~openmp~phalanx~piro~python~rol~rythmos+sacado~scorec~shards+shared~shylu~stk~stokhos~stratimikos~strumpack~suite-sparse~superlu~superlu-dist~teko~tempus+tpetra~trilinoscouplings~wrapper~x11~zoltan~zoltan2 build_type=RelWithDebInfo cuda_arch=none cxxstd=14 gotype=long_long arch=linux-ubuntu18.04-x86_64
[+]  anj6kcx	  ^cmake@3.21.4%gcc@7.5.0~doc+ncurses+openssl+ownlibs~qt build_type=Release arch=linux-ubuntu18.04-x86_64
[+]  d34lizg	      ^ncurses@6.2%gcc@7.5.0~symlinks+termlib abi=none arch=linux-ubuntu18.04-x86_64
[+]  ucp6vz7		  ^pkgconf@1.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  lygx3cq	      ^openssl@1.1.1l%gcc@7.5.0~docs certs=system arch=linux-ubuntu18.04-x86_64
[+]  672tzld		  ^perl@5.34.0%gcc@7.5.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
[+]  ue5lnfm		      ^berkeley-db@18.1.40%gcc@7.5.0+cxx~docs+stl patches=b231fcc4d5cff05e5c3a4814f6a5af0e9a966428dc2176540d2c05aff41de522 arch=linux-ubuntu18.04-x86_64
[+]  55rtzz4		      ^bzip2@1.0.8%gcc@7.5.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
[+]  kg5jymj			  ^diffutils@3.8%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  qi7dxj6			      ^libiconv@1.16%gcc@7.5.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  oftaepj		      ^gdbm@1.19%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  27u6g7p			  ^readline@8.1%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  3rlgy7y		      ^zlib@1.2.11%gcc@7.5.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
 -   dhal33w	  ^hdf5@1.10.7%gcc@7.5.0~cxx~fortran+hl~ipo~java+mpi+shared~szip~threadsafe+tools api=default build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
 -   2b3wvwv	      ^mvapich2@2.3.6%gcc@7.5.0~alloca~cuda~debug+regcache+wrapperrpath ch3_rank_bits=32 fabrics=mrail file_systems=auto process_managers=auto threads=multiple arch=linux-ubuntu18.04-x86_64
 -   rkij5jf		  ^bison@3.8.2%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ybvezwz		      ^m4@1.4.19%gcc@7.5.0+sigsegv patches=9dc5fbd0d5cb1037ab1e6d0ecc74a30df218d0a94bdd5a02759a97f62daca573,bfdffa7c2eb01021d5849b36972c069693654ad826c1a20b53534009a4ec7a89 arch=linux-ubuntu18.04-x86_64
[+]  g2vgcne			  ^libsigsegv@2.13%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  3susxc4		  ^findutils@4.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  ryhmw2g		  ^libpciaccess@0.16%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2kia6gf		      ^libtool@2.4.6%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  h5cf2g4		      ^util-macros@1.19.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  2hw4ddh		  ^libxml2@2.9.12%gcc@7.5.0~python arch=linux-ubuntu18.04-x86_64
[+]  nplaaps		      ^xz@5.2.5%gcc@7.5.0~pic libs=shared,static arch=linux-ubuntu18.04-x86_64
 -   zmmkt77		  ^rdma-core@34.0%gcc@7.5.0~ipo build_type=RelWithDebInfo arch=linux-ubuntu18.04-x86_64
 -   yfocy6o		      ^libnl@3.3.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   dgrntdg			  ^flex@2.6.3%gcc@7.5.0+lex~nls arch=linux-ubuntu18.04-x86_64
 -   hynf7wr		      ^py-docutils@0.18%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   o52ww56			  ^py-setuptools@58.2.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   g2gj6mw			      ^python@3.8.12%gcc@7.5.0+bz2+ctypes+dbm~debug+libxml2+lzma~nis~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tix~tkinter~ucs4+uuid+zlib patches=0d98e93189bc278fbc37a50ed7f183bd8aaf249a8e1670a465f0db6bb4f8cf87,4c2457325f2b608b1b6a2c63087df8c26e07db3e3d493caf36a56f0ecf6fb768,f2fd060afc4b4618fe8104c4c5d771f36dc55b1db5a4623785a4ea707ec72fb4 arch=linux-ubuntu18.04-x86_64
 -   j3i7qne				  ^expat@2.4.1%gcc@7.5.0+libbsd arch=linux-ubuntu18.04-x86_64
 -   j5lylsy				      ^libbsd@0.11.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   aq7ydx6					  ^libmd@1.0.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   2zkxpoq				  ^gettext@0.21%gcc@7.5.0+bzip2+curses+git~libunistring+libxml2+tar+xz arch=linux-ubuntu18.04-x86_64
 -   otlzkgd				      ^tar@1.34%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   4bz34d3				  ^libffi@3.3%gcc@7.5.0 patches=26f26c6f29a7ce9bf370ad3ab2610f99365b4bdd7b82e7c31df41a3370d685c0 arch=linux-ubuntu18.04-x86_64
 -   ckghzv6				  ^sqlite@3.36.0%gcc@7.5.0+column_metadata+fts~functions~rtree arch=linux-ubuntu18.04-x86_64
 -   c23s54s				  ^util-linux-uuid@2.36.2%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  gedgnpg	  ^hwloc@2.6.0%gcc@7.5.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~opencl+pci~rocm+shared arch=linux-ubuntu18.04-x86_64
[+]  euw6zdu	  ^openblas@0.3.18%gcc@7.5.0~bignuma~consistent_fpcsr~ilp64+locking+pic+shared threads=none arch=linux-ubuntu18.04-x86_64

==> Concretized python
 -   g2gj6mw  python@3.8.12%gcc@7.5.0+bz2+ctypes+dbm~debug+libxml2+lzma~nis~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tix~tkinter~ucs4+uuid+zlib patches=0d98e93189bc278fbc37a50ed7f183bd8aaf249a8e1670a465f0db6bb4f8cf87,4c2457325f2b608b1b6a2c63087df8c26e07db3e3d493caf36a56f0ecf6fb768,f2fd060afc4b4618fe8104c4c5d771f36dc55b1db5a4623785a4ea707ec72fb4 arch=linux-ubuntu18.04-x86_64
[+]  55rtzz4	  ^bzip2@1.0.8%gcc@7.5.0~debug~pic+shared arch=linux-ubuntu18.04-x86_64
[+]  kg5jymj	      ^diffutils@3.8%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  qi7dxj6		  ^libiconv@1.16%gcc@7.5.0 libs=shared,static arch=linux-ubuntu18.04-x86_64
 -   j3i7qne	  ^expat@2.4.1%gcc@7.5.0+libbsd arch=linux-ubuntu18.04-x86_64
 -   j5lylsy	      ^libbsd@0.11.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   aq7ydx6		  ^libmd@1.0.3%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  oftaepj	  ^gdbm@1.19%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  27u6g7p	      ^readline@8.1%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  d34lizg		  ^ncurses@6.2%gcc@7.5.0~symlinks+termlib abi=none arch=linux-ubuntu18.04-x86_64
[+]  ucp6vz7		      ^pkgconf@1.8.0%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   2zkxpoq	  ^gettext@0.21%gcc@7.5.0+bzip2+curses+git~libunistring+libxml2+tar+xz arch=linux-ubuntu18.04-x86_64
[+]  2hw4ddh	      ^libxml2@2.9.12%gcc@7.5.0~python arch=linux-ubuntu18.04-x86_64
[+]  nplaaps		  ^xz@5.2.5%gcc@7.5.0~pic libs=shared,static arch=linux-ubuntu18.04-x86_64
[+]  3rlgy7y		  ^zlib@1.2.11%gcc@7.5.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64
 -   otlzkgd	      ^tar@1.34%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
 -   4bz34d3	  ^libffi@3.3%gcc@7.5.0 patches=26f26c6f29a7ce9bf370ad3ab2610f99365b4bdd7b82e7c31df41a3370d685c0 arch=linux-ubuntu18.04-x86_64
[+]  lygx3cq	  ^openssl@1.1.1l%gcc@7.5.0~docs certs=system arch=linux-ubuntu18.04-x86_64
[+]  672tzld	      ^perl@5.34.0%gcc@7.5.0+cpanm+shared+threads arch=linux-ubuntu18.04-x86_64
[+]  ue5lnfm		  ^berkeley-db@18.1.40%gcc@7.5.0+cxx~docs+stl patches=b231fcc4d5cff05e5c3a4814f6a5af0e9a966428dc2176540d2c05aff41de522 arch=linux-ubuntu18.04-x86_64
 -   ckghzv6	  ^sqlite@3.36.0%gcc@7.5.0+column_metadata+fts~functions~rtree arch=linux-ubuntu18.04-x86_64
 -   c23s54s	  ^util-linux-uuid@2.36.2%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64

==> Concretized tcl
 -   oysrbht  tcl@8.6.11%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64
[+]  3rlgy7y	  ^zlib@1.2.11%gcc@7.5.0+optimize+pic+shared arch=linux-ubuntu18.04-x86_64

$ spack find -c
==> In environment /home/spack/code
==> Root specs
python	tcl

-- no arch / clang ----------------------------------------------
boost%clang  trilinos%clang +hdf5

-- no arch / gcc ------------------------------------------------
boost%gcc  boost%gcc  trilinos%gcc +hdf5  trilinos%gcc +hdf5

==> Concretized roots
-- linux-ubuntu18.04-x86_64 / clang@7.0.0 -----------------------
boost@1.77.0  trilinos@13.0.1

-- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
boost@1.77.0  boost@1.77.0  python@3.8.12  tcl@8.6.11  trilinos@13.0.1	trilinos@13.0.1

==> 27 installed packages
-- linux-ubuntu18.04-x86_64 / clang@7.0.0 -----------------------
zlib@1.2.11

-- linux-ubuntu18.04-x86_64 / gcc@7.5.0 -------------------------
berkeley-db@18.1.40  diffutils@3.8    hdf5@1.10.7	libiconv@1.16	   libtool@2.4.6   mpich@3.4.2	    openssl@1.1.1l  readline@8.1	xz@5.2.5
bzip2@1.0.8	     findutils@4.8.0  hwloc@2.6.0	libpciaccess@0.16  libxml2@2.9.12  ncurses@6.2	    perl@5.34.0     trilinos@13.0.1	zlib@1.2.11
cmake@3.21.4	     gdbm@1.19	      libfabric@1.13.2	libsigsegv@2.13    m4@1.4.19	   openblas@0.3.18  pkgconf@1.8.0   util-macros@1.19.3

View descriptors

We told Spack not to create a view for this stack earlier because simple views won’t work with stacks. We’ve been concretizing multiple packages of the same name – they will conflict if linked into the same view.

To work around this, we will use a view descriptor. This allows us to define how each package is linked into the view, which packages are linked into the view, or both.

Let’s edit our spack.yaml file one last time.

# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration setings.
spack:
  # named lists
  definitions:
    - packages: [boost, trilinos+hdf5]
    - mpis: [mpich, mvapich2 fabrics=mrail]
    - compilers: ['%gcc']
    - compilers: ['%clang']
      when: 'env.get("SPACK_STACK_USE_CLANG", "") == "1"'
    - singleton_packages: [python, tcl]

  specs:
    - matrix:
        - [$packages]
        - [$^mpis]
        - [$compilers]
      exclude:
        - '%clang ^mvapich2'
    - $singleton_packages

  view:
    default:
      root: views/default
      select: ['%gcc']
      exclude: [^mvapich2, 'hwloc@:1.99']
    full:
      root: views/full
      projections:
        ^mpi: '{name}/{name}-{version}-{^mpi.name}-{^mpi.version}-{compiler.name}-{compiler.version}'
        all: '{name}/{name}-{version}-{compiler.name}-{compiler.version}'

We won’t see the views fully filled-in since we don’t have time to install everything in the stack during the tutorial, but the packages that already happen to be installed will be linked into the views.

$ spack concretize
==> Updating view at /home/spack/code/views/default
==> Updating view at /home/spack/code/views/full
$ ls views/default
TrilinosRepoVersion.txt  bin  etc  include  lib  man  sbin  share
$ ls views/default/lib
cmake			  libform.a			libkokkoscore.so	    libncurses++w_g.a		    libteuchosparameterlist.so
engines-1.1		  libform.so			libkokkoscore.so.13	    libncurses.a		    libteuchosparameterlist.so.13
libModeLaplace.so	  libform.so.6			libkokkoscore.so.3.1.1	    libncurses.so		    libteuchosparameterlist.so.13.0
libModeLaplace.so.13	  libform.so.6.2		libkokkoskernels.so	    libncurses.so.6		    libteuchosparser.so
libModeLaplace.so.13.0	  libform_g.a			libkokkoskernels.so.13	    libncurses.so.6.2		    libteuchosparser.so.13
libamesos.so		  libformw.a			libkokkoskernels.so.13.0    libncurses_g.a		    libteuchosparser.so.13.0
libamesos.so.13 	  libformw.so			libkokkostsqr.so	    libncursesw.a		    libteuchosremainder.so
libamesos.so.13.0	  libformw.so.6 		libkokkostsqr.so.13	    libncursesw.so		    libteuchosremainder.so.13
libamesos2.so		  libformw.so.6.2		libkokkostsqr.so.13.0	    libncursesw.so.6		    libteuchosremainder.so.13.0
libamesos2.so.13	  libformw_g.a			liblzma.a		    libncursesw.so.6.2		    libtinfo.a
libamesos2.so.13.0	  libgaleri-epetra.so		liblzma.so		    libncursesw_g.a		    libtinfo.so
libanasazi.so		  libgaleri-epetra.so.13	liblzma.so.5		    libopa.so			    libtinfo.so.6
libanasazi.so.13	  libgaleri-epetra.so.13.0	liblzma.so.5.2.5	    libopenblas-r0.3.18.a	    libtinfo.so.6.2
libanasazi.so.13.0	  libgaleri-xpetra.so		libmenu.a		    libopenblas-r0.3.18.so	    libtinfo_g.a
libanasaziepetra.so	  libgaleri-xpetra.so.13	libmenu.so		    libopenblas.a		    libtinfow.a
libanasaziepetra.so.13	  libgaleri-xpetra.so.13.0	libmenu.so.6		    libopenblas.so		    libtinfow.so
libanasaziepetra.so.13.0  libgdbm.a			libmenu.so.6.2		    libopenblas.so.0		    libtinfow.so.6
libanasazitpetra.so	  libgdbm.so			libmenu_g.a		    libpanel.a			    libtinfow.so.6.2
libanasazitpetra.so.13	  libgdbm.so.6			libmenuw.a		    libpanel.so 		    libtinfow_g.a
libanasazitpetra.so.13.0  libgdbm.so.6.0.0		libmenuw.so		    libpanel.so.6		    libtpetra.so
libaztecoo.so		  libgdbm_compat.a		libmenuw.so.6		    libpanel.so.6.2		    libtpetra.so.13
libaztecoo.so.13	  libgdbm_compat.so		libmenuw.so.6.2 	    libpanel_g.a		    libtpetra.so.13.0
libaztecoo.so.13.0	  libgdbm_compat.so.4		libmenuw_g.a		    libpanelw.a 		    libtpetraclassic.so
libbelos.so		  libgdbm_compat.so.4.0.0	libml.so		    libpanelw.so		    libtpetraclassic.so.13
libbelos.so.13		  libhdf5.a			libml.so.13		    libpanelw.so.6		    libtpetraclassic.so.13.0
libbelos.so.13.0	  libhdf5.settings		libml.so.13.0		    libpanelw.so.6.2		    libtpetraclassiclinalg.so
libbelosepetra.so	  libhdf5.so			libmpi.a		    libpanelw_g.a		    libtpetraclassiclinalg.so.13
libbelosepetra.so.13	  libhdf5.so.103		libmpi.so		    libpciaccess.a		    libtpetraclassiclinalg.so.13.0
libbelosepetra.so.13.0	  libhdf5.so.103.3.0		libmpi.so.12		    libpciaccess.so		    libtpetraclassicnodeapi.so
libbelostpetra.so	  libhdf5_hl.a			libmpi.so.12.1.11	    libpciaccess.so.0		    libtpetraclassicnodeapi.so.13
libbelostpetra.so.13	  libhdf5_hl.so 		libmpich.so		    libpciaccess.so.0.11.1	    libtpetraclassicnodeapi.so.13.0
libbelostpetra.so.13.0	  libhdf5_hl.so.100		libmpichcxx.so		    libpkgconf.a		    libtpetraext.so
libbelosxpetra.so	  libhdf5_hl.so.100.1.4 	libmpichf90.so		    libpkgconf.so		    libtpetraext.so.13
libbelosxpetra.so.13	  libhdf5_tools.a		libmpicxx.a		    libpkgconf.so.3		    libtpetraext.so.13.0
libbelosxpetra.so.13.0	  libhdf5_tools.so		libmpicxx.so		    libpkgconf.so.3.0.0 	    libtpetrainout.so
libbz2.a		  libhdf5_tools.so.102		libmpicxx.so.12 	    libreadline.a		    libtpetrainout.so.13
libbz2.so		  libhdf5_tools.so.102.0.0	libmpicxx.so.12.1.11	    libreadline.so		    libtpetrainout.so.13.0
libbz2.so.1		  libhistory.a			libmpifort.a		    libreadline.so.8		    libtrilinosss.so
libbz2.so.1.0		  libhistory.so 		libmpifort.so		    libreadline.so.8.1		    libtrilinosss.so.13
libbz2.so.1.0.8 	  libhistory.so.8		libmpifort.so.12	    libsacado.so		    libtrilinosss.so.13.0
libcharset.a		  libhistory.so.8.1		libmpifort.so.12.1.11	    libsacado.so.13		    libtriutils.so
libcharset.so		  libhwloc.so			libmpl.so		    libsacado.so.13.0		    libtriutils.so.13
libcharset.so.1 	  libhwloc.so.15		libmuelu-adapters.so	    libssl.a			    libtriutils.so.13.0
libcharset.so.1.0.0	  libhwloc.so.15.5.1		libmuelu-adapters.so.13     libssl.so			    libxml2.a
libcrypto.a		  libiconv.a			libmuelu-adapters.so.13.0   libssl.so.1.1		    libxml2.so
libcrypto.so		  libiconv.so			libmuelu-interface.so	    libteuchoscomm.so		    libxml2.so.2
libcrypto.so.1.1	  libiconv.so.2 		libmuelu-interface.so.13    libteuchoscomm.so.13	    libxml2.so.2.9.12
libcurses.a		  libiconv.so.2.6.1		libmuelu-interface.so.13.0  libteuchoscomm.so.13.0	    libxpetra-sup.so
libcurses.so		  libifpack.so			libmuelu.so		    libteuchoscore.so		    libxpetra-sup.so.13
libepetra.so		  libifpack.so.13		libmuelu.so.13		    libteuchoscore.so.13	    libxpetra-sup.so.13.0
libepetra.so.13 	  libifpack.so.13.0		libmuelu.so.13.0	    libteuchoscore.so.13.0	    libxpetra.so
libepetra.so.13.0	  libifpack2.so 		libncurses++.a		    libteuchoskokkoscomm.so	    libxpetra.so.13
libepetraext.so 	  libifpack2.so.13		libncurses++.so 	    libteuchoskokkoscomm.so.13	    libxpetra.so.13.0
libepetraext.so.13	  libifpack2.so.13.0		libncurses++.so.6	    libteuchoskokkoscomm.so.13.0    libz.a
libepetraext.so.13.0	  libkokkosalgorithms.so	libncurses++.so.6.2	    libteuchoskokkoscompat.so	    libz.so
libfabric.a		  libkokkosalgorithms.so.13	libncurses++_g.a	    libteuchoskokkoscompat.so.13    libz.so.1
libfabric.so		  libkokkosalgorithms.so.13.0	libncurses++w.a 	    libteuchoskokkoscompat.so.13.0  libz.so.1.2.11
libfabric.so.1		  libkokkoscontainers.so	libncurses++w.so	    libteuchosnumerics.so	    pkgconfig
libfabric.so.1.16.2	  libkokkoscontainers.so.13	libncurses++w.so.6	    libteuchosnumerics.so.13	    terminfo
libfmpich.so		  libkokkoscontainers.so.3.1.1	libncurses++w.so.6.2	    libteuchosnumerics.so.13.0	    xml2Conf.sh
$ ls views/full
bzip2  gdbm  hdf5  hwloc  libfabric  libiconv  libpciaccess  libxml2  mpich  ncurses  openblas	openssl  pkgconf  readline  trilinos  xz  zlib
$ ls views/full/zlib
zlib-1.2.11-clang-7.0.0  zlib-1.2.11-gcc-7.5.0
$ ls views/full/zlib/zlib-1.2.11-gcc-7.5.0
include  lib  share
$ ls views/full/zlib/zlib-1.2.11-gcc-7.5.0/lib
libz.a	libz.so  libz.so.1  libz.so.1.2.11  pkgconfig

The view descriptor also contains a link key, which is either “all” or “roots”. The default behavior, as we have seen, is to link all packages, including implicit dependencies, into the view. The “roots” option links only root packages into the view.

# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration setings.
spack:
  # named lists
  definitions:
    - packages: [boost, trilinos+hdf5]
    - mpis: [mpich, mvapich2 fabrics=mrail]
    - compilers: ['%gcc']
    - compilers: ['%clang']
      when: 'env.get("SPACK_STACK_USE_CLANG", "") == "1"'
    - singleton_packages: [python, tcl]

  specs:
    - matrix:
        - [$packages]
        - [$^mpis]
        - [$compilers]
      exclude:
        - '%clang ^mvapich2'
    - $singleton_packages

  view:
    default:
      root: views/default
      select: ['%gcc']
      exclude: [^mvapich2]
      link: roots
    full:
      root: views/full
      projections:
        ^mpi: '{name}/{name}-{version}-{^mpi.name}-{^mpi.version}-{compiler.name}-{compiler.version}'
        all: '{name}/{name}-{version}-{compiler.name}-{compiler.version}'
$ spack concretize
==> Updating view at /home/spack/code/views/default
$ ls views/default
TrilinosRepoVersion.txt  bin  include  lib
$ ls views/default/lib
cmake			  libbelostpetra.so	       libkokkoscontainers.so.13     libteuchoscomm.so.13.0	      libtpetraclassiclinalg.so
libModeLaplace.so	  libbelostpetra.so.13	       libkokkoscontainers.so.3.1.1  libteuchoscore.so		      libtpetraclassiclinalg.so.13
libModeLaplace.so.13	  libbelostpetra.so.13.0       libkokkoscore.so 	     libteuchoscore.so.13	      libtpetraclassiclinalg.so.13.0
libModeLaplace.so.13.0	  libbelosxpetra.so	       libkokkoscore.so.13	     libteuchoscore.so.13.0	      libtpetraclassicnodeapi.so
libamesos.so		  libbelosxpetra.so.13	       libkokkoscore.so.3.1.1	     libteuchoskokkoscomm.so	      libtpetraclassicnodeapi.so.13
libamesos.so.13 	  libbelosxpetra.so.13.0       libkokkoskernels.so	     libteuchoskokkoscomm.so.13       libtpetraclassicnodeapi.so.13.0
libamesos.so.13.0	  libepetra.so		       libkokkoskernels.so.13	     libteuchoskokkoscomm.so.13.0     libtpetraext.so
libamesos2.so		  libepetra.so.13	       libkokkoskernels.so.13.0      libteuchoskokkoscompat.so	      libtpetraext.so.13
libamesos2.so.13	  libepetra.so.13.0	       libkokkostsqr.so 	     libteuchoskokkoscompat.so.13     libtpetraext.so.13.0
libamesos2.so.13.0	  libepetraext.so	       libkokkostsqr.so.13	     libteuchoskokkoscompat.so.13.0   libtpetrainout.so
libanasazi.so		  libepetraext.so.13	       libkokkostsqr.so.13.0	     libteuchosnumerics.so	      libtpetrainout.so.13
libanasazi.so.13	  libepetraext.so.13.0	       libml.so 		     libteuchosnumerics.so.13	      libtpetrainout.so.13.0
libanasazi.so.13.0	  libgaleri-epetra.so	       libml.so.13		     libteuchosnumerics.so.13.0       libtrilinosss.so
libanasaziepetra.so	  libgaleri-epetra.so.13       libml.so.13.0		     libteuchosparameterlist.so       libtrilinosss.so.13
libanasaziepetra.so.13	  libgaleri-epetra.so.13.0     libmuelu-adapters.so	     libteuchosparameterlist.so.13    libtrilinosss.so.13.0
libanasaziepetra.so.13.0  libgaleri-xpetra.so	       libmuelu-adapters.so.13	     libteuchosparameterlist.so.13.0  libtriutils.so
libanasazitpetra.so	  libgaleri-xpetra.so.13       libmuelu-adapters.so.13.0     libteuchosparser.so	      libtriutils.so.13
libanasazitpetra.so.13	  libgaleri-xpetra.so.13.0     libmuelu-interface.so	     libteuchosparser.so.13	      libtriutils.so.13.0
libanasazitpetra.so.13.0  libifpack.so		       libmuelu-interface.so.13      libteuchosparser.so.13.0	      libxpetra-sup.so
libaztecoo.so		  libifpack.so.13	       libmuelu-interface.so.13.0    libteuchosremainder.so	      libxpetra-sup.so.13
libaztecoo.so.13	  libifpack.so.13.0	       libmuelu.so		     libteuchosremainder.so.13	      libxpetra-sup.so.13.0
libaztecoo.so.13.0	  libifpack2.so 	       libmuelu.so.13		     libteuchosremainder.so.13.0      libxpetra.so
libbelos.so		  libifpack2.so.13	       libmuelu.so.13.0 	     libtpetra.so		      libxpetra.so.13
libbelos.so.13		  libifpack2.so.13.0	       libsacado.so		     libtpetra.so.13		      libxpetra.so.13.0
libbelos.so.13.0	  libkokkosalgorithms.so       libsacado.so.13		     libtpetra.so.13.0
libbelosepetra.so	  libkokkosalgorithms.so.13    libsacado.so.13.0	     libtpetraclassic.so
libbelosepetra.so.13	  libkokkosalgorithms.so.13.0  libteuchoscomm.so	     libtpetraclassic.so.13
libbelosepetra.so.13.0	  libkokkoscontainers.so       libteuchoscomm.so.13	     libtpetraclassic.so.13.0
$ ls views/full
bzip2  gdbm  hdf5  hwloc  libfabric  libiconv  libpciaccess  libxml2  mpich  ncurses  openblas	openssl  pkgconf  readline  trilinos  xz  zlib

Now we see only the root libraries in the default view. The rest are hidden, but are still available in the full view.