summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x.github/workflows/install_spack.sh23
-rw-r--r--.github/workflows/linux_build_tests.yaml3
-rw-r--r--.github/workflows/linux_unit_tests.yaml80
-rw-r--r--.github/workflows/macos_python.yml23
-rw-r--r--.github/workflows/macos_unit_tests.yaml3
-rw-r--r--.github/workflows/minimum_python_versions.yaml3
-rw-r--r--.travis.yml124
-rw-r--r--README.md28
-rw-r--r--lib/spack/docs/containers.rst4
-rw-r--r--lib/spack/docs/contribution_guide.rst21
-rw-r--r--lib/spack/docs/developer_guide.rst390
-rw-r--r--lib/spack/docs/getting_started.rst2
-rw-r--r--lib/spack/docs/images/pr-commit.pngbin0 -> 44592 bytes
-rw-r--r--lib/spack/docs/images/projects.pngbin0 -> 69075 bytes
-rw-r--r--lib/spack/docs/pipelines.rst4
-rw-r--r--lib/spack/docs/workflows.rst7
-rw-r--r--lib/spack/llnl/util/tty/pty.py150
-rw-r--r--lib/spack/spack/binary_distribution.py31
-rw-r--r--lib/spack/spack/build_systems/cuda.py30
-rw-r--r--lib/spack/spack/ci.py2
-rw-r--r--lib/spack/spack/cmd/checksum.py2
-rw-r--r--lib/spack/spack/cmd/create.py8
-rw-r--r--lib/spack/spack/main.py8
-rw-r--r--lib/spack/spack/package.py34
-rw-r--r--lib/spack/spack/relocate.py8
-rw-r--r--lib/spack/spack/test/bindist.py471
-rw-r--r--lib/spack/spack/test/llnl/util/lock.py2
-rw-r--r--lib/spack/spack/test/llnl/util/tty/log.py42
-rw-r--r--lib/spack/spack/test/util/executable.py30
-rw-r--r--lib/spack/spack/util/compression.py4
-rw-r--r--lib/spack/spack/util/crypto.py2
-rw-r--r--lib/spack/spack/util/executable.py9
-rw-r--r--lib/spack/spack/util/gpg.py2
-rw-r--r--share/spack/docker/centos-6.dockerfile28
-rw-r--r--share/spack/docker/centos-7.dockerfile28
-rw-r--r--share/spack/docker/ubuntu-1604.dockerfile28
-rw-r--r--share/spack/docker/ubuntu-1804.dockerfile28
-rwxr-xr-xshare/spack/qa/install_patchelf.sh22
-rwxr-xr-xshare/spack/qa/run-shell-tests2
-rwxr-xr-xshare/spack/qa/run-unit-tests6
-rwxr-xr-xshare/spack/qa/setup.sh16
-rwxr-xr-xshare/spack/spack-completion.bash2
-rw-r--r--share/spack/templates/container/Dockerfile2
-rw-r--r--share/spack/templates/container/singularity.def2
-rw-r--r--var/spack/repos/builtin.mock/packages/corge/package.py155
-rw-r--r--var/spack/repos/builtin.mock/packages/garply/package.py112
-rw-r--r--var/spack/repos/builtin.mock/packages/patchelf/package.py19
-rw-r--r--var/spack/repos/builtin.mock/packages/quux/package.py132
-rw-r--r--var/spack/repos/builtin/packages/abinit/package.py19
-rw-r--r--var/spack/repos/builtin/packages/abseil-cpp/package.py3
-rw-r--r--var/spack/repos/builtin/packages/acl/package.py4
-rw-r--r--var/spack/repos/builtin/packages/acts/package.py21
-rw-r--r--var/spack/repos/builtin/packages/aegean/package.py3
-rw-r--r--var/spack/repos/builtin/packages/amber/package.py43
-rw-r--r--var/spack/repos/builtin/packages/amdblis/package.py1
-rw-r--r--var/spack/repos/builtin/packages/amrex/package.py32
-rw-r--r--var/spack/repos/builtin/packages/apcomp/package.py182
-rw-r--r--var/spack/repos/builtin/packages/ascent/package.py85
-rw-r--r--var/spack/repos/builtin/packages/aspect/package.py5
-rw-r--r--var/spack/repos/builtin/packages/atf/package.py23
-rw-r--r--var/spack/repos/builtin/packages/babelflow/package.py31
-rw-r--r--var/spack/repos/builtin/packages/bbcp/package.py7
-rw-r--r--var/spack/repos/builtin/packages/bison/package.py13
-rw-r--r--var/spack/repos/builtin/packages/blat/package.py1
-rw-r--r--var/spack/repos/builtin/packages/bliss/package.py1
-rw-r--r--var/spack/repos/builtin/packages/blktrace/package.py7
-rw-r--r--var/spack/repos/builtin/packages/brpc/package.py1
-rw-r--r--var/spack/repos/builtin/packages/bwa/bwa_for_aarch64.patch13
-rw-r--r--var/spack/repos/builtin/packages/bwa/package.py15
-rw-r--r--var/spack/repos/builtin/packages/cantera/package.py2
-rw-r--r--var/spack/repos/builtin/packages/changa/fix_configure_path.patch13
-rw-r--r--var/spack/repos/builtin/packages/changa/package.py46
-rw-r--r--var/spack/repos/builtin/packages/charmpp/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cp2k/package.py53
-rw-r--r--var/spack/repos/builtin/packages/cppcheck/package.py1
-rw-r--r--var/spack/repos/builtin/packages/cpprestsdk/package.py11
-rw-r--r--var/spack/repos/builtin/packages/csa-c/package.py19
-rw-r--r--var/spack/repos/builtin/packages/cuda/package.py3
-rw-r--r--var/spack/repos/builtin/packages/curl/package.py4
-rw-r--r--var/spack/repos/builtin/packages/dd4hep/package.py1
-rw-r--r--var/spack/repos/builtin/packages/dftbplus/package.py147
-rw-r--r--var/spack/repos/builtin/packages/dftd3-lib/package.py38
-rw-r--r--var/spack/repos/builtin/packages/dray/package.py318
-rw-r--r--var/spack/repos/builtin/packages/elpa/package.py5
-rw-r--r--var/spack/repos/builtin/packages/energyplus/package.py19
-rw-r--r--var/spack/repos/builtin/packages/esmf/package.py2
-rw-r--r--var/spack/repos/builtin/packages/examl/package.py50
-rw-r--r--var/spack/repos/builtin/packages/flatbuffers/package.py1
-rw-r--r--var/spack/repos/builtin/packages/flatcc/package.py3
-rw-r--r--var/spack/repos/builtin/packages/frontistr/package.py1
-rw-r--r--var/spack/repos/builtin/packages/gdal/package.py3
-rw-r--r--var/spack/repos/builtin/packages/gdb/package.py1
-rw-r--r--var/spack/repos/builtin/packages/gdk-pixbuf/package.py11
-rw-r--r--var/spack/repos/builtin/packages/ginkgo/CAS-HIP-NVCC-1.2.0.patch10
-rw-r--r--var/spack/repos/builtin/packages/ginkgo/package.py4
-rw-r--r--var/spack/repos/builtin/packages/glew/package.py2
-rw-r--r--var/spack/repos/builtin/packages/global/package.py1
-rw-r--r--var/spack/repos/builtin/packages/glusterfs/package.py1
-rw-r--r--var/spack/repos/builtin/packages/gmt/package.py7
-rw-r--r--var/spack/repos/builtin/packages/gmt/regexp.patch11
-rw-r--r--var/spack/repos/builtin/packages/gnutls/package.py1
-rw-r--r--var/spack/repos/builtin/packages/go/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gpdb/package.py13
-rw-r--r--var/spack/repos/builtin/packages/grads/package.py65
-rw-r--r--var/spack/repos/builtin/packages/grads/udpt2
-rw-r--r--var/spack/repos/builtin/packages/grpc/package.py12
-rw-r--r--var/spack/repos/builtin/packages/gunrock/package.py100
-rw-r--r--var/spack/repos/builtin/packages/harfbuzz/package.py12
-rw-r--r--var/spack/repos/builtin/packages/hbase/package.py21
-rw-r--r--var/spack/repos/builtin/packages/heputils/package.py36
-rw-r--r--var/spack/repos/builtin/packages/herwigpp/herwig++-2.7.1.patch66
-rw-r--r--var/spack/repos/builtin/packages/herwigpp/package.py52
-rw-r--r--var/spack/repos/builtin/packages/hibench/package.py35
-rw-r--r--var/spack/repos/builtin/packages/hisat2/package.py9
-rw-r--r--var/spack/repos/builtin/packages/hpcg/package.py78
-rw-r--r--var/spack/repos/builtin/packages/hpctoolkit/package.py1
-rw-r--r--var/spack/repos/builtin/packages/hpcviewer/package.py6
-rw-r--r--var/spack/repos/builtin/packages/ibm-java/package.py2
-rw-r--r--var/spack/repos/builtin/packages/icu4c/package.py19
-rw-r--r--var/spack/repos/builtin/packages/jmol/package.py16
-rw-r--r--var/spack/repos/builtin/packages/jube/package.py2
-rw-r--r--var/spack/repos/builtin/packages/kallisto/package.py1
-rw-r--r--var/spack/repos/builtin/packages/keepalived/package.py2
-rw-r--r--var/spack/repos/builtin/packages/legion/package.py5
-rw-r--r--var/spack/repos/builtin/packages/lhapdf/package.py1
-rw-r--r--var/spack/repos/builtin/packages/libelf/package.py6
-rw-r--r--var/spack/repos/builtin/packages/libint/package.py23
-rw-r--r--var/spack/repos/builtin/packages/libtree/package.py6
-rw-r--r--var/spack/repos/builtin/packages/libyogrt/package.py6
-rw-r--r--var/spack/repos/builtin/packages/ligra/package.py44
-rw-r--r--var/spack/repos/builtin/packages/lmbench/fix_results_path_for_aarch64.patch13
-rw-r--r--var/spack/repos/builtin/packages/lmbench/package.py2
-rw-r--r--var/spack/repos/builtin/packages/looptools/package.py25
-rw-r--r--var/spack/repos/builtin/packages/ltrace/package.py5
-rw-r--r--var/spack/repos/builtin/packages/m4/package.py3
-rw-r--r--var/spack/repos/builtin/packages/magics/package.py19
-rw-r--r--var/spack/repos/builtin/packages/mapnik/package.py5
-rw-r--r--var/spack/repos/builtin/packages/mcutils/package.py34
-rw-r--r--var/spack/repos/builtin/packages/minio/package.py29
-rw-r--r--var/spack/repos/builtin/packages/mpifileutils/package.py7
-rw-r--r--var/spack/repos/builtin/packages/mumax/package.py62
-rw-r--r--var/spack/repos/builtin/packages/nag/package.py2
-rw-r--r--var/spack/repos/builtin/packages/namd/package.py3
-rw-r--r--var/spack/repos/builtin/packages/ncl/package.py4
-rw-r--r--var/spack/repos/builtin/packages/nco/package.py6
-rw-r--r--var/spack/repos/builtin/packages/ncview/package.py1
-rw-r--r--var/spack/repos/builtin/packages/nn-c/package.py33
-rw-r--r--var/spack/repos/builtin/packages/onednn/package.py3
-rw-r--r--var/spack/repos/builtin/packages/openblas/openblas_fujitsu2.patch13
-rw-r--r--var/spack/repos/builtin/packages/openblas/package.py1
-rw-r--r--var/spack/repos/builtin/packages/opencascade/package.py10
-rw-r--r--var/spack/repos/builtin/packages/openfoam/package.py2
-rw-r--r--var/spack/repos/builtin/packages/openloops/package.py123
-rw-r--r--var/spack/repos/builtin/packages/openloops/sft1.coll26
-rw-r--r--var/spack/repos/builtin/packages/openloops/sft2.coll76
-rw-r--r--var/spack/repos/builtin/packages/openmpi/package.py10
-rw-r--r--var/spack/repos/builtin/packages/openslide/package.py3
-rw-r--r--var/spack/repos/builtin/packages/parallelmergetree/package.py34
-rw-r--r--var/spack/repos/builtin/packages/poppler/package.py1
-rw-r--r--var/spack/repos/builtin/packages/precice/package.py2
-rw-r--r--var/spack/repos/builtin/packages/prometheus/package.py34
-rw-r--r--var/spack/repos/builtin/packages/protobuf/package.py7
-rw-r--r--var/spack/repos/builtin/packages/psi4/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-argcomplete/package.py8
-rw-r--r--var/spack/repos/builtin/packages/py-azure-batch/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-cli-command-modules-nspkg/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-azure-cli-core/package.py39
-rw-r--r--var/spack/repos/builtin/packages/py-azure-cli-nspkg/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-azure-cli-telemetry/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-azure-cli/package.py102
-rw-r--r--var/spack/repos/builtin/packages/py-azure-core/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-azure-cosmos/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-azure-datalake-store/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-azure-functions-devops-build/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-graphrbac/package.py1
-rw-r--r--var/spack/repos/builtin/packages/py-azure-keyvault-certificates/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-azure-keyvault-keys/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-azure-keyvault-nspkg/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-azure-keyvault-secrets/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-azure-keyvault/package.py24
-rw-r--r--var/spack/repos/builtin/packages/py-azure-loganalytics/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-advisor/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-apimanagement/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-appconfiguration/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-applicationinsights/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-authorization/package.py1
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-batch/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-batchai/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-billing/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-botservice/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-cdn/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-cognitiveservices/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-compute/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-consumption/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-containerinstance/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-containerregistry/package.py4
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-containerservice/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-core/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-cosmosdb/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-datalake-analytics/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-datalake-store/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-datamigration/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-deploymentmanager/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-devtestlabs/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-dns/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-eventgrid/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-eventhub/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-hdinsight/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-imagebuilder/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-iotcentral/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-iothub/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-iothubprovisioningservices/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-kusto/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-loganalytics/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-managedservices/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-managementgroups/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-maps/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-marketplaceordering/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-media/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-monitor/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-msi/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-netapp/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-network/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-policyinsights/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-privatedns/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-rdbms/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservices/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservicesbackup/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-redhatopenshift/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-redis/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-relay/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-reservations/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-search/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-security/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-servicebus/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-servicefabric/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-signalr/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-sql/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-sqlvirtualmachine/package.py20
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-storage/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-trafficmanager/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-mgmt-web/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-azure-multiapi-storage/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-azure-storage-common/package.py21
-rw-r--r--var/spack/repos/builtin/packages/py-azure-storage-nspkg/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-boto/package.py19
-rw-r--r--var/spack/repos/builtin/packages/py-chainmap/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-cython/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-dp-gp-cluster/package.py33
-rw-r--r--var/spack/repos/builtin/packages/py-fabric/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-fortran-language-server/package.py23
-rw-r--r--var/spack/repos/builtin/packages/py-invoke/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-javaproperties/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-jsmin/package.py15
-rw-r--r--var/spack/repos/builtin/packages/py-jsondiff/package.py15
-rw-r--r--var/spack/repos/builtin/packages/py-knack/package.py22
-rw-r--r--var/spack/repos/builtin/packages/py-lockfile/package.py1
-rw-r--r--var/spack/repos/builtin/packages/py-maestrowf/package.py42
-rw-r--r--var/spack/repos/builtin/packages/py-matplotlib/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-msal/package.py1
-rw-r--r--var/spack/repos/builtin/packages/py-opt-einsum/package.py6
-rw-r--r--var/spack/repos/builtin/packages/py-paramiko/package.py12
-rw-r--r--var/spack/repos/builtin/packages/py-protobuf/package.py1
-rw-r--r--var/spack/repos/builtin/packages/py-pynacl/package.py18
-rw-r--r--var/spack/repos/builtin/packages/py-pysam/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-pyscf/package.py43
-rw-r--r--var/spack/repos/builtin/packages/py-python-swiftclient/package.py1
-rw-r--r--var/spack/repos/builtin/packages/py-scipy/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-shroud/package.py3
-rw-r--r--var/spack/repos/builtin/packages/py-sphinxcontrib-bibtex/package.py1
-rw-r--r--var/spack/repos/builtin/packages/py-sshtunnel/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-tensorflow/package.py5
-rw-r--r--var/spack/repos/builtin/packages/py-torch/package.py15
-rw-r--r--var/spack/repos/builtin/packages/py-torch/rocm.patch98
-rw-r--r--var/spack/repos/builtin/packages/py-vsts-cd-manager/package.py17
-rw-r--r--var/spack/repos/builtin/packages/py-vsts/package.py16
-rw-r--r--var/spack/repos/builtin/packages/py-websocket-client/package.py1
-rw-r--r--var/spack/repos/builtin/packages/qt/package.py1
-rw-r--r--var/spack/repos/builtin/packages/quicksilver/package.py3
-rw-r--r--var/spack/repos/builtin/packages/r-countrycode/package.py19
-rw-r--r--var/spack/repos/builtin/packages/r-data-table/package.py1
-rw-r--r--var/spack/repos/builtin/packages/r-devtools/package.py39
-rw-r--r--var/spack/repos/builtin/packages/r-glue/package.py1
-rw-r--r--var/spack/repos/builtin/packages/r-gsodr/package.py24
-rw-r--r--var/spack/repos/builtin/packages/r-usethis/package.py7
-rw-r--r--var/spack/repos/builtin/packages/raja/package.py8
-rw-r--r--var/spack/repos/builtin/packages/random123/package.py9
-rw-r--r--var/spack/repos/builtin/packages/random123/v1132-xl161.patch13
-rw-r--r--var/spack/repos/builtin/packages/rivet/gsl.m460
-rw-r--r--var/spack/repos/builtin/packages/rivet/package.py170
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-1.8.2.patch44
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-1.9.0.patch30
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.2.0.patch11
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.2.1.patch11
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.4.0.patch12
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.4.2.patch39
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.4.3.patch39
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.5.1.patch39
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.5.2.patch10
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.5.3.patch43
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.5.4.patch42
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.6.0.patch90
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.6.1.patch24
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.6.2.patch97
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-2.7.0.patch97
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-3.0.0.patch70
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-3.0.1.patch11
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-3.1.0.patch11
-rw-r--r--var/spack/repos/builtin/packages/rivet/rivet-3.1.1.patch11
-rw-r--r--var/spack/repos/builtin/packages/root/package.py3
-rw-r--r--var/spack/repos/builtin/packages/rsync/package.py5
-rw-r--r--var/spack/repos/builtin/packages/scons/package.py9
-rw-r--r--var/spack/repos/builtin/packages/screen/package.py1
-rw-r--r--var/spack/repos/builtin/packages/sdsl-lite/package.py6
-rw-r--r--var/spack/repos/builtin/packages/shapeit4/package.py55
-rw-r--r--var/spack/repos/builtin/packages/shapelib/package.py18
-rw-r--r--var/spack/repos/builtin/packages/smartdenovo/inline-limit.patch24
-rw-r--r--var/spack/repos/builtin/packages/smartdenovo/package.py4
-rw-r--r--var/spack/repos/builtin/packages/snappy/package.py3
-rw-r--r--var/spack/repos/builtin/packages/storm/package.py12
-rw-r--r--var/spack/repos/builtin/packages/stow/package.py1
-rw-r--r--var/spack/repos/builtin/packages/subversion/package.py7
-rw-r--r--var/spack/repos/builtin/packages/tensorflow-serving-client/package.py3
-rw-r--r--var/spack/repos/builtin/packages/texlive/package.py12
-rw-r--r--var/spack/repos/builtin/packages/thepeg/package.py103
-rw-r--r--var/spack/repos/builtin/packages/thepeg/thepeg-1.8.3.patch24
-rw-r--r--var/spack/repos/builtin/packages/thepeg/thepeg-1.9.0.patch34
-rw-r--r--var/spack/repos/builtin/packages/thepeg/thepeg-1.9.2.patch83
-rw-r--r--var/spack/repos/builtin/packages/thepeg/thepeg-2.1.1.patch14
-rw-r--r--var/spack/repos/builtin/packages/tmux/package.py1
-rw-r--r--var/spack/repos/builtin/packages/trilinos/package.py2
-rw-r--r--var/spack/repos/builtin/packages/typhon/package.py4
-rw-r--r--var/spack/repos/builtin/packages/umpire/package.py4
-rw-r--r--var/spack/repos/builtin/packages/vasp/package.py138
-rw-r--r--var/spack/repos/builtin/packages/vbfnlo/package.py43
-rw-r--r--var/spack/repos/builtin/packages/vim/package.py1
-rw-r--r--var/spack/repos/builtin/packages/visit/package.py6
-rw-r--r--var/spack/repos/builtin/packages/votca-tools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/vtk-h/package.py44
-rw-r--r--var/spack/repos/builtin/packages/vtk-h/vtkm_lagrange_cuda_fix.patch16
-rw-r--r--var/spack/repos/builtin/packages/vtk-m/disable_flying_edges.patch14
-rw-r--r--var/spack/repos/builtin/packages/vtk-m/package.py12
-rw-r--r--var/spack/repos/builtin/packages/vtk-m/vtkmdiy_fpic.patch12
-rw-r--r--var/spack/repos/builtin/packages/wannier90/package.py135
-rw-r--r--var/spack/repos/builtin/packages/xcfun/package.py2
-rw-r--r--var/spack/repos/builtin/packages/xxhash/package.py1
-rw-r--r--var/spack/repos/builtin/packages/yoda/package.py84
-rw-r--r--var/spack/repos/builtin/packages/yoda/yoda-1.5.5.patch50
-rw-r--r--var/spack/repos/builtin/packages/yoda/yoda-1.5.9.patch50
-rw-r--r--var/spack/repos/builtin/packages/yoda/yoda-1.6.1.patch72
-rw-r--r--var/spack/repos/builtin/packages/yoda/yoda-1.6.2.patch22
-rw-r--r--var/spack/repos/builtin/packages/yoda/yoda-1.6.3.patch50
-rw-r--r--var/spack/repos/builtin/packages/yoda/yoda-1.6.4.patch11
-rw-r--r--var/spack/repos/builtin/packages/yoda/yoda-1.6.5.patch23
-rw-r--r--var/spack/repos/builtin/packages/yoda/yoda-1.6.6.patch11
-rw-r--r--var/spack/repos/builtin/packages/yoda/yoda-1.6.7.patch11
-rw-r--r--var/spack/repos/builtin/packages/zsh/package.py13
357 files changed, 8492 insertions, 621 deletions
diff --git a/.github/workflows/install_spack.sh b/.github/workflows/install_spack.sh
index 5efae461a5..bc1c5f43ec 100755
--- a/.github/workflows/install_spack.sh
+++ b/.github/workflows/install_spack.sh
@@ -1,5 +1,20 @@
#!/usr/bin/env sh
-git clone https://github.com/spack/spack.git
-echo -e "config:\n build_jobs: 2" > spack/etc/spack/config.yaml
-. spack/share/spack/setup-env.sh
-spack compilers
+. share/spack/setup-env.sh
+echo -e "config:\n build_jobs: 2" > etc/spack/config.yaml
+spack config add "packages:all:target:[x86_64]"
+# TODO: remove this explicit setting once apple-clang detection is fixed
+cat <<EOF > etc/spack/compilers.yaml
+compilers:
+- compiler:
+ spec: apple-clang@11.0.3
+ paths:
+ cc: /usr/bin/clang
+ cxx: /usr/bin/clang++
+ f77: /usr/local/bin/gfortran-9
+ fc: /usr/local/bin/gfortran-9
+ modules: []
+ operating_system: catalina
+ target: x86_64
+EOF
+spack compiler info apple-clang
+spack debug report
diff --git a/.github/workflows/linux_build_tests.yaml b/.github/workflows/linux_build_tests.yaml
index ecdf38bfe4..3f5c575df3 100644
--- a/.github/workflows/linux_build_tests.yaml
+++ b/.github/workflows/linux_build_tests.yaml
@@ -3,13 +3,12 @@ name: linux builds
on:
push:
branches:
- - master
- develop
- releases/**
pull_request:
branches:
- - master
- develop
+ - releases/**
paths-ignore:
# Don't run if we only modified packages in the built-in repository
- 'var/spack/repos/builtin/**'
diff --git a/.github/workflows/linux_unit_tests.yaml b/.github/workflows/linux_unit_tests.yaml
index 3130bfa36e..78fd0e8ce0 100644
--- a/.github/workflows/linux_unit_tests.yaml
+++ b/.github/workflows/linux_unit_tests.yaml
@@ -60,3 +60,83 @@ jobs:
uses: codecov/codecov-action@v1
with:
flags: unittests,linux
+ flake8:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/setup-python@v2
+ with:
+ python-version: 3.8
+ - name: Install Python packages
+ run: |
+ pip install --upgrade pip six setuptools flake8
+ - name: Setup git configuration
+ run: |
+ # Need this for the git tests to succeed.
+ git --version
+ git config --global user.email "spack@example.com"
+ git config --global user.name "Test User"
+ git fetch -u origin develop:develop
+ - name: Run flake8 tests
+ run: |
+ share/spack/qa/run-flake8-tests
+ shell:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/setup-python@v2
+ with:
+ python-version: 3.8
+ - name: Install System packages
+ run: |
+ sudo apt-get -y update
+ sudo apt-get install -y coreutils gfortran gnupg2 mercurial ninja-build patchelf zsh fish
+ # Needed for kcov
+ sudo apt-get -y install cmake binutils-dev libcurl4-openssl-dev zlib1g-dev libdw-dev libiberty-dev
+ - name: Install Python packages
+ run: |
+ pip install --upgrade pip six setuptools codecov coverage
+ - name: Setup git configuration
+ run: |
+ # Need this for the git tests to succeed.
+ git --version
+ git config --global user.email "spack@example.com"
+ git config --global user.name "Test User"
+ git fetch -u origin develop:develop
+ - name: Install kcov for bash script coverage
+ env:
+ KCOV_VERSION: 38
+ run: |
+ KCOV_ROOT=$(mktemp -d)
+ wget --output-document=${KCOV_ROOT}/${KCOV_VERSION}.tar.gz https://github.com/SimonKagstrom/kcov/archive/v${KCOV_VERSION}.tar.gz
+ tar -C ${KCOV_ROOT} -xzvf ${KCOV_ROOT}/${KCOV_VERSION}.tar.gz
+ mkdir -p ${KCOV_ROOT}/build
+ cd ${KCOV_ROOT}/build && cmake -Wno-dev ${KCOV_ROOT}/kcov-${KCOV_VERSION} && cd -
+ make -C ${KCOV_ROOT}/build && sudo make -C ${KCOV_ROOT}/build install
+ - name: Run shell tests
+ env:
+ COVERAGE: true
+ run: |
+ share/spack/qa/run-shell-tests
+ - name: Upload to codecov.io
+ uses: codecov/codecov-action@v1
+ with:
+ flags: shelltests,linux
+ documentation:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/setup-python@v2
+ with:
+ python-version: 3.8
+ - name: Install System packages
+ run: |
+ sudo apt-get -y update
+ sudo apt-get install -y coreutils ninja-build graphviz
+ - name: Install Python packages
+ run: |
+ pip install --upgrade pip six setuptools
+ pip install --upgrade -r lib/spack/docs/requirements.txt
+ - name: Build documentation
+ run: |
+ share/spack/qa/run-doc-tests
diff --git a/.github/workflows/macos_python.yml b/.github/workflows/macos_python.yml
index e136102a46..6134ef4cf2 100644
--- a/.github/workflows/macos_python.yml
+++ b/.github/workflows/macos_python.yml
@@ -8,6 +8,13 @@ on:
schedule:
# nightly at 1 AM
- cron: '0 1 * * *'
+ pull_request:
+ branches:
+ - develop
+ paths:
+ # Run if we modify this yaml file
+ - '.github/workflows/macos_python.yml'
+ # TODO: run if we touch any of the recipes involved in this
# GitHub Action Limits
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
@@ -21,7 +28,8 @@ jobs:
- name: spack install
run: |
. .github/workflows/install_spack.sh
- spack install -v gcc
+ # 9.2.0 is the latest version on which we apply homebrew patch
+ spack install -v --fail-fast gcc@9.2.0 %apple-clang
install_jupyter_clang:
name: jupyter
@@ -32,7 +40,8 @@ jobs:
- name: spack install
run: |
. .github/workflows/install_spack.sh
- spack install -v py-jupyter %clang
+ spack config add packages:opengl:paths:opengl@4.1:/usr/X11R6
+ spack install -v --fail-fast py-jupyter %apple-clang
install_scipy_clang:
name: scipy, mpl, pd
@@ -42,9 +51,9 @@ jobs:
- name: spack install
run: |
. .github/workflows/install_spack.sh
- spack install -v py-scipy %clang
- spack install -v py-matplotlib %clang
- spack install -v py-pandas %clang
+ spack install -v --fail-fast py-scipy %apple-clang
+ spack install -v --fail-fast py-matplotlib %apple-clang
+ spack install -v --fail-fast py-pandas %apple-clang
install_mpi4py_clang:
name: mpi4py, petsc4py
@@ -54,5 +63,5 @@ jobs:
- name: spack install
run: |
. .github/workflows/install_spack.sh
- spack install -v py-mpi4py %clang
- spack install -v py-petsc4py %clang
+ spack install -v --fail-fast py-mpi4py %apple-clang
+ spack install -v --fail-fast py-petsc4py %apple-clang
diff --git a/.github/workflows/macos_unit_tests.yaml b/.github/workflows/macos_unit_tests.yaml
index 38feb2fc6a..f1e856070c 100644
--- a/.github/workflows/macos_unit_tests.yaml
+++ b/.github/workflows/macos_unit_tests.yaml
@@ -3,13 +3,12 @@ name: macos tests
on:
push:
branches:
- - master
- develop
- releases/**
pull_request:
branches:
- - master
- develop
+ - releases/**
jobs:
build:
diff --git a/.github/workflows/minimum_python_versions.yaml b/.github/workflows/minimum_python_versions.yaml
index 474f091514..a6ab5dfa40 100644
--- a/.github/workflows/minimum_python_versions.yaml
+++ b/.github/workflows/minimum_python_versions.yaml
@@ -3,13 +3,12 @@ name: python version check
on:
push:
branches:
- - master
- develop
- releases/**
pull_request:
branches:
- - master
- develop
+ - releases/**
jobs:
validate:
diff --git a/.travis.yml b/.travis.yml
index 5d8b793758..808e79bbff 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,101 +1,32 @@
-#=============================================================================
-# Project settings
-#=============================================================================
-# Only build master and develop on push; do not build every branch.
+# Only build releases and develop on push; do not build every branch.
branches:
only:
- - master
- develop
- /^releases\/.*$/
-#=============================================================================
-# Build matrix
-#=============================================================================
-
-dist: bionic
-
-jobs:
- fast_finish: true
- include:
- - stage: 'style checks'
- python: '3.8'
- os: linux
- language: python
- env: TEST_SUITE=flake8
- - stage: 'unit tests + documentation'
- python: '2.6'
- dist: trusty
- os: linux
- language: python
- addons:
- apt:
- # Everything but patchelf, that is not available for trusty
- packages:
- - ccache
- - gfortran
- - graphviz
- - gnupg2
- - kcov
- - mercurial
- - ninja-build
- - realpath
- - zsh
- - fish
- env: [ TEST_SUITE=unit, COVERAGE=true ]
- - python: '3.8'
- os: linux
- language: python
- env: [ TEST_SUITE=shell, COVERAGE=true, KCOV_VERSION=38 ]
- - python: '3.8'
- os: linux
- language: python
- env: TEST_SUITE=doc
-
-stages:
- - 'style checks'
- - 'unit tests + documentation'
-
-
-#=============================================================================
-# Environment
-#=============================================================================
-
-# Docs need graphviz to build
+language: python
+python: '2.6'
+dist: trusty
+os: linux
addons:
- # for Linux builds, we use APT
apt:
packages:
- - ccache
- - coreutils
- gfortran
- graphviz
- gnupg2
+ - kcov
- mercurial
- ninja-build
- - patchelf
+ - realpath
- zsh
- fish
- update: true
-
-# ~/.ccache needs to be cached directly as Travis is not taking care of it
-# (possibly because we use 'language: python' and not 'language: c')
-cache:
- pip: true
- ccache: true
- directories:
- - ~/.ccache
before_install:
- - ccache -M 2G && ccache -z
- # Install kcov manually, since it's not packaged for bionic beaver
- - if [[ "$KCOV_VERSION" ]]; then
- sudo apt-get -y install cmake binutils-dev libcurl4-openssl-dev zlib1g-dev libdw-dev libiberty-dev;
- KCOV_ROOT=$(mktemp -d);
- wget --output-document=${KCOV_ROOT}/${KCOV_VERSION}.tar.gz https://github.com/SimonKagstrom/kcov/archive/v${KCOV_VERSION}.tar.gz;
- tar -C ${KCOV_ROOT} -xzvf ${KCOV_ROOT}/${KCOV_VERSION}.tar.gz;
- mkdir -p ${KCOV_ROOT}/build;
- cd ${KCOV_ROOT}/build && cmake -Wno-dev ${KCOV_ROOT}/kcov-${KCOV_VERSION} && cd - ;
- make -C ${KCOV_ROOT}/build && sudo make -C ${KCOV_ROOT}/build install;
+ - if [[ "$TRAVIS_DIST" == "trusty" ]]; then
+ share/spack/qa/install_patchelf.sh;
+ else
+ sudo apt-get update;
+ sudo apt-get -y install patchelf;
fi
# Install various dependencies
@@ -103,12 +34,8 @@ install:
- pip install --upgrade pip
- pip install --upgrade six
- pip install --upgrade setuptools
- - pip install --upgrade codecov coverage==4.5.4
- pip install --upgrade flake8
- pip install --upgrade pep8-naming
- - if [[ "$TEST_SUITE" == "doc" ]]; then
- pip install --upgrade -r lib/spack/docs/requirements.txt;
- fi
before_script:
# Need this for the git tests to succeed.
@@ -118,31 +45,12 @@ before_script:
# Need this to be able to compute the list of changed files
- git fetch origin ${TRAVIS_BRANCH}:${TRAVIS_BRANCH}
-#=============================================================================
-# Building
-#=============================================================================
script:
- - share/spack/qa/run-$TEST_SUITE-tests
-
-after_success:
- - ccache -s
- - case "$TEST_SUITE" in
- unit)
- if [[ "$COVERAGE" == "true" ]]; then
- codecov --env PYTHON_VERSION
- --required
- --flags "${TEST_SUITE}${TRAVIS_OS_NAME}";
- fi
- ;;
- shell)
- codecov --env PYTHON_VERSION
- --required
- --flags "${TEST_SUITE}${TRAVIS_OS_NAME}";
- esac
+ - python bin/spack -h
+ - python bin/spack help -a
+ - python bin/spack -p --lines 20 spec mpileaks%gcc ^elfutils@0.170
+ - python bin/spack test -x --verbose
-#=============================================================================
-# Notifications
-#=============================================================================
notifications:
email:
recipients:
diff --git a/README.md b/README.md
index d278378ce7..1cafb5c963 100644
--- a/README.md
+++ b/README.md
@@ -78,11 +78,29 @@ these guidelines with [Travis CI](https://travis-ci.org/spack/spack). To
run these tests locally, and for helpful tips on git, see our
[Contribution Guide](http://spack.readthedocs.io/en/latest/contribution_guide.html).
-Spack uses a rough approximation of the
-[Git Flow](http://nvie.com/posts/a-successful-git-branching-model/)
-branching model. The ``develop`` branch contains the latest
-contributions, and ``master`` is always tagged and points to the latest
-stable release.
+Spack's `develop` branch has the latest contributions. Pull requests
+should target `develop`, and users who want the latest package versions,
+features, etc. can use `develop`.
+
+Releases
+--------
+
+For multi-user site deployments or other use cases that need very stable
+software installations, we recommend using Spack's
+[stable releases](https://github.com/spack/spack/releases).
+
+Each Spack release series also has a corresponding branch, e.g.
+`releases/v0.14` has `0.14.x` versions of Spack, and `releases/v0.13` has
+`0.13.x` versions. We backport important bug fixes to these branches but
+we do not advance the package versions or make other changes that would
+change the way Spack concretizes dependencies within a release branch.
+So, you can base your Spack deployment on a release branch and `git pull`
+to get fixes, without the package churn that comes with `develop`.
+
+The latest release is always available with the `releases/latest` tag.
+
+See the [docs on releases](https://spack.readthedocs.io/en/latest/developer_guide.html#releases)
+for more details.
Code of Conduct
------------------------
diff --git a/lib/spack/docs/containers.rst b/lib/spack/docs/containers.rst
index fe678fd76d..b215507701 100644
--- a/lib/spack/docs/containers.rst
+++ b/lib/spack/docs/containers.rst
@@ -45,7 +45,7 @@ Environments:
&& echo " view: /opt/view") > /opt/spack-environment/spack.yaml
# Install the software, remove unnecessary deps
- RUN cd /opt/spack-environment && spack install && spack gc -y
+ RUN cd /opt/spack-environment && spack env activate . && spack install && spack gc -y
# Strip all the binaries
RUN find -L /opt/view/* -type f -exec readlink -f '{}' \; | \
@@ -267,7 +267,7 @@ following ``Dockerfile``:
&& echo " view: /opt/view") > /opt/spack-environment/spack.yaml
# Install the software, remove unnecessary deps
- RUN cd /opt/spack-environment && spack install && spack gc -y
+ RUN cd /opt/spack-environment && spack env activate . && spack install && spack gc -y
# Strip all the binaries
RUN find -L /opt/view/* -type f -exec readlink -f '{}' \; | \
diff --git a/lib/spack/docs/contribution_guide.rst b/lib/spack/docs/contribution_guide.rst
index 9935ec0c83..10c0875e85 100644
--- a/lib/spack/docs/contribution_guide.rst
+++ b/lib/spack/docs/contribution_guide.rst
@@ -27,11 +27,22 @@ correspond to one feature/bugfix/extension/etc. One can create PRs with
changes relevant to different ideas, however reviewing such PRs becomes tedious
and error prone. If possible, try to follow the **one-PR-one-package/feature** rule.
-Spack uses a rough approximation of the `Git Flow <http://nvie.com/posts/a-successful-git-branching-model/>`_
-branching model. The develop branch contains the latest contributions, and
-master is always tagged and points to the latest stable release. Therefore, when
-you send your request, make ``develop`` the destination branch on the
-`Spack repository <https://github.com/spack/spack>`_.
+--------
+Branches
+--------
+
+Spack's ``develop`` branch has the latest contributions. Nearly all pull
+requests should start from ``develop`` and target ``develop``.
+
+There is a branch for each major release series. Release branches
+originate from ``develop`` and have tags for each point release in the
+series. For example, ``releases/v0.14`` has tags for ``0.14.0``,
+``0.14.1``, ``0.14.2``, etc. versions of Spack. We backport important bug
+fixes to these branches, but we do not advance the package versions or
+make other changes that would change the way Spack concretizes
+dependencies. Currently, the maintainers manage these branches by
+cherry-picking from ``develop``. See :ref:`releases` for more
+information.
----------------------
Continuous Integration
diff --git a/lib/spack/docs/developer_guide.rst b/lib/spack/docs/developer_guide.rst
index de2fe80f85..284690bd6f 100644
--- a/lib/spack/docs/developer_guide.rst
+++ b/lib/spack/docs/developer_guide.rst
@@ -495,3 +495,393 @@ The bottom of the output shows the top most time consuming functions,
slowest on top. The profiling support is from Python's built-in tool,
`cProfile
<https://docs.python.org/2/library/profile.html#module-cProfile>`_.
+
+.. _releases:
+
+--------
+Releases
+--------
+
+This section documents Spack's release process. It is intended for
+project maintainers, as the tasks described here require maintainer
+privileges on the Spack repository. For others, we hope this section at
+least provides some insight into how the Spack project works.
+
+.. _release-branches:
+
+^^^^^^^^^^^^^^^^
+Release branches
+^^^^^^^^^^^^^^^^
+
+There are currently two types of Spack releases: :ref:`major releases
+<major-releases>` (``0.13.0``, ``0.14.0``, etc.) and :ref:`point releases
+<point-releases>` (``0.13.1``, ``0.13.2``, ``0.13.3``, etc.). Here is a
+diagram of how Spack release branches work::
+
+ o branch: develop (latest version)
+ |
+ o merge v0.14.1 into develop
+ |\
+ | o branch: releases/v0.14, tag: v0.14.1
+ o | merge v0.14.0 into develop
+ |\|
+ | o tag: v0.14.0
+ |/
+ o merge v0.13.2 into develop
+ |\
+ | o branch: releases/v0.13, tag: v0.13.2
+ o | merge v0.13.1 into develop
+ |\|
+ | o tag: v0.13.1
+ o | merge v0.13.0 into develop
+ |\|
+ | o tag: v0.13.0
+ o |
+ | o
+ |/
+ o
+
+The ``develop`` branch has the latest contributions, and nearly all pull
+requests target ``develop``.
+
+Each Spack release series also has a corresponding branch, e.g.
+``releases/v0.14`` has ``0.14.x`` versions of Spack, and
+``releases/v0.13`` has ``0.13.x`` versions. A major release is the first
+tagged version on a release branch. Minor releases are back-ported from
+develop onto release branches. This is typically done by cherry-picking
+bugfix commits off of ``develop``.
+
+To avoid version churn for users of a release series, minor releases
+should **not** make changes that would change the concretization of
+packages. They should generally only contain fixes to the Spack core.
+
+Both major and minor releases are tagged. After each release, we merge
+the release branch back into ``develop`` so that the version bump and any
+other release-specific changes are visible in the mainline. As a
+convenience, we also tag the latest release as ``releases/latest``,
+so that users can easily check it out to get the latest
+stable version. See :ref:`merging-releases` for more details.
+
+
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Scheduling work for releases
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+We schedule work for releases by creating `GitHub projects
+<https://github.com/spack/spack/projects>`_. At any time, there may be
+several open release projects. For example, here are two releases (from
+some past version of the page linked above):
+
+.. image:: images/projects.png
+
+Here, there's one release in progress for ``0.15.1`` and another for
+``0.16.0``. Each of these releases has a project board containing issues
+and pull requests. GitHub shows a status bar with completed work in
+green, work in progress in purple, and work not started yet in gray, so
+it's fairly easy to see progress.
+
+Spack's project boards are not firm commitments, and we move work between
+releases frequently. If we need to make a release and some tasks are not
+yet done, we will simply move them to next minor or major release, rather
+than delaying the release to complete them.
+
+For more on using GitHub project boards, see `GitHub's documentation
+<https://docs.github.com/en/github/managing-your-work-on-github/about-project-boards>`_.
+
+.. _major-releases:
+
+^^^^^^^^^^^^^^^^^^^^^
+Making Major Releases
+^^^^^^^^^^^^^^^^^^^^^
+
+Assuming you've already created a project board and completed the work
+for a major release, the steps to make the release are as follows:
+
+#. Create two new project boards:
+
+ * One for the next major release
+ * One for the next point release
+
+#. Move any tasks that aren't done yet to one of the new project boards.
+ Small bugfixes should go to the next point release. Major features,
+ refactors, and changes that could affect concretization should go in
+ the next major release.
+
+#. Create a branch for the release, based on ``develop``:
+
+ .. code-block:: console
+
+ $ git checkout -b releases/v0.15 develop
+
+ For a version ``vX.Y.Z``, the branch's name should be
+ ``releases/vX.Y``. That is, you should create a ``releases/vX.Y``
+ branch if you are preparing the ``X.Y.0`` release.
+
+#. Bump the version in ``lib/spack/spack/__init__.py``. See `this example from 0.13.0
+ <https://github.com/spack/spack/commit/8eeb64096c98b8a43d1c587f13ece743c864fba9>`_
+
+#. Updaate the release version lists in these files to include the new version:
+
+ * ``lib/spack/spack/schema/container.py``
+ * ``lib/spack/spack/container/images.json``
+
+ **TODO**: We should get rid of this step in some future release.
+
+#. Update ``CHANGELOG.md`` with major highlights in bullet form. Use
+ proper markdown formatting, like `this example from 0.15.0
+ <https://github.com/spack/spack/commit/d4bf70d9882fcfe88507e9cb444331d7dd7ba71c>`_.
+
+#. Push the release branch to GitHub.
+
+#. Make sure CI passes on the release branch, including:
+ * Regular unit tests
+ * Build tests
+ * The E4S pipeline at `gitlab.spack.io <https://gitlab.spack.io>`_
+
+ If CI is not passing, submit pull requests to ``develop`` as normal
+ and keep rebasing the release branch on ``develop`` until CI passes.
+
+#. Follow the steps in :ref:`publishing-releases`.
+
+#. Follow the steps in :ref:`merging-releases`.
+
+#. Follow the steps in :ref:`announcing-releases`.
+
+
+.. _point-releases:
+
+^^^^^^^^^^^^^^^^^^^^^
+Making Point Releases
+^^^^^^^^^^^^^^^^^^^^^
+
+This assumes you've already created a project board for a point release
+and completed the work to be done for the release. To make a point
+release:
+
+#. Create one new project board for the next point release.
+
+#. Move any cards that aren't done yet to the next project board.
+
+#. Check out the release branch (it should already exist). For the
+ ``X.Y.Z`` release, the release branch is called ``releases/vX.Y``. For
+ ``v0.15.1``, you would check out ``releases/v0.15``:
+
+ .. code-block:: console
+
+ $ git checkout releases/v0.15
+
+#. Cherry-pick each pull request in the ``Done`` column of the release
+ project onto the release branch.
+
+ This is **usually** fairly simple since we squash the commits from the
+ vast majority of pull requests, which means there is only one commit
+ per pull request to cherry-pick. For example, `this pull request
+ <https://github.com/spack/spack/pull/15777>`_ has three commits, but
+ the were squashed into a single commit on merge. You can see the
+ commit that was created here:
+
+ .. image:: images/pr-commit.png
+
+ You can easily cherry pick it like this (assuming you already have the
+ release branch checked out):
+
+ .. code-block:: console
+
+ $ git cherry-pick 7e46da7
+
+ For pull requests that were rebased, you'll need to cherry-pick each
+ rebased commit individually. There have not been any rebased PRs like
+ this in recent point releases.
+
+ .. warning::
+
+ It is important to cherry-pick commits in the order they happened,
+ otherwise you can get conflicts while cherry-picking. When
+ cherry-picking onto a point release, look at the merge date,
+ **not** the number of the pull request or the date it was opened.
+
+ Sometimes you may **still** get merge conflicts even if you have
+ cherry-picked all the commits in order. This generally means there
+ is some other intervening pull request that the one you're trying
+ to pick depends on. In these cases, you'll need to make a judgment
+ call:
+
+ 1. If the dependency is small, you might just cherry-pick it, too.
+ If you do this, add it to the release board.
+
+ 2. If it is large, then you may decide that this fix is not worth
+ including in a point release, in which case you should remove it
+ from the release project.
+
+ 3. You can always decide to manually back-port the fix to the release
+ branch if neither of the above options makes sense, but this can
+ require a lot of work. It's seldom the right choice.
+
+#. Bump the version in ``lib/spack/spack/__init__.py``. See `this example from 0.14.1
+ <https://github.com/spack/spack/commit/ff0abb9838121522321df2a054d18e54b566b44a>`_.
+
+#. Updaate the release version lists in these files to include the new version:
+
+ * ``lib/spack/spack/schema/container.py``
+ * ``lib/spack/spack/container/images.json``
+
+ **TODO**: We should get rid of this step in some future release.
+
+#. Update ``CHANGELOG.md`` with a list of bugfixes. This is typically just a
+ summary of the commits you cherry-picked onto the release branch. See
+ `the changelog from 0.14.1
+ <https://github.com/spack/spack/commit/ff0abb9838121522321df2a054d18e54b566b44a>`_.
+
+#. Push the release branch to GitHub.
+
+#. Make sure CI passes on the release branch, including:
+ * Regular unit tests
+ * Build tests
+ * The E4S pipeline at `gitlab.spack.io <https://gitlab.spack.io>`_
+
+ If CI does not pass, you'll need to figure out why, and make changes
+ to the release branch until it does. You can make more commits, modify
+ or remove cherry-picked commits, or cherry-pick **more** from
+ ``develop`` to make this happen.
+
+#. Follow the steps in :ref:`publishing-releases`.
+
+#. Follow the steps in :ref:`merging-releases`.
+
+#. Follow the steps in :ref:`announcing-releases`.
+
+
+.. _publishing-releases:
+
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Publishing a release on GitHub
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+#. Go to `github.com/spack/spack/releases
+ <https://github.com/spack/spack/releases>`_ and click ``Draft a new
+ release``. Set the following:
+
+ * ``Tag version`` should start with ``v`` and contain *all three*
+ parts of the version, .g. ``v0.15.1``. This is the name of the tag
+ that will be created.
+
+ * ``Target`` should be the ``releases/vX.Y`` branch (e.g., ``releases/v0.15``).
+
+ * ``Release title`` should be ``vX.Y.Z`` (To match the tag, e.g., ``v0.15.1``).
+
+ * For the text, paste the latest release markdown from your ``CHANGELOG.md``.
+
+ You can save the draft and keep coming back to this as you prepare the release.
+
+#. When you are done, click ``Publish release``.
+
+#. Immediately after publishing, go back to
+ `github.com/spack/spack/releases
+ <https://github.com/spack/spack/releases>`_ and download the
+ auto-generated ``.tar.gz`` file for the release. It's the ``Source
+ code (tar.gz)`` link.
+
+#. Click ``Edit`` on the release you just did and attach the downloaded
+ release tarball as a binary. This does two things:
+
+ #. Makes sure that the hash of our releases doesn't change over time.
+ GitHub sometimes annoyingly changes they way they generate
+ tarballs, and then hashes can change if you rely on the
+ auto-generated tarball links.
+
+ #. Gets us download counts on releases visible through the GitHub
+ API. GitHub tracks downloads of artifacts, but *not* the source
+ links. See the `releases
+ page <https://api.github.com/repos/spack/spack/releases>`_ and search
+ for ``download_count`` to see this.
+
+
+.. _merging-releases:
+
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Updating `releases/latest` and `develop`
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If the new release is the **highest** Spack release yet, you should
+also tag it as ``releases/latest``. For example, suppose the highest
+release is currently ``0.15.3``:
+
+ * If you are releasing ``0.15.4`` or ``0.16.0``, then you should tag
+ it with ``releases/latest``, as these are higher than ``0.15.3``.
+
+ * If you are making a new release of an **older** major version of
+ Spack, e.g. ``0.14.4``, then you should not tag it as
+ ``releases/latest`` (as there are newer major versions).
+
+ To tag ``releases/latest``, do this:
+
+ .. code-block:: console
+
+ $ git checkout releases/vX.Y # vX.Y is the new release's branch
+ $ git tag --force releases/latest
+ $ git push --tags
+
+ The ``--force`` argument makes ``git`` overwrite the existing
+ ``releases/latest`` tag with the new one.
+
+We also merge each release that we tag as ``releases/latest`` into ``develop``.
+Make sure to do this with a merge commit:
+
+.. code-block:: console
+
+ $ git checkout develop
+ $ git merge --no-ff vX.Y.Z # vX.Y.Z is the new release's tag
+ $ git push
+
+We merge back to ``develop`` because it:
+
+ * updates the version and ``CHANGELOG.md`` on ``develop``.
+ * ensures that your release tag is reachable from the head of
+ ``develop``
+
+We *must* use a real merge commit (via the ``--no-ff`` option) because it
+ensures that the release tag is reachable from the tip of ``develop``.
+This is necessary for ``spack -V`` to work properly -- it uses ``git
+describe --tags`` to find the last reachable tag in the repository and
+reports how far we are from it. For example:
+
+.. code-block:: console
+
+ $ spack -V
+ 0.14.2-1486-b80d5e74e5
+
+This says that we are at commit ``b80d5e74e5``, which is 1,486 commits
+ahead of the ``0.14.2`` release.
+
+We put this step last in the process because it's best to do it only once
+the release is complete and tagged. If you do it before you've tagged the
+release and later decide you want to tag some later commit, you'll need
+to merge again.
+
+.. _announcing-releases:
+
+^^^^^^^^^^^^^^^^^^^^
+Announcing a release
+^^^^^^^^^^^^^^^^^^^^
+
+We announce releases in all of the major Spack communication channels.
+Publishing the release takes care of GitHub. The remaining channels are
+Twitter, Slack, and the mailing list. Here are the steps:
+
+#. Make a tweet to announce the release. It should link to the release's
+ page on GitHub. You can base it on `this example tweet
+ <https://twitter.com/spackpm/status/1231761858182307840>`_.
+
+#. Ping ``@channel`` in ``#general`` on Slack (`spackpm.slack.com
+ <https://spackpm.slack.com>`_) with a link to the tweet. The tweet
+ will be shown inline so that you do not have to retype your release
+ announcement.
+
+#. Email the Spack mailing list to let them know about the release. As
+ with the tweet, you likely want to link to the release's page on
+ GitHub. It's also helpful to include some information directly in the
+ email. You can base yours on this `example email
+ <https://groups.google.com/forum/#!topic/spack/WT4CT9i_X4s>`_.
+
+Once you've announced the release, congratulations, you're done! You've
+finished making the release!
diff --git a/lib/spack/docs/getting_started.rst b/lib/spack/docs/getting_started.rst
index 226b1f0883..7b908465f5 100644
--- a/lib/spack/docs/getting_started.rst
+++ b/lib/spack/docs/getting_started.rst
@@ -818,7 +818,7 @@ Git
Some Spack packages use ``git`` to download, which might not work on
some computers. For example, the following error was
-encountered on a Macintosh during ``spack install julia-master``:
+encountered on a Macintosh during ``spack install julia@master``:
.. code-block:: console
diff --git a/lib/spack/docs/images/pr-commit.png b/lib/spack/docs/images/pr-commit.png
new file mode 100644
index 0000000000..a87c800ef5
--- /dev/null
+++ b/lib/spack/docs/images/pr-commit.png
Binary files differ
diff --git a/lib/spack/docs/images/projects.png b/lib/spack/docs/images/projects.png
new file mode 100644
index 0000000000..bd2971ff62
--- /dev/null
+++ b/lib/spack/docs/images/projects.png
Binary files differ
diff --git a/lib/spack/docs/pipelines.rst b/lib/spack/docs/pipelines.rst
index 34ff9cfc6d..342024d94c 100644
--- a/lib/spack/docs/pipelines.rst
+++ b/lib/spack/docs/pipelines.rst
@@ -82,9 +82,9 @@ or Amazon Elastic Kubernetes Service (`EKS <https://aws.amazon.com/eks>`_), thou
topics are outside the scope of this document.
Spack's pipelines are now making use of the
-`trigger <https://docs.gitlab.com/12.9/ee/ci/yaml/README.html#trigger>` syntax to run
+`trigger <https://docs.gitlab.com/12.9/ee/ci/yaml/README.html#trigger>`_ syntax to run
dynamically generated
-`child pipelines <https://docs.gitlab.com/12.9/ee/ci/parent_child_pipelines.html>`.
+`child pipelines <https://docs.gitlab.com/12.9/ee/ci/parent_child_pipelines.html>`_.
Note that the use of dynamic child pipelines requires running Gitlab version
``>= 12.9``.
diff --git a/lib/spack/docs/workflows.rst b/lib/spack/docs/workflows.rst
index 17ca695082..2f215f8209 100644
--- a/lib/spack/docs/workflows.rst
+++ b/lib/spack/docs/workflows.rst
@@ -1405,11 +1405,12 @@ The main points that are implemented below:
- export CXXFLAGS="-std=c++11"
install:
- - if ! which spack >/dev/null; then
+ - |
+ if ! which spack >/dev/null; then
mkdir -p $SPACK_ROOT &&
git clone --depth 50 https://github.com/spack/spack.git $SPACK_ROOT &&
- echo -e "config:""\n build_jobs:"" 2" > $SPACK_ROOT/etc/spack/config.yaml **
- echo -e "packages:""\n all:""\n target:"" ['x86_64']"
+ printf "config:\n build_jobs: 2\n" > $SPACK_ROOT/etc/spack/config.yaml &&
+ printf "packages:\n all:\n target: ['x86_64']\n" \
> $SPACK_ROOT/etc/spack/packages.yaml;
fi
- travis_wait spack install cmake@3.7.2~openssl~ncurses
diff --git a/lib/spack/llnl/util/tty/pty.py b/lib/spack/llnl/util/tty/pty.py
index ef5d40ea57..84c272a6e2 100644
--- a/lib/spack/llnl/util/tty/pty.py
+++ b/lib/spack/llnl/util/tty/pty.py
@@ -31,17 +31,17 @@ from spack.util.executable import which
class ProcessController(object):
"""Wrapper around some fundamental process control operations.
- This allows one process to drive another similar to the way a shell
- would, by sending signals and I/O.
+ This allows one process (the controller) to drive another (the
+ minion) similar to the way a shell would, by sending signals and I/O.
"""
- def __init__(self, pid, master_fd,
+ def __init__(self, pid, controller_fd,
timeout=1, sleep_time=1e-1, debug=False):
"""Create a controller to manipulate the process with id ``pid``
Args:
pid (int): id of process to control
- master_fd (int): master file descriptor attached to pid's stdin
+ controller_fd (int): controller fd attached to pid's stdin
timeout (int): time in seconds for wait operations to time out
(default 1 second)
sleep_time (int): time to sleep after signals, to control the
@@ -58,7 +58,7 @@ class ProcessController(object):
"""
self.pid = pid
self.pgid = os.getpgid(pid)
- self.master_fd = master_fd
+ self.controller_fd = controller_fd
self.timeout = timeout
self.sleep_time = sleep_time
self.debug = debug
@@ -67,8 +67,8 @@ class ProcessController(object):
self.ps = which("ps", required=True)
def get_canon_echo_attrs(self):
- """Get echo and canon attributes of the terminal of master_fd."""
- cfg = termios.tcgetattr(self.master_fd)
+ """Get echo and canon attributes of the terminal of controller_fd."""
+ cfg = termios.tcgetattr(self.controller_fd)
return (
bool(cfg[3] & termios.ICANON),
bool(cfg[3] & termios.ECHO),
@@ -82,7 +82,7 @@ class ProcessController(object):
)
def status(self):
- """Print debug message with status info for the child."""
+ """Print debug message with status info for the minion."""
if self.debug:
canon, echo = self.get_canon_echo_attrs()
sys.stderr.write("canon: %s, echo: %s\n" % (
@@ -94,12 +94,12 @@ class ProcessController(object):
sys.stderr.write("\n")
def input_on(self):
- """True if keyboard input is enabled on the master_fd pty."""
+ """True if keyboard input is enabled on the controller_fd pty."""
return self.get_canon_echo_attrs() == (False, False)
def background(self):
- """True if pgid is in a background pgroup of master_fd's terminal."""
- return self.pgid != os.tcgetpgrp(self.master_fd)
+ """True if pgid is in a background pgroup of controller_fd's tty."""
+ return self.pgid != os.tcgetpgrp(self.controller_fd)
def tstp(self):
"""Send SIGTSTP to the controlled process."""
@@ -115,18 +115,18 @@ class ProcessController(object):
def fg(self):
self.horizontal_line("fg")
with log.ignore_signal(signal.SIGTTOU):
- os.tcsetpgrp(self.master_fd, os.getpgid(self.pid))
+ os.tcsetpgrp(self.controller_fd, os.getpgid(self.pid))
time.sleep(self.sleep_time)
def bg(self):
self.horizontal_line("bg")
with log.ignore_signal(signal.SIGTTOU):
- os.tcsetpgrp(self.master_fd, os.getpgrp())
+ os.tcsetpgrp(self.controller_fd, os.getpgrp())
time.sleep(self.sleep_time)
def write(self, byte_string):
self.horizontal_line("write '%s'" % byte_string.decode("utf-8"))
- os.write(self.master_fd, byte_string)
+ os.write(self.controller_fd, byte_string)
def wait(self, condition):
start = time.time()
@@ -156,50 +156,51 @@ class ProcessController(object):
class PseudoShell(object):
- """Sets up master and child processes with a PTY.
+ """Sets up controller and minion processes with a PTY.
You can create a ``PseudoShell`` if you want to test how some
function responds to terminal input. This is a pseudo-shell from a
- job control perspective; ``master_function`` and ``child_function``
- are set up with a pseudoterminal (pty) so that the master can drive
- the child through process control signals and I/O.
+ job control perspective; ``controller_function`` and ``minion_function``
+ are set up with a pseudoterminal (pty) so that the controller can drive
+ the minion through process control signals and I/O.
The two functions should have signatures like this::
- def master_function(proc, ctl, **kwargs)
- def child_function(**kwargs)
+ def controller_function(proc, ctl, **kwargs)
+ def minion_function(**kwargs)
- ``master_function`` is spawned in its own process and passed three
+ ``controller_function`` is spawned in its own process and passed three
arguments:
proc
- the ``multiprocessing.Process`` object representing the child
+ the ``multiprocessing.Process`` object representing the minion
ctl
- a ``ProcessController`` object tied to the child
+ a ``ProcessController`` object tied to the minion
kwargs
keyword arguments passed from ``PseudoShell.start()``.
- ``child_function`` is only passed ``kwargs`` delegated from
+ ``minion_function`` is only passed ``kwargs`` delegated from
``PseudoShell.start()``.
- The ``ctl.master_fd`` will have its ``master_fd`` connected to
- ``sys.stdin`` in the child process. Both processes will share the
+ The ``ctl.controller_fd`` will have its ``controller_fd`` connected to
+ ``sys.stdin`` in the minion process. Both processes will share the
same ``sys.stdout`` and ``sys.stderr`` as the process instantiating
``PseudoShell``.
Here are the relationships between processes created::
._________________________________________________________.
- | Child Process | pid 2
- | - runs child_function | pgroup 2
+ | Minion Process | pid 2
+ | - runs minion_function | pgroup 2
|_________________________________________________________| session 1
^
- | create process with master_fd connected to stdin
+ | create process with controller_fd connected to stdin
| stdout, stderr are the same as caller
._________________________________________________________.
- | Master Process | pid 1
- | - runs master_function | pgroup 1
- | - uses ProcessController and master_fd to control child | session 1
+ | Controller Process | pid 1
+ | - runs controller_function | pgroup 1
+ | - uses ProcessController and controller_fd to | session 1
+ | control minion |
|_________________________________________________________|
^
| create process
@@ -207,51 +208,51 @@ class PseudoShell(object):
._________________________________________________________.
| Caller | pid 0
| - Constructs, starts, joins PseudoShell | pgroup 0
- | - provides master_function, child_function | session 0
+ | - provides controller_function, minion_function | session 0
|_________________________________________________________|
"""
- def __init__(self, master_function, child_function):
+ def __init__(self, controller_function, minion_function):
self.proc = None
- self.master_function = master_function
- self.child_function = child_function
+ self.controller_function = controller_function
+ self.minion_function = minion_function
# these can be optionally set to change defaults
self.controller_timeout = 1
self.sleep_time = 0
def start(self, **kwargs):
- """Start the master and child processes.
+ """Start the controller and minion processes.
Arguments:
kwargs (dict): arbitrary keyword arguments that will be
- passed to master and child functions
+ passed to controller and minion functions
- The master process will create the child, then call
- ``master_function``. The child process will call
- ``child_function``.
+ The controller process will create the minion, then call
+ ``controller_function``. The minion process will call
+ ``minion_function``.
"""
self.proc = multiprocessing.Process(
- target=PseudoShell._set_up_and_run_master_function,
- args=(self.master_function, self.child_function,
+ target=PseudoShell._set_up_and_run_controller_function,
+ args=(self.controller_function, self.minion_function,
self.controller_timeout, self.sleep_time),
kwargs=kwargs,
)
self.proc.start()
def join(self):
- """Wait for the child process to finish, and return its exit code."""
+ """Wait for the minion process to finish, and return its exit code."""
self.proc.join()
return self.proc.exitcode
@staticmethod
- def _set_up_and_run_child_function(
- tty_name, stdout_fd, stderr_fd, ready, child_function, **kwargs):
- """Child process wrapper for PseudoShell.
+ def _set_up_and_run_minion_function(
+ tty_name, stdout_fd, stderr_fd, ready, minion_function, **kwargs):
+ """Minion process wrapper for PseudoShell.
Handles the mechanics of setting up a PTY, then calls
- ``child_function``.
+ ``minion_function``.
"""
# new process group, like a command or pipeline launched by a shell
@@ -266,45 +267,45 @@ class PseudoShell(object):
if kwargs.get("debug"):
sys.stderr.write(
- "child: stdin.isatty(): %s\n" % sys.stdin.isatty())
+ "minion: stdin.isatty(): %s\n" % sys.stdin.isatty())
# tell the parent that we're really running
if kwargs.get("debug"):
- sys.stderr.write("child: ready!\n")
+ sys.stderr.write("minion: ready!\n")
ready.value = True
try:
- child_function(**kwargs)
+ minion_function(**kwargs)
except BaseException:
traceback.print_exc()
@staticmethod
- def _set_up_and_run_master_function(
- master_function, child_function, controller_timeout, sleep_time,
- **kwargs):
- """Set up a pty, spawn a child process, and execute master_function.
+ def _set_up_and_run_controller_function(
+ controller_function, minion_function, controller_timeout,
+ sleep_time, **kwargs):
+ """Set up a pty, spawn a minion process, execute controller_function.
Handles the mechanics of setting up a PTY, then calls
- ``master_function``.
+ ``controller_function``.
"""
os.setsid() # new session; this process is the controller
- master_fd, child_fd = os.openpty()
- pty_name = os.ttyname(child_fd)
+ controller_fd, minion_fd = os.openpty()
+ pty_name = os.ttyname(minion_fd)
# take controlling terminal
pty_fd = os.open(pty_name, os.O_RDWR)
os.close(pty_fd)
ready = multiprocessing.Value('i', False)
- child_process = multiprocessing.Process(
- target=PseudoShell._set_up_and_run_child_function,
+ minion_process = multiprocessing.Process(
+ target=PseudoShell._set_up_and_run_minion_function,
args=(pty_name, sys.stdout.fileno(), sys.stderr.fileno(),
- ready, child_function),
+ ready, minion_function),
kwargs=kwargs,
)
- child_process.start()
+ minion_process.start()
# wait for subprocess to be running and connected.
while not ready.value:
@@ -315,30 +316,31 @@ class PseudoShell(object):
sys.stderr.write("pid: %d\n" % os.getpid())
sys.stderr.write("pgid: %d\n" % os.getpgrp())
sys.stderr.write("sid: %d\n" % os.getsid(0))
- sys.stderr.write("tcgetpgrp: %d\n" % os.tcgetpgrp(master_fd))
+ sys.stderr.write("tcgetpgrp: %d\n" % os.tcgetpgrp(controller_fd))
sys.stderr.write("\n")
- child_pgid = os.getpgid(child_process.pid)
- sys.stderr.write("child pid: %d\n" % child_process.pid)
- sys.stderr.write("child pgid: %d\n" % child_pgid)
- sys.stderr.write("child sid: %d\n" % os.getsid(child_process.pid))
+ minion_pgid = os.getpgid(minion_process.pid)
+ sys.stderr.write("minion pid: %d\n" % minion_process.pid)
+ sys.stderr.write("minion pgid: %d\n" % minion_pgid)
+ sys.stderr.write(
+ "minion sid: %d\n" % os.getsid(minion_process.pid))
sys.stderr.write("\n")
sys.stderr.flush()
- # set up master to ignore SIGTSTP, like a shell
+ # set up controller to ignore SIGTSTP, like a shell
signal.signal(signal.SIGTSTP, signal.SIG_IGN)
- # call the master function once the child is ready
+ # call the controller function once the minion is ready
try:
controller = ProcessController(
- child_process.pid, master_fd, debug=kwargs.get("debug"))
+ minion_process.pid, controller_fd, debug=kwargs.get("debug"))
controller.timeout = controller_timeout
controller.sleep_time = sleep_time
- error = master_function(child_process, controller, **kwargs)
+ error = controller_function(minion_process, controller, **kwargs)
except BaseException:
error = 1
traceback.print_exc()
- child_process.join()
+ minion_process.join()
- # return whether either the parent or child failed
- return error or child_process.exitcode
+ # return whether either the parent or minion failed
+ return error or minion_process.exitcode
diff --git a/lib/spack/spack/binary_distribution.py b/lib/spack/spack/binary_distribution.py
index ccfe614720..f53501cbd6 100644
--- a/lib/spack/spack/binary_distribution.py
+++ b/lib/spack/spack/binary_distribution.py
@@ -498,6 +498,7 @@ def download_tarball(spec):
# stage the tarball into standard place
stage = Stage(url, name="build_cache", keep=True)
+ stage.create()
try:
stage.fetch()
return stage.save_filename
@@ -602,15 +603,11 @@ def relocate_package(spec, allow_root):
if not is_backup_file(text_name):
text_names.append(text_name)
-# If we are installing back to the same location don't replace anything
+# If we are not installing back to the same install tree do the relocation
if old_layout_root != new_layout_root:
- paths_to_relocate = [old_spack_prefix, old_layout_root]
- paths_to_relocate.extend(prefix_to_hash.keys())
- files_to_relocate = list(filter(
- lambda pathname: not relocate.file_is_relocatable(
- pathname, paths_to_relocate=paths_to_relocate),
- map(lambda filename: os.path.join(workdir, filename),
- buildinfo['relocate_binaries'])))
+ files_to_relocate = [os.path.join(workdir, filename)
+ for filename in buildinfo.get('relocate_binaries')
+ ]
# If the buildcache was not created with relativized rpaths
# do the relocation of path in binaries
if (spec.architecture.platform == 'darwin' or
@@ -646,6 +643,13 @@ def relocate_package(spec, allow_root):
new_spack_prefix,
prefix_to_prefix)
+ paths_to_relocate = [old_prefix, old_layout_root]
+ paths_to_relocate.extend(prefix_to_hash.keys())
+ files_to_relocate = list(filter(
+ lambda pathname: not relocate.file_is_relocatable(
+ pathname, paths_to_relocate=paths_to_relocate),
+ map(lambda filename: os.path.join(workdir, filename),
+ buildinfo['relocate_binaries'])))
# relocate the install prefixes in binary files including dependencies
relocate.relocate_text_bin(files_to_relocate,
old_prefix, new_prefix,
@@ -653,6 +657,17 @@ def relocate_package(spec, allow_root):
new_spack_prefix,
prefix_to_prefix)
+# If we are installing back to the same location
+# relocate the sbang location if the spack directory changed
+ else:
+ if old_spack_prefix != new_spack_prefix:
+ relocate.relocate_text(text_names,
+ old_layout_root, new_layout_root,
+ old_prefix, new_prefix,
+ old_spack_prefix,
+ new_spack_prefix,
+ prefix_to_prefix)
+
def extract_tarball(spec, filename, allow_root=False, unsigned=False,
force=False):
diff --git a/lib/spack/spack/build_systems/cuda.py b/lib/spack/spack/build_systems/cuda.py
index cbee710049..ef1b0266f8 100644
--- a/lib/spack/spack/build_systems/cuda.py
+++ b/lib/spack/spack/build_systems/cuda.py
@@ -12,8 +12,9 @@ import spack.variant
class CudaPackage(PackageBase):
"""Auxiliary class which contains CUDA variant, dependencies and conflicts
and is meant to unify and facilitate its usage.
+
+ Maintainers: ax3l, svenevs
"""
- maintainers = ['ax3l', 'svenevs']
# https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#gpu-feature-list
# https://developer.nvidia.com/cuda-gpus
@@ -25,6 +26,7 @@ class CudaPackage(PackageBase):
'50', '52', '53',
'60', '61', '62',
'70', '72', '75',
+ '80',
]
# FIXME: keep cuda and cuda_arch separate to make usage easier until
@@ -48,6 +50,7 @@ class CudaPackage(PackageBase):
# CUDA version vs Architecture
# https://en.wikipedia.org/wiki/CUDA#GPUs_supported
+ # https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#deprecated-features
depends_on('cuda@:6.0', when='cuda_arch=10')
depends_on('cuda@:6.5', when='cuda_arch=11')
depends_on('cuda@2.1:6.5', when='cuda_arch=12')
@@ -58,8 +61,8 @@ class CudaPackage(PackageBase):
depends_on('cuda@5.0:10.2', when='cuda_arch=30')
depends_on('cuda@5.0:10.2', when='cuda_arch=32')
- depends_on('cuda@5.0:10.2', when='cuda_arch=35')
- depends_on('cuda@6.5:10.2', when='cuda_arch=37')
+ depends_on('cuda@5.0:', when='cuda_arch=35')
+ depends_on('cuda@6.5:', when='cuda_arch=37')
depends_on('cuda@6.0:', when='cuda_arch=50')
depends_on('cuda@6.5:', when='cuda_arch=52')
@@ -73,6 +76,8 @@ class CudaPackage(PackageBase):
depends_on('cuda@9.0:', when='cuda_arch=72')
depends_on('cuda@10.0:', when='cuda_arch=75')
+ depends_on('cuda@11.0:', when='cuda_arch=80')
+
# There are at least three cases to be aware of for compiler conflicts
# 1. Linux x86_64
# 2. Linux ppc64le
@@ -88,12 +93,15 @@ class CudaPackage(PackageBase):
conflicts('%gcc@7:', when='+cuda ^cuda@:9.1' + arch_platform)
conflicts('%gcc@8:', when='+cuda ^cuda@:10.0.130' + arch_platform)
conflicts('%gcc@9:', when='+cuda ^cuda@:10.2.89' + arch_platform)
+ conflicts('%gcc@:4,10:', when='+cuda ^cuda@:11.0.2' + arch_platform)
conflicts('%pgi@:14.8', when='+cuda ^cuda@:7.0.27' + arch_platform)
conflicts('%pgi@:15.3,15.5:', when='+cuda ^cuda@7.5' + arch_platform)
conflicts('%pgi@:16.2,16.0:16.3', when='+cuda ^cuda@8' + arch_platform)
conflicts('%pgi@:15,18:', when='+cuda ^cuda@9.0:9.1' + arch_platform)
- conflicts('%pgi@:16', when='+cuda ^cuda@9.2.88:10' + arch_platform)
- conflicts('%pgi@:17', when='+cuda ^cuda@10.2.89' + arch_platform)
+ conflicts('%pgi@:16,19:', when='+cuda ^cuda@9.2.88:10' + arch_platform)
+ conflicts('%pgi@:17,20:',
+ when='+cuda ^cuda@10.1.105:10.2.89' + arch_platform)
+ conflicts('%pgi@:17,20.2:', when='+cuda ^cuda@11.0.2' + arch_platform)
conflicts('%clang@:3.4', when='+cuda ^cuda@:7.5' + arch_platform)
conflicts('%clang@:3.7,4:',
when='+cuda ^cuda@8.0:9.0' + arch_platform)
@@ -104,7 +112,8 @@ class CudaPackage(PackageBase):
conflicts('%clang@:3.7,7.1:', when='+cuda ^cuda@10.1.105' + arch_platform)
conflicts('%clang@:3.7,8.1:',
when='+cuda ^cuda@10.1.105:10.1.243' + arch_platform)
- conflicts('%clang@:3.2,9.0:', when='+cuda ^cuda@10.2.89' + arch_platform)
+ conflicts('%clang@:3.2,9:', when='+cuda ^cuda@10.2.89' + arch_platform)
+ conflicts('%clang@:5,10:', when='+cuda ^cuda@11.0.2' + arch_platform)
# x86_64 vs. ppc64le differ according to NVidia docs
# Linux ppc64le compiler conflicts from Table from the docs below:
@@ -119,6 +128,8 @@ class CudaPackage(PackageBase):
conflicts('%gcc@6:', when='+cuda ^cuda@:9' + arch_platform)
conflicts('%gcc@8:', when='+cuda ^cuda@:10.0.130' + arch_platform)
conflicts('%gcc@9:', when='+cuda ^cuda@:10.1.243' + arch_platform)
+ # officially, CUDA 11.0.2 only supports the system GCC 8.3 on ppc64le
+ conflicts('%gcc@:4,10:', when='+cuda ^cuda@:11.0.2' + arch_platform)
conflicts('%pgi', when='+cuda ^cuda@:8' + arch_platform)
conflicts('%pgi@:16', when='+cuda ^cuda@:9.1.185' + arch_platform)
conflicts('%pgi@:17', when='+cuda ^cuda@:10' + arch_platform)
@@ -128,6 +139,7 @@ class CudaPackage(PackageBase):
conflicts('%clang@7:', when='+cuda ^cuda@10.0.130' + arch_platform)
conflicts('%clang@7.1:', when='+cuda ^cuda@:10.1.105' + arch_platform)
conflicts('%clang@8.1:', when='+cuda ^cuda@:10.2.89' + arch_platform)
+ conflicts('%clang@:5,10.0:', when='+cuda ^cuda@11.0.2' + arch_platform)
# Intel is mostly relevant for x86_64 Linux, even though it also
# exists for Mac OS X. No information prior to CUDA 3.2 or Intel 11.1
@@ -141,11 +153,13 @@ class CudaPackage(PackageBase):
conflicts('%intel@17.0:', when='+cuda ^cuda@:8.0.60')
conflicts('%intel@18.0:', when='+cuda ^cuda@:9.9')
conflicts('%intel@19.0:', when='+cuda ^cuda@:10.0')
+ conflicts('%intel@19.1:', when='+cuda ^cuda@:10.1')
+ conflicts('%intel@19.2:', when='+cuda ^cuda@:11.0.2')
# XL is mostly relevant for ppc64le Linux
conflicts('%xl@:12,14:', when='+cuda ^cuda@:9.1')
conflicts('%xl@:12,14:15,17:', when='+cuda ^cuda@9.2')
- conflicts('%xl@17:', when='+cuda ^cuda@:10.2.89')
+ conflicts('%xl@:12,17:', when='+cuda ^cuda@:11.0.2')
# Mac OS X
# platform = ' platform=darwin'
@@ -156,7 +170,7 @@ class CudaPackage(PackageBase):
# `clang-apple@x.y.z as a possible fix.
# Compiler conflicts will be eventual taken from here:
# https://docs.nvidia.com/cuda/cuda-installation-guide-mac-os-x/index.html#abstract
- conflicts('platform=darwin', when='+cuda ^cuda@11.0:')
+ conflicts('platform=darwin', when='+cuda ^cuda@11.0.2:')
# Make sure cuda_arch can not be used without +cuda
for value in cuda_arch_values:
diff --git a/lib/spack/spack/ci.py b/lib/spack/spack/ci.py
index 22ba60235a..283fcab3a1 100644
--- a/lib/spack/spack/ci.py
+++ b/lib/spack/spack/ci.py
@@ -493,7 +493,7 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file,
after_script = None
if custom_spack_repo:
if not custom_spack_ref:
- custom_spack_ref = 'master'
+ custom_spack_ref = 'develop'
before_script = [
('git clone "{0}"'.format(custom_spack_repo)),
'pushd ./spack && git checkout "{0}" && popd'.format(
diff --git a/lib/spack/spack/cmd/checksum.py b/lib/spack/spack/cmd/checksum.py
index 97e7833af0..188deb1149 100644
--- a/lib/spack/spack/cmd/checksum.py
+++ b/lib/spack/spack/cmd/checksum.py
@@ -65,7 +65,7 @@ def checksum(parser, args):
version_lines = spack.stage.get_checksums_for_versions(
url_dict, pkg.name, keep_stage=args.keep_stage,
- batch=(args.batch or len(args.versions) > 0),
+ batch=(args.batch or len(args.versions) > 0 or len(url_dict) == 1),
fetch_options=pkg.fetch_options)
print()
diff --git a/lib/spack/spack/cmd/create.py b/lib/spack/spack/cmd/create.py
index 7d12dc98a7..48326868ae 100644
--- a/lib/spack/spack/cmd/create.py
+++ b/lib/spack/spack/cmd/create.py
@@ -445,6 +445,9 @@ def setup_parser(subparser):
subparser.add_argument(
'--skip-editor', action='store_true',
help="skip the edit session for the package (e.g., automation)")
+ subparser.add_argument(
+ '-b', '--batch', action='store_true',
+ help="don't ask which versions to checksum")
class BuildSystemGuesser:
@@ -511,7 +514,7 @@ class BuildSystemGuesser:
# Determine the build system based on the files contained
# in the archive.
for pattern, bs in clues:
- if any(re.search(pattern, l) for l in lines):
+ if any(re.search(pattern, line) for line in lines):
self.build_system = bs
break
@@ -629,7 +632,8 @@ def get_versions(args, name):
versions = spack.stage.get_checksums_for_versions(
url_dict, name, first_stage_function=guesser,
- keep_stage=args.keep_stage, batch=True)
+ keep_stage=args.keep_stage,
+ batch=(args.batch or len(url_dict) == 1))
else:
versions = unhashed_versions
diff --git a/lib/spack/spack/main.py b/lib/spack/spack/main.py
index b15e99f08b..1bab26c2e1 100644
--- a/lib/spack/spack/main.py
+++ b/lib/spack/spack/main.py
@@ -702,16 +702,16 @@ def main(argv=None):
if stored_var_name in os.environ:
os.environ[var] = os.environ[stored_var_name]
+ # make spack.config aware of any command line configuration scopes
+ if args.config_scopes:
+ spack.config.command_line_scopes = args.config_scopes
+
# activate an environment if one was specified on the command line
if not args.no_env:
env = ev.find_environment(args)
if env:
ev.activate(env, args.use_env_repo, add_view=False)
- # make spack.config aware of any command line configuration scopes
- if args.config_scopes:
- spack.config.command_line_scopes = args.config_scopes
-
if args.print_shell_vars:
print_setup_info(*args.print_shell_vars.split(','))
return 0
diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py
index 4febfb1b47..c5cae4f9b0 100644
--- a/lib/spack/spack/package.py
+++ b/lib/spack/spack/package.py
@@ -22,6 +22,7 @@ import shutil
import sys
import textwrap
import time
+import traceback
from six import StringIO
from six import string_types
from six import with_metaclass
@@ -1747,7 +1748,23 @@ class PackageBase(with_metaclass(PackageMeta, PackageViewMixin, object)):
with spack.store.db.prefix_write_lock(spec):
if pkg is not None:
- spack.hooks.pre_uninstall(spec)
+ try:
+ spack.hooks.pre_uninstall(spec)
+ except Exception as error:
+ if force:
+ error_msg = (
+ "One or more pre_uninstall hooks have failed"
+ " for {0}, but Spack is continuing with the"
+ " uninstall".format(str(spec)))
+ if isinstance(error, spack.error.SpackError):
+ error_msg += (
+ "\n\nError message: {0}".format(str(error)))
+ tty.warn(error_msg)
+ # Note that if the uninstall succeeds then we won't be
+ # seeing this error again and won't have another chance
+ # to run the hook.
+ else:
+ raise
# Uninstalling in Spack only requires removing the prefix.
if not spec.external:
@@ -1768,7 +1785,20 @@ class PackageBase(with_metaclass(PackageMeta, PackageViewMixin, object)):
spack.store.db.remove(spec)
if pkg is not None:
- spack.hooks.post_uninstall(spec)
+ try:
+ spack.hooks.post_uninstall(spec)
+ except Exception:
+ # If there is a failure here, this is our only chance to do
+ # something about it: at this point the Spec has been removed
+ # from the DB and prefix, so the post-uninstallation hooks
+ # will not have another chance to run.
+ error_msg = (
+ "One or more post-uninstallation hooks failed for"
+ " {0}, but the prefix has been removed (if it is not"
+ " external).".format(str(spec)))
+ tb_msg = traceback.format_exc()
+ error_msg += "\n\nThe error:\n\n{0}".format(tb_msg)
+ tty.warn(error_msg)
tty.msg('Successfully uninstalled {0}'.format(spec.short_spec))
diff --git a/lib/spack/spack/relocate.py b/lib/spack/spack/relocate.py
index 56e7c6632c..e299f1c5c1 100644
--- a/lib/spack/spack/relocate.py
+++ b/lib/spack/spack/relocate.py
@@ -804,15 +804,17 @@ def relocate_text(
where they should be relocated
"""
# TODO: reduce the number of arguments (8 seems too much)
- sbang_regex = r'#!/bin/bash {0}/bin/sbang'.format(orig_spack)
- new_sbang = r'#!/bin/bash {0}/bin/sbang'.format(new_spack)
+ orig_sbang = '#!/bin/bash {0}/bin/sbang'.format(orig_spack)
+ new_sbang = '#!/bin/bash {0}/bin/sbang'.format(new_spack)
for file in files:
_replace_prefix_text(file, orig_install_prefix, new_install_prefix)
for orig_dep_prefix, new_dep_prefix in new_prefixes.items():
_replace_prefix_text(file, orig_dep_prefix, new_dep_prefix)
_replace_prefix_text(file, orig_layout_root, new_layout_root)
- _replace_prefix_text(file, sbang_regex, new_sbang)
+ # relocate the sbang location only if the spack directory changed
+ if orig_spack != new_spack:
+ _replace_prefix_text(file, orig_sbang, new_sbang)
def relocate_text_bin(
diff --git a/lib/spack/spack/test/bindist.py b/lib/spack/spack/test/bindist.py
new file mode 100644
index 0000000000..f561077edd
--- /dev/null
+++ b/lib/spack/spack/test/bindist.py
@@ -0,0 +1,471 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+"""
+This test checks creating and install buildcaches
+"""
+import os
+import py
+import pytest
+import argparse
+import platform
+import spack.repo
+import spack.store
+import spack.binary_distribution as bindist
+import spack.cmd.buildcache as buildcache
+import spack.cmd.install as install
+import spack.cmd.uninstall as uninstall
+import spack.cmd.mirror as mirror
+from spack.spec import Spec
+from spack.directory_layout import YamlDirectoryLayout
+
+
+def_install_path_scheme = '${ARCHITECTURE}/${COMPILERNAME}-${COMPILERVER}/${PACKAGE}-${VERSION}-${HASH}' # noqa: E501
+ndef_install_path_scheme = '${PACKAGE}/${VERSION}/${ARCHITECTURE}-${COMPILERNAME}-${COMPILERVER}-${HASH}' # noqa: E501
+
+mirror_path_def = None
+mirror_path_rel = None
+
+
+@pytest.fixture(scope='function')
+def cache_directory(tmpdir):
+ old_cache_path = spack.caches.fetch_cache
+ tmpdir.ensure('fetch_cache', dir=True)
+ fsc = spack.fetch_strategy.FsCache(str(tmpdir.join('fetch_cache')))
+ spack.config.caches = fsc
+ yield spack.config.caches
+ tmpdir.join('fetch_cache').remove()
+ spack.config.caches = old_cache_path
+
+
+@pytest.fixture(scope='session')
+def session_mirror_def(tmpdir_factory):
+ dir = tmpdir_factory.mktemp('mirror')
+ global mirror_path_rel
+ mirror_path_rel = dir
+ dir.ensure('build_cache', dir=True)
+ yield dir
+ dir.join('build_cache').remove()
+
+
+@pytest.fixture(scope='function')
+def mirror_directory_def(session_mirror_def):
+ yield str(session_mirror_def)
+
+
+@pytest.fixture(scope='session')
+def session_mirror_rel(tmpdir_factory):
+ dir = tmpdir_factory.mktemp('mirror')
+ global mirror_path_rel
+ mirror_path_rel = dir
+ dir.ensure('build_cache', dir=True)
+ yield dir
+ dir.join('build_cache').remove()
+
+
+@pytest.fixture(scope='function')
+def mirror_directory_rel(session_mirror_rel):
+ yield(session_mirror_rel)
+
+
+@pytest.fixture(scope='session')
+def config_directory(tmpdir_factory):
+ tmpdir = tmpdir_factory.mktemp('test_configs')
+ # restore some sane defaults for packages and config
+ config_path = py.path.local(spack.paths.etc_path)
+ modules_yaml = config_path.join('spack', 'defaults', 'modules.yaml')
+ os_modules_yaml = config_path.join('spack', 'defaults', '%s' %
+ platform.system().lower(),
+ 'modules.yaml')
+ packages_yaml = config_path.join('spack', 'defaults', 'packages.yaml')
+ config_yaml = config_path.join('spack', 'defaults', 'config.yaml')
+ repos_yaml = config_path.join('spack', 'defaults', 'repos.yaml')
+ tmpdir.ensure('site', dir=True)
+ tmpdir.ensure('user', dir=True)
+ tmpdir.ensure('site/%s' % platform.system().lower(), dir=True)
+ modules_yaml.copy(tmpdir.join('site', 'modules.yaml'))
+ os_modules_yaml.copy(tmpdir.join('site/%s' % platform.system().lower(),
+ 'modules.yaml'))
+ packages_yaml.copy(tmpdir.join('site', 'packages.yaml'))
+ config_yaml.copy(tmpdir.join('site', 'config.yaml'))
+ repos_yaml.copy(tmpdir.join('site', 'repos.yaml'))
+ yield tmpdir
+ tmpdir.remove()
+
+
+@pytest.fixture(scope='function')
+def default_config(tmpdir_factory, config_directory, monkeypatch):
+
+ mutable_dir = tmpdir_factory.mktemp('mutable_config').join('tmp')
+ config_directory.copy(mutable_dir)
+
+ cfg = spack.config.Configuration(
+ *[spack.config.ConfigScope(name, str(mutable_dir))
+ for name in ['site/%s' % platform.system().lower(),
+ 'site', 'user']])
+
+ monkeypatch.setattr(spack.config, 'config', cfg)
+
+ # This is essential, otherwise the cache will create weird side effects
+ # that will compromise subsequent tests if compilers.yaml is modified
+ monkeypatch.setattr(spack.compilers, '_cache_config_file', [])
+ njobs = spack.config.get('config:build_jobs')
+ if not njobs:
+ spack.config.set('config:build_jobs', 4, scope='user')
+ extensions = spack.config.get('config:template_dirs')
+ if not extensions:
+ spack.config.set('config:template_dirs',
+ [os.path.join(spack.paths.share_path, 'templates')],
+ scope='user')
+
+ mutable_dir.ensure('build_stage', dir=True)
+ build_stage = spack.config.get('config:build_stage')
+ if not build_stage:
+ spack.config.set('config:build_stage',
+ [str(mutable_dir.join('build_stage'))], scope='user')
+ timeout = spack.config.get('config:connect_timeout')
+ if not timeout:
+ spack.config.set('config:connect_timeout', 10, scope='user')
+ yield spack.config.config
+ mutable_dir.remove()
+
+
+@pytest.fixture(scope='function')
+def install_dir_default_layout(tmpdir):
+ """Hooks a fake install directory with a default layout"""
+ real_store = spack.store.store
+ real_layout = spack.store.layout
+ spack.store.store = spack.store.Store(str(tmpdir.join('opt')))
+ spack.store.layout = YamlDirectoryLayout(str(tmpdir.join('opt')),
+ path_scheme=def_install_path_scheme) # noqa: E501
+ yield spack.store
+ spack.store.store = real_store
+ spack.store.layout = real_layout
+
+
+@pytest.fixture(scope='function')
+def install_dir_non_default_layout(tmpdir):
+ """Hooks a fake install directory with a non-default layout"""
+ real_store = spack.store.store
+ real_layout = spack.store.layout
+ spack.store.store = spack.store.Store(str(tmpdir.join('opt')))
+ spack.store.layout = YamlDirectoryLayout(str(tmpdir.join('opt')),
+ path_scheme=ndef_install_path_scheme) # noqa: E501
+ yield spack.store
+ spack.store.store = real_store
+ spack.store.layout = real_layout
+
+
+@pytest.mark.requires_executables(
+ '/usr/bin/gcc', 'patchelf', 'strings', 'file')
+@pytest.mark.disable_clean_stage_check
+@pytest.mark.maybeslow
+@pytest.mark.usefixtures('default_config', 'cache_directory',
+ 'install_dir_default_layout')
+def test_default_rpaths_create_install_default_layout(tmpdir,
+ mirror_directory_def,
+ install_mockery):
+ """
+ Test the creation and installation of buildcaches with default rpaths
+ into the default directory layout scheme.
+ """
+
+ gspec = Spec('garply')
+ gspec.concretize()
+ cspec = Spec('corge')
+ cspec.concretize()
+
+ # Install patchelf needed for relocate in linux test environment
+ iparser = argparse.ArgumentParser()
+ install.setup_parser(iparser)
+ # Install some packages with dependent packages
+ iargs = iparser.parse_args(['--no-cache', cspec.name])
+ install.install(iparser, iargs)
+
+ global mirror_path_def
+ mirror_path_def = mirror_directory_def
+ mparser = argparse.ArgumentParser()
+ mirror.setup_parser(mparser)
+ margs = mparser.parse_args(
+ ['add', '--scope', 'site', 'test-mirror-def', 'file://%s' % mirror_path_def])
+ mirror.mirror(mparser, margs)
+ margs = mparser.parse_args(['list'])
+ mirror.mirror(mparser, margs)
+
+ # setup argument parser
+ parser = argparse.ArgumentParser()
+ buildcache.setup_parser(parser)
+
+ # Set default buildcache args
+ create_args = ['create', '-a', '-u', '-d', str(mirror_path_def),
+ cspec.name]
+ install_args = ['install', '-a', '-u', cspec.name]
+
+ # Create a buildache
+ args = parser.parse_args(create_args)
+ buildcache.buildcache(parser, args)
+ # Test force overwrite create buildcache
+ create_args.insert(create_args.index('-a'), '-f')
+ args = parser.parse_args(create_args)
+ buildcache.buildcache(parser, args)
+ # create mirror index
+ args = parser.parse_args(['update-index', '-d', 'file://%s' % str(mirror_path_def)])
+ buildcache.buildcache(parser, args)
+ # list the buildcaches in the mirror
+ args = parser.parse_args(['list', '-a', '-l', '-v'])
+ buildcache.buildcache(parser, args)
+
+ # Uninstall the package and deps
+ uparser = argparse.ArgumentParser()
+ uninstall.setup_parser(uparser)
+ uargs = uparser.parse_args(['-y', '--dependents', gspec.name])
+ uninstall.uninstall(uparser, uargs)
+
+ # test install
+ args = parser.parse_args(install_args)
+ buildcache.buildcache(parser, args)
+
+ # This gives warning that spec is already installed
+ buildcache.buildcache(parser, args)
+
+ # test overwrite install
+ install_args.insert(install_args.index('-a'), '-f')
+ args = parser.parse_args(install_args)
+ buildcache.buildcache(parser, args)
+
+ args = parser.parse_args(['keys', '-f'])
+ buildcache.buildcache(parser, args)
+
+ args = parser.parse_args(['list'])
+ buildcache.buildcache(parser, args)
+
+ args = parser.parse_args(['list', '-a'])
+ buildcache.buildcache(parser, args)
+
+ args = parser.parse_args(['list', '-l', '-v'])
+ buildcache.buildcache(parser, args)
+ bindist._cached_specs = set()
+ spack.stage.purge()
+ margs = mparser.parse_args(
+ ['rm', '--scope', 'site', 'test-mirror-def'])
+ mirror.mirror(mparser, margs)
+
+
+@pytest.mark.requires_executables(
+ '/usr/bin/gcc', 'patchelf', 'strings', 'file')
+@pytest.mark.disable_clean_stage_check
+@pytest.mark.maybeslow
+@pytest.mark.nomockstage
+@pytest.mark.usefixtures('default_config', 'cache_directory',
+ 'install_dir_non_default_layout')
+def test_default_rpaths_install_nondefault_layout(tmpdir,
+ install_mockery):
+ """
+ Test the creation and installation of buildcaches with default rpaths
+ into the non-default directory layout scheme.
+ """
+
+ gspec = Spec('garply')
+ gspec.concretize()
+ cspec = Spec('corge')
+ cspec.concretize()
+
+ global mirror_path_def
+ mparser = argparse.ArgumentParser()
+ mirror.setup_parser(mparser)
+ margs = mparser.parse_args(
+ ['add', '--scope', 'site', 'test-mirror-def', 'file://%s' % mirror_path_def])
+ mirror.mirror(mparser, margs)
+
+ # setup argument parser
+ parser = argparse.ArgumentParser()
+ buildcache.setup_parser(parser)
+
+ # Set default buildcache args
+ install_args = ['install', '-a', '-u', '%s' % cspec.name]
+
+ # Install some packages with dependent packages
+ # test install in non-default install path scheme
+ args = parser.parse_args(install_args)
+ buildcache.buildcache(parser, args)
+ # test force install in non-default install path scheme
+ install_args.insert(install_args.index('-a'), '-f')
+ args = parser.parse_args(install_args)
+ buildcache.buildcache(parser, args)
+
+ bindist._cached_specs = set()
+ spack.stage.purge()
+ margs = mparser.parse_args(
+ ['rm', '--scope', 'site', 'test-mirror-def'])
+ mirror.mirror(mparser, margs)
+
+
+@pytest.mark.requires_executables(
+ '/usr/bin/gcc', 'patchelf', 'strings', 'file')
+@pytest.mark.disable_clean_stage_check
+@pytest.mark.maybeslow
+@pytest.mark.nomockstage
+@pytest.mark.usefixtures('default_config', 'cache_directory',
+ 'install_dir_default_layout')
+def test_relative_rpaths_create_default_layout(tmpdir,
+ mirror_directory_rel,
+ install_mockery):
+ """
+ Test the creation and installation of buildcaches with relative
+ rpaths into the default directory layout scheme.
+ """
+
+ gspec = Spec('garply')
+ gspec.concretize()
+ cspec = Spec('corge')
+ cspec.concretize()
+
+ global mirror_path_rel
+ mirror_path_rel = mirror_directory_rel
+ # Install patchelf needed for relocate in linux test environment
+ iparser = argparse.ArgumentParser()
+ install.setup_parser(iparser)
+ # Install some packages with dependent packages
+ iargs = iparser.parse_args(['--no-cache', cspec.name])
+ install.install(iparser, iargs)
+
+ # setup argument parser
+ parser = argparse.ArgumentParser()
+ buildcache.setup_parser(parser)
+
+ # set default buildcache args
+ create_args = ['create', '-a', '-u', '-r', '-d',
+ str(mirror_path_rel),
+ cspec.name]
+
+ # create build cache with relatived rpaths
+ args = parser.parse_args(create_args)
+ buildcache.buildcache(parser, args)
+ # create mirror index
+ args = parser.parse_args(['update-index', '-d', 'file://%s' % str(mirror_path_rel)])
+ buildcache.buildcache(parser, args)
+ # Uninstall the package and deps
+ uparser = argparse.ArgumentParser()
+ uninstall.setup_parser(uparser)
+ uargs = uparser.parse_args(['-y', '--dependents', gspec.name])
+ uninstall.uninstall(uparser, uargs)
+
+ bindist._cached_specs = set()
+ spack.stage.purge()
+
+
+@pytest.mark.requires_executables(
+ '/usr/bin/gcc', 'patchelf', 'strings', 'file')
+@pytest.mark.disable_clean_stage_check
+@pytest.mark.maybeslow
+@pytest.mark.nomockstage
+@pytest.mark.usefixtures('default_config', 'cache_directory',
+ 'install_dir_default_layout')
+def test_relative_rpaths_install_default_layout(tmpdir,
+ install_mockery):
+ """
+ Test the creation and installation of buildcaches with relative
+ rpaths into the default directory layout scheme.
+ """
+
+ gspec = Spec('garply')
+ gspec.concretize()
+ cspec = Spec('corge')
+ cspec.concretize()
+
+ global mirror_path_rel
+ mparser = argparse.ArgumentParser()
+ mirror.setup_parser(mparser)
+ margs = mparser.parse_args(
+ ['add', '--scope', 'site', 'test-mirror-rel', 'file://%s' % mirror_path_rel])
+ mirror.mirror(mparser, margs)
+
+ # Install patchelf needed for relocate in linux test environment
+ iparser = argparse.ArgumentParser()
+ install.setup_parser(iparser)
+
+ # setup argument parser
+ parser = argparse.ArgumentParser()
+ buildcache.setup_parser(parser)
+
+ # set default buildcache args
+ install_args = ['install', '-a', '-u',
+ cspec.name]
+
+ # install buildcache created with relativized rpaths
+ args = parser.parse_args(install_args)
+ buildcache.buildcache(parser, args)
+
+ # This gives warning that spec is already installed
+ buildcache.buildcache(parser, args)
+
+ # Uninstall the package and deps
+ uparser = argparse.ArgumentParser()
+ uninstall.setup_parser(uparser)
+ uargs = uparser.parse_args(['-y', '--dependents', gspec.name])
+ uninstall.uninstall(uparser, uargs)
+
+ # install build cache
+ buildcache.buildcache(parser, args)
+
+ # test overwrite install
+ install_args.insert(install_args.index('-a'), '-f')
+ args = parser.parse_args(install_args)
+ buildcache.buildcache(parser, args)
+
+ bindist._cached_specs = set()
+ spack.stage.purge()
+ margs = mparser.parse_args(
+ ['rm', '--scope', 'site', 'test-mirror-rel'])
+ mirror.mirror(mparser, margs)
+
+
+@pytest.mark.requires_executables(
+ '/usr/bin/gcc', 'patchelf', 'strings', 'file')
+@pytest.mark.disable_clean_stage_check
+@pytest.mark.maybeslow
+@pytest.mark.nomockstage
+@pytest.mark.usefixtures('default_config', 'cache_directory',
+ 'install_dir_non_default_layout')
+def test_relative_rpaths_install_nondefault(tmpdir,
+ install_mockery):
+ """
+ Test the installation of buildcaches with relativized rpaths
+ into the non-default directory layout scheme.
+ """
+
+ gspec = Spec('garply')
+ gspec.concretize()
+ cspec = Spec('corge')
+ cspec.concretize()
+
+ global mirror_path_rel
+
+ mparser = argparse.ArgumentParser()
+ mirror.setup_parser(mparser)
+ margs = mparser.parse_args(
+ ['add', '--scope', 'site', 'test-mirror-rel', 'file://%s' % mirror_path_rel])
+ mirror.mirror(mparser, margs)
+
+ # Install patchelf needed for relocate in linux test environment
+ iparser = argparse.ArgumentParser()
+ install.setup_parser(iparser)
+
+ # setup argument parser
+ parser = argparse.ArgumentParser()
+ buildcache.setup_parser(parser)
+
+ # Set default buildcache args
+ install_args = ['install', '-a', '-u', '%s' % cspec.name]
+
+ # test install in non-default install path scheme and relative path
+ args = parser.parse_args(install_args)
+ buildcache.buildcache(parser, args)
+
+ bindist._cached_specs = set()
+ spack.stage.purge()
+ margs = mparser.parse_args(
+ ['rm', '--scope', 'site', 'test-mirror-rel'])
+ mirror.mirror(mparser, margs)
diff --git a/lib/spack/spack/test/llnl/util/lock.py b/lib/spack/spack/test/llnl/util/lock.py
index a959ea0c73..b2b7cf85ac 100644
--- a/lib/spack/spack/test/llnl/util/lock.py
+++ b/lib/spack/spack/test/llnl/util/lock.py
@@ -1143,8 +1143,6 @@ def test_nested_reads(lock_path):
assert vals['read'] == 1
-@pytest.mark.skipif('macos' in os.environ.get('GITHUB_WORKFLOW', ''),
- reason="Skip failing test for GA on MacOS")
def test_lock_debug_output(lock_path):
host = socket.getfqdn()
diff --git a/lib/spack/spack/test/llnl/util/tty/log.py b/lib/spack/spack/test/llnl/util/tty/log.py
index f23f663713..97950e8324 100644
--- a/lib/spack/spack/test/llnl/util/tty/log.py
+++ b/lib/spack/spack/test/llnl/util/tty/log.py
@@ -111,7 +111,7 @@ def test_log_subproc_and_echo_output_capfd(capfd, tmpdir):
# Tests below use a pseudoterminal to test llnl.util.tty.log
#
def simple_logger(**kwargs):
- """Mock logger (child) process for testing log.keyboard_input."""
+ """Mock logger (minion) process for testing log.keyboard_input."""
def handler(signum, frame):
running[0] = False
signal.signal(signal.SIGUSR1, handler)
@@ -125,7 +125,7 @@ def simple_logger(**kwargs):
def mock_shell_fg(proc, ctl, **kwargs):
- """PseudoShell master function for test_foreground_background."""
+ """PseudoShell controller function for test_foreground_background."""
ctl.fg()
ctl.status()
ctl.wait_enabled()
@@ -134,7 +134,7 @@ def mock_shell_fg(proc, ctl, **kwargs):
def mock_shell_fg_no_termios(proc, ctl, **kwargs):
- """PseudoShell master function for test_foreground_background."""
+ """PseudoShell controller function for test_foreground_background."""
ctl.fg()
ctl.status()
ctl.wait_disabled_fg()
@@ -143,7 +143,7 @@ def mock_shell_fg_no_termios(proc, ctl, **kwargs):
def mock_shell_bg(proc, ctl, **kwargs):
- """PseudoShell master function for test_foreground_background."""
+ """PseudoShell controller function for test_foreground_background."""
ctl.bg()
ctl.status()
ctl.wait_disabled()
@@ -152,7 +152,7 @@ def mock_shell_bg(proc, ctl, **kwargs):
def mock_shell_tstp_cont(proc, ctl, **kwargs):
- """PseudoShell master function for test_foreground_background."""
+ """PseudoShell controller function for test_foreground_background."""
ctl.tstp()
ctl.wait_stopped()
@@ -163,7 +163,7 @@ def mock_shell_tstp_cont(proc, ctl, **kwargs):
def mock_shell_tstp_tstp_cont(proc, ctl, **kwargs):
- """PseudoShell master function for test_foreground_background."""
+ """PseudoShell controller function for test_foreground_background."""
ctl.tstp()
ctl.wait_stopped()
@@ -177,7 +177,7 @@ def mock_shell_tstp_tstp_cont(proc, ctl, **kwargs):
def mock_shell_tstp_tstp_cont_cont(proc, ctl, **kwargs):
- """PseudoShell master function for test_foreground_background."""
+ """PseudoShell controller function for test_foreground_background."""
ctl.tstp()
ctl.wait_stopped()
@@ -194,7 +194,7 @@ def mock_shell_tstp_tstp_cont_cont(proc, ctl, **kwargs):
def mock_shell_bg_fg(proc, ctl, **kwargs):
- """PseudoShell master function for test_foreground_background."""
+ """PseudoShell controller function for test_foreground_background."""
ctl.bg()
ctl.status()
ctl.wait_disabled()
@@ -207,7 +207,7 @@ def mock_shell_bg_fg(proc, ctl, **kwargs):
def mock_shell_bg_fg_no_termios(proc, ctl, **kwargs):
- """PseudoShell master function for test_foreground_background."""
+ """PseudoShell controller function for test_foreground_background."""
ctl.bg()
ctl.status()
ctl.wait_disabled()
@@ -220,7 +220,7 @@ def mock_shell_bg_fg_no_termios(proc, ctl, **kwargs):
def mock_shell_fg_bg(proc, ctl, **kwargs):
- """PseudoShell master function for test_foreground_background."""
+ """PseudoShell controller function for test_foreground_background."""
ctl.fg()
ctl.status()
ctl.wait_enabled()
@@ -233,7 +233,7 @@ def mock_shell_fg_bg(proc, ctl, **kwargs):
def mock_shell_fg_bg_no_termios(proc, ctl, **kwargs):
- """PseudoShell master function for test_foreground_background."""
+ """PseudoShell controller function for test_foreground_background."""
ctl.fg()
ctl.status()
ctl.wait_disabled_fg()
@@ -299,7 +299,7 @@ def test_foreground_background(test_fn, termios_on_or_off, tmpdir):
def synchronized_logger(**kwargs):
- """Mock logger (child) process for testing log.keyboard_input.
+ """Mock logger (minion) process for testing log.keyboard_input.
This logger synchronizes with the parent process to test that 'v' can
toggle output. It is used in ``test_foreground_background_output`` below.
@@ -330,7 +330,7 @@ def synchronized_logger(**kwargs):
def mock_shell_v_v(proc, ctl, **kwargs):
- """PseudoShell master function for test_foreground_background_output."""
+ """Controller function for test_foreground_background_output."""
write_lock = kwargs["write_lock"]
v_lock = kwargs["v_lock"]
@@ -357,7 +357,7 @@ def mock_shell_v_v(proc, ctl, **kwargs):
def mock_shell_v_v_no_termios(proc, ctl, **kwargs):
- """PseudoShell master function for test_foreground_background_output."""
+ """Controller function for test_foreground_background_output."""
write_lock = kwargs["write_lock"]
v_lock = kwargs["v_lock"]
@@ -395,9 +395,9 @@ def test_foreground_background_output(
shell = PseudoShell(test_fn, synchronized_logger)
log_path = str(tmpdir.join("log.txt"))
- # Locks for synchronizing with child
- write_lock = multiprocessing.Lock() # must be held by child to write
- v_lock = multiprocessing.Lock() # held while master is in v mode
+ # Locks for synchronizing with minion
+ write_lock = multiprocessing.Lock() # must be held by minion to write
+ v_lock = multiprocessing.Lock() # held while controller is in v mode
with termios_on_or_off():
shell.start(
@@ -423,16 +423,16 @@ def test_foreground_background_output(
with open(log_path) as log:
log = log.read().strip().split("\n")
- # Master and child process coordinate with locks such that the child
+ # Controller and minion process coordinate with locks such that the minion
# writes "off" when echo is off, and "on" when echo is on. The
# output should contain mostly "on" lines, but may contain an "off"
- # or two. This is because the master toggles echo by sending "v" on
- # stdin to the child, but this is not synchronized with our locks.
+ # or two. This is because the controller toggles echo by sending "v" on
+ # stdin to the minion, but this is not synchronized with our locks.
# It's good enough for a test, though. We allow at most 2 "off"'s in
# the output to account for the race.
assert (
['forced output', 'on'] == uniq(output) or
- output.count("off") <= 2 # if master_fd is a bit slow
+ output.count("off") <= 2 # if controller_fd is a bit slow
)
# log should be off for a while, then on, then off
diff --git a/lib/spack/spack/test/util/executable.py b/lib/spack/spack/test/util/executable.py
index 5e8795f4bf..ae2859ea4b 100644
--- a/lib/spack/spack/test/util/executable.py
+++ b/lib/spack/spack/test/util/executable.py
@@ -40,6 +40,36 @@ print(u'\\xc3')
assert u'\xc3' == script(output=str).strip()
+def test_which_relative_path_with_slash(tmpdir, working_env):
+ tmpdir.ensure('exe')
+ path = str(tmpdir.join('exe'))
+ os.environ['PATH'] = ''
+
+ with tmpdir.as_cwd():
+ no_exe = ex.which('./exe')
+ assert no_exe is None
+
+ fs.set_executable(path)
+ exe = ex.which('./exe')
+ assert exe.path == path
+
+
+def test_which_with_slash_ignores_path(tmpdir, working_env):
+ tmpdir.ensure('exe')
+ tmpdir.ensure('bin{0}exe'.format(os.path.sep))
+
+ path = str(tmpdir.join('exe'))
+ wrong_path = str(tmpdir.join('bin', 'exe'))
+ os.environ['PATH'] = os.path.dirname(wrong_path)
+
+ fs.set_executable(path)
+ fs.set_executable(wrong_path)
+
+ with tmpdir.as_cwd():
+ exe = ex.which('./exe')
+ assert exe.path == path
+
+
def test_which(tmpdir):
os.environ["PATH"] = str(tmpdir)
assert ex.which("spack-test-exe") is None
diff --git a/lib/spack/spack/util/compression.py b/lib/spack/spack/util/compression.py
index 1688b49f1b..ebbe0519d0 100644
--- a/lib/spack/spack/util/compression.py
+++ b/lib/spack/spack/util/compression.py
@@ -14,7 +14,7 @@ EXTS = ["gz", "bz2", "xz", "Z"]
NOTAR_EXTS = ["zip", "tgz", "tbz2", "txz"]
# Add PRE_EXTS and EXTS last so that .tar.gz is matched *before* .tar or .gz
-ALLOWED_ARCHIVE_TYPES = [".".join(l) for l in product(
+ALLOWED_ARCHIVE_TYPES = [".".join(ext) for ext in product(
PRE_EXTS, EXTS)] + PRE_EXTS + EXTS + NOTAR_EXTS
@@ -36,7 +36,7 @@ def decompressor_for(path, extension=None):
bunzip2 = which('bunzip2', required=True)
return bunzip2
tar = which('tar', required=True)
- tar.add_default_arg('-xf')
+ tar.add_default_arg('-oxf')
return tar
diff --git a/lib/spack/spack/util/crypto.py b/lib/spack/spack/util/crypto.py
index 566e99da21..74a6ee06bd 100644
--- a/lib/spack/spack/util/crypto.py
+++ b/lib/spack/spack/util/crypto.py
@@ -133,7 +133,7 @@ class Checker(object):
@property
def hash_name(self):
"""Get the name of the hash function this Checker is using."""
- return self.hash_fun().name
+ return self.hash_fun().name.lower()
def check(self, filename):
"""Read the file with the specified name and check its checksum
diff --git a/lib/spack/spack/util/executable.py b/lib/spack/spack/util/executable.py
index 28656b0a32..097da3337e 100644
--- a/lib/spack/spack/util/executable.py
+++ b/lib/spack/spack/util/executable.py
@@ -233,10 +233,15 @@ def which_string(*args, **kwargs):
path = path.split(os.pathsep)
for name in args:
- for directory in path:
- exe = os.path.join(directory, name)
+ if os.path.sep in name:
+ exe = os.path.abspath(name)
if os.path.isfile(exe) and os.access(exe, os.X_OK):
return exe
+ else:
+ for directory in path:
+ exe = os.path.join(directory, name)
+ if os.path.isfile(exe) and os.access(exe, os.X_OK):
+ return exe
if required:
raise CommandNotFoundError(
diff --git a/lib/spack/spack/util/gpg.py b/lib/spack/spack/util/gpg.py
index 29b2add852..e6b7f56741 100644
--- a/lib/spack/spack/util/gpg.py
+++ b/lib/spack/spack/util/gpg.py
@@ -13,7 +13,7 @@ from spack.util.executable import which
_gnupg_version_re = r"^gpg \(GnuPG\) (.*)$"
-GNUPGHOME = spack.paths.gpg_path
+GNUPGHOME = os.getenv('SPACK_GNUPGHOME', spack.paths.gpg_path)
def parse_keys_output(output):
diff --git a/share/spack/docker/centos-6.dockerfile b/share/spack/docker/centos-6.dockerfile
index 8c971124a5..1ba58d66af 100644
--- a/share/spack/docker/centos-6.dockerfile
+++ b/share/spack/docker/centos-6.dockerfile
@@ -9,20 +9,6 @@ ENV DOCKERFILE_BASE=centos \
CURRENTLY_BUILDING_DOCKER_IMAGE=1 \
container=docker
-COPY bin $SPACK_ROOT/bin
-COPY etc $SPACK_ROOT/etc
-COPY lib $SPACK_ROOT/lib
-COPY share $SPACK_ROOT/share
-COPY var $SPACK_ROOT/var
-RUN mkdir -p $SPACK_ROOT/opt/spack
-
-RUN ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
- /usr/local/bin/docker-shell \
- && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
- /usr/local/bin/interactive-shell \
- && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
- /usr/local/bin/spack-env
-
RUN yum update -y \
&& yum install -y epel-release \
&& yum update -y \
@@ -50,6 +36,20 @@ RUN yum update -y \
&& rm -rf /var/cache/yum \
&& yum clean all
+COPY bin $SPACK_ROOT/bin
+COPY etc $SPACK_ROOT/etc
+COPY lib $SPACK_ROOT/lib
+COPY share $SPACK_ROOT/share
+COPY var $SPACK_ROOT/var
+RUN mkdir -p $SPACK_ROOT/opt/spack
+
+RUN ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
+ /usr/local/bin/docker-shell \
+ && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
+ /usr/local/bin/interactive-shell \
+ && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
+ /usr/local/bin/spack-env
+
RUN mkdir -p /root/.spack \
&& cp $SPACK_ROOT/share/spack/docker/modules.yaml \
/root/.spack/modules.yaml \
diff --git a/share/spack/docker/centos-7.dockerfile b/share/spack/docker/centos-7.dockerfile
index 292663d922..c8dc75a0f3 100644
--- a/share/spack/docker/centos-7.dockerfile
+++ b/share/spack/docker/centos-7.dockerfile
@@ -9,20 +9,6 @@ ENV DOCKERFILE_BASE=centos \
CURRENTLY_BUILDING_DOCKER_IMAGE=1 \
container=docker
-COPY bin $SPACK_ROOT/bin
-COPY etc $SPACK_ROOT/etc
-COPY lib $SPACK_ROOT/lib
-COPY share $SPACK_ROOT/share
-COPY var $SPACK_ROOT/var
-RUN mkdir -p $SPACK_ROOT/opt/spack
-
-RUN ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
- /usr/local/bin/docker-shell \
- && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
- /usr/local/bin/interactive-shell \
- && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
- /usr/local/bin/spack-env
-
RUN yum update -y \
&& yum install -y epel-release \
&& yum update -y \
@@ -50,6 +36,20 @@ RUN yum update -y \
&& rm -rf /var/cache/yum \
&& yum clean all
+COPY bin $SPACK_ROOT/bin
+COPY etc $SPACK_ROOT/etc
+COPY lib $SPACK_ROOT/lib
+COPY share $SPACK_ROOT/share
+COPY var $SPACK_ROOT/var
+RUN mkdir -p $SPACK_ROOT/opt/spack
+
+RUN ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
+ /usr/local/bin/docker-shell \
+ && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
+ /usr/local/bin/interactive-shell \
+ && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
+ /usr/local/bin/spack-env
+
RUN mkdir -p /root/.spack \
&& cp $SPACK_ROOT/share/spack/docker/modules.yaml \
/root/.spack/modules.yaml \
diff --git a/share/spack/docker/ubuntu-1604.dockerfile b/share/spack/docker/ubuntu-1604.dockerfile
index 1f7db8bea9..c07cde5918 100644
--- a/share/spack/docker/ubuntu-1604.dockerfile
+++ b/share/spack/docker/ubuntu-1604.dockerfile
@@ -9,20 +9,6 @@ ENV DOCKERFILE_BASE=ubuntu:16.04 \
CURRENTLY_BUILDING_DOCKER_IMAGE=1 \
container=docker
-COPY bin $SPACK_ROOT/bin
-COPY etc $SPACK_ROOT/etc
-COPY lib $SPACK_ROOT/lib
-COPY share $SPACK_ROOT/share
-COPY var $SPACK_ROOT/var
-RUN mkdir -p $SPACK_ROOT/opt/spack
-
-RUN ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
- /usr/local/bin/docker-shell \
- && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
- /usr/local/bin/interactive-shell \
- && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
- /usr/local/bin/spack-env
-
RUN apt-get -yqq update \
&& apt-get -yqq install --no-install-recommends \
build-essential \
@@ -48,6 +34,20 @@ RUN apt-get -yqq update \
&& pip3 install boto3 \
&& rm -rf /var/lib/apt/lists/*
+COPY bin $SPACK_ROOT/bin
+COPY etc $SPACK_ROOT/etc
+COPY lib $SPACK_ROOT/lib
+COPY share $SPACK_ROOT/share
+COPY var $SPACK_ROOT/var
+RUN mkdir -p $SPACK_ROOT/opt/spack
+
+RUN ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
+ /usr/local/bin/docker-shell \
+ && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
+ /usr/local/bin/interactive-shell \
+ && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
+ /usr/local/bin/spack-env
+
# Add LANG default to en_US.UTF-8
ENV LANGUAGE en_US.UTF-8
ENV LANG en_US.UTF-8
diff --git a/share/spack/docker/ubuntu-1804.dockerfile b/share/spack/docker/ubuntu-1804.dockerfile
index a8d9577b66..1ecef10652 100644
--- a/share/spack/docker/ubuntu-1804.dockerfile
+++ b/share/spack/docker/ubuntu-1804.dockerfile
@@ -9,20 +9,6 @@ ENV DOCKERFILE_BASE=ubuntu \
CURRENTLY_BUILDING_DOCKER_IMAGE=1 \
container=docker
-COPY bin $SPACK_ROOT/bin
-COPY etc $SPACK_ROOT/etc
-COPY lib $SPACK_ROOT/lib
-COPY share $SPACK_ROOT/share
-COPY var $SPACK_ROOT/var
-RUN mkdir -p $SPACK_ROOT/opt/spack
-
-RUN ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
- /usr/local/bin/docker-shell \
- && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
- /usr/local/bin/interactive-shell \
- && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
- /usr/local/bin/spack-env
-
RUN apt-get -yqq update \
&& apt-get -yqq install --no-install-recommends \
build-essential \
@@ -48,6 +34,20 @@ RUN apt-get -yqq update \
&& pip3 install boto3 \
&& rm -rf /var/lib/apt/lists/*
+COPY bin $SPACK_ROOT/bin
+COPY etc $SPACK_ROOT/etc
+COPY lib $SPACK_ROOT/lib
+COPY share $SPACK_ROOT/share
+COPY var $SPACK_ROOT/var
+RUN mkdir -p $SPACK_ROOT/opt/spack
+
+RUN ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
+ /usr/local/bin/docker-shell \
+ && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
+ /usr/local/bin/interactive-shell \
+ && ln -s $SPACK_ROOT/share/spack/docker/entrypoint.bash \
+ /usr/local/bin/spack-env
+
# Add LANG default to en_US.UTF-8
ENV LANGUAGE en_US.UTF-8
ENV LANG en_US.UTF-8
diff --git a/share/spack/qa/install_patchelf.sh b/share/spack/qa/install_patchelf.sh
new file mode 100755
index 0000000000..7660ba8eef
--- /dev/null
+++ b/share/spack/qa/install_patchelf.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+#
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+#
+# Description:
+# Install patchelf for use in buildcache unit tests
+#
+# Usage:
+# install-patchelf.sh
+#
+set -ex
+if [ "$TRAVIS_OS_NAME" = "linux" ]; then
+ olddir=$PWD
+ cd /tmp
+ wget https://github.com/NixOS/patchelf/archive/0.10.tar.gz
+ tar -xvf 0.10.tar.gz
+ cd patchelf-0.10 && ./bootstrap.sh && ./configure --prefix=/usr && make && sudo make install && cd $olddir
+fi
diff --git a/share/spack/qa/run-shell-tests b/share/spack/qa/run-shell-tests
index 126e639186..c5c3425a8e 100755
--- a/share/spack/qa/run-shell-tests
+++ b/share/spack/qa/run-shell-tests
@@ -18,7 +18,7 @@
ORIGINAL_PATH="$PATH"
. "$(dirname $0)/setup.sh"
-check_dependencies $coverage git hg svn
+check_dependencies $coverage kcov git hg svn
# Clean the environment by removing Spack from the path and getting rid of
# the spack shell function
diff --git a/share/spack/qa/run-unit-tests b/share/spack/qa/run-unit-tests
index 7c4abb1413..c529f8297e 100755
--- a/share/spack/qa/run-unit-tests
+++ b/share/spack/qa/run-unit-tests
@@ -37,11 +37,7 @@ bin/spack -h
bin/spack help -a
# Profile and print top 20 lines for a simple call to spack spec
-if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
- spack -p --lines 20 spec openmpi
-else
- spack -p --lines 20 spec mpileaks%gcc ^elfutils@0.170
-fi
+spack -p --lines 20 spec mpileaks%gcc ^elfutils@0.170
#-----------------------------------------------------------
# Run unit tests with code coverage
diff --git a/share/spack/qa/setup.sh b/share/spack/qa/setup.sh
index 6536479015..34b426dcd7 100755
--- a/share/spack/qa/setup.sh
+++ b/share/spack/qa/setup.sh
@@ -26,14 +26,11 @@ if [[ "$COVERAGE" == "true" ]]; then
coverage=coverage
coverage_run="coverage run"
- # bash coverage depends on some other factors -- there are issues with
- # kcov for Python 2.6, unit tests, and build tests.
- if [[ $TRAVIS_PYTHON_VERSION != 2.6 ]]; then
- mkdir -p coverage
- cc_script="$SPACK_ROOT/lib/spack/env/cc"
- bashcov=$(realpath ${QA_DIR}/bashcov)
- sed -i~ "s@#\!/bin/bash@#\!${bashcov}@" "$cc_script"
- fi
+ # bash coverage depends on some other factors
+ mkdir -p coverage
+ cc_script="$SPACK_ROOT/lib/spack/env/cc"
+ bashcov=$(realpath ${QA_DIR}/bashcov)
+ sed -i~ "s@#\!/bin/bash@#\!${bashcov}@" "$cc_script"
fi
#
@@ -74,6 +71,9 @@ check_dependencies() {
spack_package=mercurial
pip_package=mercurial
;;
+ kcov)
+ spack_package=kcov
+ ;;
svn)
spack_package=subversion
;;
diff --git a/share/spack/spack-completion.bash b/share/spack/spack-completion.bash
index 11bd906ad0..fc1b4e2a27 100755
--- a/share/spack/spack-completion.bash
+++ b/share/spack/spack-completion.bash
@@ -639,7 +639,7 @@ _spack_containerize() {
_spack_create() {
if $list_options
then
- SPACK_COMPREPLY="-h --help --keep-stage -n --name -t --template -r --repo -N --namespace -f --force --skip-editor"
+ SPACK_COMPREPLY="-h --help --keep-stage -n --name -t --template -r --repo -N --namespace -f --force --skip-editor -b --batch"
else
SPACK_COMPREPLY=""
fi
diff --git a/share/spack/templates/container/Dockerfile b/share/spack/templates/container/Dockerfile
index 2f1370fdb3..c65fce5627 100644
--- a/share/spack/templates/container/Dockerfile
+++ b/share/spack/templates/container/Dockerfile
@@ -7,7 +7,7 @@ RUN mkdir {{ paths.environment }} \
{{ manifest }} > {{ paths.environment }}/spack.yaml
# Install the software, remove unecessary deps
-RUN cd {{ paths.environment }} && spack env activate . && spack install && spack gc -y
+RUN cd {{ paths.environment }} && spack env activate . && spack install --fail-fast && spack gc -y
{% if strip %}
# Strip all the binaries
diff --git a/share/spack/templates/container/singularity.def b/share/spack/templates/container/singularity.def
index 7ba0a3ff1b..44b22aeae6 100644
--- a/share/spack/templates/container/singularity.def
+++ b/share/spack/templates/container/singularity.def
@@ -12,7 +12,7 @@ EOF
# Install all the required software
. /opt/spack/share/spack/setup-env.sh
spack env activate .
- spack install
+ spack install --fail-fast
spack gc -y
spack env deactivate
spack env activate --sh -d . >> {{ paths.environment }}/environment_modifications.sh
diff --git a/var/spack/repos/builtin.mock/packages/corge/package.py b/var/spack/repos/builtin.mock/packages/corge/package.py
new file mode 100644
index 0000000000..48f9ac8e6e
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/corge/package.py
@@ -0,0 +1,155 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack import *
+import os
+
+
+class Corge(Package):
+ """A toy package to test dependencies"""
+
+ homepage = "https://www.example.com"
+ url = "https://github.com/gartung/corge/archive/v3.0.0.tar.gz"
+
+ version('3.0.0',
+ sha256='5058861c3b887511387c725971984cec665a8307d660158915a04d7786fed6bc')
+
+ depends_on('quux')
+
+ def install(self, spec, prefix):
+ corge_cc = '''#include <iostream>
+#include <stdexcept>
+#include "corge.h"
+#include "corge_version.h"
+#include "quux/quux.h"
+
+const int Corge::version_major = corge_version_major;
+const int Corge::version_minor = corge_version_minor;
+
+Corge::Corge()
+{
+}
+
+int
+Corge::get_version() const
+{
+ return 10 * version_major + version_minor;
+}
+
+int
+Corge::corgegate() const
+{
+ int corge_version = get_version();
+ std::cout << "Corge::corgegate version " << corge_version
+ << " invoked" << std::endl;
+ std::cout << "Corge config directory = %s" <<std::endl;
+ Quux quux;
+ int quux_version = quux.quuxify();
+
+ if(quux_version != corge_version) {
+ throw std::runtime_error(
+ "Corge found an incompatible version of Garply.");
+ }
+
+ return corge_version;
+}
+'''
+ corge_h = '''#ifndef CORGE_H_
+
+class Corge
+{
+private:
+ static const int version_major;
+ static const int version_minor;
+
+public:
+ Corge();
+ int get_version() const;
+ int corgegate() const;
+};
+
+#endif // CORGE_H_
+'''
+ corge_version_h = '''
+const int corge_version_major = %s;
+const int corge_version_minor = %s;
+'''
+ corgegator_cc = '''
+#include <iostream>
+#include "corge.h"
+
+int
+main(int argc, char* argv[])
+{
+ std::cout << "corgerator called with ";
+ if (argc == 0) {
+ std::cout << "no command-line arguments" << std::endl;
+ } else {
+ std::cout << "command-line arguments:";
+ for (int i = 0; i < argc; ++i) {
+ std::cout << " \"" << argv[i] << "\"";
+ }
+ std::cout << std::endl;
+ }
+ std::cout << "corgegating.."<<std::endl;
+ Corge corge;
+ corge.corgegate();
+ std::cout << "done."<<std::endl;
+ return 0;
+}
+'''
+ mkdirp(prefix.lib64)
+ mkdirp('%s/corge' % prefix.include)
+ mkdirp('%s/corge' % self.stage.source_path)
+ with open('%s/corge_version.h' % self.stage.source_path, 'w') as f:
+ f.write(corge_version_h % (self.version[0], self.version[1:]))
+ with open('%s/corge/corge.cc' % self.stage.source_path, 'w') as f:
+ f.write(corge_cc % prefix.config)
+ with open('%s/corge/corge.h' % self.stage.source_path, 'w') as f:
+ f.write(corge_h)
+ with open('%s/corge/corgegator.cc' % self.stage.source_path, 'w') as f:
+ f.write(corgegator_cc)
+ gpp = which('/usr/bin/g++')
+ gpp('-Dcorge_EXPORTS',
+ '-I%s' % self.stage.source_path,
+ '-I%s' % spec['quux'].prefix.include,
+ '-I%s' % spec['garply'].prefix.include,
+ '-O2', '-g', '-DNDEBUG', '-fPIC',
+ '-o', 'corge.cc.o',
+ '-c', 'corge/corge.cc')
+ gpp('-Dcorge_EXPORTS',
+ '-I%s' % self.stage.source_path,
+ '-I%s' % spec['quux'].prefix.include,
+ '-I%s' % spec['garply'].prefix.include,
+ '-O2', '-g', '-DNDEBUG', '-fPIC',
+ '-o', 'corgegator.cc.o',
+ '-c', 'corge/corgegator.cc')
+ gpp('-fPIC', '-O2', '-g', '-DNDEBUG', '-shared',
+ '-Wl,-soname,libcorge.so', '-o', 'libcorge.so', 'corge.cc.o',
+ '-Wl,-rpath,%s:%s::::' %
+ (spec['quux'].prefix.lib64, spec['garply'].prefix.lib64),
+ '%s/libquux.so' % spec['quux'].prefix.lib64,
+ '%s/libgarply.so' % spec['garply'].prefix.lib64)
+ gpp('-O2', '-g', '-DNDEBUG', '-rdynamic',
+ 'corgegator.cc.o', '-o', 'corgegator',
+ '-Wl,-rpath,%s:%s:%s:::' % (prefix.lib64,
+ spec['quux'].prefix.lib64,
+ spec['garply'].prefix.lib64),
+ 'libcorge.so',
+ '%s/libquux.so' % spec['quux'].prefix.lib64,
+ '%s/libgarply.so' % spec['garply'].prefix.lib64)
+ copy('corgegator', '%s/corgegator' % prefix.lib64)
+ copy('libcorge.so', '%s/libcorge.so' % prefix.lib64)
+ copy('%s/corge/corge.h' % self.stage.source_path,
+ '%s/corge/corge.h' % prefix.include)
+ mkdirp(prefix.bin)
+ copy('corge_version.h', '%s/corge_version.h' % prefix.bin)
+ os.symlink('%s/corgegator' % prefix.lib64,
+ '%s/corgegator' % prefix.bin)
+ os.symlink('%s/quuxifier' % spec['quux'].prefix.lib64,
+ '%s/quuxifier' % prefix.bin)
+ os.symlink('%s/garplinator' % spec['garply'].prefix.lib64,
+ '%s/garplinator' % prefix.bin)
diff --git a/var/spack/repos/builtin.mock/packages/garply/package.py b/var/spack/repos/builtin.mock/packages/garply/package.py
new file mode 100644
index 0000000000..8fa0778287
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/garply/package.py
@@ -0,0 +1,112 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack import *
+import os
+
+
+class Garply(Package):
+ """Toy package for testing dependencies"""
+
+ homepage = "https://www.example.com"
+ url = "https://github.com/gartung/garply/archive/v3.0.0.tar.gz"
+
+ version('3.0.0',
+ sha256='534ac8ba7a6fed7e8bbb543bd43ca04999e65337445a531bd296939f5ac2f33d')
+
+ def install(self, spec, prefix):
+ garply_h = '''#ifndef GARPLY_H_
+
+class Garply
+{
+private:
+ static const int version_major;
+ static const int version_minor;
+
+public:
+ Garply();
+ int get_version() const;
+ int garplinate() const;
+};
+
+#endif // GARPLY_H_
+'''
+ garply_cc = '''#include "garply.h"
+#include "garply_version.h"
+#include <iostream>
+
+const int Garply::version_major = garply_version_major;
+const int Garply::version_minor = garply_version_minor;
+
+Garply::Garply() {}
+
+int
+Garply::get_version() const
+{
+ return 10 * version_major + version_minor;
+}
+
+int
+Garply::garplinate() const
+{
+ std::cout << "Garply::garplinate version " << get_version()
+ << " invoked" << std::endl;
+ std::cout << "Garply config dir = %s" << std::endl;
+ return get_version();
+}
+'''
+ garplinator_cc = '''#include "garply.h"
+#include <iostream>
+
+int
+main()
+{
+ Garply garply;
+ garply.garplinate();
+
+ return 0;
+}
+'''
+ garply_version_h = '''const int garply_version_major = %s;
+const int garply_version_minor = %s;
+'''
+ mkdirp(prefix.lib64)
+ mkdirp('%s/garply' % prefix.include)
+ mkdirp('%s/garply' % self.stage.source_path)
+ with open('%s/garply_version.h' % self.stage.source_path, 'w') as f:
+ f.write(garply_version_h % (self.version[0], self.version[1:]))
+ with open('%s/garply/garply.h' % self.stage.source_path, 'w') as f:
+ f.write(garply_h)
+ with open('%s/garply/garply.cc' % self.stage.source_path, 'w') as f:
+ f.write(garply_cc % prefix.config)
+ with open('%s/garply/garplinator.cc' %
+ self.stage.source_path, 'w') as f:
+ f.write(garplinator_cc)
+ gpp = which('/usr/bin/g++')
+ gpp('-Dgarply_EXPORTS',
+ '-I%s' % self.stage.source_path,
+ '-O2', '-g', '-DNDEBUG', '-fPIC',
+ '-o', 'garply.cc.o',
+ '-c', '%s/garply/garply.cc' % self.stage.source_path)
+ gpp('-Dgarply_EXPORTS',
+ '-I%s' % self.stage.source_path,
+ '-O2', '-g', '-DNDEBUG', '-fPIC',
+ '-o', 'garplinator.cc.o',
+ '-c', '%s/garply/garplinator.cc' % self.stage.source_path)
+ gpp('-fPIC', '-O2', '-g', '-DNDEBUG', '-shared',
+ '-Wl,-soname,libgarply.so', '-o', 'libgarply.so', 'garply.cc.o')
+ gpp('-O2', '-g', '-DNDEBUG', '-rdynamic',
+ 'garplinator.cc.o', '-o', 'garplinator',
+ '-Wl,-rpath,%s' % prefix.lib64,
+ 'libgarply.so')
+ copy('libgarply.so', '%s/libgarply.so' % prefix.lib64)
+ copy('garplinator', '%s/garplinator' % prefix.lib64)
+ copy('%s/garply/garply.h' % self.stage.source_path,
+ '%s/garply/garply.h' % prefix.include)
+ mkdirp(prefix.bin)
+ copy('garply_version.h', '%s/garply_version.h' % prefix.bin)
+ os.symlink('%s/garplinator' % prefix.lib64,
+ '%s/garplinator' % prefix.bin)
diff --git a/var/spack/repos/builtin.mock/packages/patchelf/package.py b/var/spack/repos/builtin.mock/packages/patchelf/package.py
index 0f72271921..80221e10e8 100644
--- a/var/spack/repos/builtin.mock/packages/patchelf/package.py
+++ b/var/spack/repos/builtin.mock/packages/patchelf/package.py
@@ -7,16 +7,17 @@ from spack import *
class Patchelf(AutotoolsPackage):
- """
- PatchELF is a small utility to modify the
- dynamic linker and RPATH of ELF executables.
- """
+ """PatchELF is a small utility to modify the dynamic linker and RPATH of
+ ELF executables."""
homepage = "https://nixos.org/patchelf.html"
- url = "http://nixos.org/releases/patchelf/patchelf-0.8/patchelf-0.8.tar.gz"
-
- list_url = "http://nixos.org/releases/patchelf/"
+ url = "https://nixos.org/releases/patchelf/patchelf-0.10/patchelf-0.10.tar.gz"
+ list_url = "https://nixos.org/releases/patchelf/"
list_depth = 1
- version('0.9', '3c265508526760f233620f35d79c79fc')
- version('0.8', '407b229e6a681ffb0e2cdd5915cb2d01')
+ version('0.10', sha256='b2deabce05c34ce98558c0efb965f209de592197b2c88e930298d740ead09019')
+ version('0.9', sha256='f2aa40a6148cb3b0ca807a1bf836b081793e55ec9e5540a5356d800132be7e0a')
+ version('0.8', sha256='14af06a2da688d577d64ff8dac065bb8903bbffbe01d30c62df7af9bf4ce72fe')
+
+ def install(self, spec, prefix):
+ install_tree(self.stage.source_path, prefix)
diff --git a/var/spack/repos/builtin.mock/packages/quux/package.py b/var/spack/repos/builtin.mock/packages/quux/package.py
new file mode 100644
index 0000000000..6db243f154
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/quux/package.py
@@ -0,0 +1,132 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack import *
+import os
+
+
+class Quux(Package):
+ """Toy package for testing dependencies"""
+
+ homepage = "https://www.example.com"
+ url = "https://github.com/gartung/quux/archive/v3.0.0.tar.gz"
+
+ version('3.0.0',
+ sha256='b91bc96fb746495786bddac2c527039177499f2f76d3fa9dcf0b393859e68484')
+
+ depends_on('garply')
+
+ def install(self, spec, prefix):
+ quux_cc = '''#include "quux.h"
+#include "garply/garply.h"
+#include "quux_version.h"
+#include <iostream>
+#include <stdexcept>
+
+const int Quux::version_major = quux_version_major;
+const int Quux::version_minor = quux_version_minor;
+
+Quux::Quux() {}
+
+int
+Quux::get_version() const
+{
+ return 10 * version_major + version_minor;
+}
+
+int
+Quux::quuxify() const
+{
+ int quux_version = get_version();
+ std::cout << "Quux::quuxify version " << quux_version
+ << " invoked" <<std::endl;
+ std::cout << "Quux config directory is %s" <<std::endl;
+ Garply garply;
+ int garply_version = garply.garplinate();
+
+ if (garply_version != quux_version) {
+ throw std::runtime_error(
+ "Quux found an incompatible version of Garply.");
+ }
+
+ return quux_version;
+}
+'''
+ quux_h = '''#ifndef QUUX_H_
+
+class Quux
+{
+private:
+ static const int version_major;
+ static const int version_minor;
+
+public:
+ Quux();
+ int get_version() const;
+ int quuxify() const;
+};
+
+#endif // QUUX_H_
+'''
+ quuxifier_cc = '''
+#include "quux.h"
+#include <iostream>
+
+int
+main()
+{
+ Quux quux;
+ quux.quuxify();
+
+ return 0;
+}
+'''
+ quux_version_h = '''const int quux_version_major = %s;
+const int quux_version_minor = %s;
+'''
+ mkdirp(prefix.lib64)
+ mkdirp('%s/quux' % prefix.include)
+ with open('%s/quux_version.h' % self.stage.source_path, 'w') as f:
+ f.write(quux_version_h % (self.version[0], self.version[1:]))
+ with open('%s/quux/quux.cc' % self.stage.source_path, 'w') as f:
+ f.write(quux_cc % (prefix.config))
+ with open('%s/quux/quux.h' % self.stage.source_path, 'w') as f:
+ f.write(quux_h)
+ with open('%s/quux/quuxifier.cc' % self.stage.source_path, 'w') as f:
+ f.write(quuxifier_cc)
+ gpp = which('/usr/bin/g++')
+ gpp('-Dquux_EXPORTS',
+ '-I%s' % self.stage.source_path,
+ '-I%s' % spec['garply'].prefix.include,
+ '-O2', '-g', '-DNDEBUG', '-fPIC',
+ '-o', 'quux.cc.o',
+ '-c', 'quux/quux.cc')
+ gpp('-Dquux_EXPORTS',
+ '-I%s' % self.stage.source_path,
+ '-I%s' % spec['garply'].prefix.include,
+ '-O2', '-g', '-DNDEBUG', '-fPIC',
+ '-o', 'quuxifier.cc.o',
+ '-c', 'quux/quuxifier.cc')
+ gpp('-fPIC', '-O2', '-g', '-DNDEBUG', '-shared',
+ '-Wl,-soname,libquux.so', '-o', 'libquux.so', 'quux.cc.o',
+ '-Wl,-rpath,%s:%s::::' % (prefix.lib64,
+ spec['garply'].prefix.lib64),
+ '%s/libgarply.so' % spec['garply'].prefix.lib64)
+ gpp('-O2', '-g', '-DNDEBUG', '-rdynamic',
+ 'quuxifier.cc.o', '-o', 'quuxifier',
+ '-Wl,-rpath,%s:%s::::' % (prefix.lib64,
+ spec['garply'].prefix.lib64),
+ 'libquux.so',
+ '%s/libgarply.so' % spec['garply'].prefix.lib64)
+ copy('libquux.so', '%s/libquux.so' % prefix.lib64)
+ copy('quuxifier', '%s/quuxifier' % prefix.lib64)
+ copy('%s/quux/quux.h' % self.stage.source_path,
+ '%s/quux/quux.h' % prefix.include)
+ mkdirp(prefix.bin)
+ copy('quux_version.h', '%s/quux_version.h' % prefix.bin)
+ os.symlink('%s/quuxifier' % prefix.lib64, '%s/quuxifier' % prefix.bin)
+ os.symlink('%s/garplinator' % spec['garply'].prefix.lib64,
+ '%s/garplinator' % prefix.bin)
diff --git a/var/spack/repos/builtin/packages/abinit/package.py b/var/spack/repos/builtin/packages/abinit/package.py
index 6f07ffee81..4378c28213 100644
--- a/var/spack/repos/builtin/packages/abinit/package.py
+++ b/var/spack/repos/builtin/packages/abinit/package.py
@@ -56,6 +56,9 @@ class Abinit(AutotoolsPackage):
variant('hdf5', default=False,
description='Enables HDF5+Netcdf4 with MPI. WARNING: experimental')
+ variant('wannier90', default=False,
+ description='Enables the Wannier90 library')
+
# Add dependencies
# currently one cannot forward options to virtual packages, see #1712.
# depends_on('blas', when='~openmp')
@@ -84,6 +87,8 @@ class Abinit(AutotoolsPackage):
# Cannot ask for +scalapack if it does not depend on MPI
conflicts('+scalapack', when='~mpi')
+ depends_on("wannier90+shared", when='+wannier90')
+
# Elpa is a substitute for scalapack and needs mpi
# conflicts('+elpa', when='~mpi')
# conflicts('+elpa', when='+scalapack')
@@ -95,12 +100,25 @@ class Abinit(AutotoolsPackage):
options = []
oapp = options.append
+ if '+wannier90' in spec:
+ oapp('--with-wannier90-libs=-L{0}'
+ .format(spec['wannier90'].prefix.lib + ' -lwannier -lm'))
+ oapp('--with-wannier90-incs=-I{0}'
+ .format(spec['wannier90'].prefix.modules))
+ oapp('--with-wannier90-bins={0}'
+ .format(spec['wannier90'].prefix.bin))
+ oapp('--enable-connectors')
+ oapp('--with-dft-flavor=wannier90')
+
if '+mpi' in spec:
# MPI version:
# let the configure script auto-detect MPI support from mpi_prefix
oapp('--with-mpi-prefix={0}'.format(spec['mpi'].prefix))
oapp('--enable-mpi=yes')
oapp('--enable-mpi-io=yes')
+ oapp('MPIFC={0}/mpifc'.format(spec['mpi'].prefix.bin))
+ if '~wannier90' in spec:
+ oapp('--with-dft-flavor=atompaw+libxc')
# Activate OpenMP in Abinit Fortran code.
if '+openmp' in spec:
@@ -129,7 +147,6 @@ class Abinit(AutotoolsPackage):
'--with-fft-incs=-I%s' % spec['fftw'].prefix.include,
'--with-fft-libs=-L%s %s' % (spec['fftw'].prefix.lib, fftlibs),
])
- oapp('--with-dft-flavor=atompaw+libxc')
# LibXC library
libxc = spec['libxc:fortran']
diff --git a/var/spack/repos/builtin/packages/abseil-cpp/package.py b/var/spack/repos/builtin/packages/abseil-cpp/package.py
index c40b2353bf..24ac21fd63 100644
--- a/var/spack/repos/builtin/packages/abseil-cpp/package.py
+++ b/var/spack/repos/builtin/packages/abseil-cpp/package.py
@@ -10,10 +10,11 @@ class AbseilCpp(CMakePackage):
"""Abseil Common Libraries (C++) """
homepage = "https://abseil.io/"
- url = "https://github.com/abseil/abseil-cpp/archive/20180600.tar.gz"
+ url = "https://github.com/abseil/abseil-cpp/archive/20200225.2.tar.gz"
maintainers = ['jcftang']
+ version('20200225.2', sha256='f41868f7a938605c92936230081175d1eae87f6ea2c248f41077c8f88316f111')
version('20200225.1', sha256='0db0d26f43ba6806a8a3338da3e646bb581f0ca5359b3a201d8fb8e4752fd5f8')
version('20190808', sha256='8100085dada279bf3ee00cd064d43b5f55e5d913be0dfe2906f06f8f28d5b37e')
version('20181200', sha256='e2b53bfb685f5d4130b84c4f3050c81bf48c497614dc85d91dbd3ed9129bce6d')
diff --git a/var/spack/repos/builtin/packages/acl/package.py b/var/spack/repos/builtin/packages/acl/package.py
index ea9bf4172f..17f916d297 100644
--- a/var/spack/repos/builtin/packages/acl/package.py
+++ b/var/spack/repos/builtin/packages/acl/package.py
@@ -24,6 +24,10 @@ class Acl(AutotoolsPackage):
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('attr')
+ depends_on('gettext')
+
+ def setup_build_environment(self, env):
+ env.append_flags('LDFLAGS', '-lintl')
def autoreconf(self, spec, prefix):
bash = which('bash')
diff --git a/var/spack/repos/builtin/packages/acts/package.py b/var/spack/repos/builtin/packages/acts/package.py
index 849c326b18..0945b7dcb9 100644
--- a/var/spack/repos/builtin/packages/acts/package.py
+++ b/var/spack/repos/builtin/packages/acts/package.py
@@ -6,7 +6,7 @@
from spack import *
-class Acts(CMakePackage):
+class Acts(CMakePackage, CudaPackage):
"""
A Common Tracking Software (Acts)
@@ -35,6 +35,13 @@ class Acts(CMakePackage):
# Supported Acts versions
version('master', branch='master')
+ version('0.28.0', commit='55626b7401eeb93fc562e79bcf385f0ad0ac48bf')
+ version('0.27.1', commit='8ba3010a532137bc0ab6cf83a38b483cef646a01')
+ version('0.27.0', commit='f7b1a1c27d5a95d08bb67236ad0e117fcd1c679f')
+ version('0.26.0', commit='cf542b108b31fcc349fc18fb0466f889e4e42aa6')
+ version('0.25.2', commit='76bf1f3e4be51d4d27126b473a2caa8d8a72b320')
+ version('0.25.1', commit='6e8a1ea6d2c7385a78e3e190efb2a8a0c1fa957f')
+ version('0.25.0', commit='0aca171951a214299e8ff573682b1c5ecec63d42')
version('0.24.0', commit='ef4699c8500bfea59a5fe88bed67fde2f00f0adf')
version('0.23.0', commit='dc443dd7e663bc4d7fb3c1e3f1f75aaf57ffd4e4')
version('0.22.1', commit='ca1b8b1645db6b552f44c48d2ff34c8c29618f3a')
@@ -90,10 +97,11 @@ class Acts(CMakePackage):
# Build dependencies
depends_on('boost @1.62:1.69.99 +program_options +test', when='@:0.10.3')
- depends_on('boost @1.69: +filesystem +program_options +test', when='@0.10.4:')
+ depends_on('boost @1.69: +filesystem +program_options +test', when='@0.10.4:0.25')
+ depends_on('boost @1.69: +program_options +test', when='@0.26:')
depends_on('cmake @3.11:', type='build')
- depends_on('dd4hep @1.10: +xercesc', when='+dd4hep')
- depends_on('dd4hep @1.10: +geant4 +xercesc', when='+dd4hep +geant4')
+ depends_on('dd4hep @1.10:', when='+dd4hep')
+ depends_on('dd4hep @1.10: +geant4', when='+dd4hep +geant4')
depends_on('eigen @3.2.9:', type='build')
depends_on('geant4', when='+geant4')
depends_on('hepmc3@3.1:', when='+hepmc3')
@@ -141,6 +149,7 @@ class Acts(CMakePackage):
args = [
cmake_variant("BENCHMARKS", "benchmarks"),
+ cmake_variant("CUDA_PLUGIN", "cuda"),
cmake_variant("DD4HEP_PLUGIN", "dd4hep"),
cmake_variant("DIGITIZATION_PLUGIN", "digitization"),
cmake_variant("EXAMPLES", "examples"),
@@ -157,6 +166,10 @@ class Acts(CMakePackage):
cmake_variant("TGEO_PLUGIN", "tgeo")
]
+ cuda_arch = spec.variants['cuda_arch'].value
+ if cuda_arch != 'none':
+ args.append('-DCUDA_FLAGS=-arch=sm_{0}'.format(cuda_arch[0]))
+
if 'root' in spec:
cxxstd = spec['root'].variants['cxxstd'].value
args.append("-DCMAKE_CXX_STANDARD={0}".format(cxxstd))
diff --git a/var/spack/repos/builtin/packages/aegean/package.py b/var/spack/repos/builtin/packages/aegean/package.py
index 9198280e9a..eea46740a0 100644
--- a/var/spack/repos/builtin/packages/aegean/package.py
+++ b/var/spack/repos/builtin/packages/aegean/package.py
@@ -21,4 +21,7 @@ class Aegean(MakefilePackage):
def edit(self, spec, prefix):
makefile = FileFilter('Makefile')
+ if spec.target.family == 'aarch64':
+ makefile.filter('-m64', '')
+
makefile.filter('/usr/local', prefix)
diff --git a/var/spack/repos/builtin/packages/amber/package.py b/var/spack/repos/builtin/packages/amber/package.py
index 481377047c..9b772e0a6a 100644
--- a/var/spack/repos/builtin/packages/amber/package.py
+++ b/var/spack/repos/builtin/packages/amber/package.py
@@ -9,28 +9,41 @@ import shutil
class Amber(Package, CudaPackage):
- """Amber is a suite of biomolecular simulation programs.
-
- Note: A manual download is required for Amber.
- Spack will search your current directory for the download file.
- Alternatively, add this file to a mirror so that Spack can find it.
+ """Amber is a suite of biomolecular simulation programs together
+ with Amber tools.
+
+ Note: The version number is composed of the Amber version (major)
+ and the tools version (minor). A manual download is required for
+ both Amber and Amber tools.
+ Spack will search your current directory for the download files.
+ Alternatively, add the files to a mirror so that Spack can find them.
For instructions on how to set up a mirror, see
http://spack.readthedocs.io/en/latest/mirrors.html"""
homepage = "http://ambermd.org/"
- url = "file://{0}/Amber18.tar.bz2".format(os.getcwd())
+ url = "file://{0}/Amber18.tar.bz2".format(os.getcwd())
maintainers = ['hseara']
- version('18', sha256='2060897c0b11576082d523fb63a51ba701bc7519ff7be3d299d5ec56e8e6e277')
- version('16', sha256='3b7ef281fd3c46282a51b6a6deed9ed174a1f6d468002649d84bfc8a2577ae5d')
+ def url_for_version(self, version):
+ url = "file://{0}/Amber{1}.tar.bz2".format(
+ os.getcwd(), version.up_to(1))
+ return url
+
+ version(
+ '18.20', sha256='2060897c0b11576082d523fb63a51ba701bc7519ff7be3d299d5ec56e8e6e277')
+ version(
+ '18.19', sha256='2060897c0b11576082d523fb63a51ba701bc7519ff7be3d299d5ec56e8e6e277')
+ version(
+ '16.16', sha256='3b7ef281fd3c46282a51b6a6deed9ed174a1f6d468002649d84bfc8a2577ae5d')
resources = [
# [version amber, version ambertools , sha256sum]
+ ('18', '20', 'b1e1f8f277c54e88abc9f590e788bbb2f7a49bcff5e8d8a6eacfaf332a4890f9'),
('18', '19', '0c86937904854b64e4831e047851f504ec45b42e593db4ded92c1bee5973e699'),
('16', '16', '7b876afe566e9dd7eb6a5aa952a955649044360f15c1f5d4d91ba7f41f3105fa'),
]
for ver, ambertools_ver, checksum in resources:
- resource(when='@{0}'.format(ver),
+ resource(when='@{0}.{1}'.format(ver, ambertools_ver),
name='AmberTools',
url='file://{0}/AmberTools{1}.tar.bz2'.format(os.getcwd(),
ambertools_ver),
@@ -100,10 +113,14 @@ class Amber(Package, CudaPackage):
depends_on('cuda@7.5.18', when='@:16+cuda')
# conflicts
- conflicts('+x11', when='platform=cray', msg='x11 amber applications not available for cray')
- conflicts('+openmp', when='%clang', msg='OpenMP optimizations not available for the clang compiler')
- conflicts('+openmp', when='%apple-clang', msg='OpenMP optimizations not available for the Apple clang compiler')
- conflicts('+openmp', when='%pgi', msg='OpenMP optimizations not available for the pgi compiler')
+ conflicts('+x11', when='platform=cray',
+ msg='x11 amber applications not available for cray')
+ conflicts('+openmp', when='%clang',
+ msg='OpenMP not available for the clang compiler')
+ conflicts('+openmp', when='%apple-clang',
+ msg='OpenMP not available for the Apple clang compiler')
+ conflicts('+openmp', when='%pgi',
+ msg='OpenMP not available for the pgi compiler')
def setup_build_environment(self, env):
amber_src = self.stage.source_path
diff --git a/var/spack/repos/builtin/packages/amdblis/package.py b/var/spack/repos/builtin/packages/amdblis/package.py
index 706e7f6bd2..82d1f18938 100644
--- a/var/spack/repos/builtin/packages/amdblis/package.py
+++ b/var/spack/repos/builtin/packages/amdblis/package.py
@@ -20,4 +20,5 @@ class Amdblis(BlisBase):
url = "https://github.com/amd/blis/archive/2.1.tar.gz"
git = "https://github.com/amd/blis.git"
+ version('2.2', sha256='e1feb60ac919cf6d233c43c424f6a8a11eab2c62c2c6e3f2652c15ee9063c0c9')
version('2.1', sha256='3b1d611d46f0f13b3c0917e27012e0f789b23dbefdddcf877b20327552d72fb3')
diff --git a/var/spack/repos/builtin/packages/amrex/package.py b/var/spack/repos/builtin/packages/amrex/package.py
index f6cb778f4b..1f90ed1e57 100644
--- a/var/spack/repos/builtin/packages/amrex/package.py
+++ b/var/spack/repos/builtin/packages/amrex/package.py
@@ -18,6 +18,7 @@ class Amrex(CMakePackage):
maintainers = ['mic84', 'asalmgren']
version('develop', branch='development')
+ version('20.07', sha256='c386f566f4c57ee56b5630f79ce2c6117d5a612a4aab69b7b26e48d577251165')
version('20.06', sha256='be2f2a5107111fcb8b3928b76024b370c7cb01a9e5dd79484cf7fcf59d0b4858')
version('20.05', sha256='97d753bb75e845a0a959ec1a044a48e6adb86dd008b5e29ce7a01d49ed276338')
version('20.04', sha256='a7ece54d5d89cc00fd555551902a0d4d0fb50db15d2600f441353eed0dddd83b')
@@ -57,6 +58,12 @@ class Amrex(CMakePackage):
values=('Debug', 'Release'))
variant('sundials', default=False,
description='Build AMReX with SUNDIALS support')
+ variant('hdf5', default=False,
+ description='Enable HDF5-based I/O')
+ variant('hypre', default=False,
+ description='Enable Hypre interfaces')
+ variant('petsc', default=False,
+ description='Enable PETSc interfaces')
# Build dependencies
depends_on('mpi', when='+mpi')
@@ -68,6 +75,24 @@ class Amrex(CMakePackage):
conflicts('%apple-clang')
conflicts('%clang')
+ # Check options compatibility
+ conflicts('+sundials', when='~fortran',
+ msg='AMReX SUNDIALS support needs AMReX Fortran API (+fortran)')
+ conflicts('+hdf5', when='@:20.06',
+ msg='AMReX HDF5 support needs AMReX newer than version 20.06')
+ conflicts('+hypre', when='@:20.06',
+ msg='AMReX Hypre support needs AMReX newer than version 20.06')
+ conflicts('+hypre', when='~fortran',
+ msg='AMReX Hypre support needs AMReX Fortran API (+fortran)')
+ conflicts('+hypre', when='~linear_solvers',
+ msg='AMReX Hypre support needs variant +linear_solvers')
+ conflicts('+petsc', when='@:20.06',
+ msg='AMReX PETSc support needs AMReX newer than version 20.06')
+ conflicts('+petsc', when='~fortran',
+ msg='AMReX PETSc support needs AMReX Fortran API (+fortran)')
+ conflicts('+petsc', when='~linear_solvers',
+ msg='AMReX PETSc support needs variant +linear_solvers')
+
def url_for_version(self, version):
if version >= Version('20.05'):
url = "https://github.com/AMReX-Codes/amrex/releases/download/{0}/amrex-{0}.tar.gz"
@@ -89,11 +114,16 @@ class Amrex(CMakePackage):
self.spec.variants['precision'].value.upper(),
'-DENABLE_EB:BOOL=%s' % self.cmake_is_on('+eb'),
'-DXSDK_ENABLE_Fortran:BOOL=%s' % self.cmake_is_on('+fortran'),
+ '-DENABLE_FORTRAN_INTERFACES:BOOL=%s'
+ % self.cmake_is_on('+fortran'),
'-DENABLE_LINEAR_SOLVERS:BOOL=%s' %
self.cmake_is_on('+linear_solvers'),
'-DENABLE_AMRDATA:BOOL=%s' % self.cmake_is_on('+amrdata'),
'-DENABLE_PARTICLES:BOOL=%s' % self.cmake_is_on('+particles'),
- '-DENABLE_SUNDIALS:BOOL=%s' % self.cmake_is_on('+sundials')
+ '-DENABLE_SUNDIALS:BOOL=%s' % self.cmake_is_on('+sundials'),
+ '-DENABLE_HDF5:BOOL=%s' % self.cmake_is_on('+hdf5'),
+ '-DENABLE_HYPRE:BOOL=%s' % self.cmake_is_on('+hypre'),
+ '-DENABLE_PETSC:BOOL=%s' % self.cmake_is_on('+petsc'),
]
if self.spec.satisfies('%fj'):
args.append('-DCMAKE_Fortran_MODDIR_FLAG=-M')
diff --git a/var/spack/repos/builtin/packages/apcomp/package.py b/var/spack/repos/builtin/packages/apcomp/package.py
new file mode 100644
index 0000000000..3e66038030
--- /dev/null
+++ b/var/spack/repos/builtin/packages/apcomp/package.py
@@ -0,0 +1,182 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack import *
+import os
+import socket
+import llnl.util.tty as tty
+
+
+def cmake_cache_entry(name, value, vtype=None):
+ """
+ Helper that creates CMake cache entry strings used in
+ 'host-config' files.
+ """
+ if vtype is None:
+ if value == "ON" or value == "OFF":
+ vtype = "BOOL"
+ else:
+ vtype = "PATH"
+ return 'set({0} "{1}" CACHE {2} "")\n\n'.format(name, value, vtype)
+
+
+class Apcomp(Package):
+ """A multi use-case image compositor"""
+
+ homepage = 'https://github.com/Alpine-DAV/ap_compositor'
+ git = 'https://github.com/Alpine-DAV/ap_compositor.git'
+ url = "https://github.com/Alpine-DAV/ap_compositor/releases/download/v0.0.1/apcomp-v0.0.1.tar.gz"
+
+ maintainers = ['mclarsen', 'cyrush']
+
+ version('master', branch='master', submodules='True')
+ version('0.0.1', sha256="cbf85fe58d5d5bc2f468d081386cc8b79861046b3bb7e966edfa3f8e95b998b2")
+
+ variant('openmp', default=True, description='Build with openmp support')
+ variant('mpi', default=True, description='Build with MPI support')
+ variant('shared', default=True, description='Build Shared Library')
+
+ depends_on('cmake@3.9:', type='build')
+ depends_on("mpi", when="+mpi")
+
+ root_cmakelists_dir = 'src'
+
+ def install(self, spec, prefix):
+ """
+ Build and install APComp
+ """
+ with working_dir('spack-build', create=True):
+ host_cfg_fname = self.create_host_config(spec,
+ prefix)
+ cmake_args = []
+ # if we have a static build, we need to avoid any of
+ # spack's default cmake settings related to rpaths
+ # (see: https://github.com/LLNL/spack/issues/2658)
+ if "+shared" in spec:
+ cmake_args.extend(std_cmake_args)
+ else:
+ for arg in std_cmake_args:
+ if arg.count("RPATH") == 0:
+ cmake_args.append(arg)
+ cmake_args.extend(["-C", host_cfg_fname, "../src"])
+ print("Configuring APComp...")
+ cmake(*cmake_args)
+ print("Building APComp...")
+ make()
+ print("Installing APComp...")
+ make("install")
+ # install copy of host config for provenance
+ install(host_cfg_fname, prefix)
+
+ def create_host_config(self, spec, prefix):
+ """
+ This method creates a 'host-config' file that specifies
+ all of the options used to configure and build apcomp.
+ """
+
+ #######################
+ # Compiler Info
+ #######################
+ c_compiler = env["SPACK_CC"]
+ cpp_compiler = env["SPACK_CXX"]
+
+ #######################################################################
+ # We directly fetch the names of the actual compilers to create a
+ # 'host config' file that works outside of the spack install env.
+ #######################################################################
+
+ sys_type = spec.architecture
+ # if on llnl systems, we can use the SYS_TYPE
+ if "SYS_TYPE" in env:
+ sys_type = env["SYS_TYPE"]
+
+ ##############################################
+ # Find and record what CMake is used
+ ##############################################
+
+ if "+cmake" in spec:
+ cmake_exe = spec['cmake'].command.path
+ else:
+ cmake_exe = which("cmake")
+ if cmake_exe is None:
+ msg = 'failed to find CMake (and cmake variant is off)'
+ raise RuntimeError(msg)
+ cmake_exe = cmake_exe.path
+
+ host_cfg_fname = "%s-%s-%s-apcomp.cmake" % (socket.gethostname(),
+ sys_type,
+ spec.compiler)
+
+ cfg = open(host_cfg_fname, "w")
+ cfg.write("##################################\n")
+ cfg.write("# spack generated host-config\n")
+ cfg.write("##################################\n")
+ cfg.write("# {0}-{1}\n".format(sys_type, spec.compiler))
+ cfg.write("##################################\n\n")
+
+ # Include path to cmake for reference
+ cfg.write("# cmake from spack \n")
+ cfg.write("# cmake executable path: %s\n\n" % cmake_exe)
+
+ #######################
+ # Compiler Settings
+ #######################
+ cfg.write("#######\n")
+ cfg.write("# using %s compiler spec\n" % spec.compiler)
+ cfg.write("#######\n\n")
+ cfg.write("# c compiler used by spack\n")
+ cfg.write(cmake_cache_entry("CMAKE_C_COMPILER", c_compiler))
+ cfg.write("# cpp compiler used by spack\n")
+ cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", cpp_compiler))
+
+ # shared vs static libs
+ if "+shared" in spec:
+ cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "ON"))
+ else:
+ cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "OFF"))
+
+ if "+openmp" in spec:
+ cfg.write(cmake_cache_entry("ENABLE_OPENMP", "ON"))
+ else:
+ cfg.write(cmake_cache_entry("ENABLE_OPENMP", "OFF"))
+
+ if "+mpi" in spec:
+ mpicc_path = spec['mpi'].mpicc
+ mpicxx_path = spec['mpi'].mpicxx
+ mpifc_path = spec['mpi'].mpifc
+ # if we are using compiler wrappers on cray systems
+ # use those for mpi wrappers, b/c spec['mpi'].mpicxx
+ # etc make return the spack compiler wrappers
+ # which can trip up mpi detection in CMake 3.14
+ if cpp_compiler == "CC":
+ mpicc_path = "cc"
+ mpicxx_path = "CC"
+ mpifc_path = "ftn"
+ cfg.write(cmake_cache_entry("ENABLE_MPI", "ON"))
+ cfg.write(cmake_cache_entry("MPI_C_COMPILER", mpicc_path))
+ cfg.write(cmake_cache_entry("MPI_CXX_COMPILER", mpicxx_path))
+ cfg.write(cmake_cache_entry("MPI_Fortran_COMPILER", mpifc_path))
+ mpiexe_bin = join_path(spec['mpi'].prefix.bin, 'mpiexec')
+ if os.path.isfile(mpiexe_bin):
+ # starting with cmake 3.10, FindMPI expects MPIEXEC_EXECUTABLE
+ # vs the older versions which expect MPIEXEC
+ if self.spec["cmake"].satisfies('@3.10:'):
+ cfg.write(cmake_cache_entry("MPIEXEC_EXECUTABLE",
+ mpiexe_bin))
+ else:
+ cfg.write(cmake_cache_entry("MPIEXEC",
+ mpiexe_bin))
+ else:
+ cfg.write(cmake_cache_entry("ENABLE_MPI", "OFF"))
+
+ cfg.write("##################################\n")
+ cfg.write("# end spack generated host-config\n")
+ cfg.write("##################################\n")
+ cfg.close()
+
+ host_cfg_fname = os.path.abspath(host_cfg_fname)
+ tty.info("spack generated conduit host-config file: " + host_cfg_fname)
+ return host_cfg_fname
diff --git a/var/spack/repos/builtin/packages/ascent/package.py b/var/spack/repos/builtin/packages/ascent/package.py
index 3b45c69694..158f76f298 100644
--- a/var/spack/repos/builtin/packages/ascent/package.py
+++ b/var/spack/repos/builtin/packages/ascent/package.py
@@ -35,22 +35,21 @@ class Ascent(Package, CudaPackage):
homepage = "https://github.com/Alpine-DAV/ascent"
git = "https://github.com/Alpine-DAV/ascent.git"
- url = "https://github.com/Alpine-DAV/ascent/releases/download/v0.5.0/ascent-v0.5.0-src-with-blt.tar.gz"
+ url = "https://github.com/Alpine-DAV/ascent/releases/download/v0.5.1/ascent-v0.5.1-src-with-blt.tar.gz"
maintainers = ['cyrush']
version('develop',
branch='develop',
- submodules=True)
-
- version('0.5.0', sha256='2837b7371db3ac1bcc31a479d7cf0eb62a503cacadfa4187061502b3c4a89fa0')
+ submodules=True,
+ preferred=True)
###########################################################################
# package variants
###########################################################################
variant("shared", default=True, description="Build Ascent as shared libs")
- variant("test", default=True, description='Enable Ascent unit tests')
+ variant('test', default=True, description='Enable Ascent unit tests')
variant("mpi", default=True, description="Build Ascent MPI Support")
variant("serial", default=True, description="build serial (non-mpi) libraries")
@@ -68,11 +67,15 @@ class Ascent(Package, CudaPackage):
variant("cuda", default=False, description="Build cuda support")
variant("mfem", default=False, description="Build MFEM filter support")
variant("adios", default=False, description="Build Adios filter support")
+ variant("dray", default=False, description="Build with Devil Ray support")
# variants for dev-tools (docs, etc)
- variant("doc", default=False, description="Build Conduit's documentation")
+ variant("doc", default=False, description="Build Ascent's documentation")
- ###########################################################################
+ # variant for BabelFlow runtime
+ variant("babelflow", default=False, description="Build with BabelFlow")
+
+ ##########################################################################
# package dependencies
###########################################################################
@@ -102,29 +105,54 @@ class Ascent(Package, CudaPackage):
depends_on("mpi", when="+mpi")
depends_on("py-mpi4py", when="+mpi+python+shared")
+ #######################
+ # BabelFlow
+ #######################
+ depends_on('babelflow@develop', when='+babelflow+mpi')
+ depends_on('parallelmergetree@develop', when='+babelflow+mpi')
+
#############################
# TPLs for Runtime Features
#############################
- depends_on("vtk-h@0.5.0", when="+vtkh")
- depends_on("vtk-h@0.5.0~openmp", when="+vtkh~openmp")
- depends_on("vtk-h@0.5.0+cuda+openmp", when="+vtkh+cuda+openmp")
- depends_on("vtk-h@0.5.0+cuda~openmp", when="+vtkh+cuda~openmp")
+ depends_on("vtk-h", when="+vtkh")
+ depends_on("vtk-h~openmp", when="+vtkh~openmp")
+ depends_on("vtk-h+cuda+openmp", when="+vtkh+cuda+openmp")
+ depends_on("vtk-h+cuda~openmp", when="+vtkh+cuda~openmp")
- depends_on("vtk-h@0.5.0~shared", when="~shared+vtkh")
- depends_on("vtk-h@0.5.0~shared~openmp", when="~shared+vtkh~openmp")
- depends_on("vtk-h@0.5.0~shared+cuda", when="~shared+vtkh+cuda")
- depends_on("vtk-h@0.5.0~shared+cuda~openmp", when="~shared+vtkh+cuda~openmp")
+ depends_on("vtk-h~shared", when="~shared+vtkh")
+ depends_on("vtk-h~shared~openmp", when="~shared+vtkh~openmp")
+ depends_on("vtk-h~shared+cuda", when="~shared+vtkh+cuda")
+ depends_on("vtk-h~shared+cuda~openmp", when="~shared+vtkh+cuda~openmp")
# mfem
- depends_on("mfem+threadsafe+shared+mpi+conduit", when="+shared+mfem+mpi")
- depends_on("mfem+threadsafe~shared+mpi+conduit", when="~shared+mfem+mpi")
+ depends_on("mfem~threadsafe~openmp+shared+mpi+conduit", when="+shared+mfem+mpi")
+ depends_on("mfem~threadsafe~openmp~shared+mpi+conduit", when="~shared+mfem+mpi")
- depends_on("mfem+threadsafe+shared~mpi+conduit", when="+shared+mfem~mpi")
- depends_on("mfem+threadsafe~shared~mpi+conduit", when="~shared+mfem~mpi")
+ depends_on("mfem~threadsafe~openmp+shared~mpi+conduit", when="+shared+mfem~mpi")
+ depends_on("mfem~threadsafe~openmp~shared~mpi+conduit", when="~shared+mfem~mpi")
depends_on("adios", when="+adios")
+ # devil ray variants with mpi
+ # we have to specify both because mfem makes us
+ depends_on("dray@develop+mpi~test~utils+shared+cuda", when="+dray+mpi+cuda+shared")
+ depends_on("dray@develop+mpi~test~utils+shared+openmp", when="+dray+mpi+openmp+shared")
+ depends_on("dray@develop+mpi~test~utils+shared~openmp~cuda", when="+dray+mpi~openmp~cuda+shared")
+
+ depends_on("dray@develop+mpi~test~utils~shared+cuda", when="+dray+mpi+cuda~shared")
+ depends_on("dray@develop+mpi~test~utils~shared+openmp", when="+dray+mpi+openmp~shared")
+ depends_on("dray@develop+mpi~test~utils~shared~openmp~cuda", when="+dray+mpi~openmp~cuda~shared")
+
+ # devil ray variants without mpi
+ depends_on("dray@develop~mpi~test~utils+shared+cuda", when="+dray~mpi+cuda+shared")
+ depends_on("dray@develop~mpi~test~utils+shared+openmp", when="+dray~mpi+openmp+shared")
+ depends_on("dray@develop~mpi~test~utils+shared~openmp~cuda", when="+dray~mpi~openmp~cuda+shared")
+
+ depends_on("dray@develop~mpi~test~utils~shared+cuda", when="+dray~mpi+cuda~shared")
+ depends_on("dray@develop~mpi~test~utils~shared+openmp", when="+dray~mpi+openmp~shared")
+ depends_on("dray@develop~mpi~test~utils~shared~openmp~cuda", when="+dray~mpi~openmp~cuda~shared")
+
#######################
# Documentation related
#######################
@@ -398,6 +426,16 @@ class Ascent(Package, CudaPackage):
else:
cfg.write(cmake_cache_entry("MPIEXEC",
mpiexe_bin))
+
+ ###################################
+ # BABELFLOW (also depends on mpi)
+ ###################################
+ if "+babelflow" in spec:
+ cfg.write(cmake_cache_entry("ENABLE_BABELFLOW", "ON"))
+ cfg.write(cmake_cache_entry("BabelFlow_DIR",
+ spec['babelflow'].prefix))
+ cfg.write(cmake_cache_entry("PMT_DIR",
+ spec['parallelmergetree'].prefix))
else:
cfg.write(cmake_cache_entry("ENABLE_MPI", "OFF"))
@@ -450,6 +488,15 @@ class Ascent(Package, CudaPackage):
cfg.write("# mfem not built by spack \n")
#######################
+ # Devil Ray
+ #######################
+ if "+dray" in spec:
+ cfg.write("# devil ray from spack \n")
+ cfg.write(cmake_cache_entry("DRAY_DIR", spec['dray'].prefix))
+ else:
+ cfg.write("# devil ray not built by spack \n")
+
+ #######################
# Adios
#######################
diff --git a/var/spack/repos/builtin/packages/aspect/package.py b/var/spack/repos/builtin/packages/aspect/package.py
index e3e613d406..08e2b59abd 100644
--- a/var/spack/repos/builtin/packages/aspect/package.py
+++ b/var/spack/repos/builtin/packages/aspect/package.py
@@ -7,7 +7,7 @@ from spack import *
class Aspect(CMakePackage):
- """Parallel, extendible finite element code to simulate convection in the
+ """Parallel and extensible Finite Element code to simulate convection in the
Earth's mantle and elsewhere."""
homepage = "https://aspect.geodynamics.org"
@@ -17,6 +17,7 @@ class Aspect(CMakePackage):
maintainers = ['tjhei']
version('develop', branch='master')
+ version('2.2.0', sha256='6dc31c4b991c8a96495ba0e9a3c92e57f9305ba94b8dbed3c8c5cfbab91ec5c1')
version('2.1.0', sha256='bd574d60ed9df1f4b98e68cd526a074d0527c0792763187c9851912327d861a3')
version('2.0.1', sha256='0bf5600c42afce9d39c1d285b0654ecfdeb0f30e9f3421651c95f54ca01ac165')
version('2.0.0', sha256='d485c07f54248e824bdfa35f3eec8971b65e8b7114552ffa2c771bc0dede8cc0')
@@ -26,9 +27,11 @@ class Aspect(CMakePackage):
values=('Debug', 'Release'))
variant('gui', default=False, description='Enable the deal.II parameter GUI')
variant('fpe', default=False, description='Enable floating point exception checks')
+ variant('opendap', default=False, description='Enable OPeNDAP support for remote file access')
depends_on('dealii+p4est+trilinos+mpi')
depends_on('dealii-parameter-gui', when='+gui')
+ depends_on('libdap4', when='+opendap')
def cmake_args(self):
return [
diff --git a/var/spack/repos/builtin/packages/atf/package.py b/var/spack/repos/builtin/packages/atf/package.py
new file mode 100644
index 0000000000..25fc399fbf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/atf/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Atf(AutotoolsPackage):
+ """ATF, or Automated Testing Framework, is a collection of libraries
+ to write test programs in C, C++ and POSIX shell."""
+
+ homepage = "https://github.com/jmmv/atf"
+ url = "https://github.com/jmmv/atf/archive/atf-0.21.tar.gz"
+
+ version('0.21', sha256='da6b02d6e7242f768a7aaa7b7e52378680456e4bd9a913b6636187079c98f3cd')
+ version('0.20', sha256='3677cf957d7f574835b8bdd385984ba928d5695b3ff28f958e4227f810483ab7')
+ version('0.19', sha256='f9b1d76dad7c34ae61a75638edc517fc05b10fa4c8f97b1d13d739bffee79b16')
+
+ depends_on('m4', type='build')
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
diff --git a/var/spack/repos/builtin/packages/babelflow/package.py b/var/spack/repos/builtin/packages/babelflow/package.py
new file mode 100644
index 0000000000..568f8bf7c8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/babelflow/package.py
@@ -0,0 +1,31 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Babelflow(CMakePackage):
+ """BabelFlow is an Embedded Domain Specific Language to describe
+ algorithms using a task graph abstraction which allows them to be
+ executed on top of one of several available runtime systems."""
+
+ homepage = "https://github.com/sci-visus/BabelFlow"
+ git = 'https://github.com/sci-visus/BabelFlow.git'
+
+ maintainers = ['spetruzza']
+
+ version('develop',
+ branch='ascent',
+ submodules=True)
+
+ depends_on('mpi')
+
+ variant("shared", default=True, description="Build Babelflow as shared libs")
+
+ def cmake_args(self):
+ args = [
+ '-DBUILD_SHARED_LIBS:BOOL={0}'.format(
+ 'ON' if '+shared' in spec else 'OFF')]
+ return args
diff --git a/var/spack/repos/builtin/packages/bbcp/package.py b/var/spack/repos/builtin/packages/bbcp/package.py
index 70c453825f..0ea5d88a89 100644
--- a/var/spack/repos/builtin/packages/bbcp/package.py
+++ b/var/spack/repos/builtin/packages/bbcp/package.py
@@ -9,13 +9,14 @@ from spack import *
class Bbcp(Package):
"""Securely and quickly copy data from source to target"""
- homepage = "http://www.slac.stanford.edu/~abh/bbcp/"
- git = "http://www.slac.stanford.edu/~abh/bbcp/bbcp.git"
+ homepage = "https://www.slac.stanford.edu/~abh/bbcp/"
+ git = "https://www.slac.stanford.edu/~abh/bbcp/bbcp.git"
- version('git', branch='master')
+ version('master', branch='master')
depends_on('zlib')
depends_on('openssl')
+ depends_on('libnsl')
def install(self, spec, prefix):
cd("src")
diff --git a/var/spack/repos/builtin/packages/bison/package.py b/var/spack/repos/builtin/packages/bison/package.py
index 0a51dd583e..6fe36efed9 100644
--- a/var/spack/repos/builtin/packages/bison/package.py
+++ b/var/spack/repos/builtin/packages/bison/package.py
@@ -14,8 +14,17 @@ class Bison(AutotoolsPackage, GNUMirrorPackage):
generalized LR (GLR) parser employing LALR(1) parser tables."""
homepage = "https://www.gnu.org/software/bison/"
- gnu_mirror_path = "bison/bison-3.4.2.tar.gz"
-
+ gnu_mirror_path = "bison/bison-3.6.4.tar.gz"
+
+ version('3.6.4', sha256='8183de64b5383f3634942c7b151bf2577f74273b2731574cdda8a8f3a0ab13e9')
+ version('3.6.3', sha256='4b4c4943931e811f1073006ce3d8ee022a02b11b501e9cbf4def3613b24a3e63')
+ version('3.6.2', sha256='e28ed3aad934de2d1df68be209ac0b454f7b6d3c3d6d01126e5cd2cbadba089a')
+ version('3.6.1', sha256='1120f8bfe2cc13e5e1e3f671dc41b1a535ca5a75a70d5b349c19da9d4389f74d')
+ version('3.6', sha256='f630645e330bde5847266cc5c8194f0135ced75cced150358d9abe572b95f81c')
+ version('3.5.3', sha256='34e201d963156618a0ea5bc87220f660a1e08403dd3c7c7903d4f38db3f40039')
+ version('3.5.2', sha256='b4dbb6dd080f4db7f344f16506502973ca2b15f15c7dbbd1c1c278a456d094fa')
+ version('3.5.1', sha256='4cef2322d96751be1c0d04f3e57adbb30e7fea83af9c00f98efa6e7509296f25')
+ version('3.5', sha256='0b36200b9868ee289b78cefd1199496b02b76899bbb7e84ff1c0733a991313d1')
version('3.4.2', sha256='ff3922af377d514eca302a6662d470e857bd1a591e96a2050500df5a9d59facf')
version('3.4.1', sha256='7007fc89c216fbfaff5525359b02a7e5b612694df5168c74673f67055f015095')
version('3.3.2', sha256='0fda1d034185397430eb7b0c9e140fb37e02fbfc53b90252fa5575e382b6dbd1')
diff --git a/var/spack/repos/builtin/packages/blat/package.py b/var/spack/repos/builtin/packages/blat/package.py
index 34c9f0da6b..831329eafb 100644
--- a/var/spack/repos/builtin/packages/blat/package.py
+++ b/var/spack/repos/builtin/packages/blat/package.py
@@ -21,5 +21,6 @@ class Blat(Package):
env.set('MACHTYPE', 'x86_64')
def install(self, spec, prefix):
+ filter_file('CC=.*', 'CC={0}'.format(spack_cc), 'inc/common.mk')
mkdirp(prefix.bin)
make("BINDIR=%s" % prefix.bin)
diff --git a/var/spack/repos/builtin/packages/bliss/package.py b/var/spack/repos/builtin/packages/bliss/package.py
index 7878f16cb0..b42e9cac9c 100644
--- a/var/spack/repos/builtin/packages/bliss/package.py
+++ b/var/spack/repos/builtin/packages/bliss/package.py
@@ -24,6 +24,7 @@ class Bliss(Package):
patch("Makefile.spack.patch")
def install(self, spec, prefix):
+ filter_file('__DATE__', ' __DATE__ ', 'bliss.cc')
# The Makefile isn't portable; use our own instead
makeargs = ["-f", "Makefile.spack",
"PREFIX=%s" % prefix, "GMP_PREFIX=%s" % spec["gmp"].prefix]
diff --git a/var/spack/repos/builtin/packages/blktrace/package.py b/var/spack/repos/builtin/packages/blktrace/package.py
index d088439139..bf0b1eae05 100644
--- a/var/spack/repos/builtin/packages/blktrace/package.py
+++ b/var/spack/repos/builtin/packages/blktrace/package.py
@@ -27,5 +27,12 @@ class Blktrace(MakefilePackage):
depends_on('libaio')
+ def edit(self, spec, prefix):
+ makefiles = ['Makefile', 'btreplay/Makefile',
+ 'btt/Makefile', 'iowatcher/Makefile']
+ for m in makefiles:
+ makefile = FileFilter(m)
+ makefile.filter('CC.*=.*', 'CC = {0}'.format(spack_cc))
+
def install(self, spec, prefix):
install_tree('.', prefix)
diff --git a/var/spack/repos/builtin/packages/brpc/package.py b/var/spack/repos/builtin/packages/brpc/package.py
index ba1417babf..d5481d300b 100644
--- a/var/spack/repos/builtin/packages/brpc/package.py
+++ b/var/spack/repos/builtin/packages/brpc/package.py
@@ -22,5 +22,6 @@ class Brpc(CMakePackage):
depends_on('gflags')
depends_on('protobuf')
depends_on('leveldb')
+ depends_on('openssl')
patch('narrow.patch', sha256='d7393029443853ddda6c09e3d2185ac2f60920a36a8b685eb83b6b80c1535539', when='@:0.9.7')
diff --git a/var/spack/repos/builtin/packages/bwa/bwa_for_aarch64.patch b/var/spack/repos/builtin/packages/bwa/bwa_for_aarch64.patch
new file mode 100644
index 0000000000..2bebcb5023
--- /dev/null
+++ b/var/spack/repos/builtin/packages/bwa/bwa_for_aarch64.patch
@@ -0,0 +1,13 @@
+diff --git a/ksw.c b/ksw.c
+index 9793e5e..2eecef4 100644
+--- a/ksw.c
++++ b/ksw.c
+@@ -26,7 +26,7 @@
+ #include <stdlib.h>
+ #include <stdint.h>
+ #include <assert.h>
+-#include <emmintrin.h>
++#include <SSE2NEON.h>
+ #include "ksw.h"
+
+ #ifdef USE_MALLOC_WRAPPERS
diff --git a/var/spack/repos/builtin/packages/bwa/package.py b/var/spack/repos/builtin/packages/bwa/package.py
index 8447f7848f..5f2d3ff178 100644
--- a/var/spack/repos/builtin/packages/bwa/package.py
+++ b/var/spack/repos/builtin/packages/bwa/package.py
@@ -4,6 +4,7 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
+import platform
class Bwa(Package):
@@ -19,10 +20,20 @@ class Bwa(Package):
url='https://github.com/lh3/bwa/archive/0.7.12.tar.gz')
depends_on('zlib')
+ depends_on('sse2neon', when='target=aarch64:')
+
+ patch('bwa_for_aarch64.patch', sha256='b77213b16cf8760f01e32f9a0b2cd8988cf7bac48a11267100f703cbd55c4bfd', when='target=aarch64:')
def install(self, spec, prefix):
- filter_file(r'^INCLUDES=',
- "INCLUDES=-I%s" % spec['zlib'].prefix.include, 'Makefile')
+ zlib_inc_path = spec['zlib'].prefix.include
+ if platform.machine() == 'aarch64':
+ sse2neon_inc_path = spec['sse2neon'].prefix.include
+ filter_file(r'^INCLUDES=', "INCLUDES=-I%s -I%s" %
+ (zlib_inc_path, sse2neon_inc_path),
+ 'Makefile')
+ else:
+ filter_file(r'^INCLUDES=', "INCLUDES=-I%s" %
+ zlib_inc_path, 'Makefile')
filter_file(r'^LIBS=', "LIBS=-L%s " % spec['zlib'].prefix.lib,
'Makefile')
make()
diff --git a/var/spack/repos/builtin/packages/cantera/package.py b/var/spack/repos/builtin/packages/cantera/package.py
index 4b38ccc7b3..773cc6d8cf 100644
--- a/var/spack/repos/builtin/packages/cantera/package.py
+++ b/var/spack/repos/builtin/packages/cantera/package.py
@@ -30,7 +30,7 @@ class Cantera(SConsPackage):
depends_on('googletest+gmock', when='@2.3.0:')
depends_on('eigen', when='@2.3.0:')
depends_on('boost')
- depends_on('sundials@:3.1.2', when='+sundials') # must be compiled with -fPIC
+ depends_on('sundials@:3.1.2+lapack', when='+sundials') # must be compiled with -fPIC
depends_on('blas')
depends_on('lapack')
diff --git a/var/spack/repos/builtin/packages/changa/fix_configure_path.patch b/var/spack/repos/builtin/packages/changa/fix_configure_path.patch
new file mode 100644
index 0000000000..f986927209
--- /dev/null
+++ b/var/spack/repos/builtin/packages/changa/fix_configure_path.patch
@@ -0,0 +1,13 @@
+diff --git a/configure b/configure
+index 04f1a59..602c6cc 100755
+--- a/configure
++++ b/configure
+@@ -2434,7 +2434,7 @@ if test $($CHARMC -V | awk '{print $3}') -lt $MINIMUM_CHARM_VERSION; then
+ fi
+
+ CHARM_PATH=${CHARMC%/bin/charmc}
+-CONV_CONFIG=${CHARM_PATH}/tmp/conv-config.sh
++CONV_CONFIG=${CHARM_PATH}/include/conv-config.sh
+ CHARMINC=${CHARM_PATH}/include
+
+ . ${CONV_CONFIG}
diff --git a/var/spack/repos/builtin/packages/changa/package.py b/var/spack/repos/builtin/packages/changa/package.py
new file mode 100644
index 0000000000..a6adb48c38
--- /dev/null
+++ b/var/spack/repos/builtin/packages/changa/package.py
@@ -0,0 +1,46 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Changa(AutotoolsPackage):
+ """ChaNGa (Charm N-body GrAvity solver) is a code to perform collisionless
+ N-body simulations. It can perform cosmological simulations with periodic
+ boundary conditions in comoving coordinates or simulations of isolated
+ stellar systems. It also can include hydrodynamics using the Smooth
+ Particle Hydrodynamics (SPH) technique. It uses a Barnes-Hut tree to
+ calculate gravity, with hexadecapole expansion of nodes and
+ Ewald summation for periodic forces. Timestepping is done with a leapfrog
+ integrator with individual timesteps for each particle."""
+
+ homepage = "http://faculty.washington.edu/trq/hpcc/tools/changa.html"
+ url = "https://github.com/N-BodyShop/changa/archive/v3.4.tar.gz"
+ git = "https://github.com/N-BodyShop/changa.git"
+
+ version('master', branch='master')
+ version('3.4', sha256='c2bceb6ac00025dfd704bb6960bc17c6df7c746872185845d1e75f47e6ce2a94')
+ patch("fix_configure_path.patch")
+
+ resource(
+ name="utility",
+ url="https://github.com/N-BodyShop/utility/archive/v3.4.tar.gz",
+ sha256="19f9f09023ce9d642e848a36948788fb29cd7deb8e9346cdaac4c945f1416667",
+ placement="utility"
+ )
+
+ depends_on("charmpp build-target=ChaNGa")
+
+ def configure_args(self):
+ args = []
+ args.append("STRUCT_DIR={0}/utility/structures"
+ .format(self.stage.source_path))
+ return args
+
+ def install(self, spec, prefix):
+ with working_dir(self.build_directory):
+ mkdirp(prefix.bin)
+ install('ChaNGa', prefix.bin)
+ install('charmrun', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/charmpp/package.py b/var/spack/repos/builtin/packages/charmpp/package.py
index a6c60ef11d..67fe034368 100644
--- a/var/spack/repos/builtin/packages/charmpp/package.py
+++ b/var/spack/repos/builtin/packages/charmpp/package.py
@@ -52,7 +52,7 @@ class Charmpp(Package):
"build-target",
default="LIBS",
# AMPI also builds charm++, LIBS also builds AMPI and charm++
- values=("charm++", "AMPI", "LIBS"),
+ values=("charm++", "AMPI", "LIBS", "ChaNGa"),
description="Specify the target to build"
)
@@ -217,7 +217,7 @@ class Charmpp(Package):
present on the system")
target = spec.variants["build-target"].value
- builddir = prefix + "/" + str(self.charmarch)
+ builddir = prefix
# We assume that Spack's compiler wrappers make this work. If
# not, then we need to query the compiler vendor from Spack
diff --git a/var/spack/repos/builtin/packages/cp2k/package.py b/var/spack/repos/builtin/packages/cp2k/package.py
index 18c721220a..914d43e52d 100644
--- a/var/spack/repos/builtin/packages/cp2k/package.py
+++ b/var/spack/repos/builtin/packages/cp2k/package.py
@@ -34,6 +34,8 @@ class Cp2k(MakefilePackage, CudaPackage):
variant('smm', default='libxsmm', values=('libxsmm', 'libsmm', 'blas'),
description='Library for small matrix multiplications')
variant('plumed', default=False, description='Enable PLUMED support')
+ variant('libint', default=True,
+ description='Use libint, required for HFX (and possibly others)')
variant('libxc', default=True,
description='Support additional functionals via libxc')
variant('pexsi', default=False,
@@ -82,14 +84,15 @@ class Cp2k(MakefilePackage, CudaPackage):
# use pkg-config (support added in libxsmm-1.10) to link to libxsmm
depends_on('pkgconfig', type='build', when='smm=libxsmm')
# ... and in CP2K 7.0+ for linking to libint2
- depends_on('pkgconfig', type='build', when='@7.0:')
+ depends_on('pkgconfig', type='build', when='+libint@7.0:')
+ depends_on('pkgconfig', type='build', when='+libxc@7.0:')
# libint & libxc are always statically linked
- depends_on('libint@1.1.4:1.2', when='@3.0:6.9', type='build')
+ depends_on('libint@1.1.4:1.2', when='+libint@3.0:6.9', type='build')
for lmax in HFX_LMAX_RANGE:
# libint2 can be linked dynamically again
depends_on('libint@2.6.0:+fortran tune=cp2k-lmax-{0}'.format(lmax),
- when='@7.0: lmax={0}'.format(lmax))
+ when='+libint@7.0: lmax={0}'.format(lmax))
depends_on('libxc@2.2.2:', when='+libxc@:5.5999', type='build')
depends_on('libxc@4.0.3:', when='+libxc@6.0:6.9', type='build')
@@ -218,17 +221,10 @@ class Cp2k(MakefilePackage, CudaPackage):
dflags = ['-DNDEBUG']
cppflags = [
- '-D__LIBINT',
'-D__FFTW3',
'-I{0}'.format(fftw_header_dir),
]
- if '@:6.9' in spec:
- cppflags += [
- '-D__LIBINT_MAX_AM=6',
- '-D__LIBDERIV_MAX_AM1=5',
- ]
-
if '^mpi@3:' in spec:
cppflags.append('-D__MPI_VERSION=3')
elif '^mpi@2:' in spec:
@@ -287,19 +283,6 @@ class Cp2k(MakefilePackage, CudaPackage):
if 'superlu-dist@4.3' in spec:
ldflags.insert(0, '-Wl,--allow-multiple-definition')
- if '@:6.9' in spec:
- # libint-1.x.y has to be linked statically to work around
- # inconsistencies in its Fortran interface definition
- # (short-int vs int) which otherwise causes segfaults at runtime
- # due to wrong offsets into the shared library symbols.
- libs.extend([
- os.path.join(spec['libint'].libs.directories[0], 'libderiv.a'),
- os.path.join(spec['libint'].libs.directories[0], 'libint.a'),
- ])
- else:
- fcflags += pkgconf('--cflags', 'libint2', output=str).split()
- libs += pkgconf('--libs', 'libint2', output=str).split()
-
if '+plumed' in self.spec:
dflags.extend(['-D__PLUMED2'])
cppflags.extend(['-D__PLUMED2'])
@@ -363,6 +346,30 @@ class Cp2k(MakefilePackage, CudaPackage):
)
libs.append(wannier)
+ if '+libint' in spec:
+ cppflags += ['-D__LIBINT']
+
+ if '@:6.9' in spec:
+ cppflags += [
+ '-D__LIBINT_MAX_AM=6',
+ '-D__LIBDERIV_MAX_AM1=5',
+ ]
+
+ # libint-1.x.y has to be linked statically to work around
+ # inconsistencies in its Fortran interface definition
+ # (short-int vs int) which otherwise causes segfaults at
+ # runtime due to wrong offsets into the shared library
+ # symbols.
+ libs.extend([
+ os.path.join(
+ spec['libint'].libs.directories[0], 'libderiv.a'),
+ os.path.join(
+ spec['libint'].libs.directories[0], 'libint.a'),
+ ])
+ else:
+ fcflags += pkgconf('--cflags', 'libint2', output=str).split()
+ libs += pkgconf('--libs', 'libint2', output=str).split()
+
if '+libxc' in spec:
cppflags += ['-D__LIBXC']
diff --git a/var/spack/repos/builtin/packages/cppcheck/package.py b/var/spack/repos/builtin/packages/cppcheck/package.py
index fc943e9517..7d00ca4969 100644
--- a/var/spack/repos/builtin/packages/cppcheck/package.py
+++ b/var/spack/repos/builtin/packages/cppcheck/package.py
@@ -11,6 +11,7 @@ class Cppcheck(MakefilePackage):
homepage = "http://cppcheck.sourceforge.net/"
url = "https://downloads.sourceforge.net/project/cppcheck/cppcheck/1.78/cppcheck-1.78.tar.bz2"
+ version('2.1', sha256='ab26eeef039e5b58aac01efb8cb664f2cc16bf9879c61bc93cd00c95be89a5f7')
version('1.87', sha256='e3b0a46747822471df275417d4b74b56ecac88367433e7428f39288a32c581ca')
version('1.81', sha256='bb694f37ae0b5fed48c6cdc2fb5e528daf32cefc64e16b1a520c5411323cf27e')
version('1.78', sha256='e42696f7d6321b98cb479ad9728d051effe543b26aca8102428f60b9850786b1')
diff --git a/var/spack/repos/builtin/packages/cpprestsdk/package.py b/var/spack/repos/builtin/packages/cpprestsdk/package.py
index 3bfbf52c29..70425ed7db 100644
--- a/var/spack/repos/builtin/packages/cpprestsdk/package.py
+++ b/var/spack/repos/builtin/packages/cpprestsdk/package.py
@@ -15,13 +15,22 @@ class Cpprestsdk(CMakePackage):
homepage = "https://github.com/Microsoft/cpprestsdk"
url = "https://github.com/Microsoft/cpprestsdk/archive/v2.9.1.tar.gz"
+ version('2.10.16', git='https://github.com/Microsoft/cpprestsdk', branch='v2.10.16', submodules=True)
version('2.9.1', sha256='537358760acd782f4d2ed3a85d92247b4fc423aff9c85347dc31dbb0ab9bab16')
depends_on('boost@:1.69.0')
+ depends_on('openssl')
# Ref: https://github.com/microsoft/cpprestsdk/commit/f9f518e4ad84577eb684ad8235181e4495299af4
# Ref: https://github.com/Microsoft/cpprestsdk/commit/6b2e0480018530b616f61d5cdc786c92ba148bb7
# Ref: https://github.com/microsoft/cpprestsdk/commit/70c1b14f39f5d47984fdd8a31fc357ebb5a37851
- patch('Release.patch')
+ patch('Release.patch', when='@2.9.1')
root_cmakelists_dir = 'Release'
+
+ def cmake_args(self):
+ args = [
+ '-DWERROR:BOOL=Off'
+ ]
+
+ return args
diff --git a/var/spack/repos/builtin/packages/csa-c/package.py b/var/spack/repos/builtin/packages/csa-c/package.py
new file mode 100644
index 0000000000..9bc09f49fd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/csa-c/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class CsaC(AutotoolsPackage):
+ """csa: Cubic Spline Approximation. csa is a C code for
+ cubic spline approximation of 2D scattered data. It provides
+ a C library and a command line utility csabathy."""
+
+ homepage = "https://github.com/sakov/csa-c"
+ git = "https://github.com/sakov/csa-c.git"
+
+ version('master', branch='master')
+
+ configure_directory = 'csa'
diff --git a/var/spack/repos/builtin/packages/cuda/package.py b/var/spack/repos/builtin/packages/cuda/package.py
index 5fd89cbaa1..4018e82d06 100644
--- a/var/spack/repos/builtin/packages/cuda/package.py
+++ b/var/spack/repos/builtin/packages/cuda/package.py
@@ -22,6 +22,9 @@ import llnl.util.tty as tty
# format returned by platform.system() and 'arch' by platform.machine()
_versions = {
+ '11.0.2': {
+ 'Linux-x86_64': ('48247ada0e3f106051029ae8f70fbd0c238040f58b0880e55026374a959a69c1', 'http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux.run'),
+ 'Linux-ppc64le': ('db06d0f3fbf6f7aa1f106fc921ad1c86162210a26e8cb65b171c5240a3bf75da', 'http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux_ppc64le.run')},
'10.2.89': {
'Linux-x86_64': ('560d07fdcf4a46717f2242948cd4f92c5f9b6fc7eae10dd996614da913d5ca11', 'http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run'),
'Linux-ppc64le': ('5227774fcb8b10bd2d8714f0a716a75d7a2df240a9f2a49beb76710b1c0fc619', 'http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux_ppc64le.run')},
diff --git a/var/spack/repos/builtin/packages/curl/package.py b/var/spack/repos/builtin/packages/curl/package.py
index e0e964893f..abb09d78e1 100644
--- a/var/spack/repos/builtin/packages/curl/package.py
+++ b/var/spack/repos/builtin/packages/curl/package.py
@@ -15,6 +15,7 @@ class Curl(AutotoolsPackage):
# URL must remain http:// so Spack can bootstrap curl
url = "http://curl.haxx.se/download/curl-7.60.0.tar.bz2"
+ version('7.71.0', sha256='600f00ac2481a89548a4141ddf983fd9386165e1960bac91d0a1c81dca5dd341')
version('7.68.0', sha256='207f54917dd6a2dc733065ccf18d61bb5bebeaceb5df49cd9445483e8623eeb9')
version('7.63.0', sha256='9bab7ed4ecff77020a312d84cc5fb7eb02d58419d218f267477a724a17fd8dd8')
version('7.60.0', sha256='897dfb2204bd99be328279f88f55b7c61592216b0542fcbe995c60aa92871e9b')
@@ -51,6 +52,7 @@ class Curl(AutotoolsPackage):
conflicts('platform=linux', when='+darwinssl')
depends_on('openssl', when='~darwinssl')
+ depends_on('libidn2')
depends_on('zlib')
depends_on('nghttp2', when='+nghttp2')
depends_on('libssh2', when='+libssh2')
@@ -61,6 +63,8 @@ class Curl(AutotoolsPackage):
spec = self.spec
args = ['--with-zlib={0}'.format(spec['zlib'].prefix)]
+ args.append('--with-libidn2={0}'.format(spec['libidn2'].prefix))
+
if spec.satisfies('+darwinssl'):
args.append('--with-darwinssl')
else:
diff --git a/var/spack/repos/builtin/packages/dd4hep/package.py b/var/spack/repos/builtin/packages/dd4hep/package.py
index 76de6090c5..c8a28647c0 100644
--- a/var/spack/repos/builtin/packages/dd4hep/package.py
+++ b/var/spack/repos/builtin/packages/dd4hep/package.py
@@ -22,6 +22,7 @@ class Dd4hep(CMakePackage):
maintainers = ['vvolkl', 'drbenmorgan']
version('master', branch='master')
+ version('1.13.0', sha256='0b1f9d902ebe21a9178c1e41204c066b29f68c8836fd1d03a9ce979811ddb295')
version('1.12.1', sha256='85e8c775ec03c499ce10911e228342e757c81ce9ef2a9195cb253b85175a2e93')
version('1.12.0', sha256='133a1fb8ce0466d2482f3ebb03e60b3bebb9b2d3e33d14ba15c8fbb91706b398')
version('1.11.2', sha256='96a53dd26cb8df11c6dae54669fbc9cc3c90dd47c67e07b24be9a1341c95abc4')
diff --git a/var/spack/repos/builtin/packages/dftbplus/package.py b/var/spack/repos/builtin/packages/dftbplus/package.py
new file mode 100644
index 0000000000..a8b313988e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dftbplus/package.py
@@ -0,0 +1,147 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+import os
+
+
+class Dftbplus(MakefilePackage):
+ """DFTB+ is an implementation of the
+ Density Functional based Tight Binding (DFTB) method,
+ containing many extensions to the original method."""
+
+ homepage = "https://www.dftbplus.org"
+ url = "https://github.com/dftbplus/dftbplus/archive/19.1.tar.gz"
+
+ version('19.1', sha256='4d07f5c6102f06999d8cfdb1d17f5b59f9f2b804697f14b3bc562e3ea094b8a8')
+
+ resource(name='slakos',
+ url='https://github.com/dftbplus/testparams/archive/dftbplus-18.2.tar.gz',
+ sha256='bd191b3d240c1a81a8754a365e53a78b581fc92eb074dd5beb8b56a669a8d3d1',
+ destination='external/slakos',
+ when='@18.2:')
+
+ variant('mpi', default=True,
+ description="Build an MPI-paralelised version of the code.")
+
+ variant('gpu', default=False,
+ description="Use the MAGMA library "
+ "for GPU accelerated computation")
+
+ variant('elsi', default=False,
+ description="Use the ELSI library for large scale systems. "
+ "Only has any effect if you build with '+mpi'")
+
+ variant('sockets', default=False,
+ description="Whether the socket library "
+ "(external control) should be linked")
+
+ variant('arpack', default=False,
+ description="Use ARPACK for excited state DFTB functionality")
+
+ variant('transport', default=False,
+ description="Whether transport via libNEGF should be included. "
+ "Only affects parallel build. "
+ "(serial version is built without libNEGF/transport)")
+
+ variant('dftd3', default=False,
+ description="Use DftD3 dispersion library "
+ "(if you need this dispersion model)")
+
+ depends_on('lapack')
+ depends_on('blas')
+ depends_on('scalapack', when="+mpi")
+ depends_on('mpi', when="+mpi")
+ depends_on('elsi', when="+elsi")
+ depends_on('magma', when="+gpu")
+ depends_on('arpack-ng', when="+arpack")
+ depends_on('dftd3-lib@0.9.2', when="+dftd3")
+
+ def edit(self, spec, prefix):
+ """
+ First, change the ROOT variable, because, for some reason,
+ the Makefile and the spack install script run in different directories
+
+ Then, if using GCC, rename the file 'sys/make.x86_64-linux-gnu'
+ to make.arch.
+
+ After that, edit the make.arch to point to the dependencies
+
+ And the last thing we do here is to set the installdir
+ """
+ dircwd = os.getcwd()
+ makefile = FileFilter("makefile")
+ makefile.filter("ROOT := .*", "ROOT := {0}".format(dircwd))
+
+ archmake = join_path(".", "sys", "make.x86_64-linux-gnu")
+ copy(archmake, join_path(dircwd, "make.arch"))
+
+ march = FileFilter(join_path(dircwd, 'make.arch'))
+
+ mconfig = FileFilter(join_path(dircwd, 'make.config'))
+
+ mconfig.filter('INSTALLDIR := .*', 'INSTALLDIR := {0}'.format(prefix))
+
+ if '+gpu' in self.spec:
+ march.filter('MAGMADIR = .*',
+ 'MAGMADIR = {0}'.format(spec['magma'].prefix))
+
+ mconfig.filter('WITH_GPU := .*', 'WITH_GPU := 1')
+
+ if '+mpi' in self.spec:
+ march.filter('SCALAPACKDIR = .*',
+ 'SCALAPACKDIR = {0}'.format(spec['scalapack'].prefix))
+
+ march.filter('LIB_LAPACK = -l.*',
+ 'LIB_LAPACK = {0}'.format(spec['blas'].libs.ld_flags))
+
+ march.filter('mpifort', '{0}'.format(spec['mpi'].mpifc))
+
+ mconfig.filter('WITH_MPI := .*', 'WITH_MPI := 1')
+
+ if '+elsi' in self.spec:
+ mconfig.filter('WITH_ELSI := .*', 'WITH_ELSI := 1')
+
+ has_pexsi = '+enable_pexsi' in spec['elsi']
+
+ mconfig.filter('WITH_PEXSI := .*', 'WITH_PEXSI := {0}'.format(
+ '1' if has_pexsi is True else '0'
+ ))
+
+ march.filter("ELSIINCDIR .*", "ELSIINCDIR = {0}".format(
+ spec['elsi'].prefix.include
+ ))
+
+ march.filter("ELSIDIR .*",
+ "ELSIDIR = {0}".format(spec['elsi'].prefix))
+
+ else:
+ march.filter('LIB_LAPACK += -l.*', 'LIB_LAPACK += {0}'.format(
+ spec['blas'].libs.ld_flags))
+
+ if '+sockets' in self.spec:
+ mconfig.filter('WITH_SOCKETS := .*', 'WITH_SOCKETS := 1')
+
+ if '+transport' in self.spec:
+ mconfig.filter('WITH_TRANSPORT := .*', 'WITH_TRANSPORT := 1')
+
+ if '+arpack' in self.spec:
+ march.filter('ARPACK_LIBS = .*', 'ARPACK_LIBS = {0}'.format(
+ spec['arpack-ng'].libs.ld_flags
+ ))
+
+ mconfig.filter('WITH_ARPACK := .*', 'WITH_ARPACK := 1')
+
+ if '+dftd3' in self.spec:
+ march.filter('COMPILE_DFTD3 = .*', 'COMPILE_DFTD3 = 0')
+ march.filter('DFTD3_INCS = .*', 'DFTD3_INCS = -I{0}'.format(
+ spec['dftd3-lib'].prefix.include
+ ))
+
+ march.filter('DFTD3_LIBS = .*',
+ 'DFTD3_LIBS = -L{0} -ldftd3'.format(
+ spec['dftd3-lib'].prefix))
+
+ mconfig.filter('WITH_DFTD3 := .*', 'WITH_DFTD3 := 1')
diff --git a/var/spack/repos/builtin/packages/dftd3-lib/package.py b/var/spack/repos/builtin/packages/dftd3-lib/package.py
new file mode 100644
index 0000000000..793a312342
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dftd3-lib/package.py
@@ -0,0 +1,38 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Dftd3Lib(MakefilePackage):
+ """A dispersion correction for density functionals,
+ Hartree-Fock and semi-empirical quantum chemical methods"""
+
+ homepage = "https://www.chemie.uni-bonn.de/pctc/mulliken-center/software/dft-d3/dft-d3"
+ url = "https://github.com/dftbplus/dftd3-lib/archive/0.9.2.tar.gz"
+
+ version('0.9.2', sha256='4178f3cf2f3e7e982a7084ec66bac92b4fdf164537d9fc0ada840a11b784f0e0')
+
+ # This fixes a concurrency bug, where make would try to start compiling
+ # the dftd3 target before the lib target ended.
+ # Since the library is small, disabling causes not much harm
+ parallel = False
+
+ def edit(self, spec, prefix):
+ makefile = FileFilter('make.arch')
+ makefile.filter("FC = gfortran", "")
+ makefile.filter("LN = gfortran", "LN = $(FC)")
+
+ def install(self, spec, prefix):
+ mkdir(prefix.lib)
+ mkdir(prefix.bin)
+ mkdir(prefix.include)
+ install("lib/libdftd3.a", prefix.lib)
+ install("prg/dftd3", prefix.bin)
+ install("lib/dftd3_api.mod", prefix.include)
+ install("lib/dftd3_common.mod", prefix.include)
+ install("lib/dftd3_core.mod", prefix.include)
+ install("lib/dftd3_pars.mod", prefix.include)
+ install("lib/dftd3_sizes.mod", prefix.include)
diff --git a/var/spack/repos/builtin/packages/dray/package.py b/var/spack/repos/builtin/packages/dray/package.py
new file mode 100644
index 0000000000..9dbf66afd9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dray/package.py
@@ -0,0 +1,318 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+import os
+import socket
+
+import llnl.util.tty as tty
+
+
+def cmake_cache_entry(name, value, vtype=None):
+ """
+ Helper that creates CMake cache entry strings used in
+ 'host-config' files.
+ """
+ if vtype is None:
+ if value == "ON" or value == "OFF":
+ vtype = "BOOL"
+ else:
+ vtype = "PATH"
+ return 'set({0} "{1}" CACHE {2} "")\n\n'.format(name, value, vtype)
+
+
+class Dray(Package, CudaPackage):
+ """High-Order Mesh Ray Tracer."""
+
+ homepage = "https://github.com/LLNL/devil_ray"
+ git = "https://github.com/LLNL/devil_ray.git"
+ url = "https://github.com/LLNL/devil_ray/releases/download/v0.1.2/dray-v0.1.2.tar.gz"
+
+ maintainers = ['mclarsen', 'cyrush']
+
+ version('develop', branch='develop', submodules='True')
+ version('0.1.2', sha256='46937f20124b28dc78a634e8e063a3e7a3bbfd9f424ce2680b08417010c376da')
+ version('0.1.1', sha256='e5daa49ee3367c087f5028dc5a08655298beb318014c6f3f65ef4a08fcbe346c')
+ version('0.1.0', sha256='8b341138e1069361351e0a94478608c5af479cca76e2f97d556229aed45c0169')
+
+ variant('cuda', default=False, description='Build with CUDA backend')
+ variant('openmp', default=True, description='Build OpenMP backend')
+ variant("shared", default=True, description="Build as shared libs")
+ variant("test", default=True, description='Build unit tests')
+ variant("utils", default=True, description='Build utilities')
+ variant("logging", default=False, description='Enable logging')
+ variant("stats", default=False, description='Enable stats')
+ variant("mpi", default=True, description='Enable MPI compiler')
+
+ depends_on('cuda', when='+cuda')
+ depends_on('mpi', when='+mpi')
+
+ depends_on('cmake@3.9:', type='build')
+ depends_on('cmake@3.14:', when='+cuda', type='build')
+
+ depends_on("conduit~shared", when="~shared")
+ depends_on("conduit+shared", when="+shared")
+
+ depends_on("apcomp~shared+openmp+mpi", when="~shared+openmp+mpi")
+ depends_on("apcomp+shared+openmp+mpi", when="+shared+openmp+mpi")
+ depends_on("apcomp~shared~openmp+mpi", when="~shared~openmp+mpi")
+ depends_on("apcomp+shared~openmp+mpi", when="+shared~openmp+mpi")
+ depends_on("apcomp~shared+openmp~mpi", when="~shared+openmp~mpi")
+ depends_on("apcomp+shared+openmp~mpi", when="+shared+openmp~mpi")
+ depends_on("apcomp~shared~openmp~mpi", when="~shared~openmp~mpi")
+ depends_on("apcomp+shared~openmp~mpi", when="+shared~openmp~mpi")
+
+ depends_on("raja@0.9.0+cuda~openmp+shared", when="+cuda~openmp+shared")
+ depends_on("raja@0.9.0+cuda+openmp+shared", when="+cuda+openmp+shared")
+ depends_on("raja@0.9.0+cuda~openmp~shared", when="+cuda~openmp~shared")
+ depends_on("raja@0.9.0+cuda+openmp~shared", when="+cuda+openmp~shared")
+
+ depends_on("raja@0.9.0~cuda~openmp+shared", when="~cuda~openmp+shared")
+ depends_on("raja@0.9.0~cuda+openmp+shared", when="~cuda+openmp+shared")
+ depends_on("raja@0.9.0~cuda~openmp~shared", when="~cuda~openmp~shared")
+ depends_on("raja@0.9.0~cuda+openmp~shared", when="~cuda+openmp~shared")
+
+ depends_on("umpire@1.0.0+cuda+shared", when="+cuda+shared")
+ depends_on("umpire@1.0.0+cuda~shared", when="+cuda~shared")
+ depends_on("umpire@1.0.0~cuda+shared", when="~cuda+shared")
+ depends_on("umpire@1.0.0~cuda~shared", when="~cuda~shared")
+
+ depends_on("mfem+shared+conduit~threadsafe", when="+shared")
+ depends_on("mfem~shared+conduit~threadsafe", when="~shared")
+
+ def setup_build_environment(self, env):
+ env.set('CTEST_OUTPUT_ON_FAILURE', '1')
+
+ def install(self, spec, prefix):
+ """
+ Build and install Devil Ray.
+ """
+ with working_dir('spack-build', create=True):
+ host_cfg_fname = self.create_host_config(spec,
+ prefix)
+ cmake_args = []
+ # if we have a static build, we need to avoid any of
+ # spack's default cmake settings related to rpaths
+ # (see: https://github.com/LLNL/spack/issues/2658)
+ if "+shared" in spec:
+ cmake_args.extend(std_cmake_args)
+ else:
+ for arg in std_cmake_args:
+ if arg.count("RPATH") == 0:
+ cmake_args.append(arg)
+ cmake_args.extend(["-C", host_cfg_fname, "../src"])
+ print("Configuring Devil Ray...")
+ cmake(*cmake_args)
+ print("Building Devil Ray...")
+ make()
+ # run unit tests if requested
+ if "+test" in spec and self.run_tests:
+ print("Running Devil Ray Unit Tests...")
+ make("test")
+ print("Installing Devil Ray...")
+ make("install")
+ # install copy of host config for provenance
+ install(host_cfg_fname, prefix)
+
+ def create_host_config(self, spec, prefix):
+ """
+ This method creates a 'host-config' file that specifies
+ all of the options used to configure and build ascent.
+
+ For more details about 'host-config' files see:
+ http://ascent.readthedocs.io/en/latest/BuildingAscent.html
+ """
+
+ #######################
+ # Compiler Info
+ #######################
+ c_compiler = env["SPACK_CC"]
+ cpp_compiler = env["SPACK_CXX"]
+
+ #######################################################################
+ # By directly fetching the names of the actual compilers we appear
+ # to doing something evil here, but this is necessary to create a
+ # 'host config' file that works outside of the spack install env.
+ #######################################################################
+
+ sys_type = spec.architecture
+ # if on llnl systems, we can use the SYS_TYPE
+ if "SYS_TYPE" in env:
+ sys_type = env["SYS_TYPE"]
+
+ ##############################################
+ # Find and record what CMake is used
+ ##############################################
+
+ if "+cmake" in spec:
+ cmake_exe = spec['cmake'].command.path
+ else:
+ cmake_exe = which("cmake")
+ if cmake_exe is None:
+ msg = 'failed to find CMake (and cmake variant is off)'
+ raise RuntimeError(msg)
+ cmake_exe = cmake_exe.path
+
+ host_cfg_fname = "%s-%s-%s-devil_ray.cmake" % (socket.gethostname(),
+ sys_type,
+ spec.compiler)
+
+ cfg = open(host_cfg_fname, "w")
+ cfg.write("##################################\n")
+ cfg.write("# spack generated host-config\n")
+ cfg.write("##################################\n")
+ cfg.write("# {0}-{1}\n".format(sys_type, spec.compiler))
+ cfg.write("##################################\n\n")
+
+ # Include path to cmake for reference
+ cfg.write("# cmake from spack \n")
+ cfg.write("# cmake executable path: %s\n\n" % cmake_exe)
+
+ #######################
+ # Compiler Settings
+ #######################
+ cfg.write("#######\n")
+ cfg.write("# using %s compiler spec\n" % spec.compiler)
+ cfg.write("#######\n\n")
+
+ if "+mpi" in spec:
+ cfg.write(cmake_cache_entry("ENABLE_MPI", "ON"))
+ mpicc_path = spec['mpi'].mpicc
+ mpicxx_path = spec['mpi'].mpicxx
+ # if we are using compiler wrappers on cray systems
+ # use those for mpi wrappers, b/c spec['mpi'].mpicxx
+ # etc make return the spack compiler wrappers
+ # which can trip up mpi detection in CMake 3.14
+ if cpp_compiler == "CC":
+ mpicc_path = "cc"
+ mpicxx_path = "CC"
+
+ cfg.write(cmake_cache_entry("CMAKE_C_COMPILER", mpicc_path))
+ cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", mpicxx_path))
+ else:
+ cfg.write(cmake_cache_entry("ENABLE_MPI", "OFF"))
+ cfg.write("# c compiler used by spack\n")
+ cfg.write(cmake_cache_entry("CMAKE_C_COMPILER", c_compiler))
+ cfg.write("# cpp compiler used by spack\n")
+ cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", cpp_compiler))
+
+ #######################
+ # Backends
+ #######################
+
+ cfg.write("# CUDA Support\n")
+
+ if "+cuda" in spec:
+ cfg.write(cmake_cache_entry("ENABLE_CUDA", "ON"))
+ if 'cuda_arch' in spec.variants:
+ cuda_value = spec.variants['cuda_arch'].value
+ cuda_arch = cuda_value[0]
+ cfg.write(cmake_cache_entry('CUDA_ARCH',
+ 'sm_{0}'.format(cuda_arch)))
+ else:
+ cfg.write(cmake_cache_entry("ENABLE_CUDA", "OFF"))
+
+ if "+openmp" in spec:
+ cfg.write(cmake_cache_entry("ENABLE_OPENMP", "ON"))
+ else:
+ cfg.write(cmake_cache_entry("ENABLE_OPENMP", "OFF"))
+
+ # shared vs static libs
+ if "+shared" in spec:
+ cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "ON"))
+ else:
+ cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "OFF"))
+
+ #######################
+ # Unit Tests
+ #######################
+ if "+test" in spec:
+ cfg.write(cmake_cache_entry("DRAY_ENABLE_TESTS", "ON"))
+ else:
+ cfg.write(cmake_cache_entry("DRAY_ENABLE_TESTS", "OFF"))
+
+ #######################
+ # Utilities
+ #######################
+ if "+utils" in spec:
+ cfg.write(cmake_cache_entry("DRAY_ENABLE_UTILS", "ON"))
+ else:
+ cfg.write(cmake_cache_entry("DRAY_ENABLE_UTILS", "OFF"))
+
+ #######################
+ # Logging
+ #######################
+ if "+logging" in spec:
+ cfg.write(cmake_cache_entry("ENABLE_LOGGING", "ON"))
+ else:
+ cfg.write(cmake_cache_entry("ENABLE_LOGGING", "OFF"))
+
+ #######################
+ # Logging
+ #######################
+ if "+stats" in spec:
+ cfg.write(cmake_cache_entry("ENABLE_STATS", "ON"))
+ else:
+ cfg.write(cmake_cache_entry("ENABLE_STATS", "OFF"))
+
+ #######################################################################
+ # Core Dependencies
+ #######################################################################
+
+ cfg.write("# conduit from spack \n")
+ cfg.write(cmake_cache_entry("CONDUIT_DIR", spec['conduit'].prefix))
+
+ cfg.write("# mfem from spack \n")
+ cfg.write(cmake_cache_entry("MFEM_DIR", spec['mfem'].prefix))
+
+ cfg.write("# raja from spack \n")
+ cfg.write(cmake_cache_entry("RAJA_DIR", spec['raja'].prefix))
+
+ cfg.write("# umpire from spack \n")
+ cfg.write(cmake_cache_entry("UMPIRE_DIR", spec['umpire'].prefix))
+
+ cfg.write("# apcompositor from spack \n")
+ cfg.write(cmake_cache_entry("APCOMP_DIR", spec['apcomp'].prefix))
+
+ cfg.write("##################################\n")
+ cfg.write("# end spack generated host-config\n")
+ cfg.write("##################################\n")
+ cfg.close()
+
+ host_cfg_fname = os.path.abspath(host_cfg_fname)
+ tty.info("spack generated conduit host-config file: " + host_cfg_fname)
+ return host_cfg_fname
+
+ def cmake_args(self):
+ spec = self.spec
+
+ options = []
+
+ if '+openmp' in spec:
+ options.extend([
+ '-DENABLE_OPENMP=On'])
+
+ if '+cuda' in spec:
+ options.extend([
+ '-DENABLE_CUDA=On',
+ '-DCUDA_TOOLKIT_ROOT_DIR=%s' % (spec['cuda'].prefix)])
+ if 'cuda_arch' in spec.variants:
+ cuda_value = spec.variants['cuda_arch'].value
+ cuda_arch = cuda_value[0]
+ options.append('-DCUDA_ARCH=sm_{0}'.format(cuda_arch))
+ else:
+ options.extend(['-DENABLE_CUDA=OFF'])
+
+ options.extend(['-DRAJA_DIR=%s' % (spec['raja'].prefix)])
+ options.extend(['-DMFEM_DIR=%s' % (spec['mfem'].prefix)])
+ options.extend(['-DUMPIRE_DIR=%s' % (spec['umpire'].prefix)])
+ options.extend(['-DCONDUIT_DIR=%s' % (spec['conduit'].prefix)])
+ options.extend(['-DDRAY_ENABLE_TESTS=OFF'])
+ options.extend(['-DENABLE_LOGGING=OFF'])
+ options.extend(['-DENABLE_STATS=OFF'])
+ options.extend(['../src'])
+
+ return options
diff --git a/var/spack/repos/builtin/packages/elpa/package.py b/var/spack/repos/builtin/packages/elpa/package.py
index 3aad567fe5..58c088393f 100644
--- a/var/spack/repos/builtin/packages/elpa/package.py
+++ b/var/spack/repos/builtin/packages/elpa/package.py
@@ -14,9 +14,10 @@ class Elpa(AutotoolsPackage):
homepage = 'http://elpa.mpcdf.mpg.de/'
url = 'http://elpa.mpcdf.mpg.de/elpa-2015.11.001.tar.gz'
+ version('2020.05.001', sha256='66ff1cf332ce1c82075dc7b5587ae72511d2bcb3a45322c94af6b01996439ce5')
+ version('2019.11.001', sha256='10374a8f042e23c7e1094230f7e2993b6f3580908a213dbdf089792d05aff357')
version('2019.05.002', sha256='d2eab5e5d74f53601220b00d18185670da8c00c13e1c1559ecfb0cd7cb2c4e8d')
- version('2018.11.001',
- sha256='cc27fe8ba46ce6e6faa8aea02c8c9983052f8e73a00cfea38abf7613cb1e1b16')
+ version('2018.11.001', sha256='cc27fe8ba46ce6e6faa8aea02c8c9983052f8e73a00cfea38abf7613cb1e1b16')
version('2018.05.001.rc1', sha256='598c01da20600a4514ea4d503b93e977ac0367e797cab7a7c1b0e0e3e86490db')
version('2017.11.001', sha256='59f99c3abe2190fac0db8a301d0b9581ee134f438669dbc92551a54f6f861820')
version('2017.05.003', sha256='bccd49ce35a323bd734b17642aed8f2588fea4cc78ee8133d88554753bc3bf1b')
diff --git a/var/spack/repos/builtin/packages/energyplus/package.py b/var/spack/repos/builtin/packages/energyplus/package.py
index ca534999f9..d781f24452 100644
--- a/var/spack/repos/builtin/packages/energyplus/package.py
+++ b/var/spack/repos/builtin/packages/energyplus/package.py
@@ -17,6 +17,8 @@ class Energyplus(Package):
homepage = "https://energyplus.net"
# versions require explicit URLs as they contain hashes
+ version('9.3.0', sha256='c939dc4f867224e110485a8e0712ce4cfb1e06f8462bc630b54f83a18c93876c',
+ url="https://github.com/NREL/EnergyPlus/releases/download/v9.3.0/EnergyPlus-9.3.0-baff08990c-Linux-x86_64.tar.gz")
version('8.9.0', sha256='13a5192b25815eb37b3ffd019ce3b99fd9f854935f8cc4362814f41c56e9ca98',
url="https://github.com/NREL/EnergyPlus/releases/download/v8.9.0-WithIDDFixes/EnergyPlus-8.9.0-eba93e8e1b-Linux-x86_64.tar.gz")
@@ -25,13 +27,14 @@ class Energyplus(Package):
# and then symlink the appropriate targets
# there is only one folder with a semi-predictable name so we glob it
- install_tree(glob.glob('EnergyPlus*')[0],
- join_path(prefix.lib, 'energyplus'))
+ source_dir = '.'
+
+ if spec.satisfies('@:8.9.9'):
+ source_dir = glob.glob('EnergyPlus*')[0]
+
+ install_tree(source_dir, prefix.lib.enregyplus)
mkdirp(prefix.bin)
- os.symlink(join_path(prefix.lib, 'energyplus/energyplus'),
- join_path(prefix.bin, 'energyplus'))
- os.symlink(join_path(prefix.lib, 'energyplus/EPMacro'),
- join_path(prefix.bin, 'EPMacro'))
- os.symlink(join_path(prefix.lib, 'energyplus/ExpandObjects'),
- join_path(prefix.bin, 'ExpandObjects'))
+ for b in ['energyplus', 'EPMacro', 'ExpandObjects']:
+ os.symlink(join_path(prefix.lib.energyplus, b),
+ join_path(prefix.bin, b))
diff --git a/var/spack/repos/builtin/packages/esmf/package.py b/var/spack/repos/builtin/packages/esmf/package.py
index b533851228..3055b4446e 100644
--- a/var/spack/repos/builtin/packages/esmf/package.py
+++ b/var/spack/repos/builtin/packages/esmf/package.py
@@ -169,7 +169,7 @@ class Esmf(MakefilePackage):
os.environ['ESMF_CXXLINKLIBS'] = '-lmpifort'
elif '^openmpi' in spec:
os.environ['ESMF_COMM'] = 'openmpi'
- elif '^intel-parallel-studio+mpi' in spec:
+ elif '^intel-parallel-studio+mpi' in spec or '^intel-mpi' in spec:
os.environ['ESMF_COMM'] = 'intelmpi'
else:
# Force use of the single-processor MPI-bypass library.
diff --git a/var/spack/repos/builtin/packages/examl/package.py b/var/spack/repos/builtin/packages/examl/package.py
new file mode 100644
index 0000000000..d5f115b9be
--- /dev/null
+++ b/var/spack/repos/builtin/packages/examl/package.py
@@ -0,0 +1,50 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Examl(MakefilePackage):
+ """
+ Exascale Maximum Likelihood (ExaML) code for phylogenetic inference
+ using MPI. This code implements the popular RAxML search algorithm
+ for maximum likelihood based inference of phylogenetic trees.
+ """
+
+ homepage = "https://github.com/stamatak/ExaML"
+ url = "https://github.com/stamatak/ExaML/archive/v3.0.22.tar.gz"
+
+ maintainers = ['robqiao']
+
+ version('3.0.22', sha256='802e673b0c2ea83fdbe6b060048d83f22b6978933a04be64fb9b4334fe318ca3')
+ version('3.0.21', sha256='6c7e6c5d7bf4ab5cfbac5cc0d577885272a803c142e06b531693a6a589102e2e')
+ version('3.0.20', sha256='023681248bbc7f19821b509948d79301e46bbf275aa90bf12e9f4879639a023b')
+ version('3.0.19', sha256='3814230bf7578b8396731dc87ce665d0b1a671d8effd571f924c5b7936ae1c9e')
+ version('3.0.18', sha256='1bacb5124d943d921e7beae52b7062626d0ce3cf2f83e3aa3acf6ea26cf9cd87')
+ version('3.0.17', sha256='90a859e0b8fff697722352253e748f03c57b78ec5fbc1ae72f7e702d299dac67')
+ version('3.0.16', sha256='abc922994332d40892e30f077e4644db08cd59662da8e2a9197d1bd8bcb9aa5f')
+ version('3.0.15', sha256='da5e66a63d6fa34b640535c359d8daf67f23bd2fcc958ac604551082567906b0')
+ version('3.0.14', sha256='698b538996946ae23a2d6fa1e230c210832e59080da33679ff7d6b342a9e6180')
+ version('3.0.13', sha256='893aecb5545798235a17975aa07268693d3526d0aee0ed59a2d6e791248791ed')
+
+ variant('mpi', default=True, description='Enable MPI parallel support')
+
+ depends_on('mpi', when='+mpi')
+
+ def build(self, spec, prefix):
+ #####################
+ # Build Directories #
+ #####################
+ with working_dir('examl'):
+ make('-f', 'Makefile.SSE3.gcc')
+ with working_dir('parser'):
+ make('-f', 'Makefile.SSE3.gcc')
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install("examl/examl", prefix.bin)
+ install("parser/parse-examl", prefix.bin)
+ install_tree("manual", prefix.manual)
+ install_tree("testData", prefix.testData)
diff --git a/var/spack/repos/builtin/packages/flatbuffers/package.py b/var/spack/repos/builtin/packages/flatbuffers/package.py
index 72ad2e599c..c0a0ef4ee2 100644
--- a/var/spack/repos/builtin/packages/flatbuffers/package.py
+++ b/var/spack/repos/builtin/packages/flatbuffers/package.py
@@ -13,6 +13,7 @@ class Flatbuffers(CMakePackage):
homepage = "http://google.github.io/flatbuffers/"
url = "https://github.com/google/flatbuffers/archive/v1.9.0.tar.gz"
+ version('1.12.0', sha256='62f2223fb9181d1d6338451375628975775f7522185266cd5296571ac152bc45')
version('1.11.0', sha256='3f4a286642094f45b1b77228656fbd7ea123964f19502f9ecfd29933fd23a50b')
version('1.10.0', sha256='3714e3db8c51e43028e10ad7adffb9a36fc4aa5b1a363c2d0c4303dd1be59a7c')
version('1.9.0', sha256='5ca5491e4260cacae30f1a5786d109230db3f3a6e5a0eb45d0d0608293d247e3')
diff --git a/var/spack/repos/builtin/packages/flatcc/package.py b/var/spack/repos/builtin/packages/flatcc/package.py
index ce3fc222fc..a9d3617c9b 100644
--- a/var/spack/repos/builtin/packages/flatcc/package.py
+++ b/var/spack/repos/builtin/packages/flatcc/package.py
@@ -37,6 +37,9 @@ class Flatcc(CMakePackage):
spec = self.spec
args = []
+ # allow flatcc to be built with more compilers
+ args.append('-DFLATCC_ALLOW_WERROR=OFF')
+
if '+shared' in spec:
args.append('-DBUILD_SHARED_LIBS=ON')
args.append('-DFLATCC_INSTALL=ON')
diff --git a/var/spack/repos/builtin/packages/frontistr/package.py b/var/spack/repos/builtin/packages/frontistr/package.py
index ebdfa0a3e3..e59da46324 100644
--- a/var/spack/repos/builtin/packages/frontistr/package.py
+++ b/var/spack/repos/builtin/packages/frontistr/package.py
@@ -15,6 +15,7 @@ class Frontistr(CMakePackage):
git = "https://gitlab.com/FrontISTR-Commons/FrontISTR.git"
maintainers = ['hiroshi.okuda', 'kgoto', 'morita', 'inagaki', 'michioga']
+ version('5.1', tag='v5.1')
version('5.0', tag='v5.0')
version('master', tag='master')
diff --git a/var/spack/repos/builtin/packages/gdal/package.py b/var/spack/repos/builtin/packages/gdal/package.py
index b3678bed32..e5a727b66d 100644
--- a/var/spack/repos/builtin/packages/gdal/package.py
+++ b/var/spack/repos/builtin/packages/gdal/package.py
@@ -18,7 +18,7 @@ class Gdal(AutotoolsPackage):
"""
homepage = "https://www.gdal.org/"
- url = "https://download.osgeo.org/gdal/3.1.1/gdal-3.1.1.tar.xz"
+ url = "https://download.osgeo.org/gdal/3.1.2/gdal-3.1.2.tar.xz"
list_url = "https://download.osgeo.org/gdal/"
list_depth = 1
@@ -29,6 +29,7 @@ class Gdal(AutotoolsPackage):
'osgeo.gdal_array', 'osgeo.gdalconst'
]
+ version('3.1.2', sha256='767c8d0dfa20ba3283de05d23a1d1c03a7e805d0ce2936beaff0bb7d11450641')
version('3.1.1', sha256='97154a606339a6c1d87c80fb354d7456fe49828b2ef9a3bc9ed91771a03d2a04')
version('3.1.0', sha256='e754a22242ccbec731aacdb2333b567d4c95b9b02d3ba1ea12f70508d244fcda')
version('3.0.4', sha256='5569a4daa1abcbba47a9d535172fc335194d9214fdb96cd0f139bb57329ae277')
diff --git a/var/spack/repos/builtin/packages/gdb/package.py b/var/spack/repos/builtin/packages/gdb/package.py
index e6aef7d671..bef6540a30 100644
--- a/var/spack/repos/builtin/packages/gdb/package.py
+++ b/var/spack/repos/builtin/packages/gdb/package.py
@@ -15,6 +15,7 @@ class Gdb(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/gdb"
gnu_mirror_path = "gdb/gdb-7.10.tar.gz"
+ version('9.2', sha256='38ef247d41ba7cc3f6f93a612a78bab9484de9accecbe3b0150a3c0391a3faf0')
version('9.1', sha256='fcda54d4f35bc53fb24b50009a71ca98410d71ff2620942e3c829a7f5d614252')
version('8.3.1', sha256='26ce655216cd03f4611518a7a1c31d80ec8e884c16715e9ba8b436822e51434b')
version('8.3', sha256='b2266ec592440d0eec18ee1790f8558b3b8a2845b76cc83a872e39b501ce8a28')
diff --git a/var/spack/repos/builtin/packages/gdk-pixbuf/package.py b/var/spack/repos/builtin/packages/gdk-pixbuf/package.py
index 04fd4d6030..585bd2de81 100644
--- a/var/spack/repos/builtin/packages/gdk-pixbuf/package.py
+++ b/var/spack/repos/builtin/packages/gdk-pixbuf/package.py
@@ -14,13 +14,17 @@ class GdkPixbuf(Package):
preparation for the change to GTK+ 3."""
homepage = "https://developer.gnome.org/gdk-pixbuf/"
- url = "https://ftp.acc.umu.se/pub/gnome/sources/gdk-pixbuf/2.38/gdk-pixbuf-2.38.0.tar.xz"
+ url = "https://ftp.acc.umu.se/pub/gnome/sources/gdk-pixbuf/2.40/gdk-pixbuf-2.40.0.tar.xz"
list_url = "https://ftp.acc.umu.se/pub/gnome/sources/gdk-pixbuf/"
list_depth = 1
+ version('2.40.0', sha256='1582595099537ca8ff3b99c6804350b4c058bb8ad67411bbaae024ee7cead4e6')
+ version('2.38.2', sha256='73fa651ec0d89d73dd3070b129ce2203a66171dfc0bd2caa3570a9c93d2d0781')
version('2.38.0', sha256='dd50973c7757bcde15de6bcd3a6d462a445efd552604ae6435a0532fbbadae47')
version('2.31.2', sha256='9e467ed09894c802499fb2399cd9a89ed21c81700ce8f27f970a833efb1e47aa')
+ variant('x11', default=False, description="Enable X11 support")
+
depends_on('meson@0.46.0:', type='build', when='@2.37.92:')
depends_on('meson@0.45.0:', type='build', when='@2.37.0:')
depends_on('ninja', type='build', when='@2.37.0:')
@@ -37,6 +41,7 @@ class GdkPixbuf(Package):
depends_on('zlib')
depends_on('libtiff')
depends_on('gobject-introspection')
+ depends_on('libx11', when='+x11')
# Replace the docbook stylesheet URL with the one that our
# docbook-xsl package uses/recognizes.
@@ -54,7 +59,9 @@ class GdkPixbuf(Package):
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
- meson('..', *std_meson_args)
+ meson_args = std_meson_args
+ meson_args += ['-Dx11={0}'.format('+x11' in spec)]
+ meson('..', *meson_args)
ninja('-v')
if self.run_tests:
ninja('test')
diff --git a/var/spack/repos/builtin/packages/ginkgo/CAS-HIP-NVCC-1.2.0.patch b/var/spack/repos/builtin/packages/ginkgo/CAS-HIP-NVCC-1.2.0.patch
new file mode 100644
index 0000000000..d562b0315b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ginkgo/CAS-HIP-NVCC-1.2.0.patch
@@ -0,0 +1,10 @@
+diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt
+index 884e50bf6..40618311a 100644
+--- a/third_party/CMakeLists.txt
++++ b/third_party/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-if(GINKGO_BUILD_CUDA)
++if(GINKGO_BUILD_CUDA OR (GINKGO_BUILD_HIP AND GINKGO_HIP_PLATFORM STREQUAL "nvcc"))
+ enable_language(CUDA)
+ if (GINKGO_USE_EXTERNAL_CAS)
+ include(CudaArchitectureSelector RESULT_VARIABLE GINKGO_CAS_FILE)
diff --git a/var/spack/repos/builtin/packages/ginkgo/package.py b/var/spack/repos/builtin/packages/ginkgo/package.py
index 8440be2516..d0ee354256 100644
--- a/var/spack/repos/builtin/packages/ginkgo/package.py
+++ b/var/spack/repos/builtin/packages/ginkgo/package.py
@@ -18,6 +18,8 @@ class Ginkgo(CMakePackage, CudaPackage):
version('develop', branch='develop')
version('master', branch='master')
+ version('1.2.0', commit='b4be2be961fd5db45c3d02b5e004d73550722e31') # v1.2.0
+ version('1.1.1', commit='08d2c5200d3c78015ac8a4fd488bafe1e4240cf5') # v1.1.1
version('1.1.0', commit='b9bec8225442b3eb2a85a870efa112ab767a17fb') # v1.1.0
version('1.0.0', commit='45244641e0c2b19ba33aecd25153c0bddbcbe1a0') # v1.0.0
@@ -44,6 +46,8 @@ class Ginkgo(CMakePackage, CudaPackage):
'ON' if '+full_optimizations' in spec else 'OFF'),
'-DGINKGO_DEVEL_TOOLS=%s' % (
'ON' if '+develtools' in spec else 'OFF'),
+ # Drop HIP support for now
+ '-DGINKGO_BUILD_HIP=OFF',
# As we are not exposing benchmarks, examples, tests nor doc
# as part of the installation, disable building them altogether.
'-DGINKGO_BUILD_BENCHMARKS=OFF',
diff --git a/var/spack/repos/builtin/packages/glew/package.py b/var/spack/repos/builtin/packages/glew/package.py
index a5ca6f65da..1b701a21c0 100644
--- a/var/spack/repos/builtin/packages/glew/package.py
+++ b/var/spack/repos/builtin/packages/glew/package.py
@@ -16,6 +16,8 @@ class Glew(Package):
depends_on("cmake", type='build')
depends_on("gl")
+ depends_on('libsm')
+ depends_on('libice')
def install(self, spec, prefix):
options = []
diff --git a/var/spack/repos/builtin/packages/global/package.py b/var/spack/repos/builtin/packages/global/package.py
index 7a252e7add..5ad3d72520 100644
--- a/var/spack/repos/builtin/packages/global/package.py
+++ b/var/spack/repos/builtin/packages/global/package.py
@@ -13,6 +13,7 @@ class Global(Package):
homepage = "http://www.gnu.org/software/global"
url = "http://tamacom.com/global/global-6.5.tar.gz"
+ version('6.6.4', sha256='987e8cb956c53f8ebe4453b778a8fde2037b982613aba7f3e8e74bcd05312594')
version('6.5', sha256='4afd12db1aa600277b39113cc2d61dc59bd6c6b4ee8033da8bb6dd0c39a4c6a9')
depends_on('exuberant-ctags', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/glusterfs/package.py b/var/spack/repos/builtin/packages/glusterfs/package.py
index 89024cf977..95c482da2f 100644
--- a/var/spack/repos/builtin/packages/glusterfs/package.py
+++ b/var/spack/repos/builtin/packages/glusterfs/package.py
@@ -34,6 +34,7 @@ class Glusterfs(AutotoolsPackage):
depends_on('libuuid')
depends_on('libtirpc')
depends_on('userspace-rcu')
+ depends_on('pkgconfig', type='build')
def url_for_version(self, version):
url = 'https://download.gluster.org/pub/gluster/glusterfs/{0}/{1}/glusterfs-{1}.tar.gz'
diff --git a/var/spack/repos/builtin/packages/gmt/package.py b/var/spack/repos/builtin/packages/gmt/package.py
index 003c0d24be..02400cb66e 100644
--- a/var/spack/repos/builtin/packages/gmt/package.py
+++ b/var/spack/repos/builtin/packages/gmt/package.py
@@ -15,12 +15,13 @@ class Gmt(Package):
"""
homepage = "https://www.generic-mapping-tools.org/"
- url = "https://github.com/GenericMappingTools/gmt/archive/6.0.0.tar.gz"
+ url = "https://github.com/GenericMappingTools/gmt/archive/6.1.0.tar.gz"
git = "https://github.com/GenericMappingTools/gmt.git"
maintainers = ['adamjstewart']
version('master', branch='master')
+ version('6.1.0', sha256='f76ad7f444d407dfd7e5762644eec3a719c6aeb06d877bf746fe51abd79b1a9e')
version('6.0.0', sha256='7a733e670f01d99f8fc0da51a4337320d764c06a68746621f83ccf2e3453bcb7')
version('5.4.4', sha256='b593dfb101e6507c467619f3d2190a9f78b09d49fe2c27799750b8c4c0cd2da0')
version('4.5.9', sha256='9b13be96ccf4bbd38c14359c05dfa7eeeb4b5f06d6f4be9c33d6c3ea276afc86',
@@ -41,7 +42,7 @@ class Gmt(Package):
# https://github.com/GenericMappingTools/gmt/blob/master/MAINTENANCE.md
# Required dependencies
- depends_on('cmake@2.8.7:', type='build', when='@5:')
+ depends_on('cmake@2.8.12:', type='build', when='@5:')
depends_on('netcdf-c@4:')
depends_on('curl', when='@5.4:')
@@ -59,6 +60,8 @@ class Gmt(Package):
depends_on('graphicsmagick', type='test')
+ # https://github.com/GenericMappingTools/gmt/pull/3603
+ patch('regexp.patch', when='@6.1.0')
patch('type.patch', when='@4.5.9')
@when('@5:')
diff --git a/var/spack/repos/builtin/packages/gmt/regexp.patch b/var/spack/repos/builtin/packages/gmt/regexp.patch
new file mode 100644
index 0000000000..00011591a9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gmt/regexp.patch
@@ -0,0 +1,11 @@
+--- a/src/gmt_regexp.c 2020-07-04 15:13:40.000000000 -0500
++++ b/src/gmt_regexp.c 2020-07-05 18:35:02.000000000 -0500
+@@ -217,7 +217,7 @@
+ /* this is when errors have been encountered */
+ regerror(status, &re, err_msg, MAX_ERR_LENGTH);
+ GMT_Report (GMT->parent, GMT_MSG_ERROR, "gmtlib_regexp_match: POSIX ERE matching error: %s\n", err_msg); /* Report error. */
+- return (-GMT_RUNTIME_ERROR;)
++ return (-GMT_RUNTIME_ERROR);
+ }
+ return (0); /* No match */
+
diff --git a/var/spack/repos/builtin/packages/gnutls/package.py b/var/spack/repos/builtin/packages/gnutls/package.py
index aa9c863499..4d56fab7fe 100644
--- a/var/spack/repos/builtin/packages/gnutls/package.py
+++ b/var/spack/repos/builtin/packages/gnutls/package.py
@@ -17,6 +17,7 @@ class Gnutls(AutotoolsPackage):
homepage = "http://www.gnutls.org"
url = "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.5/gnutls-3.5.19.tar.xz"
+ version('3.6.14', sha256='5630751adec7025b8ef955af4d141d00d252a985769f51b4059e5affa3d39d63')
version('3.6.8', sha256='aa81944e5635de981171772857e72be231a7e0f559ae0292d2737de475383e83')
version('3.6.7.1', sha256='881b26409ecd8ea4c514fd3fbdb6fae5fab422ca7b71116260e263940a4bbbad')
version('3.5.19', sha256='1936eb64f03aaefd6eb16cef0567457777618573826b94d03376bb6a4afadc44')
diff --git a/var/spack/repos/builtin/packages/go/package.py b/var/spack/repos/builtin/packages/go/package.py
index d0f515e94c..32494a6444 100644
--- a/var/spack/repos/builtin/packages/go/package.py
+++ b/var/spack/repos/builtin/packages/go/package.py
@@ -36,11 +36,13 @@ class Go(Package):
extendable = True
+ version('1.14.5', sha256='ca4c080c90735e56152ac52cd77ae57fe573d1debb1a58e03da9cc362440315c')
version('1.14.4', sha256='7011af3bbc2ac108d1b82ea8abb87b2e63f78844f0259be20cde4d42c5c40584')
version('1.14.3', sha256='93023778d4d1797b7bc6a53e86c3a9b150c923953225f8a48a2d5fabc971af56')
version('1.14.2', sha256='98de84e69726a66da7b4e58eac41b99cbe274d7e8906eeb8a5b7eb0aadee7f7c')
version('1.14.1', sha256='2ad2572115b0d1b4cb4c138e6b3a31cee6294cb48af75ee86bec3dca04507676')
version('1.14', sha256='6d643e46ad565058c7a39dac01144172ef9bd476521f42148be59249e4b74389')
+ version('1.13.13', sha256='ab7e44461e734ce1fd5f4f82c74c6d236e947194d868514d48a2b1ea73d25137')
version('1.13.12', sha256='17ba2c4de4d78793a21cc659d9907f4356cd9c8de8b7d0899cdedcef712eba34')
version('1.13.11', sha256='89ed1abce25ad003521c125d6583c93c1280de200ad221f961085200a6c00679')
version('1.13.10', sha256='eb9ccc8bf59ed068e7eff73e154e4f5ee7eec0a47a610fb864e3332a2fdc8b8c')
diff --git a/var/spack/repos/builtin/packages/gpdb/package.py b/var/spack/repos/builtin/packages/gpdb/package.py
index 07ced439bd..98683b271c 100644
--- a/var/spack/repos/builtin/packages/gpdb/package.py
+++ b/var/spack/repos/builtin/packages/gpdb/package.py
@@ -27,6 +27,7 @@ class Gpdb(AutotoolsPackage):
version('5.23.0', sha256='b06a797eb941362d5473b84d5def349b5ce12ce87ab116bea7c74ad193738ae9')
depends_on('zstd')
+ depends_on('py-setuptools@:44.99.99')
depends_on('apr')
depends_on('libevent')
depends_on('curl')
@@ -35,7 +36,17 @@ class Gpdb(AutotoolsPackage):
depends_on('libxml2')
depends_on('flex')
depends_on('readline')
+ depends_on('py-subprocess32', type=('build', 'run'))
+ depends_on('python@:2.8.0', type=('build', 'run'))
+ depends_on('py-lockfile', type=('build', 'run'))
+ depends_on('py-psutil', type=('build', 'run'))
+ depends_on('py-utils@:1.0.0', type=('build', 'run'))
def configure_args(self):
- args = ['--disable-orca']
+ args = ['--with-python', '--disable-orca', '--enable-depend',
+ '--with-libxml']
return args
+
+ def setup_run_environment(self, env):
+ env.append_path('GPHOME', self.prefix)
+ env.append_path('PYTHONPATH', self.prefix.lib.python)
diff --git a/var/spack/repos/builtin/packages/grads/package.py b/var/spack/repos/builtin/packages/grads/package.py
new file mode 100644
index 0000000000..889ad5c7e3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/grads/package.py
@@ -0,0 +1,65 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Grads(AutotoolsPackage):
+ """The Grid Analysis and Display System (GrADS) is an interactive
+ desktop tool that is used for easy access, manipulation, and visualization
+ of earth science data. GrADS has two data models for handling gridded and
+ station data. GrADS supports many data file formats, including
+ binary (stream or sequential), GRIB (version 1 and 2), NetCDF,
+ HDF (version 4 and 5), and BUFR (for station data)."""
+
+ homepage = "http://cola.gmu.edu/grads/grads.php"
+ url = "ftp://cola.gmu.edu/grads/2.2/grads-2.2.1-src.tar.gz"
+
+ version('2.2.1', sha256='695e2066d7d131720d598bac0beb61ac3ae5578240a5437401dc0ffbbe516206')
+
+ variant('geotiff', default=True, description="Enable GeoTIFF support")
+ variant('shapefile', default=True, description="Enable Shapefile support")
+
+ """
+ # FIXME: Fails with undeclared functions (tdefi, tdef, ...) in gauser.c
+ variant('hdf5', default=False, description="Enable HDF5 support")
+ variant('hdf4', default=False, description="Enable HDF4 support")
+ variant('netcdf', default=False, description="Enable NetCDF support")
+ depends_on('hdf5', when='+hdf5')
+ depends_on('hdf', when='+hdf4')
+ depends_on('netcdf-c', when='+netcdf')
+ """
+
+ depends_on('libgeotiff', when='+geotiff')
+ depends_on('shapelib', when='+shapefile')
+ depends_on('udunits')
+ depends_on('libgd')
+ depends_on('libxmu')
+ depends_on('cairo +X +pdf +fc +ft')
+ depends_on('readline')
+ depends_on('pkgconfig', type='build')
+
+ def setup_build_environment(self, env):
+ env.set('SUPPLIBS', '/')
+
+ def setup_run_environment(self, env):
+ env.set('GADDIR', self.prefix.data)
+
+ @run_after('install')
+ def copy_data(self):
+ with working_dir(self.build_directory):
+ install_tree('data', self.prefix.data)
+ with working_dir(self.package_dir):
+ install('udpt', self.prefix.data)
+ filter_file(
+ r'({lib})',
+ self.prefix.lib,
+ self.prefix.data.udpt
+ )
+
+ def configure_args(self):
+ args = []
+ args.extend(self.with_or_without('geotiff'))
+ return args
diff --git a/var/spack/repos/builtin/packages/grads/udpt b/var/spack/repos/builtin/packages/grads/udpt
new file mode 100644
index 0000000000..5bfc99ba33
--- /dev/null
+++ b/var/spack/repos/builtin/packages/grads/udpt
@@ -0,0 +1,2 @@
+gxdisplay Cairo {lib}/libgxdCairo.so
+gxprint Cairo {lib}/libgxpCairo.so
diff --git a/var/spack/repos/builtin/packages/grpc/package.py b/var/spack/repos/builtin/packages/grpc/package.py
index a7eff3e07f..010cffb6f3 100644
--- a/var/spack/repos/builtin/packages/grpc/package.py
+++ b/var/spack/repos/builtin/packages/grpc/package.py
@@ -11,8 +11,14 @@ class Grpc(CMakePackage):
maintainers = ['nazavode']
homepage = "https://grpc.io"
- url = "https://github.com/grpc/grpc/archive/v1.27.0.tar.gz"
-
+ url = "https://github.com/grpc/grpc/archive/v1.30.0.tar.gz"
+
+ version('1.30.0', sha256='419dba362eaf8f1d36849ceee17c3e2ff8ff12ac666b42d3ff02a164ebe090e9')
+ version('1.29.1', sha256='0343e6dbde66e9a31c691f2f61e98d79f3584e03a11511fad3f10e3667832a45')
+ version('1.29.0', sha256='c0a6b40a222e51bea5c53090e9e65de46aee2d84c7fa7638f09cb68c3331b983')
+ version('1.28.2', sha256='4bec3edf82556b539f7e9f3d3801cba540e272af87293a3f4178504239bd111e')
+ version('1.28.1', sha256='4cbce7f708917b6e58b631c24c59fe720acc8fef5f959df9a58cdf9558d0a79b')
+ version('1.28.0', sha256='d6277f77e0bb922d3f6f56c0f93292bb4cfabfc3c92b31ee5ccea0e100303612')
version('1.27.0', sha256='3ccc4e5ae8c1ce844456e39cc11f1c991a7da74396faabe83d779836ef449bce')
version('1.26.0', sha256='2fcb7f1ab160d6fd3aaade64520be3e5446fc4c6fa7ba6581afdc4e26094bd81')
version('1.25.0', sha256='ffbe61269160ea745e487f79b0fd06b6edd3d50c6d9123f053b5634737cf2f69')
@@ -29,7 +35,7 @@ class Grpc(CMakePackage):
depends_on('openssl')
depends_on('zlib')
depends_on('c-ares')
- depends_on('abseil-cpp', when='@1.27.0:')
+ depends_on('abseil-cpp', when='@1.27:')
def cmake_args(self):
args = [
diff --git a/var/spack/repos/builtin/packages/gunrock/package.py b/var/spack/repos/builtin/packages/gunrock/package.py
index f47c1bf635..391b31b723 100644
--- a/var/spack/repos/builtin/packages/gunrock/package.py
+++ b/var/spack/repos/builtin/packages/gunrock/package.py
@@ -12,7 +12,10 @@ class Gunrock(CMakePackage, CudaPackage):
homepage = "https://gunrock.github.io/docs/"
git = "https://github.com/gunrock/gunrock.git"
- version('master', submodules=True)
+ # tagged versions are broken. See
+ # https://github.com/gunrock/gunrock/issues/777
+ # Hence, prefer master version.
+ version('master', submodules=True, preferred=True)
version('1.1', submodules=True, tag='v1.1')
version('1.0', submodules=True, tag='v1.0')
version('0.5.1', submodules=True, tag='v0.5.1')
@@ -23,9 +26,100 @@ class Gunrock(CMakePackage, CudaPackage):
version('0.2', submodules=True, tag='v0.2')
version('0.1', submodules=True, tag='v0.1')
- depends_on('cuda')
+ variant('cuda', default=True, description="Build with Cuda support")
+
+ variant('lib', default=True, description='Build main gunrock library')
+ variant('shared_libs', default=True, description='Turn off to build for static libraries')
+ variant('tests', default=True, description='Build functional tests / examples')
+ variant('mgpu_tests', default=False, description='Builds Gunrock applications and enables the ctest framework for single GPU implementations')
+ variant('cuda_verbose_ptxas', default=False, description='Enable verbose output from the PTXAS assembler')
+ variant('google_tests', default=False, description='Build unit tests using googletest')
+ variant('code_coverage', default=False, description="run code coverage on Gunrock's source code")
+ # apps
+ msg = 'select either all or individual applications'
+ variant(
+ "applications",
+ values=disjoint_sets(
+ ('all',), ('bc', 'bfs', 'cc', 'pr', 'sssp', 'dobfs', 'hits',
+ 'salsa', 'mst', 'wtf', 'topk')
+ ).allow_empty_set().with_default('all').with_error(msg),
+ description="Application to be built"
+ )
+
+ variant('boost', default=True, description='Build with Boost')
+ variant('metis', default=False, description='Build with Metis support')
+
+ depends_on('googletest', when='+google_tests')
+ depends_on('lcov', when='+code_coverage')
+ depends_on('boost@1.58.0:', when='+boost')
+ depends_on('metis', when='+metis')
+
+ conflicts('cuda_arch=none', when='+cuda',
+ msg='Must specify CUDA compute capabilities of your GPU. \
+See "spack info gunrock"')
+
+ def cmake_args(self):
+ spec = self.spec
+ args = []
+ args.extend([
+ '-DGUNROCK_BUILD_LIB={0}'.format(
+ 'ON' if '+lib' in spec else 'OFF'),
+ '-DGUNROCK_BUILD_SHARED_LIBS={0}'.format(
+ 'ON' if '+shared_libs' in spec else 'OFF'),
+ '-DGUNROCK_BUILD_TESTS={0}'.format(
+ 'ON' if '+tests' in spec else 'OFF'),
+ '-DGUNROCK_MGPU_TESTS={0}'.format(
+ 'ON' if '+mgpu_tests' in spec else 'OFF'),
+ '-DCUDA_VERBOSE_PTXAS={0}'.format(
+ 'ON' if '+cuda_verbose_ptxas' in spec else 'OFF'),
+ '-DGUNROCK_GOOGLE_TESTS={0}'.format(
+ 'ON' if '+google_tests' in spec else 'OFF'),
+ '-DGUNROCK_CODE_COVERAGE={0}'.format(
+ 'ON' if '+code_coverage' in spec else 'OFF'),
+ ])
+
+ # turn off auto detect, which undoes custom cuda arch options
+ args.append('-DCUDA_AUTODETECT_GENCODE=OFF')
+
+ cuda_arch_list = self.spec.variants['cuda_arch'].value
+ if cuda_arch_list[0] != 'none':
+ for carch in cuda_arch_list:
+ args.append('-DGUNROCK_GENCODE_SM' + carch + '=ON')
+
+ app_list = self.spec.variants['applications'].value
+ if app_list[0] != 'none':
+ args.extend([
+ '-DGUNROCK_BUILD_APPLICATIONS={0}'.format(
+ 'ON' if spec.satisfies('applications=all') else 'OFF'),
+ '-DGUNROCK_APP_BC={0}'.format(
+ 'ON' if spec.satisfies('applications=bc') else 'OFF'),
+ '-DGUNROCK_APP_BFS={0}'.format(
+ 'ON' if spec.satisfies('applications=bfs') else 'OFF'),
+ '-DGUNROCK_APP_CC={0}'.format(
+ 'ON' if spec.satisfies('applications=cc') else 'OFF'),
+ '-DGUNROCK_APP_PR={0}'.format(
+ 'ON' if spec.satisfies('applications=pr') else 'OFF'),
+ '-DGUNROCK_APP_SSSP={0}'.format(
+ 'ON' if spec.satisfies('applications=sssp') else 'OFF'),
+ '-DGUNROCK_APP_DOBFS={0}'.format(
+ 'ON' if spec.satisfies('applications=dobfs') else 'OFF'),
+ '-DGUNROCK_APP_HITS={0}'.format(
+ 'ON' if spec.satisfies('applications=hits') else 'OFF'),
+ '-DGUNROCK_APP_SALSA={0}'.format(
+ 'ON' if spec.satisfies('applications=salsa') else 'OFF'),
+ '-DGUNROCK_APP_MST={0}'.format(
+ 'ON' if spec.satisfies('applications=mst') else 'OFF'),
+ '-DGUNROCK_APP_WTF={0}'.format(
+ 'ON' if spec.satisfies('applications=wtf') else 'OFF'),
+ '-DGUNROCK_APP_TOPK={0}'.format(
+ 'ON' if spec.satisfies('applications=topk') else 'OFF'),
+ ])
+
+ return args
def install(self, spec, prefix):
with working_dir(self.build_directory):
- install_tree('bin', prefix.bin)
install_tree('lib', prefix.lib)
+ # bin dir is created only if tests/examples are built
+ if '+tests' in spec:
+ install_tree('bin', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/harfbuzz/package.py b/var/spack/repos/builtin/packages/harfbuzz/package.py
index 4ab6005dbf..2a303bc97e 100644
--- a/var/spack/repos/builtin/packages/harfbuzz/package.py
+++ b/var/spack/repos/builtin/packages/harfbuzz/package.py
@@ -8,9 +8,11 @@ from spack import *
class Harfbuzz(AutotoolsPackage):
"""The Harfbuzz package contains an OpenType text shaping engine."""
- homepage = "http://www.freedesktop.org/wiki/Software/HarfBuzz/"
+ homepage = "https://github.com/harfbuzz/harfbuzz"
url = "http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-0.9.37.tar.bz2"
+ git = "https://github.com/harfbuzz/harfbuzz.git"
+ version('2.6.8', sha256='6648a571a27f186e47094121f0095e1b809e918b3037c630c7f38ffad86e3035')
version('2.3.1', sha256='f205699d5b91374008d6f8e36c59e419ae2d9a7bb8c5d9f34041b9a5abcae468')
version('2.1.3', sha256='613264460bb6814c3894e3953225c5357402915853a652d40b4230ce5faf0bee')
version('1.9.0', sha256='11eca62bf0ac549b8d6be55f4e130946399939cdfe7a562fdaee711190248b00')
@@ -30,6 +32,14 @@ class Harfbuzz(AutotoolsPackage):
conflicts('%intel', when='@2.3.1:',
msg='harfbuzz-2.3.1 does not build with the Intel compiler')
+ def url_for_version(self, version):
+ if version > Version('2.3.1'):
+ url = "https://github.com/harfbuzz/harfbuzz/releases/download/{0}/harfbuzz-{0}.tar.xz"
+ else:
+ url = "http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-{0}.tar.bz2"
+
+ return url.format(version)
+
def configure_args(self):
args = []
# disable building of gtk-doc files following #9771
diff --git a/var/spack/repos/builtin/packages/hbase/package.py b/var/spack/repos/builtin/packages/hbase/package.py
index d34fe2f9f1..1e87f8a297 100644
--- a/var/spack/repos/builtin/packages/hbase/package.py
+++ b/var/spack/repos/builtin/packages/hbase/package.py
@@ -7,21 +7,24 @@ from spack import *
class Hbase(Package):
- """
- Apache HBase is an open-source, distributed, versioned, column-oriented
+ """Apache HBase is an open-source, distributed, versioned, column-oriented
store modeled after Google' Bigtable: A Distributed Storage System for
Structured Data by Chang et al. Just as Bigtable leverages the distributed
data storage provided by the Google File System, HBase provides
- Bigtable-like capabilities on top of Apache Hadoop.
- """
+ Bigtable-like capabilities on top of Apache Hadoop."""
- homepage = "https://github.com/apache/hbase"
- url = "https://github.com/apache/hbase/archive/rel/2.2.2.tar.gz"
+ homepage = "https://archive.apache.org/"
+ url = "https://archive.apache.org/dist/hbase/2.2.4/hbase-2.2.4-bin.tar.gz"
+ list_url = "https://archive.apache.org/dist/hbase"
+ list_depth = 1
- version('2.2.2', sha256='e9a58946e9adff1cac23a0b261ecf32da32f8d2ced0706af1d04e8a67d582926')
- version('2.1.8', sha256='121cea4c554879c8401f676c8eb49e39bd35d41c358e919379ad4a318844c8de')
+ version('2.2.5', sha256='25d08f8f038d9de5beb43dfb0392e8a8b34eae7e0f2670d6c2c172abc3855194')
+ version('2.2.4', sha256='ec91b628352931e22a091a206be93061b6bf5364044a28fb9e82f0023aca3ca4')
+ version('2.2.3', sha256='ea8fa72aa6220e038e30bd7c439d181b10bd7225383f7f2d224ebb5f5397310a')
+ version('2.2.2', sha256='97dcca3a031925a379a0ee6bbfb6007533fb4fdb982c23345e5fc04d6c52bebc')
+ version('2.1.8', sha256='d8296e8405b1c39c73f0dd03fc6b4d2af754035724168fd56e8f2a0ff175ad90')
- depends_on('java@7:', type='run')
+ depends_on('java@8', type='run')
def install(self, spec, prefix):
install_tree('.', prefix)
diff --git a/var/spack/repos/builtin/packages/heputils/package.py b/var/spack/repos/builtin/packages/heputils/package.py
new file mode 100644
index 0000000000..e856d7b5d0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/heputils/package.py
@@ -0,0 +1,36 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Heputils(MakefilePackage):
+ """Generic tools for high energy physics, e.g. vectors, event records,
+ math and other util functions."""
+
+ homepage = "https://bitbucket.org/andybuckley/heputils/src/default/"
+ url = "https://bitbucket.org/andybuckley/heputils/get/heputils-1.3.2.tar.gz"
+
+ version('1.3.2', sha256='be43586979ab1a81a55348d795c2f63a5da19fc6367d5f66f354217c76c809c0')
+ version('1.3.1', sha256='7f33ef44364a3d3a39cc65005fb6aa9dfd06bd1b18b41151c0e5e3d28d6ba15b')
+ version('1.3.0', sha256='1ec9d9d71d409ce6b2e668e4927b1090ddf2ee9acf25457f767925cf89b24852')
+ version('1.2.1', sha256='99f0b27cddffb98977d37418d53f3386e5defda547aeb4c4fda00ab6fcf2cc31')
+ version('1.2.0', sha256='0f9f96bd7589f9aec8f1271524b8622291216fe2294ffed772b84d010759eaef')
+ version('1.1.0', sha256='671374641cdb6dc093327b69da2d2854df805b6eb8e90f0efefb0788ee4a2edd')
+ version('1.0.8', sha256='9b9a45ebff1367cd2ab1ec4ee8c0e124a9b7ed66c75d8961412163ade1962d91')
+ version('1.0.7', sha256='481a26755d4e2836563d1f8fcdad663bfa7e21b9878c01bd8a73a67876726b81')
+ version('1.0.6', sha256='1ecd8597ef7921a63606b21136900a05a818c9342da7994a42aae768ecca507f')
+ version('1.0.5', sha256='efff3d7d6973822f1dced903017f86661e2d054ff3f0d4fe926de2347160e329')
+ version('1.0.4', sha256='aeca00c1012bce469c6fe6393edbf4f33043ab671c97a8283a21861caee8b1b4')
+ version('1.0.3', sha256='8e7ebe0ad5e87a97cbbff7097092ed8afe5a2d1ecae0f4d4f9a7bf694e221d40')
+ version('1.0.2', sha256='83ba7876d884406463cc8ae42214038b7d6c40ead77a1532d64bc96887173f75')
+ version('1.0.1', sha256='4bfccc4f4380becb776343e546deb2474deeae79f053ba8ca22287827b8bd4b1')
+ version('1.0.0', sha256='4f71c2bee6736ed87d0151e62546d2fc9ff639db58172c26dcf033e5bb1ea04c')
+
+ def build(self, spec, prefix):
+ return
+
+ def install(self, spec, prefix):
+ make('install', 'PREFIX={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/herwigpp/herwig++-2.7.1.patch b/var/spack/repos/builtin/packages/herwigpp/herwig++-2.7.1.patch
new file mode 100644
index 0000000000..1690f362ad
--- /dev/null
+++ b/var/spack/repos/builtin/packages/herwigpp/herwig++-2.7.1.patch
@@ -0,0 +1,66 @@
+--- Utilities/Histogram.h.orig 2018-11-07 14:46:18.967689784 +0100
++++ Utilities/Histogram.h 2018-11-07 14:46:32.755601195 +0100
+@@ -111,7 +111,7 @@
+ * Function to add a weighted point to the histogram
+ */
+ void addWeighted(double input, double weight) {
+- if(isnan(input)) return;
++ if(std::isnan(input)) return;
+ unsigned int ibin;
+ for(ibin=1; ibin<_bins.size(); ++ibin) {
+ if(input<_bins[ibin].limit)
+--- Contrib/AlpGen/BasicLesHouchesFileReader.cc.orig 2018-11-07 15:38:46.819306762 +0100
++++ Contrib/AlpGen/BasicLesHouchesFileReader.cc 2018-11-07 15:39:04.927190111 +0100
+@@ -383,9 +383,9 @@
+ >> hepeup.PUP[i][3] >> hepeup.PUP[i][4]
+ >> hepeup.VTIMUP[i] >> hepeup.SPINUP[i] ) )
+ return false;
+- if(isnan(hepeup.PUP[i][0])||isnan(hepeup.PUP[i][1])||
+- isnan(hepeup.PUP[i][2])||isnan(hepeup.PUP[i][3])||
+- isnan(hepeup.PUP[i][4]))
++ if(std::isnan(hepeup.PUP[i][0])||std::isnan(hepeup.PUP[i][1])||
++ std::isnan(hepeup.PUP[i][2])||std::isnan(hepeup.PUP[i][3])||
++ std::isnan(hepeup.PUP[i][4]))
+ throw Exception()
+ << "nan's as momenta in Les Houches file "
+ << Exception::eventerror;
+--- DipoleShower/Base/DipoleChain.cc.orig 2018-12-14 16:51:47.597597788 +0100
++++ DipoleShower/Base/DipoleChain.cc 2018-12-14 16:52:09.450796951 +0100
+@@ -15,6 +15,7 @@
+ #include "Herwig++/DipoleShower/Utility/DipolePartonSplitter.h"
+
+ #include <boost/utility.hpp>
++#include <boost/next_prior.hpp>
+
+ using namespace Herwig;
+
+--- Exsample2/exsample/config.h.orig 2018-12-14 16:56:31.729186139 +0100
++++ Exsample2/exsample/config.h 2018-12-14 16:56:55.969406851 +0100
+@@ -25,6 +25,7 @@
+ #include <limits>
+
+ #include <boost/utility.hpp>
++#include <boost/next_prior.hpp>
+ #include <boost/scoped_array.hpp>
+ #include <boost/scoped_ptr.hpp>
+
+--- DipoleShower/Base/DipoleEventRecord.cc.orig 2018-12-14 16:58:33.878298134 +0100
++++ DipoleShower/Base/DipoleEventRecord.cc 2018-12-14 16:58:47.983426512 +0100
+@@ -19,6 +19,7 @@
+ #include "ThePEG/PDF/PartonExtractor.h"
+
+ #include <boost/utility.hpp>
++#include <boost/next_prior.hpp>
+
+ #include <algorithm>
+
+--- ./Exsample2/BinnedStatistics.h.orig 2018-12-14 17:11:37.396421246 +0100
++++ ./Exsample2/BinnedStatistics.h 2018-12-14 17:12:00.762633435 +0100
+@@ -16,6 +16,7 @@
+ #include "ThePEG/Repository/UseRandom.h"
+
+ #include <boost/utility.hpp>
++#include <boost/next_prior.hpp>
+
+ namespace Herwig {
+
diff --git a/var/spack/repos/builtin/packages/herwigpp/package.py b/var/spack/repos/builtin/packages/herwigpp/package.py
new file mode 100644
index 0000000000..c3cdf7791d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/herwigpp/package.py
@@ -0,0 +1,52 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Herwigpp(AutotoolsPackage):
+ """Herwig is a multi-purpose particle physics event generator.
+ This package provides old Herwig++ 2 generator"""
+
+ homepage = "https://herwig.hepforge.org/"
+ url = "http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources/MCGeneratorsTarFiles/Herwig++-2.7.1.tar.bz2"
+
+ version('2.7.1', '80a189376bb65f5ec4e64f42e76c00ea9102d8224010563a424fc11e619a6ad6')
+ patch('herwig++-2.7.1.patch', when='@2.7.1', level=0)
+
+ depends_on('gsl')
+ depends_on('boost')
+ depends_on('fastjet')
+ depends_on('thepeg@1.9.2', when='@2.7.1')
+
+ def configure_args(self):
+ args = ['--with-gsl=' + self.spec['gsl'].prefix,
+ '--with-thepeg=' + self.spec['thepeg'].prefix,
+ '--with-fastjet=' + self.spec['fastjet'].prefix,
+ '--with-boost=' + self.spec['boost'].prefix]
+ return args
+
+ def build(self, spec, prefix):
+ make()
+ with working_dir('Contrib'):
+ make()
+
+ with working_dir('Contrib/AlpGen'):
+ make('BasicLesHouchesFileReader.so',
+ "HERWIGINCLUDE=-I{0}/include".format(self.stage.source_path))
+ make('AlpGenHandler.so',
+ "HERWIGINCLUDE=-I{0}/include".format(self.stage.source_path))
+
+ def install(self, spec, prefix):
+ make('install')
+ install(
+ join_path(self.stage.source_path,
+ 'Contrib', 'AlpGen', 'AlpGenHandler.so'),
+ join_path(prefix.lib, 'Herwig++', 'AlpGenHandler.so'))
+
+ install(
+ join_path(self.stage.source_path,
+ 'Contrib', 'AlpGen', 'BasicLesHouchesFileReader.so'),
+ join_path(prefix.lib, 'Herwig++', 'BasicLesHouchesFileReader.so'))
diff --git a/var/spack/repos/builtin/packages/hibench/package.py b/var/spack/repos/builtin/packages/hibench/package.py
new file mode 100644
index 0000000000..c36cc27659
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hibench/package.py
@@ -0,0 +1,35 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Hibench(Package):
+ """HiBench is a big data benchmark suite that helps evaluate different big
+ data frameworks in terms of speed, throughput and system resource
+ utilizations. It contains a set of Hadoop,Spark and streaming workloads,
+ including Sort, WordCount, TeraSort, Repartition, Sleep, SQL,PageRank,
+ Nutch indexing, Bayes, Kmeans, NWeight and enhanced DFSIO, etc."""
+
+ homepage = "https://github.com/Intel-bigdata/HiBench"
+ url = "https://github.com/Intel-bigdata/HiBench/archive/HiBench-7.1.tar.gz"
+
+ version('7.1', sha256='96572a837d747fb6347f2b906fd5f7fb97a62095435326ccfee5e75777a5c210')
+ version('7.0', sha256='89b01f3ad90b758f24afd5ea2bee997c3d700ce9244b8a2b544acc462ab0e847')
+ version('6.0', sha256='179f5415903f4029bd0ea1101a3d4c67faf88ca46a993d8179582299ad730f79')
+ version('5.0', sha256='32d6a7bc1010d90b2f22906896a03cd1980e617beb07b01716e3d04de5760ed4')
+ version('4.1', sha256='07551763aa30f04d32870c323524b5fc0fc2e968d7081d8916575bdeb4fd1381')
+ version('4.0', sha256='de58ed5e9647ffe28c2a905a8830b661bbd09db334eb5b3472c8186553407e0e')
+ version('3.0.0', sha256='869771e73593caac3a9b2fb14a10041a485d248074ba38cca812c934897db63d')
+ version('2.2.1', sha256='f8531cbaff8d93bfd1c0742fec5dbb375bfeeb9ec1b39b4e857120e933a2c9ec')
+ version('2.2', sha256='5f68e22339cdd141b846d8b1d7134b2b8ff5fbd5e847e406214dc845f5d005cf')
+
+ depends_on('maven', type='build')
+ depends_on('java@8', type=('build', 'run'))
+
+ def install(self, spec, prefix):
+ mvn = which('mvn')
+ mvn('package', '-DskipTests')
+ install_tree('.', prefix)
diff --git a/var/spack/repos/builtin/packages/hisat2/package.py b/var/spack/repos/builtin/packages/hisat2/package.py
index 93b54e9ed5..ab03df4ce5 100644
--- a/var/spack/repos/builtin/packages/hisat2/package.py
+++ b/var/spack/repos/builtin/packages/hisat2/package.py
@@ -14,13 +14,18 @@ class Hisat2(MakefilePackage):
exome sequencing data) against the general human population (as well as
against a single reference genome)."""
- homepage = "http://ccb.jhu.edu/software/hisat2"
+ homepage = "https://daehwankimlab.github.io/hisat2/"
url = "ftp://ftp.ccb.jhu.edu/pub/infphilo/hisat2/downloads/hisat2-2.1.0-source.zip"
+ version('2.2.0', sha256='0dd55168853b82c1b085f79ed793dd029db163773f52272d7eb51b3b5e4a4cdd',
+ url='https://cloud.biohpc.swmed.edu/index.php/s/hisat2-220-source/download',
+ extension='zip')
version('2.1.0', sha256='89a276eed1fc07414b1601947bc9466bdeb50e8f148ad42074186fe39a1ee781')
def install(self, spec, prefix):
- install_tree('doc', prefix.doc)
+ if spec.satisfies('@:2.1.0'):
+ install_tree('doc', prefix.doc)
+
install_tree('example', prefix.example)
install_tree('hisatgenotype_modules', prefix.hisatgenotype_modules)
install_tree('hisatgenotype_scripts', prefix.hisatgenotype_scripts)
diff --git a/var/spack/repos/builtin/packages/hpcg/package.py b/var/spack/repos/builtin/packages/hpcg/package.py
new file mode 100644
index 0000000000..4de150cda2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hpcg/package.py
@@ -0,0 +1,78 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+import os
+import platform
+
+
+class Hpcg(AutotoolsPackage):
+ """HPCG is a software package that performs a fixed number of multigrid
+ preconditioned (using a symmetric Gauss-Seidel smoother) conjugate gradient
+ (PCG) iterations using double precision (64 bit) floating point values."""
+
+ homepage = "https://www.hpcg-benchmark.org"
+ url = "http://www.hpcg-benchmark.org/downloads/hpcg-3.1.tar.gz"
+ git = "https://github.com/hpcg-benchmark/hpcg.git"
+
+ version('develop', branch='master')
+ version('3.1', sha256='33a434e716b79e59e745f77ff72639c32623e7f928eeb7977655ffcaade0f4a4')
+
+ variant('openmp', default=True, description='Enable OpenMP support')
+
+ patch('https://github.com/hpcg-benchmark/hpcg/commit/e9e0b7e6cae23e1f30dd983c2ce2d3bd34d56f75.patch', sha256='23b9de83042eb7a8207fdddcfa79ae2cc1a17e8e623e2224c7751d7c328ee482', when='%gcc@9:')
+
+ depends_on('mpi@1.1:')
+
+ arch = '{0}-{1}'.format(platform.system(), platform.processor())
+ build_targets = ['arch={0}'.format(arch)]
+
+ def configure(self, spec, prefix):
+ CXXFLAGS = '-O3 -ffast-math '
+ CXXFLAGS += '-ftree-vectorize -ftree-vectorizer-verbose=0 '
+ if '+openmp' in self.spec:
+ CXXFLAGS += self.compiler.openmp_flag
+ config = [
+ # Shell
+ 'SHELL = /bin/sh',
+ 'CD = cd',
+ 'CP = cp',
+ 'LN_S = ln -fs',
+ 'MKDIR = mkdir -p',
+ 'RM = /bin/rm -f',
+ 'TOUCH = touch',
+ # Platform identifier
+ 'ARCH = {0}'.format(self.arch),
+ # HPCG Directory Structure / HPCG library
+ 'TOPdir = {0}'.format(os.getcwd()),
+ 'SRCdir = $(TOPdir)/src',
+ 'INCdir = $(TOPdir)/src',
+ 'BINdir = $(TOPdir)/bin',
+ # Message Passing library (MPI)
+ 'MPinc = -I{0}'.format(spec['mpi'].prefix.include),
+ 'MPlib = -L{0}'.format(spec['mpi'].prefix.lib),
+ # HPCG includes / libraries / specifics
+ 'HPCG_INCLUDES = -I$(INCdir) -I$(INCdir)/$(arch) $(MPinc)',
+ 'HPCG_LIBS =',
+ 'HPCG_OPTS =',
+ 'HPCG_DEFS = $(HPCG_OPTS) $(HPCG_INCLUDES)',
+ # Compilers / linkers - Optimization flags
+ 'CXX = {0}'.format(spec['mpi'].mpicxx),
+ 'CXXFLAGS = $(HPCG_DEFS) {0}'.format(CXXFLAGS),
+ 'LINKER = $(CXX)',
+ 'LINKFLAGS = $(CXXFLAGS)',
+ 'ARCHIVER = ar',
+ 'ARFLAGS = r',
+ 'RANLIB = echo',
+ ]
+
+ # Write configuration options to include file
+ with open('setup/Make.{0}'.format(self.arch), 'w') as makefile:
+ for var in config:
+ makefile.write('{0}\n'.format(var))
+
+ def install(self, spec, prefix):
+ # Manual installation
+ install_tree('bin', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/hpctoolkit/package.py b/var/spack/repos/builtin/packages/hpctoolkit/package.py
index 9de2184d92..8c091a59f7 100644
--- a/var/spack/repos/builtin/packages/hpctoolkit/package.py
+++ b/var/spack/repos/builtin/packages/hpctoolkit/package.py
@@ -20,6 +20,7 @@ class Hpctoolkit(AutotoolsPackage):
version('develop', branch='develop')
version('master', branch='master')
+ version('2020.07.21', commit='4e56c780cffc53875aca67d6472a2fb3678970eb')
version('2020.06.12', commit='ac6ae1156e77d35596fea743ed8ae768f7222f19')
version('2020.03.01', commit='94ede4e6fa1e05e6f080be8dc388240ea027f769')
version('2019.12.28', commit='b4e1877ff96069fd8ed0fdf0e36283a5b4b62240')
diff --git a/var/spack/repos/builtin/packages/hpcviewer/package.py b/var/spack/repos/builtin/packages/hpcviewer/package.py
index f14f55d787..0de66bbf83 100644
--- a/var/spack/repos/builtin/packages/hpcviewer/package.py
+++ b/var/spack/repos/builtin/packages/hpcviewer/package.py
@@ -37,6 +37,9 @@ class Hpcviewer(Package):
maintainers = ['mwkrentel']
viewer_sha = {
+ ('2020.07', 'x86_64'): '19951662626c7c9817c4a75269c85810352dc48ae9a62dfb6ce4a5b502de2118',
+ ('2020.07', 'ppc64'): '3f5d9358ef8ff9ba4f6dcaa4d7132f41ba55f0c132d9fd1e2f6da18341648a4e',
+ ('2020.07', 'ppc64le'): 'e236a8578dc247279d1021aa35bac47e2d4864b906efcef76c0610ee0086b353',
('2020.05', 'x86_64'): '27f99c94a69abd005303fb58360b0d1b3eb7d223cab81c38ae6ccdd83ec15106',
('2020.05', 'ppc64'): '469bce07a75476c132d3791ca49e38db015917c9c36b4810e477bc1c54a13d68',
('2020.05', 'ppc64le'): 'fc4491bf6d9eaf2b7f2d39b722c978597a881ece557fb05a4cf27caabb9e0b99',
@@ -70,6 +73,9 @@ class Hpcviewer(Package):
}
trace_sha = {
+ ('2020.07', 'x86_64'): '52aea55b1d40b9453c106ac5a83020a08839b9be1e71dbd1a9f471e5f3a55d43',
+ ('2020.07', 'ppc64'): '3d9222310a18618704015aecbcab7f7c5a2cedbd5ecd8ace1bfc7e98d11b8d36',
+ ('2020.07', 'ppc64le'): '2f0a8b95033a5816d468b87c8c139f08a307714e2e27a1cb4a35e1c5a8083cca',
('2020.05', 'x86_64'): 'a0b925099a00c10fcb38e937068e50937175fd46dc086121525e546a63a7fd83',
('2020.05', 'ppc64'): '40526f62f36e5b6438021c2b557256638d41a6b8f4e101534b5230ac644a9b85',
('2020.05', 'ppc64le'): 'c16e83b59362adcebecd4231374916a2b3a3c016f75a45b24e8398f777a24f89',
diff --git a/var/spack/repos/builtin/packages/ibm-java/package.py b/var/spack/repos/builtin/packages/ibm-java/package.py
index 72739240d5..952fa16a7b 100644
--- a/var/spack/repos/builtin/packages/ibm-java/package.py
+++ b/var/spack/repos/builtin/packages/ibm-java/package.py
@@ -22,6 +22,8 @@ class IbmJava(Package):
# not be available for download.
version_list = [
+ ('8.0.6.11', 'ppc64', '6fd17a6b9a34bb66e0db37f6402dc1b7612d54084c94b859f4a42f445fd174d4'),
+ ('8.0.6.11', 'ppc64le', 'd69ff7519e32e89db88a9a4d4d88d1881524073ac940f35d3860db2c6647be2e'),
('8.0.6.10', 'ppc64', 'ff5151ead88f891624eefe33d80d56c325ca0aa4b93bd96c135cad326993eda2'),
('8.0.6.10', 'ppc64le', 'ea99ab28dd300b08940882d178247e99aafe5a998b1621cf288dfb247394e067'),
('8.0.6.7', 'ppc64', 'a1accb461a039af4587ea86511e317fea1d423e7f781459a17ed3947afed2982'),
diff --git a/var/spack/repos/builtin/packages/icu4c/package.py b/var/spack/repos/builtin/packages/icu4c/package.py
index 29307a4522..0663ae6edf 100644
--- a/var/spack/repos/builtin/packages/icu4c/package.py
+++ b/var/spack/repos/builtin/packages/icu4c/package.py
@@ -14,10 +14,15 @@ class Icu4c(AutotoolsPackage):
homepage = "http://site.icu-project.org/"
url = "https://github.com/unicode-org/icu/releases/download/release-65-1/icu4c-65_1-src.tgz"
+ version('67.1', sha256='94a80cd6f251a53bd2a997f6f1b5ac6653fe791dfab66e1eb0227740fb86d5dc')
+ version('66.1', sha256='52a3f2209ab95559c1cf0a14f24338001f389615bf00e2585ef3dbc43ecf0a2e')
version('65.1', sha256='53e37466b3d6d6d01ead029e3567d873a43a5d1c668ed2278e253b683136d948')
version('64.1', sha256='92f1b7b9d51b396679c17f35a2112423361b8da3c1b9de00aa94fd768ae296e6')
+ version('60.3', sha256='476287b17db6e0b7da230dce4b58e8e5669b1510847f82cab3647920f1374390')
version('60.1', sha256='f8f5a6c8fbf32c015a467972bdb1477dc5f5d5dfea908b6ed218715eeb5ee225')
+ version('58.3', sha256='2680f3c547cd26cba1d7ebd819cd336ff92cf444a270e195fd3b10bfdf22276c')
version('58.2', sha256='2b0a4410153a9b20de0e20c7d8b66049a72aef244b53683d0d7521371683da0c')
+ version('57.2', sha256='623f04b921827a041f42d52495a6f8eee6565a9b7557051ac68e099123ff28dc')
version('57.1', sha256='ff8c67cb65949b1e7808f2359f2b80f722697048e90e7cfc382ec1fe229e9581')
variant('cxxstd',
@@ -30,16 +35,18 @@ class Icu4c(AutotoolsPackage):
conflicts('%intel@:16', when='@60.1:',
msg="Intel compilers have immature C++11 and multibyte support")
+ conflicts('%gcc@:4', when='@67.1:',
+ msg="Older GCC compilers have immature C++11 support")
+
+ patch('https://github.com/unicode-org/icu/commit/ddfc30860354cbcb78c2c0bcf800be5ab44a9e4f.patch',
+ sha256='dfc501d78ddfabafe09dc1a7aa70f96b799164b18f6a57d616a9d48aaf989333',
+ level=2, when='@58.0:59.99')
configure_directory = 'source'
def url_for_version(self, version):
- if version >= Version('65'):
- url = "https://github.com/unicode-org/icu/releases/download/release-{0}/icu4c-{1}-src.tgz"
- return url.format(version.dashed, version.underscored)
- else:
- url = "http://download.icu-project.org/files/icu4c/{0}/icu4c-{1}-src.tgz"
- return url.format(version.dotted, version.underscored)
+ url = "https://github.com/unicode-org/icu/releases/download/release-{0}/icu4c-{1}-src.tgz"
+ return url.format(version.dashed, version.underscored)
def flag_handler(self, name, flags):
if name == 'cxxflags':
diff --git a/var/spack/repos/builtin/packages/jmol/package.py b/var/spack/repos/builtin/packages/jmol/package.py
index 6bbe7e28cd..9da452f396 100644
--- a/var/spack/repos/builtin/packages/jmol/package.py
+++ b/var/spack/repos/builtin/packages/jmol/package.py
@@ -4,6 +4,7 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
+import os.path
class Jmol(Package):
@@ -11,15 +12,26 @@ class Jmol(Package):
with features for chemicals, crystals, materials and biomolecules."""
homepage = "http://jmol.sourceforge.net/"
- url = "https://sourceforge.net/projects/jmol/files/Jmol/Version%2014.8/Jmol%2014.8.0/Jmol-14.8.0-binary.tar.gz"
+ url = "https://sourceforge.net/projects/jmol/files/Jmol/Version%2014.8/Jmol%2014.8.0/Jmol-14.8.0-binary.tar.gz"
+ version('14.31.0', sha256='eee0703773607c8bd6d51751d0d062c3e10ce44c11e1d7828e4ea3d5f710e892')
version('14.8.0', sha256='8ec45e8d289aa0762194ca71848edc7d736121ddc72276031a253a3651e6d588')
+ def url_for_version(self, version):
+ url = 'https://sourceforge.net/projects/jmol/files/Jmol/Version%20{0}/Jmol%20{1}/Jmol-{1}-binary.tar.gz'
+ return url.format(version.up_to(2), version)
+
depends_on('java', type='run')
def install(self, spec, prefix):
- install_tree('jmol-{0}'.format(self.version), prefix)
+ if os.path.exists('jmol-{0}'.format(self.version)):
+ # tar ball contains subdir with different versions
+ install_tree('jmol-{0}'.format(self.version), prefix)
+ else:
+ # no subdirs - tarball was unpacked in spack-src
+ install_tree('./', prefix)
def setup_run_environment(self, env):
env.prepend_path('PATH', self.prefix)
env.set('JMOL_HOME', self.prefix)
+ env.prepend_path('PATH', self.spec['java'].prefix.bin)
diff --git a/var/spack/repos/builtin/packages/jube/package.py b/var/spack/repos/builtin/packages/jube/package.py
index dae9fc2932..aff47bc55e 100644
--- a/var/spack/repos/builtin/packages/jube/package.py
+++ b/var/spack/repos/builtin/packages/jube/package.py
@@ -14,6 +14,8 @@ class Jube(PythonPackage):
homepage = "https://www.fz-juelich.de/jsc/jube/"
url = "https://apps.fz-juelich.de/jsc/jube/jube2/download.php?version=2.2.2"
+ version('2.4.0', sha256='87c02555f3d1a8ecaff139cf8e7a7167cabd1049c8cc77f1bd8f4484e210d524', extension='tar.gz')
+ version('2.3.0', sha256='6051d45af2ff35031ccc460185fbfa61f7f36ea14f17a0d51a9e62cd7af3709a', extension="tar.gz")
version('2.2.2', sha256='135bc03cf07c4624ef2cf581ba5ec52eb44ca1dac15cffb83637e86170980477', extension="tar.gz")
version('2.2.1', sha256='68751bf2e17766650ccddb7a5321dd1ac8b34ffa3585db392befbe9ff180ddd9', extension="tar.gz")
version('2.2.0', sha256='bc825884fc8506d0fb7b3b5cbb5ad4c7e82b1fe1d7ec861ca33699adfc8100f1', extension="tar.gz")
diff --git a/var/spack/repos/builtin/packages/kallisto/package.py b/var/spack/repos/builtin/packages/kallisto/package.py
index d33bd970a2..25e5fcb9a0 100644
--- a/var/spack/repos/builtin/packages/kallisto/package.py
+++ b/var/spack/repos/builtin/packages/kallisto/package.py
@@ -18,7 +18,6 @@ class Kallisto(CMakePackage):
depends_on('zlib')
depends_on('hdf5')
- depends_on('mpich')
# htslib isn't built in time to be used....
parallel = False
diff --git a/var/spack/repos/builtin/packages/keepalived/package.py b/var/spack/repos/builtin/packages/keepalived/package.py
index bb6cf01337..2b1e9f7b07 100644
--- a/var/spack/repos/builtin/packages/keepalived/package.py
+++ b/var/spack/repos/builtin/packages/keepalived/package.py
@@ -25,4 +25,4 @@ class Keepalived(AutotoolsPackage):
version('2.0.12', sha256='fd50e433d784cfd948de5726752cf89ab7001f587fe10a5110c6c7cbda4b7b5e')
version('2.0.11', sha256='a298b0c02a20959cfc365b62c14f45abd50d5e0595b2869f5bce10ec2392fa48')
- depends_on('openssl', type='build')
+ depends_on('openssl')
diff --git a/var/spack/repos/builtin/packages/legion/package.py b/var/spack/repos/builtin/packages/legion/package.py
index cac38dd030..f98e48e187 100644
--- a/var/spack/repos/builtin/packages/legion/package.py
+++ b/var/spack/repos/builtin/packages/legion/package.py
@@ -47,6 +47,8 @@ class Legion(CMakePackage):
description='Build on top of ibv conduit for InfiniBand support')
variant('shared', default=True, description='Build shared libraries')
variant('hdf5', default=True, description='Enable HDF5 support')
+ variant('spy', default=False,
+ description='Enable detailed logging for Legion Spy')
variant('build_type', default='Release',
values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'),
description='The build type to build', multi=False)
@@ -87,4 +89,7 @@ class Legion(CMakePackage):
else:
options.append('-DLegion_USE_HDF5=OFF')
+ if '+spy' in self.spec:
+ options.append('-DLegion_SPY=ON')
+
return options
diff --git a/var/spack/repos/builtin/packages/lhapdf/package.py b/var/spack/repos/builtin/packages/lhapdf/package.py
index 10a69aba75..13adae4818 100644
--- a/var/spack/repos/builtin/packages/lhapdf/package.py
+++ b/var/spack/repos/builtin/packages/lhapdf/package.py
@@ -13,6 +13,7 @@ class Lhapdf(AutotoolsPackage):
homepage = "https://lhapdf.hepforge.org/"
url = "https://lhapdf.hepforge.org/downloads/?f=LHAPDF-6.2.3.tar.gz"
+ version('6.3.0', sha256='ed4d8772b7e6be26d1a7682a13c87338d67821847aa1640d78d67d2cef8b9b5d')
version('6.2.3', sha256='d6e63addc56c57b6286dc43ffc56d901516f4779a93a0f1547e14b32cfd82dd1')
depends_on('autoconf', type='build')
diff --git a/var/spack/repos/builtin/packages/libelf/package.py b/var/spack/repos/builtin/packages/libelf/package.py
index 9054753c48..2f59c61dfa 100644
--- a/var/spack/repos/builtin/packages/libelf/package.py
+++ b/var/spack/repos/builtin/packages/libelf/package.py
@@ -19,7 +19,11 @@ class Libelf(AutotoolsPackage):
# homepage = "http://www.mr511.de/software/english.html"
homepage = "https://directory.fsf.org/wiki/Libelf"
- url = "https://fossies.org/linux/misc/old/libelf-0.8.13.tar.gz"
+
+ urls = [
+ 'https://fossies.org/linux/misc/old/libelf-0.8.13.tar.gz',
+ 'https://ftp.osuosl.org/pub/blfs/conglomeration/libelf/libelf-0.8.13.tar.gz'
+ ]
version('0.8.13', sha256='591a9b4ec81c1f2042a97aa60564e0cb79d041c52faa7416acb38bc95bd2c76d')
diff --git a/var/spack/repos/builtin/packages/libint/package.py b/var/spack/repos/builtin/packages/libint/package.py
index 27fdc3b41d..38cd2f677c 100644
--- a/var/spack/repos/builtin/packages/libint/package.py
+++ b/var/spack/repos/builtin/packages/libint/package.py
@@ -13,6 +13,10 @@ TUNE_VARIANTS = (
'cp2k-lmax-5',
'cp2k-lmax-6',
'cp2k-lmax-7',
+ 'molgw-lmax-4',
+ 'molgw-lmax-5',
+ 'molgw-lmax-6',
+ 'molgw-lmax-7',
)
@@ -136,6 +140,25 @@ class Libint(AutotoolsPackage):
'--enable-generic-code',
'--disable-unrolling',
]
+ if tune_value.startswith('molgw'):
+ lmax = int(tune_value.split('-lmax-')[1])
+ config_args += [
+ '--enable-1body=1',
+ '--enable-eri=0',
+ '--enable-eri2=0',
+ '--enable-eri3=0',
+ '--with-multipole-max-order=0',
+ '--with-max-am={0}'.format(lmax),
+ '--with-eri-max-am={0}'.format(lmax),
+ '--with-eri2-max-am={0}'.format(lmax),
+ '--with-eri3-max-am={0}'.format(lmax),
+ '--with-opt-am=2',
+ '--enable-contracted-ints',
+ # keep code-size at an acceptable limit,
+ # cf. https://github.com/evaleev/libint/wiki#program-specific-notes:
+ '--enable-generic-code',
+ '--disable-unrolling',
+ ]
return config_args
diff --git a/var/spack/repos/builtin/packages/libtree/package.py b/var/spack/repos/builtin/packages/libtree/package.py
index 10ca8db31d..e44a4a8661 100644
--- a/var/spack/repos/builtin/packages/libtree/package.py
+++ b/var/spack/repos/builtin/packages/libtree/package.py
@@ -15,9 +15,9 @@ class Libtree(CMakePackage):
maintainers = ['haampie']
- version('1.2.0', sha256='4316a52aed7c8d2f7d2736c935bbda952204be92e56948110a143283764c427c')
- version('1.1.4', sha256='cfafb24c8f5e0d356c82777c338d58730ca6f3cb76dfe8a6857ee3ad65bf8be7')
- version('1.1.3', sha256='7baf5aaecd3a076bf1e7a1aa86979e7b841ab3f678ca8ac0e2a22bbbccf0dd06')
+ version('1.2.0', sha256='3e74655f22b1dcc19e8a1b9e7796b8ad44bc37f29e9a99134119e8521e28be97')
+ version('1.1.4', sha256='38648f67c8fa72c3a4a3af2bb254b5fd6989c0f1362387ab298176db5cbbcc4e')
+ version('1.1.3', sha256='4c681d7b67ef3d62f95450fb7eb84e33ff10a3b9db1f7e195b965b2c3c58226b')
version('1.1.2', sha256='31641c6bf6c2980ffa7b4c57392460434f97ba66fe51fe6346867430b33a0374')
version('1.1.1', sha256='3e8543145a40a94e9e2ce9fed003d2bf68294e1fce9607028a286bc132e17dc4')
version('1.1.0', sha256='6cf36fb9a4c8c3af01855527d4931110732bb2d1c19be9334c689f1fd1c78536')
diff --git a/var/spack/repos/builtin/packages/libyogrt/package.py b/var/spack/repos/builtin/packages/libyogrt/package.py
index 3590193516..a1ed17b3f1 100644
--- a/var/spack/repos/builtin/packages/libyogrt/package.py
+++ b/var/spack/repos/builtin/packages/libyogrt/package.py
@@ -38,6 +38,9 @@ class Libyogrt(AutotoolsPackage):
conflicts('scheduler=lsf', when='@:1.22')
+ variant('static', default='False',
+ description="build static library")
+
def url_for_version(self, version):
if version < Version(1.21):
return "https://github.com/LLNL/libyogrt/archive/%s.tar.gz" % version
@@ -51,4 +54,7 @@ class Libyogrt(AutotoolsPackage):
if sched != "system":
args.append('--with-%s=%s' % (sched, self.spec[sched].prefix))
+ if '+static' in self.spec:
+ args.append('--enable-static=yes')
+
return args
diff --git a/var/spack/repos/builtin/packages/ligra/package.py b/var/spack/repos/builtin/packages/ligra/package.py
new file mode 100644
index 0000000000..8df4bbabae
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ligra/package.py
@@ -0,0 +1,44 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Ligra(MakefilePackage):
+ """A Lightweight Graph Processing Framework for Shared Memory"""
+
+ homepage = "http://jshun.github.io/ligra/"
+ url = "https://github.com/jshun/ligra/archive/v.1.5.tar.gz"
+
+ version('1.5', sha256='74113a5a3c19a0e319a5b9ebefc8a67c5d18d4d2a9670363092a966f4163f6b7')
+ version('1.4', sha256='bb70a1428c71cf2f7e1512cdedcd8330c754f5a2c8309ab9d9666591cff6a4e1')
+ version('1.3', sha256='df848038734bb9724d6c9bd95595c91eb6b07027642be93bff161f020ff257e4')
+ version('1.2', sha256='ec8778b0762772fc78437243ccaee72066d67a310bc352d6665dd2de520c04cc')
+ version('1.1', sha256='a7311b96fabc286a8f1250d8a6e2d1b1e4545c720fa6bb4acf7ed31211fcc99a')
+ version('1.0', sha256='fb39ae0a3eddb26f37b8cc0a543648575a50bcc488cecd4a5f1beaaf2458736c')
+
+ variant('openmp', default=True, description="Build with OpenMP")
+ variant('mkl', default=False, description="Build with Intel MKL")
+ # TODO: Add cilk variant when spack has a cilk plus package created.
+
+ depends_on('mkl', when='+mkl')
+
+ def setup_build_environment(self, env):
+ if '+openmp' in self.spec:
+ env.set('OPENMP', '1')
+ # when +mkl, MKLROOT will be defined by intel-mkl package,
+ # triggering a build with mkl support
+
+ def setup_run_environment(self, env):
+ env.prepend_path('PATH', self.prefix.apps)
+ env.prepend_path('PATH', self.prefix.utils)
+
+ def build(self, spec, prefix):
+ make('-C', 'apps')
+ make('-C', 'utils')
+
+ def install(self, spec, prefix):
+ install_tree('.', prefix)
+ install_tree('ligra', prefix.include)
diff --git a/var/spack/repos/builtin/packages/lmbench/fix_results_path_for_aarch64.patch b/var/spack/repos/builtin/packages/lmbench/fix_results_path_for_aarch64.patch
new file mode 100644
index 0000000000..dc0f7026a0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/lmbench/fix_results_path_for_aarch64.patch
@@ -0,0 +1,13 @@
+diff --git a/scripts/results b/scripts/results
+index cd07c15..282ed19 100755
+--- a/scripts/results
++++ b/scripts/results
+@@ -27,7 +27,7 @@ cd ../bin/$OS
+ PATH=.:${PATH}; export PATH
+ export SYNC_MAX
+ export OUTPUT
+-lmbench $CONFIG 2>../${RESULTS}
++lmbench $CONFIG 2>${RESULTS}
+
+ if [ X$MAIL = Xyes ]
+ then echo Mailing results
diff --git a/var/spack/repos/builtin/packages/lmbench/package.py b/var/spack/repos/builtin/packages/lmbench/package.py
index e38ca29e24..e0b5fe3620 100644
--- a/var/spack/repos/builtin/packages/lmbench/package.py
+++ b/var/spack/repos/builtin/packages/lmbench/package.py
@@ -19,6 +19,8 @@ class Lmbench(MakefilePackage):
depends_on('libtirpc')
+ patch('fix_results_path_for_aarch64.patch', sha256='2af57abc9058c56b6dd0697bb01a98902230bef92b117017e318faba148eef60', when='target=aarch64:')
+
def setup_build_environment(self, env):
env.prepend_path('CPATH', self.spec['libtirpc'].prefix.include.tirpc)
env.append_flags('LDFLAGS', '-ltirpc')
diff --git a/var/spack/repos/builtin/packages/looptools/package.py b/var/spack/repos/builtin/packages/looptools/package.py
new file mode 100644
index 0000000000..7d31173dcf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/looptools/package.py
@@ -0,0 +1,25 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Looptools(AutotoolsPackage):
+ """LoopTools is a package for evaluation of scalar and tensor one-loop
+ integrals based on the FF package by G.J. van Oldenborgh. It
+ features an easy Fortran, C++, and Mathematica interface to the
+ scalar one-loop functions of FF and in addition provides
+ the 2-, 3-, and 4-point tensor coefficient functions. """
+
+ homepage = "http://www.feynarts.de/looptools/"
+ url = "http://www.feynarts.de/looptools/LoopTools-2.15.tar.gz"
+
+ version('2.15', sha256='a065ffdc4fe6882aa3bb926134ba8ec875d6c0a633c3d4aa5f70db26542713f2')
+ version('2.8', sha256='2395518d0eac9b0883a2c249b9a5ba80df443929c520c45e60f5a4284166eb42')
+
+ def configure_args(self):
+ args = ["FFLAGS=" + self.compiler.f77_pic_flag,
+ "CFLAGS=" + self.compiler.cc_pic_flag]
+ return args
diff --git a/var/spack/repos/builtin/packages/ltrace/package.py b/var/spack/repos/builtin/packages/ltrace/package.py
index 01f0e4fd86..9e0b72804f 100644
--- a/var/spack/repos/builtin/packages/ltrace/package.py
+++ b/var/spack/repos/builtin/packages/ltrace/package.py
@@ -17,3 +17,8 @@ class Ltrace(AutotoolsPackage):
version('0.7.3', sha256='0e6f8c077471b544c06def7192d983861ad2f8688dd5504beae62f0c5f5b9503')
conflicts('platform=darwin', msg='ltrace runs only on Linux.')
+
+ def configure_args(self):
+ # Disable -Werror since some functions used by ltrace
+ # have been deprecated in recent version of glibc
+ return ['--disable-werror']
diff --git a/var/spack/repos/builtin/packages/m4/package.py b/var/spack/repos/builtin/packages/m4/package.py
index 7b649656d0..daf89aed16 100644
--- a/var/spack/repos/builtin/packages/m4/package.py
+++ b/var/spack/repos/builtin/packages/m4/package.py
@@ -36,6 +36,9 @@ class M4(AutotoolsPackage, GNUMirrorPackage):
spec = self.spec
args = ['--enable-c++']
+ if spec.satisfies('%cce@9:'):
+ args.append('LDFLAGS=-rtlib=compiler-rt')
+
if spec.satisfies('%clang') and not spec.satisfies('platform=darwin'):
args.append('LDFLAGS=-rtlib=compiler-rt')
diff --git a/var/spack/repos/builtin/packages/magics/package.py b/var/spack/repos/builtin/packages/magics/package.py
index c9c331eeb5..902ac0db13 100644
--- a/var/spack/repos/builtin/packages/magics/package.py
+++ b/var/spack/repos/builtin/packages/magics/package.py
@@ -19,7 +19,12 @@ class Magics(CMakePackage):
# The policy on which minor releases remain available and which get deleted
# after a newer version becomes available is unclear.
- version('4.2.4', sha256='920c7dbb1aaabe65a31c6c18010829210f8b2f8d614b6c405dc5a4530e346f07')
+ version('4.4.0', sha256='544058cd334f3e28a16d00ea7811e13cdf282f9c1ebec2ad7868171d925abd24')
+ version('4.3.3', sha256='27d3de71cf41f3d557fd85dabaea2baaab34c4c6422a5b5b15071a6a53387601')
+ version('4.3.1', sha256='b1995e2f5bf24943715446d1302cc5d7de4cacfe4cee7c3cfd1037ac183cd181')
+ version('4.3.0', sha256='f6c0d32c243913e53320dd94ce8e1e6a64bd9a44af77d5ac32c062bc18355b8a')
+ version('4.2.6', sha256='9b34a375d9125ab6e8a715b970da2e479f96370bac6a5bb8a015a079ed9e027c')
+ version('4.2.4', sha256='920c7dbb1aaabe65a31c6c18010829210f8b2f8d614b6c405dc5a4530e346f07')
version('4.1.0', sha256='da626c31f53716990754dd72ab7b2f3902a8ad924b23ef3309bd14900d170541')
version('2.34.3', sha256='38487562e83c0470f94d9c7fb9418cbadf92f1e643033237baba2abdc77e6238')
version('2.34.1', sha256='8df27f8f262ebc32a61f8696df15a7b4a6e4203b2a8e53fe7aa13caa1c4e3fa4')
@@ -59,7 +64,10 @@ class Magics(CMakePackage):
depends_on('perl-xml-parser', type='build')
# Non-optional dependencies
- depends_on('proj@:5')
+ # change of proj4 api starting from version 4.3.0
+ # https://github.com/OSGeo/PROJ/wiki/proj.h-adoption-status
+ depends_on('proj@:5', when='@:4.2.6')
+ depends_on('proj@6:', when='@4.3:')
depends_on('boost')
depends_on('expat')
@@ -79,6 +87,10 @@ class Magics(CMakePackage):
depends_on('eccodes', when='grib=eccodes')
depends_on('grib-api', when='grib=grib-api')
+ # Even if netcdf is disabled and -DENABLE_NETCDF=OFF is set, building
+ # magics still requires legacy netcdf-cxx
+ depends_on('netcdf-cxx', when='@4.1.0:4.3.1')
+
# Optional dependencies
depends_on('netcdf-cxx', when='+netcdf')
depends_on('pango', when='+cairo')
@@ -129,7 +141,8 @@ class Magics(CMakePackage):
if self.spec.satisfies('@2.29.1:'):
args.append('-DENABLE_ECCODES=OFF')
- if '+netcdf' in self.spec:
+ # magics@4.2.4:4.3.1 cannot be built without netcdf
+ if '+netcdf' in self.spec or self.spec.satisfies('@4.1.0:4.3.1'):
args.append('-DENABLE_NETCDF=ON')
else:
args.append('-DENABLE_NETCDF=OFF')
diff --git a/var/spack/repos/builtin/packages/mapnik/package.py b/var/spack/repos/builtin/packages/mapnik/package.py
index 2fc61f568d..880bd3bc13 100644
--- a/var/spack/repos/builtin/packages/mapnik/package.py
+++ b/var/spack/repos/builtin/packages/mapnik/package.py
@@ -15,11 +15,12 @@ class Mapnik(AutotoolsPackage):
homepage = "https://mapnik.org/"
url = "https://github.com/mapnik/mapnik/releases/download/v3.0.22/mapnik-v3.0.22.tar.bz2"
+ version('3.0.23', sha256='4b1352e01f7ce25ab099e586d7ae98e0b74145a3bf94dd365cb0a2bdab3b9dc2')
version('3.0.22', sha256='930612ad9e604b6a29b9cea1bc1de85cf7cf2b2b8211f57ec8b6b94463128ab9')
depends_on('python', type=('build', 'run'))
- # Build fails with boost@1.70
- depends_on('boost@:1.69.0+regex+filesystem+system+icu+program_options cxxstd=11')
+ depends_on('boost@:1.72.0 +regex+filesystem+system+icu+program_options cxxstd=11', when='@3.0.23')
+ depends_on('boost@:1.69.0 +regex+filesystem+system+icu+program_options cxxstd=11', when='@3.0.22')
depends_on('icu4c')
depends_on('zlib')
depends_on('freetype')
diff --git a/var/spack/repos/builtin/packages/mcutils/package.py b/var/spack/repos/builtin/packages/mcutils/package.py
new file mode 100644
index 0000000000..3065f70fe0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mcutils/package.py
@@ -0,0 +1,34 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Mcutils(MakefilePackage):
+ """A collection of routines for classification and manipulation of
+ particle physics simulated HepMC event records."""
+
+ homepage = "https://bitbucket.org/andybuckley/mcutils"
+ url = "https://bitbucket.org/andybuckley/mcutils/get/mcutils-1.3.4.tar.gz"
+
+ version('1.3.4', sha256='0bf9795cc248871ab2b663d2eef647311eacaea4982997950096de68747e65a3')
+ version('1.3.3', sha256='bfb2f0e0e6de358928436f309f3f1b084d3d652073c440f262de878332116ecb')
+ version('1.3.2', sha256='e17d417e8d4f8d17a6879ea18dcd2cd76e161d37eae08b84893504d1b08f9708')
+ version('1.3.1', sha256='081263ee6844fccedad780e6a2fbaf1ad0073a6706bc4b34109050b72c2c4b27')
+ version('1.3.0', sha256='20a89ce536547dc8f56e7779a3ec8cfe9987edb1646009ecfc682ff1ddf0277b')
+ version('1.2.1', sha256='004325be41925d97e711ffe4311d9c8aa8e88873541bcc1a385d2e1ce1d17a96')
+ version('1.2.0', sha256='f9589d45bff06d8c8742d35d78d1ed570a0d181fd7ee5d6f97ab9e48f0ee32f4')
+ version('1.1.2', sha256='5a5781caf2d81c21f4b040a1d31975c354526bcf7c8c9067543f7303c8155844')
+ version('1.1.1', sha256='3e5c47d2264886613fc9423b020cf50dc7031a02b752da3a84f794c36ba7443a')
+ version('1.1.0', sha256='96fc2586430032ed4b378edb02150c5c9db405e1767dbf847ffe9ac043daf6e9')
+ version('1.0.3', sha256='b5bec5a4b2146b6987b351d632119c3b4c449c2ee53ae0ddc8cb1d3672907df5')
+ version('1.0.2', sha256='74e2c381f5f3719888b15a2e00075051bb2b84b3d73633d429818a77de66ca7c')
+ version('1.0.1', sha256='bb884a4cfb56b5139c08df0be554466e504e9c46096a858f904d659894a62131')
+ version('1.0.0', sha256='d08dea19fb42b1846e0a7134e2347648b037bf82b2d75086d018734bc2996b06')
+
+ depends_on('heputils', when='@1.1.0:')
+
+ def install(self, spec, prefix):
+ make('install', 'PREFIX={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/minio/package.py b/var/spack/repos/builtin/packages/minio/package.py
new file mode 100644
index 0000000000..4485f650e7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/minio/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Minio(MakefilePackage):
+ """MinIO is a High Performance Object Storage released under Apache
+ License v2.0. It is API compatible with Amazon S3 cloud storage
+ service. Use MinIO to build high performance infrastructure for
+ machine learning, analytics and application data workloads."""
+
+ homepage = "https://min.io/"
+ url = "https://github.com/minio/minio/archive/RELEASE.2020-07-13T18-09-56Z.tar.gz"
+
+ version('2020-07-13T18-09-56Z', sha256='147fca3930389162cc7306a0fa5cf478ee2deba4b31a9317f3d35e82aa58d41e')
+ version('2020-07-12T19-14-17Z', sha256='bb8ba5d93215ab37788171d8b9ce68e78d64e7b7c74aea508c15958158d85b03')
+ version('2020-07-02T00-15-09Z', sha256='4255c4d95a3e010f16a3f1e974768dc68509075403a97a9b9882f7d9e89fedc5')
+
+ depends_on('go', type='build')
+
+ def url_for_version(self, version):
+ return ("https://github.com/minio/minio/archive/RELEASE.{0}.tar.gz".format(version))
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('minio', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/mpifileutils/package.py b/var/spack/repos/builtin/packages/mpifileutils/package.py
index 30fc982505..c0130e554d 100644
--- a/var/spack/repos/builtin/packages/mpifileutils/package.py
+++ b/var/spack/repos/builtin/packages/mpifileutils/package.py
@@ -21,9 +21,10 @@ class Mpifileutils(Package):
git = "https://github.com/hpc/mpifileutils.git"
version('develop', branch='master')
- version('0.10', sha256='5a71a9acd9841c3c258fc0eaea942f18abcb40098714cc90462b57696c07e3c5')
- version('0.9.1', sha256='15a22450f86b15e7dc4730950b880fda3ef6f59ac82af0b268674d272aa61c69')
- version('0.9', sha256='1b8250af01aae91c985ca5d61521bfaa4564e46efa15cee65cd0f82cf5a2bcfb')
+ version('0.10.1', sha256='4c8409ef4140f6f557d0e93f0c1267baf5d893c203b29fb7a33d9bc3c5a5d25c')
+ version('0.10', sha256='5a71a9acd9841c3c258fc0eaea942f18abcb40098714cc90462b57696c07e3c5')
+ version('0.9.1', sha256='15a22450f86b15e7dc4730950b880fda3ef6f59ac82af0b268674d272aa61c69')
+ version('0.9', sha256='1b8250af01aae91c985ca5d61521bfaa4564e46efa15cee65cd0f82cf5a2bcfb')
conflicts('platform=darwin')
diff --git a/var/spack/repos/builtin/packages/mumax/package.py b/var/spack/repos/builtin/packages/mumax/package.py
new file mode 100644
index 0000000000..ac9183c45e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/mumax/package.py
@@ -0,0 +1,62 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+import os
+import shutil
+
+
+class Mumax(MakefilePackage, CudaPackage):
+ """GPU accelerated micromagnetic simulator."""
+
+ homepage = "http://mumax.github.io"
+ url = "https://github.com/mumax/3/archive/3.10beta.tar.gz"
+
+ version('3.10beta', sha256='f20fbd90a4b531fe5a0d8acc3d4505a092a5e426f5f53218a22a87d445daf0e9')
+
+ variant('cuda', default=True,
+ description='Use CUDA; must be true')
+ variant('cuda_arch', 'N/A',
+ description='Mumax will build GPU kernels that it supports')
+ variant('gnuplot', default=False,
+ description='Use gnuplot for graphs')
+
+ depends_on('cuda')
+ depends_on('go', type='build')
+ depends_on('gnuplot', type='run', when='+gnuplot')
+
+ conflicts('~cuda', msg='mumax requires cuda')
+
+ patch('https://github.com/mumax/3/commit/2cf5c9a6985c9eb16a124c6bd96aed75b4a30c24.patch',
+ sha256='a43b2ca6c9f9edfb1fd6d916a599f85a57c8bb3f9ee38148b1988fd82feec8ad')
+
+ @property
+ def gopath(self):
+ return self.stage.path
+
+ @property
+ def mumax_gopath_dir(self):
+ return join_path(self.gopath, 'src/github.com/mumax/3')
+
+ def do_stage(self, mirror_only=False):
+ super(Mumax, self).do_stage(mirror_only)
+ if not os.path.exists(self.mumax_gopath_dir):
+ # Need to move source to $GOPATH and then symlink the original
+ # stage directory
+ shutil.move(self.stage.source_path, self.mumax_gopath_dir)
+ force_symlink(self.mumax_gopath_dir, self.stage.source_path)
+
+ # filter out targets that do not exist
+ def edit(self, spec, prefix):
+ filter_file(r'(^ln -sf .*)', r'#\1', 'make.bash')
+ filter_file(r'(^\(cd test)', r'#\1', 'make.bash')
+
+ def setup_build_environment(self, env):
+ env.prepend_path('GOPATH', self.gopath)
+
+ def install(self, spec, prefix):
+ make()
+ with working_dir(self.gopath):
+ install_tree('bin', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/nag/package.py b/var/spack/repos/builtin/packages/nag/package.py
index ae191f9c08..c484350570 100644
--- a/var/spack/repos/builtin/packages/nag/package.py
+++ b/var/spack/repos/builtin/packages/nag/package.py
@@ -12,7 +12,7 @@ class Nag(Package):
homepage = "http://www.nag.com/nagware/np.asp"
maintainers = ['ThemosTsikas']
- version('7.0', sha256='bd53c988efe4bfd476a5f556ebd2b8924dc2a039f485e8e017581bca4e12ba01')
+ version('7.0', sha256='ef65805004255881a4ed27fe7bdb5b05dbbe5fde5bad287f71258fce1f02be77')
version('6.2', sha256='9b60f6ffa4f4be631079676963e74eea25e8824512e5c864eb06758b2a3cdd2d')
version('6.1', sha256='32580e0004e6798abf1fa52f0070281b28abeb0da2387530a4cc41218e813c7c')
diff --git a/var/spack/repos/builtin/packages/namd/package.py b/var/spack/repos/builtin/packages/namd/package.py
index a85dd7fd42..e14e92347e 100644
--- a/var/spack/repos/builtin/packages/namd/package.py
+++ b/var/spack/repos/builtin/packages/namd/package.py
@@ -19,8 +19,9 @@ class Namd(MakefilePackage):
manual_download = True
version("develop", branch="master")
+ version('2.14b2', sha256='cb4bd918d2d545bb618e4b4a20023a53916f0aa362d9e57f3de1562c36240b00')
version('2.14b1', sha256='9407e54f5271b3d3039a5a9d2eae63c7e108ce31b7481e2197c19e1125b43919')
- version('2.13', '9e3323ed856e36e34d5c17a7b0341e38')
+ version('2.13', '9e3323ed856e36e34d5c17a7b0341e38', preferred=True)
version('2.12', '2a1191909b1ab03bf0205971ad4d8ee9')
variant('fftw', default='3', values=('none', '2', '3', 'mkl'),
diff --git a/var/spack/repos/builtin/packages/ncl/package.py b/var/spack/repos/builtin/packages/ncl/package.py
index 4d9980ecc5..046dd9b3a8 100644
--- a/var/spack/repos/builtin/packages/ncl/package.py
+++ b/var/spack/repos/builtin/packages/ncl/package.py
@@ -144,7 +144,9 @@ class Ncl(Package):
c2f_flags.extend(['-lgfortran', '-lm'])
elif self.compiler.name == 'intel':
fc_flags.append('-fp-model precise')
- cc_flags.append('-fp-model precise')
+ cc_flags.append('-fp-model precise'
+ ' -std=c99'
+ ' -D_POSIX_C_SOURCE=2 -D_GNU_SOURCE')
c2f_flags.extend(['-lifcore', '-lifport'])
if self.spec.satisfies('%gcc@10:'):
diff --git a/var/spack/repos/builtin/packages/nco/package.py b/var/spack/repos/builtin/packages/nco/package.py
index 859dac6ab7..cd30f8742a 100644
--- a/var/spack/repos/builtin/packages/nco/package.py
+++ b/var/spack/repos/builtin/packages/nco/package.py
@@ -13,6 +13,12 @@ class Nco(AutotoolsPackage):
homepage = "http://nco.sourceforge.net/"
url = "https://github.com/nco/nco/archive/4.6.7.tar.gz"
+ version('4.9.3', sha256='eade5b79f3814b11ae3f52c34159567e76a73f05f0ab141eccaac68f0ca94aee')
+ version('4.9.2', sha256='1a98c37c946c00232fa7319d00d1d80f77603adda7c9239d10d68a8a3545a4d5')
+ version('4.9.1', sha256='9592efaf0dfd6ccdefd0b417d990cfccae7e89c20d90fb44ead6263009778834')
+ version('4.9.0', sha256='21dd53f427793cbc52d1c007e9b7339c83f6944a937a1acfbbe733e49b65378b')
+ version('4.8.1', sha256='ddae3fed46c266798ed1176d6a70b36376d2d320fa933c716a623172d1e13c68')
+ version('4.8.0', sha256='91f95ebfc9baa888adaec3016ca18a6297e2881b1429d74543a27fdfbe15fcab')
version('4.7.9', sha256='048f6298bceb40913c3ae433f875dea1e9129b1c86019128e7271d08f274a879')
version('4.6.7', sha256='2fe2dabf14a60bface694307cbe719df57103682b715348e9d77bfe8d31487f3')
version('4.6.6', sha256='079d83f800b73d9b12b8de1634a88c2cbe40a639aaf7bc056cd2e836c6047697')
diff --git a/var/spack/repos/builtin/packages/ncview/package.py b/var/spack/repos/builtin/packages/ncview/package.py
index f142a435f2..3eb944ce9c 100644
--- a/var/spack/repos/builtin/packages/ncview/package.py
+++ b/var/spack/repos/builtin/packages/ncview/package.py
@@ -11,6 +11,7 @@ class Ncview(AutotoolsPackage):
homepage = "http://meteora.ucsd.edu/~pierce/ncview_home_page.html"
url = "ftp://cirrus.ucsd.edu/pub/ncview/ncview-2.1.7.tar.gz"
+ version('2.1.8', sha256='e8badc507b9b774801288d1c2d59eb79ab31b004df4858d0674ed0d87dfc91be')
version('2.1.7', sha256='a14c2dddac0fc78dad9e4e7e35e2119562589738f4ded55ff6e0eca04d682c82')
depends_on('netcdf-c')
diff --git a/var/spack/repos/builtin/packages/nn-c/package.py b/var/spack/repos/builtin/packages/nn-c/package.py
new file mode 100644
index 0000000000..20fa95054d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/nn-c/package.py
@@ -0,0 +1,33 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class NnC(AutotoolsPackage):
+ """nn: Natural Neighbours interpolation. nn is a C code
+ for Natural Neighbours interpolation of 2D scattered data.
+ It provides a C library and a command line utility nnbathy."""
+
+ homepage = "https://github.com/sakov/nn-c"
+ git = "https://github.com/sakov/nn-c.git"
+
+ version('master', branch='master')
+ version('1.86.2', commit='343c7784d38d3270d75d450569fc0b64767c37e9')
+
+ variant('pic', default=True,
+ description='Produce position-independent code (for shared libs)')
+
+ configure_directory = 'nn'
+
+ def configure_args(self):
+ args = []
+ if '+pic' in self.spec:
+ args.extend([
+ 'CFLAGS={0}'.format(self.compiler.pic_flag),
+ 'CXXFLAGS={0}'.format(self.compiler.pic_flag),
+ 'FFLAGS={0}'.format(self.compiler.pic_flag)
+ ])
+ return args
diff --git a/var/spack/repos/builtin/packages/onednn/package.py b/var/spack/repos/builtin/packages/onednn/package.py
index 82d22296f9..eb98cfe2ed 100644
--- a/var/spack/repos/builtin/packages/onednn/package.py
+++ b/var/spack/repos/builtin/packages/onednn/package.py
@@ -12,10 +12,11 @@ class Onednn(CMakePackage):
Formerly known as Intel MKL-DNN and DNNL."""
homepage = "https://01.org/dnnl"
- url = "https://github.com/oneapi-src/oneDNN/archive/v1.5.tar.gz"
+ url = "https://github.com/oneapi-src/oneDNN/archive/v1.5.1.tar.gz"
maintainers = ['adamjstewart']
+ version('1.5.1', sha256='aef4d2a726f76f5b98902491a1a4ac69954039aa8e5a1d67ef6ce58ed00e23a6')
version('1.5', sha256='2aacc00129418185e0bc1269d3ef82f93f08de2c336932989c0c360279129edb')
version('1.4', sha256='54737bcb4dc1961d32ee75da3ecc529fa48198f8b2ca863a079e19a9c4adb70f')
version('1.3', sha256='b87c23b40a93ef5e479c81028db71c4847225b1a170f82af5e79f1cda826d3bf')
diff --git a/var/spack/repos/builtin/packages/openblas/openblas_fujitsu2.patch b/var/spack/repos/builtin/packages/openblas/openblas_fujitsu2.patch
new file mode 100644
index 0000000000..bfda30cced
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openblas/openblas_fujitsu2.patch
@@ -0,0 +1,13 @@
+--- OpenBLAS-0.3.10/f_check 2020-07-04 00:02:19.000000000 +0900
++++ OpenBLAS-0.3.10/f_check_fix 2020-07-04 00:00:52.000000000 +0900
+@@ -337,8 +337,8 @@
+ && ($flags !~ /kernel32/)
+ && ($flags !~ /advapi32/)
+ && ($flags !~ /shell32/)
+- && ($flags !~ /omp/ || ($vendor !~ /PGI/ && $flags =~ /omp/))
+- && ($flags !~ /[0-9]+/)
++ && ($flags !~ /omp/ || ($vendor !~ /PGI/ && $vendor !~ /FUJITSU/ && $flags =~ /omp/))
++ && ($flags !~ /[0-9]+/ || ($vendor == FUJITSU && $flags =~ /^-lfj90/))
+ && ($flags !~ /^\-l$/)
+ ) {
+ $linker_l .= $flags . " ";
diff --git a/var/spack/repos/builtin/packages/openblas/package.py b/var/spack/repos/builtin/packages/openblas/package.py
index 61a530b37f..ad0a6c82f8 100644
--- a/var/spack/repos/builtin/packages/openblas/package.py
+++ b/var/spack/repos/builtin/packages/openblas/package.py
@@ -99,6 +99,7 @@ class Openblas(MakefilePackage):
# Add conditions to f_check to determine the Fujitsu compiler
patch('openblas_fujitsu.patch', when='%fj')
+ patch('openblas_fujitsu2.patch', when='@0.3.10 %fj')
# See https://github.com/spack/spack/issues/3036
conflicts('%intel@16', when='@0.2.15:0.2.19')
diff --git a/var/spack/repos/builtin/packages/opencascade/package.py b/var/spack/repos/builtin/packages/opencascade/package.py
index 8267716e78..7df9668f01 100644
--- a/var/spack/repos/builtin/packages/opencascade/package.py
+++ b/var/spack/repos/builtin/packages/opencascade/package.py
@@ -16,6 +16,8 @@ class Opencascade(CMakePackage):
homepage = "https://www.opencascade.com"
url = "http://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=refs/tags/V7_4_0;sf=tgz"
+ version('7.4.0p1', extension='tar.gz',
+ sha256='e00fedc221560fda31653c23a8f3d0eda78095c87519f338d4f4088e2ee9a9c0')
version('7.4.0', extension='tar.gz',
sha256='655da7717dac3460a22a6a7ee68860c1da56da2fec9c380d8ac0ac0349d67676')
@@ -32,6 +34,14 @@ class Opencascade(CMakePackage):
depends_on('vtk', when='+vtk')
depends_on('freeimage', when='+freeimage')
depends_on('rapidjson', when='+rapidjson')
+ depends_on('freetype')
+ depends_on('tcl')
+ depends_on('tk')
+ depends_on('gl')
+
+ def url_for_version(self, version):
+ url = "http://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=refs/tags/V{0};sf=tgz"
+ return url.format(version.underscored)
def cmake_args(self):
args = []
diff --git a/var/spack/repos/builtin/packages/openfoam/package.py b/var/spack/repos/builtin/packages/openfoam/package.py
index 275af6045f..d347c61cfa 100644
--- a/var/spack/repos/builtin/packages/openfoam/package.py
+++ b/var/spack/repos/builtin/packages/openfoam/package.py
@@ -349,7 +349,7 @@ class Openfoam(Package):
# kahip patch (wmake)
patch('https://develop.openfoam.com/Development/openfoam/commit/8831dfc58b0295d0d301a78341dd6f4599073d45.patch',
when='@1806',
- sha256='21f1ab68c82dfa41ed1a4439427c94c43ddda02c84175c30da623d905d3e5d61'
+ sha256='531146be868dd0cda70c1cf12a22110a38a30fd93b5ada6234be3d6c9256c6cf'
)
# Some user config settings
diff --git a/var/spack/repos/builtin/packages/openloops/package.py b/var/spack/repos/builtin/packages/openloops/package.py
new file mode 100644
index 0000000000..884910beb3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openloops/package.py
@@ -0,0 +1,123 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+import os
+
+
+class Openloops(Package):
+ """The OpenLoops 2 program is a fully automated implementation of the
+ Open Loops algorithm combined with on-the-fly reduction methods,
+ which allows for the fast and stable numerical evaluation of tree
+ and one-loop matrix elements for any Standard Model process
+ at NLO QCD and NLO EW. """
+
+ homepage = "https://openloops.hepforge.org/"
+ url = "https://openloops.hepforge.org/downloads?f=OpenLoops-2.1.1.tar.gz"
+
+ version('2.1.1', sha256='f1c47ece812227eab584e2c695fef74423d2f212873f762b8658f728685bcb91')
+
+ all_processes = (
+ "tbln", "tbln_ew", "tbqq", "tbw", "pptttt", "pptttt_ew", "pptt",
+ "pptt_ew", "ppttbb", "ppttj", "ppttj_ew", "ppttjj",
+ "pptaj", "pptajj", "pptllj", "pptlljj", "pptln", "pptw", "pptwj",
+ "pptzj", "pptzjj", "ppthj", "ppthjj", "pptj",
+ "pptjj", "ppjj", "ppjj_ew", "ppjjj", "ppjjj_ew", "ppjjj_nf5", "ppjjjj",
+ "pplllvvv_ew", "ppatt", "ppatt_ew",
+ "ppattj", "pplltt", "pplltt_ew", "ppllttj", "ppllttj_ew", "pplntt",
+ "pplnttj", "ppwtt", "ppwtt_ew", "ppwttj",
+ "ppwttj_ew", "ppztt", "ppztt_ew", "ppzttj", "ppaatt", "ppwwtt",
+ "ppzatt", "ppzztt", "ppvvvv", "ppaaaj2", "ppllaa",
+ "ppllaaj", "pplllla", "ppvvv", "ppvvv2", "ppvvv_ew", "ppvvvj",
+ "ppaajj", "ppaajj2", "ppaajjj", "pplla", "pplla2",
+ "pplla_ew", "ppllaj", "ppllaj2", "ppllaj_ew", "ppllaj_nf5", "ppllajj",
+ "ppllll", "ppllll2", "ppllll2_nf5",
+ "ppllll2_onlyh", "ppllll_ew", "ppllllj", "ppllllj2", "ppllllj2_nf5",
+ "ppllllj2_nf5_notridr", "ppllllj2_nf5_sr",
+ "ppllllj2_onlyh", "ppllnnjj_ew", "ppllnnjj_vbs", "pplnajj", "ppvv",
+ "ppvv2", "ppvv_ew", "ppvvj", "ppvvj2",
+ "ppvvj_ew", "ppwajj", "ppwwjj", "ppzajj", "ppzwj_ew", "ppzwjj",
+ "ppzzjj", "ppajj", "ppajj2", "ppajj_ew", "ppajjj",
+ "ppllj", "ppllj2", "ppllj_ew", "ppllj_nf5", "pplljj", "pplljj_ew",
+ "pplljjj", "pplnj_ckm", "pplnjj", "pplnjj_ckm",
+ "pplnjj_ew", "pplnjjj", "ppnnjj_ew", "ppnnjjj", "ppvj", "ppvj2",
+ "ppvj_ew", "ppwj_ckm", "ppwjj", "ppwjj_ckm",
+ "ppwjj_ew", "ppwjjj", "ppzjj", "ppzjj_ew", "ppzjjj", "pphtt",
+ "pphtt_ew", "pphttj", "pphlltt", "pphll", "pphll2",
+ "pphll_ew", "pphllj", "pphllj2", "pphllj_ew", "pphlljj", "pphlljj_top",
+ "pphlnj_ckm", "pphlnjj", "pphv", "pphv_ew",
+ "pphwjj", "pphz2", "pphzj2", "pphzjj", "pphhtt", "pphhv", "pphhh2",
+ "heftpphh", "heftpphhj", "heftpphhjj", "pphh2",
+ "pphhj2", "pphhjj2", "pphhjj_vbf", "bbhj", "heftpphj", "heftpphjj",
+ "heftpphjjj", "pphbb", "pphbbj", "pphj2",
+ "pphjj2", "pphjj_vbf", "pphjj_vbf_ew", "pphjjj2", "eetttt", "eettttj",
+ "eellllbb", "eett", "eett_ew", "eettj",
+ "eettjj", "eevtt", "eevttj", "eevttjj", "eevvtt", "eevvttj",
+ "eellll_ew", "eevv_ew", "eevvjj", "eell_ew", "eevjj",
+ "eehtt", "eehttj", "eehll_ew", "eehvtt", "eehhtt", "heftppllj",
+ "heftpplljj", "heftpplljjj")
+
+ variant('compile_extra', default=False,
+ description='Compile real radiation tree amplitudes')
+ variant('processes', description='Processes to install. See https://' +
+ 'openloops.hepforge.org/process_' +
+ 'library.php?repo=public for details',
+ values=disjoint_sets(('all.coll',), ('lhc.coll',), ('lcg.coll',),
+ all_processes).with_default('lhc.coll'))
+
+ variant('num_jobs', description='Number of parallel jobs to run. ' +
+ 'Set to 1 if compiling a large number' +
+ 'of processes (e.g. lcg.coll)', default=0)
+ depends_on('python', type=("build", "run"))
+
+ phases = ['configure', 'build', 'build_processes', 'install']
+
+ def configure(self, spec, prefix):
+ spack_env = ('PATH LD_LIBRARY_PATH CPATH C_INCLUDE_PATH' +
+ 'CPLUS_INCLUDE_PATH INTEL_LICENSE_FILE').split()
+ for k in env.keys():
+ if k.startswith('SPACK_'):
+ spack_env.append(k)
+
+ spack_env = ' '.join(spack_env)
+ is_intel = self.spec.satisfies('%intel')
+ njobs = self.spec.variants['num_jobs'].value
+
+ with open('openloops.cfg', 'w') as f:
+ f.write('[OpenLoops]\n')
+ f.write('import_env={0}\n'.format(spack_env))
+ f.write('num_jobs = {0}\n'.format(njobs))
+ f.write('cc = {0}\n'.format(env['SPACK_CC']))
+ f.write('cxx = {0}\n'.format(env['SPACK_CXX']))
+ f.write('fortran_compiler = {0}\n'.format(env['SPACK_FC']))
+ if self.spec.satisfies('@1.3.1') and not is_intel:
+ f.write('gfortran_f_flags = -ffree-line-length-none\n')
+ if self.spec.satisfies('@2.1.1') and not is_intel:
+ f.write('gfortran_f_flags = -ffree-line-length-none ' +
+ '-fdollar-ok -mcmodel=medium\n')
+
+ if self.spec.satisfies('@:1.999.999 processes=lcg.coll'):
+ copy(join_path(os.path.dirname(__file__), 'sft1.coll'), 'lcg.coll')
+ elif self.spec.satisfies('@2:2.999.999 processes=lcg.coll'):
+ copy(join_path(os.path.dirname(__file__), 'sft2.coll'), 'lcg.coll')
+
+ def build(self, spec, prefix):
+ scons = Executable('./scons')
+ scons('generator=1', 'compile=2')
+
+ def build_processes(self, spec, prefix):
+ ol = Executable('./openloops')
+ processes = self.spec.variants['processes'].value
+ if 'compile_extra' in self.spec:
+ ce = 'compile_extra=1'
+ else:
+ ce = ''
+
+ ol('libinstall', ce, *processes)
+
+ def install(self, spec, prefix):
+ install_tree(join_path(self.stage.path, 'spack-src'),
+ self.prefix,
+ ignore=lambda x: x in ('process_obj', 'process_src'))
diff --git a/var/spack/repos/builtin/packages/openloops/sft1.coll b/var/spack/repos/builtin/packages/openloops/sft1.coll
new file mode 100644
index 0000000000..1a4bb5d404
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openloops/sft1.coll
@@ -0,0 +1,26 @@
+ppll
+ppllj
+pplljj
+ppln
+pplnj
+pplnjj
+pptt
+ppttj
+ppttjj
+pptj
+pptjj
+ppjj
+ppjjj
+ppjjjj
+ppaa
+ppaaj
+ppaajj
+ppw
+ppwj
+ppwjj
+ppz
+ppzj
+ppzjj
+tbw
+eevvjj
+eett
diff --git a/var/spack/repos/builtin/packages/openloops/sft2.coll b/var/spack/repos/builtin/packages/openloops/sft2.coll
new file mode 100644
index 0000000000..b7d9b2423c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openloops/sft2.coll
@@ -0,0 +1,76 @@
+pptttt
+pptt
+pptt_ew
+ppttbb
+ppttj
+ppttj_ew
+pptw
+pptj
+pptjj
+ppjj
+ppjj_ew
+ppjjj
+ppjjj_ew
+ppatt
+ppattj
+pplltt
+ppllttj
+pplntt
+pplnttj
+ppwtt
+ppwttj
+ppllaa
+pplllla
+ppvvv
+ppvvv_ew
+ppvvvj
+ppaaj
+ppaaj2
+pplla
+pplla_ew
+ppllaj
+ppllll
+ppllll2
+ppllll2_onlyh
+ppllll_ew
+ppllllj
+ppllllj2
+ppllllj2_onlyh
+ppllnnjj_ew
+ppllnnjj_vbs
+pplnajj
+ppvv
+ppvv2
+ppvv_ew
+ppvvj
+ppvvj2
+ppvvj_ew
+ppajj
+ppajj_ew
+ppllj
+ppllj_ew
+pplljj
+pplljj_ew
+pplnjj
+pplnjj_ew
+ppnnjj_ew
+ppvj
+ppvj_ew
+ppwjj
+ppwjj_ew
+ppzjj
+ppzjj_ew
+pphtt
+pphtt_ew
+pphttj
+bbhj
+heftpphj
+heftpphjj
+pph2
+pphbb
+pphbbj
+pphj2
+pphjj_vbf
+pphjj_vbf_ew
+eett
+tbw
diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py
index 4184e64f02..82838e5a87 100644
--- a/var/spack/repos/builtin/packages/openmpi/package.py
+++ b/var/spack/repos/builtin/packages/openmpi/package.py
@@ -219,6 +219,8 @@ class Openmpi(AutotoolsPackage):
variant('cxx', default=False, description='Enable C++ MPI bindings')
variant('cxx_exceptions', default=False, description='Enable C++ Exception support')
variant('gpfs', default=True, description='Enable GPFS support (if present)')
+ variant('singularity', default=False,
+ description="Build support for the Singularity container")
# Adding support to build a debug version of OpenMPI that activates
# Memchecker, as described here:
#
@@ -265,6 +267,8 @@ class Openmpi(AutotoolsPackage):
depends_on('sqlite', when='+sqlite3@:1.11')
depends_on('zlib', when='@3.0.0:')
depends_on('valgrind~mpi', when='+memchecker')
+ # Singularity release 3 works better
+ depends_on('singularity@3.0.0:', when='+singularity')
depends_on('opa-psm2', when='fabrics=psm2')
depends_on('rdma-core', when='fabrics=verbs')
@@ -317,6 +321,8 @@ class Openmpi(AutotoolsPackage):
conflicts('schedulers=loadleveler', when='@3.0.0:',
msg='The loadleveler scheduler is not supported with '
'openmpi(>=3.0.0).')
+ conflicts('+singularity', when='@5:',
+ msg='singularity support has been dropped in OpenMPI 5')
filter_compiler_wrappers('openmpi/*-wrapper-data*', relative_root='share')
@@ -528,6 +534,10 @@ class Openmpi(AutotoolsPackage):
'--with-valgrind={0}'.format(spec['valgrind'].prefix),
])
+ # Singularity container support
+ if spec.satisfies('+singularity @:4.9'):
+ singularity_opt = '--with-singularity={0}'.format(spec['singularity'].prefix)
+ config_args.append(singularity_opt)
# Hwloc support
if spec.satisfies('@1.5.2:'):
config_args.append('--with-hwloc={0}'.format(spec['hwloc'].prefix))
diff --git a/var/spack/repos/builtin/packages/openslide/package.py b/var/spack/repos/builtin/packages/openslide/package.py
index d86af5a1aa..c41da2461b 100644
--- a/var/spack/repos/builtin/packages/openslide/package.py
+++ b/var/spack/repos/builtin/packages/openslide/package.py
@@ -19,3 +19,6 @@ class Openslide(AutotoolsPackage):
depends_on('libtiff')
depends_on('libxml2')
depends_on('sqlite@3.6:')
+ depends_on('glib')
+ depends_on('cairo+pdf')
+ depends_on('gdk-pixbuf')
diff --git a/var/spack/repos/builtin/packages/parallelmergetree/package.py b/var/spack/repos/builtin/packages/parallelmergetree/package.py
new file mode 100644
index 0000000000..36069e755f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/parallelmergetree/package.py
@@ -0,0 +1,34 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Parallelmergetree(CMakePackage):
+ """A multi-runtime implementation of a distributed merge tree
+ segmentation algorithm. The implementation relies on the framework
+ BabelFlow, which allows to execute the algorithm on different runtime
+ systems."""
+
+ homepage = "https://bitbucket.org/cedmav/parallelmergetree"
+ git = "https://bitbucket.org/cedmav/parallelmergetree.git"
+
+ maintainers = ['spetruzza']
+
+ version('develop',
+ commit='6774ed74fd13b9747ac792978a676ce6e8b05cab',
+ submodules=True)
+
+ depends_on('babelflow@develop')
+
+ variant("shared", default=True, description="Build ParallelMergeTree as shared libs")
+
+ def cmake_args(self):
+ args = [
+ '-DBUILD_SHARED_LIBS:BOOL={0}'.format(
+ 'ON' if '+shared' in spec else 'OFF'),
+ '-DLIBRARY_ONLY=ON'
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/poppler/package.py b/var/spack/repos/builtin/packages/poppler/package.py
index 2848c81eb1..6ecab70351 100644
--- a/var/spack/repos/builtin/packages/poppler/package.py
+++ b/var/spack/repos/builtin/packages/poppler/package.py
@@ -15,6 +15,7 @@ class Poppler(CMakePackage):
git = "https://gitlab.freedesktop.org/poppler/poppler.git"
version('master', branch='master')
+ version('0.90.1', sha256='984d82e72e91418d280885298c8bdc855a2fd92665fd52a1345b27235e0c71c4')
version('0.87.0', sha256='6f602b9c24c2d05780be93e7306201012e41459f289b8279a27a79431ad4150e')
version('0.79.0', sha256='f985a4608fe592d2546d9d37d4182e502ff6b4c42f8db4be0a021a1c369528c8')
version('0.77.0', sha256='7267eb4cbccd64a58244b8211603c1c1b6bf32c7f6a4ced2642865346102f36b')
diff --git a/var/spack/repos/builtin/packages/precice/package.py b/var/spack/repos/builtin/packages/precice/package.py
index 45548275c8..36e7811d81 100644
--- a/var/spack/repos/builtin/packages/precice/package.py
+++ b/var/spack/repos/builtin/packages/precice/package.py
@@ -19,6 +19,7 @@ class Precice(CMakePackage):
maintainers = ['fsimonis', 'MakisH']
version('develop', branch='develop')
+ version('2.1.0', sha256='1e6432724f70d0c6c05fdd645e0026754edbc547719a35bf1d3c12a779b1d00e')
version('2.0.2', sha256='72864480f32696e7b6da94fd404ef5cd6586e2e1640613e46b75f1afac8569ed')
version('2.0.1', sha256='e4fe2d2063042761ab325f8c802f88ae088c90862af288ad1a642967d074bd50')
version('2.0.0', sha256='c8979d366f06e35626a8da08a1c589df77ec13972eb524a1ba99a011e245701f')
@@ -48,6 +49,7 @@ class Precice(CMakePackage):
depends_on('libxml2')
depends_on('mpi', when='+mpi')
depends_on('petsc@3.6:', when='+petsc')
+ depends_on('petsc@3.12:', when='+petsc@2.1.0:')
# Python 3 support was added in version 2.0
depends_on('python@2.7:2.8', when='@:1.9+python', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/prometheus/package.py b/var/spack/repos/builtin/packages/prometheus/package.py
new file mode 100644
index 0000000000..10a9e956c3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/prometheus/package.py
@@ -0,0 +1,34 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Prometheus(MakefilePackage):
+ """Prometheus, a Cloud Native Computing Foundation project, is a
+ systems and service monitoring system."""
+
+ homepage = "https://prometheus.io/"
+ url = "https://github.com/prometheus/prometheus/archive/v2.19.2.tar.gz"
+
+ version('2.19.2', sha256='d4e84cae2fed6761bb8a80fcc69b6e0e9f274d19dffc0f38fb5845f11da1bbc3')
+ version('2.19.1', sha256='b72b9b6bdbae246dcc29ef354d429425eb3c0a6e1596fc8b29b502578a4ce045')
+ version('2.18.2', sha256='a26c106c97d81506e3a20699145c11ea2cce936427a0e96eb2fd0dc7cd1945ba')
+ version('2.17.1', sha256='d0b53411ea0295c608634ca7ef1d43fa0f5559e7ad50705bf4d64d052e33ddaf')
+ version('2.17.0', sha256='b5e508f1c747aaf50dd90a48e5e2a3117fec2e9702d0b1c7f97408b87a073009')
+
+ depends_on('go', type='build')
+ depends_on('node-js@11.10.1:', type='build')
+ depends_on('yarn', type='build')
+
+ def build(self, spec, prefix):
+ make('build', parallel=False)
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install('prometheus', prefix.bin)
+ install('promtool', prefix.bin)
+ install('tsdb/tsdb', prefix.bin)
+ install_tree('documentation', prefix.documentation)
diff --git a/var/spack/repos/builtin/packages/protobuf/package.py b/var/spack/repos/builtin/packages/protobuf/package.py
index 1cbd94b314..060d345b45 100644
--- a/var/spack/repos/builtin/packages/protobuf/package.py
+++ b/var/spack/repos/builtin/packages/protobuf/package.py
@@ -12,8 +12,13 @@ class Protobuf(Package):
"""Google's data interchange format."""
homepage = "https://developers.google.com/protocol-buffers"
- url = "https://github.com/protocolbuffers/protobuf/archive/v3.10.1.tar.gz"
+ url = "https://github.com/protocolbuffers/protobuf/archive/v3.12.2.tar.gz"
+ version('3.12.2', sha256='bb8ce9ba11eb7bccf080599fe7cad9cc461751c8dd1ba61701c0070d58cde973')
+ version('3.12.1', sha256='cb9b3f9d625b5739a358268eb3421de11cacd90025f5f7672c3930553eca810e')
+ version('3.12.0', sha256='946ba5371e423e1220d2cbefc1f65e69a1e81ca5bab62a03d66894172983cfcd')
+ version('3.11.4', sha256='a79d19dcdf9139fa4b81206e318e33d245c4c9da1ffed21c87288ed4380426f9')
+ version('3.11.3', sha256='cf754718b0aa945b00550ed7962ddc167167bd922b842199eeb6505e6f344852')
version('3.11.2', sha256='e8c7601439dbd4489fe5069c33d374804990a56c2f710e00227ee5d8fd650e67')
version('3.11.1', sha256='4f8e805825c53bbc3c9f6b6abc009b5b5679e4702bccfca1121c42ff5ec801c7')
version('3.11.0', sha256='6d356a6279cc76d2d5c4dfa6541641264b59eae0bc96b852381361e3400d1f1c')
diff --git a/var/spack/repos/builtin/packages/psi4/package.py b/var/spack/repos/builtin/packages/psi4/package.py
index 64cb85a5ee..bc2e6db011 100644
--- a/var/spack/repos/builtin/packages/psi4/package.py
+++ b/var/spack/repos/builtin/packages/psi4/package.py
@@ -51,7 +51,7 @@ class Psi4(CMakePackage):
]
@run_after('install')
- def filter_compilers(self, spec, prefix):
+ def filter_compilers(self):
"""Run after install to tell the configuration files to
use the compilers that Spack built the package with.
@@ -59,6 +59,9 @@ class Psi4(CMakePackage):
Spack's generic cxx. We want it to be bound to
whatever compiler it was built with."""
+ spec = self.spec
+ prefix = spec.prefix
+
kwargs = {'ignore_absent': True, 'backup': False, 'string': True}
cc_files = ['bin/psi4-config']
diff --git a/var/spack/repos/builtin/packages/py-argcomplete/package.py b/var/spack/repos/builtin/packages/py-argcomplete/package.py
index 6a4ad018bd..f1362da76f 100644
--- a/var/spack/repos/builtin/packages/py-argcomplete/package.py
+++ b/var/spack/repos/builtin/packages/py-argcomplete/package.py
@@ -9,9 +9,11 @@ from spack import *
class PyArgcomplete(PythonPackage):
"""Bash tab completion for argparse."""
- homepage = "https://pypi.python.org/pypi/argcomplete"
- url = "https://pypi.io/packages/source/a/argcomplete/argcomplete-1.1.1.tar.gz"
+ homepage = "https://github.com/kislyuk/argcomplete"
+ url = "https://pypi.io/packages/source/a/argcomplete/argcomplete-1.12.0.tar.gz"
- version('1.1.1', sha256='cca45b5fe07000994f4f06a0b95bd71f7b51b04f81c3be0b4ea7b666e4f1f084')
+ version('1.12.0', sha256='2fbe5ed09fd2c1d727d4199feca96569a5b50d44c71b16da9c742201f7cc295c')
+ version('1.1.1', sha256='cca45b5fe07000994f4f06a0b95bd71f7b51b04f81c3be0b4ea7b666e4f1f084')
depends_on('py-setuptools', type='build')
+ depends_on('py-importlib-metadata@0.23:1.999', when='@1.12: ^python@:3.7', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-batch/package.py b/var/spack/repos/builtin/packages/py-azure-batch/package.py
new file mode 100644
index 0000000000..b201ec7660
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-batch/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureBatch(PythonPackage):
+ """Microsoft Azure Batch Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-batch/azure-batch-9.0.0.zip"
+
+ version('9.0.0', sha256='47ca6f50a640915e1cdc5ce3c1307abe5fa3a636236e561119cf62d9df384d84')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-cli-command-modules-nspkg/package.py b/var/spack/repos/builtin/packages/py-azure-cli-command-modules-nspkg/package.py
new file mode 100644
index 0000000000..0a40cf2e44
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-cli-command-modules-nspkg/package.py
@@ -0,0 +1,16 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureCliCommandModulesNspkg(PythonPackage):
+ """Microsoft Azure CLI Command Modules Namespace Package."""
+
+ homepage = "https://github.com/Azure/azure-cli"
+ url = "https://pypi.io/packages/source/a/azure-cli-command-modules-nspkg/azure-cli-command-modules-nspkg-2.0.3.tar.gz"
+
+ version('2.0.3', sha256='4bd62bf5facb92dd4f89080e75eaee2ea1d3dd4e57a3d2a760ce501cf53f4e7d')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-azure-cli-nspkg@3.0.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-cli-core/package.py b/var/spack/repos/builtin/packages/py-azure-cli-core/package.py
new file mode 100644
index 0000000000..07e520c530
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-cli-core/package.py
@@ -0,0 +1,39 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureCliCore(PythonPackage):
+ """Microsoft Azure Command-Line Tools Core Module."""
+
+ homepage = "https://github.com/Azure/azure-cli"
+ url = "https://pypi.io/packages/source/a/azure-cli-core/azure-cli-core-2.9.1.tar.gz"
+
+ version('2.9.1', sha256='8618a30f7ea2188506f29801220c06396d731c26e4de92c327e6b0e8cc790db5')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-adal@1.2.3:1.2.999', type=('build', 'run'))
+ depends_on('py-argcomplete@1.8:1.999', type=('build', 'run'))
+ depends_on('py-azure-cli-telemetry', type=('build', 'run'))
+ depends_on('py-colorama@0.4.1:0.4.999', type=('build', 'run'))
+ depends_on('py-humanfriendly@4.7:8', type=('build', 'run'))
+ depends_on('py-jmespath', type=('build', 'run'))
+ depends_on('py-knack@0.7.1', type=('build', 'run'))
+ depends_on('py-msal@1.0.0:1.0.999', type=('build', 'run'))
+ depends_on('py-msal-extensions@0.1.3:0.1.999', type=('build', 'run'))
+ depends_on('py-msrest@0.4.4:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.6.3:', type=('build', 'run'))
+ depends_on('py-paramiko@2.0.8:2.999', type=('build', 'run'))
+ depends_on('py-pyjwt', type=('build', 'run'))
+ depends_on('py-pyopenssl@17.1.0:', type=('build', 'run'))
+ depends_on('py-requests@2.22:2.999', type=('build', 'run'))
+ depends_on('py-six@1.12:1.999', type=('build', 'run'))
+ depends_on('py-pkginfo@1.5.0.1:', type=('build', 'run'))
+ depends_on('py-azure-mgmt-resource@10.0.0', type=('build', 'run'))
+ depends_on('py-azure-mgmt-core@1.0.0', type=('build', 'run'))
+ depends_on('py-enum34', when='^python@:3.3', type=('build', 'run'))
+ depends_on('py-ndg-httpsclient', when='^python@:2.7.8', type=('build', 'run'))
+ depends_on('py-pyasn1', when='^python@:2.7.8', type=('build', 'run'))
+ depends_on('py-futures', when='^python@:2', type=('build', 'run'))
+ depends_on('py-mock', type='test')
diff --git a/var/spack/repos/builtin/packages/py-azure-cli-nspkg/package.py b/var/spack/repos/builtin/packages/py-azure-cli-nspkg/package.py
new file mode 100644
index 0000000000..31fab8f659
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-cli-nspkg/package.py
@@ -0,0 +1,16 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureCliNspkg(PythonPackage):
+ """Microsoft Azure CLI Namespace Package."""
+
+ homepage = "https://github.com/Azure/azure-cli"
+ url = "https://pypi.io/packages/source/a/azure-cli-nspkg/azure-cli-nspkg-3.0.4.tar.gz"
+
+ version('3.0.4', sha256='1bde56090f548c6435bd3093995cf88e4c445fb040604df8b5b5f70780d79181')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-azure-nspkg@2.0.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-cli-telemetry/package.py b/var/spack/repos/builtin/packages/py-azure-cli-telemetry/package.py
new file mode 100644
index 0000000000..bb379686be
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-cli-telemetry/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureCliTelemetry(PythonPackage):
+ """Microsoft Azure CLI Telemetry Package."""
+
+ homepage = "https://github.com/Azure/azure-cli"
+ url = "https://pypi.io/packages/source/a/azure-cli-telemetry/azure-cli-telemetry-1.0.4.tar.gz"
+
+ version('1.0.4', sha256='1f239d544d309c29e827982cc20113eb57037dba16db6cdd2e0283e437e0e577')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-applicationinsights@0.11.1:0.11.999', type=('build', 'run'))
+ depends_on('py-portalocker@1.2:1.999', type=('build', 'run'))
+ depends_on('py-mock', type='test')
diff --git a/var/spack/repos/builtin/packages/py-azure-cli/package.py b/var/spack/repos/builtin/packages/py-azure-cli/package.py
new file mode 100644
index 0000000000..faa09d1cfd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-cli/package.py
@@ -0,0 +1,102 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureCli(PythonPackage):
+ """Microsoft Azure Command-Line Tools."""
+
+ homepage = "https://github.com/Azure/azure-cli"
+ url = "https://pypi.io/packages/source/a/azure-cli/azure-cli-2.9.1.tar.gz"
+
+ version('2.9.1', sha256='749d850f73ea8956ab510288c1061dd7066180a8583081a6d560fdc7ac8314d6')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-antlr4-python3-runtime@4.7.2:4.7.999', type=('build', 'run'))
+ depends_on('py-azure-batch@9.0:9.999', type=('build', 'run'))
+ depends_on('py-azure-cli-command-modules-nspkg@2.0:2.999', type=('build', 'run'))
+ depends_on('py-azure-cli-core@2.9.1', type=('build', 'run'))
+ depends_on('py-azure-cli-nspkg@3.0.3:3.999', type=('build', 'run'))
+ depends_on('py-azure-cosmos@3.0.2:3.999', type=('build', 'run'))
+ depends_on('py-azure-datalake-store@0.0.48:0.0.999', type=('build', 'run'))
+ depends_on('py-azure-functions-devops-build@0.0.22:0.0.999', type=('build', 'run'))
+ depends_on('py-azure-graphrbac@0.60.0:0.60.999', type=('build', 'run'))
+ depends_on('py-azure-keyvault@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-advisor@2.0.1:2.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-apimanagement@0.1.0:0.1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-applicationinsights@0.1.1:0.1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-appconfiguration@0.4.0:0.4.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-authorization@0.52.0:0.52.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-batch@9.0.0:9.0.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-batchai@2.0:2.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-billing@0.2:0.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-botservice@0.2.0:0.2.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-cdn@4.1.0rc1', type=('build', 'run'))
+ depends_on('py-azure-mgmt-cognitiveservices@6.2.0:6.2.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-compute@13.0:13.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-consumption@2.0:2.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-containerinstance@1.4:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-containerregistry@3.0.0rc14', type=('build', 'run'))
+ depends_on('py-azure-mgmt-containerservice@9.0.1:9.0.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-cosmosdb@0.15.0:0.15.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-datalake-analytics@0.2.1:0.2.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-datalake-store@0.5.0:0.5.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-datamigration@0.1.0:0.1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-deploymentmanager@0.2.0:0.2.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-devtestlabs@4.0:4.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-dns@2.1:2.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-eventgrid@3.0.0rc7', type=('build', 'run'))
+ depends_on('py-azure-mgmt-eventhub@4.0.0:4.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-hdinsight@1.5.1:1.5.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-imagebuilder@0.4.0:0.4.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-iotcentral@3.0.0:3.0.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-iothub@0.12.0:0.12.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-iothubprovisioningservices@0.2.0:0.2.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-keyvault@2.2.0:2.2.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-kusto@0.3.0:0.3.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-loganalytics@0.7.0:0.7.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-managedservices@1.0:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-managementgroups@0.1:0.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-maps@0.1.0:0.1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-marketplaceordering@0.1:0.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-media@2.1:2.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-monitor@0.10.0:0.10.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-msi@0.2:0.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-netapp@0.8.0:0.8.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-network@11.0.0:11.0.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-policyinsights@0.5.0:0.5.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-privatedns@0.1.0:0.1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-rdbms@2.2.0:2.2.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-recoveryservices@0.4.0:0.4.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-recoveryservicesbackup@0.6.0:0.6.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-redhatopenshift@0.1.0', type=('build', 'run'))
+ depends_on('py-azure-mgmt-redis@7.0.0:7.0.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-relay@0.1.0:0.1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-reservations@0.6.0', type=('build', 'run'))
+ depends_on('py-azure-mgmt-search@2.0:2.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-security@0.4.1:0.4.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-servicebus@0.6.0:0.6.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-servicefabric@0.4.0:0.4.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-signalr@0.4.0:0.4.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-sql@0.19.0:0.19.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-sqlvirtualmachine@0.5.0:0.5.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-storage@11.1.0:11.1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-trafficmanager@0.51.0:0.51.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-web@0.47.0:0.47.999', type=('build', 'run'))
+ depends_on('py-azure-multiapi-storage@0.3.2:0.3.999', type=('build', 'run'))
+ depends_on('py-azure-loganalytics@0.1.0:0.1.999', type=('build', 'run'))
+ depends_on('py-azure-storage-common@1.4:1.999', type=('build', 'run'))
+ depends_on('py-cryptography@2.3.1:2.999', type=('build', 'run'))
+ depends_on('py-fabric@2.4:2.999', type=('build', 'run'))
+ depends_on('py-jsmin@2.2.2:2.2.999', type=('build', 'run'))
+ depends_on('py-pytz@2019.1', type=('build', 'run'))
+ depends_on('py-scp@0.13.2:0.13.999', type=('build', 'run'))
+ depends_on('py-sshtunnel@0.1.4:0.1.999', type=('build', 'run'))
+ depends_on('py-urllib3@1.18:1.999+secure', type=('build', 'run'))
+ depends_on('py-vsts-cd-manager@1.0.2:1.0.999', type=('build', 'run'))
+ depends_on('py-websocket-client@0.56.0:0.56.999', type=('build', 'run'))
+ depends_on('py-xmltodict@0.12:0.999', type=('build', 'run'))
+ depends_on('py-javaproperties@0.5.1', type=('build', 'run'))
+ depends_on('py-jsondiff@1.2.0', type=('build', 'run'))
+ depends_on('py-mock@4.0:4.999', type='test')
diff --git a/var/spack/repos/builtin/packages/py-azure-core/package.py b/var/spack/repos/builtin/packages/py-azure-core/package.py
index cfe14b0dae..e45bfcabfb 100644
--- a/var/spack/repos/builtin/packages/py-azure-core/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-core/package.py
@@ -8,8 +8,9 @@ class PyAzureCore(PythonPackage):
"""Microsoft Azure Core Library for Python."""
homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/core/azure-core"
- url = "https://pypi.io/packages/source/a/azure-core/azure-core-1.6.0.zip"
+ url = "https://pypi.io/packages/source/a/azure-core/azure-core-1.7.0.zip"
+ version('1.7.0', sha256='a66da240a287f447f9867f54ba09ea235895cec13ea38c5f490ce4eedefdd75c')
version('1.6.0', sha256='d10b74e783cff90d56360e61162afdd22276d62dc9467e657ae866449eae7648')
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-azure-cosmos/package.py b/var/spack/repos/builtin/packages/py-azure-cosmos/package.py
new file mode 100644
index 0000000000..56ed2ae59f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-cosmos/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureCosmos(PythonPackage):
+ """Microsoft Azure Cosmos Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-cosmos/azure-cosmos-4.0.0.zip"
+
+ version('4.0.0', sha256='c4e40e0d378fd0c96664f46f1ad08e6c8aaaac31c463726a74aae9eae724442d')
+ version('3.2.0', sha256='4f77cc558fecffac04377ba758ac4e23f076dc1c54e2cf2515f85bc15cbde5c6',
+ url='https://pypi.io/packages/source/a/azure-cosmos/azure-cosmos-3.2.0.tar.gz')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-six@1.6:', type=('build', 'run'))
+ depends_on('py-azure-core@1.0.0:1.999', when='@4:', type=('build', 'run'))
+ depends_on('py-enum34@1.0.4:', when='@4: ^python@:3.3', type=('build', 'run'))
+ depends_on('py-azure-nspkg', when='^python@:2', type=('build', 'run'))
+ depends_on('py-typing', when='@4: ^python@:3.4', type=('build', 'run'))
+ depends_on('py-requests@2.10.0:', when='@:3', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-datalake-store/package.py b/var/spack/repos/builtin/packages/py-azure-datalake-store/package.py
new file mode 100644
index 0000000000..84dc392932
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-datalake-store/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureDatalakeStore(PythonPackage):
+ """Azure Data Lake Store Filesystem Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-data-lake-store-python"
+ url = "https://pypi.io/packages/source/a/azure-datalake-store/azure-datalake-store-0.0.48.tar.gz"
+
+ version('0.0.48', sha256='d27c335783d4add00b3a5f709341e4a8009857440209e15a739a9a96b52386f7')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-cffi', type=('build', 'run'))
+ depends_on('py-adal@0.4.2:', type=('build', 'run'))
+ depends_on('py-requests@2.20.0:', type=('build', 'run'))
+ depends_on('py-pathlib2', when='^python@:3.3', type=('build', 'run'))
+ depends_on('py-futures', when='^python@:2', type=('build', 'run'))
+ depends_on('py-azure-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-functions-devops-build/package.py b/var/spack/repos/builtin/packages/py-azure-functions-devops-build/package.py
new file mode 100644
index 0000000000..ee70dc2f03
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-functions-devops-build/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureFunctionsDevopsBuild(PythonPackage):
+ """Python package for integrating Azure Functions with Azure DevOps.
+ Specifically made for the Azure CLI."""
+
+ homepage = "https://github.com/Azure/azure-functions-devops-build"
+ url = "https://pypi.io/packages/source/a/azure-functions-devops-build/azure-functions-devops-build-0.0.22.tar.gz"
+
+ version('0.0.22', sha256='c6341abda6098813f8fa625acd1e925410a17a8a1c7aaabdf975bb7cecb14edf')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest', type=('build', 'run'))
+ depends_on('py-vsts', type=('build', 'run'))
+ depends_on('py-jinja2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-graphrbac/package.py b/var/spack/repos/builtin/packages/py-azure-graphrbac/package.py
index 60a87b0a92..4cd0dd661f 100644
--- a/var/spack/repos/builtin/packages/py-azure-graphrbac/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-graphrbac/package.py
@@ -11,6 +11,7 @@ class PyAzureGraphrbac(PythonPackage):
url = "https://pypi.io/packages/source/a/azure-graphrbac/azure-graphrbac-0.61.1.zip"
version('0.61.1', sha256='53e98ae2ca7c19b349e9e9bb1b6a824aeae8dcfcbe17190d20fe69c0f185b2e2')
+ version('0.60.0', sha256='d0bb62d8bf8e196b903f3971ba4afa448e4fe14e8394ebfcdd941d84d62ecafe')
depends_on('py-setuptools', type='build')
depends_on('py-msrest@0.5.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-keyvault-certificates/package.py b/var/spack/repos/builtin/packages/py-azure-keyvault-certificates/package.py
new file mode 100644
index 0000000000..49ad0b0ea6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-keyvault-certificates/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureKeyvaultCertificates(PythonPackage):
+ """Microsoft Azure Key Vault Certificates Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/keyvault/azure-keyvault-certificates"
+ url = "https://pypi.io/packages/source/a/azure-keyvault-certificates/azure-keyvault-certificates-4.1.0.zip"
+
+ version('4.1.0', sha256='544f56480619e1db350f2e7b117b22af778e02174bd6bcb0af9ae00c50353419')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-azure-core@1.2.1:1.999', type=('build', 'run'))
+ depends_on('py-msrest@0.6.0:', type=('build', 'run'))
+ depends_on('py-azure-keyvault-nspkg', when='^python@:2', type=('build', 'run'))
+ depends_on('py-enum34@1.0.4:', when='^python@:3.3', type=('build', 'run'))
+ depends_on('py-typing', when='^python@:3.4', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-keyvault-keys/package.py b/var/spack/repos/builtin/packages/py-azure-keyvault-keys/package.py
new file mode 100644
index 0000000000..7fa65939ac
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-keyvault-keys/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureKeyvaultKeys(PythonPackage):
+ """Microsoft Azure Key Vault Keys Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/keyvault/azure-keyvault-keys"
+ url = "https://pypi.io/packages/source/a/azure-keyvault-keys/azure-keyvault-keys-4.1.0.zip"
+
+ version('4.1.0', sha256='f9967b4deb48e619f6c40558f69e48978779cc09c8a7fad33d536cfc41cd68f9')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-azure-core@1.2.1:1.999', type=('build', 'run'))
+ depends_on('py-cryptography@2.1.4:', type=('build', 'run'))
+ depends_on('py-msrest@0.6.0:', type=('build', 'run'))
+ depends_on('py-azure-keyvault-nspkg', when='^python@:2', type=('build', 'run'))
+ depends_on('py-enum34@1.0.4:', when='^python@:3.3', type=('build', 'run'))
+ depends_on('py-typing', when='^python@:3.4', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-keyvault-nspkg/package.py b/var/spack/repos/builtin/packages/py-azure-keyvault-nspkg/package.py
new file mode 100644
index 0000000000..16200150de
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-keyvault-nspkg/package.py
@@ -0,0 +1,16 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureKeyvaultNspkg(PythonPackage):
+ """Microsoft Azure Key Vault Namespace Package."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/keyvault"
+ url = "https://pypi.io/packages/source/a/azure-keyvault-nspkg/azure-keyvault-nspkg-1.0.0.zip"
+
+ version('1.0.0', sha256='ac68b88aab9c6caf54a23da2a1d1c718d7520bae5adff04dd0a743228269b641')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-azure-nspkg@3.0.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-keyvault-secrets/package.py b/var/spack/repos/builtin/packages/py-azure-keyvault-secrets/package.py
new file mode 100644
index 0000000000..cbc91cde3d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-keyvault-secrets/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureKeyvaultSecrets(PythonPackage):
+ """Microsoft Azure Key Vault Secrets Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/keyvault/azure-keyvault-secrets"
+ url = "https://pypi.io/packages/source/a/azure-keyvault-secrets/azure-keyvault-secrets-4.1.0.zip"
+
+ version('4.1.0', sha256='4f3bfac60e025e01dd1c1998b73649d45d706975356c0cf147174cf5a6ddf8be')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-azure-core@1.2.1:1.999', type=('build', 'run'))
+ depends_on('py-msrest@0.6.0:', type=('build', 'run'))
+ depends_on('py-azure-keyvault-nspkg', when='^python@:2', type=('build', 'run'))
+ depends_on('py-enum34@1.0.4:', when='^python@:3.3', type=('build', 'run'))
+ depends_on('py-typing', when='^python@:3.4', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-keyvault/package.py b/var/spack/repos/builtin/packages/py-azure-keyvault/package.py
new file mode 100644
index 0000000000..b18a562226
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-keyvault/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureKeyvault(PythonPackage):
+ """Microsoft Azure Key Vault Client Libraries for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/keyvault/azure-keyvault"
+ url = "https://pypi.io/packages/source/a/azure-keyvault/azure-keyvault-4.1.0.zip"
+
+ version('4.1.0', sha256='69002a546921a8290eb54d9a3805cfc515c321bc1d4c0bfcfb463620245eca40')
+ version('1.1.0', sha256='37a8e5f376eb5a304fcd066d414b5d93b987e68f9212b0c41efa37d429aadd49')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-azure-keyvault-certificates@4.1:4.999', when='@4:', type=('build', 'run'))
+ depends_on('py-azure-keyvault-secrets@4.1:4.999', when='@4:', type=('build', 'run'))
+ depends_on('py-azure-keyvault-keys@4.1:4.999', when='@4:', type=('build', 'run'))
+ depends_on('py-msrest@0.5.0:', when='@:1', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', when='@:1', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', when='@:1', type=('build', 'run'))
+ depends_on('py-cryptography@2.1.4:', when='@:1', type=('build', 'run'))
+ depends_on('py-requests@2.18.4:', when='@:1', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-loganalytics/package.py b/var/spack/repos/builtin/packages/py-azure-loganalytics/package.py
new file mode 100644
index 0000000000..25a4e42317
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-loganalytics/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureLoganalytics(PythonPackage):
+ """Microsoft Azure Log Analytics Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-loganalytics/azure-loganalytics-0.1.0.zip"
+
+ version('0.1.0', sha256='3ceb350def677a351f34b0a0d1637df6be0c6fe87ff32a5270b17f540f6da06e')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.4.29:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-advisor/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-advisor/package.py
new file mode 100644
index 0000000000..5e19a89dea
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-advisor/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtAdvisor(PythonPackage):
+ """Microsoft Azure Advisor Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-advisor/azure-mgmt-advisor-4.0.0.zip"
+
+ version('4.0.0', sha256='1ecea7a9dc48c099c06aab68aace7fdbded91a5522932882b1707c29fa055054')
+ version('2.0.1', sha256='1929d6d5ba49d055fdc806e981b93cf75ea42ba35f78222aaf42d8dcf29d4ef3')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-apimanagement/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-apimanagement/package.py
new file mode 100644
index 0000000000..538bfed522
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-apimanagement/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtApimanagement(PythonPackage):
+ """Microsoft Azure API Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-apimanagement/azure-mgmt-apimanagement-0.2.0.zip"
+
+ version('0.2.0', sha256='790f01c0b32583706b8b8c59667c0f5a51cd70444eee76474e23a598911e1d72')
+ version('0.1.0', sha256='5d45d3438c6a11bae6bb8d4d5173cdb44b85683695f9f3433f22f45aecc47819')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-appconfiguration/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-appconfiguration/package.py
new file mode 100644
index 0000000000..96f7a6dfff
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-appconfiguration/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtAppconfiguration(PythonPackage):
+ """Microsoft Azure App Configuration Management Client Library for Python.
+ """
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-appconfiguration/azure-mgmt-appconfiguration-0.5.0.zip"
+
+ version('0.5.0', sha256='211527511d7616a383cc196956eaf2b7ee016f2367d367924b3715f2a41106da')
+ version('0.4.0', sha256='85f6202ba235fde6be274f3dec1578b90235cf31979abea3fcfa476d0b2ac5b6')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-applicationinsights/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-applicationinsights/package.py
new file mode 100644
index 0000000000..b7b4089b9d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-applicationinsights/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtApplicationinsights(PythonPackage):
+ """Microsoft Azure Application Insights Management Client Library for
+ Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-applicationinsights/azure-mgmt-applicationinsights-0.3.0.zip"
+
+ version('0.3.0', sha256='3c788a54db4fbca1a8850151462ec1471ff59c86b3a10d6082952bbdaa7e6651')
+ version('0.1.1', sha256='f10229eb9e3e9d0ad20188b8d14d67055e86f3815b43b75eedf96b654bee2a9b')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', when='@0.3:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', when='@0.3:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.20:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='@0.3: ^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-authorization/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-authorization/package.py
index acc9d25e66..5a5089966c 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-authorization/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-authorization/package.py
@@ -11,6 +11,7 @@ class PyAzureMgmtAuthorization(PythonPackage):
url = "https://pypi.io/packages/source/a/azure-mgmt-authorization/azure-mgmt-authorization-0.60.0.zip"
version('0.60.0', sha256='31e875a34ac2c5d6fefe77b4a8079a8b2bdbe9edb957e47e8b44222fb212d6a7')
+ version('0.52.0', sha256='16a618c4357c11e96de376856c396f09e76a56473920cdf7a66735fabaa2a70c')
depends_on('py-setuptools', type='build')
depends_on('py-msrest@0.5.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-batch/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-batch/package.py
new file mode 100644
index 0000000000..f11c869362
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-batch/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtBatch(PythonPackage):
+ """Microsoft Azure Batch Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-batch/azure-mgmt-batch-9.0.0.zip"
+
+ version('9.0.0', sha256='03417eecfa1fac906e674cb1cb43ed7da27a96277277b091d7c389ba39f6c3fe')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-batchai/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-batchai/package.py
new file mode 100644
index 0000000000..ec279bfc50
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-batchai/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtBatchai(PythonPackage):
+ """Microsoft Azure Batch AI Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-batchai/azure-mgmt-batchai-2.0.0.zip"
+
+ version('2.0.0', sha256='f1870b0f97d5001cdb66208e5a236c9717a0ed18b34dbfdb238a828f3ca2a683')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrestazure@0.4.20:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-billing/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-billing/package.py
new file mode 100644
index 0000000000..a124ac5931
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-billing/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtBilling(PythonPackage):
+ """Microsoft Azure Billing Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-billing/azure-mgmt-billing-0.2.0.zip"
+
+ version('0.2.0', sha256='85f73bb3808a7d0d2543307e8f41e5b90a170ad6eeedd54fe7fcaac61b5b22d2')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrestazure@0.4.20:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-botservice/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-botservice/package.py
new file mode 100644
index 0000000000..168259dac0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-botservice/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtBotservice(PythonPackage):
+ """Microsoft Azure Bot Service Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-botservice/azure-mgmt-botservice-0.2.0.zip"
+
+ version('0.2.0', sha256='b21d8858e69aa16d25b908c40116a1f773c127ec4dd602cbb8542ebf39a55d83')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-cdn/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-cdn/package.py
new file mode 100644
index 0000000000..916934c841
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-cdn/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtCdn(PythonPackage):
+ """Microsoft Azure CDN Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-cdn/azure-mgmt-cdn-4.0.0.zip"
+
+ # Release candidate needed for py-azure-cli
+ version('4.1.0rc1', sha256='853c73d612f5d97387e079c5841a9f1a05702173d0c7c0c59ba7b0fd86380503')
+ version('4.0.0', sha256='a53e9e09e2711ce9109329538fe9a8a1a5d0809efb231d7df481e55d09c4f02a', preferred=True)
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-cognitiveservices/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-cognitiveservices/package.py
new file mode 100644
index 0000000000..067f980c7d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-cognitiveservices/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtCognitiveservices(PythonPackage):
+ """Microsoft Azure Cognitive Services Management Client Library for
+ Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-cognitiveservices/azure-mgmt-cognitiveservices-6.2.0.zip"
+
+ version('6.2.0', sha256='93503507ba87c18fe24cd3dfcd54e6e69a4daf7636f38b7537e09cee9a4c13ce')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-compute/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-compute/package.py
new file mode 100644
index 0000000000..4b47781334
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-compute/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtCompute(PythonPackage):
+ """Microsoft Azure Compute Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-compute/azure-mgmt-compute-13.0.0.zip"
+
+ version('13.0.0', sha256='7f331bafcbedf25d65aa42038f7553747dab18d7f10a5af3297192d31c45339e')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-consumption/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-consumption/package.py
new file mode 100644
index 0000000000..8974a4500d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-consumption/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtConsumption(PythonPackage):
+ """Microsoft Azure Consumption Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-consumption/azure-mgmt-consumption-3.0.0.zip"
+
+ version('3.0.0', sha256='035d4b74ca7c47e2683bea17105fd9014c27060336fb6255324ac86b27f70f5b')
+ version('2.0.0', sha256='9a85a89f30f224d261749be20b4616a0eb8948586f7f0f20573b8ea32f265189')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', when='@3:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', when='@3:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.20:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='@3: ^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-containerinstance/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-containerinstance/package.py
new file mode 100644
index 0000000000..c2ce7566d4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-containerinstance/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtContainerinstance(PythonPackage):
+ """Microsoft Azure Container Instance Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-containerinstance/azure-mgmt-containerinstance-2.0.0.zip"
+
+ version('2.0.0', sha256='5ad247d186c3c040da7a1d40ad39c9881e99afc58271f673abb602abb0b6b85b')
+ version('1.5.0', sha256='b055386f04ba8433112b0df7fcbc260b5208828d7bb8c057e760fe596aa7a8cd')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-containerregistry/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-containerregistry/package.py
index ac44498035..1a337d7a4a 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-containerregistry/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-containerregistry/package.py
@@ -10,7 +10,9 @@ class PyAzureMgmtContainerregistry(PythonPackage):
homepage = "https://github.com/Azure/azure-sdk-for-python"
url = "https://pypi.io/packages/source/a/azure-mgmt-containerregistry/azure-mgmt-containerregistry-2.8.0.zip"
- version('2.8.0', sha256='b24be1050d54f3158e8be7f6ad677f0c8888dddefd09fb8391ebfc73d40173a4')
+ # Release candidate needed for py-azure-cli
+ version('3.0.0rc14', sha256='d23ce93ec5903d00f79f0ac995e16bf47197130239f7f182509add3277b73071')
+ version('2.8.0', sha256='b24be1050d54f3158e8be7f6ad677f0c8888dddefd09fb8391ebfc73d40173a4', preferred=True)
depends_on('py-setuptools', type='build')
depends_on('py-msrest@0.5.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-containerservice/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-containerservice/package.py
new file mode 100644
index 0000000000..3e592e4a13
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-containerservice/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtContainerservice(PythonPackage):
+ """Microsoft Azure Container Service Management Client Library for Python.
+ """
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-containerservice/azure-mgmt-containerservice-9.2.0.zip"
+
+ version('9.2.0', sha256='e7904b60c42a153b64b1604f3c698602686b38787bebdaed6e808cd43b6e5967')
+ version('9.0.1', sha256='7e4459679bdba4aa67a4b5848e63d94e965a304a7418ef7607eb7a9ce295d886')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-core/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-core/package.py
new file mode 100644
index 0000000000..4dfca888f6
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-core/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtCore(PythonPackage):
+ """Microsoft Azure Management Core Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/core/azure-mgmt-core"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-core/azure-mgmt-core-1.2.0.zip"
+
+ version('1.2.0', sha256='8fe3b59446438f27e34f7b24ea692a982034d9e734617ca1320eedeee1939998')
+ version('1.0.0', sha256='510faf49a10daec8346cc086143d8e667ef3b4f8c8022a8e710091027631a55e')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-azure-core@1.7.0:1.999', when='@1.2:', type=('build', 'run'))
+ depends_on('py-azure-core@1.4.0:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
+ depends_on('py-typing', when='^python@:3.4', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-cosmosdb/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-cosmosdb/package.py
new file mode 100644
index 0000000000..978d659b9e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-cosmosdb/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtCosmosdb(PythonPackage):
+ """Microsoft Azure Cosmos DB Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-cosmosdb/azure-mgmt-cosmosdb-0.15.0.zip"
+
+ version('0.15.0', sha256='e70fe9b3d9554c501d46e69f18b73de18d77fbcb98a7a87b965b3dd027cada0f')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-datalake-analytics/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-datalake-analytics/package.py
new file mode 100644
index 0000000000..bcb73cd655
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-datalake-analytics/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtDatalakeAnalytics(PythonPackage):
+ """Microsoft Azure Data Lake Analytics Management Client Library for
+ Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-datalake-analytics/azure-mgmt-datalake-analytics-0.6.0.zip"
+
+ version('0.6.0', sha256='0d64c4689a67d6138eb9ffbaff2eda2bace7d30b846401673183dcb42714de8f')
+ version('0.2.1', sha256='4c7960d094f5847d9a456c18b8a3c8e60c428e3080a3905f1c943d81ba6351a4')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrestazure@0.4.27:1.999', when='@0.6:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.7:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-datalake-store/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-datalake-store/package.py
new file mode 100644
index 0000000000..994c8a60c1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-datalake-store/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtDatalakeStore(PythonPackage):
+ """Microsoft Azure Data Lake Store Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-datalake-store/azure-mgmt-datalake-store-0.5.0.zip"
+
+ version('0.5.0', sha256='9376d35495661d19f8acc5604f67b0bc59493b1835bbc480f9a1952f90017a4c')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrestazure@0.4.27:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-datamigration/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-datamigration/package.py
new file mode 100644
index 0000000000..7eaf2e926b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-datamigration/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtDatamigration(PythonPackage):
+ """Microsoft Azure Data Migration Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-datamigration/azure-mgmt-datamigration-4.0.0.zip"
+
+ version('4.0.0', sha256='1efda568d67af911156591eb308432b5f9a56075b57ac0a5dd9f7aee17d79217')
+ version('0.1.0', sha256='e754928992743f54d999800a5e0679ee3e91d804d23a25f12c2e6f2f86cd05df')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', when='@4:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', when='@4:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.27:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='@4: ^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-deploymentmanager/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-deploymentmanager/package.py
new file mode 100644
index 0000000000..57d08f8805
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-deploymentmanager/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtDeploymentmanager(PythonPackage):
+ """Microsoft Azure Deployment Manager Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-deploymentmanager/azure-mgmt-deploymentmanager-0.2.0.zip"
+
+ version('0.2.0', sha256='46e342227993fc9acab1dda42f2eb566b522a8c945ab9d0eea56276b46f6d730')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-devtestlabs/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-devtestlabs/package.py
new file mode 100644
index 0000000000..10094a24da
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-devtestlabs/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtDevtestlabs(PythonPackage):
+ """Microsoft Azure DevTestLabs Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-devtestlabs/azure-mgmt-devtestlabs-4.0.0.zip"
+
+ version('4.0.0', sha256='59549c4c4068f26466b1097b574a8e5099fb2cd6c8be0a00395b06d3b29e278d')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-dns/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-dns/package.py
new file mode 100644
index 0000000000..ef7bab9ef7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-dns/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtDns(PythonPackage):
+ """Microsoft Azure DNS Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-dns/azure-mgmt-dns-3.0.0.zip"
+
+ version('3.0.0', sha256='6ecdf4e67d8eb5db593ec331e6d9f350616e77c31225c91d266605e03e63b37f')
+ version('2.1.0', sha256='3730b1b3f545a5aa43c0fff07418b362a789eb7d81286e2bed90ffef88bfa5d0')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-eventgrid/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-eventgrid/package.py
new file mode 100644
index 0000000000..d1dc0f2264
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-eventgrid/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtEventgrid(PythonPackage):
+ """Microsoft Azure EventGrid Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-eventgrid/azure-mgmt-eventgrid-2.2.0.zip"
+
+ # Release candidate needed for py-azure-cli
+ version('3.0.0rc7', sha256='68f9eb18b74fa86e07cf4e4d1a2ed16fe549bdd53f21a707b05798616b01a9d4')
+ version('2.2.0', sha256='c62058923ed20db35b04491cd1ad6a692f337244d05c377ecc14a53c06651cc3', preferred=True)
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-eventhub/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-eventhub/package.py
new file mode 100644
index 0000000000..bd25960c8c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-eventhub/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtEventhub(PythonPackage):
+ """Microsoft Azure EventHub Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-eventhub/azure-mgmt-eventhub-4.0.0.zip"
+
+ version('4.0.0', sha256='65223196cf132899656c2f9cb71a14c972d99e5ecd815ee050dae1072cb73ae2')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-hdinsight/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-hdinsight/package.py
new file mode 100644
index 0000000000..4107d2f68b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-hdinsight/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtHdinsight(PythonPackage):
+ """Microsoft Azure HDInsight Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-hdinsight/azure-mgmt-hdinsight-1.5.1.zip"
+
+ version('1.5.1', sha256='76b94f3e43fdc6698023d79be731937dc645dc3178dc134854768528ecc0aea3')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-imagebuilder/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-imagebuilder/package.py
new file mode 100644
index 0000000000..44e3e311e4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-imagebuilder/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtImagebuilder(PythonPackage):
+ """Microsoft Azure Image Builder Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-imagebuilder/azure-mgmt-imagebuilder-0.4.0.zip"
+
+ version('0.4.0', sha256='4c9291bf16b40b043637e5e4f15650f71418ac237393e62219cab478a7951733')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-iotcentral/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-iotcentral/package.py
new file mode 100644
index 0000000000..80154d6528
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-iotcentral/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtIotcentral(PythonPackage):
+ """Microsoft Azure IoTCentral Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-iotcentral/azure-mgmt-iotcentral-3.1.0.zip"
+
+ version('3.1.0', sha256='c175f6642be514ad0efd3dc03d09e50d923596fd9e634381793dcc46bb8a57c7')
+ version('3.0.0', sha256='f6dacf442ccae2f18f1082e80bcbdcaa8c0efa2ba92b48c5db6ee01d37240047')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-iothub/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-iothub/package.py
new file mode 100644
index 0000000000..a1954a9751
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-iothub/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtIothub(PythonPackage):
+ """Microsoft Azure IoTHub Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-iothub/azure-mgmt-iothub-0.12.0.zip"
+
+ version('0.12.0', sha256='da20ee2b9b9a2c2f89be9037c3ee5421152e7f6d718eafbf50a91dbf0a07ffa0')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-iothubprovisioningservices/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-iothubprovisioningservices/package.py
new file mode 100644
index 0000000000..37845cee5d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-iothubprovisioningservices/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtIothubprovisioningservices(PythonPackage):
+ """Microsoft Azure IoTHub Provisioning Services Client Library for Python.
+ """
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-iothubprovisioningservices/azure-mgmt-iothubprovisioningservices-0.2.0.zip"
+
+ version('0.2.0', sha256='8c37acfd1c33aba845f2e0302ef7266cad31cba503cc990a48684659acb7b91d')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrestazure@0.4.20:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-kusto/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-kusto/package.py
new file mode 100644
index 0000000000..faadc899cf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-kusto/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtKusto(PythonPackage):
+ """Microsoft Azure Kusto Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-kusto/azure-mgmt-kusto-0.9.0.zip"
+
+ version('0.9.0', sha256='9210db89fa18ee8ed53339cd63bbe6fe1d9624cd793b54b7451ddbda8ae92ef3')
+ version('0.3.0', sha256='9eb8b7781fd4410ee9e207cd0c3983baf9e58414b5b4a18849d09856e36bacde')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-loganalytics/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-loganalytics/package.py
new file mode 100644
index 0000000000..925db35fa1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-loganalytics/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtLoganalytics(PythonPackage):
+ """Microsoft Azure Log Analytics Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-loganalytics/azure-mgmt-loganalytics-0.7.0.zip"
+
+ version('0.7.0', sha256='50fb7f714685d170ce9607e3c30488e194015845ef7f0a717b80609837a6c2a2')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-managedservices/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-managedservices/package.py
new file mode 100644
index 0000000000..d7ac227ef3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-managedservices/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtManagedservices(PythonPackage):
+ """Microsoft Azure Managed Services Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-managedservices/azure-mgmt-managedservices-1.0.0.zip"
+
+ version('1.0.0', sha256='fed8399fc6773aada37c1d0496a46f59410d77c9494d0ca5967c531c3376ad19')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-managementgroups/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-managementgroups/package.py
new file mode 100644
index 0000000000..6ce865aaba
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-managementgroups/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtManagementgroups(PythonPackage):
+ """Microsoft Azure Management Groups Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-managementgroups/azure-mgmt-managementgroups-0.2.0.zip"
+
+ version('0.2.0', sha256='3d5237947458dc94b4a392141174b1c1258d26611241ee104e9006d1d798f682')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-maps/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-maps/package.py
new file mode 100644
index 0000000000..8448f6fde4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-maps/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtMaps(PythonPackage):
+ """Microsoft Azure Maps Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-maps/azure-mgmt-maps-0.1.0.zip"
+
+ version('0.1.0', sha256='c120e210bb61768da29de24d28b82f8d42ae24e52396eb6569b499709e22f006')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrestazure@0.4.27:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-marketplaceordering/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-marketplaceordering/package.py
new file mode 100644
index 0000000000..a09eaf331c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-marketplaceordering/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtMarketplaceordering(PythonPackage):
+ """Microsoft Azure Market Place Ordering Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-marketplaceordering/azure-mgmt-marketplaceordering-0.2.1.zip"
+
+ version('0.2.1', sha256='dc765cde7ec03efe456438c85c6207c2f77775a8ce8a7adb19b0df5c5dc513c2')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-media/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-media/package.py
new file mode 100644
index 0000000000..7ef8dd5201
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-media/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtMedia(PythonPackage):
+ """Microsoft Azure Media Services Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-media/azure-mgmt-media-2.2.0.zip"
+
+ version('2.2.0', sha256='0adeee9e654a9011f5107def06fea6838864a3514a1e5a9ed495f3a56a687cc7')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-monitor/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-monitor/package.py
new file mode 100644
index 0000000000..681dbf6c22
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-monitor/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtMonitor(PythonPackage):
+ """Microsoft Azure Monitor Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-monitor/azure-mgmt-monitor-0.11.0.zip"
+
+ version('0.11.0', sha256='c6e1fe83dd2ddffa7f6d90c7aa63b3128042396a3893c14dc4816ad28cb15016')
+ version('0.10.0', sha256='d57d604cc1a7a9ce35eb7cf8a00d4924887c688aa78dc035ea1f80066b297464')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-msi/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-msi/package.py
new file mode 100644
index 0000000000..abdbdc640a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-msi/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtMsi(PythonPackage):
+ """Microsoft Azure MSI Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-msi/azure-mgmt-msi-1.0.0.zip"
+
+ version('1.0.0', sha256='d46f3aab25db3dad520e4055c1d67afe4fcc6d66335c762134e60f82265f8f58')
+ version('0.2.0', sha256='8622bc9a164169a0113728ebe7fd43a88189708ce6e10d4507247d6907987167')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', when='@1:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', when='@1:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.27:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='@1: ^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-netapp/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-netapp/package.py
new file mode 100644
index 0000000000..401b2078c3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-netapp/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtNetapp(PythonPackage):
+ """Microsoft Azure NetApp Files Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-netapp/azure-mgmt-netapp-0.11.0.zip"
+
+ version('0.11.0', sha256='621a76b06c97e858d49b68953e66eb718ac24f91aa6bf090f32a335a38f02305')
+ version('0.8.0', sha256='67df7c7391c2179423a95927a639492c3a177bff8f3a80e4b2d666a86e2d6f6d')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-network/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-network/package.py
index cbc0473e79..549160d7ea 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-network/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-network/package.py
@@ -8,8 +8,9 @@ class PyAzureMgmtNetwork(PythonPackage):
"""Microsoft Azure Network Management Client Library for Python."""
homepage = "https://github.com/Azure/azure-sdk-for-python"
- url = "https://pypi.io/packages/source/a/azure-mgmt-network/azure-mgmt-network-10.2.0.zip"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-network/azure-mgmt-network-11.0.0.zip"
+ version('11.0.0', sha256='7fdfc631c660cb173eee88abbb7b8be7742f91b522be6017867f217409cd69bc')
version('10.2.0', sha256='d50c74cdc1c9be6861ddef9adffd3b05afc5a5092baf0209eea30f4439cba2d9')
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-policyinsights/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-policyinsights/package.py
new file mode 100644
index 0000000000..c0532b307a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-policyinsights/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtPolicyinsights(PythonPackage):
+ """Microsoft Azure Policy Insights Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-policyinsights/azure-mgmt-policyinsights-0.5.0.zip"
+
+ version('0.5.0', sha256='ed229e3845c477e88dde413825d4fba0d38b3a5ffab4e694c7d0da995f3db0f3')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-privatedns/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-privatedns/package.py
new file mode 100644
index 0000000000..5aa65aec57
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-privatedns/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtPrivatedns(PythonPackage):
+ """Microsoft Azure DNS Private Zones Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-privatedns/azure-mgmt-privatedns-0.1.0.zip"
+
+ version('0.1.0', sha256='d29cfd8cec806e06673d9382d3f5766fc65d9a9de75b424705094a34a7db8d23')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-rdbms/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-rdbms/package.py
new file mode 100644
index 0000000000..c375a82622
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-rdbms/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtRdbms(PythonPackage):
+ """Microsoft Azure RDBMS Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-rdbms/azure-mgmt-rdbms-2.2.0.zip"
+
+ version('2.2.0', sha256='f93344897a9bfa6ebc57dd0c10ad79602ff7965c322c65115e3f4b8584bbe1c7')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservices/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservices/package.py
new file mode 100644
index 0000000000..67a5987b8f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservices/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtRecoveryservices(PythonPackage):
+ """Microsoft Azure Recovery Services Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-recoveryservices/azure-mgmt-recoveryservices-0.5.0.zip"
+
+ version('0.5.0', sha256='3c90e6b2e358dbe6d5c6d7204955bdf52c3e977c6f8b727cbbb8811427d7fd52')
+ version('0.4.0', sha256='e1e794760232239f8a9328d5de1740565ff70d1612a2921c9609746ba5671e6c')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservicesbackup/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservicesbackup/package.py
new file mode 100644
index 0000000000..96b755acef
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservicesbackup/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtRecoveryservicesbackup(PythonPackage):
+ """Microsoft Azure Recovery Services Backup Management Client Library for
+ Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-recoveryservicesbackup/azure-mgmt-recoveryservicesbackup-0.8.0.zip"
+
+ version('0.8.0', sha256='a0ee89691b21945cc4b892a9194320f50c1cd242d98f00a82d7e3848c28517a5')
+ version('0.6.0', sha256='4df62479c90a6f93e7689f9d58e0a139899f0407f5e3298d5ce014442599428f')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-redhatopenshift/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-redhatopenshift/package.py
new file mode 100644
index 0000000000..6503254cd8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-redhatopenshift/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtRedhatopenshift(PythonPackage):
+ """Microsoft Azure Red Hat Openshift Management Client Library for Python.
+ """
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-redhatopenshift/azure-mgmt-redhatopenshift-0.1.0.zip"
+
+ version('0.1.0', sha256='565afbc63f5283f37c76135174f2ca20dd417da3e24b3fb1e132c4a0e2a2c5bc')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-redis/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-redis/package.py
new file mode 100644
index 0000000000..90d0e95241
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-redis/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtRedis(PythonPackage):
+ """Microsoft Azure Redis Cache Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-redis/azure-mgmt-redis-6.0.0.zip"
+
+ # Release candidate needed for py-azure-cli
+ version('7.0.0rc1', sha256='d3cc259c507b79962495ed00d0a3432a45e4e90a0fb48b49e80d51cdc398dc20')
+ version('6.0.0', sha256='db999e104edeee3a13a8ceb1881e15196fe03a02635e0e20855eb52c1e2ecca1', preferred=True)
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-relay/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-relay/package.py
new file mode 100644
index 0000000000..fee12b519b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-relay/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtRelay(PythonPackage):
+ """Microsoft Azure Relay Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-relay/azure-mgmt-relay-0.2.0.zip"
+
+ version('0.2.0', sha256='a7e8341b2920d1d45bdf73d2b7825c44427d33fb0d820aceb11c94432323bf68')
+ version('0.1.0', sha256='d9f987cf2998b8a354f331b2a71082c049193f1e1cd345812e14b9b821365acb')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', when='@0.2:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', when='@0.2:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.20:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='@0.2: ^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-reservations/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-reservations/package.py
new file mode 100644
index 0000000000..b14a6d83dc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-reservations/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtReservations(PythonPackage):
+ """Microsoft Azure Reservations Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-reservations/azure-mgmt-reservations-0.7.0.zip"
+
+ version('0.7.0', sha256='f65c1985a47e0ac55e7d5d9cc1bd5e95335a111566edc289d460aa2bc8f80991')
+ version('0.6.0', sha256='83a9a70d6fd78b8b3e92ca64bbc1fde8d1bc5e2efea54076052c51c946b4cc9b')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-search/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-search/package.py
new file mode 100644
index 0000000000..42e7eae43d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-search/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtSearch(PythonPackage):
+ """Microsoft Azure Search Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-search/azure-mgmt-search-2.1.0.zip"
+
+ version('2.1.0', sha256='92a40a1a7a9e3a82b6fa302042799e8d5a67d3996c20835af72afc14f1610501')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-security/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-security/package.py
new file mode 100644
index 0000000000..27778ebcba
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-security/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtSecurity(PythonPackage):
+ """Microsoft Azure Security Center Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-security/azure-mgmt-security-0.4.1.zip"
+
+ version('0.4.1', sha256='391c8df5400485049a6c19d50e536304c186bb64fd569eec0c6d01d20220ee21')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-servicebus/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-servicebus/package.py
new file mode 100644
index 0000000000..22fba6dcf8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-servicebus/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtServicebus(PythonPackage):
+ """Microsoft Azure Service Bus Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-servicebus/azure-mgmt-servicebus-0.6.0.zip"
+
+ version('0.6.0', sha256='f20920b8fb119ef4abeda4d2dac765a4fc48cd0bcf30c27f8c4cc6d890bc08b1')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-servicefabric/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-servicefabric/package.py
new file mode 100644
index 0000000000..519f7c632f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-servicefabric/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtServicefabric(PythonPackage):
+ """Microsoft Azure Service Fabric Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-servicefabric/azure-mgmt-servicefabric-0.4.0.zip"
+
+ version('0.4.0', sha256='a2cbd2797e796a550a93d37229b2ded22765f50166730a63c8e20a27677e28f4')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-signalr/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-signalr/package.py
new file mode 100644
index 0000000000..298f1b7b05
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-signalr/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtSignalr(PythonPackage):
+ """Microsoft Azure SignalR Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-signalr/azure-mgmt-signalr-0.4.0.zip"
+
+ version('0.4.0', sha256='6503ddda9d6f4b634dfeb8eb4bcd14ede5e0900585f6c83bf9010cf82215c126')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-sql/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-sql/package.py
new file mode 100644
index 0000000000..8bfe3781bb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-sql/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtSql(PythonPackage):
+ """Microsoft Azure SQL Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-sql/azure-mgmt-sql-0.19.0.zip"
+
+ version('0.19.0', sha256='694649d4c9c5f89e543f23ec10e450b6382b2f1bc5843ef266cfc302276038c6')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-sqlvirtualmachine/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-sqlvirtualmachine/package.py
new file mode 100644
index 0000000000..03565edb89
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-sqlvirtualmachine/package.py
@@ -0,0 +1,20 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtSqlvirtualmachine(PythonPackage):
+ """Microsoft Azure SQL Virtual Machine Management Client Library for
+ Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-sqlvirtualmachine/azure-mgmt-sqlvirtualmachine-0.5.0.zip"
+
+ version('0.5.0', sha256='b5a9423512a7b12844ac014366a1d53c81017a14f39676beedf004a532aa2aad')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-storage/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-storage/package.py
index c2dd7d68f5..f53822ef94 100644
--- a/var/spack/repos/builtin/packages/py-azure-mgmt-storage/package.py
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-storage/package.py
@@ -8,8 +8,9 @@ class PyAzureMgmtStorage(PythonPackage):
"""Microsoft Azure Storage Management Client Library for Python."""
homepage = "https://github.com/Azure/azure-sdk-for-python"
- url = "https://pypi.io/packages/source/a/azure-mgmt-storage/azure-mgmt-storage-11.0.0.zip"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-storage/azure-mgmt-storage-11.1.0.zip"
+ version('11.1.0', sha256='ef23587c1b6dc0866ebf0e91e83ba05d7f7e4fea7951b704781b9cd9f5f27f1c')
version('11.0.0', sha256='f9791c2a84eee0a55bbf757632a2a4d1e102db958e75422d5e0e7306041129b8')
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-trafficmanager/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-trafficmanager/package.py
new file mode 100644
index 0000000000..fa6dc2c756
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-trafficmanager/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtTrafficmanager(PythonPackage):
+ """Microsoft Azure Traffic Manager Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-trafficmanager/azure-mgmt-trafficmanager-0.51.0.zip"
+
+ version('0.51.0', sha256='fc8ae77022cfe52fda4379a2f31e0b857574d536e41291a7b569b5c0f4104186')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-web/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-web/package.py
new file mode 100644
index 0000000000..b4d7f2ba45
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-mgmt-web/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMgmtWeb(PythonPackage):
+ """Microsoft Azure Web Apps Management Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-sdk-for-python"
+ url = "https://pypi.io/packages/source/a/azure-mgmt-web/azure-mgmt-web-0.47.0.zip"
+
+ version('0.47.0', sha256='789a328e2a60df48a82452ca6fbc1a7b4adf3c38d4701d278efe4e81cf21cce8')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.5.0:', type=('build', 'run'))
+ depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run'))
+ depends_on('py-azure-common@1.1:1.999', type=('build', 'run'))
+ depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-multiapi-storage/package.py b/var/spack/repos/builtin/packages/py-azure-multiapi-storage/package.py
new file mode 100644
index 0000000000..5d5a8442b5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-multiapi-storage/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureMultiapiStorage(PythonPackage):
+ """Microsoft Azure Storage Client Library for Python with multi API
+ version support."""
+
+ homepage = "https://github.com/Azure/azure-multiapi-storage-python"
+ url = "https://pypi.io/packages/source/a/azure-multiapi-storage/azure-multiapi-storage-0.3.5.tar.gz"
+
+ version('0.3.5', sha256='71c238c785786a159b3ffd587a5e7fa1d9a517b66b592ae277fed73a9fbfa2b0')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-azure-common', type=('build', 'run'))
+ depends_on('py-cryptography', type=('build', 'run'))
+ depends_on('py-python-dateutil', type=('build', 'run'))
+ depends_on('py-requests', type=('build', 'run'))
+ depends_on('py-azure-core', type=('build', 'run'))
+ depends_on('py-futures', when='^python@:2', type=('build', 'run'))
+ depends_on('py-azure-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-storage-common/package.py b/var/spack/repos/builtin/packages/py-azure-storage-common/package.py
new file mode 100644
index 0000000000..70902f28d9
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-storage-common/package.py
@@ -0,0 +1,21 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureStorageCommon(PythonPackage):
+ """Microsoft Azure Storage Common Client Library for Python."""
+
+ homepage = "https://github.com/Azure/azure-storage-python"
+ url = "https://pypi.io/packages/source/a/azure-storage-common/azure-storage-common-2.1.0.tar.gz"
+
+ version('2.1.0', sha256='ccedef5c67227bc4d6670ffd37cec18fb529a1b7c3a5e53e4096eb0cf23dc73f')
+ version('1.4.2', sha256='4ec87c7537d457ec95252e0e46477e2c1ccf33774ffefd05d8544682cb0ae401')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-azure-common@1.1.5:', type=('build', 'run'))
+ depends_on('py-cryptography', type=('build', 'run'))
+ depends_on('py-python-dateutil', type=('build', 'run'))
+ depends_on('py-requests', type=('build', 'run'))
+ depends_on('py-azure-storage-nspkg', when='^python@:2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-azure-storage-nspkg/package.py b/var/spack/repos/builtin/packages/py-azure-storage-nspkg/package.py
new file mode 100644
index 0000000000..da8878813f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-azure-storage-nspkg/package.py
@@ -0,0 +1,16 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyAzureStorageNspkg(PythonPackage):
+ """Microsoft Azure Storage Namespace Package."""
+
+ homepage = "https://github.com/Azure/azure-storage-python"
+ url = "https://pypi.io/packages/source/a/azure-storage-nspkg/azure-storage-nspkg-3.1.0.tar.gz"
+
+ version('3.1.0', sha256='6f3bbe8652d5f542767d8433e7f96b8df7f518774055ac7c92ed7ca85f653811')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-azure-nspkg@2.0.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-boto/package.py b/var/spack/repos/builtin/packages/py-boto/package.py
new file mode 100644
index 0000000000..005ba180ed
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-boto/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyBoto(PythonPackage):
+ """Boto is a Python package that provides interfaces to
+ Amazon Web Services."""
+
+ homepage = "https://github.com/boto/boto"
+ url = "https://github.com/boto/boto/archive/2.49.0.tar.gz"
+
+ version('2.49.0', sha256='3dbefd4f4542f85a323d4f54601f31ed4d362fc87945245f32e4a85029513314')
+
+ depends_on('python@2.6:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-chainmap/package.py b/var/spack/repos/builtin/packages/py-chainmap/package.py
new file mode 100644
index 0000000000..f68782e7b4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-chainmap/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyChainmap(PythonPackage):
+ """Clone/backport of ChainMap for Python 2.6, Python 3.2, and PyPy3
+ based on Python 3.2--versions that currently lack their own
+ ChainMap implementations."""
+
+ homepage = "https://bitbucket.org/jeunice/chainmap/src/default/"
+ url = "https://pypi.io/packages/source/c/chainmap/chainmap-1.0.3.tar.gz"
+
+ version('1.0.3', sha256='e42aaa4b3e2f66102a11bfd563069704bfbfd84fdcb517b564effd736bf53cd9')
+ version('1.0.2', sha256='405da3bce9913bfb33e6e497803b447b60d12ab44031ca357626143e087e0526')
+ version('1.0.1', sha256='c1cd76c679dd7af982ec5a45788ef4a0dfc20e77f27ccdeca289a5141862ff64')
+ version('1.0.0', sha256='2e24b2efa3494b16772282812efcd712b1d6b80e1b761a56b1b7cbc8fe0313c4')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-cython/package.py b/var/spack/repos/builtin/packages/py-cython/package.py
index f017a53c08..42282d5152 100644
--- a/var/spack/repos/builtin/packages/py-cython/package.py
+++ b/var/spack/repos/builtin/packages/py-cython/package.py
@@ -10,7 +10,7 @@ class PyCython(PythonPackage):
"""The Cython compiler for writing C extensions for the Python language."""
homepage = "https://pypi.python.org/pypi/cython"
- url = "https://pypi.io/packages/source/c/cython/Cython-0.29.16.tar.gz"
+ url = "https://pypi.io/packages/source/c/cython/Cython-0.29.21.tar.gz"
import_modules = [
'cython', 'Cython', 'Cython.Build', 'Cython.Compiler',
@@ -20,6 +20,7 @@ class PyCython(PythonPackage):
'Cython.Tempita', 'pyximport',
]
+ version('0.29.21', sha256='e57acb89bd55943c8d8bf813763d20b9099cc7165c0f16b707631a7654be9cad')
version('0.29.16', sha256='232755284f942cbb3b43a06cd85974ef3c970a021aef19b5243c03ee2b08fa05')
version('0.29.15', sha256='60d859e1efa5cc80436d58aecd3718ff2e74b987db0518376046adedba97ac30')
version('0.29.14', sha256='e4d6bb8703d0319eb04b7319b12ea41580df44fd84d83ccda13ea463c6801414')
diff --git a/var/spack/repos/builtin/packages/py-dp-gp-cluster/package.py b/var/spack/repos/builtin/packages/py-dp-gp-cluster/package.py
new file mode 100644
index 0000000000..42e56516d1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-dp-gp-cluster/package.py
@@ -0,0 +1,33 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+from os import unlink
+from glob import glob
+
+
+class PyDpGpCluster(PythonPackage):
+ """DP_GP_cluster clusters genes by expression over a time course using a
+ Dirichlet process Gaussian process model."""
+
+ homepage = "https://github.com/PrincetonUniversity/DP_GP_cluster"
+ git = "https://github.com/PrincetonUniversity/DP_GP_cluster.git"
+
+ version('2019-09-22', commit='eec12e74219f916aa86e253783905f7b5e30f6f4')
+
+ depends_on('python@2.7:2.8', type=('build', 'run'))
+
+ depends_on('py-cython', type='build')
+ depends_on('py-gpy@0.8.8:0.9.9', type=('build', 'run'))
+ depends_on('py-pandas', type=('build', 'run'))
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-scipy@0.14:', type=('build', 'run'))
+ depends_on('py-matplotlib', type=('build', 'run'))
+ depends_on('py-scikit-learn', type=('build', 'run'))
+
+ @run_before('build')
+ def remove_cython_output(self):
+ for f in glob('DP_GP/*.c'):
+ unlink(f)
diff --git a/var/spack/repos/builtin/packages/py-fabric/package.py b/var/spack/repos/builtin/packages/py-fabric/package.py
new file mode 100644
index 0000000000..b8ccb624bb
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-fabric/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyFabric(PythonPackage):
+ """High level SSH command execution."""
+
+ homepage = "http://fabfile.org/"
+ url = "https://pypi.io/packages/source/f/fabric/fabric-2.5.0.tar.gz"
+
+ version('2.5.0', sha256='24842d7d51556adcabd885ac3cf5e1df73fc622a1708bf3667bf5927576cdfa6')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-invoke@1.3:1.999', type=('build', 'run'))
+ depends_on('py-paramiko@2.4:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-fortran-language-server/package.py b/var/spack/repos/builtin/packages/py-fortran-language-server/package.py
new file mode 100644
index 0000000000..277cf91c9d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-fortran-language-server/package.py
@@ -0,0 +1,23 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyFortranLanguageServer(PythonPackage):
+ """A Fortran implementation of the Language Server Protocol using Python
+ (2.7+ or 3.0+)."""
+
+ homepage = "https://github.com/hansec/fortran-language-server"
+ url = "https://github.com/hansec/fortran-language-server/archive/v1.10.3.tar.gz"
+
+ maintainers = ['AndrewGaspar']
+
+ version('1.11.1', sha256='8f03782dd992d6652a3f2d349115fdad3aa3464fee3fafbbc4f8ecf780166e3c')
+
+ depends_on('python@2.7:', type=('build', 'run'))
+ depends_on('py-future', type=('build', 'run'), when='^python@:2')
+ depends_on('py-argparse', type=('build', 'run'), when='^python@:2.6,3.0:3.1')
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-invoke/package.py b/var/spack/repos/builtin/packages/py-invoke/package.py
index 28a4bcd2b1..29414d5fbc 100644
--- a/var/spack/repos/builtin/packages/py-invoke/package.py
+++ b/var/spack/repos/builtin/packages/py-invoke/package.py
@@ -10,8 +10,9 @@ class PyInvoke(PythonPackage):
"""Pythonic task execution"""
homepage = "http://www.pyinvoke.org/"
- url = "https://pypi.io/packages/source/i/invoke/invoke-1.2.0.tar.gz"
+ url = "https://pypi.io/packages/source/i/invoke/invoke-1.4.1.tar.gz"
+ version('1.4.1', sha256='de3f23bfe669e3db1085789fd859eb8ca8e0c5d9c20811e2407fa042e8a5e15d')
version('1.2.0', sha256='dc492f8f17a0746e92081aec3f86ae0b4750bf41607ea2ad87e5a7b5705121b7')
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-javaproperties/package.py b/var/spack/repos/builtin/packages/py-javaproperties/package.py
new file mode 100644
index 0000000000..89358b1b67
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-javaproperties/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyJavaproperties(PythonPackage):
+ """Read & write Java .properties files."""
+
+ homepage = "https://github.com/jwodder/javaproperties"
+ url = "https://pypi.io/packages/source/j/javaproperties/javaproperties-0.7.0.tar.gz"
+
+ version('0.7.0', sha256='cf45b39fcbaeced1dfc0b7f2bda16e34fc0349116269e001dada42fd2e145d87')
+ version('0.5.1', sha256='2b0237b054af4d24c74f54734b7d997ca040209a1820e96fb4a82625f7bd40cf')
+
+ depends_on('python@2.7:2.8,3.4:3.999', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-six@1.4:1.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-jsmin/package.py b/var/spack/repos/builtin/packages/py-jsmin/package.py
new file mode 100644
index 0000000000..b0ace422ee
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-jsmin/package.py
@@ -0,0 +1,15 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyJsmin(PythonPackage):
+ """JavaScript minifier."""
+
+ homepage = "https://github.com/tikitu/jsmin/"
+ url = "https://pypi.io/packages/source/j/jsmin/jsmin-2.2.2.tar.gz"
+
+ version('2.2.2', sha256='b6df99b2cd1c75d9d342e4335b535789b8da9107ec748212706ef7bbe5c2553b')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-jsondiff/package.py b/var/spack/repos/builtin/packages/py-jsondiff/package.py
new file mode 100644
index 0000000000..a6bad6fa93
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-jsondiff/package.py
@@ -0,0 +1,15 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyJsondiff(PythonPackage):
+ """Diff JSON and JSON-like structures in Python."""
+
+ homepage = "https://github.com/ZoomerAnalytics/jsondiff"
+ url = "https://pypi.io/packages/source/j/jsondiff/jsondiff-1.2.0.tar.gz"
+
+ version('1.2.0', sha256='34941bc431d10aa15828afe1cbb644977a114e75eef6cc74fb58951312326303')
+
+ depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-knack/package.py b/var/spack/repos/builtin/packages/py-knack/package.py
new file mode 100644
index 0000000000..4fb7ce188f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-knack/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyKnack(PythonPackage):
+ """A Command-Line Interface framework."""
+
+ homepage = "https://github.com/microsoft/knack"
+ url = "https://pypi.io/packages/source/k/knack/knack-0.7.1.tar.gz"
+
+ version('0.7.1', sha256='fcef6040164ebe7d69629e4e089b398c9b980791446496301befcf8381dba0fc')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-argcomplete', type=('build', 'run'))
+ depends_on('py-colorama', type=('build', 'run'))
+ depends_on('py-jmespath', type=('build', 'run'))
+ depends_on('py-pygments', type=('build', 'run'))
+ depends_on('py-pyyaml', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('py-tabulate', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-lockfile/package.py b/var/spack/repos/builtin/packages/py-lockfile/package.py
index 95b5289b89..9731208b51 100644
--- a/var/spack/repos/builtin/packages/py-lockfile/package.py
+++ b/var/spack/repos/builtin/packages/py-lockfile/package.py
@@ -23,3 +23,4 @@ class PyLockfile(PythonPackage):
version('0.10.2', sha256='9e42252f17d1dd89ee31745e0c4fbe58862c25147eb0ef5295c9cd9bcb4ea2c1')
depends_on("py-setuptools", type='build')
+ depends_on("py-pbr", type='build')
diff --git a/var/spack/repos/builtin/packages/py-maestrowf/package.py b/var/spack/repos/builtin/packages/py-maestrowf/package.py
index 5fdefea272..a5a6f5f89d 100644
--- a/var/spack/repos/builtin/packages/py-maestrowf/package.py
+++ b/var/spack/repos/builtin/packages/py-maestrowf/package.py
@@ -11,7 +11,7 @@ class PyMaestrowf(PythonPackage):
simulation studies."""
homepage = "https://github.com/LLNL/maestrowf/"
- url = "https://github.com/LLNL/maestrowf/archive/v1.1.6.tar.gz"
+ url = "https://pypi.io/packages/source/m/maestrowf/maestrowf-1.1.8.tar.gz"
git = "https://github.com/LLNL/maestrowf/"
maintainers = ['FrankD412']
@@ -21,22 +21,28 @@ class PyMaestrowf(PythonPackage):
version('master', branch='master')
# Pre-release candidates
- version('1.1.5dev', sha256='eb3d6f31c233e2cde3b84e15c657002b83ff43d4d6b218b33d023a4f527b9e08')
- version('1.1.4dev1.0', sha256='67f59eed6fa69fc71b88a0a769de9f080300497d3c30d3a0893eabd0702bc48e')
- version('1.1.4dev1.1', sha256='c8612b5423b44f11e2a7c4fbc31eb741013245870512ee2dbf7367024517528f')
+ version('1.1.7dev0', sha256='bcef838f13da396dd33cc7f503655de7a8f16ee5fe7b1e2a553044334a03f1f0')
# pypi releases
- version('1.1.6', sha256='27a4ab9072c5b5e2edf91c192d9fe67f040dd45be7f3e44fd9a998ce4cb1e92d', preferred=True)
- version('1.1.4', sha256='2cb0fa6f6281d8618ac79217ea5f4fd8cb24955c4315e873657f96b815f171d5')
- version('1.1.2', sha256='ebb45bff54625435bc9f2462e1bdc3b5bdc4d943378c53e7810c11836794c5e0')
- version('1.1.1', sha256='a476ad4b40846d7b7f9540d6413df1b42eb655735e8d3c6c07e0baa68e20a8bb')
- version('1.1.0', sha256='14e701d6a10ab758215aab6b6809817d9a39416a4f477cd2f2551883fc68477b')
- version('1.0.1', sha256='cdd503f0b11db9114405132274b28766044402d1183b5836406ed91d558fd06c')
-
- depends_on('py-setuptools', type='build')
- depends_on('py-pyyaml@4.2b1:', type=('build', 'run'))
- depends_on('py-six', type=('build', 'run'))
- depends_on('py-enum34', type=('build', 'run'), when='^python@:3.3')
- depends_on('py-enum34', type=('build', 'run'), when='@:1.1.3')
- depends_on('py-tabulate', type=('build', 'run'), when='@1.1.0:')
- depends_on('py-filelock', type=('build', 'run'), when='@1.1.0:')
+ version('1.1.8', sha256='fa8f8eb8dd3adfb9646d7b0dfd498a00423d2131adbc8dbc8016c4159b2ec1d5', preferred=True)
+ version('1.1.7', sha256='ff1b6696f30254b105fcadd297ad437c0c666ebc70124b231a713b89f47f4e94')
+ version('1.1.6', sha256='9812e67d9bd83c452cc99d82fbceb3017b5e36dafdf52eda939748bad4a88756')
+ version('1.1.4', sha256='6603b93494e8e9d939a4ab40ecdfe7923a85960a8a8bddea4734e230d8144016')
+ version('1.1.3', sha256='9812e67d9bd83c452cc99d82fbceb3017b5e36dafdf52eda939748bad4a88756')
+ version('1.1.2', sha256='6998ba2c6ee4ef205c6d47d98cf35d5eaa184e1e859cc41b4120e2aa12c06df3')
+ version('1.1.1', sha256='689ed42ba1fb214db0594756ff6015e466470103f726a5e5bf4d21c1086ad2b1')
+ version('1.1.0', sha256='1bfec546831f2ef577d7823bb50dcd12622644dad0d3d761998eafd0905b6977')
+ version('1.0.1', sha256='dd42ffeac1f0492a576c630b37e5d3593273e59664407f2ebf78d49322d37146')
+
+ depends_on('python@2.7:2.8,3.5:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-pyyaml@4.2b1:', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('py-enum34', type=('build', 'run'), when='^python@:3.3')
+ depends_on('py-enum34', type=('build', 'run'), when='@:1.1.3')
+ depends_on('py-tabulate', type=('build', 'run'), when='@1.1.0:')
+ depends_on('py-filelock', type=('build', 'run'), when='@1.1.0:')
+ depends_on('py-coloredlogs', type=('build', 'run'), when='@1.1.7:')
+ depends_on('py-chainmap', type=('build', 'run'), when='@1.1.7: ^python@:2')
+ depends_on('py-dill', type=('build', 'run'), when='@1.1.7:')
+ depends_on('py-jsonschema', type=('build', 'run'), when='@1.1.7:')
diff --git a/var/spack/repos/builtin/packages/py-matplotlib/package.py b/var/spack/repos/builtin/packages/py-matplotlib/package.py
index a1b4c94e40..c01ecc6762 100644
--- a/var/spack/repos/builtin/packages/py-matplotlib/package.py
+++ b/var/spack/repos/builtin/packages/py-matplotlib/package.py
@@ -13,7 +13,7 @@ class PyMatplotlib(PythonPackage):
and interactive visualizations in Python."""
homepage = "https://matplotlib.org/"
- url = "https://pypi.io/packages/source/m/matplotlib/matplotlib-3.2.2.tar.gz"
+ url = "https://pypi.io/packages/source/m/matplotlib/matplotlib-3.3.0.tar.gz"
maintainers = ['adamjstewart']
@@ -27,6 +27,7 @@ class PyMatplotlib(PythonPackage):
'matplotlib.testing.jpl_units'
]
+ version('3.3.0', sha256='24e8db94948019d531ce0bcd637ac24b1c8f6744ac86d2aa0eb6dbaeb1386f82')
version('3.2.2', sha256='3d77a6630d093d74cbbfebaa0571d00790966be1ed204e4a8239f5cbd6835c5d')
version('3.2.1', sha256='ffe2f9cdcea1086fc414e82f42271ecf1976700b8edd16ca9d376189c6d93aee')
version('3.2.0', sha256='651d76daf9168250370d4befb09f79875daa2224a9096d97dfc3ed764c842be4')
@@ -77,12 +78,13 @@ class PyMatplotlib(PythonPackage):
# https://matplotlib.org/users/installing.html#dependencies
# Required dependencies
extends('python', ignore=r'bin/nosetests.*$|bin/pbr$')
- depends_on('python@2.7:2.8,3.4:', when='@:2')
- depends_on('python@3.5:', when='@3:')
- depends_on('python@3.6:', when='@3.1:')
+ depends_on('python@2.7:2.8,3.4:', when='@:2', type=('build', 'link', 'run'))
+ depends_on('python@3.5:', when='@3:', type=('build', 'link', 'run'))
+ depends_on('python@3.6:', when='@3.1:', type=('build', 'link', 'run'))
depends_on('freetype@2.3:')
depends_on('libpng@1.2:')
depends_on('py-numpy@1.11:', type=('build', 'run'))
+ depends_on('py-numpy@1.15:', when='@3.3:', type=('build', 'run'))
depends_on('py-setuptools', type=('build', 'run')) # See #3813
depends_on('py-cycler@0.10:', type=('build', 'run'))
depends_on('py-python-dateutil@2.1:', type=('build', 'run'))
@@ -90,7 +92,7 @@ class PyMatplotlib(PythonPackage):
depends_on('py-pyparsing@2.0.3,2.0.5:2.1.1,2.1.3:2.1.5,2.1.7:', type=('build', 'run'))
depends_on('py-pytz', type=('build', 'run'), when='@:2')
depends_on('py-subprocess32', type=('build', 'run'), when='^python@:2.7')
- depends_on('py-functools32', type=('build', 'run'), when='@:2.0.999 ^python@2.7')
+ depends_on('py-functools32', type=('build', 'run'), when='@:2.0.999 ^python@:2.7')
depends_on('py-backports-functools-lru-cache', type=('build', 'run'),
when='@2.1.0:2.999.999 ^python@:2')
depends_on('py-six@1.10.0:', type=('build', 'run'), when='@2.0:2.999')
diff --git a/var/spack/repos/builtin/packages/py-msal/package.py b/var/spack/repos/builtin/packages/py-msal/package.py
index ade131afc8..7b870ed9d0 100644
--- a/var/spack/repos/builtin/packages/py-msal/package.py
+++ b/var/spack/repos/builtin/packages/py-msal/package.py
@@ -14,6 +14,7 @@ class PyMsal(PythonPackage):
url = "https://pypi.io/packages/source/m/msal/msal-1.3.0.tar.gz"
version('1.3.0', sha256='5442a3a9d006506e653d3c4daff40538bdf067bf07b6b73b32d1b231d5e77a92')
+ version('1.0.0', sha256='ecbe3f5ac77facad16abf08eb9d8562af3bc7184be5d4d90c9ef4db5bde26340')
depends_on('py-setuptools', type='build')
depends_on('py-requests@2.0.0:2.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-opt-einsum/package.py b/var/spack/repos/builtin/packages/py-opt-einsum/package.py
index 4de5712076..0f430c76f8 100644
--- a/var/spack/repos/builtin/packages/py-opt-einsum/package.py
+++ b/var/spack/repos/builtin/packages/py-opt-einsum/package.py
@@ -12,9 +12,13 @@ class PyOptEinsum(PythonPackage):
homepage = "https://github.com/dgasmith/opt_einsum"
url = "https://pypi.io/packages/source/o/opt_einsum/opt_einsum-3.1.0.tar.gz"
+ version('3.2.1', sha256='83b76a98d18ae6a5cc7a0d88955a7f74881f0e567a0f4c949d24c942753eb998')
+ version('3.2.0', sha256='738b0a1db1d3084d360081bb64d826f9db06d2df7cc0bf8e2c9356028da1fa31')
version('3.1.0', sha256='edfada4b1d0b3b782ace8bc14e80618ff629abf53143e1e6bbf9bd00b11ece77')
+ version('2.3.2', sha256='d3d464b4da7ef09e444c30e4003a27def37f85ff10ff2671e5f7d7813adac35b')
- depends_on('python@3.5:', type=('build', 'run'))
+ depends_on('python@:2', type=('build', 'run'), when='@2')
+ depends_on('python@3.5:', type=('build', 'run'), when='@3:')
depends_on('py-setuptools', type='build')
depends_on('py-numpy@1.7:', type=('build', 'run'))
depends_on('py-pytest', type='test')
diff --git a/var/spack/repos/builtin/packages/py-paramiko/package.py b/var/spack/repos/builtin/packages/py-paramiko/package.py
index 043b04ed5e..db07fccd09 100644
--- a/var/spack/repos/builtin/packages/py-paramiko/package.py
+++ b/var/spack/repos/builtin/packages/py-paramiko/package.py
@@ -11,10 +11,14 @@ class PyParamiko(PythonPackage):
"""SSH2 protocol library"""
homepage = "http://www.paramiko.org/"
- url = "https://pypi.io/packages/source/p/paramiko/paramiko-2.1.2.tar.gz"
+ url = "https://pypi.io/packages/source/p/paramiko/paramiko-2.7.1.tar.gz"
+ version('2.7.1', sha256='920492895db8013f6cc0179293147f830b8c7b21fdfc839b6bad760c27459d9f')
version('2.1.2', sha256='5fae49bed35e2e3d45c4f7b0db2d38b9ca626312d91119b3991d0ecf8125e310')
- depends_on('py-setuptools', type='build')
- depends_on('py-pyasn1@0.1.7:', type=('build', 'run'))
- depends_on('py-cryptography@1.1:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-bcrypt@3.1.3:', when='@2.7:', type=('build', 'run'))
+ depends_on('py-cryptography@1.1:', type=('build', 'run'))
+ depends_on('py-cryptography@2.5:', when='@2.7:', type=('build', 'run'))
+ depends_on('py-pyasn1@0.1.7:', when='@:2.1', type=('build', 'run'))
+ depends_on('py-pynacl@1.0.1:', when='@2.7:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-protobuf/package.py b/var/spack/repos/builtin/packages/py-protobuf/package.py
index c2f1efd2f9..4876832dcf 100644
--- a/var/spack/repos/builtin/packages/py-protobuf/package.py
+++ b/var/spack/repos/builtin/packages/py-protobuf/package.py
@@ -20,6 +20,7 @@ class PyProtobuf(PythonPackage):
variant('cpp', default=False,
description='Enable the cpp implementation')
+ version('3.12.2', sha256='49ef8ab4c27812a89a76fa894fe7a08f42f2147078392c0dee51d4a444ef6df5')
version('3.11.2', sha256='3d7a7d8d20b4e7a8f63f62de2d192cfd8b7a53c56caba7ece95367ca2b80c574')
version('3.11.1', sha256='aecdf12ef6dc7fd91713a6da93a86c2f2a8fe54840a3b1670853a2b7402e77c9')
version('3.11.0', sha256='97b08853b9bb71512ed52381f05cf2d4179f4234825b505d8f8d2bb9d9429939')
diff --git a/var/spack/repos/builtin/packages/py-pynacl/package.py b/var/spack/repos/builtin/packages/py-pynacl/package.py
new file mode 100644
index 0000000000..a428b3756e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pynacl/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyPynacl(PythonPackage):
+ """Python binding to the Networking and Cryptography (NaCl) library."""
+
+ homepage = "https://github.com/pyca/pynacl/"
+ url = "https://pypi.io/packages/source/P/PyNaCl/PyNaCl-1.4.0.tar.gz"
+
+ version('1.4.0', sha256='54e9a2c849c742006516ad56a88f5c74bf2ce92c9f67435187c3c5953b346505')
+
+ depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
+ depends_on('py-setuptools', type='build')
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('py-cffi@1.4.1:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-pysam/package.py b/var/spack/repos/builtin/packages/py-pysam/package.py
index 38a2a26b40..5459ef0a16 100644
--- a/var/spack/repos/builtin/packages/py-pysam/package.py
+++ b/var/spack/repos/builtin/packages/py-pysam/package.py
@@ -25,3 +25,6 @@ class PyPysam(PythonPackage):
depends_on('samtools')
depends_on('htslib@:1.6', when='@:0.13')
+
+ def setup_build_environment(self, env):
+ env.set('LDFLAGS', self.spec['curl'].libs.search_flags)
diff --git a/var/spack/repos/builtin/packages/py-pyscf/package.py b/var/spack/repos/builtin/packages/py-pyscf/package.py
new file mode 100644
index 0000000000..d0c36d5a79
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-pyscf/package.py
@@ -0,0 +1,43 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack import *
+
+
+class PyPyscf(PythonPackage):
+ """PySCF is a collection of electronic structure programs powered
+ by Python."""
+
+ homepage = "https://sunqm.github.io/pyscf/"
+ git = "https://github.com/pyscf/pyscf"
+
+ maintainers = ['naromero77']
+
+ version('1.7.3', tag='v1.7.3')
+
+ # dependencies
+ depends_on('cmake@2.8:', type='build')
+ depends_on('python@2.6:', type=('build', 'run'))
+ depends_on('py-numpy@1.8.0:', type=('build', 'run'))
+ depends_on('py-scipy@0.12:', type=('build', 'run'))
+ depends_on('py-h5py@2.3.0:', type=('build', 'run'))
+ depends_on('blas')
+ depends_on('libcint+coulomb_erf+f12')
+ depends_on('libxc')
+ depends_on('xcfun@:2.0.0a2') # PySCF does not support recent version of the xcfun API'
+
+ def setup_build_environment(self, env):
+ # Tell PSCF where supporting libraries are located."
+ spec = self.spec
+
+ pyscf_search_dir = []
+ pyscf_search_dir.append(spec['blas'].prefix)
+ pyscf_search_dir.append(spec['libcint'].prefix)
+ pyscf_search_dir.append(spec['libxc'].prefix)
+ pyscf_search_dir.append(spec['xcfun'].prefix)
+ pyscf_search_dir.append(spec['xcfun'].prefix.include.XCFun)
+
+ env.set('PYSCF_INC_DIR', ":".join(pyscf_search_dir))
diff --git a/var/spack/repos/builtin/packages/py-python-swiftclient/package.py b/var/spack/repos/builtin/packages/py-python-swiftclient/package.py
index bd8f766624..a016686406 100644
--- a/var/spack/repos/builtin/packages/py-python-swiftclient/package.py
+++ b/var/spack/repos/builtin/packages/py-python-swiftclient/package.py
@@ -16,6 +16,7 @@ class PyPythonSwiftclient(PythonPackage):
import_modules = ['sys', 'setuptools', 'requests']
+ version('3.10.0', sha256='66227eaf29a691c70675fb9982022980b92797c273dd5e6dc7e680425e9a3634')
version('3.9.0', sha256='4f2097492e4c76e948882fc859bfa033ade09bed72f8e6b328e34a3467d9a377')
version('3.8.1', sha256='3a013303643f77a99befa05582dfb93671e1fba1aed9f4a517418129700aedb8')
version('3.8.0', sha256='107a9d5356663365a9f7c0b3a2b55da97a0a9ba7f10da2319b3972481510f33d')
diff --git a/var/spack/repos/builtin/packages/py-scipy/package.py b/var/spack/repos/builtin/packages/py-scipy/package.py
index 6775d533fa..29cdb70bb1 100644
--- a/var/spack/repos/builtin/packages/py-scipy/package.py
+++ b/var/spack/repos/builtin/packages/py-scipy/package.py
@@ -12,7 +12,7 @@ class PyScipy(PythonPackage):
as routines for numerical integration and optimization."""
homepage = "https://www.scipy.org/"
- url = "https://pypi.io/packages/source/s/scipy/scipy-1.5.0.tar.gz"
+ url = "https://pypi.io/packages/source/s/scipy/scipy-1.5.1.tar.gz"
maintainers = ['adamjstewart']
install_time_test_callbacks = ['install_test', 'import_module_test']
@@ -30,6 +30,7 @@ class PyScipy(PythonPackage):
'scipy.sparse.linalg.eigen.lobpcg', 'scipy.special._precompute'
]
+ version('1.5.1', sha256='039572f0ca9578a466683558c5bf1e65d442860ec6e13307d528749cfe6d07b8')
version('1.5.0', sha256='4ff72877d19b295ee7f7727615ea8238f2d59159df0bdd98f91754be4a2767f0')
version('1.4.1', sha256='dee1bbf3a6c8f73b6b218cb28eed8dd13347ea2f87d572ce19b289d6fd3fbc59')
version('1.4.0', sha256='31f7cfa93b01507c935c12b535e24812594002a02a56803d7cd063e9920d25e8')
diff --git a/var/spack/repos/builtin/packages/py-shroud/package.py b/var/spack/repos/builtin/packages/py-shroud/package.py
index 504c992f15..0e66ca1a23 100644
--- a/var/spack/repos/builtin/packages/py-shroud/package.py
+++ b/var/spack/repos/builtin/packages/py-shroud/package.py
@@ -14,10 +14,11 @@ class PyShroud(PythonPackage):
version('develop', branch='develop')
version('master', branch='master')
+ version('0.12.1', tag='v0.12.1')
version('0.11.0', tag='v0.11.0')
version('0.10.1', tag='v0.10.1')
version('0.9.0', tag='v0.9.0')
version('0.8.0', tag='v0.8.0')
- depends_on("py-setuptools", type='build')
+ depends_on("py-setuptools", type=('build', 'run'))
depends_on("py-pyyaml@4.2b1:", type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-bibtex/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-bibtex/package.py
index 9ba3dbc720..d7820786b0 100644
--- a/var/spack/repos/builtin/packages/py-sphinxcontrib-bibtex/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-bibtex/package.py
@@ -14,6 +14,7 @@ class PySphinxcontribBibtex(PythonPackage):
import_modules = ['sphinxcontrib', 'sphinxcontrib.bibtex']
+ version('1.0.0', sha256='629612b001f86784669d65e662377a482052decfd9a0a17c46860878eef7b9e0')
version('0.3.5', sha256='c93e2b4a0d14f0ab726f95f0a33c1675965e9df3ed04839635577b8f978206cd')
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/py-sshtunnel/package.py b/var/spack/repos/builtin/packages/py-sshtunnel/package.py
new file mode 100644
index 0000000000..c9a13fa06e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-sshtunnel/package.py
@@ -0,0 +1,16 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PySshtunnel(PythonPackage):
+ """Pure python SSH tunnels."""
+
+ homepage = "https://github.com/pahaz/sshtunnel"
+ url = "https://pypi.io/packages/source/s/sshtunnel/sshtunnel-0.1.5.tar.gz"
+
+ version('0.1.5', sha256='c813fdcda8e81c3936ffeac47cb69cfb2d1f5e77ad0de656c6dab56aeebd9249')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-paramiko@1.15.2:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-tensorflow/package.py b/var/spack/repos/builtin/packages/py-tensorflow/package.py
index 5c8a10a4a9..7c4a0849c5 100644
--- a/var/spack/repos/builtin/packages/py-tensorflow/package.py
+++ b/var/spack/repos/builtin/packages/py-tensorflow/package.py
@@ -141,8 +141,9 @@ class PyTensorflow(Package, CudaPackage):
depends_on('py-keras-preprocessing@1.1.0:', type=('build', 'run'), when='@2.1:')
depends_on('py-keras-preprocessing@1.0.5:', type=('build', 'run'), when='@1.12:')
depends_on('py-keras-preprocessing@1.0.3:', type=('build', 'run'), when='@1.11:')
- depends_on('py-numpy@1.16.0:1.999', type=('build', 'run'), when='@1.13.2,1.15:')
- depends_on('py-numpy@1.14.5:1.999', type=('build', 'run'), when='@1.12.1,1.14.0')
+ # https://github.com/tensorflow/tensorflow/issues/40688
+ depends_on('py-numpy@1.16.0:1.18', type=('build', 'run'), when='@1.13.2,1.15:')
+ depends_on('py-numpy@1.14.5:1.18', type=('build', 'run'), when='@1.12.1,1.14.0')
depends_on('py-numpy@1.13.3:1.14.5', type=('build', 'run'), when='@1.10.0:1.10.1')
depends_on('py-numpy@1.13.3:', type=('build', 'run'), when='@1.6:')
depends_on('py-numpy@1.12.1:', type=('build', 'run'), when='@1.4:')
diff --git a/var/spack/repos/builtin/packages/py-torch/package.py b/var/spack/repos/builtin/packages/py-torch/package.py
index 1ffeb81b23..bebf83d3d6 100644
--- a/var/spack/repos/builtin/packages/py-torch/package.py
+++ b/var/spack/repos/builtin/packages/py-torch/package.py
@@ -4,6 +4,7 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
+import os
class PyTorch(PythonPackage, CudaPackage):
@@ -68,6 +69,7 @@ class PyTorch(PythonPackage, CudaPackage):
variant('cuda', default=True, description='Build with CUDA')
variant('cudnn', default=True, description='Enables the cuDNN build')
+ variant('rocm', default=False, description='Build with ROCm build')
variant('magma', default=False, description='Enables the MAGMA build')
variant('fbgemm', default=False, description='Enables the FBGEMM build')
variant('test', default=False, description='Enables the test build')
@@ -112,6 +114,7 @@ class PyTorch(PythonPackage, CudaPackage):
conflicts('cuda_arch=none', when='+cuda',
msg='Must specify CUDA compute capabilities of your GPU, see '
'https://developer.nvidia.com/cuda-gpus')
+ conflicts('+rocm', when='+cuda')
# Required dependencies
depends_on('cmake@3.5:', type='build')
@@ -173,6 +176,9 @@ class PyTorch(PythonPackage, CudaPackage):
# Fixes CMake configuration error when XNNPACK is disabled
patch('xnnpack.patch', when='@1.5.0:1.5.999')
+ # Fixes Build error for when ROCm is enable for pytorch-1.5 release
+ patch('rocm.patch', when='@1.5.0:1.5.999+rocm')
+
# https://github.com/pytorch/pytorch/pull/37086
# Fixes compilation with Clang 9.0.0 and Apple Clang 11.0.3
patch('https://github.com/pytorch/pytorch/commit/e921cd222a8fbeabf5a3e74e83e0d8dfb01aa8b5.patch',
@@ -244,7 +250,9 @@ class PyTorch(PythonPackage, CudaPackage):
enable_or_disable('fbgemm')
enable_or_disable('test', keyword='BUILD')
-
+ enable_or_disable('rocm')
+ if '+rocm' in self.spec:
+ env.set('USE_MKLDNN', 0)
if '+miopen' in self.spec:
env.set('MIOPEN_LIB_DIR', self.spec['miopen'].libs.directories[0])
env.set('MIOPEN_INCLUDE_DIR', self.spec['miopen'].prefix.include)
@@ -297,6 +305,11 @@ class PyTorch(PythonPackage, CudaPackage):
enable_or_disable('zstd', newer=True)
enable_or_disable('tbb', newer=True)
+ @run_before('install')
+ def build_amd(self):
+ if '+rocm' in self.spec:
+ python(os.path.join('tools', 'amd_build', 'build_amd.py'))
+
def install_test(self):
with working_dir('test'):
python('run_test.py')
diff --git a/var/spack/repos/builtin/packages/py-torch/rocm.patch b/var/spack/repos/builtin/packages/py-torch/rocm.patch
new file mode 100644
index 0000000000..b50cc7e159
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-torch/rocm.patch
@@ -0,0 +1,98 @@
+diff --git a/aten/src/ATen/cuda/nvrtc_stub/ATenNVRTC.h b/aten/src/ATen/cuda/nvrtc_stub/ATenNVRTC.h
+index 9cd678dfb4cc7..4630465115c7c 100644
+--- a/aten/src/ATen/cuda/nvrtc_stub/ATenNVRTC.h
++++ b/aten/src/ATen/cuda/nvrtc_stub/ATenNVRTC.h
+@@ -67,6 +67,14 @@ namespace at { namespace cuda {
+ //
+ // HIP doesn't have
+ // cuGetErrorString (maps to non-functional hipGetErrorString___)
++//
++// HIP from ROCm 3.5 on renamed hipOccupancyMaxActiveBlocksPerMultiprocessor
++// to hipModuleOccupancyMaxActiveBlocksPerMultiprocessor.
++#if HIP_VERSION < 305
++#define HIPOCCUPANCYMAXACTIVEBLOCKSPERMULTIPROCESSOR hipOccupancyMaxActiveBlocksPerMultiprocessor
++#else
++#define HIPOCCUPANCYMAXACTIVEBLOCKSPERMULTIPROCESSOR cuOccupancyMaxActiveBlocksPerMultiprocessor
++#endif
+
+ #define AT_FORALL_NVRTC(_) \
+ _(nvrtcVersion) \
+@@ -76,7 +84,7 @@ namespace at { namespace cuda {
+ _(nvrtcGetPTX) \
+ _(cuModuleLoadData) \
+ _(cuModuleGetFunction) \
+- _(cuOccupancyMaxActiveBlocksPerMultiprocessor) \
++ _(HIPOCCUPANCYMAXACTIVEBLOCKSPERMULTIPROCESSOR)\
+ _(nvrtcGetErrorString) \
+ _(nvrtcGetProgramLogSize) \
+ _(nvrtcGetProgramLog) \
+diff --git a/aten/src/ATen/native/cuda/SoftMax.cu b/aten/src/ATen/native/cuda/SoftMax.cu
+index da1995123ecfc..f935eb4ef3d0e 100644
+--- a/aten/src/ATen/native/cuda/SoftMax.cu
++++ b/aten/src/ATen/native/cuda/SoftMax.cu
+@@ -127,8 +127,8 @@ void SpatialSoftMax_getLaunchSizes(
+ uint32_t block_threads = block.x * block.y;
+ smem_size = block.x == 1 ? 0 : block_threads * sizeof(accscalar_t);
+ int max_active_blocks;
+-#ifdef __HIP_PLATFORM_HCC__
+- // XXX HIP function signature is not compatible yet.
++#if defined(__HIP_PLATFORM_HCC__) && HIP_VERSION < 305
++ // HIP function signature is not compatible yet.
+ uint32_t max_blocks;
+ cudaOccupancyMaxActiveBlocksPerMultiprocessor(&max_blocks,
+ k, block_threads, smem_size);
+diff --git a/torch/csrc/jit/codegen/fuser/cuda/fused_kernel.cpp b/torch/csrc/jit/codegen/fuser/cuda/fused_kernel.cpp
+index 5586e49919727..27315ee475277 100644
+--- a/torch/csrc/jit/codegen/fuser/cuda/fused_kernel.cpp
++++ b/torch/csrc/jit/codegen/fuser/cuda/fused_kernel.cpp
+@@ -140,10 +140,10 @@ FusedKernelCUDA::FusedKernelCUDA(
+ nvrtc().cuModuleGetFunction(&function_, module_, name_.c_str()));
+
+ // Computes max blocks
+-#ifdef __HIP_PLATFORM_HCC__
+- // XXX HIP function signature is not compatible yet
++#if defined(__HIP_PLATFORM_HCC__) && HIP_VERSION < 305
++ // HIP function signature is not compatible yet
+ uint32_t max_blocks;
+- AT_CUDA_DRIVER_CHECK(nvrtc().cuOccupancyMaxActiveBlocksPerMultiprocessor(
++ AT_CUDA_DRIVER_CHECK(nvrtc().hipOccupancyMaxActiveBlocksPerMultiprocessor(
+ &max_blocks, function_, 128, 0));
+ maxBlocks_ = max_blocks;
+ #else
+diff --git a/torch/utils/hipify/cuda_to_hip_mappings.py b/torch/utils/hipify/cuda_to_hip_mappings.py
+index 7e21363cbe6af..26f269d92ae38 100644
+--- a/torch/utils/hipify/cuda_to_hip_mappings.py
++++ b/torch/utils/hipify/cuda_to_hip_mappings.py
+@@ -2890,7 +2890,7 @@
+ (
+ "cuOccupancyMaxActiveBlocksPerMultiprocessor",
+ (
+- "hipOccupancyMaxActiveBlocksPerMultiprocessor",
++ "hipModuleOccupancyMaxActiveBlocksPerMultiprocessor",
+ CONV_OCCUPANCY,
+ API_DRIVER,
+ ),
+@@ -2898,7 +2898,7 @@
+ (
+ "cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags",
+ (
+- "hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags",
++ "hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags",
+ CONV_OCCUPANCY,
+ API_DRIVER,
+ HIP_UNSUPPORTED,
+@@ -2906,12 +2906,12 @@
+ ),
+ (
+ "cuOccupancyMaxPotentialBlockSize",
+- ("hipOccupancyMaxPotentialBlockSize", CONV_OCCUPANCY, API_DRIVER),
++ ("hipModuleOccupancyMaxPotentialBlockSize", CONV_OCCUPANCY, API_DRIVER),
+ ),
+ (
+ "cuOccupancyMaxPotentialBlockSizeWithFlags",
+ (
+- "hipOccupancyMaxPotentialBlockSizeWithFlags",
++ "hipModuleOccupancyMaxPotentialBlockSizeWithFlags",
+ CONV_OCCUPANCY,
+ API_DRIVER,
+ HIP_UNSUPPORTED,
diff --git a/var/spack/repos/builtin/packages/py-vsts-cd-manager/package.py b/var/spack/repos/builtin/packages/py-vsts-cd-manager/package.py
new file mode 100644
index 0000000000..0e44620e69
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-vsts-cd-manager/package.py
@@ -0,0 +1,17 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyVstsCdManager(PythonPackage):
+ """Python wrapper around some of the VSTS APIs."""
+
+ homepage = "https://github.com/microsoft/vsts-cd-manager"
+ url = "https://pypi.io/packages/source/v/vsts-cd-manager/vsts-cd-manager-1.0.2.tar.gz"
+
+ version('1.0.2', sha256='0bb09059cd553e1c206e92ef324cb0dcf92334846d646c44c684f6256b86447b')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.2.0:', type=('build', 'run'))
+ depends_on('py-mock', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-vsts/package.py b/var/spack/repos/builtin/packages/py-vsts/package.py
new file mode 100644
index 0000000000..ed597e3cbd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-vsts/package.py
@@ -0,0 +1,16 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class PyVsts(PythonPackage):
+ """Python wrapper around the VSTS APIs."""
+
+ homepage = "https://github.com/Microsoft/vsts-python-api"
+ url = "https://pypi.io/packages/source/v/vsts/vsts-0.1.25.tar.gz"
+
+ version('0.1.25', sha256='da179160121f5b38be061dbff29cd2b60d5d029b2207102454d77a7114e64f97')
+
+ depends_on('py-setuptools', type='build')
+ depends_on('py-msrest@0.6.0:0.6.999', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/py-websocket-client/package.py b/var/spack/repos/builtin/packages/py-websocket-client/package.py
index 75ce5e69cc..c55df5e899 100644
--- a/var/spack/repos/builtin/packages/py-websocket-client/package.py
+++ b/var/spack/repos/builtin/packages/py-websocket-client/package.py
@@ -11,6 +11,7 @@ class PyWebsocketClient(PythonPackage):
url = "https://pypi.io/packages/source/w/websocket_client/websocket_client-0.57.0.tar.gz"
version('0.57.0', sha256='d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010')
+ version('0.56.0', sha256='1fd5520878b68b84b5748bb30e592b10d0a91529d5383f74f4964e72b297fd3a')
depends_on('python@2.6:2.8,3.4:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
diff --git a/var/spack/repos/builtin/packages/qt/package.py b/var/spack/repos/builtin/packages/qt/package.py
index 7e016846ab..0aa6e9c7c5 100644
--- a/var/spack/repos/builtin/packages/qt/package.py
+++ b/var/spack/repos/builtin/packages/qt/package.py
@@ -158,6 +158,7 @@ class Qt(Package):
# Non-macOS dependencies and special macOS constraints
if MACOS_VERSION is None:
depends_on("fontconfig", when='freetype=spack')
+ depends_on("libsm")
depends_on("libx11")
depends_on("libxcb")
depends_on("libxkbcommon")
diff --git a/var/spack/repos/builtin/packages/quicksilver/package.py b/var/spack/repos/builtin/packages/quicksilver/package.py
index ceef9e1bfb..e39a82337d 100644
--- a/var/spack/repos/builtin/packages/quicksilver/package.py
+++ b/var/spack/repos/builtin/packages/quicksilver/package.py
@@ -14,12 +14,13 @@ class Quicksilver(MakefilePackage):
tags = ['proxy-app']
homepage = "https://codesign.llnl.gov/quicksilver.php"
- url = "https://github.com/LLNL/Quicksilver"
+ url = "https://github.com/LLNL/Quicksilver/tarball/V1.0"
git = "https://github.com/LLNL/Quicksilver.git"
maintainers = ['richards12']
version('master', branch='master')
+ version('1.0', sha256='83371603b169ec75e41fb358881b7bd498e83597cd251ff9e5c35769ef22c59a')
variant('openmp', default=True, description='Build with OpenMP support')
variant('mpi', default=True, description='Build with MPI support')
diff --git a/var/spack/repos/builtin/packages/r-countrycode/package.py b/var/spack/repos/builtin/packages/r-countrycode/package.py
new file mode 100644
index 0000000000..b2b07ff2e4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-countrycode/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class RCountrycode(RPackage):
+ """Countrycode standardizes country names, converts them into
+ ~40 different coding schemes, and assigns region descriptors."""
+
+ homepage = "https://vincentarelbundock.github.io/countrycode/"
+ url = "https://cloud.r-project.org/src/contrib/countrycode_1.2.0.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/countrycode"
+
+ version('1.2.0', sha256='32c65702dcc33d512ff99f14c12f4e0c48fe7ed7c8aa2f0a64194576d129dd40')
+
+ depends_on('r@2.10:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-data-table/package.py b/var/spack/repos/builtin/packages/r-data-table/package.py
index b9a008eff0..87d5735541 100644
--- a/var/spack/repos/builtin/packages/r-data-table/package.py
+++ b/var/spack/repos/builtin/packages/r-data-table/package.py
@@ -16,6 +16,7 @@ class RDataTable(RPackage):
url = "https://cloud.r-project.org/src/contrib/data.table_1.10.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/data.table"
+ version('1.12.8', sha256='d3a75f3a355ff144cc20a476041617e21fcf2a9f79265fd9bbd4693f3671f9dc')
version('1.12.2', sha256='db55c18f0d703a8bc1c806dd1f7551bb405cb867717f52ef9dd64405394d22f5')
version('1.12.0', sha256='611b112123dbd4ebd5200770fcdfaaeaab622adeb2b290d36018d3092742e3f7')
version('1.11.8', sha256='dc427465599cadd848b28a78e2fce3362867847b44148252054385999fe566d9')
diff --git a/var/spack/repos/builtin/packages/r-devtools/package.py b/var/spack/repos/builtin/packages/r-devtools/package.py
index 9b4c4a2332..280769399e 100644
--- a/var/spack/repos/builtin/packages/r-devtools/package.py
+++ b/var/spack/repos/builtin/packages/r-devtools/package.py
@@ -13,27 +13,50 @@ class RDevtools(RPackage):
url = "https://cloud.r-project.org/src/contrib/devtools_1.12.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/devtools"
+ version('2.3.0', sha256='4fc375c171335c67bd71df4e0b1b3dff2ae3aa17b3e0566b790ba0808b39dcd0')
version('2.1.0', sha256='c1f75346a90adf0669b5508fe68cc78bd3b114c1303fa7d22bf90991edd9230d')
version('2.0.2', sha256='99a2fa957068254b8ecdb3fc2d50e2950230910ea31c314fc0e7d934e4bd1709')
version('1.12.0', sha256='8a3e2ca3988dffe29341e45a160bb588995eae43485d6a811a9ae4836d37afd4')
version('1.11.1', sha256='51c876f9ddbfdf611f6ea0b06c0b46da8cefcb8cc98d60e06d576b61f0a06346')
depends_on('r@3.0.2:', type=('build', 'run'))
- depends_on('r-httr@0.4:', type=('build', 'run'))
- depends_on('r-memoise@1.0.0:', type=('build', 'run'))
- depends_on('r-whisker', when='@:1.9.9', type=('build', 'run'))
- depends_on('r-digest', type=('build', 'run'))
- depends_on('r-rstudioapi@0.7.0:', type=('build', 'run'))
- depends_on('r-jsonlite', type=('build', 'run'))
- depends_on('r-git2r@0.23.0:', type=('build', 'run'))
- depends_on('r-withr', type=('build', 'run'))
depends_on('r-usethis@1.5.0:', when='@2.0.0:', type=('build', 'run'))
+ depends_on('r-usethis@1.6.0:', when='@2.3.0:', type=('build', 'run'))
depends_on('r-callr', when='@2.0.0:', type=('build', 'run'))
+ depends_on('r-callr@3.4.3:', when='@2.3.0:', type=('build', 'run'))
depends_on('r-cli', when='@2.0.0:', type=('build', 'run'))
+ depends_on('r-cli@2.0.2:', when='@2.3.0:', type=('build', 'run'))
+ depends_on('r-covr@3.5.0:', when='@2.3.0:', type=('build', 'run'))
+ depends_on('r-crayon@1.3.4:', when='@2.3.0:', type=('build', 'run'))
+ depends_on('r-desc@1.2.0:', when='@2.3.0:', type=('build', 'run'))
+ depends_on('r-dt@0.13:', when='@2.3.0:', type=('build', 'run'))
+ depends_on('r-digest', type=('build', 'run'))
+ depends_on('r-digest@0.6.25:', when='@3.2.0:', type=('build', 'run'))
+ depends_on('r-ellipsis@0.3.0:', when='@2.3.0:', type=('build', 'run'))
+ depends_on('r-glue@1.4.0:', when='@2.3.0:', type=('build', 'run'))
+ depends_on('r-git2r@0.23.0:', type=('build', 'run'))
+ depends_on('r-git2r@0.26.1:', when='@2.3.0:', type=('build', 'run'))
+ depends_on('r-httr@0.4:', type=('build', 'run'))
+ depends_on('r-httr@1.4.1:', when='@2.3.0:', type=('build', 'run'))
+ depends_on('r-jsonlite', type=('build', 'run'))
+ depends_on('r-jsonlite@1.6.1:', when='@2.3.0:', type=('build', 'run'))
+ depends_on('r-memoise@1.0.0:', type=('build', 'run'))
+ depends_on('r-memoise@1.1.0:', when='@2.3.0:', type=('build', 'run'))
depends_on('r-pkgbuild@1.0.3:', when='@2.0.0:', type=('build', 'run'))
+ depends_on('r-pkgbuild@1.0.6:', when='@2.3.0:', type=('build', 'run'))
depends_on('r-pkgload@1.0.2:', when='@2.0.0:', type=('build', 'run'))
depends_on('r-rcmdcheck@1.3.3:', when='@2.0.0:', type=('build', 'run'))
depends_on('r-remotes@2.1.0:', when='@2.0.0:', type=('build', 'run'))
+ depends_on('r-remotes@2.1.1:', when='@2.3.0:', type=('build', 'run'))
+ depends_on('r-rlang@0.4.5:', when='@2.3.0:', type=('build', 'run'))
depends_on('r-roxygen2@6.1.1:', when='@2.0.0:', type=('build', 'run'))
+ depends_on('r-roxygen2@7.1.0:', when='@2.3.0:', type=('build', 'run'))
+ depends_on('r-rstudioapi@0.7.0:', type=('build', 'run'))
+ depends_on('r-rstudioapi@0.11.0:', when='@2.3.0:', type=('build', 'run'))
+ depends_on('r-rversions@2.0.1:', when='@2.3.0:', type=('build', 'run'))
depends_on('r-sessioninfo@1.1.1:', when='@2.0.0:', type=('build', 'run'))
depends_on('r-testthat@2.1.1:', when='@2.0.0:', type=('build', 'run'))
+ depends_on('r-testthat@2.3.2:', when='@2.3.0:', type=('build', 'run'))
+ depends_on('r-whisker', when='@:1.9.9', type=('build', 'run'))
+ depends_on('r-withr', type=('build', 'run'))
+ depends_on('r-withr@2.1.2:', when='@2.3.0:', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-glue/package.py b/var/spack/repos/builtin/packages/r-glue/package.py
index 1472728e93..20371a9740 100644
--- a/var/spack/repos/builtin/packages/r-glue/package.py
+++ b/var/spack/repos/builtin/packages/r-glue/package.py
@@ -17,6 +17,7 @@ class RGlue(RPackage):
url = "https://cloud.r-project.org/src/contrib/glue_1.2.0.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/glue"
+ version('1.4.1', sha256='f8b687d35cacb5ee7fcada6e9c26ea20c04d0bdc9d37e919a03abd1137513bc8')
version('1.4.0', sha256='ea6c409f7141754baa090deba96cff270a11b185452cf9e6fb69cb148a9069c1')
version('1.3.1', sha256='4fc1f2899d71a634e1f0adb7942772feb5ac73223891abe30ea9bd91d3633ea8')
version('1.3.0', sha256='789e5a44c3635c3d3db26666e635e88adcf61cd02b75465125d95d7a12291cee')
diff --git a/var/spack/repos/builtin/packages/r-gsodr/package.py b/var/spack/repos/builtin/packages/r-gsodr/package.py
new file mode 100644
index 0000000000..8f1fa82e4d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/r-gsodr/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class RGsodr(RPackage):
+ """A Global Surface Summary of the Day (GSOD) Weather Data Client for R"""
+
+ homepage = "https://docs.ropensci.org/GSODR/"
+ url = "https://cloud.r-project.org/src/contrib/GSODR_2.1.1.tar.gz"
+ list_url = "https://cloud.r-project.org/src/contrib/Archive/GSODR"
+
+ version('2.1.1', sha256='dba732e5bd1e367b9d710e6b8924f0c02fa4546202f049124dba02bc2e3329f5')
+
+ depends_on('r@3.5.0:', type=('build', 'run'))
+ depends_on('r-countrycode', type=('build', 'run'))
+ depends_on('r-curl', type=('build', 'run'))
+ depends_on('r-data-table@1.11.6:', type=('build', 'run'))
+ depends_on('r-future-apply', type=('build', 'run'))
+ depends_on('r-httr', type=('build', 'run'))
+ depends_on('r-r-utils', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-usethis/package.py b/var/spack/repos/builtin/packages/r-usethis/package.py
index e82085b541..43567532f4 100644
--- a/var/spack/repos/builtin/packages/r-usethis/package.py
+++ b/var/spack/repos/builtin/packages/r-usethis/package.py
@@ -16,20 +16,25 @@ class RUsethis(RPackage):
url = "https://cloud.r-project.org/src/contrib/usethis_1.5.1.tar.gz"
list_url = "https://cloud.r-project.org/src/contrib/Archive/usethis"
+ version('1.6.1', sha256='60339059a97ed07dea7f8908b828b5bb42e0fd0b471165c061bc9660b0d59d6f')
version('1.5.1', sha256='9e3920a04b0df82adf59eef2c1b2b4d835c4a757a51b3c163b8fc619172f561d')
depends_on('r@3.2:', type=('build', 'run'))
depends_on('r-clipr@0.3.0:', type=('build', 'run'))
- depends_on('r-clisymbols', type=('build', 'run'))
+ depends_on('r-clisymbols', when='@:1.5', type=('build', 'run'))
+ depends_on('r-cli', when='@1.6.1:', type=('build', 'run'))
depends_on('r-crayon', type=('build', 'run'))
depends_on('r-curl@2.7:', type=('build', 'run'))
depends_on('r-desc', type=('build', 'run'))
depends_on('r-fs@1.3.0:', type=('build', 'run'))
depends_on('r-gh', type=('build', 'run'))
+ depends_on('r-gh@1.1.0', when='@1.6.1:', type=('build', 'run'))
depends_on('r-git2r@0.23:', type=('build', 'run'))
depends_on('r-glue@1.3.0:', type=('build', 'run'))
depends_on('r-purrr', type=('build', 'run'))
+ depends_on('r-rematch2', when='@1.6.1:', type=('build', 'run'))
depends_on('r-rlang', type=('build', 'run'))
+ depends_on('r-rlang@0.4.3', when='@1.6.1:', type=('build', 'run'))
depends_on('r-rprojroot@1.2:', type=('build', 'run'))
depends_on('r-rstudioapi', type=('build', 'run'))
depends_on('r-whisker', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/raja/package.py b/var/spack/repos/builtin/packages/raja/package.py
index b7a6218056..5f984c8e08 100644
--- a/var/spack/repos/builtin/packages/raja/package.py
+++ b/var/spack/repos/builtin/packages/raja/package.py
@@ -29,6 +29,7 @@ class Raja(CMakePackage, CudaPackage):
version('0.4.0', tag='v0.4.0', submodules="True")
variant('openmp', default=True, description='Build OpenMP backend')
+ variant('shared', default=True, description='Build Shared Libs')
depends_on('cmake@3.8:', type='build')
depends_on('cmake@3.9:', when='+cuda', type='build')
@@ -44,11 +45,14 @@ class Raja(CMakePackage, CudaPackage):
options.extend([
'-DENABLE_CUDA=On',
'-DCUDA_TOOLKIT_ROOT_DIR=%s' % (spec['cuda'].prefix)])
-
if not spec.satisfies('cuda_arch=none'):
cuda_arch = spec.variants['cuda_arch'].value
options.append('-DCUDA_ARCH=sm_{0}'.format(cuda_arch[0]))
-
+ # shared vs static libs
+ if "+shared" in spec:
+ options.append('-DBUILD_SHARED_LIBS=ON')
+ else:
+ options.append('-DBUILD_SHARED_LIBS=OFF')
# Work around spack adding -march=ppc64le to SPACK_TARGET_ARGS which
# is used by the spack compiler wrapper. This can go away when BLT
# removes -Werror from GTest flags
diff --git a/var/spack/repos/builtin/packages/random123/package.py b/var/spack/repos/builtin/packages/random123/package.py
index 48df03fee8..bc958abe38 100644
--- a/var/spack/repos/builtin/packages/random123/package.py
+++ b/var/spack/repos/builtin/packages/random123/package.py
@@ -15,15 +15,20 @@ class Random123(Package):
homepage = "http://www.deshawresearch.com/resources_random123.html"
url = "http://www.deshawresearch.com/downloads/download_random123.cgi/Random123-1.09.tar.gz"
+ version('1.13.2', sha256='74a1c6bb66b2684f03d3b1008642a2e9141909103cd09f428d2c60bcaa51cb40')
+ version('1.10', sha256='4afdfba4b941e33e23b5de9b7907b7e3ac326cb4d34b5fa8225edd00b5fe053b')
version('1.09', sha256='cf6abf623061bcf3d17e5e49bf3f3f0ae400ee89ae2e97c8cb8dcb918b1ebabe')
patch('ibmxl.patch', when='@1.09')
patch('arm-gcc.patch', when='@1.09')
+ patch('v1132-xl161.patch', when='@1.13.2')
def install(self, spec, prefix):
# Random123 doesn't have a build system.
# We have to do our own install here.
install_tree('include', prefix.include)
install('./LICENSE', "%s" % prefix)
- # used by some packages, e.g. quinoa
- install('examples/uniform.hpp', join_path(prefix.include, 'Random123'))
+ if spec.satisfies('@1.09'):
+ # used by some packages, e.g. quinoa
+ install('examples/uniform.hpp',
+ join_path(prefix.include, 'Random123'))
diff --git a/var/spack/repos/builtin/packages/random123/v1132-xl161.patch b/var/spack/repos/builtin/packages/random123/v1132-xl161.patch
new file mode 100644
index 0000000000..398de3cc2a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/random123/v1132-xl161.patch
@@ -0,0 +1,13 @@
+diff --git a/include/Random123/features/compilerfeatures.h b/include/Random123/features/compilerfeatures.h
+index 2341a7a..3c5d999 100644
+--- a/include/Random123/features/compilerfeatures.h
++++ b/include/Random123/features/compilerfeatures.h
+@@ -206,7 +206,7 @@ added to each of the *features.h files, AND to examples/ut_features.cpp.
+ #include "nvccfeatures.h"
+ #elif defined(__ICC)
+ #include "iccfeatures.h"
+-#elif defined(__xlC__)
++#elif defined(__xlC__) || defined(__ibmxl__)
+ #include "xlcfeatures.h"
+ #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
+ #include "sunprofeatures.h"
diff --git a/var/spack/repos/builtin/packages/rivet/gsl.m4 b/var/spack/repos/builtin/packages/rivet/gsl.m4
new file mode 100644
index 0000000000..61c89c957c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/gsl.m4
@@ -0,0 +1,60 @@
+# AC_SEARCH_GSL(actionIfFound, actionIfNotFound)
+AC_DEFUN([AC_SEARCH_GSL],[
+ AC_ARG_WITH([gsl], AC_HELP_STRING(--with-gsl, [path to GSL library and header files]))
+
+ ## Use a specified --with-gsl arg to set basic paths, if provided
+ GSLCONFIG_PATH=$PATH
+ if test -e "$with_gsl"; then
+ GSLCONFIG_PATH="$with_gsl/bin:$GSLCONFIG_PATH"
+ GSLPATH="$with_gsl"
+ GSLINCPATH="$GSLPATH/include"
+ GSLLIBPATH="$GSLPATH/lib"
+ GSL_CPPFLAGS="-I$GSLINCPATH"
+ GSL_CXXFLAGS=""
+ GSL_LDFLAGS="-L$GSLPATH/lib -lgsl -lgslcblas -lm"
+ fi
+
+ ## Try to do better, using the gsl-config script
+ AC_PATH_PROG(GSLCONFIG, gsl-config, [], [$GSLCONFIG_PATH])
+ if test -x "$GSLCONFIG"; then
+ AC_MSG_NOTICE(Using $GSLCONFIG to find GSL flags)
+ GSLPATH=`$GSLCONFIG --prefix`
+ GSLINCPATH="$GSLPATH/include"
+ GSLLIBPATH="$GSLPATH/lib"
+ GSL_CPPFLAGS=`$GSLCONFIG --cflags`
+ GSL_CXXFLAGS=`$GSLCONFIG --cflags`
+ GSL_LDFLAGS=`$GSLCONFIG --libs`
+ fi
+
+ ## If it's worked, propagate the conditionals and execute success arg
+ if test -e "$GSLPATH"; then
+ AM_CONDITIONAL([WITH_GSL], true)
+ AM_CONDITIONAL([WITH_GSLLIB], true)
+ AM_CONDITIONAL([WITH_GSLINC], true)
+ AM_CONDITIONAL([WITHOUT_GSL], false)
+ AM_CONDITIONAL([WITHOUT_GSLLIB], false)
+ AM_CONDITIONAL([WITHOUT_GSLINC], false)
+ $1
+ else
+ ## Otherwise execute the fail arg
+ AM_CONDITIONAL([WITH_GSL], false)
+ AM_CONDITIONAL([WITH_GSLLIB], false)
+ AM_CONDITIONAL([WITH_GSLINC], false)
+ AM_CONDITIONAL([WITHOUT_GSL], true)
+ AM_CONDITIONAL([WITHOUT_GSLLIB], true)
+ AM_CONDITIONAL([WITHOUT_GSLINC], true)
+ $2
+ fi
+
+ ## Propagate path and flag variables
+ AC_SUBST([GSLPATH])
+ AC_SUBST([GSLINCPATH])
+ AC_SUBST([GSLLIBPATH])
+ AC_SUBST([GSL_CPPFLAGS])
+ AC_SUBST([GSL_CXXFLAGS])
+ AC_SUBST([GSL_LDFLAGS])
+ AC_MSG_NOTICE([GSL include path is $GSLINCPATH])
+ AC_MSG_NOTICE([GSL CPPFLAGS is $GSL_CPPFLAGS])
+ AC_MSG_NOTICE([GSL CXXFLAGS is $GSL_CXXFLAGS])
+ AC_MSG_NOTICE([GSL LDFLAGS is $GSL_LDFLAGS])
+])
diff --git a/var/spack/repos/builtin/packages/rivet/package.py b/var/spack/repos/builtin/packages/rivet/package.py
new file mode 100644
index 0000000000..3d28b81632
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/package.py
@@ -0,0 +1,170 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+import os
+
+
+class Rivet(AutotoolsPackage):
+ """Rivet - the particle-physics MC analysis toolkit"""
+
+ homepage = "https://rivet.hepforge.org/"
+ url = "https://rivet.hepforge.org/downloads/?f=Rivet-3.1.2.tar.bz2"
+
+ version('3.1.2', sha256='c041d09644f4eae7c212d82237033267fbc1583dfbb4e3e67377f86cece9577a')
+ version('3.1.1', sha256='7c98b26af5f859bc65200499d15765e4b056b4cf233b34176f27a7e6bc4cf9b1')
+ version('3.1.0', sha256='4e156daee5eb10bd1573ef32d4a6a6df74788cd9180fc977db93ef4cb281000c')
+ version('3.0.2', sha256='9624d6cdcad77eafde40312cf6a1c97f4263f22faf9244b198c140b2c256d2f3')
+ version('3.0.1', sha256='e7551168b86a05c9c029c319c313a0aa142a476195e7ff986c896c1b868f89dd')
+ version('3.0.0', sha256='3944434d3791dccb54f7b2257589df6252cc7c065ce9deb57fbef466ff9e62b1')
+ version('2.7.2b', sha256='e9f0a709f8226cde54f9406d36efab1e1b8ed0c6574fbcb1d72a186b09188106')
+ version('2.7.2', sha256='a6634537c005660e56514b70ab9efb9d466c50685d6fb45ed03e9e1988479f02')
+ version('2.7.1', sha256='b4145d8369b8a9fa0ada7ba2e5a2e9992d8e4a12ca4874d835246d2e708cbdef')
+ version('2.7.0', sha256='34ad6a0b47dc4736feac8580a275e8b3a46df8fbeefd91e813add0a1525aacaf')
+ version('2.6.2', sha256='9dde49d5c02038a295f03d2972f85be8746205bdb5ca1eab868b2c9129ade37a')
+ version('2.6.1', sha256='e490d1f35aafa3e175690ae92f862c07a5fe2c51f693c88c87789f0441c89022')
+ version('2.6.0', sha256='fb3229dccd31ea40b0af09974253073f6ad0a3a97e9a0cf44b53748ea8e2f900')
+ version('2.5.4', sha256='772252193698d994fd111f790e72a4024df7572d492e3d5a9e840a074c5527e2')
+ version('2.5.3', sha256='99e10330564ac479c6637d317c08882889a272db8ee204ad45a6ee1dcb291de4')
+ version('2.5.2', sha256='70aa27764a14159c94c0b753a0c3d3600ac669def398cb2d8a6c63ae17704f05')
+ version('2.5.1', sha256='14ee5828de217e96a30e666192515a2083afee030d81d36fc6bea948e9f7810a')
+ version('2.5.0', sha256='c59ff35715be0caf65d6ba808b3badad0f6f7e7758f2049fb6ba43ed579bd4af')
+ version('2.4.3', sha256='18aafecab6c3baeac871a9743946433c2dc01825d8fe291b157719a15c342682')
+ version('2.4.2', sha256='accb146f3082719781a51eec879427c31401577c44f60b27ec8450102fe68aff')
+ version('2.4.1', sha256='c14f0f58d1792d84d62c62b44ebb94db004776feba83fd8186bba898d55123cf')
+ version('2.4.0', sha256='5ee2f34a277ed058b8aef750d946b40d4cf781023b9adab03ca95e803a39fb06')
+ version('2.3.0', sha256='dd07702981d586e4b97b0fa56ae08cd08a631a952322a9b52e7622a46a7741ab')
+ version('2.2.1', sha256='9e64ba19d567bdf4d0cc42b435491c4363b5fec90170d034445a99a1e752b691')
+ version('2.2.0', sha256='3bdafe2007ff54c4734e0c8bc6ba9dc97028d4c41d538201b9582a869af8ae1a')
+ version('2.1.2', sha256='40a20c1ee186326e5bfd906e0bc88f16dc740551be9cc274e9a826873d9c1eed')
+ version('2.1.1', sha256='eefa936de6f6c34a6bab39899841f3189d7621c8ba227032f0f32e6e20dfcf85')
+ version('2.1.0', sha256='58a1ca7b5a47719933782c050e67d0eb3823a7384cfc3c434fece41724c307e6')
+ version('2.0.0', sha256='038f81f92fbba001ed23b56c1229a4f3b41e0c32e00bc92ea58d042909e3855a')
+ version('1.9.0', sha256='55ef552b351328c287194aa99fa2b797e6632dc3fa88dfccd58264602012e044')
+ version('1.8.3', sha256='aa82742fd4d7c68bfbef1367c4c605e06f9fed479a753db96aa6659407fcc4fd')
+ version('1.8.2', sha256='56be98d31693253543f3e657c8f8edc7979c89fdb0ede1bdddfb3a9f5d4cfc3a')
+ version('1.8.1', sha256='7e06d22350bec30220186e796caa93e9bfebd8d771a7efd35673897248437c61')
+ version('1.8.0', sha256='7b28f9163f74583b1542b87c48f28a3ad1338da6136d8e3ca0aeba21095f5fe0')
+ version('1.7.0', sha256='180741f590f210474b686d60241ad59e008221751ead21f0950c59aff93e54fd')
+ version('1.6.0', sha256='1affd9e779f48477402e4150f315b3179204cbbc920db2d0129cd9c38bd18b26')
+ version('1.5.1', sha256='9f24e9824286d5b0302c7e440f4803a8e3b8da50e1260e78c3b3c2eb587b317a')
+ version('1.5.0', sha256='b7fe63e8caacc5c038ab567fe505d275288eedaa1aed6c379057629eef126006')
+ version('1.4.0', sha256='067c94659bb7859904e20e72a676f94f103e6e012b7dba8071f51e8a6e624dbb')
+ version('1.3.0', sha256='5ce41c8492c2fcf809a7135bf8335a01a98ea85fb556b3d00bd4260151efd12f')
+ version('1.2.1', sha256='2d0380b819f778d8d9c2a462af90bd6a6188121e4edcc6202d936130b59bab17')
+ version('1.2.0', sha256='ff5869f6dc9465f429e54686e12c39becac57a83273542179a59bac7561b6404')
+ version('1.1.3', sha256='4be3cd9e6f808cdc5511991be2756f5fa838b6ecd01806fdbe7aec0aa382f946')
+ version('1.1.2', sha256='a15b5d3339481446dec1b719d7d531a87a2e9d11c9fe8044e270ea69611b07c8')
+ version('1.1.1', sha256='bd87fefee6bb8368216755342dc80ab3f8f3c813732dd03c6f94135d45f7036b')
+
+ # According to A. Buckley (main Rivet developer):
+ # "typically a given Rivet version will work with
+ # all YODA releases of that middle-digit version,
+ # and maybe older. Generally it's always a good idea
+ # to be using the latest versions of both.". The versions below
+ # are taken from LCG stack which, in most cases, is the definition
+ # of "latest" at the moment of release.
+ depends_on('yoda@1.0.4', when='@2.0.0')
+ depends_on('yoda@1.0.5', when='@2.1.0')
+ depends_on('yoda@1.0.6', when='@2.1.1')
+ depends_on('yoda@1.1.0', when='@2.1.2')
+ depends_on('yoda@1.3.0', when='@2.2.0')
+ depends_on('yoda@1.3.1', when='@2.2.1')
+ depends_on('yoda@1.4.0', when='@2.3.0')
+ depends_on('yoda@1.5.5', when='@2.4.0')
+ depends_on('yoda@1.5.9', when='@2.4.2')
+ depends_on('yoda@1.6.1', when='@2.4.3')
+ depends_on('yoda@1.6.2', when='@2.5.0')
+ depends_on('yoda@1.6.3', when='@2.5.1')
+ depends_on('yoda@1.6.5', when='@2.5.2')
+ depends_on('yoda@1.6.6', when='@2.5.3')
+ depends_on('yoda@1.6.7', when='@2.5.4')
+ depends_on('yoda@1.7.1', when='@2.6.1')
+ depends_on('yoda@1.7.4', when='@2.6.2')
+ depends_on('yoda@1.7.5', when='@2.7.2')
+ depends_on('yoda@1.7.5', when='@2.7.2b')
+ depends_on('yoda@1.7.7', when='@3.0.1')
+ depends_on('yoda@1.8.0', when='@3.1.0')
+ depends_on('yoda@1.8.2', when='@3.1.1')
+ depends_on('yoda@1.8.3', when='@3.1.2')
+
+ # The following versions were not a part of LCG stack
+ # and thus the exact version of YODA is unknown
+ depends_on('yoda@1.7.0:1.7.999', when='@2.6.0,2.7.0,2.7.1,3.0.0,3.0.2,3.1.0')
+ depends_on('yoda@1.5.0:1.5.999', when='@2.4.1')
+
+ depends_on('hepmc', type=('build', 'run'))
+ depends_on('boost', when='@:2.5.0,3:', type=('build', 'run'))
+ depends_on('fastjet', type=('build', 'run'))
+ depends_on('fjcontrib', type=('build', 'run'), when='@3.0.0:')
+ depends_on('gsl', type=('build', 'run'), when='@:2.6.0,2.6.2:')
+ depends_on('python', type=('build', 'run'))
+ depends_on('swig', type=('build', 'run'))
+ depends_on('yaml-cpp', when='@2.0.0:2.1.2', type=('build', 'run'))
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+
+ patch('rivet-1.8.2.patch', when='@1.8.2', level=0)
+ patch('rivet-1.9.0.patch', when='@1.9.0', level=0)
+ patch('rivet-2.2.0.patch', when='@2.2.0', level=0)
+ patch('rivet-2.2.1.patch', when='@2.2.1', level=0)
+ patch('rivet-2.4.0.patch', when='@2.4.0', level=0)
+ patch('rivet-2.4.2.patch', when='@2.4.2', level=0)
+ patch('rivet-2.4.3.patch', when='@2.4.3', level=0)
+ patch('rivet-2.5.1.patch', when='@2.5.1', level=0)
+ patch('rivet-2.5.2.patch', when='@2.5.2', level=0)
+ patch('rivet-2.5.3.patch', when='@2.5.3', level=0)
+ patch('rivet-2.5.4.patch', when='@2.5.4', level=0)
+ patch('rivet-2.6.0.patch', when='@2.6.0', level=0)
+ patch('rivet-2.6.1.patch', when='@2.6.1', level=0)
+ patch('rivet-2.6.2.patch', when='@2.6.2', level=0)
+ patch('rivet-2.7.0.patch', when='@2.7.0', level=0)
+ patch('rivet-3.0.0.patch', when='@3.0.0', level=0)
+ patch('rivet-3.0.1.patch', when='@3.0.1', level=0)
+ patch('rivet-3.1.0.patch', when='@3.1.0', level=0)
+ patch('rivet-3.1.1.patch', when='@3.1.1', level=0)
+
+ @run_before('configure')
+ def copy_gsl_m4(self):
+ if self.spec.satisfies('@2.6.2:'):
+ copy(join_path(os.path.dirname(__file__), 'gsl.m4'), 'm4/gsl.m4')
+
+ @property
+ def force_autoreconf(self):
+ return self.version >= Version('2.6.2')
+
+ def setup_build_environment(self, env):
+ # this avoids an "import site" error in the build
+ env.unset('PYTHONHOME')
+
+ def configure_args(self):
+ args = []
+ args += ['--with-hepmc=' + self.spec['hepmc'].prefix]
+
+ if self.spec.satisfies('@:1.999.999'):
+ args += ['--with-boost-incpath=' + self.spec['boost'].includes]
+ else:
+ if self.spec.satisfies('@:2.5.0,3:'):
+ args += ['--with-boost=' + self.spec['boost'].prefix]
+
+ args += ['--with-fastjet=' + self.spec['fastjet'].prefix]
+ if self.spec.satisfies('@2:'):
+ args += ['--with-yoda=' + self.spec['yoda'].prefix]
+
+ if self.spec.satisfies('@:2.6.0,2.6.2:'):
+ args += ['--with-gsl=' + self.spec['gsl'].prefix]
+
+ if self.spec.satisfies('@3.0.0:'):
+ args += ['--with-fjcontrib=' + self.spec['fjcontrib'].prefix]
+
+ args += ['--disable-pdfmanual', '--enable-unvalidated']
+
+ if self.spec.satisfies('@2:'):
+ args += ['--enable-stdcxx11']
+
+ return args
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-1.8.2.patch b/var/spack/repos/builtin/packages/rivet/rivet-1.8.2.patch
new file mode 100644
index 0000000000..95cbe774a0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-1.8.2.patch
@@ -0,0 +1,44 @@
+--- src/Tools/Makefile.in.orig 2013-05-15 14:02:25.000000000 +0200
++++ src/Tools/Makefile.in 2013-05-15 14:03:14.000000000 +0200
+@@ -79,7 +79,7 @@
+ libRivetTools_la-ParticleIdUtils.lo \
+ libRivetTools_la-tinyxml.lo libRivetTools_la-tinyxmlerror.lo \
+ libRivetTools_la-tinyxmlparser.lo \
+- libRivetTools_la-BinnedHistogram.lo \
++# libRivetTools_la-BinnedHistogram.lo \
+ libRivetTools_la-mt2_bisect.lo libRivetTools_la-RivetMT2.lo \
+ libRivetTools_la-BinnedHistogram.lo
+ libRivetTools_la_OBJECTS = $(am_libRivetTools_la_OBJECTS)
+@@ -371,7 +371,7 @@
+ TinyXML/tinyxml.cpp \
+ TinyXML/tinyxmlerror.cpp \
+ TinyXML/tinyxmlparser.cpp \
+- BinnedHistogram.cc \
++# BinnedHistogram.cc \
+ mt2_bisect.cc \
+ RivetMT2.cc \
+ BinnedHistogram.cc
+--- include/LWH/Axis.h.orig 2013-05-14 18:30:02.000000000 +0200
++++ include/LWH/Axis.h 2013-05-14 18:31:35.000000000 +0200
+
+@@ -115,7 +115,7 @@
+ *
+ */
+ int coordToIndex(double coord) const {
+- assert( ! isnan(coord) );
++ assert( ! std::isnan(coord) );
+ if ( coord >= upper ) return OVERFLOW_BIN;
+ else if ( coord < lower ) return UNDERFLOW_BIN;
+ else return int((coord - lower)/binWidth(0));
+
+--- src/Tools/Makefile.am.orig 2013-05-15 13:14:11.000000000 +0200
++++ src/Tools/Makefile.am 2013-05-15 13:16:53.000000000 +0200
+@@ -14,7 +14,7 @@
+ TinyXML/tinyxml.cpp \
+ TinyXML/tinyxmlerror.cpp \
+ TinyXML/tinyxmlparser.cpp \
+- BinnedHistogram.cc \
++# BinnedHistogram.cc \
+ mt2_bisect.cc \
+ RivetMT2.cc \
+ BinnedHistogram.cc
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-1.9.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-1.9.0.patch
new file mode 100644
index 0000000000..9d274550b7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-1.9.0.patch
@@ -0,0 +1,30 @@
+--- bin/rivet-buildplugin.in.orig 2014-09-02 11:22:32.000000000 +0200
++++ bin/rivet-buildplugin.in 2014-09-02 11:26:31.000000000 +0200
+@@ -62,6 +62,7 @@
+ mycppflags=""
+ prefix="@prefix@"
+ irivet="@includedir@"
++exec_prefix=@exec_prefix@
+ test -n "$irivet" && mycppflags="$mycppflags -I${irivet}"
+ ihepmc="@HEPMCINCPATH@"
+ test -n "$ihepmc" && mycppflags="$mycppflags -I${ihepmc}"
+@@ -74,7 +75,7 @@
+
+ ## Get Rivet system linker flags (duplicating that in rivet-config.in)
+ myldflags=""
+-lrivet="@libdir@"
++lrivet="${exec_prefix}/lib"
+ test -n "$lrivet" && myldflags="$myldflags -L${lrivet}"
+ lhepmc="@HEPMCLIBPATH@"
+ test -n "$lhepmc" && myldflags="$myldflags -L${lhepmc}"
+--- bin/rivet-findid 2015-06-23 09:15:28.000000001 +0200
++++ bin/rivet-findid 2015-06-23 09:15:38.000000001 +0200
+@@ -170,7 +170,7 @@
+ if k=='code':
+ entries[v] = c.text
+ if entries.get('9') == 'SPIRESTeX':
+- result['bibtex'] = entries['z']
++ result['bibtex'] = entries['a']
+
+ if i.get('tag') == '037':
+ entries = {}
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.2.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.2.0.patch
new file mode 100644
index 0000000000..ac9268a252
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.2.0.patch
@@ -0,0 +1,11 @@
+--- bin/rivet-findid 2015-06-23 09:39:49.000000001 +0200
++++ bin/rivet-findid 2015-06-23 09:40:09.000000001 +0200
+@@ -160,7 +160,7 @@
+ if k=='code':
+ entries[v] = c.text
+ if entries.get('9') == 'SPIRESTeX':
+- result['bibtex'] = entries['z']
++ result['bibtex'] = entries['a']
+
+ if i.get('tag') == '037':
+ entries = {}
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.2.1.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.2.1.patch
new file mode 100644
index 0000000000..a9fceb92c0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.2.1.patch
@@ -0,0 +1,11 @@
+--- bin/rivet-findid 2015-06-23 09:40:38.000000001 +0200
++++ bin/rivet-findid 2015-06-23 09:40:45.000000001 +0200
+@@ -160,7 +160,7 @@
+ if k=='code':
+ entries[v] = c.text
+ if entries.get('9') == 'SPIRESTeX':
+- result['bibtex'] = entries['z']
++ result['bibtex'] = entries['a']
+
+ if i.get('tag') == '037':
+ entries = {}
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.4.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.4.0.patch
new file mode 100644
index 0000000000..7ce4f1dd55
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.4.0.patch
@@ -0,0 +1,12 @@
+--- configure 2015-10-07 12:35:57.000000000 +0300
++++ configure 2015-10-09 16:18:02.432562522 +0300
+@@ -18728,7 +18728,7 @@
+ ## Boost utility library
+ echo "$as_me: this is boost.m4 serial 24" >&5
+ boost_save_IFS=$IFS
+-boost_version_req=1.55.0
++boost_version_req=1.53.0
+ IFS=.
+ set x $boost_version_req 0 0 0
+ IFS=$boost_save_IFS
+
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.4.2.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.4.2.patch
new file mode 100644
index 0000000000..98436c5acf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.4.2.patch
@@ -0,0 +1,39 @@
+--- configure.orig 2016-09-30 14:12:42.317369715 +0200
++++ configure 2016-09-30 14:17:21.690229397 +0200
+@@ -19644,11 +19644,15 @@
+ cat >conftest.py <<_ACEOF
+
+ import sys, string
++# Python 2 and 3 compatible
++from future.builtins import map
++# Python 2 and 3: forward-compatible
++from future.builtins import range
+ # split strings by '.' and convert to numeric. Append some zeros
+ # because we need at least 4 digits for the hex conversion.
+-minver = map(int, string.split('2.5', '.')) + [0, 0, 0]
++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0]
+ minverhex = 0
+-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i]
++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i]
+ if sys.hexversion >= minverhex:
+ sys.exit( 0 )
+ else:
+@@ -19676,15 +19680,15 @@
+ fi
+
+
+- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"`
++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(map(str, sys.version_info[:2])));"`
+
+- RIVET_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"`
++ RIVET_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"`
+
+ ## Test for Python header
+ if test -x "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
+ $as_echo_n "checking for Python include path... " >&6; }
+- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"`
++ python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5
+ $as_echo "$python_incpath" >&6; }
+ python_header="$python_incpath/Python.h"
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.4.3.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.4.3.patch
new file mode 100644
index 0000000000..9d006df8c0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.4.3.patch
@@ -0,0 +1,39 @@
+--- configure.orig 2016-06-28 23:57:35.000000000 +0200
++++ configure 2016-09-19 12:44:23.411192406 +0200
+@@ -19643,11 +19643,15 @@
+ cat >conftest.py <<_ACEOF
+
+ import sys, string
++# Python 2 and 3 compatible
++from future.builtins import map
++# Python 2 and 3: forward-compatible
++from future.builtins import range
+ # split strings by '.' and convert to numeric. Append some zeros
+ # because we need at least 4 digits for the hex conversion.
+-minver = map(int, string.split('2.5', '.')) + [0, 0, 0]
++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0]
+ minverhex = 0
+-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i]
++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i]
+ if sys.hexversion >= minverhex:
+ sys.exit( 0 )
+ else:
+@@ -19675,15 +19679,15 @@
+ fi
+
+
+- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"`
++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(map(str, sys.version_info[:2])));"`
+
+- RIVET_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"`
++ RIVET_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"`
+
+ ## Test for Python header
+ if test -x "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
+ $as_echo_n "checking for Python include path... " >&6; }
+- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"`
++python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5
+ $as_echo "$python_incpath" >&6; }
+ python_header="$python_incpath/Python.h"
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.5.1.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.5.1.patch
new file mode 100644
index 0000000000..dc5f484203
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.5.1.patch
@@ -0,0 +1,39 @@
+--- configure.orig 2016-09-30 09:25:10.000000000 +0200
++++ configure 2016-09-30 09:27:01.000000000 +0200
+@@ -19681,11 +19681,15 @@
+ cat >conftest.py <<_ACEOF
+
+ import sys, string
++# Python 2 and 3 compatible
++from future.builtins import map
++# Python 2 and 3: forward-compatible
++from future.builtins import range
+ # split strings by '.' and convert to numeric. Append some zeros
+ # because we need at least 4 digits for the hex conversion.
+-minver = map(int, string.split('2.5', '.')) + [0, 0, 0]
++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0]
+ minverhex = 0
+-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i]
++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i]
+ if sys.hexversion >= minverhex:
+ sys.exit( 0 )
+ else:
+@@ -19713,15 +19717,15 @@
+ fi
+
+
+- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"`
++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(map(str, sys.version_info[:2])));"`
+
+- RIVET_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"`
++ RIVET_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"`
+
+ ## Test for Python header
+ if test -x "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
+ $as_echo_n "checking for Python include path... " >&6; }
+- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"`
++python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5
+ $as_echo "$python_incpath" >&6; }
+ python_header="$python_incpath/Python.h"
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.5.2.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.5.2.patch
new file mode 100644
index 0000000000..9f536d3751
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.5.2.patch
@@ -0,0 +1,10 @@
+--- ./include/Rivet/Tools/RivetSTL.hh.orig 2017-08-03 11:49:33.005431033 +0200
++++ ./include/Rivet/Tools/RivetSTL.hh 2017-08-03 11:50:13.817841608 +0200
+@@ -19,6 +19,7 @@
+ #include <iomanip>
+ #include <cmath>
+ #include <limits>
++#include <functional>
+
+
+ #ifndef foreach
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.5.3.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.5.3.patch
new file mode 100644
index 0000000000..bebf5c73ab
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.5.3.patch
@@ -0,0 +1,43 @@
+--- include/Rivet/Config/RivetCommon.hh.orig 2017-05-31 12:32:04.547062840 +0200
++++ include/Rivet/Config/RivetCommon.hh 2017-05-31 12:32:12.379054886 +0200
+@@ -2,6 +2,7 @@
+ #define RIVET_RivetCommon_HH
+
+ // Convenience build-setup header for Rivet internal use
++#include <functional>
+
+ // Automatic build info from autoconf
+ #include "Rivet/Config/RivetConfig.hh"
+--- include/Rivet/Run.hh.orig 2017-05-31 12:36:00.225823486 +0200
++++ include/Rivet/Run.hh 2017-05-31 12:36:18.653804770 +0200
+@@ -4,6 +4,7 @@
+
+ #include "Rivet/Tools/RivetSTL.hh"
+ #include "Rivet/Tools/RivetHepMC.hh"
++#include <functional>
+
+ namespace Rivet {
+
+--- include/Rivet/Particle.hh.orig 2017-05-31 12:39:14.273626411 +0200
++++ include/Rivet/Particle.hh 2017-05-31 14:00:02.387272379 +0200
+@@ -11,6 +11,8 @@
+ // NOTE: Rivet/Tools/ParticleUtils.hh included at the end
+ #include "fastjet/PseudoJet.hh"
+
++#include <functional>
++
+ namespace Rivet {
+
+
+--- include/Rivet/Tools/RivetSTL.hh.orig 2017-05-31 14:05:28.368975178 +0200
++++ include/Rivet/Tools/RivetSTL.hh 2017-05-31 14:05:44.432960512 +0200
+@@ -1,6 +1,8 @@
+ #ifndef RIVET_RivetSTL_HH
+ #define RIVET_RivetSTL_HH
+
++#include <functional>
++
+ #include <string>
+ #include <vector>
+ #include <set>
+
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.5.4.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.5.4.patch
new file mode 100644
index 0000000000..af338da6d5
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.5.4.patch
@@ -0,0 +1,42 @@
+patch written by GENSER to avoid system libraries of GLS coming from fastjet-config
+--- include/Rivet/Tools/JetUtils.hh
++++ include/Rivet/Tools/JetUtils.hh
+@@ -47,4 +47,5 @@
+ struct BoolJetFunctor {
+ virtual bool operator()(const Jet& p) const = 0;
++ virtual ~BoolJetFunctor() {}
+ };
+
+--- include/Rivet/Tools/ParticleBaseUtils.hh
++++ include/Rivet/Tools/ParticleBaseUtils.hh
+@@ -23,4 +23,5 @@
+ struct BoolParticleBaseFunctor {
+ virtual bool operator()(const ParticleBase& p) const = 0;
++ virtual ~BoolParticleBaseFunctor() {}
+ };
+
+@@ -397,4 +398,5 @@
+ struct DoubleParticleBaseFunctor {
+ virtual double operator()(const ParticleBase& p) const = 0;
++ virtual ~DoubleParticleBaseFunctor() {}
+ };
+
+--- include/Rivet/Tools/ParticleUtils.hh
++++ include/Rivet/Tools/ParticleUtils.hh
+@@ -486,4 +486,5 @@
+ struct BoolParticleFunctor {
+ virtual bool operator()(const Particle& p) const = 0;
++ virtual ~BoolParticleFunctor() {}
+ };
+
+--- src/Makefile.in.orig 2018-01-30 13:52:58.641670247 +0100
++++ src/Makefile.in 2018-01-30 13:53:19.377586118 +0100
+@@ -449,7 +449,7 @@
+ libRivet_la_SOURCES =
+ libRivet_la_LDFLAGS = -export-dynamic -avoid-version -L$(YODALIBPATH) -L$(HEPMCLIBPATH)
+ libRivet_la_LIBADD = Core/libRivetCore.la Projections/libRivetProjections.la Tools/libRivetTools.la $(ANA_LIBADD) \
+- -lYODA -lHepMC -ldl -lm $(FASTJETCONFIGLIBADD) $(GSL_LDFLAGS)
++ -lYODA -lHepMC -ldl -lm $(GSL_LDFLAGS) $(FASTJETCONFIGLIBADD)
+
+ all: all-recursive
+
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.6.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.6.0.patch
new file mode 100644
index 0000000000..2cb7cab14b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.6.0.patch
@@ -0,0 +1,90 @@
+--- include/Rivet/Tools/JetUtils.hh
++++ include/Rivet/Tools/JetUtils.hh
+@@ -47,4 +47,5 @@
+ struct BoolJetFunctor {
+ virtual bool operator()(const Jet& p) const = 0;
++ virtual ~BoolJetFunctor() {}
+ };
+
+--- include/Rivet/Tools/ParticleBaseUtils.hh
++++ include/Rivet/Tools/ParticleBaseUtils.hh
+@@ -23,4 +23,5 @@
+ struct BoolParticleBaseFunctor {
+ virtual bool operator()(const ParticleBase& p) const = 0;
++ virtual ~BoolParticleBaseFunctor() {}
+ };
+
+@@ -397,4 +398,5 @@
+ struct DoubleParticleBaseFunctor {
+ virtual double operator()(const ParticleBase& p) const = 0;
++ virtual ~DoubleParticleBaseFunctor() {}
+ };
+
+--- include/Rivet/Tools/ParticleUtils.hh
++++ include/Rivet/Tools/ParticleUtils.hh
+@@ -486,4 +486,5 @@
+ struct BoolParticleFunctor {
+ virtual bool operator()(const Particle& p) const = 0;
++ virtual ~BoolParticleFunctor() {}
+ };
+
+--- analyses/Makefile.in.orig 2018-06-28 09:22:46.722022129 +0200
++++ analyses/Makefile.in 2018-06-28 10:11:59.772373529 +0200
+@@ -523,21 +523,21 @@
+ @ENABLE_ANALYSES_TRUE@%.so:
+ @ENABLE_ANALYSES_TRUE@ @+echo && RIVET_BUILDPLUGIN_BEFORE_INSTALL=1 bash $(top_builddir)/bin/rivet-buildplugin -j2 $@ $^ -I$(top_builddir)/include
+
+-@ENABLE_ANALYSES_TRUE@RivetALICEAnalyses.so: $(shell ls $(srcdir)/pluginALICE/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetATLASAnalyses.so: $(shell ls $(srcdir)/pluginATLAS/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetCDFAnalyses.so : $(shell ls $(srcdir)/pluginCDF/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetCMSAnalyses.so : $(shell ls $(srcdir)/pluginCMS/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetD0Analyses.so : $(shell ls $(srcdir)/pluginD0/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetHERAAnalyses.so : $(shell ls $(srcdir)/pluginHERA/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetLEPAnalyses.so : $(shell ls $(srcdir)/pluginLEP/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetLHCbAnalyses.so : $(shell ls $(srcdir)/pluginLHCb/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetLHCfAnalyses.so : $(shell ls $(srcdir)/pluginLHCf/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetMCAnalyses.so : $(shell ls $(srcdir)/pluginMC/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetMiscAnalyses.so : $(shell ls $(srcdir)/pluginMisc/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetPetraAnalyses.so: $(shell ls $(srcdir)/pluginPetra/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetRHICAnalyses.so : $(shell ls $(srcdir)/pluginRHIC/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetSPSAnalyses.so : $(shell ls $(srcdir)/pluginSPS/*.cc)
+-@ENABLE_ANALYSES_TRUE@RivetTOTEMAnalyses.so: $(shell ls $(srcdir)/pluginTOTEM/*.cc)
++@ENABLE_ANALYSES_TRUE@RivetALICEAnalyses.so: $(shell find $(srcdir)/pluginALICE/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetATLASAnalyses.so: $(shell find $(srcdir)/pluginATLAS/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetCDFAnalyses.so : $(shell find $(srcdir)/pluginCDF/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetCMSAnalyses.so : $(shell find $(srcdir)/pluginCMS/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetD0Analyses.so : $(shell find $(srcdir)/pluginD0/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetHERAAnalyses.so : $(shell find $(srcdir)/pluginHERA/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetLEPAnalyses.so : $(shell find $(srcdir)/pluginLEP/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetLHCbAnalyses.so : $(shell find $(srcdir)/pluginLHCb/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetLHCfAnalyses.so : $(shell find $(srcdir)/pluginLHCf/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetMCAnalyses.so : $(shell find $(srcdir)/pluginMC/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetMiscAnalyses.so : $(shell find $(srcdir)/pluginMisc/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetPetraAnalyses.so: $(shell find $(srcdir)/pluginPetra/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetRHICAnalyses.so : $(shell find $(srcdir)/pluginRHIC/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetSPSAnalyses.so : $(shell find $(srcdir)/pluginSPS/ -name '*.cc' -not -name 'tmp*')
++@ENABLE_ANALYSES_TRUE@RivetTOTEMAnalyses.so: $(shell find $(srcdir)/pluginTOTEM/ -name '*.cc' -not -name 'tmp*')
+
+ @ENABLE_ANALYSES_TRUE@all-local: $(PLUGIN_LIBS) $(PLUGIN_DATAFILES)
+ @ENABLE_ANALYSES_TRUE@ mkdir -p $(builddir)/data
+--- analyses/pluginATLAS/ATLAS_2016_CONF_2016_037.cc.orig 2018-07-02 10:43:08.656094368 +0200
++++ analyses/pluginATLAS/ATLAS_2016_CONF_2016_037.cc 2018-07-02 10:44:04.920361160 +0200
+@@ -2,6 +2,7 @@
+ #include "Rivet/Analysis.hh"
+ #include "Rivet/Projections/FinalState.hh"
+ #include "Rivet/Projections/PromptFinalState.hh"
++#include "Rivet/Projections/ChargedFinalState.hh"
+ #include "Rivet/Projections/FastJets.hh"
+ #include "Rivet/Projections/Sphericity.hh"
+ #include "Rivet/Projections/SmearedParticles.hh"
+--- include/Rivet/AnalysisHandler.hh.orig 2018-07-10 10:39:21.719532209 +0200
++++ include/Rivet/AnalysisHandler.hh 2018-07-10 10:39:29.225608530 +0200
+@@ -17,7 +17,7 @@
+
+ // Needed to make smart pointers compare equivalent in the STL set
+ struct CmpAnaHandle {
+- bool operator() (const AnaHandle& a, const AnaHandle& b) {
++ bool operator() (const AnaHandle& a, const AnaHandle& b) const {
+ return a.get() < b.get();
+ }
+ };
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.6.1.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.6.1.patch
new file mode 100644
index 0000000000..878e72d739
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.6.1.patch
@@ -0,0 +1,24 @@
+--- doc/Makefile.in.orig 2018-10-17 18:29:15.568630034 +0200
++++ doc/Makefile.in 2018-10-17 18:31:45.829375147 +0200
+@@ -594,15 +594,15 @@
+ .PRECIOUS: Makefile
+
+ @ENABLE_PYEXT_TRUE@analyses.html: $(top_srcdir)/analyses $(srcdir)/mk-analysis-html
+-@ENABLE_PYEXT_TRUE@ LD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(LD_LIBRARY_PATH) \
+-@ENABLE_PYEXT_TRUE@ DYLD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(DYLD_LIBRARY_PATH) \
++@ENABLE_PYEXT_TRUE@ LD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(HEPMCLIBPATH):$(FASTJETLIBPATH):$(YODALIBPATH):$(RIVETLIBPATH):$(LD_LIBRARY_PATH) \
++@ENABLE_PYEXT_TRUE@ DYLD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(HEPMCLIBPATH):$(FASTJETLIBPATH):$(YODALIBPATH):$(RIVETLIBPATH):$(DYLD_LIBRARY_PATH) \
+ @ENABLE_PYEXT_TRUE@ PYTHONPATH=$(YODA_PYTHONPATH):$(RIVET_PYTHONPATH):$(PYTHONPATH) \
+-@ENABLE_PYEXT_TRUE@ $(srcdir)/mk-analysis-html
++@ENABLE_PYEXT_TRUE@ $(PYTHON) $(srcdir)/mk-analysis-html
+ @ENABLE_PYEXT_TRUE@analyses.json: $(top_srcdir)/analyses $(srcdir)/mk-analysis-json
+-@ENABLE_PYEXT_TRUE@ LD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(LD_LIBRARY_PATH) \
+-@ENABLE_PYEXT_TRUE@ DYLD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(DYLD_LIBRARY_PATH) \
++@ENABLE_PYEXT_TRUE@ LD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(HEPMCLIBPATH):$(FASTJETLIBPATH):$(YODALIBPATH):$(RIVETLIBPATH):$(LD_LIBRARY_PATH) \
++@ENABLE_PYEXT_TRUE@ DYLD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(HEPMCLIBPATH):$(FASTJETLIBPATH):$(YODALIBPATH):$(RIVETLIBPATH):$(DYLD_LIBRARY_PATH) \
+ @ENABLE_PYEXT_TRUE@ PYTHONPATH=$(YODA_PYTHONPATH):$(RIVET_PYTHONPATH):$(PYTHONPATH) \
+-@ENABLE_PYEXT_TRUE@ $(srcdir)/mk-analysis-json
++@ENABLE_PYEXT_TRUE@ $(PYTHON) $(srcdir)/mk-analysis-json
+
+ @WITH_ASCIIDOC_TRUE@compare-histos.html: compare-histos.txt
+ @WITH_ASCIIDOC_TRUE@ asciidoc -a toc compare-histos.txt
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.6.2.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.6.2.patch
new file mode 100644
index 0000000000..a327f481d4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.6.2.patch
@@ -0,0 +1,97 @@
+--- configure.ac.orig 2019-01-23 11:02:06.206570992 +0100
++++ configure.ac 2019-01-23 11:02:26.704761899 +0100
+@@ -151,12 +151,12 @@
+
+
+ # ## GNU Scientific Library
+-# AC_SEARCH_GSL
+-# AC_CEDAR_HEADERS([gsl], , , [AC_MSG_ERROR([GSL (GNU Scientific Library) is required])])
+-# oldCPPFLAGS=$CPPFLAGS
+-# CPPFLAGS="$CPPFLAGS -I$GSLINCPATH"
+-# AC_CHECK_HEADER([gsl/gsl_vector.h], [], [AC_MSG_ERROR([GSL vectors not found.])])
+-# CPPFLAGS=$oldCPPFLAGS
++AC_SEARCH_GSL
++AC_CEDAR_HEADERS([gsl], , , [AC_MSG_ERROR([GSL (GNU Scientific Library) is required])])
++oldCPPFLAGS=$CPPFLAGS
++CPPFLAGS="$CPPFLAGS -I$GSLINCPATH"
++AC_CHECK_HEADER([gsl/gsl_vector.h], [], [AC_MSG_ERROR([GSL vectors not found.])])
++CPPFLAGS=$oldCPPFLAGS
+
+
+ ## Disable build/install of standard analyses
+@@ -256,7 +256,7 @@
+ ## Set default build flags
+ AM_CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include"
+ #AM_CPPFLAGS="$AM_CPPFLAGS -I\$(top_srcdir)/include/eigen3"
+-#AM_CPPFLAGS="$AM_CPPFLAGS \$(GSL_CPPFLAGS)"
++AM_CPPFLAGS="$AM_CPPFLAGS \$(GSL_CPPFLAGS)"
+ dnl AM_CPPFLAGS="$AM_CPPFLAGS \$(BOOST_CPPFLAGS)"
+ AM_CPPFLAGS="$AM_CPPFLAGS -I\$(YODAINCPATH)"
+ AM_CPPFLAGS="$AM_CPPFLAGS -I\$(HEPMCINCPATH)"
+--- bin/rivet-config.in.orig 2019-01-23 11:08:04.608907832 +0100
++++ bin/rivet-config.in 2019-01-23 11:08:25.058098155 +0100
+@@ -82,8 +82,8 @@
+ test -n "$iyoda" && OUT="$OUT -I${iyoda}"
+ ifastjet="@FASTJETINCPATH@"
+ test -n "$ifastjet" && OUT="$OUT -I${ifastjet}"
+- # igsl="@GSLINCPATH@"
+- # test -n "$igsl" && OUT="$OUT -I${igsl}"
++ igsl="@GSLINCPATH@"
++ test -n "$igsl" && OUT="$OUT -I${igsl}"
+ # iboost="@BOOST_CPPFLAGS@"
+ # test -n "$iboost" && OUT="$OUT ${iboost}"
+ fi
+@@ -98,8 +98,8 @@
+ test -n "$lyoda" && OUT="$OUT -L${lyoda} -lYODA"
+ lfastjet="@FASTJETCONFIGLIBADD@"
+ test -n "$lfastjet" && OUT="$OUT ${lfastjet}"
+- # lgsl="@GSLLIBPATH@"
+- # test -n "$lgsl" && OUT="$OUT -L${lgsl}"
++ lgsl="@GSLLIBPATH@"
++ test -n "$lgsl" && OUT="$OUT -L${lgsl}"
+ fi
+
+ tmp=$( echo "$*" | egrep -- '--\<libs\>|--\<ldadd\>')
+--- bin/rivet-buildplugin.in.orig 2019-01-23 11:10:07.804054317 +0100
++++ bin/rivet-buildplugin.in 2019-01-23 11:10:34.370301517 +0100
+@@ -169,8 +169,8 @@
+ test -n "$iyoda" && mycppflags="$mycppflags -I${iyoda}"
+ ifastjet="@FASTJETINCPATH@"
+ test -n "$ifastjet" && mycppflags="$mycppflags -I${ifastjet}"
+-# igsl="@GSLINCPATH@"
+-# test -n "$igsl" && mycppflags="$mycppflags -I${igsl}"
++igsl="@GSLINCPATH@"
++test -n "$igsl" && mycppflags="$mycppflags -I${igsl}"
+ # iboost="@BOOST_CPPFLAGS@"
+ # test -n "$iboost" && mycppflags="$mycppflags ${iboost}"
+
+--- pyext/setup.py.in.orig 2019-01-23 11:12:04.694141901 +0100
++++ pyext/setup.py.in 2019-01-23 11:12:44.531512512 +0100
+@@ -29,11 +29,11 @@
+
+
+ ## Be careful with extracting the GSL path from the flags string
+-# import re
+-# re_libdirflag = re.compile(r".*-L\s*(\S+).*")
+-# re_match = re_libdirflag.search("@GSL_LDFLAGS@")
+-# if re_match:
+- # lookupdirs.append( re_match.group(1) )
++import re
++re_libdirflag = re.compile(r".*-L\s*(\S+).*")
++re_match = re_libdirflag.search("@GSL_LDFLAGS@")
++if re_match:
++ lookupdirs.append( re_match.group(1) )
+
+ ## A helper function
+ def ext(name, depends=[], statics=[]):
+@@ -47,8 +47,8 @@
+ language="c++",
+ # depends=depends,
+ include_dirs=[incdir1, incdir2, incdir3, incdir4],
+- # extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@ @GSLCPPFLAGS@".split(),
+- extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@".split(),
++ extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@ @GSLCPPFLAGS@".split(),
++ # extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@".split(),
+ extra_link_args=BASE_LINK_ARGS,
+ library_dirs=lookupdirs,
+ runtime_library_dirs=lookupdirs[1:],
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.7.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.7.0.patch
new file mode 100644
index 0000000000..a327f481d4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-2.7.0.patch
@@ -0,0 +1,97 @@
+--- configure.ac.orig 2019-01-23 11:02:06.206570992 +0100
++++ configure.ac 2019-01-23 11:02:26.704761899 +0100
+@@ -151,12 +151,12 @@
+
+
+ # ## GNU Scientific Library
+-# AC_SEARCH_GSL
+-# AC_CEDAR_HEADERS([gsl], , , [AC_MSG_ERROR([GSL (GNU Scientific Library) is required])])
+-# oldCPPFLAGS=$CPPFLAGS
+-# CPPFLAGS="$CPPFLAGS -I$GSLINCPATH"
+-# AC_CHECK_HEADER([gsl/gsl_vector.h], [], [AC_MSG_ERROR([GSL vectors not found.])])
+-# CPPFLAGS=$oldCPPFLAGS
++AC_SEARCH_GSL
++AC_CEDAR_HEADERS([gsl], , , [AC_MSG_ERROR([GSL (GNU Scientific Library) is required])])
++oldCPPFLAGS=$CPPFLAGS
++CPPFLAGS="$CPPFLAGS -I$GSLINCPATH"
++AC_CHECK_HEADER([gsl/gsl_vector.h], [], [AC_MSG_ERROR([GSL vectors not found.])])
++CPPFLAGS=$oldCPPFLAGS
+
+
+ ## Disable build/install of standard analyses
+@@ -256,7 +256,7 @@
+ ## Set default build flags
+ AM_CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include"
+ #AM_CPPFLAGS="$AM_CPPFLAGS -I\$(top_srcdir)/include/eigen3"
+-#AM_CPPFLAGS="$AM_CPPFLAGS \$(GSL_CPPFLAGS)"
++AM_CPPFLAGS="$AM_CPPFLAGS \$(GSL_CPPFLAGS)"
+ dnl AM_CPPFLAGS="$AM_CPPFLAGS \$(BOOST_CPPFLAGS)"
+ AM_CPPFLAGS="$AM_CPPFLAGS -I\$(YODAINCPATH)"
+ AM_CPPFLAGS="$AM_CPPFLAGS -I\$(HEPMCINCPATH)"
+--- bin/rivet-config.in.orig 2019-01-23 11:08:04.608907832 +0100
++++ bin/rivet-config.in 2019-01-23 11:08:25.058098155 +0100
+@@ -82,8 +82,8 @@
+ test -n "$iyoda" && OUT="$OUT -I${iyoda}"
+ ifastjet="@FASTJETINCPATH@"
+ test -n "$ifastjet" && OUT="$OUT -I${ifastjet}"
+- # igsl="@GSLINCPATH@"
+- # test -n "$igsl" && OUT="$OUT -I${igsl}"
++ igsl="@GSLINCPATH@"
++ test -n "$igsl" && OUT="$OUT -I${igsl}"
+ # iboost="@BOOST_CPPFLAGS@"
+ # test -n "$iboost" && OUT="$OUT ${iboost}"
+ fi
+@@ -98,8 +98,8 @@
+ test -n "$lyoda" && OUT="$OUT -L${lyoda} -lYODA"
+ lfastjet="@FASTJETCONFIGLIBADD@"
+ test -n "$lfastjet" && OUT="$OUT ${lfastjet}"
+- # lgsl="@GSLLIBPATH@"
+- # test -n "$lgsl" && OUT="$OUT -L${lgsl}"
++ lgsl="@GSLLIBPATH@"
++ test -n "$lgsl" && OUT="$OUT -L${lgsl}"
+ fi
+
+ tmp=$( echo "$*" | egrep -- '--\<libs\>|--\<ldadd\>')
+--- bin/rivet-buildplugin.in.orig 2019-01-23 11:10:07.804054317 +0100
++++ bin/rivet-buildplugin.in 2019-01-23 11:10:34.370301517 +0100
+@@ -169,8 +169,8 @@
+ test -n "$iyoda" && mycppflags="$mycppflags -I${iyoda}"
+ ifastjet="@FASTJETINCPATH@"
+ test -n "$ifastjet" && mycppflags="$mycppflags -I${ifastjet}"
+-# igsl="@GSLINCPATH@"
+-# test -n "$igsl" && mycppflags="$mycppflags -I${igsl}"
++igsl="@GSLINCPATH@"
++test -n "$igsl" && mycppflags="$mycppflags -I${igsl}"
+ # iboost="@BOOST_CPPFLAGS@"
+ # test -n "$iboost" && mycppflags="$mycppflags ${iboost}"
+
+--- pyext/setup.py.in.orig 2019-01-23 11:12:04.694141901 +0100
++++ pyext/setup.py.in 2019-01-23 11:12:44.531512512 +0100
+@@ -29,11 +29,11 @@
+
+
+ ## Be careful with extracting the GSL path from the flags string
+-# import re
+-# re_libdirflag = re.compile(r".*-L\s*(\S+).*")
+-# re_match = re_libdirflag.search("@GSL_LDFLAGS@")
+-# if re_match:
+- # lookupdirs.append( re_match.group(1) )
++import re
++re_libdirflag = re.compile(r".*-L\s*(\S+).*")
++re_match = re_libdirflag.search("@GSL_LDFLAGS@")
++if re_match:
++ lookupdirs.append( re_match.group(1) )
+
+ ## A helper function
+ def ext(name, depends=[], statics=[]):
+@@ -47,8 +47,8 @@
+ language="c++",
+ # depends=depends,
+ include_dirs=[incdir1, incdir2, incdir3, incdir4],
+- # extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@ @GSLCPPFLAGS@".split(),
+- extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@".split(),
++ extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@ @GSLCPPFLAGS@".split(),
++ # extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@".split(),
+ extra_link_args=BASE_LINK_ARGS,
+ library_dirs=lookupdirs,
+ runtime_library_dirs=lookupdirs[1:],
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-3.0.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-3.0.0.patch
new file mode 100644
index 0000000000..229bfb4acc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-3.0.0.patch
@@ -0,0 +1,70 @@
+--- bin/rivet-buildplugin.in.orig Mon Jul 08 15:16:09 2019 +0100
++++ bin/rivet-buildplugin.in Wed Jul 10 16:15:41 2019 +0100
+@@ -172,4 +172,6 @@
+ ifastjet="@FASTJETINCPATH@"
+ test -n "$ifastjet" && mycppflags="$mycppflags -I${ifastjet}"
++ifjcontrib="@FJCONTRIBCPPFLAGS@"
++test -n "$ifjcontrib" && mycppflags="$mycppflags ${ifjcontrib}"
+
+ ## Get Rivet system linker flags (duplicating that in rivet-config.in)
+--- bin/rivet-config.in.orig Mon Jul 08 15:16:09 2019 +0100
++++ bin/rivet-config.in Wed Jul 10 16:15:41 2019 +0100
+@@ -83,4 +83,6 @@
+ ifastjet="@FASTJETINCPATH@"
+ test -n "$ifastjet" && OUT="$OUT -I${ifastjet}"
++ ifjcontrib="@FJCONTRIBCPPFLAGS@"
++ test -n "$ifjcontrib" && OUT="$OUT ${ifjcontrib}"
+ fi
+
+--- configure.ac.orig Mon Jul 08 15:16:09 2019 +0100
++++ configure.ac Wed Jul 10 16:15:41 2019 +0100
+@@ -197,10 +197,26 @@
+ FASTJETLIBADD="$FASTJETLIBADD -lEECambridgePlugin -lJadePlugin"
+ fi;
++
++## FastJet contrib (allow paths specified separately from FJ)
++AC_ARG_WITH([fjcontrib],
++ [AC_HELP_STRING(--with-fjcontrib, path to FastJet Contrib @<:@$FASTJETPATH@:>@)], [], [])
++if test -n "$with_fjcontrib"; then
++ AC_MSG_NOTICE([FastJet Contrib base path given: $with_fjcontrib])
++ FJCONTRIBINCPATH=$with_fjcontrib/include
++ FJCONTRIBLIBPATH=$with_fjcontrib/lib
++ FJCONTRIBCPPFLAGS=-I$FJCONTRIBINCPATH
++ AC_SUBST(FJCONTRIBINCPATH)
++ AC_SUBST(FJCONTRIBLIBPATH)
++ AC_SUBST(FJCONTRIBCPPFLAGS)
++ FASTJETLIBADD="-L$FJCONTRIBLIBPATH $FASTJETLIBADD"
++fi
+ FASTJETLIBADD="$FASTJETLIBADD -lfastjetcontribfragile -lfastjettools"
++
++## Test FastJet + Contrib
++## Check for FastJet headers that require the --enable-all(cxx)plugins option
+ AC_MSG_NOTICE([FastJet LIBADD = $FASTJETLIBADD])
+ AC_SUBST(FASTJETLIBADD)
+-# Check for FastJet headers that require the --enable-all(cxx)plugins option
+ oldCPPFLAGS=$CPPFLAGS
+-CPPFLAGS="$CPPFLAGS -I$FASTJETINCPATH"
++CPPFLAGS="$CPPFLAGS $FASTJETCPPFLAGS $FJCONTRIBCPPFLAGS"
+ oldLIBS=$LIBS
+ LIBS="$LIBS $FASTJETLIBADD"
+@@ -339,5 +355,4 @@
+ #AM_CPPFLAGS="$AM_CPPFLAGS -I\$(top_srcdir)/include/eigen3"
+ #AM_CPPFLAGS="$AM_CPPFLAGS \$(GSL_CPPFLAGS)"
+-dnl AM_CPPFLAGS="$AM_CPPFLAGS \$(BOOST_CPPFLAGS)"
+ AM_CPPFLAGS="$AM_CPPFLAGS -I\$(YODAINCPATH)"
+ if test x$use_hepmc2 = xyes ; then
+@@ -346,5 +361,5 @@
+ AM_CPPFLAGS="$AM_CPPFLAGS -I\$(HEPMC3INCPATH)"
+ fi
+-AM_CPPFLAGS="$AM_CPPFLAGS -I\$(FASTJETINCPATH)"
++AM_CPPFLAGS="$AM_CPPFLAGS \$(FASTJETCPPFLAGS) \$(FJCONTRIBCPPFLAGS)"
+ AC_CEDAR_CHECKCXXFLAG([-pedantic], [AM_CXXFLAGS="$AM_CXXFLAGS -pedantic"])
+ AC_CEDAR_CHECKCXXFLAG([-Wall], [AM_CXXFLAGS="$AM_CXXFLAGS -Wall"])
+--- src/AnalysisTools/Makefile.am.org Mon Jul 08 15:16:09 2019 +0100
++++ src/AnalysisTools/Makefile.am Wed Jul 10 16:15:41 2019 +0100
+@@ -6,4 +6,4 @@
+ MC_JetSplittings.cc
+
+-libRivetAnalysisTools_la_LDFLAGS = $(AM_LDFLAGS) -L$(FASTJETLIBPATH)
++libRivetAnalysisTools_la_LDFLAGS = $(AM_LDFLAGS) -L$(FASTJETLIBPATH) -L$(FJCONTRIBLIBPATH)
+ libRivetAnalysisTools_la_LIBS = $(FASTJETLIBADD)
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-3.0.1.patch b/var/spack/repos/builtin/packages/rivet/rivet-3.0.1.patch
new file mode 100644
index 0000000000..31bdcbc7e3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-3.0.1.patch
@@ -0,0 +1,11 @@
+--- bin/rivet-buildplugin.in.orig 2020-04-30 14:41:44.988555918 +0200
++++ bin/rivet-buildplugin.in 2020-04-30 14:42:21.301319083 +0200
+@@ -249,7 +249,7 @@
+ srcnames[$idx]="$tmpfile"
+ fi
+ done
+-objnames=("${srcnames[@]/.cc/.o}")
++objnames=("${srcnames[@]/%.cc/.o}")
+
+ if [[ -z "$debug" ]]; then silencer="@"; fi
+ tmpmakefile=$(mktemp Makefile.tmp.XXXXXXXXXX)
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-3.1.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-3.1.0.patch
new file mode 100644
index 0000000000..ff09f52862
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-3.1.0.patch
@@ -0,0 +1,11 @@
+--- bin/rivet-build.in.orig 2020-04-30 11:11:53.820773774 +0200
++++ bin/rivet-build.in 2020-04-30 11:12:32.766024110 +0200
+@@ -249,7 +249,7 @@
+ srcnames[$idx]="$tmpfile"
+ fi
+ done
+-objnames=("${srcnames[@]/.cc/.o}")
++objnames=("${srcnames[@]/%.cc/.o}")
+
+ if [[ -z "$debug" ]]; then silencer="@"; fi
+ tmpmakefile=$(mktemp Makefile.tmp.XXXXXXXXXX)
diff --git a/var/spack/repos/builtin/packages/rivet/rivet-3.1.1.patch b/var/spack/repos/builtin/packages/rivet/rivet-3.1.1.patch
new file mode 100644
index 0000000000..687d22819a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/rivet/rivet-3.1.1.patch
@@ -0,0 +1,11 @@
+--- configure.ac.orig 2020-05-12 11:26:03.482506197 +0200
++++ configure.ac 2020-05-12 11:54:55.569077342 +0200
+@@ -211,7 +211,7 @@
+ if test "$fjmajor" -lt 3; then
+ AC_MSG_ERROR([FastJet version 3.0.0 or later is required])
+ fi
+- FASTJETLIBADD="$($FJCONFIG --plugins --shared --libs| tr ' ' '\n' | grep -v gcc | tr '\n' ' ')"
++ FASTJETLIBADD="$($FJCONFIG --plugins --shared --libs)"
+ else
+ FASTJETLIBADD="-L$FASTJETLIBPATH -l$FASTJETLIBNAME"
+ FASTJETLIBADD="$FASTJETLIBADD -lSISConePlugin -lsiscone -lsiscone_spherical"
diff --git a/var/spack/repos/builtin/packages/root/package.py b/var/spack/repos/builtin/packages/root/package.py
index 0e590e30ae..8c86971ea5 100644
--- a/var/spack/repos/builtin/packages/root/package.py
+++ b/var/spack/repos/builtin/packages/root/package.py
@@ -235,6 +235,7 @@ class Root(CMakePackage):
depends_on('r', when='+r', type=('build', 'run'))
depends_on('r-rcpp', when='+r', type=('build', 'run'))
depends_on('r-rinside', when='+r', type=('build', 'run'))
+ depends_on('readline', when='+r')
depends_on('shadow', when='+shadow')
depends_on('sqlite', when='+sqlite')
depends_on('tbb', when='+tbb')
@@ -381,7 +382,7 @@ class Root(CMakePackage):
['pythia8'],
['qt', 'qt4'], # See conflicts
['qtgsi', 'qt4'], # See conflicts
- ['r', 'R'],
+ ['r', 'r'],
['rfio', False],
['roofit'],
['root7'], # See conflicts
diff --git a/var/spack/repos/builtin/packages/rsync/package.py b/var/spack/repos/builtin/packages/rsync/package.py
index 078f11e630..2e361f7f6c 100644
--- a/var/spack/repos/builtin/packages/rsync/package.py
+++ b/var/spack/repos/builtin/packages/rsync/package.py
@@ -11,12 +11,17 @@ class Rsync(AutotoolsPackage):
homepage = "https://rsync.samba.org"
url = "https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz"
+ version('3.2.2', sha256='644bd3841779507665211fd7db8359c8a10670c57e305b4aab61b4e40037afa8')
version('3.1.3', sha256='55cc554efec5fdaad70de921cd5a5eeb6c29a95524c715f3bbf849235b0800c0')
version('3.1.2', sha256='ecfa62a7fa3c4c18b9eccd8c16eaddee4bd308a76ea50b5c02a5840f09c0a1c2')
version('3.1.1', sha256='7de4364fcf5fe42f3bdb514417f1c40d10bbca896abe7e7f2c581c6ea08a2621')
depends_on('zlib')
depends_on('popt')
+ depends_on('openssl', when='@3.2:')
+ depends_on('xxhash', when='@3.2:')
+ depends_on('zstd', when='@3.2:')
+ depends_on('lz4', when='@3.2:')
def configure_args(self):
return ['--with-included-zlib=no']
diff --git a/var/spack/repos/builtin/packages/scons/package.py b/var/spack/repos/builtin/packages/scons/package.py
index 328fa558ab..82b9bcd7d1 100644
--- a/var/spack/repos/builtin/packages/scons/package.py
+++ b/var/spack/repos/builtin/packages/scons/package.py
@@ -25,6 +25,15 @@ class Scons(PythonPackage):
depends_on('python@:2', when='@:2', type=('build', 'run'))
depends_on('py-setuptools', when='@3.0.2:', type='build')
+ def patch(self):
+ if self.spec.satisfies('%fj'):
+ filter_file(
+ 'env[\'FORTRANMODDIRPREFIX\'] = "-J"',
+ 'env[\'FORTRANMODDIRPREFIX\'] = "-M"',
+ 'engine/SCons/Tool/gfortran.py',
+ string=True
+ )
+
# Prevent passing --single-version-externally-managed to
# setup.py, which it does not support.
@when('@3.0.2:')
diff --git a/var/spack/repos/builtin/packages/screen/package.py b/var/spack/repos/builtin/packages/screen/package.py
index d68164b4d4..e2ac6fc7d9 100644
--- a/var/spack/repos/builtin/packages/screen/package.py
+++ b/var/spack/repos/builtin/packages/screen/package.py
@@ -14,6 +14,7 @@ class Screen(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/screen/"
gnu_mirror_path = "screen/screen-4.3.1.tar.gz"
+ version('4.8.0', sha256='6e11b13d8489925fde25dfb0935bf6ed71f9eb47eff233a181e078fde5655aa1')
version('4.6.2', sha256='1b6922520e6a0ce5e28768d620b0f640a6631397f95ccb043b70b91bb503fa3a')
version('4.3.1', sha256='fa4049f8aee283de62e283d427f2cfd35d6c369b40f7f45f947dbfd915699d63')
version('4.3.0', sha256='5164e89bcc60d7193177e6e02885cc42411d1d815c839e174fb9abafb9658c46')
diff --git a/var/spack/repos/builtin/packages/sdsl-lite/package.py b/var/spack/repos/builtin/packages/sdsl-lite/package.py
index d5d2a251c0..ba2485c6b7 100644
--- a/var/spack/repos/builtin/packages/sdsl-lite/package.py
+++ b/var/spack/repos/builtin/packages/sdsl-lite/package.py
@@ -32,5 +32,11 @@ class SdslLite(Package):
tar('-xvf', self.stage.archive_file)
with working_dir('sdsl-lite-{0}'.format(spec.version.dotted)):
+ if self.spec.satisfies('%fj'):
+ filter_file(
+ 'stdlib=libc',
+ 'stdlib=libstdc',
+ './CMakeLists.txt'
+ )
helper = Executable('./install.sh')
helper(prefix)
diff --git a/var/spack/repos/builtin/packages/shapeit4/package.py b/var/spack/repos/builtin/packages/shapeit4/package.py
new file mode 100644
index 0000000000..009e5084bf
--- /dev/null
+++ b/var/spack/repos/builtin/packages/shapeit4/package.py
@@ -0,0 +1,55 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Shapeit4(MakefilePackage):
+ """SHAPEIT4 is a fast and accurate method for estimation of haplotypes
+ (aka phasing) for SNP array and high coverage sequencing data."""
+
+ homepage = "https://odelaneau.github.io/shapeit4/"
+ url = "https://github.com/odelaneau/shapeit4/archive/v4.1.3.tar.gz"
+
+ version('4.1.3', sha256='d209731277b00bca1e3478b7e0a0cbe40fbe23826c3d640ad12e0dd6033cbbb8')
+
+ maintainers = ['ilbiondo']
+
+ depends_on('htslib')
+ depends_on('boost')
+ depends_on('bzip2')
+ depends_on('xz')
+
+ def edit(self, spec, prefix):
+
+ makefile = FileFilter('makefile')
+ makefile.filter('CXX=.*', 'CXX = c++')
+
+ makefile.filter('CXXFLAG=.*', 'CXXFLAG = -O3')
+ makefile.filter('LDFLAG=.*', 'LDFLAG = -O3')
+
+ makefile.filter('HTSLIB_INC=.*', 'HTSLIB_INC = '
+ + self.spec['htslib'].prefix.include)
+
+ makefile.filter('HTSLIB_LIB=.*', 'HTSLIB_LIB = '
+ + self.spec['htslib'].prefix.lib + '/libhts.so')
+
+ makefile.filter('BOOST_INC=.*', 'BOOST_INC = '
+ + self.spec['boost'].prefix.include)
+
+ makefile.filter('BOOST_LIB_IO=.*', 'BOOST_LIB_IO = '
+ + self.spec['boost'].prefix.lib
+ + "/libboost_iostreams.so")
+
+ makefile.filter('BOOST_LIB_PO=.*', 'BOOST_LIB_PO = '
+ + self.spec['boost'].prefix.lib
+ + "/libboost_program_options.so")
+
+ def install(self, spec, prefix):
+
+ install_tree('bin', prefix.bin)
+ install_tree('test', join_path(self.prefix, 'test'))
+ install_tree('docs', join_path(self.prefix, 'docs'))
+ install_tree('maps', join_path(self.prefix, 'maps'))
diff --git a/var/spack/repos/builtin/packages/shapelib/package.py b/var/spack/repos/builtin/packages/shapelib/package.py
new file mode 100644
index 0000000000..47be5cdaa1
--- /dev/null
+++ b/var/spack/repos/builtin/packages/shapelib/package.py
@@ -0,0 +1,18 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Shapelib(CMakePackage):
+ """The Shapefile C Library provides the ability to write simple C programs
+ for reading, writing and updating (to a limited extent) ESRI Shapefiles,
+ and the associated attribute file (.dbf).
+ """
+
+ homepage = "http://shapelib.maptools.org/"
+ url = "https://github.com/OSGeo/shapelib/archive/v1.5.0.tar.gz"
+
+ version('1.5.0', sha256='48de3a6a8691b0b111b909c0b908af4627635c75322b3a501c0c0885f3558cad')
diff --git a/var/spack/repos/builtin/packages/smartdenovo/inline-limit.patch b/var/spack/repos/builtin/packages/smartdenovo/inline-limit.patch
new file mode 100644
index 0000000000..9a42bd29cd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/smartdenovo/inline-limit.patch
@@ -0,0 +1,24 @@
+diff -Nur smartdenovo/wtlay.h smartdenovo-new/wtlay.h
+--- smartdenovo/wtlay.h 2020-07-09 02:47:13.503412360 +0800
++++ smartdenovo-new/wtlay.h 2020-07-09 02:49:02.775412360 +0800
+@@ -503,17 +503,17 @@
+ return e2;
+ }
+
+-inline int cut_biedge_strgraph_core(StringGraph *g, uint32_t node_id, int dir, uint32_t eidx, int closed){
++static inline int cut_biedge_strgraph_core(StringGraph *g, uint32_t node_id, int dir, uint32_t eidx, int closed){
+ edge_strgraph(g, node_id, dir, eidx)->closed = closed;
+ edge_partner_strgraph(g, node_id, dir, eidx)->closed = closed;
+ return 1;
+ }
+
+-inline int cut_biedge_strgraph(StringGraph *g, uint32_t node_id, int dir, uint32_t eidx){
++static inline int cut_biedge_strgraph(StringGraph *g, uint32_t node_id, int dir, uint32_t eidx){
+ return cut_biedge_strgraph_core(g, node_id, dir, eidx, 1);
+ }
+
+-inline int cut_biedge_strgraph2(StringGraph *g, uint32_t node_id, int dir, uint32_t eidx){
++static inline int cut_biedge_strgraph2(StringGraph *g, uint32_t node_id, int dir, uint32_t eidx){
+ return cut_biedge_strgraph_core(g, node_id, dir, eidx, 2);
+ }
+
diff --git a/var/spack/repos/builtin/packages/smartdenovo/package.py b/var/spack/repos/builtin/packages/smartdenovo/package.py
index f18b8583d9..48109ea9e4 100644
--- a/var/spack/repos/builtin/packages/smartdenovo/package.py
+++ b/var/spack/repos/builtin/packages/smartdenovo/package.py
@@ -17,8 +17,8 @@ class Smartdenovo(MakefilePackage):
depends_on('sse2neon', when='target=aarch64:')
- patch('aarch64.patch', when='target=aarch64:',
- sha256='7dd4bca28aafb0680cc1823aa58ac9000819993538e92628554666c4b3acc470')
+ patch('aarch64.patch', sha256='7dd4bca28aafb0680cc1823aa58ac9000819993538e92628554666c4b3acc470', when='target=aarch64:')
+ patch('inline-limit.patch', sha256='9f514ed72c37cf52ee2ffbe06f9ca1ed5a3e0819dab5876ecd83107c5e5bed81')
def install(self, spec, prefix):
install_files = [
diff --git a/var/spack/repos/builtin/packages/snappy/package.py b/var/spack/repos/builtin/packages/snappy/package.py
index d5ade343f3..2e0154aa6f 100644
--- a/var/spack/repos/builtin/packages/snappy/package.py
+++ b/var/spack/repos/builtin/packages/snappy/package.py
@@ -10,8 +10,9 @@ class Snappy(CMakePackage):
"""A fast compressor/decompressor: https://code.google.com/p/snappy"""
homepage = "https://github.com/google/snappy"
- url = "https://github.com/google/snappy/archive/1.1.7.tar.gz"
+ url = "https://github.com/google/snappy/archive/1.1.8.tar.gz"
+ version('1.1.8', sha256='16b677f07832a612b0836178db7f374e414f94657c138e6993cbfc5dcc58651f')
version('1.1.7', sha256='3dfa02e873ff51a11ee02b9ca391807f0c8ea0529a4924afa645fbf97163f9d4')
variant('shared', default=True, description='Build shared libraries')
diff --git a/var/spack/repos/builtin/packages/storm/package.py b/var/spack/repos/builtin/packages/storm/package.py
index a4da7325cd..d9a2ad2ece 100644
--- a/var/spack/repos/builtin/packages/storm/package.py
+++ b/var/spack/repos/builtin/packages/storm/package.py
@@ -13,16 +13,18 @@ class Storm(Package):
Storm provides a set of general primitives for doing realtime computation.
"""
- homepage = "https://www-eu.apache.org/dist/storm"
- url = "https://www-eu.apache.org/dist/storm/apache-storm-2.1.0/apache-storm-2.1.0.tar.gz"
- url_list = homepage
- list_depth = 2
+ homepage = "https://storm.apache.org/"
+ url = "https://archive.apache.org/dist/storm/apache-storm-2.2.0/apache-storm-2.2.0.tar.gz"
+ list_url = "https://archive.apache.org/dist/storm/"
+ list_depth = 1
+ version('2.2.0', sha256='f621163f349a8e85130bc3d2fbb34e3b08f9c039ccac5474f3724e47a3a38675')
version('2.1.0', sha256='e279a495dda42af7d9051543989f74a1435a5bda53e795a1de4a1def32027fc4')
version('2.0.0', sha256='0a4a6f985242a99f899a01bd01dacf9365f381e2acc473caa84073fbe84f6703')
version('1.2.3', sha256='d45322253db06353a521284f31b30bd964dab859f3a279a305bd79112803425a')
- depends_on('java', type='run')
+ depends_on('java@8', type=('build', 'run'))
+ depends_on('zookeeper', type='run')
def install(self, spec, prefix):
install_tree('.', prefix)
diff --git a/var/spack/repos/builtin/packages/stow/package.py b/var/spack/repos/builtin/packages/stow/package.py
index bc3515407d..2ce4c91b3e 100644
--- a/var/spack/repos/builtin/packages/stow/package.py
+++ b/var/spack/repos/builtin/packages/stow/package.py
@@ -17,6 +17,7 @@ class Stow(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/stow/"
gnu_mirror_path = "stow/stow-2.2.2.tar.bz2"
+ version('2.3.1', sha256='26a6cfdfdaca0eea742db5487798c15fcd01889dc86bc5aa62614ec9415a422f')
version('2.2.2', sha256='a0022034960e47a8d23dffb822689f061f7a2d9101c9835cf11bf251597aa6fd')
version('2.2.0', sha256='86bc30fe1d322a5c80ff3bd7580c2758149aad7c3bbfa18b48a9d95c25d66b05')
version('2.1.3', sha256='2dff605c801fee9fb7d0fef6988bbb8a0511fad469129b20cae60e0544ba1443')
diff --git a/var/spack/repos/builtin/packages/subversion/package.py b/var/spack/repos/builtin/packages/subversion/package.py
index 4e3f774037..1f5f65215c 100644
--- a/var/spack/repos/builtin/packages/subversion/package.py
+++ b/var/spack/repos/builtin/packages/subversion/package.py
@@ -10,8 +10,13 @@ class Subversion(AutotoolsPackage):
"""Apache Subversion - an open source version control system."""
homepage = 'https://subversion.apache.org/'
- url = 'https://archive.apache.org/dist/subversion/subversion-1.12.2.tar.gz'
+ urls = [
+ 'https://archive.apache.org/dist/subversion/subversion-1.12.2.tar.gz',
+ 'https://downloads.apache.org/subversion/subversion-1.13.0.tar.gz'
+ ]
+ version('1.14.0', sha256='ef3d1147535e41874c304fb5b9ea32745fbf5d7faecf2ce21d4115b567e937d0')
+ version('1.13.0', sha256='daad440c03b8a86fcca804ea82217bb1902cfcae1b7d28c624143c58dcb96931')
version('1.12.2', sha256='f4927d6603d96c5ddabebbafe9a0f6833c18a891ff0ce1ea6ffd186ce9bc21f3')
version('1.9.7', sha256='c72a209c883e20245f14c4e644803f50ae83ae24652e385ff5e82300a0d06c3c')
version('1.9.6', sha256='a400cbc46d05cb29f2d7806405bb539e9e045b24013b0f12f8f82688513321a7')
diff --git a/var/spack/repos/builtin/packages/tensorflow-serving-client/package.py b/var/spack/repos/builtin/packages/tensorflow-serving-client/package.py
index 6b2b74649f..58976df975 100644
--- a/var/spack/repos/builtin/packages/tensorflow-serving-client/package.py
+++ b/var/spack/repos/builtin/packages/tensorflow-serving-client/package.py
@@ -11,8 +11,9 @@ class TensorflowServingClient(CMakePackage):
proto files"""
homepage = "https://github.com/figroc/tensorflow-serving-client"
- url = "https://github.com/figroc/tensorflow-serving-client/archive/v2.1.0.tar.gz"
+ url = "https://github.com/figroc/tensorflow-serving-client/archive/v2.2.0.tar.gz"
+ version('2.2.0', sha256='010b464b3b09c3c33c5dc2aebbc85447c4d5f775b9cd45d90a9035ca015c1c08')
version('2.1.0', sha256='7a31d8cfa1d861f73953d4728665dd6d74e205d1fa01062a6c2b1aeee4674f73')
version('2.0.0', sha256='55310ad484f257173ad5194df7f7116b2049260c3d29049ef8d789d1d8bd9948')
diff --git a/var/spack/repos/builtin/packages/texlive/package.py b/var/spack/repos/builtin/packages/texlive/package.py
index 42969052c8..aaa18dab71 100644
--- a/var/spack/repos/builtin/packages/texlive/package.py
+++ b/var/spack/repos/builtin/packages/texlive/package.py
@@ -18,7 +18,7 @@ class Texlive(AutotoolsPackage):
around the world."""
homepage = "http://www.tug.org/texlive"
- url = 'http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2019/texlive-20190410-source.tar.xz'
+ url = 'http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2020/texlive-20200406-source.tar.xz'
base_url = 'http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/{year}/texlive-{version}-{dist}.tar.xz'
list_url = 'http://ftp.math.utah.edu/pub/tex/historic/systems/texlive'
list_depth = 1
@@ -29,12 +29,18 @@ class Texlive(AutotoolsPackage):
# connection at install time and the package versions could change over
# time. It is better to use a version built from tarballs, as defined with
# the "releases" below.
- version('live', sha256='44aa41b5783e345b7021387f19ac9637ff1ce5406a59754230c666642dfe7750',
- url='ftp://tug.org/historic/systems/texlive/2019/install-tl-unx.tar.gz')
+ version('live', sha256='7c90a50e55533d57170cbc7c0370a010019946eb18570282948e1af6f809382d',
+ url='ftp://tug.org/historic/systems/texlive/2020/install-tl-unx.tar.gz')
# Add information for new versions below.
releases = [
{
+ 'version': '20200406',
+ 'year': '2020',
+ 'sha256_source': 'e32f3d08cbbbcf21d8d3f96f2143b64a1f5e4cb01b06b761d6249c8785249078',
+ 'sha256_texmf': '0aa97e583ecfd488e1dc60ff049fec073c1e22dfe7de30a3e4e8c851bb875a95',
+ },
+ {
'version': '20190410',
'year': '2019',
'sha256_source': 'd2a29fef04e34dc3d2d2296c18995fc357aa7625e7a6bbf40fb92d83d3d0d7b5',
diff --git a/var/spack/repos/builtin/packages/thepeg/package.py b/var/spack/repos/builtin/packages/thepeg/package.py
new file mode 100644
index 0000000000..bc7580cf9a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/thepeg/package.py
@@ -0,0 +1,103 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Thepeg(AutotoolsPackage):
+ """Toolkit for High Energy Physics Event Generation"""
+
+ homepage = "http://home.thep.lu.se/~leif/ThePEG/"
+ url = "https://thepeg.hepforge.org/downloads/?f=ThePEG-2.2.1.tar.bz2"
+
+ # The commented out versions exist, but may need patches
+ # and/or recipe changes
+ version('2.2.1', sha256='63abc7215e6ad45c11cf9dac013738e194cc38556a8368b850b70ab1b57ea58f')
+ version('2.2.0', sha256='d3e1474811b7d9f61a4a98db1e9d60d8ef8f913a50de4cae4dc2cc4f98e6fbf8')
+ # version('2.1.7', sha256='2e15727afc1fbfb158fa42ded31c4b1e5b51c25ed6bb66a38233e1fc594329c8')
+ version('2.1.6', sha256='c1e51f83716bfca815b55100fbab3805ef5f9b9215e4373b22762693f5353f4f')
+ version('2.1.5', sha256='c61a00fb6cf406f0f98e8c934683d8d5efcb655747842113abc92e9526e4b5e6')
+ # version('2.1.4', sha256='400c37319aa967ed993fdbec84fc65b24f6cb3779fb1b173d7f5d7a56b772df5')
+ version('2.1.3', sha256='16e8f6507530c2b80ed873ad22946efefed7355d15c7026f3465f18acebc1c0c')
+ # version('2.1.2', sha256='6a0f675a27e10863d495de069f25b892e532beb32e9cbfe5a58317d015387f49')
+ version('2.1.1', sha256='e1b0bdc116fbc9a6e598b601f2aa670530cf2e1cd46b4572814a9b0130b10281')
+ # version('2.1.0', sha256='fe6e7740ce3cd4a3ce3d7a0079a16c9214ad18f432e29d034ae763bfc40f3d39')
+ # version('2.0.4', sha256='f3b625b411667e2708995f1d1379b5b8691406853c8c2cca2f4e4e6e062da0e4')
+ # version('2.0.3', sha256='c57ba68fbfda06a0ba256e06f276f91434bf2529a13f6287c051a4cd6da44634')
+ # version('2.0.2', sha256='d4249e019543d5c7520733292d2edfb0bdd9733177200a63837781ed6194789b')
+ # version('2.0.1', sha256='ec284abdc82ceaf10a8736f908e7955f49f872b79aaa62d22aa33bc5c7679bdb')
+ # version('2.0.0', sha256='571730cc956027dc82780dc04ef6e7382ab5ea853fcfebe259e488c6df302a04')
+ version('1.9.2', sha256='ff7bbb256866f994dae04ade1f57c92d2670edaac3df11c9a300419a5343faf4')
+ # version('1.9.1', sha256='8ec6d0669eba51e308be4e33aeb219999418170eae3aad93ec1491c942c2a4e9')
+ version('1.9.0', sha256='3ee58e5e3a26184567df1b9a10ca70df228e86f322e72f018dd7d8d5a4700a5d')
+ version('1.8.3', sha256='55ede3a3dd0bd07b90d0d49cf7ae28c18cd965780fdf53528508b97d57152fc7')
+ # version('1.8.2', sha256='44ccd0d70e42bb6ecd801a51bade6c25b3953c56f33017402d4f52ee6492dffa')
+ # version('1.8.1', sha256='84c2a212a681545cddd541dca191eb65d96f41df86c87480b6f4f7d4f9683562')
+ # version('1.8.0', sha256='4b22fda1078f410b999a23a17f611c9ae3a7f0f4cee4e83dc82c9336b7adf037')
+ # version('1.7.3', sha256='066d5df74118d6e984bb60e1c0bea08a8edcbcf917d83d8bc32ec6fea0726187')
+ # version('1.7.2', sha256='3b885c6c5a39b7399ccd45d1f5a866b7a65c96174a56a7ff4ae423347843d013')
+ # version('1.7.1', sha256='13434dc7a8623cacb94c0b5c8d7e15b4c5d5187fe9322d1afc1c91b2c940102e')
+ # version('1.7.0', sha256='40eb7196139a8bf4c35f5bb69818135943d534457df64aeb1cf60b6621435312')
+ # version('1.6.1', sha256='5bc074b78f8b663a6a33df9c94dcaa3100269f8da59f9553a565298e55af270f')
+ # version('1.6.0', sha256='c0ac06b70f3e8046fce4e49ba5916c9b49450f528d0e25f8f7f1427c62fec680')
+ # version('1.5.0', sha256='ccbf102cf1d350a21487518d12e7e03e6e50010e5604f0201f256fa46a7a50c2')
+ # version('1.4.2', sha256='40444304e40e07fd417a8ebf8e5c1cf07e895ceac52ef4f7c1eecc911f6f775c')
+ # version('1.4.1', sha256='156d06fd1ce68466d1f2adb9cc13f412b8b87073ec6a1d02102b173c34c29b8a')
+ # version('1.4.0', sha256='b1f55e9a3bec713e9abf2fe71c5bd8cf8df936ea00b09f96df9123d0d5ab233f')
+ # version('1.3.0', sha256='f731ebf3ce5a52b6d750d6e3c282fdc74d8ffd78bccb47b68f10a4daf44c7045')
+
+ patch('thepeg-1.8.3.patch', when='@1.8.3', level=0)
+ patch('thepeg-1.9.0.patch', when='@1.9.0', level=0)
+ patch('thepeg-1.9.2.patch', when='@1.9.2', level=0)
+ patch('thepeg-2.1.1.patch', when='@2.1.1:2.2.1', level=0)
+
+ depends_on('gsl')
+ depends_on('lhapdf')
+ depends_on('lhapdf@:6.2.999', when='@:1.9.999')
+ depends_on('hepmc', when='hepmc=2')
+ depends_on('hepmc3', when='hepmc=3')
+ conflicts('hepmc=3', when='@:2.1.999', msg='HepMC3 support was added in 2.2.0')
+ depends_on('fastjet', when='@2.0.0:')
+ depends_on('rivet', when='@2.0.3:')
+ depends_on('boost', when='@2.1.1:')
+
+ depends_on('autoconf', type='build')
+ depends_on('automake', type='build')
+ depends_on('libtool', type='build')
+ depends_on('m4', type='build')
+
+ variant('hepmc', default='2', values=('2', '3'), description='HepMC interface to build ')
+
+ install_targets = ['install-strip']
+
+ def configure_args(self):
+ args = ['--with-gsl=' + self.spec['gsl'].prefix, '--without-javagui']
+
+ if self.spec.satisfies('@:1.8.999'):
+ args += ['--with-LHAPDF=' + self.spec['lhapdf'].prefix]
+ else:
+ args += ['--with-lhapdf=' + self.spec['lhapdf'].prefix]
+
+ if self.spec.satisfies('hepmc=2'):
+ args += ['--with-hepmc=' + self.spec['hepmc'].prefix]
+ else:
+ args += ['--with-hepmc=' + self.spec['hepmc3'].prefix]
+
+ if self.spec.satisfies('@2.2.0:'):
+ args += ['--with-hepmcversion=' +
+ self.spec.variants['hepmc'].value]
+
+ if self.spec.satisfies('@2.0.0:'):
+ args += ['--with-fastjet=' + self.spec['fastjet'].prefix]
+
+ if self.spec.satisfies('@2.0.3:'):
+ args += ['--with-rivet=' + self.spec['rivet'].prefix]
+
+ if self.spec.satisfies('@:2.1.999'):
+ args += ['--with-boost=' + self.spec['boost'].prefix]
+
+ args += ['CFLAGS=-O2', 'CXXFLAGS=-O2', 'FFLAGS=-O2']
+
+ return args
diff --git a/var/spack/repos/builtin/packages/thepeg/thepeg-1.8.3.patch b/var/spack/repos/builtin/packages/thepeg/thepeg-1.8.3.patch
new file mode 100644
index 0000000000..c396634779
--- /dev/null
+++ b/var/spack/repos/builtin/packages/thepeg/thepeg-1.8.3.patch
@@ -0,0 +1,24 @@
+--- PDF/LHAPDF.cc 2013-10-26 01:48:12.000000000 +0200
++++ PDF/LHAPDF.cc 2013-12-05 17:23:13.000000000 +0100
+@@ -33,6 +33,7 @@
+ #include "config.h"
+ #include "ThePEG/Persistency/PersistentOStream.h"
+ #include "ThePEG/Persistency/PersistentIStream.h"
++#include "stdlib.h"
+
+ #ifdef ThePEG_HAS_FPU_CONTROL
+ #include <fpu_control.h>
+@@ -228,7 +229,12 @@
+
+ std::string LHAPDF::getIndexPath() {
+ // macro is passed in from -D compile flag
+- return std::string(LHAPDF_PKGDATADIR) + "/PDFsets.index";
++ char const* tmp = getenv( "LHAPATH" );
++ if ( tmp != NULL ) {
++ return std::string(getenv("LHAPATH")) + "/../PDFsets.index";
++ } else {
++ return std::string(LHAPDF_PKGDATADIR) + "/PDFsets.index";
++ };
+ }
+
+ bool LHAPDF::openLHAIndex(ifstream & is) {
diff --git a/var/spack/repos/builtin/packages/thepeg/thepeg-1.9.0.patch b/var/spack/repos/builtin/packages/thepeg/thepeg-1.9.0.patch
new file mode 100644
index 0000000000..76bc91211b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/thepeg/thepeg-1.9.0.patch
@@ -0,0 +1,34 @@
+--- PDF/LHAPDF.cc 2013-10-26 01:48:12.000000000 +0200
++++ PDF/LHAPDF.cc 2013-12-05 17:23:13.000000000 +0100
+@@ -33,6 +33,7 @@
+ #include "config.h"
+ #include "ThePEG/Persistency/PersistentOStream.h"
+ #include "ThePEG/Persistency/PersistentIStream.h"
++#include "stdlib.h"
+
+ #ifdef ThePEG_HAS_FPU_CONTROL
+ #include <fpu_control.h>
+@@ -228,7 +229,12 @@
+
+ std::string LHAPDF::getIndexPath() {
+ // macro is passed in from -D compile flag
+- return std::string(LHAPDF_PKGDATADIR) + "/PDFsets.index";
++ char const* tmp = getenv( "LHAPATH" );
++ if ( tmp != NULL ) {
++ return std::string(getenv("LHAPATH")) + "/../PDFsets.index";
++ } else {
++ return std::string(LHAPDF_PKGDATADIR) + "/PDFsets.index";
++ };
+ }
+
+ bool LHAPDF::openLHAIndex(ifstream & is) {
+--- ACDC/ACDCGen.h.orig 2014-04-02 16:20:59.000000000 +0200
++++ ACDC/ACDCGen.h 2014-04-02 16:22:40.000000000 +0200
+@@ -13,6 +13,7 @@
+ #include "ACDCTraits.h"
+ #include "ACDCGenCell.h"
+ #include "ThePEG/Utilities/Exception.h"
++#include <algorithm>
+
+ namespace ACDCGenerator {
+
diff --git a/var/spack/repos/builtin/packages/thepeg/thepeg-1.9.2.patch b/var/spack/repos/builtin/packages/thepeg/thepeg-1.9.2.patch
new file mode 100644
index 0000000000..556b683560
--- /dev/null
+++ b/var/spack/repos/builtin/packages/thepeg/thepeg-1.9.2.patch
@@ -0,0 +1,83 @@
+diff -r 2d8e0f74b65e PDF/LHAPDF6.cc
+--- PDF/LHAPDF6.cc.orig Mon Jul 07 09:16:48 2014 +0100
++++ PDF/LHAPDF6.cc Fri Sep 26 14:41:55 2014 +0100
+@@ -54,8 +54,8 @@
+ return new_ptr(*this);
+ }
+
+-void ThePEG::LHAPDF::doinit() {
+- PDFBase::doinit();
++void ThePEG::LHAPDF::initPDFptr() {
++ if ( thePDF ) return;
+ thePDF = ::LHAPDF::mkPDF(thePDFName, theMember);
+ xMin = thePDF->xMin();
+ xMax = thePDF->xMax();
+@@ -63,6 +63,11 @@
+ Q2Max = thePDF->q2Max() * GeV2;
+ }
+
++void ThePEG::LHAPDF::doinit() {
++ PDFBase::doinit();
++ initPDFptr();
++}
++
+ void ThePEG::LHAPDF::dofinish() {
+ PDFBase::dofinish();
+ delete thePDF;
+@@ -71,11 +76,7 @@
+
+ void ThePEG::LHAPDF::doinitrun() {
+ PDFBase::doinitrun();
+- thePDF = ::LHAPDF::mkPDF(thePDFName, theMember);
+- xMin = thePDF->xMin();
+- xMax = thePDF->xMax();
+- Q2Min = thePDF->q2Min() * GeV2;
+- Q2Max = thePDF->q2Max() * GeV2;
++ initPDFptr();
+ }
+
+ void ThePEG::LHAPDF::setPDFName(string name) {
+@@ -387,6 +388,7 @@
+ lastQ2 = -1.0*GeV2;
+ lastX = -1.0;
+ lastP2 = -1.0*GeV2;
++ initPDFptr();
+ }
+
+ ThePEG::ClassDescription<ThePEG::LHAPDF> ThePEG::LHAPDF::initLHAPDF;
+diff -r 2d8e0f74b65e PDF/LHAPDF6.h
+--- PDF/LHAPDF6.h.orig Mon Jul 07 09:16:48 2014 +0100
++++ PDF/LHAPDF6.h Fri Sep 26 14:41:55 2014 +0100
+@@ -147,6 +147,12 @@
+ void checkUpdate(double x, Energy2 Q2, Energy2 P2) const;
+
+ /**
++ * Initialize the LHAPDF library for the chosen PDF set if it has
++ * not been done before.
++ */
++ void initPDFptr();
++
++ /**
+ * Used by the interface to select a set according to a file name.
+ */
+ void setPDFName(string name);
+--- Persistency/PersistentOStream.h.orig 2018-11-07 14:46:59.055432275 +0100
++++ Persistency/PersistentOStream.h 2018-11-07 14:47:20.639293703 +0100
+@@ -219,7 +219,7 @@
+ * Write a double.
+ */
+ PersistentOStream & operator<<(double d) {
+- if ( isnan(d) || isinf(d) )
++ if ( std::isnan(d) || std::isinf(d) )
+ throw WriteError()
+ << "Tried to write a NaN or Inf double to a persistent stream."
+ << Exception::runerror;
+@@ -232,7 +232,7 @@
+ * Write a float.
+ */
+ PersistentOStream & operator<<(float f) {
+- if ( isnan(f) || isinf(f) )
++ if ( std::isnan(f) || std::isinf(f) )
+ throw WriteError()
+ << "Tried to write a NaN or Inf float to a persistent stream."
+ << Exception::runerror;
diff --git a/var/spack/repos/builtin/packages/thepeg/thepeg-2.1.1.patch b/var/spack/repos/builtin/packages/thepeg/thepeg-2.1.1.patch
new file mode 100644
index 0000000000..90c61fc991
--- /dev/null
+++ b/var/spack/repos/builtin/packages/thepeg/thepeg-2.1.1.patch
@@ -0,0 +1,14 @@
+--- m4/rivet.m4.orig 2013-10-16 10:50:05.000000000 +0200
++++ m4/rivet.m4 2017-08-02 12:26:22.897894696 +0200
+@@ -33,10 +33,7 @@
+ else
+ AC_MSG_RESULT([$with_rivet])
+ RIVETINCLUDE="$( $with_rivet/bin/rivet-config --cppflags )"
+- RIVETLIBS="-L$with_rivet/lib -R$with_rivet/lib -lRivet"
+- if test "${host_cpu}" == "x86_64" -a -e $with_rivet/lib64/libRivet.so ; then
+- RIVETLIBS="-L$with_rivet/lib64 -R$with_rivet/lib64 -lRivet"
+- fi
++ RIVETLIBS="$( $with_rivet/bin/rivet-config --libs ) -lYODA"
+ fi
+
+ if test "x$with_rivet" != "xno"; then
diff --git a/var/spack/repos/builtin/packages/tmux/package.py b/var/spack/repos/builtin/packages/tmux/package.py
index e6677668fd..8a50e2ebe9 100644
--- a/var/spack/repos/builtin/packages/tmux/package.py
+++ b/var/spack/repos/builtin/packages/tmux/package.py
@@ -17,6 +17,7 @@ class Tmux(AutotoolsPackage):
homepage = "http://tmux.github.io"
url = "https://github.com/tmux/tmux/releases/download/2.6/tmux-2.6.tar.gz"
+ version('3.1b', sha256='d93f351d50af05a75fe6681085670c786d9504a5da2608e481c47cf5e1486db9')
version('3.0a', sha256='4ad1df28b4afa969e59c08061b45082fdc49ff512f30fc8e43217d7b0e5f8db9')
version('2.9', sha256='34901232f486fd99f3a39e864575e658b5d49f43289ccc6ee57c365f2e2c2980')
version('2.8', sha256='7f6bf335634fafecff878d78de389562ea7f73a7367f268b66d37ea13617a2ba')
diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py
index 7896d809f2..d5d595142f 100644
--- a/var/spack/repos/builtin/packages/trilinos/package.py
+++ b/var/spack/repos/builtin/packages/trilinos/package.py
@@ -28,7 +28,7 @@ class Trilinos(CMakePackage):
url = "https://github.com/trilinos/Trilinos/archive/trilinos-release-12-12-1.tar.gz"
git = "https://github.com/trilinos/Trilinos.git"
- maintainers = ['aprokop', 'keitat']
+ maintainers = ['keitat']
# ###################### Versions ##########################
diff --git a/var/spack/repos/builtin/packages/typhon/package.py b/var/spack/repos/builtin/packages/typhon/package.py
index 350bd6ded2..621b2479e4 100644
--- a/var/spack/repos/builtin/packages/typhon/package.py
+++ b/var/spack/repos/builtin/packages/typhon/package.py
@@ -23,3 +23,7 @@ class Typhon(CMakePackage):
version('3.0', sha256='b9736269ebe9c0fd7efabc4716b0543144780ed26ddaf595083354113aa2efd7')
depends_on('mpi')
+
+ def setup_build_environment(self, env):
+ if self.spec.satisfies('%fj'):
+ env.set('LDFLAGS', '--linkfortran')
diff --git a/var/spack/repos/builtin/packages/umpire/package.py b/var/spack/repos/builtin/packages/umpire/package.py
index 928d8aa80c..cc9ccbebd5 100644
--- a/var/spack/repos/builtin/packages/umpire/package.py
+++ b/var/spack/repos/builtin/packages/umpire/package.py
@@ -38,6 +38,7 @@ class Umpire(CMakePackage, CudaPackage):
variant('fortran', default=False, description='Build C/Fortran API')
variant('c', default=True, description='Build C API')
variant('numa', default=False, description='Enable NUMA support')
+ variant('shared', default=True, description='Enable Shared libs')
variant('openmp', default=False, description='Build with OpenMP support')
variant('deviceconst', default=False,
description='Enables support for constant device memory')
@@ -80,6 +81,9 @@ class Umpire(CMakePackage, CudaPackage):
options.append('-DENABLE_OPENMP={0}'.format(
'On' if '+openmp' in spec else 'Off'))
+ options.append('-DBUILD_SHARED_LIBS={0}'.format(
+ 'On' if '+shared' in spec else 'Off'))
+
options.append('-DENABLE_TESTS={0}'.format(
'On' if self.run_tests else 'Off'))
diff --git a/var/spack/repos/builtin/packages/vasp/package.py b/var/spack/repos/builtin/packages/vasp/package.py
new file mode 100644
index 0000000000..22b17ee88b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/vasp/package.py
@@ -0,0 +1,138 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+import os
+
+
+class Vasp(MakefilePackage):
+ """
+ The Vienna Ab initio Simulation Package (VASP)
+ is a computer program for atomic scale materials modelling,
+ e.g. electronic structure calculations
+ and quantum-mechanical molecular dynamics, from first principles.
+ """
+
+ homepage = "http://vasp.at"
+ url = "file://{0}/vasp.5.4.4.tar.gz".format(os.getcwd())
+
+ version('5.4.4', sha256='5bd2449462386f01e575f9adf629c08cb03a13142806ffb6a71309ca4431cfb3')
+
+ resource(name='vaspsol',
+ git='https://github.com/henniggroup/VASPsol.git',
+ tag='V1.0',
+ when='+vaspsol')
+
+ variant('scalapack', default=False,
+ description='Enables build with SCALAPACK')
+
+ variant('cuda', default=False,
+ description='Enables running on Nvidia GPUs')
+
+ variant('vaspsol', default=False,
+ description='Enable VASPsol implicit solvation model\n'
+ 'https://github.com/henniggroup/VASPsol')
+
+ depends_on('rsync', type='build')
+ depends_on('blas')
+ depends_on('lapack')
+ depends_on('fftw')
+ depends_on('mpi', type=('build', 'link', 'run'))
+ depends_on('netlib-scalapack', when='+scalapack')
+ depends_on('cuda', when='+cuda')
+
+ conflicts('%gcc@:8', msg='GFortran before 9.x does not support all features needed to build VASP')
+ conflicts('+vaspsol', when='+cuda', msg='+vaspsol only available for CPU')
+
+ parallel = False
+
+ def edit(self, spec, prefix):
+
+ if '%gcc' in spec:
+ make_include = join_path('arch', 'makefile.include.linux_gnu')
+ else:
+ make_include = join_path('arch',
+ 'makefile.include.linux_' +
+ spec.compiler.name)
+
+ os.rename(make_include, 'makefile.include')
+
+ # This bunch of 'filter_file()' is to make these options settable
+ # as environment variables
+ filter_file('^CPP_OPTIONS[ ]{0,}=[ ]{0,}',
+ 'CPP_OPTIONS ?= ',
+ 'makefile.include')
+
+ filter_file('^LIBDIR[ ]{0,}=.*$', '', 'makefile.include')
+ filter_file('^BLAS[ ]{0,}=.*$', 'BLAS ?=', 'makefile.include')
+ filter_file('^LAPACK[ ]{0,}=.*$', 'LAPACK ?=', 'makefile.include')
+ filter_file('^FFTW[ ]{0,}?=.*$', 'FFTW ?=', 'makefile.include')
+ filter_file('^MPI_INC[ ]{0,}=.*$', 'MPI_INC ?=', 'makefile.include')
+ filter_file('-DscaLAPACK.*$\n', '', 'makefile.include')
+ filter_file('^SCALAPACK*$', '', 'makefile.include')
+
+ if '+cuda' in spec:
+ filter_file('^OBJECTS_GPU[ ]{0,}=.*$',
+ 'OBJECTS_GPU ?=',
+ 'makefile.include')
+
+ filter_file('^CPP_GPU[ ]{0,}=.*$',
+ 'CPP_GPU ?=',
+ 'makefile.include')
+
+ filter_file('^CFLAGS[ ]{0,}=.*$',
+ 'CFLAGS ?=',
+ 'makefile.include')
+
+ if '+vaspsol' in spec:
+ copy('VASPsol/src/solvation.F', 'src/')
+
+ def setup_build_environment(self, spack_env):
+ spec = self.spec
+
+ cpp_options = ['-DHOST=\\"LinuxGNU\\"', '-DMPI -DMPI_BLOCK=8000',
+ '-Duse_collective', '-DCACHE_SIZE=4000',
+ '-Davoidalloc', '-Duse_bse_te',
+ '-Dtbdyn', '-Duse_shmem']
+
+ cflags = ['-fPIC', '-DADD_']
+
+ spack_env.set('BLAS', spec['blas'].libs.ld_flags)
+ spack_env.set('LAPACK', spec['lapack'].libs.ld_flags)
+ spack_env.set('FFTW', spec['fftw'].prefix)
+ spack_env.set('MPI_INC', spec['mpi'].prefix.include)
+
+ if '+scalapack' in spec:
+ cpp_options.append('-DscaLAPACK')
+ spack_env.set('SCALAPACK', spec['netlib-scalapack'].libs.ld_flags)
+
+ if '+cuda' in spec:
+ cpp_gpu = ['-DCUDA_GPU', '-DRPROMU_CPROJ_OVERLAP',
+ '-DCUFFT_MIN=28', '-DUSE_PINNED_MEMORY']
+
+ objects_gpu = ['fftmpiw.o', 'fftmpi_map.o', 'fft3dlib.o',
+ 'fftw3d_gpu.o', 'fftmpiw_gpu.o']
+
+ cflags.extend(['-DGPUSHMEM=300', '-DHAVE_CUBLAS'])
+
+ spack_env.set('CUDA_ROOT', spec['cuda'].prefix)
+ spack_env.set('CPP_GPU', ' '.join(cpp_gpu))
+ spack_env.set('OBJECTS_GPU', ' '.join(objects_gpu))
+
+ if '+vaspsol' in spec:
+ cpp_options.append('-Dsol_compat')
+
+ # Finally
+ spack_env.set('CPP_OPTIONS', ' '.join(cpp_options))
+ spack_env.set('CFLAGS', ' '.join(cflags))
+
+ def build(self, spec, prefix):
+ if '+cuda' in self.spec:
+ make('gpu', 'gpu_ncl')
+ else:
+ make()
+
+ def install(self, spec, prefix):
+ install_tree('bin/', prefix.bin)
diff --git a/var/spack/repos/builtin/packages/vbfnlo/package.py b/var/spack/repos/builtin/packages/vbfnlo/package.py
new file mode 100644
index 0000000000..99a9b53f3b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/vbfnlo/package.py
@@ -0,0 +1,43 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Vbfnlo(AutotoolsPackage):
+ """VBFNLO is a fully flexible parton level Monte Carlo program
+ for the simulation of vector boson fusion, double and triple
+ vector boson production in hadronic collisions at
+ next to leading order in the strong coupling constant. """
+
+ homepage = "https://www.itp.kit.edu/vbfnlo/wiki/doku.php?id=overview"
+ url = "https://github.com/vbfnlo/vbfnlo/archive/v3.0.0beta5.tar.gz"
+
+ # The commented out versions exist, but are not tested
+ version('3.0.0beta5', sha256='777a3dedb365ea9abc38848a60f30d325da3799cbad69fa308664b94a8c31a90')
+ version('3.0.0beta4', sha256='511e84765e9634a75766a160eae1925812dacbb3943e7e3b4dc90e2eacac8a2c')
+ # version('3.0.0beta3', sha256='ab4cc3289051ab09ed94fa41d0eb1c5c4adcd9f39fa04e3c95a3867f256541bc')
+ version('3.0.0beta2', sha256='33dd0781e645a5baa664fc5aa81d43c12586bf095ef25895e86cb4192c22473b')
+ version('3.0.0beta1', sha256='19f0bf7e4c93b0f287d2531d6802c114a78eb46cde28ea820b2a074a5819c7ca')
+ version('2.7.1', sha256='13e33d73d8a8ef64094621f87e6f94e01712e76cc19a86298d0b52cfcb9decca', preferred=True)
+ # version('2.7.0', sha256='0e96c0912599e3000fffec5305700b947b604a7b06c7975851503f445311e4ef')
+
+ depends_on('hepmc')
+ depends_on('gsl')
+ depends_on('lhapdf')
+ depends_on('looptools')
+
+ @when('@2.7.1')
+ def setup_build_environment(self, env):
+ env.unset('F77')
+
+ def configure_args(self):
+ args = ["--with-hepmc=" + self.spec['hepmc'].prefix,
+ "--with-gsl=" + self.spec['gsl'].prefix,
+ "--with-LHAPDF=" + self.spec['lhapdf'].prefix,
+ "--with-LOOPTOOLS=" + self.spec['looptools'].prefix,
+ "FCFLAGS=-std=legacy"]
+
+ return args
diff --git a/var/spack/repos/builtin/packages/vim/package.py b/var/spack/repos/builtin/packages/vim/package.py
index 5539adfc02..d1533cfe52 100644
--- a/var/spack/repos/builtin/packages/vim/package.py
+++ b/var/spack/repos/builtin/packages/vim/package.py
@@ -18,6 +18,7 @@ class Vim(AutotoolsPackage):
homepage = "http://www.vim.org"
url = "https://github.com/vim/vim/archive/v8.1.0338.tar.gz"
+ version('8.2.1201', sha256='39032fe866f44724b104468038dc9ac4ff2c00a4b18c9a1e2c27064ab1f1143d')
version('8.1.2141', sha256='7be3c3d88a6c871121230ffb9b7371b1d2ab462118dedb967c7265473af1144b')
version('8.1.0338', sha256='3febcc4e49eaca458be1a1e8055a3a52887aa2054b03e24d5f38d192c3de51a0')
version('8.1.0001', sha256='c342acaa26589f371fa34a5ca213b95811f26185c12443f8f48ad2868dee2935')
diff --git a/var/spack/repos/builtin/packages/visit/package.py b/var/spack/repos/builtin/packages/visit/package.py
index cd72bcda2c..d2f3987895 100644
--- a/var/spack/repos/builtin/packages/visit/package.py
+++ b/var/spack/repos/builtin/packages/visit/package.py
@@ -25,6 +25,11 @@ class Visit(CMakePackage):
# linux:
# spack install visit ^python+shared ^glib@2.56.3 ^py-setuptools@44.1.0
#
+ # linux w/o opengl: (add mesa as opengl if system lacks system opengl )
+ #
+ # spack install visit ^python+shared ^glib@2.56.3 ^py-setuptools@44.1.0 \
+ # ^mesa+opengl
+ #
# macOS:
# spack install visit ^python+shared ^glib@2.56.3 ^py-setuptools@44.1.0 \
# ^qt~framework
@@ -159,6 +164,7 @@ class Visit(CMakePackage):
# https://github.com/visit-dav/visit/issues/3498
depends_on('vtk@8.1.0:8.1.999+opengl2~python', when='~python @3.0:3.999,develop')
depends_on('vtk@8.1.0:8.1.999+opengl2+python', when='+python @3.0:3.999,develop')
+ depends_on('glu', when='platform=linux')
depends_on('vtk@6.1.0~opengl2', when='@:2.999')
depends_on('vtk+python', when='+python @3.0:,develop')
depends_on('vtk~mpi', when='~mpi')
diff --git a/var/spack/repos/builtin/packages/votca-tools/package.py b/var/spack/repos/builtin/packages/votca-tools/package.py
index f676fb633b..8bedb0477a 100644
--- a/var/spack/repos/builtin/packages/votca-tools/package.py
+++ b/var/spack/repos/builtin/packages/votca-tools/package.py
@@ -30,7 +30,7 @@ class VotcaTools(CMakePackage):
version('1.4', sha256='41638122e7e59852af61d391b4ab8c308fd2e16652f768077e13a99d206ec5d3')
# https://github.com/votca/tools/pull/229, fix mkl in exported target
- patch("https://github.com/votca/tools/pull/229.patch", sha256="250d0b679e5d3104e3c8d6adf99751b71386c7ed4cbdae1c75408717ef3f401f", when="@1.6+mkl")
+ patch("https://github.com/votca/tools/pull/229.patch", sha256="250d0b679e5d3104e3c8d6adf99751b71386c7ed4cbdae1c75408717ef3f401f", when="@1.6:1.6.0+mkl")
variant('mkl', default=False, description='Build with MKL support')
conflicts('+mkl', when='@1.4:1.5.9999')
diff --git a/var/spack/repos/builtin/packages/vtk-h/package.py b/var/spack/repos/builtin/packages/vtk-h/package.py
index 2a934a442a..9ed842b508 100644
--- a/var/spack/repos/builtin/packages/vtk-h/package.py
+++ b/var/spack/repos/builtin/packages/vtk-h/package.py
@@ -34,13 +34,20 @@ class VtkH(Package, CudaPackage):
and DIY2 to provide a toolkit with hybrid parallel capabilities."""
homepage = "https://github.com/Alpine-DAV/vtk-h"
- url = "https://github.com/Alpine-DAV/vtk-h/releases/download/v0.5.0/vtkh-v0.5.0.tar.gz"
+ url = "https://github.com/Alpine-DAV/vtk-h/releases/download/v0.5.8/vtkh-v0.5.8.tar.gz"
git = "https://github.com/Alpine-DAV/vtk-h.git"
maintainers = ['cyrush']
version('develop', branch='develop', submodules=True)
- version('0.5.0', sha256="9014a8a61a8d7ff636866c6e3b1ebb918ff23fa67cf8d4de801c4a2981de8c96")
+ version('0.6.1', sha256="ca30b5ff1a48fa247cd20b3f19452f7744eb744465e0b64205135aece42d274f")
+ version('0.6.0', sha256="2fc054f88ae253fb1bfcae22a156bcced08eca963ba90384dcd5b5791e6dfbf4")
+ version('0.5.8', sha256="203b337f4280a24a2b75722384f77e0e2f5965058b541efc153db76b7ab98133")
+ version('0.5.7', sha256="e8c1925dc34ee6be17cec734121e43002e3c02b54ef8dac341b51a455b95e402")
+ version('0.5.6', sha256="c78c0fa71a9687c2951a06d2112b52aa81fdcdcfbc9464d1578326d03fbb205e")
+ version('0.5.4', sha256="92bf3741df7a15e36ff41a9a783f3b88eecc86e55cad1defba76f141baa2610b")
+ version('0.5.3', sha256="0c4aae3bd2a5906738a6806de2b62ea2049ac8b40ebe7fc2ba25505272c2d359")
+ version('0.5.2', sha256="db2e6250c0ece6381fc90540317ad7b5869dbcce0231ce9be125916a77bfdb25")
variant("shared", default=True, description="Build vtk-h as shared libs")
variant("mpi", default=True, description="build mpi support")
@@ -48,6 +55,8 @@ class VtkH(Package, CudaPackage):
variant("cuda", default=False, description="build cuda support")
variant("openmp", default=(sys.platform != 'darwin'),
description="build openmp support")
+ variant("logging", default=False, description="Build vtk-h with logging enabled")
+ variant("contourtree", default=False, description="Enable contour tree support")
# use cmake 3.14, newest that provides proper cuda support
# and we have seen errors with cuda in 3.15
@@ -56,17 +65,17 @@ class VtkH(Package, CudaPackage):
depends_on("mpi", when="+mpi")
depends_on("cuda", when="+cuda")
- depends_on("vtk-m@1.5.0~tbb+openmp", when="+openmp")
- depends_on("vtk-m@1.5.0~tbb~openmp", when="~openmp")
+ depends_on("vtk-m@ascent_ver~tbb+openmp", when="+openmp")
+ depends_on("vtk-m@ascent_ver~tbb~openmp", when="~openmp")
- depends_on("vtk-m@1.5.0+cuda~tbb+openmp", when="+cuda+openmp")
- depends_on("vtk-m@1.5.0+cuda~tbb~openmp", when="+cuda~openmp")
+ depends_on("vtk-m@ascent_ver+cuda~tbb+openmp", when="+cuda+openmp")
+ depends_on("vtk-m@ascent_ver+cuda~tbb~openmp", when="+cuda~openmp")
- depends_on("vtk-m@1.5.0~tbb+openmp~shared", when="+openmp~shared")
- depends_on("vtk-m@1.5.0~tbb~openmp~shared", when="~openmp~shared")
+ depends_on("vtk-m@ascent_ver~tbb+openmp~shared", when="+openmp~shared")
+ depends_on("vtk-m@ascent_ver~tbb~openmp~shared", when="~openmp~shared")
- depends_on("vtk-m@1.5.0+cuda~tbb+openmp~shared", when="+cuda+openmp~shared")
- depends_on("vtk-m@1.5.0+cuda~tbb~openmp~shared", when="+cuda~openmp~shared")
+ depends_on("vtk-m@ascent_ver+cuda~tbb+openmp~shared", when="+cuda+openmp~shared")
+ depends_on("vtk-m@ascent_ver+cuda~tbb~openmp~shared", when="+cuda~openmp~shared")
def install(self, spec, prefix):
with working_dir('spack-build', create=True):
@@ -99,6 +108,13 @@ class VtkH(Package, CudaPackage):
if "+openmp" in spec:
cmake_args.append("-DENABLE_OPENMP=ON")
+ # build with logging
+ if "+logging" in spec:
+ cmake_args.append("-DENABLE_LOGGING=ON")
+
+ if "+contourtree" in spec:
+ cmake_args.append("-DENABLE_FILTER_CONTOUR_TREE=ON")
+
# cuda support
if "+cuda" in spec:
cmake_args.append("-DVTKm_ENABLE_CUDA:BOOL=ON")
@@ -216,6 +232,14 @@ class VtkH(Package, CudaPackage):
cfg.write(cmake_cache_entry("ENABLE_SERIAL", "OFF"))
#######################
+ # Logging
+ #######################
+ if "+logging" in spec:
+ cfg.write(cmake_cache_entry("ENABLE_LOGGING", "ON"))
+ else:
+ cfg.write(cmake_cache_entry("ENABLE_LOGGING", "OFF"))
+
+ #######################
# MPI
#######################
diff --git a/var/spack/repos/builtin/packages/vtk-h/vtkm_lagrange_cuda_fix.patch b/var/spack/repos/builtin/packages/vtk-h/vtkm_lagrange_cuda_fix.patch
deleted file mode 100644
index 2f90477e76..0000000000
--- a/var/spack/repos/builtin/packages/vtk-h/vtkm_lagrange_cuda_fix.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/src/vtkh/filters/CMakeLists.txt b/src/vtkh/filters/CMakeLists.txt
-index 4a42d61..f586155 100644
---- a/src/vtkh/filters/CMakeLists.txt
-+++ b/src/vtkh/filters/CMakeLists.txt
-@@ -41,6 +41,11 @@ set(vtkh_filters_deps vtkh_core vtkh_utils )
- if(CUDA_FOUND)
- # triggers cuda compile
- list(APPEND vtkh_filters_deps cuda)
-+
-+ if(CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 10.0.0)
-+ set(particle_cuda_src "${CMAKE_CURRENT_SOURCE_DIR}/Lagrangian.cpp")
-+ set_source_files_properties(${particle_cuda_src} PROPERTIES COMPILE_FLAGS "-Xptxas --opt-level=0")
-+ endif()
- endif()
-
-
diff --git a/var/spack/repos/builtin/packages/vtk-m/disable_flying_edges.patch b/var/spack/repos/builtin/packages/vtk-m/disable_flying_edges.patch
new file mode 100644
index 0000000000..9b875ce5e0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/vtk-m/disable_flying_edges.patch
@@ -0,0 +1,14 @@
+diff --git a/vtkm/worklet/Contour.h b/vtkm/worklet/Contour.h
+index c28c5ec09..70737777f 100644
+--- a/vtkm/worklet/Contour.h
++++ b/vtkm/worklet/Contour.h
+@@ -46,7 +46,8 @@ struct DeduceCoordType
+ vtkm::cont::CellSetSingleType<>& result,
+ Args&&... args) const
+ {
+- result = flying_edges::execute(cells, coords, std::forward<Args>(args)...);
++ result = marching_cells::execute(cells, coords, std::forward<Args>(args)...);
++ //result = flying_edges::execute(cells, coords, std::forward<Args>(args)...);
+ }
+ };
+
diff --git a/var/spack/repos/builtin/packages/vtk-m/package.py b/var/spack/repos/builtin/packages/vtk-m/package.py
index 5fd77da94d..c3f5a70328 100644
--- a/var/spack/repos/builtin/packages/vtk-m/package.py
+++ b/var/spack/repos/builtin/packages/vtk-m/package.py
@@ -30,7 +30,11 @@ class VtkM(CMakePackage, CudaPackage):
version('1.3.0', sha256="f88c1b0a1980f695240eeed9bcccfa420cc089e631dc2917c9728a2eb906df2e")
version('1.2.0', sha256="607272992e05f8398d196f0acdcb4af025a4a96cd4f66614c6341f31d4561763")
version('1.1.0', sha256="78618c81ca741b1fbba0853cb5d7af12c51973b514c268fc96dfb36b853cdb18")
-
+ # version used by ascent
+ version('ascent_ver', commit="a3b8525ef97d94996ae843db0dd4f675c38e8b1e")
+ # patches, required for ascent
+ patch('vtkmdiy_fpic.patch', when='@ascent_ver')
+ patch('disable_flying_edges.patch', when='@ascent_ver')
# use release, instead of release with debug symbols b/c vtkm libs
# can overwhelm compilers with too many symbols
variant('build_type', default='Release', description='CMake build type',
@@ -102,7 +106,7 @@ class VtkM(CMakePackage, CudaPackage):
# logging support
if "+logging" in spec:
- if spec.satisfies('@:1.2.0'):
+ if not spec.satisfies('@1.3.0:,ascent_ver'):
raise InstallError('logging is not supported for\
vtkm version lower than 1.3')
options.append("-DVTKm_ENABLE_LOGGING:BOOL=ON")
@@ -111,7 +115,7 @@ class VtkM(CMakePackage, CudaPackage):
# mpi support
if "+mpi" in spec:
- if spec.satisfies('@:1.2.0'):
+ if not spec.satisfies('@1.3.0:,ascent_ver'):
raise InstallError('mpi is not supported for\
vtkm version lower than 1.3')
options.append("-DVTKm_ENABLE_MPI:BOOL=ON")
@@ -121,7 +125,7 @@ class VtkM(CMakePackage, CudaPackage):
# openmp support
if "+openmp" in spec:
# openmp is added since version 1.3.0
- if spec.satisfies('@:1.2.0'):
+ if not spec.satisfies('@1.3.0:,ascent_ver'):
raise InstallError('OpenMP is not supported for\
vtkm version lower than 1.3')
options.append("-DVTKm_ENABLE_OPENMP:BOOL=ON")
diff --git a/var/spack/repos/builtin/packages/vtk-m/vtkmdiy_fpic.patch b/var/spack/repos/builtin/packages/vtk-m/vtkmdiy_fpic.patch
new file mode 100644
index 0000000000..765efe1c58
--- /dev/null
+++ b/var/spack/repos/builtin/packages/vtk-m/vtkmdiy_fpic.patch
@@ -0,0 +1,12 @@
+diff --git a/vtkm/thirdparty/diy/vtkmdiy/CMakeLists.txt b/vtkm/thirdparty/diy/vtkmdiy/CMakeLists.txt
+index 5211330..3e991f3 100644
+--- a/vtkm/thirdparty/diy/vtkmdiy/CMakeLists.txt
++++ b/vtkm/thirdparty/diy/vtkmdiy/CMakeLists.txt
+@@ -139,6 +139,7 @@ function(add_diy_mpi_library use_mpi)
+ endif()
+
+ add_library(${lib_name} ${sources})
++ set_property(TARGET ${lib_name} PROPERTY POSITION_INDEPENDENT_CODE ON)
+ target_compile_features(${lib_name} PRIVATE cxx_std_11)
+ target_compile_definitions(${lib_name}
+ PRIVATE -DVTKMDIY_HAS_MPI=${has_mpi_val}
diff --git a/var/spack/repos/builtin/packages/wannier90/package.py b/var/spack/repos/builtin/packages/wannier90/package.py
index 5be0134141..e4aa1017c7 100644
--- a/var/spack/repos/builtin/packages/wannier90/package.py
+++ b/var/spack/repos/builtin/packages/wannier90/package.py
@@ -15,8 +15,10 @@ class Wannier90(MakefilePackage):
Wannier90 is released under the GNU General Public License.
"""
homepage = 'http://wannier.org'
- url = 'http://wannier.org/code/wannier90-2.0.1.tar.gz'
+ url = 'https://github.com/wannier-developers/wannier90/archive/v3.1.0.tar.gz'
+ version('3.1.0', sha256='40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254')
+ version('3.0.0', sha256='f196e441dcd7b67159a1d09d2d7de2893b011a9f03aab6b30c4703ecbf20fe5b')
version('2.1.0', sha256='ee90108d4bc4aa6a1cf16d72abebcb3087cf6c1007d22dda269eb7e7076bddca')
version('2.0.1', sha256='05ea7cd421a219ce19d379ad6ae3d9b1a84be4ffb367506ffdfab1e729309e94')
@@ -26,17 +28,40 @@ class Wannier90(MakefilePackage):
parallel = False
- build_targets = [
- 'wannier', 'post', 'lib', 'w90chk2chk', 'w90vdw', 'w90pov'
- ]
+ variant(
+ 'shared',
+ default=True,
+ description='Builds a shared version of the library'
+ )
@property
- def makefile_name(self):
- # Older versions use 'make.sys'
- filename = 'make.sys'
+ def build_targets(self):
+ targets = []
+ if '@:2' in self.spec:
+ targets = [
+ 'lib', 'wannier', 'post', 'w90chk2chk', 'w90vdw', 'w90pov'
+ ]
+ if '@3:' in self.spec:
+ targets = ['wannier', 'post', 'lib', 'w90chk2chk', 'w90vdw']
+ if '+shared' in self.spec:
+ targets.append('dynlib')
+
+ return targets
+
+ def url_for_version(self, version):
+ if (version > Version('2')):
+ url = 'https://github.com/wannier-developers/wannier90/archive/v{0}.tar.gz'
+ else:
+ url = 'http://wannier.org/code/wannier90-{0}.tar.gz'
+ return url.format(version)
- # While newer search for 'make.inc'
- if self.spec.satisfies('@2.1.0:'):
+ @property
+ def makefile_name(self):
+ # Version 2.0.1 uses make.sys,
+ # other verions use make.inc
+ if self.spec.satisfies('@2.0.1'):
+ filename = 'make.sys'
+ else:
filename = 'make.inc'
abspath = join_path(self.stage.source_path, filename)
@@ -46,10 +71,12 @@ class Wannier90(MakefilePackage):
lapack = self.spec['lapack'].libs
blas = self.spec['blas'].libs
+ mpi = self.spec['mpi'].libs
+
substitutions = {
'@F90': spack_fc,
'@MPIF90': self.spec['mpi'].mpifc,
- '@LIBS': (lapack + blas).joined()
+ '@LIBS': (lapack + blas + mpi).joined()
}
template = join_path(
@@ -61,10 +88,67 @@ class Wannier90(MakefilePackage):
for key, value in substitutions.items():
filter_file(key, value, self.makefile_name)
- def install(self, spec, prefix):
+ if '@:2 +shared' in self.spec:
+ # this is to build a .shared wannier90 library
+ filter_file('LIBRARY = ../../libwannier.a',
+ 'LIBRARY = ../../libwannier.' + dso_suffix,
+ join_path(self.stage.source_path, 'src/Makefile.2'))
+ filter_file('parameters.o kmesh.o io.o comms.o '
+ 'utility.o get_oper.o constants.o '
+ 'postw90_common.o wan_ham.o spin.o '
+ 'dos.o berry.o kpath.o kslice.o '
+ 'boltzwann.o geninterp.o',
+ 'comms.o get_oper.o postw90_common.o '
+ 'wan_ham.o spin.o dos.o berry.o '
+ 'kpath.o kslice.o boltzwann.o geninterp.o',
+ join_path(self.stage.source_path,
+ 'src/Makefile.2'))
+ filter_file('../../wannier90.x: .*',
+ '../../wannier90.x: $(OBJS) '
+ '../wannier_prog.F90 $(LIBRARY)',
+ join_path(self.stage.source_path,
+ 'src/Makefile.2'))
+ filter_file('../../postw90.x: $(OBJS_POST) '
+ '$(POSTDIR)postw90.F90',
+ '../../postw90.x: $(OBJS_POST) '
+ '$(POSTDIR)postw90.F90 $(LIBRARY)',
+ join_path(self.stage.source_path,
+ 'src/Makefile.2'), string=True)
+ filter_file(
+ '$(COMPILER) ../wannier_prog.F90 '
+ '$(LDOPTS) $(OBJS) $(LIBS) '
+ '-o ../../wannier90.x',
+ '$(COMPILER) -I../obj ../wannier_prog.F90 '
+ '$(LDOPTS) -L../.. -lwannier '
+ '-o ../../wannier90.x',
+ join_path(self.stage.source_path,
+ 'src/Makefile.2'), string=True)
+ filter_file(
+ '$(COMPILER) $(POSTDIR)postw90.F90 '
+ '$(POSTOPTS) $(LDOPTS) '
+ '$(OBJS_POST) '
+ '$(LIBS) -o ../../postw90.x',
+ '$(COMPILER) -I../obj $(POSTDIR)postw90.F90 '
+ '$(POSTOPTS) $(LDOPTS) $(OBJS_POST) '
+ '-L../.. -lwannier $(LIBS) -o ../../postw90.x',
+ join_path(self.stage.source_path,
+ 'src/Makefile.2'), string=True)
+ filter_file(
+ '$(AR) $(ARFLAGS) '
+ '$(LIBRARY) $(OBJS2) $(OBJS)',
+ '$(MPIF90) $(FCOPTS) -shared -o '
+ '$(LIBRARY) $(OBJS2) $(OBJS) $(LIBS)',
+ join_path(self.stage.source_path,
+ 'src/Makefile.2'), string=True)
+
+ def setup_build_environment(self, env):
+ env.set('MPIFC', self.prefix.bin.mpifc)
+ def install(self, spec, prefix):
mkdirp(self.prefix.bin)
mkdirp(self.prefix.lib)
+ if '+shared' in spec:
+ mkdirp(self.prefix.modules)
install(
join_path(self.stage.source_path, 'wannier90.x'),
@@ -76,10 +160,17 @@ class Wannier90(MakefilePackage):
join_path(self.prefix.bin, 'postw90.x')
)
- install(
- join_path(self.stage.source_path, 'libwannier.a'),
- join_path(self.prefix.lib, 'libwannier.a')
- )
+ inst = []
+ if '+shared' in spec:
+ inst.append('libwannier.' + dso_suffix)
+ # version 3 or 2 without the shared variant
+ # also has a .a version of the library
+ if '@3:' in spec or '~shared' in spec:
+ inst.append('libwannier.a')
+
+ for file in inst:
+ install(join_path(self.stage.source_path, file),
+ join_path(self.prefix.lib, file))
install(
join_path(self.stage.source_path, 'w90chk2chk.x'),
@@ -91,12 +182,18 @@ class Wannier90(MakefilePackage):
join_path(self.prefix.bin, 'w90vdw.x')
)
- install(
- join_path(self.stage.source_path, 'utility', 'w90pov', 'w90pov'),
- join_path(self.prefix.bin, 'w90pov')
- )
+ if spec.satisfies('@:2'):
+ install(
+ join_path(self.stage.source_path,
+ 'utility', 'w90pov', 'w90pov'),
+ join_path(self.prefix.bin, 'w90pov')
+ )
install_tree(
join_path(self.stage.source_path, 'pseudo'),
join_path(self.prefix.bin, 'pseudo')
)
+
+ for file in find(join_path(self.stage.source_path, 'src/obj'),
+ '*.mod'):
+ install(file, self.prefix.modules)
diff --git a/var/spack/repos/builtin/packages/xcfun/package.py b/var/spack/repos/builtin/packages/xcfun/package.py
index a40234c643..7369702279 100644
--- a/var/spack/repos/builtin/packages/xcfun/package.py
+++ b/var/spack/repos/builtin/packages/xcfun/package.py
@@ -16,6 +16,8 @@ class Xcfun(CMakePackage):
version('2.0.0a6',
sha256='a51086490890393439f98c5e3e4e1622908fe934bbc5063b1d4363cc4c15496d')
+ version('2.0.0a2',
+ sha256='f29e80fdb5c8089fb0eeb7827659111005cb13eb42bf75fcb0c034f6bd067c31')
extends('python')
depends_on('cmake@3.11:', type='build')
diff --git a/var/spack/repos/builtin/packages/xxhash/package.py b/var/spack/repos/builtin/packages/xxhash/package.py
index 421026f496..84bcd8966d 100644
--- a/var/spack/repos/builtin/packages/xxhash/package.py
+++ b/var/spack/repos/builtin/packages/xxhash/package.py
@@ -17,6 +17,7 @@ class Xxhash(MakefilePackage):
homepage = "https://github.com/Cyan4973/xxHash"
url = "https://github.com/Cyan4973/xxHash/archive/v0.6.5.tar.gz"
+ version('0.7.4', sha256='4d9706c9da4fbdf901598f5e3b71db0eddd4ac962e827a73ebf75d66dfd820fe')
version('0.6.5', sha256='19030315f4fc1b4b2cdb9d7a317069a109f90e39d1fe4c9159b7aaa39030eb95')
version('0.6.4', sha256='4570ccd111df6b6386502791397906bf69b7371eb209af7d41debc2f074cdb22')
version('0.6.3', sha256='d8c739ec666ac2af983a61dc932aaa2a8873df974d333a9922d472a121f2106e')
diff --git a/var/spack/repos/builtin/packages/yoda/package.py b/var/spack/repos/builtin/packages/yoda/package.py
new file mode 100644
index 0000000000..4da424c2a8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yoda/package.py
@@ -0,0 +1,84 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Yoda(AutotoolsPackage):
+ """YODA - Yet more Objects for Data Analysis"""
+
+ homepage = "https://yoda.hepforge.org/"
+ url = "https://yoda.hepforge.org/downloads/?f=YODA-1.8.3.tar.bz2"
+
+ version('1.8.3', sha256='d9dd0ea5e0f630cdf4893c09a40c78bd44455777c2125385ecc26fa9a2acba8a')
+ version('1.8.2', sha256='89558c11cf9b88b0899713e5b4bf8781fdcecc480ff155985ebbf148c6d80bdb')
+ version('1.8.1', sha256='51472e12065b9469f13906f0dc609e036d0c1dbd2a8e445e7d654aba73660112')
+ version('1.8.0', sha256='82c62bbaedb4b6b7d50cd42ce5409d453d46c1cc6724047db5efa74d34dd6dc5')
+ version('1.7.7', sha256='cfb64b099a79ec4d138792f0b464a8fbb04c4345143f77bbdca07acb744628ce')
+ version('1.7.6', sha256='864a1459c82676c991fcaed931263a415e815e3c9dc2cad2f94bda6fa4d112e5')
+ version('1.7.5', sha256='7b1dc7bb380d0fbadce12072f5cc21912c115e826182a3922d864e7edea131db')
+ version('1.7.4', sha256='3df316b89e9c0052104f8956e4f7d26c0b0b05cdace7d908be35c383361e3a71')
+ version('1.7.3', sha256='ebf6094733823e9cc2d1586aff06db2d8999c74a47e666baf305322f62c48058')
+ version('1.7.2', sha256='7f093cf947824ec118767c7c1999a50ea9343c173cf8c5062e3800ba54c2943e')
+ version('1.7.1', sha256='edd7971ecd272314309c800395200b07cf68547cbac3378a02d0b8c9ac03027b')
+ version('1.7.0', sha256='b3d6bfb0c52ed87cd240cee5e93e09102832d9ef32505d7275f4d3191a35ce3b')
+ version('1.6.7', sha256='2abf378573832c201bc6a9fecfff5b2006fc98c7a272540326cda8eb5bd95e16')
+ version('1.6.6', sha256='cf172a496d9108b93420530ea91055d07ecd514d2894d78db46b806530e91d21')
+ version('1.6.5', sha256='1477fe754cfe2e4e06aa363a773accf18aab960a8b899968b77834368cac14c5')
+ version('1.6.4', sha256='4c01f43c18b7b2e71f61dea0bb8c6fdc099c8e1a66256c510652884c4ffffbca')
+ version('1.6.3', sha256='1dd7e334fe54a05ff911d9e227d395abc5efd29e29d60187a036b2201f97da19')
+ version('1.6.2', sha256='5793cd1320694118423888801ca520f2719565fde04699ee69e1751f47cb57a8')
+ version('1.6.1', sha256='ec3f4cc4eb57f94fb431cc37db10eb831f025df95ffd9e516b8009199253c62b')
+ version('1.6.0', sha256='2920ef2588268484b650dc08438664a3539b79c65a9e80d58e3771bb699e2a6b')
+ version('1.5.9', sha256='1a19cc8c34c08f1797a93d355250e682eb85d62d4ab277b6714d7873b4bdde75')
+ version('1.5.8', sha256='011c5be5cc565f8baf02e7ebbe57a57b4d70dc6a528d5b0102700020bbf5a973')
+ version('1.5.7', sha256='f775df11b034154b8f5d43f12007692c3314672e60d3e554b3928fe5b0f00c29')
+ version('1.5.6', sha256='050e17b1b80658213281a2e4112dfecc0096f01f269cd739d601b2fd0e790a0c')
+ version('1.5.5', sha256='ce45df6248c6c50633953048240513dc52ca5c9144ef69ea72ada2df23bc4918')
+ version('1.5.4', sha256='c41853a1f3aa0794875ae09c1ba4348942eb890e798ac7cee6e3505a9b68b678')
+ version('1.5.3', sha256='1220ac0ae204c3ed6b22a6a35c30d9b5c1ded35a1054cff131861b4a919d4904')
+ version('1.5.2', sha256='ec113c53a6174b174aaea8f45802cc419184ce056123b93ab8d3f80fc1bd4986')
+ version('1.5.1', sha256='a8b088b3ede67d560e40f91f4f99be313f21841c46ce2f657af7692a7bbe3276')
+ version('1.5.0', sha256='2c2b77344854fac937a8ef07c0928c50829ff4c69bcad6e0afb92da611b7dd18')
+ version('1.4.0', sha256='e76a129f7c2b72b53525fe0b712606eeeab0dc145daa070ebf0728f0384eaf48')
+ version('1.3.1', sha256='274e196d009e3aac6dd1f2db876de9613ca1a3c21ec3364bc3662f5493bc9747')
+ version('1.3.0', sha256='d63197d5940b481ecb06cf4703d9c0b49388f32cad61ccae580d1b80312bd215')
+ version('1.2.1', sha256='e86964e91e4fbbba443d2848f55c028001de4713dcc64c40339389de053e7d8b')
+ version('1.2.0', sha256='143fa86cd7965d26d3897a5752307bfe08f4866c2f9a9f226a393127d19ee353')
+ version('1.1.0', sha256='5d2e8f3c1cddfb59fe651931c7c605fe0ed067864fa86047aed312c6a7938e01')
+ version('1.0.7', sha256='145c27d922c27a4e1d6d50030f4ddece5f03d6c309a5e392a5fcbb5e83e747ab')
+ version('1.0.6', sha256='357732448d67a593e5ff004418f2a2a263a1401ffe84e021f8a714aa183eaa21')
+ version('1.0.5', sha256='ba72bc3943a1b39fa63900570948199cf5ed5c7523f2c4af4740e51b098f1794')
+ version('1.0.4', sha256='697fe397c69689feecb2a731e19b2ff85e19343b8198c4f18a7064c4f7123950')
+ version('1.0.3', sha256='6a1d1d75d9d74da457726ea9463c1b0b6ba38d4b43ef54e1c33f885e70fdae4b')
+
+ variant("root", default=False, description="Enable ROOT interface")
+
+ depends_on('python', type=('build', 'run'))
+ depends_on('py-future', type=('build', 'run'))
+ depends_on('boost', when='@:1.6.0', type=('build', 'run'))
+ depends_on('py-cython', type='build')
+ depends_on('py-matplotlib', when='@1.3.0:', type=('build', 'run'))
+ depends_on('root', type=('build', 'run'), when='+root')
+
+ patch('yoda-1.5.5.patch', level=0, when='@1.5.5')
+ patch('yoda-1.5.9.patch', level=0, when='@1.5.9')
+ patch('yoda-1.6.1.patch', level=0, when='@1.6.1')
+ patch('yoda-1.6.2.patch', level=0, when='@1.6.2')
+ patch('yoda-1.6.3.patch', level=0, when='@1.6.3')
+ patch('yoda-1.6.4.patch', level=0, when='@1.6.4')
+ patch('yoda-1.6.5.patch', level=0, when='@1.6.5')
+ patch('yoda-1.6.6.patch', level=0, when='@1.6.6')
+ patch('yoda-1.6.7.patch', level=0, when='@1.6.7')
+
+ def configure_args(self):
+ args = []
+ if self.spec.satisfies('@:1.6.0'):
+ args += '--with-boost=' + self.spec['boost'].prefix
+
+ if '+root' in self.spec:
+ args += '--enable-root'
+
+ return args
diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.5.5.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.5.5.patch
new file mode 100644
index 0000000000..ba86d4cc31
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yoda/yoda-1.5.5.patch
@@ -0,0 +1,50 @@
+--- configure.orig 2016-09-30 08:52:56.000000000 +0200
++++ configure 2016-09-30 08:56:39.000000000 +0200
+@@ -16568,11 +16568,15 @@
+ cat >conftest.py <<_ACEOF
+
+ import sys, string
++# Python 2 and 3 compatible
++from future.builtins import map
++# Python 2 and 3: forward-compatible
++from future.builtins import range
+ # split strings by '.' and convert to numeric. Append some zeros
+ # because we need at least 4 digits for the hex conversion.
+-minver = map(int, string.split('2.5', '.')) + [0, 0, 0]
++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0]
+ minverhex = 0
+-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i]
++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i]
+ if sys.hexversion >= minverhex:
+ sys.exit( 0 )
+ else:
+@@ -16600,15 +16604,15 @@
+ fi
+
+
+- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"`
++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(list(map(str, sys.version_info[:2]))));"`
+
+- YODA_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"`
++ YODA_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"`
+
+ ## Test for Python header
+ if test -x "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
+ $as_echo_n "checking for Python include path... " >&6; }
+- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"`
++ python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5
+ $as_echo "$python_incpath" >&6; }
+ python_header="$python_incpath/Python.h"
+ --- pyext/setup.py.in.orig 2016-09-30 08:57:23.000000000 +0200
+ +++ pyext/setup.py.in 2016-09-30 08:57:58.000000000 +0200
+ @@ -34,7 +34,7 @@
+ extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)]
+
+ ## Enable building of ROOT extension if ROOT is present
+ -if os.environ.has_key("BUILD_ROOTCOMPAT"):
+ +if "BUILD_ROOTCOMPAT" in os.environ:
+ try:
+ # import ROOT
+ # TODO: Need to test for and use root-config in configure
diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.5.9.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.5.9.patch
new file mode 100644
index 0000000000..37a9ffab32
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yoda/yoda-1.5.9.patch
@@ -0,0 +1,50 @@
+--- configure.orig 2016-09-30 09:01:00.000000000 +0200
++++ configure 2016-09-30 09:03:05.000000000 +0200
+@@ -16574,11 +16574,15 @@
+ cat >conftest.py <<_ACEOF
+
+ import sys, string
++# Python 2 and 3 compatible
++from future.builtins import map
++# Python 2 and 3: forward-compatible
++from future.builtins import range
+ # split strings by '.' and convert to numeric. Append some zeros
+ # because we need at least 4 digits for the hex conversion.
+-minver = map(int, string.split('2.5', '.')) + [0, 0, 0]
++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0]
+ minverhex = 0
+-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i]
++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i]
+ if sys.hexversion >= minverhex:
+ sys.exit( 0 )
+ else:
+@@ -16606,15 +16610,15 @@
+ fi
+
+
+- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"`
++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(list(map(str, sys.version_info[:2]))));"`
+
+- YODA_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"`
++ YODA_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"`
+
+ ## Test for Python header
+ if test -x "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
+ $as_echo_n "checking for Python include path... " >&6; }
+- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"`
++ python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5
+ $as_echo "$python_incpath" >&6; }
+ python_header="$python_incpath/Python.h"
+ --- pyext/setup.py.in.orig 2016-09-30 09:03:25.000000000 +0200
+ +++ pyext/setup.py.in 2016-09-30 09:04:03.000000000 +0200
+ @@ -34,7 +34,7 @@
+ extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)]
+
+ ## Enable building of ROOT extension if ROOT is present
+ -if os.environ.has_key("BUILD_ROOTCOMPAT"):
+ +if "BUILD_ROOTCOMPAT" in os.environ:
+ try:
+ # import ROOT
+ # TODO: Need to test for and use root-config in configure
diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.1.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.1.patch
new file mode 100644
index 0000000000..0a5996a70d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.1.patch
@@ -0,0 +1,72 @@
+--- bin/yoda-config.in.orig 2016-07-11 14:43:05.700511377 +0300
++++ bin/yoda-config.in 2016-07-11 14:43:50.312499322 +0300
+@@ -59,7 +59,7 @@
+
+ ## "Pre-rolled" build info
+ tmp=$( echo "$*" | egrep -- '--\<cflags\>|--\<cppflags\>|--\<cxxflags\>')
+-test -n "$tmp" && OUT="$OUT -I@includedir@ @BOOST_CPPFLAGS@"
++test -n "$tmp" && OUT="$OUT -I@includedir@"
+
+ tmp=$( echo "$*" | egrep -- '--\<ldflags\>|--\<libs\>|--\<ldadd\>')
+ test -n "$tmp" && OUT="$OUT -L@libdir@ -lYODA"
+--- bin/yoda-config.orig 2016-07-11 14:43:31.960503275 +0300
++++ bin/yoda-config 2016-07-11 14:43:41.200501112 +0300
+@@ -59,7 +59,7 @@
+
+ ## "Pre-rolled" build info
+ tmp=$( echo "$*" | egrep -- '--\<cflags\>|--\<cppflags\>|--\<cxxflags\>')
+-test -n "$tmp" && OUT="$OUT -I${prefix}/include @BOOST_CPPFLAGS@"
++test -n "$tmp" && OUT="$OUT -I${prefix}/include"
+
+ tmp=$( echo "$*" | egrep -- '--\<ldflags\>|--\<libs\>|--\<ldadd\>')
+ test -n "$tmp" && OUT="$OUT -L${exec_prefix}/lib -lYODA"
+--- configure.orig 2016-09-30 09:04:54.000000000 +0200
++++ configure 2016-09-30 09:07:44.000000000 +0200
+@@ -16508,11 +16508,15 @@
+ cat >conftest.py <<_ACEOF
+
+ import sys, string
++# Python 2 and 3 compatible
++from future.builtins import map
++# Python 2 and 3: forward-compatible
++from future.builtins import range
+ # split strings by '.' and convert to numeric. Append some zeros
+ # because we need at least 4 digits for the hex conversion.
+-minver = map(int, string.split('2.5', '.')) + [0, 0, 0]
++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0]
+ minverhex = 0
+-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i]
++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i]
+ if sys.hexversion >= minverhex:
+ sys.exit( 0 )
+ else:
+@@ -16540,15 +16544,15 @@
+ fi
+
+
+- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"`
++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(list(map(str, sys.version_info[:2]))));"`
+
+- YODA_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"`
++ YODA_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"`
+
+ ## Test for Python header
+ if test -x "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
+ $as_echo_n "checking for Python include path... " >&6; }
+- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"`
++ python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5
+ $as_echo "$python_incpath" >&6; }
+ python_header="$python_incpath/Python.h"
+ --- pyext/setup.py.in.orig 2016-09-30 09:07:58.000000000 +0200
+ +++ pyext/setup.py.in 2016-09-30 09:08:17.000000000 +0200
+ @@ -34,7 +34,7 @@
+ extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)]
+
+ ## Enable building of ROOT extension if ROOT is present
+ -if os.environ.has_key("BUILD_ROOTCOMPAT"):
+ +if "BUILD_ROOTCOMPAT" in os.environ:
+ try:
+ # import ROOT
+ # TODO: Need to test for and use root-config in configure
diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.2.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.2.patch
new file mode 100644
index 0000000000..a0eb97d0f3
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.2.patch
@@ -0,0 +1,22 @@
+--- bin/yoda-config.in.orig 2016-07-11 14:43:05.700511377 +0300
++++ bin/yoda-config.in 2016-07-11 14:43:50.312499322 +0300
+@@ -59,7 +59,7 @@
+
+ ## "Pre-rolled" build info
+ tmp=$( echo "$*" | egrep -- '--\<cflags\>|--\<cppflags\>|--\<cxxflags\>')
+-test -n "$tmp" && OUT="$OUT -I@includedir@ @BOOST_CPPFLAGS@"
++test -n "$tmp" && OUT="$OUT -I@includedir@"
+
+ tmp=$( echo "$*" | egrep -- '--\<ldflags\>|--\<libs\>|--\<ldadd\>')
+ test -n "$tmp" && OUT="$OUT -L@libdir@ -lYODA"
+--- bin/yoda-config.orig 2016-07-11 14:43:31.960503275 +0300
++++ bin/yoda-config 2016-07-11 14:43:41.200501112 +0300
+@@ -59,7 +59,7 @@
+
+ ## "Pre-rolled" build info
+ tmp=$( echo "$*" | egrep -- '--\<cflags\>|--\<cppflags\>|--\<cxxflags\>')
+-test -n "$tmp" && OUT="$OUT -I${prefix}/include @BOOST_CPPFLAGS@"
++test -n "$tmp" && OUT="$OUT -I${prefix}/include"
+
+ tmp=$( echo "$*" | egrep -- '--\<ldflags\>|--\<libs\>|--\<ldadd\>')
+ test -n "$tmp" && OUT="$OUT -L${exec_prefix}/lib -lYODA"
diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.3.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.3.patch
new file mode 100644
index 0000000000..4d50a3cf2d
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.3.patch
@@ -0,0 +1,50 @@
+--- configure.orig 2016-08-09 21:07:54.000000000 +0200
++++ configure 2016-09-19 11:49:18.560986340 +0200
+@@ -16520,11 +16520,15 @@
+ cat >conftest.py <<_ACEOF
+
+ import sys, string
++# Python 2 and 3 compatible
++from future.builtins import map
++# Python 2 and 3: forward-compatible
++from future.builtins import range
+ # split strings by '.' and convert to numeric. Append some zeros
+ # because we need at least 4 digits for the hex conversion.
+-minver = map(int, string.split('2.5', '.')) + [0, 0, 0]
++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0]
+ minverhex = 0
+-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i]
++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i]
+ if sys.hexversion >= minverhex:
+ sys.exit( 0 )
+ else:
+@@ -16552,15 +16556,15 @@
+ fi
+
+
+- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"`
++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(list(map(str, sys.version_info[:2]))));"`
+
+- YODA_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"`
++ YODA_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"`
+
+ ## Test for Python header
+ if test -x "$PYTHON"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
+ $as_echo_n "checking for Python include path... " >&6; }
+- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"`
++ python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5
+ $as_echo "$python_incpath" >&6; }
+ python_header="$python_incpath/Python.h"
+ --- pyext/setup.py.in.orig 2016-09-06 17:25:39.993785138 +0200
+ +++ pyext/setup.py.in 2016-09-06 17:26:10.368489432 +0200
+ @@ -34,7 +34,7 @@
+ extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)]
+
+ ## Enable building of ROOT extension if ROOT is present
+ -if os.environ.has_key("BUILD_ROOTCOMPAT"):
+ +if "BUILD_ROOTCOMPAT" in os.environ:
+ try:
+ # import ROOT
+ # TODO: Need to test for and use root-config in configure
diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.4.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.4.patch
new file mode 100644
index 0000000000..44b8ed06bc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.4.patch
@@ -0,0 +1,11 @@
+--- pyext/setup.py.in.orig 2016-09-30 09:13:02.000000000 +0200
++++ pyext/setup.py.in 2016-09-30 09:13:21.000000000 +0200
+@@ -34,7 +34,7 @@
+ extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)]
+
+ ## Enable building of ROOT extension if ROOT is present
+-if os.environ.has_key("BUILD_ROOTCOMPAT"):
++if "BUILD_ROOTCOMPAT" in os.environ:
+ try:
+ # import ROOT
+ # TODO: Need to test for and use root-config in configure
diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.5.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.5.patch
new file mode 100644
index 0000000000..ee632655ad
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.5.patch
@@ -0,0 +1,23 @@
+--- bin/yoda2aida.orig 2016-10-07 13:25:57.355168158 +0200
++++ bin/yoda2aida 2016-10-07 13:26:04.779169090 +0200
+@@ -18,7 +18,7 @@
+ parser.add_option("-M", "--unmatch", dest="UNMATCH", metavar="PATT", default=None,
+ help="exclude histograms whose path matches this regex")
+
+-sys.stderr.write("WARNING: yoda2aida is DEPRECATED.\n It will die when AIDA does... *soon*\n"
++sys.stderr.write("WARNING: yoda2aida is DEPRECATED.\n It will die when AIDA does... *soon*\n")
+
+ opts, args = parser.parse_args()
+ in_out = parse_x2y_args(args, ".yoda", ".aida")
+
+--- pyext/setup.py.in.orig 2016-09-30 09:13:02.000000000 +0200
++++ pyext/setup.py.in 2016-09-30 09:13:21.000000000 +0200
+@@ -34,7 +34,7 @@
+ extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)]
+
+ ## Enable building of ROOT extension if ROOT is present
+-if os.environ.has_key("BUILD_ROOTCOMPAT"):
++if "BUILD_ROOTCOMPAT" in os.environ:
+ try:
+ # import ROOT
+ # TODO: Need to test for and use root-config in configure
diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.6.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.6.patch
new file mode 100644
index 0000000000..fd400e4d7e
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.6.patch
@@ -0,0 +1,11 @@
+--- pyext/setup.py.in.orig 2017-02-01 15:24:41.000000000 +0100
++++ pyext/setup.py.in 2017-02-01 15:25:04.000000000 +0100
+@@ -34,7 +34,7 @@
+ extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)]
+
+ ## Enable building of ROOT extension if ROOT is present
+-if os.environ.has_key("BUILD_ROOTCOMPAT"):
++if "BUILD_ROOTCOMPAT" in os.environ:
+ try:
+ # import ROOT
+ # TODO: Need to test for and use root-config in configure
diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.7.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.7.patch
new file mode 100644
index 0000000000..cc45b3e689
--- /dev/null
+++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.7.patch
@@ -0,0 +1,11 @@
+--- pyext/setup.py.in.orig 2017-07-17 12:13:12.057895620 +0200
++++ pyext/setup.py.in 2017-07-17 12:15:11.991048036 +0200
+@@ -34,7 +34,7 @@
+ extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)]
+
+ ## Enable building of ROOT extension if ROOT is present
+-if os.environ.has_key("BUILD_ROOTCOMPAT"):
++if "BUILD_ROOTCOMPAT" in os.environ:
+ try:
+ # import ROOT
+ # TODO: Need to test for and use root-config in configure
diff --git a/var/spack/repos/builtin/packages/zsh/package.py b/var/spack/repos/builtin/packages/zsh/package.py
index 60bb3cd3e7..1288eddbad 100644
--- a/var/spack/repos/builtin/packages/zsh/package.py
+++ b/var/spack/repos/builtin/packages/zsh/package.py
@@ -13,11 +13,14 @@ class Zsh(AutotoolsPackage):
"""
homepage = "http://www.zsh.org"
- url = "http://downloads.sourceforge.net/project/zsh/zsh/5.4.2/zsh-5.4.2.tar.gz"
-
- version('5.4.2', sha256='957bcdb2c57f64c02f673693ea5a7518ef24b6557aeb3a4ce222cefa6d74acc9')
- version('5.3.1', sha256='3d94a590ff3c562ecf387da78ac356d6bea79b050a9ef81e3ecb9f8ee513040e')
- version('5.1.1', sha256='94ed5b412023761bc8d2f03c173f13d625e06e5d6f0dff2c7a6e140c3fa55087')
+ url = "http://downloads.sourceforge.net/project/zsh/zsh/5.4.2/zsh-5.4.2.tar.xz"
+
+ version('5.8', sha256='dcc4b54cc5565670a65581760261c163d720991f0d06486da61f8d839b52de27')
+ version('5.7.1', sha256='7260292c2c1d483b2d50febfa5055176bd512b32a8833b116177bf5f01e77ee8')
+ version('5.6.2', sha256='a50bd66c0557e8eca3b8fa24e85d0de533e775d7a22df042da90488623752e9e')
+ version('5.4.2', sha256='a80b187b6b770f092ea1f53e89021d06c03d8bbe6a5e996bcca3267de14c5e52')
+ version('5.3.1', sha256='fc886cb2ade032d006da8322c09a7e92b2309177811428b121192d44832920da')
+ version('5.1.1', sha256='74e9453b5470b3c0970f9f93cfd603d241c3d7b1968adc0e4b3951073e8d3dec')
# Testing for terminal related things causes failures in e.g. Jenkins.
# See e.g. https://www.zsh.org/mla/users/2003/msg00845.html,