- Added a new interface for Specs to pass build information
- Calls forwarded from Spec to Package are now explicit
- Added descriptor within Spec to manage forwarding
- Added state in Spec to maintain query information
- Modified a few packages (the one involved in spack install pexsi) to showcase changes
- This uses an object wrapper to `spec` to implement the `libs` sub-calls.
- wrapper is returned from `__getitem__` only if spec is concrete
- allows packagers to access build information easily
Declare that (i) Trilinos can be only built against 32bit Hypre
(ii) SLEPc can not be built with Arpack when 64bit indices are used
(iii) reflect those constraints in deal.II's depends_on
While there, add extra release flags for best performance.
* Updating SAMRAI package file with new urls and new versions. Also using Spack's MPI compilers.
* Using default optimization for Samrai and setting type to build for m4 dependency.
* Adding debug variant to Samrai.
* Converting Samrai to AutotoolsPackage.
* Add git-review
* Fix flake8 errors
* use PythonPackage for git-review
* added dependencies for git-review
* fix flake8
* moved url's to pypi.io based urls
* fixed flake8... again
* mostly url fixes, not tested, will do tomorrow
* flake8 fix
* changed URL for py-pysocks
* Fixed URL for pysocks
* fixed url
The new repository for the development version points to the most
up-to-date official source for Adol-C. The previous SVN repository was
only occasionally sync'd with this repository.
* Fix build issue #3190 on bg-q :
- disable parallel build as it produces weired linker errors
in cross compiling environment
- update ldflags for bg-q as per Makefile provided Makefile.inc.ppca2_ibm_bgq
* Added note about -lpthread vs -pthread
* Corrected extrae package homepage and url
* Corrected paraver package homepage and url
* To fix 'undefined reference to libintl_dgettext' appearing in extrae package when using binutils+libiberty
* Adding support to previous paraver version and reverting binutils changes to open another PR
* Add installer for petsc4py and slepc4py
* @adamjstewart requested changes on this pull request; make these type=('build', 'run')
* @citibeth suggestion Remove unneeded indirect dependencies
Zoltan expects mpi libraries with option --with-mpi-libs.
If this option is not provided then it uses '-lmpi' which
may not be correct. To avoid this, we have to explicitly
pass empty string.
This adds notes to the source explaining the change.
* Add log4cxx package
* add missing patch files to log4cxx
* remove unnecessary dependencies
* this fails at 'make check'
* this is the AutotoolsPackage version
* fixed install bug
* Update the krell institute products to use the latest features of spack for building on cluster platforms.
* Address travis error messages and resubmit the pull request.
* Update the contents of openspeedshop package.py so it passes the flake8 tests.
* Fix flake8 error-whitespack issue in mrnet package.py file.
* Add updates based on spack reviewer feedback.
* More fixes based on comments from reviewers. Switch using extend to using append, remove additional setting of PATH and LD_LIBRARY_PATH that should not be required due to RPATH.
* More review related changes. Update MPIOption.append lines and take out xercesc references.
* Create a base options function for common openspeedshop base cmake options to reduce redundencies.
* Add libxml2+python depends on to get around issues with the libxml2 package file.
* Using boost over 1.60.0 causes compile errors. This is a known boost bug. Also, dyninst-9.2.0 is set to be the vesrion of dyninst to use with OSS, as of now. The newer version fails to build.
* Fix bad syntax in specifying the boost version range.
* Update the version numbers for the krell institute components and tools: cbtf and openspeedshop.
* Do not build glib for qt3, it is not needed and causes build problems at this time anyway.
* A fix was added for setting LD_LIBRARY_PATH in the qt3 build, but if LD_LIBRARY_PATH is not set the qt build fails. So so check and set LD_LIBRARY_PATH if not set, update if it is set.
* Update the fix for qt3 build by setting LD_LIBRARY_PATH instead of checking for whether it is set or not per Adams comment that spack clears LD_LIBRARY_PATH.
* A fix was added for setting LD_LIBRARY_PATH in the qt3 build, but if LD_LIBRARY_PATH is not set the qt build fails. So so check and set LD_LIBRARY_PATH if not set, update if it is set.
* Trim comments to fit more concisely.
* Fix tabs versus spaces and swap if and else clause check from a negative to a positive check.
Update package file for netlib-lapack to work with IBM XL compiler
The flag -qzerosize is redundant, as the IBM XL compiler should set this flag
by default. However, at this time the default flag appears to be ignore.
Hence, I am setting it in the package file as well, as it has no negative
effect if set twice.
graphviz:
* Download from Fedora projet, as main graphviz site not working.
* Disable java because Spack does not yet support Java, and the system might not have it installed.
* Added all language binding variants; disabled enough in the default configuration to avoid dependencies.
* Removed alternate download location (turned into comments).
* Turn off all language bindings by default.
* Raise an exception on bindings that have not been verified to work.
* Added text indicating what works and doesn't work when user runs `spack info`.
* New package.py for ExM C-Utils: An initial package dependency for Swift/T
* New package.py for ADLB/X: A 2nd package dependency for Swift/T
* New package.py for Turbine
* New package.py for STC
Spack wants URL info even for external packages. Without it, I get
the following error:
NoURLError: Package SpectrumMpi has no version with a URL.
File "/home_local/serbanspack/spack/lib/spack/spack/repository.py", line 580, in get
self._instances[key] = package_class(copy)
File "/home_local/serbanspack/spack/lib/spack/spack/package.py", line 562, in __init__
f = fs.for_package_version(self, self.version)
File "/home_local/serbanspack/spack/lib/spack/spack/fetch_strategy.py", line 878, in for_package_version
url = pkg.url_for_version(version)
File "/home_local/serbanspack/spack/lib/spack/spack/package.py", line 682, in url_for_version
raise NoURLError(cls)
* Creating a spack package for LLNL's LBANN (Livermore Big
Artificial Neural Network) training toolkit.
* Recipe for building LBANN toolkit. Contains limited feature set and
is optimized for building with GNU gcc and OpenBLAS.
* Removed unnecessary dependencies based on reviewers feedback.
* Added support for the int64 data type in the Elemental library. This
is required for supporting indices for large matrices.
* Added a variant to force a sequential weight matrix initialization.
This is slow, but provides an initialization that is independent of
model parallelism.
* Added a guard to prevent building Elemental with the Intel compiler
for versions that have known bugs.
* New package.py for ExM C-Utils: An initial package dependency for Swift/T
* New package turbine
* Fix package.py as requested by @adamjstewart
* New package.py for ADLB/X: A 2nd package dependency for Swift/T
* Add latest version of GNU Parallel (#3106)
* Address formatting guidelines from @adamjstewart
* WIP on new Turbine package.py
* Formatting fixes
* Complete Turbine package.py
[The fix](https://github.com/golang/go/issues/17986) for the small buglet addressed by `misc-cgo-testcshared.patch` has been merged into the tree a while back. I was surprised to see that it wasn't in 1.7.5 and did a bit of digging. It is *has not* been merged into the 1.7 branch but it *has* been merged into 1.8 (and therefor the patch will no longer be necessary).
Figured I'd document my digging for the next person to come along.
* spectrum-mpi: Add new package file for external package
IBM Spectrum MPI is a commercial implementation of MPI based on
OpenMPI. It is usually install in /opt/ibm/spectrum_mpi.
Users need to add the Spectrum MPI package in their packages.yaml
file as follows:
packages:
spectrum-mpi:
version: ['10.1.0.2']
paths:
spectrum-mpi@10.1.0.2: /opt/ibm/spectrum_mpi/
buildable: False
all:
providers:
mpi: [spectrum-mpi@10.1.0.2]
* spectrum-mpi: Added license files and removed the versions
No need for versions as the package is external.
* spectrum-mpi: Remove extraneous defines
Keep only the defines that other MPI implementation define in their
package file:
self.spec.mpicc
self.spec.mpicxx
self.spec.mpif77
self.spec.mpifc
Update the go package to v1.7.5.
- This release no longer needs the time-test patch (it's been merged upstream).
- This release still seems to need the cgo-testcshared patch.
- Also add a comment about environment set up that I need to build it successfully on a very large server.
Tested on CentOS 7.
The repository used by the texlive installer defaults to a redirector
that sends one off to various URLs depending on <fill in the blank>.
This is problematic because all of the mirrors do not update in
synchrony and bad tarballs often hang around for a while.
This leads to problems that are particularly hard to diagnose because
you're likely to end up using a different repo the next time around.
This commit constraints the package to a particular, mainstream,
repository. It's not fast, but it's consistent and usually correct.
It also updates the installer digest, because no day is complete
without updating it at least (sigh) once.
* Different versions of cmake need diff vers of openssl. See Issue https://github.com/LLNL/spack/issues/2990 for background.
Versions of cmake through 3.6.9 seem to need OpenSSL up to 1.0.99. Later
versions can use the current release (thanks to @citibeth for
[digging up details](https://cmake.org/pipermail/cmake/2016-November/064631.html)).
@davydden suggested this change.
Without it I *am not* able to build `cmake@3.6.1` on CentOS 7 and I *am*
able to build `cmake@3.7.2`.
Tested with `cmake@3.7.2` and `cmake@3.6.1` on CentOS 7.
With this change I am able to build both `cmake@3.6.1` and `cmake@3.7.2`
on CentOS 7.
There was a new release of Ant (1.9.8) which led to the v1.9.7
tarball disappearing.
This changes the URL to Ant's archive dir, which seems to contain
*everything* including the two current releases (1.9.8 and 1.10.0)
It adds a digest for 1.9.8.
It adds and comments out a digest for 1.10.0 (which requires Java 8),
as I have not tested it.
We just released 2.0.2 yesterday, so add in that release for
spack. Don't need the PMI patch for this release.
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
cran.r-project.org runs on a single old-school server in Austria
and could potentially be overloaded if "everyone" used it.
cloud.r-project.org is a cloud-based repository that "automatic redirection to servers worldwide [...]", cf. https://cran.r-project.org/mirrors.html.
I assume, that cloud.* can be scale up as needed. Out of the official CRAN mirror, this should be the safest one to pick if a static CRAN mirror is needed.
* Add several new R packages
* Add a few more R packages
* Update more versions
* Convert Package to RPackage
* Add a few more packages
* Add missing dependencies
* AutotoolsPackage: added configure_directory to permit build out of source. The configure script executable is now invoked with an absolute path. Modified a few packages accordingly.
* build_systems: functions returning directories are now properties
* build_systems: fixed issues with tcl and tk
* AutotoolsPackage: reworked recipe for autoreconf
* Spec.satisfies accesses Spec.concrete as property
Fixes#2760
When copying a spec, _concrete is always set to False for each
dependency. "Spec.satisfies" was accessing the member "_concrete"
directly instead of using the property "concrete". This means that
if you copy a spec, the dependencies will be considered equal, but
did not necessarily satisfy one another. Spec.satisfies is a
prerequisite for a package to be considered an extension; as a
consequence, an extension with run-time dependencies that were also
extensions did not activate those extensions. This updates
Spec.satisfies to avoid checking the cached member "_concrete"
directly.
* Added test to check for activation of dependency extension
* Added test to check for transitive satisfiability between a spec and its copy
* Update libquo's homepage, url, and description.
Recently LANL moved to lanl (from losalamos).
* Fix formatting.
Conform to style guidelines.
* More style updates.
Doesn't appear to be necessary, but for good measure.
* oce: fix fetching
apparently the fetcher is confused when there is a mixture of 3-digits
versions and 2-digits versions, i.e. 0.18 and 0.17.2
* flake8
* Updating udunits.
Udunits 2.2.21 is no longer on the unidata ftp site.
The latest is 2.2.23, adding that and it's md5sum.
* Updating udunits2 download URL.
The Unidata ftp site does not keep previous versions of udunits.
However all the tagged versions are in their github.com repository.
Updating the URL to use github.
* Updating udunits2 with a autoreconf def.
The udunits packages on github do not contain a configure script.
One has to run autoreconf to generate it, so adding that to
package file.
Also updated to the latest version and all md5 checksums.
* PackageMeta: `run_before` is an alias of `precondition`, `run_after` an alias of `sanity_check`
* PackageMeta: removed `precondition` and `sanity_check`
* PackageMeta: decorators are now free-standing
* package: modified/added docstrings. Fixed the semantics of `on_package_attributes`.
* package: added unit test assertion as side effects of install
* build_systems: factored build-time test running into base class
* r: updated decorators in package.py
* docs: updated decorator names
* Add dependency on perl
The build process uses perl and also needs `Test::More`.
Some distros, e.g. CentOS, break the core Perl distribution
into separate packages, so it's possible to "have perl" but
not have all the bits one needs to build OpenSSL.
We'll just install one of ours, which comes with all of its
factory parts included.
* Remove uninformative comment
> # Also requires make
doesn't really add any value...
* Fix configure's zlib version check
R wants a version of zlib that is 1.2.5 or newer.
The version checking code just does a lexicographic comparison
of the first 5 characters of the string, so it seesthat the latest
zlib version, 1.2.10, as 1.2.1 and fails.
This patch changes the comparison to use zlibs' hex ZLIB_VERNUM
so that it does not suffer from this problem.
A version of this patch is wending it's way through the R comunity
community and will/should be included in a future release.
I tested the patch with the current R, 3.3.1.
* Tighten zlib dependency version (>= 1.2.5)
* Convert patch to level=1 format.
* libmonitor does not exist at
http://libmonitor.googlecode.com/svn/trunk/
Change location to HPCToolkit version at github. Specify the hash corresponding
to the 20130218 version.
* When xcb is version 1.11, patch the configure file so it doesn't trip on
pthread-stubs and xau.
* Add os.getcwd()/lib to LD_LIBRARY_PATH, instead of nuking
existing LD_LIBRARY_PATH.
* cfitsio: Allow building as shared libraries
- Allow building as shared libraries
- Also add optional bzip2 variant
- Also update to newest version
This requires the recent correction to “fix_darwin_install_name”.
* cfitsio: Simplify code, default to +shared
* Adding 'self.' to the spec call for configure_args
* Updating this to set spec to self.spec
* More updates to the configure_args spec calls
* Another spec issue
* Another spec issue.
* And another spec issue
* Switching cmor back to self.spec.
- Add a PythonPackage class with build system support.
- Support build phases in PythonPackage
- Add a custom sanity check for PythonPackages
- Get rid of nolink dependencies in python packages
- Update spack create to use new PythonPackage class
- Port most of Python packages to new PythonPackage class
- Conducted a massive install and activate of Python packages.
- Fixed bugs introduced by install and activate.
- Update API docs on PythonPackage
* Set MPI[lang] env var to compiler wrappers on cray
Sets MPICC, MPICXX, MPIFC etc to point to the compiler wrappers on Cray systems.
Some packages look for MPIs via environment variables - e.g adios
* Use spec to check for Cray
* os is no longer used.
* petsc: add 64bit variant
* hypre: add int64 variant
* superlu-dist: add int64 variant
* petsc: add int64 variant
* metis: rename idx64 to int64 to make it consistent with other packages
* mumps: rename idx64 to int64 to make it consistent with other packages
* dealii: rename 64bit to int64 to make it consistent with other packages
added latest version of isl. Needed to get llvm/clang in the latest
trunk to build via spack, but there are more versions available.
what is the policy regarding those? Add what we need for now?
* Updating BoxLib with the ability to build again.
* Using Spack MPI compilers directly.
* Fixing typo.
* Using tarball from github archive for boxlib.
* Added customization for make targets in 'build' and 'install' phases for CMakePackage
* Use rst in build system docs so that Sphinx generates nice API docs
* Allow AutotoolsPackages to be built in a different directory
* Flake8
* Fix missing import
* Allow configure to be located in different directory
* Update espressopp to use build targets
* Flake8
* Sphinx fix, lists must be a new paragraph
* Back out change that allowed a configure script in a different directory than build_directory
* Add missing deps, build in parallel
* Missing space for rst list
Although it hurts a little, officially pre-compiled headers in
boost are only supported for gcc & msvc and the latest clang
releases still fail to build boost with it.
Therefore, I disabled building those to get boost build with
clang 3.9.0 on an Ubuntu 14.04 (x86).
Links to documentation and boost bug reports are inline, so
people can later on check if they still apply. Seems just to
be a bug in `Boost.Build` that tries to set `-o` with multiple
output files.
* Added support for Octopus 6.0 and the optional libraries: metis, parmetis, netcdf, arpack-ng, and scalapack.
* Fix PEP 8 line too long error.
* Changed format syntax {} to {0} to support Python 2.6.
* Adding the py-ipdb package for more stable debugging with iPython.
* Removing deprecated python support, adding missing dependencies.
* Adding version checks for (i)python
* Update the krell institute products to use the latest features of spack for building on cluster platforms.
* Address travis error messages and resubmit the pull request.
* Update the contents of openspeedshop package.py so it passes the flake8 tests.
* Fix flake8 error-whitespack issue in mrnet package.py file.
* Add updates based on spack reviewer feedback.
* More fixes based on comments from reviewers. Switch using extend to using append, remove additional setting of PATH and LD_LIBRARY_PATH that should not be required due to RPATH.
* More review related changes. Update MPIOption.append lines and take out xercesc references.
* Create a base options function for common openspeedshop base cmake options to reduce redundencies.
* Add libxml2+python depends on to get around issues with the libxml2 package file.
* Using boost over 1.60.0 causes compile errors. This is a known boost bug. Also, dyninst-9.2.0 is set to be the vesrion of dyninst to use with OSS, as of now. The newer version fails to build.
* Fix bad syntax in specifying the boost version range.
* Update the version numbers for the krell institute components and tools: cbtf and openspeedshop.
* Do not build glib for qt3, it is not needed and causes build problems at this time anyway.
* Removing the nobuild, nolink, and alldeps dependency types in favor of being explicit.
* This will help with maintenance going forward, as adding more dependency types won't affect existing declared dependencies in weird ways.
* default deptype is still `('build', 'link')`
* Remove +mpi variant from NCO
* Update NCO deps to AutotoolsPackage
* Update the other NetCDF packages to AutotoolsPackage
* ANTLR has a nolink deptype on java, don't worry about csharp
* Remove restrictions from NCO package, fix homepage
* Add version 4.6.3 of NCO
* Missed AutotoolsPackage for NetCDF-CXX4
* NetCDF tests fail when run in parallel
* Remove commented out dependency
* Add documentation dependency
* espressopp: package for the ESPResSo++ software
This commit adds a package for the ESPResSo++
simulation software.
* Move Espressopp package to CMakePackage
This commit moves Espressopp package to CMakePackage.
Addresses some comments in the PR.
* Remove run_tests and changed type of dependencies
Addressed some comments from @adamjstewart.
Removed global run_tests setting and removed type from many
dependencies. Set type for py-mpi4py to 'nolink'.
* Updated to last version and fix mpi4py dependency
Added latest espressopp version and changed mpi4py (version) dependency for
different espressopp versions.
* Changed mpi4py version requirements for espressopp
Changed py-mpi4py version requirements for espressopp@1.9.4 according
to the package build requirements for that version.
Adds the following packages:
node-js py-backports-abc py-functools32 py-pycurl py-vcversione
npm py-certifi py-jsonschema py-tornado py-zmq
- Added python packages that are dependencies for the Jupyter suite
- Update new python packaages to use extension package install function.
- Added npm and node-js packages
* Rename packages
* Upcasing depends_on() in packages.
* Downcased extends('r')
* Fixed erroneously changed URL that had slipped through.
* Fixed typo
* Fixed link from documentation into package source code.
* Fixed another doc problem.
* Changed underscores to dashes in package names.
* Added test to enforce lowercase, no-underscore naming convention.
* Fix r-xgboost
* Downcase more instances of 'R' in package auto-creation.
* Fix test.
* Converted unit test packages to use dashes not underscores
* Downcase `r` in the docs.
* Update module_file_support.rst
Fix r->R for class R.
* Use zlib's "fossil" site for old tarballs
Following citibeth's suggestion in #2732, use zlib's "fossil"
site (not to be confused with the sqlite team's VCS...) for retrieving
old tarballs.
Digests for 1.2.{8,10} match and both install for me on CentOS 7.
* Use zlib's "fossil" URL as the one true URL
Everything seems to be available at zlib's "fossil" URL, so just use
it as the one and only url.
(and fix a flake8 complaint about a comment)
* add package for conduit
* try to fix main conduit docstring
* use join_path instead of pjoin
* address a few requests in pr #2670
change name of 'github-master' to 'master'
change 'docs' variant to 'doc', set default to False
remove explicit +shared variant spec for silo and hdf5 deps
(in the conduit +shared case) cases since they default to True
add reference to static rpath issue
(https://github.com/LLNL/spack/issues/2658)
* address pr #2670 requests
add todos and more info on why variants for deps where selected
use python module install python to enable spack activate
use .format instead of %s
* zlib@1.2.10 and R do not get along, work around it
R's configure script has trouble with version numbers > 1.2.9.
This works around it by constraining R to 1.2.8.
I'm working with some R folk on getting it fixed going forward.
* Add adamjstewart's change.
* Update to latest zlib version, server no longer provides older version
Funded-by: IDEAS
Project: IDEAS/xSDK
* Add alternative URL for previous release of zlib
* inheritance of directives: using meta-classes to inject attributes coming from directives into packages + lazy directives
* _dep_types -> dependency_types
* using a meta-class to inject directives into packages
* directives are lazy
fixes#2466
* directives.py: allows for multiple inheritance. Added blank lines as suggested by @tgamblin
* directives.py: added a test for simple inheritance of directives
* Minor improvement requested by @tgamblin
CMakePackage: importing names from spack.directives
directives: wrap __new__ to respect pep8
* Refactoring requested by @tgamblin
directives: removed global variables in favor of class variables. Simplified the interface for directives (they return a callable on a package or a list of them).
The upstream luafilesystem tarball/version had a wayward/inconsistent
underscore in their more recent version tag. The played badly with
our package fetching machinery (due to recent changes?).
Upstream cleaned up their bit which required some touchups here.
- updated the url
- updated the version (digest)
- updated the format statement for the path to the rockspec.
* Adds catch, cppunit, spdlog, tinyxml(1 and 2), google benchmark
Tinyxml comes in two flavors, 1 and 2. Each comes in several
versions... So they cannot be easily united into a single package.
* Use CMakePackage and friends, add copyright
Also eleminate debug/release variants, since it no longuer fits in the
CMakePackage format.
* Remove unnecessary url
* spdlog now has tagged releases
* Remove unnecessary url argument
* Fewer quotes in cmake args, because magic
* Incorrect base class for tinyxml
* Ensure that every package has a license
Also fixes URLs with http://http:// doubled.
This is a continuation of #2656.
* Add license to every file in Spack
* Make sure Todd is the author of all packages
* Fix flake8 tests
* Don't license external Sphinx docs
* Don't display licenses in tutorial example packages
Also fixes typos and converts command-line examples
from tcsh to bash, which is more common
* Added uuid: OSSP uuid is a ISO-C:1999 application programming interface
* Fixed install error in cmor package
* Added uuid: OSSP uuid is a ISO-C:1999 application programming interface
* Fixed install error in cmor package
* Modifiying fontconfig file to allow install in OpenSuse 13.2
* Adding pkg-config dependency to freetype and libxml2
* Removed first possible solution. With @adamjstewart selecting the one adding pkg-config to dependencies
* Update digest for vim@8.0 tarball.
The digest appears to have changed.
The new digest value matches the value in their
[MD5SUMS](ftp://ftp.vim.org/pub/vim/unix/MD5SUMS)
file.
* Change ftp.vim.org -> github.com/vim/vim/archive
Vim seems to do weekly releases, but the name of the tarball on
ftp.vim.org doesn't change so we have to regularly play 'update the
digest' (aka Internet whack-a-mole).
This commit changes the url so that we are now downloading particular
versions from the Vim project's github archive.
I didn't walk back through of time to get all of the versions that
used to be explicit. I grabbed the final `7.4` and the current `8.0`
releases. If people need more we can add them.
* Add package for fastqc
This tool is a java mess. Their Way To Do It is to just copy the entire
tree into it's final resting place, make the perl script at the top
level executable and take it from there.
Yuck.
This package assumes that `set_executable` actually sets all the user
bits. If that change doesn't go in, then something equivalent needs to
be done.
* Use chmod to make fastqc executable
I haven't gotten any feedback on changing set-executable, so switch to
using chmod (from the cuda package).
* Flake8 cleanup
* Install files neatly, don't just copy top level of dir
Rather than blindly copying everything in the distribution, carefully
put the necessary bits into reasonable places. Neatness counts, etc...
This requires patching the `fastqc` perl script, so this commit adds a
patch file.
* Additional pep8 cleanup
* Let dependency handle adding jdk to PATH
* Flake8 cleanup
* Ensure that java is on PATH
I thought that the run dependency on the jdk would put
java on my PATH, but it does not appear to work.
For now, do it by hand.
* Customization for make targets in build and test phases for AutotoolsPackage
* Updated Blitz++ to use customized make build and test targets
* Removed flake8 error
* Removed make test customization, added make install customization, need to figure out issues with multiple make targets
* Changed build_targets and install_targets to normal attributes
* py-markdown: Add new package for python-markdown.
* py-markdown: Added restrictions on Python version.
* py-markdown: Removed upper-limit on compatible Python versions.
* py-markdown: Reinstated upper bound on Python version. Also fixed small formatting error.
* MakefilePackage: changed build_args and install_args for consistency with #2464
openblas: derives from MakefilePackage
* MakefilePackage: changed default edit behavior
* Add python cdo support
* Correct pypi url
* Corrected a blanck space that was failing CI
* Corrected url that was failing CI
* Following @alalazo indications, Write this line wrapping it around 80 chars to pass Travis
* Added cdo package depency
* Added support for xSDKTrilinos package
* Updated xsdktrilinos/package.py for PR review
* Added trilinos version # reqs to xsdktrilinos
* xsdktrilinos now uses CMakePackage
* Cleaned up xsdktrilinos/package.py
* Removed unused cxxflags from xsdktrilinos
* Removed unused sys import from xsdktrilinos
* clang: do xcode mockup iff requested by a package
* add a note
* add pkg to setup_custom_environment() and decide whether or not to use mockup XCode there based on the package
Supports installing both a "known version" of PETSc/PFlotran that works and
the develop/master branches of both packages
Funded-by: IDEAS
Project: IDEAS/xSDK
Time: 4 hour
* update flux dependencies and package
* refinements from @adamjstewart
* fix flux document generation
The docbook-xsl package has been added, and correctly configures catalog
files to generate documentation correctly with asciidoc.
* Update emacs: current release, use our x11 bits
Add checksum for 25.1 release.
Rework the X support:
- use Spack's X11 bits
- add ability to specify an X toolkit (gtk or athena, default is gtk).
- change toolkit names to align with Emacs' configure usage.
* PEP8 cleanups.
* glib dependency should not be type=build
I'd like to blame that on a typo, but it's a few too many characters
for that to be viable. I'm not sure what I was thinking.
* Pass X variant down: emacs->pango->cairo
* X variants default to False, warn on bad toolkit
Change the X variants for emacs, pango and cairo to default to False.
Check that the toolkit is a valid choice and give a reasonable error if
not.
* Fix flake8 issue, reword warning text
* gtkplus needs to use +X variant for pango to work
In order for a useful variant of pango to be built into the spec I
needed to make the dependency on gtkplus explicitly specify it's X
variant. The X variant is the default, but that wasn't enough to make
it happy. Since it's happiness is the most imporant thing in the
world, this change! :)
yaml-cpp has a boost dependency, and according to [yaml-cpp
page](https://github.com/jbeder/yaml-cpp):
yaml-cpp 0.5.3 has been released! This is a bug fix release. It also
will be the last release that uses Boost; futures releases will require
C++11 instead.
See #2059 for background.
I'm unable to install `lmod` because lua-luafilesystem fails.
The luarocks install bits attempt to do a shallow clone of the luafilesystem
sources and the default git on my CentOS 7 test box (`git version 1.8.3.1`)
fails.
This adds a build dependency that ensures that a relatively modern git is
available.
* Update texlive digest value
While the discussion in #2494 progresses, this changes fixes the digest
values so that builds succeeed.
* Add warning that texlive is not repeatably installable
* Update OpenMPI to the AutotoolsPackage
* Add Java support to OpenMPI
* Fix missing commas
* Be more specific about what versions support what flags
* Revert description for thread_multiple variant
* py-rtree: Added package
* py-rtree = RTree (spatial indexing) data structure for Python
* libspatialindex = Underlying C library wrapped by py-rtree
* Flake8 and Copyright issues.
* Fix Python syntax error.
* Fixed dependency type error.
* Added new version, based on updates requested in upstream PR
* 1. Change cmake to build dependency.
2. Updated to CMakePackage
* Update go to 1.7.4 and 1.6.4 to fix security issues
The go team recently rolled out two releases to address security
issues. Details available on the [go release
site](https://golang.org/doc/devel/release.html).
This commit updates our explicitly supported versions.
It also includes a comment about two CentOS requirements (enable
user_namespace and ensure that the static c library is installed) that
are required for the pacakges to pass their tests.
* Flake8 cleanup
* Make X11 font install dir the font search default
We install the X11 fonts into `/share/fonts` beneath the font-util
installation prefix, but that directory is not one of the places that
the font subsystem searches.
This commit makes the fontconfig package depend on the font-util
package, and then it makes
```python
spec['font-util'].prefix + "/share/fonts"
```
be the fontconfig default font location.
Before this change, plots drawn by R have bounding boxes where font
glyphs should be. After this change fonts appear as expected.
* Enrich description string (trigger new CI run)
Improve the docstring for the package.
Also interested in the side effect of triggering another CI run
to see if the recent flake8 fix lets this PR run clean.
* Flake8 cleanups
* Update R&friends to use our X11 libs
Add `depends_on()`'s for R, Cairo, and Tk so that they use the Spack X
bits.
* Conditionalize X stuff on variant
Another step towards hooking up the X stuff.
There's still discussion happening on the issue, but this is better
than the 'everything must build with X' state that it was in.
- Added 'dap' and 'cdmremote' variants
This is based on work in #2324 with the following motivation:
Turn off DAP support by deafult. DAP requires curl, which has issues
with circular dependencies. For 95% of NetCDF users that do not need
DAP, turning it off avoides this rats nest of problems.
- Added 'parallel-netcdf' variant
To support work with parallel-netcdf
- Added 'shared' and 'static' build separation
* Update go-bootstrap package
The last C based Go src tree was the 1.4 series. For a while they
were cutting new releases so that people could bootstrap from a C only
system. Now they're recommending that you either use the release-1.4
branch or that you use a date-stamped tarball that they'll produce on
an as-needed basis.
There are several issues that keep 1.4.2 from building on a CentOS 7
system.
I've switched to the date based tarball.
The cgo bits were also mis-behaving, but they're not needed for the
bootstrapping task so I've set an environment variable that disables
them.
Details [on the install-from-source
page](https://golang.org/doc/install/source#go14) and these issues:
- https://github.com/golang/go/issues/17545
- https://github.com/golang/go/issues/16352.
* Update go package
Switched from pulling from the git repository to using the source
tarballs and added digest values.
Added support for 1.7.3, continued supporting 1.6.2, including patches
for a couple of problems (details in
[17545](https://github.com/golang/go/issues/17545) and
[17986](https://github.com/golang/go/issues/17986).
Dropped support for 1.5.4 and 1.4.2 because they no longer pass their
tests and the patches above to not apply.
* Updating SuperLU package file with ability to build version 4.3 (before they added cmake) with external blas or internal blas, and added capability to build the latest version 5.2.1 (with cmake) with internal blas.
* Updating SuperLU package file with suggested changes, i.e. reorganizing installation methods based on version, adding cmake dependency when necessary, removing any use of internal blas, and also adding fpic variant.
* Fixing flake8 failures.
* Update flex package url's and versions
The old sourceforge page for flex is now defunct. While version 2.6.0
still downloads fine, later versions are no longer hosted there.
Development continues on github. I've adjusted urls to point to this
new location.
In addition, from 2.6.0 onwards, a new naming scheme for releases seems
to have been adopted. I've created a url_for_version function to sort
this out.
* Change flex to an AutotoolsPackage
Also move the url_for_version function to the end of the package
definition.
* Implement the autoreconf function for flex
Adds the IceT compositing library from Sandia/Kitware.
Most default functionality needed for image compositing is
added, OpenGL acceleration for very large displays is disabled.
Downstream usage:
most VTK based software which supports parallel image compositing,
such as VisIt, Paraview and in our use-case
[ISAAC](https://github.com/ComputationalRadiationPhysics/isaac).
* Force the recipe for Lua to use the spack compiler.
I'm not sure how the old recipe worked for anyone. The Lua Makefiles set
`CC=gcc` and for my spack environment the first `gcc` found in my `PATH` is
`$SPACK_ROOT/lib/spack/env/gcc`, which is a directory. This caused the build
to fail. My change drops the `-std=gnu99`, but this option doesn't appear
to be required for a sucessful build.
* Preserve the '-std=gnu99' compile option.
* fix tau installation issue : setup_environment() is
called before install phase when 'Makefile.*' doesn't
exist (causing list index out of range error).
* Added detailed comment suggested by @alalazo
* November 1 seems to have brought a new texlive release, updating the
digest to match.
Also switching the url from their automagic mirror to an explicit
site to avoid inconsistencies during their updates.
It seems like only yesterday (#2073) that I updated this....
* Add comment to url warning about mirror updates
Add a comment to the download info warning to use a
specific site rather than the mirror, to avoid wobbles
during their asynchronous updates.
* Fix typo ('to no' -> 'do not')
On MacOS, brew installs /usr/local/bin/python but the Python prefix is not /usr/local/bin
Use the python command sys.exec to get the correct directory, instead of the ad hoc self.prefix
previously used
This was a bear to debug; been driving me nuts since I started using spack.
Since spack passes PYTHONHOME down to package builds in the environment
it was passing PYTHONHOME of /usr/local/bin to the PETSc build that uses Python so
the PETSc Python ./configure errored immediately with
ImportError: No module named site
since python could find no python modules. Todd Gamblin pointed out that my first try to fix
this was wrong since it assumed the spack python was the same python used to run spack. Elizabeth Fischer
suggested how to get it to work also with python3
Funded-by: IDEAS
Project: IDEAS/xSDK
Time: 7 hours
Thanks-to: Todd Gamblin, Elizabeth Fischer
* Update the krell institute products to use the latest features of spack for building on cluster platforms.
* Address travis error messages and resubmit the pull request.
* Update the contents of openspeedshop package.py so it passes the flake8 tests.
* Fix flake8 error-whitespack issue in mrnet package.py file.
* Add updates based on spack reviewer feedback.
* More fixes based on comments from reviewers. Switch using extend to using append, remove additional setting of PATH and LD_LIBRARY_PATH that should not be required due to RPATH.
* More review related changes. Update MPIOption.append lines and take out xercesc references.
* Create a base options function for common openspeedshop base cmake options to reduce redundencies.
* Add libxml2+python depends on to get around issues with the libxml2 package file.
Add a package that installed the pre-built maven distribution.
I've given up, for now, on building maven from source. That processed
stumbled on two points before I gave up:
1. It downloaded several hundred .{pop,jar} files and I despaired of
figuring out some way of mirroring and checksumming them; and
2. It exploded complaining about too many unacceptable license files,
which seems odd in its own source tree.
Perhaps someone with more Java fu that I admit to can figure it out.
In the meantime, this is useful.
* libsodium: add latest versions, fix old versions
older versions of libsodium were added to an "old" subdirectory
* zeromq: add 4.1.4
prerequiste for the latest develop version of flux
Pkg-config depends on glib which depends on pkg-config. As a result,
pkg-config used to build glib internally. However, this fails on Mac.
Building pkg-config with an internal glib is now a variant, turned on
by default, and required to build glib.
* Tells boost explictly about libraries and headers
Ideally, bjam would determine the libraries and headers from the
executable. But it doesn't. This rigs a best guess for python libraries
and headers.
* Move glob import to top of file
* variable name change: alllibs --> all_libs
* Use dso suffix rather than hard-coded string
* Use only MAJOR.MINOR when setting up python in bjam
* mumps: Add support for Intel compiler and insure both lapack and blas libraries are passed to the examples
Likely it was not discoverged before that the examples require both lapack and blas libraries because it
was tested with Openblas which is one large library containing everything.
Funded-by: IDEAS
Project: IDEAS/xSDK
Time: .3 hours
* flake8 fix.
* Created the initial version of the 'OpenSceneGraph' package.
* Added 'zlib' as a dependency and linked it during the build step.
* Fixed a few minor PEP8 style violations in the 'OpenSceneGraph' package.
* Added cmake as a build dependency and improved the build procedure.
* Made a few important argument updates to improve package compatibility.
* Fixed up a few remaining style issues in the 'openscenegraph' package.
* Added a description for the 'openscenegraph' package.
* Fixed a bug that was causing some 'openscenegraph@3.2.3%gcc' installs to fail.
* Fixed a number of small issues with the 'openscenegraph' package.
* Removed a number of superfluous flags from the 'openscenegraph' install.
* Add new version property to handle joined version numbers
* Add unit test for new joined property
* Add documentation on version.up_to() and version.joined
Things that accessed the cdd package, such as `spack info cdd run
tripped over a buglet in the *cdd* package, causing them to exit with
something like this:
```
Caused by:
TypeError: 'str' object is not callable
File "/rss/spack/lib/spack/spack/repository.py", line 584, in get
self._instances[key] = package_class(copy)
File "/rss/spack/lib/spack/spack/package.py", line 398, in __init__
f = fs.for_package_version(self, self.version)
File "/rss/spack/lib/spack/spack/fetch_strategy.py", line 852, in for_package_version
attrs['url'] = pkg.url_for_version(version)
File "/rss/spack/var/spack/repos/builtin/packages/cdd/package.py", line 40, in url_for_version
str(version.dotted()).replace('.', ''))
```
@tgamblin pointed out that `dotted` is a property, not a functin call
and that the parentheses are therefor inappropriate.
This deletes the parentheses. `spack info cdd` now works for me.
Add package for htop, an interactive text-mode process viewer for
Unix systems. Think top, with pretty colors and dyanmic bar graphs.
More info [here](https://github.com/hishamhm/htop).
* Update the krell institute products to use the latest features of spack for building on cluster platforms.
* Address travis error messages and resubmit the pull request.
* Update the contents of openspeedshop package.py so it passes the flake8 tests.
* Fix flake8 error-whitespack issue in mrnet package.py file.
* Add updates based on spack reviewer feedback.
* More fixes based on comments from reviewers. Switch using extend to using append, remove additional setting of PATH and LD_LIBRARY_PATH that should not be required due to RPATH.
* More review related changes. Update MPIOption.append lines and take out xercesc references.
* Create a base options function for common openspeedshop base cmake options to reduce redundencies.
* Made optional CGAL dependencies optional.
* cgal: Added note explaining that the CORE library is not the same as core CGAL functionality.
* Bug fix and flake8
* flake8
* build_environment: allow compilers to set up an environment
* clang: mock up a toolchain directory for xcode
Some projects ignore CC and CXX flags and instead use xcode to find the
toolchain. Clang on Apple should set up the environment properly.
Arguably, every compiler could do this on Apple, but let's see how this
works out just for AppleClang for now.
The Documentation directory is ~1.7G and the excluded platforms add up
to about 7G. Ignoring swift saves another 500M. The resulting Xcode.app
copy is in the 2G range.
* compiler: set member variables early
This is required so that later methods can query things such as the
version of the compiler.
* compiler: support finding the real path of the compiler
On Apple, the /usr/bin compilers are actually wrapping tools themselves
which query xcrun for the currently selected Xcode installation. Pierce
this veil and get the real, full path the to underlying compilers
instead.
* icu4c: install with rpath
On macOS, icu installs with a library ID of the library name. Enabling
rpath makes its ID its full installed path which lets Qt5 link against
it successfully.
* qt: no -no-gtkstyle flag on Qt5 on macOS
* First version of Abinit package
* Ignore *.swp files
* Add libxc, etsf_io packages
* AtomPaw package
* Make Abinit depend on mpi@2: and external version of libxc, netcdf, hdf5, etsf_io
* etsf_io: install Fortran modules in prefix.include
* Remove etsf_io from abinit requirements
* Add libxc2.2.1 (required by Abinit and atompaw)
* Cleanup
* Run make check
* Cleanup
* Use ld_flags instead of hard-coded libs, fix pep8, add copyright
* Put scalapack before lapackblas
* Added support for the 'maxdims' and 'maxvars' flags for 'NetCDF'.
* Added the '+mpi' variant and improved dependencies for 'exodusii'.
Improved the 'exodusii' package so that it's less reliant on patches.
* Added better type checking to variant values in the 'netcdf' package.
* Corrected the required CMake version for the 'exodusii' package.
* Fixed the dependencies of the '+mpi' variant of the 'exodusii' package.
* Updates to Mesa and other Xorg packages
* Add packages for all Xorg Protocol extensions
* Add packages for first half of Xorg libraries
* Add packages for remaining Xorg libraries
* Add packages for all Xorg utilities
* Add packages for Xorg documentation tools
* Add build deps to Xorg protocol headers
* Add packages for XCB
* Add build deps to Xorg libraries
* Add build deps to Xorg utilities
* Add packages for Xorg fonts and font-related utilities
* Change font deptype from build to default
I wasn't sure which deptype was appropriate at first since none of
the packages are actually linked together. I initially chose the
build deptype for this reason. However, the font packages don't
install into their own prefix. They install into font-config. If
font-config is a build dependency, that means you can uninstall it
without uninstalling the font packages, which wouldn't make sense
since they install into font-config. So I switched them back to
the default deptype.
* Minor formatting changes to ncview
* Add half-way done xorg-server package
* Add packages for Xorg test suites, not yet tested!
* Add packages for Xorg data
* Add first quarter of Xorg apps
* Add more packages for Xorg apps
* Add dependencies to mesa
* Remove comments from mesa package
* Flake8
* Add more packages for Xorg apps
* Add more packages for Xorg apps
* Add more packages for Xorg apps
* Add more packages for Xorg apps
* Add more packages for Xorg apps
* Add package for Sublime Text
* Add packages for remaining Xorg apps
* Revisit testing packages, add missing dependencies
* Add dependencies, clean up FIXMEs
+ This change fixes a problem that manifests when trilinos is built against a
MKL installation defined as an external package. In this scenario, the MKL
libraries are found one directory deeper than for the case where spack
provides MKL. The extra directory is a platform name like 'intel64'.
+ The changes in this PR were recommended by contributor @davydden. I
implemented and tested with intel@16.0.3. These changes fix the issue I
reported. I did not attempt building trilinos against other BLAS
implementations.
+ fixes#1923
* mfem: add tarball extension
Add tarball extension as a result of a feature added in PR#1926, which
fixes earlier issues in this PR (PR#1202). Prior to adding this feature,
Spack would not autodetect the extension of the tarball downloaded from
the redirected, shorted Google URL, requiring a messy hack. This hack
worked for mfem version 3.1, but led to errors when adding mfem version
3.2 because the files downloaded from Google did not contain the package
name, version number, or extension. Adding the extension enables Spack
to rename the tarball downloaded from Google to a sensible name that is
compatible with its filename parsing algorithms so that Spack "does the
right thing" (detects that the file is a GZipped tarball, decompresses
it, runs GNU Make) in fetching and staging the package.
* mfem: add linkage to KLU & BTF
Add linkage to the KLU & BTF solvers, which are now enabled in MFEM for
versions 3.2 and later.
* mfem: Add superlu-dist variant
Add linkage to SuperLU_DIST, which is a new linear solver interface for
MFEM versions 3.2 and later.
* mfem: add netcdf variant for cubit mesh support
Add NetCDF variant for MFEM versions 3.2 and later; installing the
NetCDF interfaces enables CUBIT mesh support.
+ Cray compile wrappers are MPI wrappers.
+ Packages that need to be compiled with MPI compile wrappers normally use
'mpicc', 'mpic++' and 'mpif90' provided by the MPI vendor. However, when using
cray-mpich as the MPI vendor, the compile wrappers 'CC', 'cc' and 'ftn' must
be used.
+ In this scenario, the mpich package is hijacked by specifying cray-mpich as an
external package under the 'mpich:' section of packages.yaml. For example:
packages:
mpich:
modules:
mpich@7.4.2%intel@16.0.3 arch=cray-CNL-haswell: cray-mpich/7.4.2
buildable: False
all:
providers:
mpi: [mpich]
+ This change allows packages like parmetis to be built using the Cray compile
wrappers. For example: 'spack install parmetis%intel@16.0.3 ^mpich@7.4.2 os=CNL'
+ This commit relies on the existence of the environment variable CRAYPE_VERSION
to determine if the current machine is running a Cray environment. This check is
insufficient, but I'm not sure how to improve this logic.
+ Fixes#1827
* fix blas-lapack in scipy and numpy
* py-numpy: do not set rpath on macOS
* py-scipy: do not set Blas/Lapack. This appears to be picked up from py-numpy
* py-numpy: don't write rpath= in Sierra only
* py-numpy: add a link to build notes
* Updated nettle to have m4 as an immediate dependency to match new PATH
construction logic which only includes immediate dependencies.
* Update package.py
* Added check for ppc64le because configure cant guess the build type for rhel on ppc64le
Expand/clarify description of dependency types
Refactored getting the arch so that its less verbose
* Fixed flake8 issues
* everytrace: New package
Everytrace ensures that stack trace is obtained every time a program exits, for whatever reason.
* everytrace: Change CMake to build dependency
* Renamed to everytrace-example, flake8 and copyright issues.
* flake8
* Missing type=build
* Warn user if flake8 can't find setuptools
* Add missing dependencies of flake8
* Updates to py-autopep8, make packages activateable
* Check for presence of setuptools for Sphinx too
* Fix bug in order of commands
* Adding last version of fenics and making trilinos not ambiguous on hdf5
* forcing fenics to ignore hdf5 cxx
* Adding deptypes and correcting the hdf5 patch
* flake8 corrections
* cleaning some useless code
* Provide new versions of llvm.
+ Provide file list and md5 hashes for 3.8.1 and 3.9.0.
+ Clean up indentation for the 'releases' data structure to improve
consistency.
* Adding a block of code to the 'resources' structure for cfe.
* Merge cfe and clang resources into single entity.
* Added hadoop, spark, and variant spark+hadoop
* Docstrings, dependency types, urls, copyright
* Flake8 fixes, link dependency for hadoop
* Build type for spark, env problem setting JAVA_HOME
* New package: libquo
libquo is a high-level, easy to use programming interface tailored specifically
for MPI/MPI+X codes that may benefit from evolving process binding policies
during their execution. QUO allows for arbitrary process binding policies to
be enacted and reverted during the execution of an MPI/MPI+X application as
different computational phases are entered and exited, respectively.
https://github.com/losalamos/libquo
* Remove use of 'which' and fix style non-conformance.
* Add libint package
* Add Intel optimization flags recommended by CP2K
* Add new version and Intel compiler optimization flags for libxc
* Add older version of libint
* Libint depends on GMP C++ library
Pro tips from @adamjstewart:
* line too long in package description
* name it grib-api instead of grib_api
* depend on netcdf without reference to unnecessary constraints
* py-pil: Does not build with Python3.
* Set py-pillow to be the default pil provider
* Update package.py
* Change to comments requested by adamjstewart
* Remove version constraint from extends(), avoid a Spack bug.
* dealii: add missing python dependency
* boost: fix a bug which broke it on macOS with clang+gfortran
Boost was using gcc compiler instead of clang++, which lead to
cryptic Undefined symbols linking errors for boost::python::objects::function_object()
when building other packages against boost+python.
* boost: add exceptions for intel
* boost: use spack_cxx
* Turned <provider>_libs into an iterable
Modifications :
- added class LibraryList + unit tests
- added convenience functions `find_libraries` and `dedupe`
- modifed non Intel blas/lapack providers
- modified packages using blas_shared_libs and similar functions
* atlas : added pthread variant
* intel packages : added lapack_libs and blas_libs
* find_library_path : removed unused function
* PR review : fixed last issues
* LibraryList : added test on __add__ return type
* LibraryList : added __radd__ fixed unit tests
fix : failing unit tests due to missing `self`
* cp2k and dependecies : fixed blas-lapack related statements in package.py
Python will look to link with libncursesw in preference to libncurses. Since
ncurses in spack is built without suffixes there is no libncursesw and
python will link to the system libncursesw for _curses.so and
_curses_panel.so, as well as libpanelw for _curses_panel.so.
This PR introduces a patch that simple removes the check for ncursesw in
setup.py and therefore sets `curses_library` to `ncurses`.
* Added missing libtiff dependency
* added dependency on fontconfig
* Added version 2.2.3
* use autotools rather than cmake
The cmake build was not producing a complete install.
* There was no versioning of the installed libraries.
* gdlib-config was missing
* pkgconfig directory was missing
These problems do not happen when built with autotools.
yt is a python package for analyzing and visualizing volumetric, multi-resolution data from astrophysical simulations, radio telescopes, and a burgeoning interdisciplinary community.
* Fixed a few small bugs in the 'git-lfs' install script.
* Fixed a bug in the '(go|go-bootstrap)@1.4.2+test' install scripts.
* Fixing a minor style issue in the 'git-lfs' install script.
I encountered an HPC system where PETSc's configure stage does not find a valid `cpp` (C preprocessor). Explicitly pointing to Spack's `cpp` wrapper resolves the problem.
* Fixed a bug that was causing post-install METIS tests to fail.
* Improved the patching procedure used in the 'metis' install script.
* Enabled patch skipping for the 'metis' and 'parmetis' packages.
* Fixed some minor style issues in the 'parmetis' package.
* Improved the 'metis' test fix and added 'run_tests' support.
* Refactored and reorganized the 'zoltan' install script.
* Fixed a few bugs with the '+mpi' and '+fortan' variants of 'zoltan'.
* Reintroduced and improved the '+shared' variant for the 'zoltan' package.
* Improved compatibility with different MPI providers for 'zoltan'.
Includes :
- treatment of a generic hierarchy (i.e. lapack + mpi + compiler)
- possibility to specify which compilers are to be considered Core
- correct treatment of the 'family' directive
- unit tests for most new features
- add new version 2.10.3
- explicitly require hdf5 variant ~mpi, since we don't know how to build with mpicc
- explicitly disable glew since it may not be installed
* Added py-proj package
* Added bug-fix patched version to the package.
* Removed dependency of py-proj on proj.
* py-proj: Added missing dependency
* py-proj: Removed versions from forked repos, now that necessary bug fixes have been merged into the main repo.
* Update package.py
Added a blank line that Travis wanted.
* 1. Added copyright
2. Used setup_py
3. Added type='build' for dependencies.
* Qthreads: Switch back to using tarball for download
* Don't require autotools any more
* Re-enable autotools
* Remove autotools again
* Use .tar.bz tarball; remove outdated code
* New package h5hut -- High-Performance I/O Library for Particle-based Simulations
* Set up MPI compilers
* Add version 1.8.12 to HDF5
* Correct Sphinx error
+ Starting with version 2.0, OpenMPI no longer provides C++ bindings by default
(libmpi_cxx.so). Add a configure option to instruct the build to also build
and install libmpi_cxx.so.
+ This MPI feature is needed by at least one spack package (moab).
* add pango dependency
* add new package ghostscript-fonts & add to ImageMagick as dependency
also tell ImageMagick's configure where the font dir is!
* refactor to fix flake8
* add homepage to ghostscript-fonts
* use install_tree
* remove unneeded import
lzo's download server does not present a valid certificate, so that downloads via https are failing. Spack's MD5 checksum still ensure a safe download.
Closes#1675.
@adamjstewart
```
think you'll find that if you try running something like:
spack spec libsplash ^hdf5@1.8.15
It will complain that libsplash does not depend on hdf5.
This is a bug in Spack's dependency resolution. A workaround
for this is to tell it to always depend on hdf5.
```
@davydden
```
to expand on @adamjstewart comment, spack will make a union
of dependencies,
i.e. hdf5@1.8.6: + hdf5+mpi = hdf5:1.8.6:+mpi, that's why it works.
```
thank you for the hint!
Adds a package for
[PNGwriter](https://github.com/pngwriter/pngwriter/),
a simple high-level C++ png API used in scientific projects.
```
PNGwriter is a very easy to use open source graphics library that
uses PNG as its output format. The interface has been designed to be
as simple and intuitive as possible. It supports plotting and reading
pixels in the RGB (red, green, blue), HSV (hue, saturation,
value/brightness) and CMYK (cyan, magenta, yellow, black) colour
spaces, basic shapes, scaling, bilinear interpolation, full TrueType
antialiased and rotated text support, bezier curves, opening existing
PNG images and more.
```
PNGwriter is a dependency for [PIConGPU](http://picongpu.hzdr.de),
an open-source, many-core, fully-relativistic particle-in-cell code
and further software developed at
[Helmholz-Zentrum Dresden - Rossendorf](https://www.hzdr.de).
Adds a package for
[libSplash](https://github.com/ComputationalRadiationPhysics/libSplash),
a high-level library around serial and parallel HDF5 for regular
grids and particle data sets.
```
libSplash aims at developing a HDF5-based I/O library for HPC
simulations. It is created as an easy-to-use frontend for the
standard HDF5 library with support for MPI processes in a cluster
environment. While the standard HDF5 library provides detailed
low-level control, libSplash simplifies tasks commonly found in
large-scale HPC simulations, such as iter- ative computations
and MPI distributed processes.
```
libSplash is a dependency for [PIConGPU](http://picongpu.hzdr.de),
an open-source, many-core, fully-relativistic particle-in-cell
code and further software developed at
[Helmholz-Zentrum Dresden - Rossendorf](https://www.hzdr.de).
libSplash builds in two versions, one without MPI writing
domain-decomposed posix-style HDF5 files per process and one
(default) with MPI and MPI-I/O ("parallel HDF5") support
aggregating into a single file per MPI communicator.
libSplash is used in conjunction with
[openPMD](http://openPMD.org), see also
[github.com/openPMD/](https://github.com/openPMD/).
This PR updates the ADIOS package.
**Changes:**
- add latest stable release `1.10.0`
- add previous versions (hashes)
- add default license header
- add build options (shamelessly taken from HDF5 package)
- add validation for excisting FC (as in HDF5) and make optional
- handle mxml dependency correctly (not required in 1.10.0+)
- add `CFLAGS=-fPIC` to build shared (python) libs in ADIOS' lib
- remove `-DMPICH_IGNORE_CXX_SEEK` since it is normally not required
- remove `MPICC/CXX?FC` since `--with-mpi` just performs well
- add transforms:
- `zlib`: useful (optional) default
- `szip`: optional (compile often broken)
- add transports that are not as performant as the `.bp` format:
- `hdf5`: non-default
- `netcdf`: non-default, close#1610
* opencoarrays: new package
* opencoarrays: remove tests from install due to (unimportant) failures in some configurations
* opencoarrays: fix flake8 errors
- use two empty lines before `class`
- change version numbering scheme for packages, use `url_for_version` to make things work
- specify dependency types
- add comment about temporarily moved download location
- update two packages to newer versions
py-cffi's .so was being built without the rpath being set. distutils
looks at the LDSHARED for which compiler to use to build the final .so.
Since it was not set, distutils fell back to the system provided
compiler. Setting it forces the shared library to be compiled with the
spack compiler (meaning that the rpath is set correctly).
Patch doesn't work with @when unless you specify a patch for every
version. When running `spack patch` for a version without a patch,
spack thinks that a patch exists, tries to apply it, but it doesn't
exist. Spack gets very confused.
The Lmod author changed the src so that it uses the tclsh (and shared
libraries) discovered at configure time. He did it differently that I
did in this patch, but he changes solve our problem too, so...
This commit changes the git package to depend_on('perl'). The system
perl is not always sufficient to install git (e.g. a CentOS7 system with
the development tools group installed has perl but not the
ExtUtils::MakeMaker package that git needs) and one can't always update
the system's perl.
This PR depends_on PR #1339, which adds a perl package to spack.
Update the samtools package to support v1.3.1, which
- now uses configure script; and
- now depends on external htslib package.
The dependency on mpc seems to have been bogus, it's never linked in,
nor is it mentioned in the source tree. I *do* have a version in
/usr/lib64, but ldd does not sure it being linked in either....
By depending on 'ncurses' I can do away with the need for the patch.
- It's not really a circular dependency -- git is a run dependency of gettext
- We can revert this change when Spack is smart enough to make git a run
dependency and build it.
+ Always depend on the gettext package. This simplifies the logic and I no
longer need to 'import sys'
+ Only apply the patch for the older version of glib.
Add py-meep package and dependencies
Merging to add the gettext support, will submit a separate issue for the LD_LIBRARY_PATH issue with MPI and py-meep
Before I learned that I was stumbling over a real but (#1308), I thought
I needed to arrange for the fetcher to skip the unpack step.
This commit removes the useful `def unpack`.
Use the resource machinery to fetch/cache/unpack/... the App::cpanminus
tarball.
- this hardcodes the version, I can't figure out how to use a variant to
hold/set the value and access it in the resource().
- change up the install to use the `with working_dir()` meme.
Make running perl's tests conditional, one must now specify the
`--run-tests` flag to the `spack install` command in order to run the
tests.
On one system (8 core, 16GB Digital Ocean Droplet), installing without
tests takes 3 minutes, with tests takes 16 minutes.
Rather than hard-coding the verison of `cpanm` that's [optionally]
installed into the core, make it a variant with a default value of
'1.7042'.
Also discovered that `prefix + 'bin'` is the same as `prefix.bin`, so
embetter that bit of code.
Add perl package, based on [work by
justintoo](https://github.com/LLNL/spack/pull/105). He had too many
things pulled into that pull request, this just adds a perl package.
Support the current releases on the past three minor branches.
Run perl's tests before installing.
Install cpanm into the core (makes building on top of this perl *much*
simpler). Controlled by a variant.
I cargo culted that from my *nextflow* package. I [thought I] needed it
to work around Spack trying to use tar to unpack something that was
neither a tar ball nor unpackable.
This package works fine without it. In retrospect, the error that I was
seeing in the *nextflow* package was probably this problem #1308.
Add a package for [ack](http://beyondgrep.com/install/). Simply install
the fatpacked script.
It uses '#!/usr/bin/env perl' and it very much not choosy about what
perl it needs. For now just trust that there's one available, perhaps
someday we can/should uncomment the depends_on('perl').
Follows the methodolgy I used in nextflow. Has the same
uninstall/install problem that nextflow has, there is an issue in
progress for that: https://github.com/LLNL/spack/issues/1308.
Tested on CentOS7.
r-jsonlite 0.0.21 -> 1.0
r-mime 0.4 -> 0.5
rcpp 0.12.5 -> 0.12.6
CRAN is funny. The older versions of these packages are still available
in package specific directories but the current version is not there, so
I don't see any way to make the older versions work.
This is my first cut at a package to support nextflow. It's also my
first package. It works, but has issues. I'm going to submit a pull
request and get some coaching on how to deal with it.
One issue particular: if I install, then uninstall, then try to install
again (which uses the cached copy of the "distribution file"), it
explodes.
WIP: I started trying to build gtkplus@3.20, but this package has many more
dependencies than v2 and it requires newer versions of existing packages. This
commit provides updates for 5 packages that are required by GTK+3. This is not
the complete set of changes required for GTK+3.
atk - move default version from 2.14 -> 2.20.
glib - move default version from 2.42 -> 2.49
- v2.49 requires pcre+utf as a new dependency.
pcre - if variant +utf is selected, add '--enable-unicode-properties' to the
configure options.
libepoxy - new package to spack
- manages OpenGL function pointers.
pango - move default version from 1.36 -> 1.40
Add a package for [tree](http://mama.indstate.edu/users/ice/tree/).
It has a Makefile that hardcodes a prefix and some CFLAGS. Used
filter_file to:
- set the make variable *prefix* to `prefix`; and
- comment out their CFLAGS, just use ours....
It installs, runs on CentOS7, and uninstalls cleanly.
With the addition of dependency types and with `py-setuptools` set as
type='build' there are more packages that need to have `py-setuptools`
added as a dependency.
This PR adds that dependency for the following packages:
- py-h5py
- py-networkx
- py-pytables
- py-scikit-image
This PR adds the `nolink` dependency type to r- package dependencies.
This is needed due to the new dependency types in Spack. A couple of
packages were updated with new versions as well.
This commit introduces a mechanism to insure that R package dependencies
are built with the Spack compiler wrapper. A copy of Makeconf is made
before `filter_compilers` is called. This is then pointed to by the
R_MAKEVARS_SITE environment variable set up in
`setup_dependent_environment`. With this the normal compilers are used
outside of spack and the spack wrapper compilers are used inside of
spack.
This commit also standardizes on the `join_path` call. It also sets the
commented build command to reflect what is actually used with the newer
string formatting.
A while ago I was asked to convert packages to all lowercase. That was
done but some dependencies did not get converted in the specification.
This commit fixes that as well as a couple of urls that need to be made
explicit and a missing dependency on jdk.
- OpenSSL no longer checks remote versions on the openssl site.
- Spack is used on systems that aren't connected to the internet, and
this check is probably in the wrong place and affects too many
commands. We can work on figuring out a better, more configurable
place to put a check like this.
Lmod's configure script goes to the trouble of finding
tclsh. This change uses that info to rewrite the #! lines
in the tcl scripts so that they call the tclsh that the
configure script discovered.
It needs to massage the existing shebang lines into something
that the sed statement in the makefile can manipulate and
it needs to add the path_to_tclsh info into the set of sed
statements.
Checked with versions 6.4.1 and 6.3.7 (the checksum for 6.0.1 is
incorrect, a fix for another time).
The lmod package needs a tclsh. Up until now it just assumed
that one was available on the system.
This change adds a depends_on('tcl') to the lmod package.
The tcl package installs a tclsh script with an embedded version
number (e.g. tclsh8.6) but the lmod configuration looks for tclsh.
This change extends the tcl package to symlink tclshX.Y to tclsh in
the tcl package bin directory.
- Redid the code for setting the itac symlink for the cluster edition.
- Removed the *PATH variables for MPI to avoid a conflict with other MPI
environment modules.
- Added missing test for `+all` when checking variants.
Set up the environment for the Intel compilers and tools. This commit
does the following:
- Unset variables that were incorrect from the auto guess prefix
inspections.
- Add a RemovePath environment_modifications_formats for dotkit.
- Set the module environment variables appropriate for the different
variants.
- Change the component logic so that the '+all' variant works. It was
getting split by letter and leaving COMPONENTS empty.
- Added a variant checking function.
- Added NONRPM_DB_DIR to the silent.cfg so that the product database
goes to the installation directory.
- With the product database in prefix the code to remove the product
database file from the home directory is no longer needed and was
removed.
- Reformat the 'tools' variant description.
There are probably more variables needed for the '+tools' for the
'professional' product version but I do not have access to that.
* upstream/develop: (126 commits)
Fix indent/flake8 error.
openexr : Add new package
Set environment variables
Added gnu packages datamash, parallel, and screen
added package as argument to setup_platform_environment
ilmbase : Add new IlmBase package
Documented linker default
fixed flake errors
removed commented-out code
Set default link type to dynamic on cray. Includes hooks for platform-based environment changes
fixed flake errors
fixed flake errors
Improved cray_xc detection bug fix
Improved cray_xc detection
remove FIXMEs
Ensure that per-4.4.1 NetCDF doesn't use HDF5 1.10
Re-ignore licenses directory
Add "default" configuration scope.
Draft CDO
Make frontend OS on Cray machines a proper linux distro.
...
My PR for adding a new jdk version failed its
travis run because of existing flake8 violoations.
This package cleans them up.
I'm not particularly pythonic, but most of the complaints were
obvious. HOWEVER, I'm not particularly confident about handling
long lines by taking an flake8 exception comment onto the end.
Feedback welcome...
deptypes: allow for different queries
For things like Python modules, they are required for the build and
runtime, but rather than adding a new parameter for what to query across
the dependency DAG, just expose the recursive query parameter.
Modifications :
- added EditableMakefile to PackageBase subclasses
- astyle modified as an example
- preliminary hook to stop at a certain phase of install
This adds a filter_compilers function to have the Makeconf file for R
point to the actual compilers rather than the spack wrappers. Also added
version 3.3.1.
Previous package would not install correctly, would throw:
return os.path.join('share', 'lua', '%d.%d' % self.version[:2])
TypeError: %d format: a number is required, not Version
'-t' is not supported by the default cp on Mac OS X
replace with install/install_tree
cannot just use install_tree since shutil.copytree insists that the dst
directory not exist
- add macports to things that are cleaned out of the environment.
- linker incompatibilities cause issues with packages like OpenSSL.
- also clean up NOQA stuff in OpenSSL
# Conflicts:
# lib/spack/docs/packaging_guide.rst
# lib/spack/spack/package.py
Mostly minor/formatting issues in lib/spack/spack/package.py (the heavyweight merge was already done recently). Only one serious issue: it looks like the feature branch had accidentally deleted the line `spack.hooks.post_install(self)`. This got added back in from develop.
(i) add new version
(ii) add OCE, PETSc and SLEPc as dependencies
(iii) fix Blas/Lapack configuration
(iv) disable internal Metis which does not compile
Building OpenMPI without fortran is possible, and was already handled.
Raising an install error we effectively renounce at clang+OpenMPI.
build_environment : sets 'CC', 'CXX', and similar variables only if a compiler is found
Fixed ferret spec. It builds now
Made ferret spec more flake8-y
Fixed homepage and info text about Ferret
Removed vim swap file
Reverted changes to netcdf-fortran spec and added netcdf~mpi dependency to ferret spec to compensate for it
Fixed flake8 issues!
Add bzip2 as a dependency to base R.
Switch from installing the R packages from tar files to installing from
the extracted directory. This is more in line with a standard install
and also allows installing from VCS.
Use the Bioconductor version for BiocGenerics and future Bioconductor
packages. Suffix the package with 'bioc-$version' to indicate which
Bioconductor release the package is a part of. This is actually more
important than the actual version attached to individual packages
although those are subject to change within the Bioconductor branch.
I have been unable to build Boost with some toolset/platform combinations. The
users I support don't need the Boost features in Trilinos, so I have been
manually hacking trilinos/package.py to disable boost. I would like to propose
that these changes be added to the released version.
+ Add boost as a variant, default to true so there is no change to existing
behavior.
+ Move the CMake configure options related to Boost into a conditional block
that is triggered by "if '+boost' in spec".
This commit adds a patch to fix the case where gcc-6.1 emits an error
for string format literal that was a warning in previous versions of
gcc. The patch reference is
https://bugzilla.gnome.org/show_bug.cgi?id=761550
Also ran the package file through autopep8.
- Added a 'url_for_version' function to the METIS/ParMETIS packages.
- Added installation support for METIS@5.0.2 and ParMETIS@4.0.2.
- Changed the 'double' variant to 'real64' to make it more consistent
with the 'idx64' variant naming.
- Removed an unnecessary dependency on gdb.
This commit includes:
* a new go package that uses gccgo to bootstrap the go toolchain
* env support added to Executable
* a new Go fetch strategy that uses `go get` to fetch a package and all
of its deps
* A platinum searcher package that leverages the new go package and
fetch strategy
This PR updates the turbomole package file but does not introduce any
new funtionality. The updtes are:
- use spack interface for subprocess.PIPE and subprocess.Popen
- clean up based on flake8
- remove some extra whitespace
This is a complete rework of the lua package, it also allows the
environment modification classes to handle paths that are not separated
by colons, and uses the support for same in TCL modules as well.
The biggest difference is the handling for lua extension packages, which
now have their paths set correctly by the lua parent package, and have
access to both lua and luarocks as installation tools. See the luaposix
package for what should be required for most lua packages after this.
- Fixed a bug that was causing shared library usage to fail when linking with another application.
- Updated the repository URL to allow for more general version downloading.
- Added installation support for version 5.1.10b.
- Cleaned up the installation file to make it a bit easier to follow and modify.
GMsh binary now links against full path name of libraries. This fixes
problems, such as `dyld: Library not loaded: libGmsh.2.11.dylib`, when
running the executable.
There are many python packages that depend on py-numpy. Each one of
those will have a copy of f2py that will need to be put in the ignore
list for activation. Thise PR adds f2py to the ignore list in the python
package.py file so that it does not have to be done for each package
that depends on py-numpy. This follows the model of what is done for
py-setuptools.
This PR also removes the f2py ignore expression for python packages
that were using it as it is no longer needed in the individual packages.
* Add the turbomole package.
This package has three modes of operation that need to be selected
independently. This is handled with spack vaiants. Turbomole has a builtin MPI
implementation so it does not need to depend on an mpi provider when using the
+mpi variant.
* Whitespace cleanup.
* Added preliminary implementations for the debug and shared variants.
* Fixed a few problems with the '+shared' variant of the Zoltan package.
Added support for a few more important Zoltan package versions.
* Fixed a minor compiler incompatibility issue with the '+shared+mpi' variants.
MFEM is a free, lightweight, scalable C++ library for finite element
methods.
Includes lapack, hypre, metis, suite-sparse, mpi variants & tests for
serial and parallel versions.