* basic functionality to install spec from a binary cache when it's available; this spiders each cache for each package and could likely be more efficient by caching the results of the first check
* add spec to db after installing from binary cache
* cache (in memory) spec listings retrieved from binary caches
* print a warning vs. failing when no mirrors are configured to retrieve pre-built Spack packages
* make automatic retrieval of pre-built spack packages from mirrors optional
* no code was using the links stored in the dictionary returned by get_specs, so this simplifies the logic to return only a set of specs
* print package prefix after installing from binary cache
* provide more information to user on install progress
* Add bowtie2@2.3.0, fix dependencies and sbangs
Add support for bowtie2@2.3.0
- digest
- a patch for 2.3.0 that parallels the existing package. Truth be
told it builds (for me) without this, but I'm assuming that they're
there for a reason...).
- tune up dependencies
- need tbb
- don't need readline or zlib
Several things were installed with sbang's that use `/usr/bin/env` to
fine perl or python. Fix the dependency and clean up the sbang lines.
* Fix python exe name, avoid path banging
I'd cut and pasted the python bit from the perl bit and missed one
reference to perl.
While I'm there, use the cleaner `spec['perl'].command` instead of
banging together the path from its bits.
* Fix up the "when" constraints on the dependencies
Get the edge cases right.
- 2.2.5 doesn't need tbb, 2.3.[01] do.
- 2.3.1 needs readline and zlib.
The go team released 1.9.2 which includes fixes for some things
that 1.9.1 broke:
> ... include fixes to the compiler, linker, runtime, documentation, go command, and the crypto/x509, database/sql, log, and net/smtp packages. They include a fix to a bug introduced in Go 1.9.1 and Go 1.8.4 that broke "go get" of non-Git repositories under certain conditions.
This updates the logic for Package.extends so that if the spec
associated with the package is not concrete, it will report true if
the package *could extend* the given spec; generally speaking a
package could extend a spec as long as none of the details associated
with its extendee spec conflict with the given spec. When the spec
associated with the package is concrete, this function will only
report whether the package *does extend* the given spec. When both
the specs are concrete, the semantics are the same as before.
* Exodus: skip the -G "Unix Makefiles" part
The problem is that spack passes -G "Unix Makefiles" into cmake, which normally
works. But in the Exodus package, it is being passed into a bash wrapper
script. In there, the $@ then loses the information about "Unix Makefiles"
being just one argument, and in effect passes -G Unix Makefiles into the cmake
(without quotes), and so cmake only sees -G Unix, and then fails. This is a
known problem with bash with no simple solutions. As a workaround, this patch
skips the first two arguments, i.e., -G and "Unix Makefiles". This makes it
work.
Fixes#5895.
* Port exodusii to cmake
The cmake options were taken from the cmake-exodus bash script and ported to
spack directly.
* Use variant forwarding to forward the 'mpi'
Now instead of
spack install exodusii~mpi^netcdf~mpi^hdf5~mpi
one can just use
spack install exodusii~mpi
* When creating a tar of a package for a build cache, symlinks are
preserved (the corresponding path in the newly-created tarfile will
be a symlink rather than a copy of the file)
* Dont add external packages to a build cache
* When installing from binary cache, don't create install prefix until
verification is complete