Merge work from multiple contributors on the mesa package. This
includes the following changes and decisions:
* Added in mesa +hwrender support
* make +swrender the default selection since this represents a very
common usage case (ie, cluster usage)
* leave ~llvm as the default, since inadvertently building this package
could take a very long time. May need to revisit this assumption in
the future since the performance difference can be quite substantial.
* build libGLESv1+2 and libGL for all variants
* avoid dependence on dri/libdrm when ~hwrender
* disable gallium drivers if none are requested
- '\b' in regular expression needs to be in a raw string (r'\b')
- Regression test that would've caught this was unintentionally disabled
- This fixes the string and the test
Fixes a problem in ymake-filter: The line buffer is currently hardcoded to be
2048 bytes large but some Makefiles contain lines longer than that. This
caused the Makefiles to sometimes not be generated, consequently failing parts
of the build.
Fixes#4112
This commit extends the support of the AutotoolsPackage methods
`with_or_without` and `enable_or_disable` to bool-valued variants. It
also defines for those functions a convenience short-cut if the
activation parameter is the prefix of a spec (like in
`--with-{pkg}={prefix}`).
This commit also includes:
* Updates to viennarna and adios accordingly: they have been modified to
use `enable_or_disable` and `with_or_without`
* Improved docstrings in `autotools.py`. Raise `KeyError` if name is
not a variant.
* fix armadillo macro expansions
- most compilers `#define linux 1`
- armadillo does raw pasting of include directories in code
- this means macro expansion of `linux-x86_64` -> `1-x86_64`
- new version, previous download url seems broken
- lib64 instead of lib?
- needs verification, was required for intel, works for others
* flake8: two spaces is modules, one for classes
* add some explanation of how the patch works
* use p1 patch file with -U0 to prepend undef linux
* armadillo v8.100.1
* Improve PDToolkit support for different compilers
PDT dependency of TAU profiler doesn't use CC, CXX eb variables and needs command line arguments for compiler identification. If we don't pass compiler id then it uses gcc and result in link time errors while building TAU. This patch fixes it; tested with PGI and Intel compilers.
Renames the existing bootstrap command to 'clone'. Repurposes
'spack bootstrap' to install packages that are useful to the
operation of Spack (for now this is just environment-modules).
For bash and ksh users running setup-env.sh, if a Spack-installed
instance of environment-modules is detected and environment modules
and dotkit are not externally available, Spack will define the
'module' command in the user's shell to use the environment-modules
built by Spack.
* Added support to query packages by tags.
- The querying commands `spack list`, `spack find` and `spack info` have
been modified to support querying by tags. Tests have been added to
check that the feature is working correctly under what should be the
most frequent use cases.
* Refactored Repo class to make insertion of new file caches easier.
- Added the class FastPackageChecker. This class is a Mapping from
package names to stat info, that gets memoized for faster access.
- Extracted the creation of a ProviderIndex to its own factory function.
* Added a cache file for tags.
- Following what was done for providers, a TagIndex class has been added.
This class can serialize and deserialize objects from json. Repo and
RepoPath have a new method 'packages_with_tags', that uses the TagIndex
to compute a list of package names that have all the tags passed as
arguments.
On Ubuntu 14.04 the effect if the cache reduces the time for spack list
from ~3sec. to ~0.3sec. after the cache has been built.
* Fixed colorization of `spack info`