* r-glmnet: Create New Package.
* pr-quantities: add version & py-numpy conflict (#5307)
* r-glmnet: Update version to 2.0-13
* r-matrix: Update version to 1.2-11
* r-lattice: Update version to 0.20-35.
The default implementation of Package.fetch_remote_versions will take
a URL like https://github.com/google/protobuf/archive/ and automatically
search https://github.com/google/protobuf/releases/ for new package
versions. In the case of protobuf the release/ path contains release
artifacts for a version and the archive/ path contains the desired
source. Since both are associated with the version, and
Package.fetch_remote_versions only stores one URL for a given version,
the two paths are in conflict; previously the URL returned for a
given version was arbitrarily chosen between the two paths. This
updates the definition for the Protobuf package to always search for
URLs in https://github.com/google/protobuf/archive/
* blas_lapack: add multithreading variant
* elemental: update
* intel-mkl: extend to macOS
* rename multithreading to threads
* intel-mkl: avoid long lines
* intel-mkl: make one install error a conflict
* openblas: fix a minor bug in the test
Update the git package to git@2.14.1.
This requires a pcre that has been built with `--enable-jit`, so this
adds a variant to pcre to support that and arranges so that git versions
before 2.14 depend on pcre and git 2.14 and after depend on pcre+jit.
Due to the logic in configure.ac, we may be using both the system
linker (LD_RO='ld -r -o') and the linker tied to the compiler (LD=$CXX).
This may produce weird link-time errors when the two executables are
not the same.
The PR works around the issue disabling 'ld -r'
Open MPI has been relying on versions of PMIx since the 2.0.0
release. Although the embedded version can be used, it makes
more sense long term for Spack to know about the PMIx package,
and to build Open MPI against PMIx as an external package.
There are other software components that may eventually be
reliant on PMIx including MPICH, GASNet, the OpenSHMEM reference
implementation, etc.
This is also partly motivated by the desire to have ECP ST
projects to be released through Spack.
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
* Make texlive untrusted
TeXLive updates their installer without changing its name. We've been
playing keep-up with them, but I'm proposing it's not worth it.
I seem to end up installing it '--no-checksum' anyway.
This commit updates the package to make that approach official,
removing the checksum, adding a note to the description and a bigger
note/comment inthe package body.
* Pull installer from stable source (packages are still *live*)
This pulls the installer script from the "historic" repository. It
appears to be stable, so that we can use a checksum with it (one
hopes, time will tell).
The installer still pulls the packages from the live repos so
installations aren't reproducible.
Add r-biobase package. Remove explicit R dependency from r-biocgenerics
package (since it is an instance of RPackage). Update version for
r-biocgenerics and remove github versions.
* First draft package for sambamba
Depends on the ldc package (#5279) that alalazo's working on.
It requires a patch to the Makefile because one of ldc's library
functions mentions dlopen. I *think* that ldc should be handling
this. See the discusssion in #5279.
It also requires a "static" ldc. Again, see #5279.
Finally, it needs "undeaD" as a resource, but I'm guessing at the
appropriate release. See
https://github.com/lomereiter/sambamba/issues/312.
* alalazo renamed the shared_libs variant, keep up...
+ The recipe for cgns seems to be wrong. CMake complains about variables set but
not used (`HDF5_NEEDS_ZLIB`, `HDF5_NEEDS_MPI` and `HDF5_NEEDS_SZIP`) and fails
to find HDF5.
+ This change set removes these variables from the cmake configure line,
replacing them with `'-DHDF5_DIR=%s' % spec['hdf5'].prefix`
+ cgns also has trouble with parallel make, so I set `parallel = False`.
* fixes#967
* Version bump to 0.9.1
- Bugfixes for spack find
- 0.9.1 can read specs from current develop.
* Don't assume spack is in the path when building docs.
* fixing build issues for gcc on osx
* reverting inadvertent change on develop
* fixing typesetting of bsws description
* very minor update to RTD docs footer to ref github contributors
* Revert "very minor update to RTD docs footer to ref github contributors"
This reverts commit c40d75da7f3b918350a263e7a9ef34df56b7fb01.
* switch fastmath to depend_on arpack_ng; remove arpack/parpack
* Module files now are generated using a template engine refers #2902#3173
jinja2 has been hooked into Spack.
The python module `modules.py` has been splitted into several modules
under the python package `spack/modules`. Unit tests stressing module
file generation have been refactored accordingly.
The module file generator for Lmod has been extended to multi-providers
and deeper hierarchies.
* Improved the support for templates in module files.
Added an entry in `config.yaml` (`template_dirs`) to list all the
directories where Spack could find templates for `jinja2`.
Module file generators have a simple override mechanism to override
template selection ('modules.yaml' beats 'package.py' beats 'default').
* Added jinja2 and MarkupSafe to vendored packages.
* Spec.concretize() sets mutual spec-package references
The correct place to set the mutual references between spec and package
objects at the end of concretization. After a call to concretize we
should now be ensured that spec is the same object as spec.package.spec.
Code in `build_environment.py` that was performing the same operation
has been turned into an assertion to be defensive on the new behavior.
* Improved code and data layout for modules and related tests.
Common fixtures related to module file generation have been extracted
in `conftest.py`. All the mock configurations for module files have been
extracted from python code and have been put into their own yaml file.
Added a `context_property` decorator for the template engine, to make
it easy to define dictionaries out of properties.
The default for `verbose` in `modules.yaml` is now False instead of True.
* Extendable module file contexts + short description from docstring
The contexts that are used in conjunction with `jinja2` templates to
generate module files can now be extended from package.py and
modules.yaml.
Module files generators now infer the short description from package.py
docstring (and as you may expect it's the first paragraph)
* 'module refresh' regenerates all modules by default
`module refresh` without `--module-type` specified tries to
regenerate all known module types. The same holds true for `module rm`
Configure options used at build time are extracted and written into the
module files where possible.
* Fixed python3 compatibility, tests for Lmod and Tcl.
Added test for exceptional paths of execution when generating Lmod
module files.
Fixed a few compatibility issues with python3.
Fixed a bug in Tcl with naming_scheme and autoload + unit tests
* Updated module file tutorial docs. Fixed a few typos in docstrings.
The reference section for module files has been reorganized. The idea is
to have only three topics at the highest level:
- shell support + spack load/unload use/unuse
- module file generation (a.k.a. APIs + modules.yaml)
- module file maintenance (spack module refresh/rm)
Module file generation will cover the entries in modules.yaml
Also:
- Licenses have been updated to include NOTICE and extended to 2017
- docstrings have been reformatted according to Google style
* Removed redundant arguments to RPackage and WafPackage.
All the callbacks in `RPackage` and `WafPackage` that are not build
phases have been modified not to accept a `spec` and a `prefix`
argument. This permits to leverage the common `configure_args` signature
to insert by default the configuration arguments into the generated
module files. I think it's preferable to handling those packages
differently than `AutotoolsPackage`. Besides only one package seems
to override one of these methods.
* Fixed broken indentation + improved resiliency of refresh
Fixed broken indentation in `spack module refresh` (probably a rebase
gone silently wrong?). Filter the writers for blacklisted specs before
searching for name clashes. An error with a single writer will not
stop regeneration, but instead will print a warning and continue
the command.
* Add --with-mpi=spec['mpi'].name at configure step to avoid error when finding 2 MPI implementations
* Improve scorep package with different compilers and mpi providers
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`