summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-02-20Add extra version of py-pyshp (#15072)iarspider1-0/+2
* Add extra version of py-pyshp * Update package.py
2020-02-20Package for IRPF90 (#15076)Anthony Scemama1-0/+23
* Added IRPF90 package * PEP8 * SHA256 * Update var/spack/repos/builtin/packages/py-irpf90/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-02-19Add extra version of py-multiprocess (#15043)iarspider1-0/+12
* Add extra version of py-multiprocess * Update dependency version * Add url_for_version * Flake-8 * Update package.py
2020-02-19Add extra version of py-packaging (#15047)iarspider1-1/+2
* Add extra version of py-packaging * Update py-packaging `attrs` dependency was only in 19.1
2020-02-19Use shutil.copy2 in install_tree (#15058)Dr. Christian Tacke1-1/+1
Sometimes one needs to preserve the (relative order) of mtimes on installed files. So it's better to just copy over all the metadata from the source tree to the install tree. If permissions need fixing, that will be done anyway afterwards. One major use case are resource()s: They're unpacked in one place and then copied to their final place using install_tree(). If the resource is a source tree using autoconf/automake, resetting mtimes uncorrectly might force unwanted autoconf/etc calls.
2020-02-19Add extra version of py-psutil (#15063)iarspider1-0/+1
* Add extra version of py-psutil * Add optional dependency on enum34 * Update package.py * Remove unused enum variant
2020-02-19Add extra version of py-ptyprocess (#15064)iarspider1-0/+1
2020-02-19Add extra version of py-pylint (#15068)iarspider1-6/+8
* Add extra version of py-pylint * Update dependencies
2020-02-19libfabric: Always install fabtests (#15081)Dr. Christian Tacke1-6/+25
libfabric used to install fabtests only when installed using --test. fabtests has tools that are useful on a running system, so they should be installed always. * Rewrote the build/install part to always install fabtests alongside libfabric. * Updated a few fabtests resources. * Updated the test related stuff. Works for most versions now. * Include tcp and udp fabrics so that the test suite works.
2020-02-19Add extra version of py-python-gitlab (#15074)iarspider1-4/+6
* Add extra version of py-python-gitlab * Update dependency version
2020-02-19Add extra version of py-rsa (#15084)iarspider1-0/+1
2020-02-19Add extra version of py-scandir (#15085)iarspider1-2/+3
2020-02-19Docs: configure_args -> cmake_args (#15102)Adam J. Stewart1-1/+1
2020-02-19hpctoolkit: adjust libunwind dependency (#15099)Mark W. Krentel1-7/+3
Change hpctoolkit's dependency on libunwind from 2018.10.12 to 1.4:. In libunwind, 2018.10.12 is going away in favor of 1.4-rc1 (they're nearly identical commits). Remove the 'gpu' version. This was a temporary branch that is now folded into master.
2020-02-19py-notebook: make py-setuptools a run dependency (#15095)Glenn Johnson1-1/+1
* py-notebook: make py-setuptools a run dependency The py-setuptools dependency in py-notebook needs to be a run dependency. The following message is received if it is not in the run environment. Traceback (most recent call last): File "/opt/ssoft/apps/2020.1/linu x-centos7-sandybridge/gcc-9.2.0/py-notebook-6.0.1-6usbn4c/bin/jupyter-notebook", line 6, in <module> from pkg_resources import load_entry_point Module NotFoundError: No module named 'pkg_resources' * Remove extraneous whitespace
2020-02-19Fix relocate.mime_type if slashes in subtype (#11788)Oliver Breitwieser1-1/+2
If the mimetype returned from `file -h -b --mime-type` contains slashes in its subtype, the tuple returned from `spack.relocate.mime_type` will have a size larger than two, which leads to errors. Change-Id: I31de477e69f114ffdc9ae122d00c573f5f749dbb
2020-02-19Add extra version of py-scikit-learn (#15087)iarspider1-0/+1
2020-02-19Add extra version of py-prompt-toolkit (#15062)iarspider1-2/+3
2020-02-19Add extra version of py-pickleshare (#15059)iarspider1-1/+4
* Add extra version of py-pickleshare * Fix dependencies * Flake-8
2020-02-19Add extra version of py-pillow (#15060)iarspider1-0/+1
2020-02-19Add extra version of py-pip (#15061)iarspider1-0/+1
2020-02-19Add extra version of py-pyasn1 (#15066)iarspider1-0/+1
2020-02-19Add extra version of py-pyparsing (#15069)iarspider1-0/+1
2020-02-19Add extra version of py-pyproj (#15070)iarspider1-0/+1
2020-02-19Add extra version of py-pyqt5 (#15071)iarspider1-0/+1
2020-02-19Add extra version of py-pytest (#15073)iarspider1-0/+1
2020-02-19Add extra version of py-pytz (#15077)iarspider1-0/+1
2020-02-19Add extra version of py-pyyaml (#15078)iarspider1-0/+1
2020-02-19Add extra version of py-jedi (#14990)iarspider2-2/+33
* Add extra version of py-jedi * Update package.py * Update package.py Correct dependency types * Update var/spack/repos/builtin/packages/py-jedi/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/py-jedi/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/py-jedi/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Add py-parso package * Remove boilerplate from py-parso * Flake-8 Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-02-19Add extra version of py-isort (#14988)iarspider1-1/+8
* Add extra version of py-isort * Update package.py * Update package.py * Update var/spack/repos/builtin/packages/py-isort/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/py-isort/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/py-isort/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/py-isort/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-02-19Add extra version of py-dask; add new variant and dependencies (#14973)iarspider4-0/+84
* Add extra version of py-dask * Update package.py * Add extra dependencies for py-dask+distributed * Update package.py * Update var/spack/repos/builtin/packages/py-heapdict/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/py-heapdict/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/py-distributed/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/py-distributed/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update package.py * Update package.py * Update package.py * Update package.py * Update var/spack/repos/builtin/packages/py-distributed/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/py-distributed/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update package.py * Update var/spack/repos/builtin/packages/py-distributed/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update package.py * Flake-8 * Add patch step for py-distributed Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-02-19Add extra version of py-pyzmq (#15080)iarspider1-0/+1
2020-02-19Fix gcc 8.3 build on macOS 10.14 (#15089)Seth R. Johnson1-0/+6
2020-02-19Buildcache: join rpaths returned by get_existing_elf_rpaths with ':'. (#15086)Patrick Gartung1-1/+1
This reproduces the behavior expected by patchelf_is_relocatable test.
2020-02-19Distributed builds (#13100)Tamara Dahlgren100-963/+2954
Fixes #9394 Closes #13217. ## Background Spack provides the ability to enable/disable parallel builds through two options: package `parallel` and configuration `build_jobs`. This PR changes the algorithm to allow multiple, simultaneous processes to coordinate the installation of the same spec (and specs with overlapping dependencies.). The `parallel` (boolean) property sets the default for its package though the value can be overridden in the `install` method. Spack's current parallel builds are limited to build tools supporting `jobs` arguments (e.g., `Makefiles`). The number of jobs actually used is calculated as`min(config:build_jobs, # cores, 16)`, which can be overridden in the package or on the command line (i.e., `spack install -j <# jobs>`). This PR adds support for distributed (single- and multi-node) parallel builds. The goals of this work include improving the efficiency of installing packages with many dependencies and reducing the repetition associated with concurrent installations of (dependency) packages. ## Approach ### File System Locks Coordination between concurrent installs of overlapping packages to a Spack instance is accomplished through bottom-up dependency DAG processing and file system locks. The runs can be a combination of interactive and batch processes affecting the same file system. Exclusive prefix locks are required to install a package while shared prefix locks are required to check if the package is installed. Failures are communicated through a separate exclusive prefix failure lock, for concurrent processes, combined with a persistent store, for separate, related build processes. The resulting file contains the failing spec to facilitate manual debugging. ### Priority Queue Management of dependency builds changed from reliance on recursion to use of a priority queue where the priority of a spec is based on the number of its remaining uninstalled dependencies. Using a queue required a change to dependency build exception handling with the most visible issue being that the `install` method *must* install something in the prefix. Consequently, packages can no longer get away with an install method consisting of `pass`, for example. ## Caveats - This still only parallelizes a single-rooted build. Multi-rooted installs (e.g., for environments) are TBD in a future PR. Tasks: - [x] Adjust package lock timeout to correspond to value used in the demo - [x] Adjust database lock timeout to reduce contention on startup of concurrent `spack install <spec>` calls - [x] Replace (test) package's `install: pass` methods with file creation since post-install `sanity_check_prefix` will otherwise error out with `Install failed .. Nothing was installed!` - [x] Resolve remaining existing test failures - [x] Respond to alalazo's initial feedback - [x] Remove `bin/demo-locks.py` - [x] Add new tests to address new coverage issues - [x] Replace built-in package's `def install(..): pass` to "install" something (i.e., only `apple-libunwind`) - [x] Increase code coverage
2020-02-18Add latest 3.9.x releases QMCPACK (#15056)Nichols A. Romero1-0/+3
2020-02-18octave: enable 64-bit BLAS builds. (#15035)Kai Torben Ohlhus1-0/+6
* octave: enable 64-bit BLAS builds. Perform necessary actions [as described in the manual](https://octave.org/doc/v5.2.0/Compiling-Octave-with-64_002dbit-Indexing.html). * Update package.py
2020-02-18modern-wheel: add virtual destructor to BaseMultiParms class (#14899)noguchi-k2-0/+21
* modern-wheel: add virtual destructor * modern-wheel: add maintainers
2020-02-18ENH: add catch2 CMake install (#15008)Tyler Reddy2-16/+21
* ENH: add catch2 CMake install * add a variant allowing catch2 to be installed via CMake, which is useful for generating a .cmake config file for consumption by other projects * Catch2: Simplify Package - CMake install is also single-header for new releases - testing triggered by Spack's test mechanism - default to CMake build (better than simple copy, which is just for old releases to be installed) * Catch: Remove Variant We can control all installs with CMake to be quick and complete. Old versions prior to 1.7.0 will be manually installed, as the `make install` target is missing in those. Releases 1.7.0-1.9.3 do not expose control over test builds. * openPMD-api: Catch Lost single_header ... variant is gone :) Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2020-02-18slate needs mercurial for build (#15055)eugeneswalker1-0/+1
2020-02-18[hepmc] Finish the HepMC3 spackage update (#15036)Hadrien G1-1/+13
* Finish the HepMC3 spackage update - Update CMake requirement per latest master - Account for Python variant, add python dependency if used - Account for ROOT I/O variant, add ROOT dependency if used * Please flake8
2020-02-18Update and simplify julia package (#14756)Glenn Johnson1-174/+104
* Update and simplify julia package The current Spack Julia package potentially installs a few julia packages, with the installation being controlled by variants. There are a couple of problems with this. First, Julia handles packages very differently from systems such as R and Python. Julia requires write access to the repository directories in order for user installs of packages to work. If spack installs julia packages then there will be a repository, DEPOT_PATH, in the installation directory. If spack is used on an individual basis this would work but would mean that package data is written to the spack installation directory after installation. If spack is used to provide packages for end users then user installs of julia packages will fail due to lack of write access to the repository in the installation directory. It seems best for spack to just install julia without any julia packages, and drop the configuration for those packages. Second, having spack install package as variants seems to be counter to how spack works for other extendable systems, like R and Python. Julia should be an extendable package in spack but it is not clear how to make that work. As pointed out above, installing user packages requires write access to the julia repositories, including the one in the install directory. Essentially, a user package installation will try to update metadata for *all* julia repositories. Furthermore, each of those repositories, assuming one per package with spack, would need to have the Project.toml files merged to present the package stack to julia. Again, it seems best for spack to just install julia itself and not try to install julia packages, at least at this time. A good discussion on this can be found at https://discourse.julialang.org/t/how-does-one-set-up-a-centralized-julia-installation/13922. This PR does the following: - adds versions 1.2.0 and 1.3.1 - removes variants that correspond to julia packages - changes python to build dependency as it seems to only be needed for LLVM - the new versions can use Python-3 - removes dependencies for packages - adds a conflict statement for Intel compiler, with comment - add a setup_build_environment method to find GCC libraries - make formatting consistent - adds JULIA_CPU_TARGET option to correspond with target to help with running julia image on hardware older than build host - added intel build options, for when they can be used - removed code for installing packages - removed code for julia config that was needed for packages Note that versions below 0.5.1 fail to build, with or without these changes. It is not clear why that is. * Update var/spack/repos/builtin/packages/julia/package.py Yes, need to use correct grammar even in the midst of numbers and symbols. Good catch! Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * More cleanup of Julia package This commit does more cleanup and sets more constraints. - Removed release-0.4 and release-0.5. I am not sure if those are actually useful but they are quite old and there are released versions from the same timeframe. - Remove the binutils variant. - Made cmake a build dependency for versions >= 1. - Added git as a dependency for @master. - Limit curl dependency to released versions. - Do not use external curl for master. When I checked, using the external version failed but the internal curl worked. - Versions <= 0.5.0 need an older version of openssl. - Set conflicts directive for cxx variant. - Added conflicts directive for needing +mkl with Intel compiler. - Removed configuration settings as these prevented julia from working properly in all cases that I looked at. * Fix flake8 error Remove 'import sys' that is no longer used. * More dependency tweaks This commit sets further version constraints on dependencies. It really looks like julia requires its internal dependencies more over time. - curl only up to 0.5.0 - openssl only up to 0.5.0 - override with system curl up to version 0.5.0 * Fix spec for curl certs Only depending on curl through 0.5.0. Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-02-18buildcache: Check for tar.bz2 and set tar.gz if not found (#15054)Patrick Gartung1-0/+4
* Check for tar.bz2 and set tar.gz if not found * Move check for tarfile after it is extracted
2020-02-18Add extra version of py-cryptography (#14975)iarspider1-3/+14
* Add extra version of py-cryptography * Update package.py * Update package.py * Update var/spack/repos/builtin/packages/py-cryptography/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/py-cryptography/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/py-cryptography/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * Update package.py * Flake-8 Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-02-18ROSS: v7.2.0 and branches to match (#15052)Elsa Gonsiorowski, PhD1-1/+5
2020-02-18Fix OpenBLAS 0.3.8 build on darwin (#15041)Seth R. Johnson2-0/+27
* Fix OpenBLAS 0.3.8 build on darwin See https://github.com/xianyi/OpenBLAS/issues/2431, patched in https://github.com/xianyi/OpenBLAS/issues/2431 . * Add references for patchfile
2020-02-18py-hpcbench: new package (#14915)Matthias Wolf1-0/+32
* py-hpcbench: new package * obey the flake8 * address comments, fix versions. * Update var/spack/repos/builtin/packages/py-hpcbench/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-02-18Add extra version of py-graphviz (#14981)iarspider1-1/+4
* Add extra version of py-graphviz * Update package.py * Update package.py * Update var/spack/repos/builtin/packages/py-graphviz/package.py Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-02-18npm: Add 6.13.7 (#15034)Michael Kuhn1-2/+3
2020-02-18Add extra version of py-nbconvert (#15044)iarspider1-0/+1